Update cryptcp-verification1.md

This commit is contained in:
Dmitry 2025-11-27 10:41:37 +03:00 committed by GitHub
parent b1900436c5
commit a8a48801a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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[❌ Подпись недействительна<br>TSP не прошел проверку]
K -->|Да| I
I --> M{Подпись соответствует документу?}
M -->|Нет| N[❌ Подпись недействительна<br>Нарушена целостность]
M -->|Да| J
J --> O{Сертификат был действителен<br>на момент подписания?}
O -->|Нет| P[❌ Подпись недействительна<br>Сертификат был недействителен]
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[Сертификат не был отозван<br>на момент подписания]
D3[Цепочка была полной<br>на момент подписания]
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”<br>“временная метка действительна”]
C1 --> C2[✅ TSP действителен]
D --> D1[“signature verified”<br>“подпись действительна”]
D1 --> D2[✅ Целостность сохранена]
E --> E1[“certificate was valid”<br>“сертификат был действителен”]
E1 --> E2[✅ Сертификат был действителен]
C2 & D2 --> F[✅ Подпись действительна]
C --> C3[“timestamp invalid”<br>“временная метка недействительна”]
C3 --> G[❌ Критическая ошибка TSP]
D --> D3[“signature invalid”<br>“подпись недействительна”]
D3 --> H[❌ Критическая ошибка целостности]
E --> E3[“certificate was invalid”<br>“сертификат был недействителен”]
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-метки является критически важным этапом, от которого зависит юридическая значимость всей электронной подписи, независимо от текущего статуса других сертификатов.