ervu-sign-module/docs/ПМИ.txt

114 lines
10 KiB
Text
Raw Normal View History

2024-11-22 16:27:36 +03:00
1. Подписание (в автоматическом режиме) запросов в ЕСИА ключом ЭП.
Должно быть выполнено тестирование со следующими вариантами статуса сертификата ключа проверки ЭП:
1.1. Действительный сертификат компонента ervu-sign-module, изготовленный Удостоверяющим центром запрос в ЕСИА должен быть успешно отправлен:
1.1.1. Установить сертификат в систему, согласно "Инструкции по установке".
1.1.2. Открыть приложение - запрос в ЕСИА должен быть успешно отправлен.
1.2. Проверка статуса сертификата не может быть выполнена, так как в Системе отсутствует CRL, соответствующий Удостоверяющему центру запрос в ЕСИА не должен быть отправлен:
1.2.1. Удалить CRL, соответствующий Удостоверяющему центру, изготовившему сертификат компонента ervu-sign-module:
/opt/cprocsp/bin/amd64/certmgr -delete -crl -store ucache -all
/opt/cprocsp/bin/amd64/certmgr -delete -crl -store uca -all
1.2.2. Отключить доступ к УЦ.
1.2.3. Перезапустить сервис подписания ervu-sign-module, чтобы сбросить кэш.
1.2.4. Открыть приложение - запрос в ЕСИА не должен быть отправлен. Пользователю отобразится ошибка.
В логах ЛК РП должно быть следующее:
Caused by: java.lang.RuntimeException: 500 500 Internal Server Error
at ru.micord.ervu.security.esia.service.EsiaAuthService.errorHandler(EsiaAuthService.java:351) ~[classes/:1.10.0-SNAPSHOT]
at ru.micord.ervu.security.esia.service.EsiaAuthService.signMap(EsiaAuthService.java:340) ~[classes/:1.10.0-SNAPSHOT]
at ru.micord.ervu.security.esia.service.EsiaAuthService.generateAuthCodeUrl(EsiaAuthService.java:101) ~[classes/:1.10.0-SNAPSHOT]
В логах ervu-sign-module должно быть следующее:
WARN: The certificate is not trusted. CERT_TRUST_STATUS: '0x00000040'
ERROR: get_cert_chain exit with error
ERROR: sign_hash_data exit with error. Last error code: 0x00000000
ERROR: cryptopro_sign exit with error
ERROR: sign_content exit with error
ERROR: response status: '500 Internal Server Error'
CERT_TRUST_STATUS = 0x00000040 (CERT_TRUST_REVOCATION_STATUS_UNKNOWN) означает, что статус отзыва сертификата или одного из сертификатов в цепочке сертификатов неизвестен.
1.2.5. Восстановить доступ к УЦ. Все CRL будут автоматически установлены при следующих запросах на подпись.
1.3. Сертификат действителен, но выдан УЦ, корневой сертификат которого не установлен в системе запрос в ЕСИА не должен быть отправлен:
1.3.1. Получить цепочку сертификатов и SHA1 отпечаток корневого сертификата УЦ:
/opt/cprocsp/bin/amd64/certmgr -list -thumbprint <sign_cert_thumbprint> -chain
где <sign_cert_thumbprint> - это SHA1 отпечаток сертификата компонента ervu-sign-module.
Результатом команды будет цепочка сертификатов с перечнем их свойств, из которого необходимо получить значение поля "SHA1 отпечаток".
1.3.2. Из Системы удалить корневой сертификат Удостоверяющего центра, выполнив команду от имени root:
/opt/cprocsp/bin/amd64/certmgr -delete -store mRoot -thumbprint <root_cert_thumbprint>
где <root_cert_thumbprint> - это SHA1 отпечаток корневого сертификата УЦ, полученный на предыдущем шаге.
1.3.3. Открыть приложение - запрос в ЕСИА не должен быть отправлен. Пользователю отобразится ошибка.
В логах ЛК РП должно быть следующее:
Caused by: java.lang.RuntimeException: 500 500 Internal Server Error
at ru.micord.ervu.security.esia.service.EsiaAuthService.errorHandler(EsiaAuthService.java:351) ~[classes/:1.10.0-SNAPSHOT]
at ru.micord.ervu.security.esia.service.EsiaAuthService.signMap(EsiaAuthService.java:340) ~[classes/:1.10.0-SNAPSHOT]
at ru.micord.ervu.security.esia.service.EsiaAuthService.generateAuthCodeUrl(EsiaAuthService.java:101) ~[classes/:1.10.0-SNAPSHOT]
В логах ervu-sign-module должно быть следующее:
WARN: The certificate is not trusted. CERT_TRUST_STATUS: '0x00000020'
ERROR: get_cert_chain exit with error
ERROR: sign_hash_data exit with error. Last error code: 0x80092004
ERROR: cryptopro_sign exit with error
ERROR: sign_content exit with error
ERROR: response status: '500 Internal Server Error'
CERT_TRUST_STATUS = 0x00000020 (CERT_TRUST_IS_UNTRUSTED_ROOT) означает, что сертификат или цепочка сертификатов основана на ненадежном корневом сертификате.
1.3.4. Восстановить все корневые сертификаты, которые были удалены, выполнив для каждого команду от имени root:
/opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file <root_cert>.crt
2. Проверка ЭП маркера доступа, полученного от ЕСИА.
Должно быть выполнено тестирование со следующими вариантами статуса сертификата ключа проверки ЭП:
2.1. Действительный сертификат ЕСИА ответ ЕСИА должен быть принят:
2.1.1. Установить сертификат ЕСИА в систему, согласно "Инструкции по установке".
2.1.2. Выполнить вход через ЕСИА - ответ ЕСИА должен быть принят.
2.2. Проверка статуса сертификата не может быть выполнена, так как в Системе отсутствует CRL, соответствующий Удостоверяющему центру, изготовившему сертификат ЕСИА - ответ ЕСИА не должен быть принят:
2.2.1. Удалить CRL, соответствующий Удостоверяющему центру, изготовившему сертификат ЕСИА:
/opt/cprocsp/bin/amd64/certmgr -delete -crl -store ucache
/opt/cprocsp/bin/amd64/certmgr -delete -crl -store uCA
2.2.2. Отключить доступ к УЦ.
2.2.3. Перезапустить сервис подписания ervu-sign-module, чтобы сбросить кэш.
2.2.4. Выполнить вход через ЕСИА - ответ ЕСИА должен быть отклонен с ошибкой.
2.2.5. Восстановить доступ к УЦ. Все CRL будут автоматически установлены при следующих запросах на проверку ЭП маркера доступа, полученного от ЕСИА.
2.3. Сертификат действителен, но выдан УЦ, корневой сертификат которого не установлен в системе ответ ЕСИА не должен быть принят:
2.3.1. Получить цепочку сертификатов и SHA1 отпечаток корневого сертификата УЦ:
/opt/cprocsp/bin/amd64/certmgr -list -thumbprint <esia_cert_thumbprint> -chain
где <esia_cert_thumbprint> - это SHA1 отпечаток сертификата ЕСИА.
Результатом команды будет цепочка сертификатов с перечнем их свойств, из которого необходимо получить значение поля "SHA1 отпечаток".
2.3.2. Из Системы удалить корневой сертификат Удостоверяющего центра, выполнив команду от имени root:
/opt/cprocsp/bin/amd64/certmgr -delete -store mRoot -thumbprint <root_esia_cert_thumbprint>
где <root_esia_cert_thumbprint> - это SHA1 отпечаток корневой сертификата УЦ, полученный на предыдущем шаге.
2.3.3. Выполнить вход через ЕСИА - обработка ответа от ЕСИА должна завершиться ошибкой.
2.3.4. Восстановить все корневые сертификаты, которые были удалены, выполнив для каждого команду от имени root:
/opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file <root_esia_cert>.crt