diff --git a/IT/CADES/AI/cryptcp-verification1.md b/IT/CADES/AI/cryptcp-verification1.md index e7eae900..3d62dc8f 100644 --- a/IT/CADES/AI/cryptcp-verification1.md +++ b/IT/CADES/AI/cryptcp-verification1.md @@ -282,3 +282,186 @@ cryptcp -verify ... 4. **Алгоритм проверки** должен в первую очередь анализировать статус TSP и целостность подписи Данный алгоритм обеспечивает корректную проверку юридической значимости электронной подписи в соответствии с требованиями законодательства и учетом долгосрочного хранения документов. + +### 2 +## Алгоритм проверки электронной подписи с акцентом на TSP + +```mermaid +flowchart TD + A[Начало проверки подписи] --> B[Подготовка окружения] + + B --> C[Проверка наличия файлов] + C --> D{Файлы существуют?} + D -->|Нет| E[❌ Ошибка: файлы не найдены] + D -->|Да| F[Запуск cryptcp.exe для проверки] + + F --> G[Анализ вывода cryptcp] + + subgraph G [Анализ результатов] + H[Проверка TSP-метки] + I[Проверка целостности подписи] + J[Проверка сертификата подписанта] + end + + H --> K{TSP действителен?} + K -->|Нет| L[❌ Подпись недействительна
TSP не прошел проверку] + + K -->|Да| I + I --> M{Подпись соответствует документу?} + M -->|Нет| N[❌ Подпись недействительна
Нарушена целостность] + + M -->|Да| J + J --> O{Сертификат был действителен
на момент подписания?} + + O -->|Нет| P[❌ Подпись недействительна
Сертификат был недействителен] + O -->|Да| Q[✅ Подпись действительна] + + style A fill:#e1f5fe + style L fill:#ffebee + style N fill:#ffebee + style P fill:#ffebee + style Q fill:#e8f5e9 + style H fill:#fff3e0 + style I fill:#fff3e0 + style J fill:#fff3e0 +``` + +## Детализация критических проверок + +```mermaid +flowchart TD + A[Детали проверок] --> B[TSP-метка] + A --> C[Целостность подписи] + A --> D[Сертификат подписанта] + + subgraph B [Проверка TSP-метки] + B1[Сертификат TSA действителен] + B2[Цепочка доверия TSA построена] + B3[Временная метка корректна] + B4[Хэш подписи соответствует] + end + + subgraph C [Проверка целостности] + C1[Подпись соответствует документу] + C2[Формат CAdES-XL корректен] + C3[Хэш документа не изменен] + end + + subgraph D [Проверка сертификата подписанта] + D1[Вложенный OCSP-ответ действителен] + D2[Сертификат не был отозван
на момент подписания] + D3[Цепочка была полной
на момент подписания] + end + + B --> E{✅ TSP действителен?} + C --> F{✅ Целостность сохранена?} + D --> G{✅ Сертификат был действителен?} + + E & F & G --> H[✅ Все проверки пройдены] + + style B fill:#fff3e0 + style C fill:#fff3e0 + style D fill:#fff3e0 + style H fill:#e8f5e9 +``` + +## Процесс работы с cryptcp.exe + +```mermaid +sequenceDiagram + participant П as Программа проверки + participant C как cryptcp.exe + participant CSP как КриптоПРО CSP + participant T как TSA Сервис + participant Х как Хранилище сертификатов + + П->>C: Запуск: cryptcp -verify -cadestype XL -v signature.sig document.pdf + C->>CSP: Декодирование CAdES-XL + C->>CSP: Извлечение TSP-метки + C->>T: Проверка сертификата TSA + T-->>C: Статус сертификата TSA + C->>Х: Поиск корневых сертификатов TSA + Х-->>C: Корневые сертификаты + C->>CSP: Проверка TSP-метки + CSP-->>C: Результат проверки TSP + C->>CSP: Проверка целостности подписи + CSP-->>C: Результат проверки целостности + C->>CSP: Проверка сертификата подписанта + CSP-->>C: Результат проверки сертификата + C-->>П: Код возврата и детальный вывод + + П->>П: Анализ результатов с акцентом на TSP + П->>П: Формирование итогового вердикта +``` + +## Интерпретация результатов + +```mermaid +flowchart TD + A[Анализ вывода cryptcp.exe] --> B[Поиск ключевых фраз] + + B --> C[TSP-метка] + B --> D[Целостность подписи] + B --> E[Сертификат подписанта] + + C --> C1[“timestamp verified”
“временная метка действительна”] + C1 --> C2[✅ TSP действителен] + + D --> D1[“signature verified”
“подпись действительна”] + D1 --> D2[✅ Целостность сохранена] + + E --> E1[“certificate was valid”
“сертификат был действителен”] + E1 --> E2[✅ Сертификат был действителен] + + C2 & D2 --> F[✅ Подпись действительна] + + C --> C3[“timestamp invalid”
“временная метка недействительна”] + C3 --> G[❌ Критическая ошибка TSP] + + D --> D3[“signature invalid”
“подпись недействительна”] + D3 --> H[❌ Критическая ошибка целостности] + + E --> E3[“certificate was invalid”
“сертификат был недействителен”] + E3 --> I[❌ Сертификат был недействителен] + + G --> J[❌ Подпись недействительна] + H --> J + I --> J + + style F fill:#e8f5e9 + style J fill:#ffebee + style C2 fill:#e8f5e9 + style D2 fill:#e8f5e9 + style E2 fill:#e8f5e9 + style G fill:#ffebee + style H fill:#ffebee + style I fill:#ffebee +``` + +## Критерии юридической значимости + +```mermaid +flowchart TD + A[Критерии юридической значимости] --> B[Критически важные] + A --> C[Второстепенные] + + B --> B1[TSP действителен при проверке] + B --> B2[Целостность подписи сохранена] + B --> B3[Сертификат был действителен при подписании] + + C --> C1[Корневые сертификаты УЦ действительны] + C --> C2[Сертификат подписанта действителен сейчас] + C --> C3[Актуальные OCSP-ответы] + + B1 & B2 & B3 --> D[✅ Юридически значимая подпись] + + C1 -.->|Не влияет на историческую подпись| D + C2 -.->|Не влияет на историческую подпись| D + C3 -.->|Не влияет на историческую подпись| D + + style B fill:#fff3e0 + style C fill:#f5f5f5 + style D fill:#e8f5e9 +``` + +Этот алгоритм наглядно показывает, что проверка TSP-метки является критически важным этапом, от которого зависит юридическая значимость всей электронной подписи, независимо от текущего статуса других сертификатов.