- Найти сертификат по отпечатку
- Чтиво на ночь
- Чуть-чуть об установке
- Подпись файла
- Подпись файла с передачей пароля
- Получить список установленных сертифкатов
- Удалить сертифкат
- Проверка подписи
- Получаем хеш полученной подписи
- Установка сертифката без закрытого ключа
- Установка ЭЦП ручной способ
- Получить тестовое ЭЦП от крипто
- Установка ЭЦП в формтае PFX
- Установка ЭЦП для пользователя www-data
- Получени даны окончания сертифката из подписи файла
- Ссылки
- Настройка проверки формата сертификатов
- Пример настройки плагина
- Дополнительные параметры плагина:
- Настройка выполнения проверки полей сертификата по умолчанию
- Как посмотреть информацию о сертификате ключа электронной подписи
Найти сертификат по отпечатку
Нашёл на контроллере домена событие Event ID: 64 вида:
Certificate for local system with Thumbprint 23 24 17 36 28 fe c7 37 97 4c c0 9c 20 c1 fe 6b dd c7 9f 50 is about to expire or already expired.
Известен отпечаток сертификата, нужно по отпечатку определить сам сертификат. Отпечаток:
2324173628fec737974cc09c20c1fe6bddc79f50
Выполняем в PowerShell, указав отпечаток:
Get-ChildItem -Recurse -Path cert:\ | ?{ $_.GetType().Name -eq 'X509Certificate2' } | ?{ $_.Thumbprint -eq '2324173628fec737974cc09c20c1fe6bddc79f50' } | select Subject, PSParentPath, SerialNumber
В итоге получаем серийный номер:
170000015DE8C6DEB49A0F713200000000015D
Запускаем оснастку mmc:
Выбираем слева Certificates. Add.
Выбираем хранилище сертификатов. Текущего пользователя, службы или локального компьютера. Скорее всего дохлый сертификат в Computer account. Выбираю. Если не найдём, можно добавить в оснастку сертификаты и из других хранилищ. Next.
Отображается оснастка сертификатов. Выделяем Certificates (Local Computer).
Указываем серийный номер сертификата, выбираем Look in Field: Serial Number. Find Now.
Чтиво на ночь
ioryk Оставлено | |
Добрый день При отправке запроса появляются ошибки см приложенные логи | |
Александр Лавник Оставлено | |
Автор: ioryk Добрый день При отправке запроса появляются ошибки см приложенные логи Здравствуйте. Параметр cert – путь к файлу используемого сертификата в DER-кодировке. | |
ioryk Оставлено | |
а если указан fingerprint сертификата который находится в хранилище, кодировка же не должна иметь значения? | |
ioryk Оставлено | |
Автор: Александр Лавник Автор: ioryk Добрый день При отправке запроса появляются ошибки см приложенные логи Здравствуйте. Параметр cert – путь к файлу используемого сертификата в DER-кодировке. Не помогло bad file format | |
Александр Лавник Оставлено | |
Автор: ioryk Автор: Александр Лавник Автор: ioryk Добрый день При отправке запроса появляются ошибки см приложенные логи Здравствуйте. Параметр cert – путь к файлу используемого сертификата в DER-кодировке. Не помогло bad file format Здравствуйте. Приложите лог stunnel после перезапуска stunnel и попытки отправки запроса. | |
ioryk Оставлено | |
Проблема решена | |
Чуть-чуть об установке
- что б каждый раз не вводить полный путь до команд крипто
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
так как, выше описная команда измениет переменную PATH тольк на время сесии, это можно исправить так: меняем PATH
если во время установки, к примеру от пользователя www-data, произошла ошибка во время установке pfx, убедитесь, что
- пользователь есть владелец данной ЭЦП
- имеет доступ к директории, где лежит ЭЦП
- если выше два пункта не помогли, попробуйте удалить установленные контейнеры для данного пользователя по пути
/var/opt/cprocsp/keys/{пользователь}/{контейнер}/
Подпись файла
если сертификат установлен один, то можно подписывать без указания -sign
cryptcp -sign -thumbprint 52eeca8317ffc76c1e9c8c01a837776c36523abd -detach -der "scr.txt" "src.txt.sig" -nochain -norev
Подпись файла с передачей пароля
cryptcp -sign -thumbprint 52eeca8317ffc76c1e9c8c01a837776c36523abd -detach -der "scr.txt" "src.txt.sig" -nochain -norev -pin 1111
Получить список установленных сертифкатов
certmgr -list
Удалить сертифкат
certmgr -delete -thumbprint cd321b87fdabb503829f88db68d893b59a7c5dd3
Проверка подписи
cryptcp -verify -detach -thumbprint 6f601349d9dd1860dd158ca0cc8ff4b377ae87e0 --file 1.txt 1.txt.sig
Получаем хеш полученной подписи
certmgr -list -f 1.txt.sig | grep 'SHA1 Hash'
Установка сертифката без закрытого ключа
certmgr -inst -file file.crt
Установка ЭЦП ручной способ
# копируем
cp -R /path/to/key/999996.000 /var/opt/cprocsp/keys/<username>/
# даем парва
chmod 600 /var/opt/cprocsp/keys/<username>/999996.000/*
# можно сразу установить личные сертификатов из всех доступных контейнеров одной командой:
/opt/cprocsp/bin/amd64/csptestf -absorb -certs
# смотрим
certmgr -list
Получить тестовое ЭЦП от крипто
Установка ЭЦП в формтае PFX
# важна установка от sudo и с полным путем
sudo /opt/cprocsp/bin/amd64/certmgr -inst -pfx -pin 1 -file cert_em.pfx
# или
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mmy -pfx -pin пин-код -file ~/file.pfx
# ~/file.pfx - полный путь к pfx-файлу.
# и затем для установки сертифкатов из контенеров
sudo /opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
# если сертификат не появился, проверяем парва на контенйер в диретокри
/var/opt/cprocsp/keys/{пользователь}/{контейнер}/
Установка ЭЦП для пользователя www-data
sudo -u www-data /opt/cprocsp/bin/amd64/certmgr -install -store my -file cert_em.pfx -pfx -pin 1
Получени даны окончания сертифката из подписи файла
# указать в качестве хранилища сертификатов само сообщение (ключ -f):
/opt/cprocsp/bin/amd64/cryptcp -verify -f raport.pdf.sig -detached raport.pdf raport.pdf.sig
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Будет использован следующий сертификат:
Субъект:"АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, [email protected]
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Цепочки сертификатов проверены.
Папка './': raport.pdf...
Проверка подписи..
Автор подписи: "АКЦИОНЕРНОЕ ОБЩЕСТВО ""НАУЧНО-ПРОИЗВОДСТВЕННОЕ ОБЪЕДИНЕНИЕ РУССКИЕ БАЗОВЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ""", Москва, 77 г.
Москва, RU, шоссе Варшавское д. 26, [email protected]
Действителен с 02.10.2018 14:31:02 по 02.10.2019 14:41:02
Подпись проверена.
[ErrorCode: 0x00000000]
Ссылки
Работа с КриптоПро CSP на AstraLinux
Dmitriy32546
Оставлено
:
28 октября 2021 г. 17:00:59(UTC)
Добрый день.
CryptCP 5.0 (c) “Crypto-Pro”, 2002-2021.debian 10
Установил серты тестового УЦ:/opt/cprocsp/bin/amd64/certmgr -inst -store uRoot -file /home/signer/dev_cert2/rootca.cer/opt/cprocsp/bin/amd64/certmgr -inst -store uCa -file /home/signer/dev_cert2/ivanov3_test.cer/opt/cprocsp/bin/amd64/certmgr -install -pfx -file /home/signer/dev_cert2/ivanov3_test.pfx -pin test
Серты генерировал тут
https://www.cryptopro.ru/certsrv/certrqma.asp
При установке корневого сертификата получил предупреждение (ввел “o”):CPCSP: Warning: installing a root certificate with an unconfirmed thumbprint is a security risk. Do you want to install this certificate?Subject: Тестовый головной УЦ ООО “КРИПТО-ПРО” ГОСТ 2012 (УЦ 2.0)Thumbprint (sha1): 9E504E9099C79AA0883FBBFD619662739AC25420(o)OK, (c)Cancel
Информация о установленном сертификате:
signer@dev-scryptopro-service:~$ /opt/cprocsp/bin/amd64/certmgr -list
Certmgr 1.1 (c) “Crypto-Pro”, 2007-2021.
Program for managing certificates, CRLs and stores.
=============================================================================
1——-
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : [email protected], CN=Ivanov3, OU=IT, O=OOO, L=Moscow, S=Moscow, C=RU
Serial : 0x1200599C37C8A7ABD4384D8BE3000100599C37
SHA1 Thumbprint : c25ad71c6ce796033a15b747c6ed0ebbc210022d
SubjKeyID : d33bdddc5b79f9e455f4fcb79747c2e161535b30
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 13/10/2021 09:10:37 UTC
Not valid after : 13/01/2022 09:20:37 UTC
PrivateKey Link : Yes
Container : HDIMAGE\\Ivanov3.000\0518
Provider Name : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info : Provider Type: 80, Key Spec: 1, Flags: 0x0
CA cert URL : http://testca.cryptopro….Test%20Center%202(1).crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro….Test%20Center%202(1).crl
Extended Key Usage : 1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
Промежуточные:
/opt/cprocsp/bin/amd64/certmgr -list -store uCa
Certmgr 1.1 (c) “Crypto-Pro”, 2007-2021.
Program for managing certificates, CRLs and stores.
=============================================================================
1——-
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Serial : 0x37418882F539A5924AD44E3DE002EA3C
SHA1 Thumbprint : cd321b87fdabb503829f88db68d893b59a7c5dd3
SubjKeyID : 4e833e1469efec5d7a952b5f11fe37321649552b
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before : 27/05/2019 07:24:26 UTC
Not valid after : 26/05/2024 07:34:05 UTC
PrivateKey Link : No
2——-
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : [email protected], CN=Ivanov3, OU=IT, O=OOO, L=Moscow, S=Moscow, C=RU
Serial : 0x1200599C37C8A7ABD4384D8BE3000100599C37
SHA1 Thumbprint : c25ad71c6ce796033a15b747c6ed0ebbc210022d
SubjKeyID : d33bdddc5b79f9e455f4fcb79747c2e161535b30
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 13/10/2021 09:10:37 UTC
Not valid after : 13/01/2022 09:20:37 UTC
PrivateKey Link : No
CA cert URL : http://testca.cryptopro….Test%20Center%202(1).crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro….Test%20Center%202(1).crl
Extended Key Usage : 1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
=============================================================================
Корневые:
/opt/cprocsp/bin/amd64/certmgr -list -store uRoot
Certmgr 1.1 (c) “Crypto-Pro”, 2007-2021.
Program for managing certificates, CRLs and stores.
=============================================================================
1——-
Issuer : C=RU, INNLE=7717107991, [email protected], OGRN=1037700085444, S=77 Москва, L=Москва, STREET=ул. Сущёвский вал д. 18, O=”ООО “”КРИПТО-ПРО”””, CN=”Тестовый головной УЦ ООО “”КРИПТО-ПРО”” ГОСТ 2012 (УЦ 2.0)”
Subject : C=RU, INNLE=7717107991, [email protected], OGRN=1037700085444, S=77 Москва, L=Москва, STREET=ул. Сущёвский вал д. 18, O=”ООО “”КРИПТО-ПРО”””, CN=”Тестовый головной УЦ ООО “”КРИПТО-ПРО”” ГОСТ 2012 (УЦ 2.0)”
Serial : 0x03453C7B0071ADD9AB4C5FC8A8451F97A7
SHA1 Thumbprint : 9e504e9099c79aa0883fbbfd619662739ac25420
SubjKeyID : 86967f858c1b31aa92a68d14f28cbb1f212f5c3a
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 26/07/2021 07:18:42 UTC
Not valid after : 26/07/2036 07:18:42 UTC
PrivateKey Link : No
Написан код для pycades:signer = pycades.Signer()signer.Certificate = cert.Item(1)
signer.CheckCertificate = Truesigner.KeyPin=key_pin
hashedData = pycades.HashedData()hashedData.Algorithm = pycades.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256hashedData.Hash(xml_data)
signedData = pycades.SignedData()signature = signedData.SignHash(hashedData, signer, pycades.CADESCOM_CADES_BES)
При попытке выполнить подпись(signedData.SignHash) получаю ошибку:’A certificate chain processed correctly, but terminated in a root certificate which is not trusted by the trust provider (0x800B0109)’
Вадим137 Оставлено | |
Добрый день! Возникла необходимость подписать около 500 файлов c созданием каждому файлу отдельного файла .sig. Поштучно это будет адская работа….Подскажите есть ли возможность сделать цифровую подпись сразу всем файлам в папке? Отредактировано пользователем 9 марта 2022 г. 11:20:56(UTC) | |
nickm Оставлено | |
Написать командный сценарий с использованием “cryptcp”? А Вы как сами это видите? | |
Андрей Русев Оставлено | |
Здравствуйте. | |
1 пользователь поблагодарил Андрей Русев за этот пост. | |
Вадим137 Оставлено | |
Можно попросить Вас рассказать немного поподробнее об использовании этого пакетного режима? | |
Андрей Русев Оставлено | |
Код:
Ещё пример: Код:
Отредактировано пользователем 9 марта 2022 г. 12:34:32(UTC) | |
2 пользователей поблагодарили Андрей Русев за этот пост. nickm оставлено 09.03.2022(UTC), notarget оставлено 27.07.2022(UTC) | |
Chemannnnn Оставлено | |
Добрый день! Пример XML файла с подписью: Подпись CMS/PKCS#7 в DER кодировке. Отредактировано пользователем 30 ноября 2021 г. 17:25:40(UTC) | |
Chemannnnn Оставлено | |
Отвечу сам себе… Для получения данных без подписи закомментировал строку №12 (сертификаты) и две последних строки – №35 (декодирование подписи) и №36 (проверка подписи). Код с этими закомментированными строками работает – “чистые” данные (без прикреплённой подписи PKCS7) из подписанного файла получается достать. Но остались вопросы: P.S. Пробовал выполнить c раскомментированными строками №35 и №36 (вместо сертификатов указал null) и получил следующие исключения: Отредактировано пользователем 8 декабря 2021 г. 17:19:01(UTC) | |
Санчир Момолдаев Оставлено | |
Добрый день! Код:
то что вы указали в первом сообщении по всей видимости это DER представление ASN.1 если у вас подпись base64, то ее необходимо перекодировать из base64 и подать в конструктор | |
1 пользователь поблагодарил Санчир Момолдаев за этот пост. | |
Евгений Афанасьев Оставлено | |
Здравствуйте. | |
1 пользователь поблагодарил Евгений Афанасьев за этот пост. | |
Chemannnnn Оставлено | |
Здравствуйте. Благодарю за ответы. Немного разобравшись в терминах, почитав форум и исправив код получаю следующую ситуацию: При загрузке забыл указать параметр “-trustcacerts”, но keytool спросил про это и я ответил утвердительно – сертификат был добавлен в хранилище как доверенный: При листинге содержимого хранилища добавленный алиас сертификата отображается, отпечаток совпадает (проверил): 2. Исправил код, приведённый раннее в сообщении #2 (под верхним спойлером). Подписанные данные выгружаются в файл. Добавленный в хранилище сертификат тоже успешно вытаскивается из хранилища: Но при проверке подписи этим сертификатом (в строке #55) выбрасывается исключение: Строку #54 закомментировал, т.к. кодировка подписи DER (насколько понял, decode требуется при base64). При этом проверка подписи в “КриптоАРМ” завершается ошибкой, в а подробной информации о подписи следующий текст: В системе установлен сам JCP (в JRE) и “КриптоАРМ” для извлечения сертификата. КриптоПро CSP не установлен (он нужен?). Отредактировано пользователем 10 декабря 2021 г. 17:56:25(UTC) | |
Евгений Афанасьев Оставлено | |
Автор: Chemannnnn при проверке подписи этим сертификатом (в строке 55) выбрасывается исключение Сначала надо вызвать decode, потом verify. | |
1 пользователь поблагодарил Евгений Афанасьев за этот пост. | |
Chemannnnn Оставлено | |
Раскомментировал строку кода #54 (decode) – она отрабатывает без ошибок. Но на строке кода #55 (verify) теперь выбрасывается следующее исключение: | |
Евгений Афанасьев Оставлено | |
Теперь ошибка о том, что не удается построить цепочку. Если корневой сертификат цепочки установлен в cacerts, то возможно, существует также промежуточный, который надо передать в verify. | |
1 пользователь поблагодарил Евгений Афанасьев за этот пост. | |
Chemannnnn Оставлено | |
Автор: Евгений Афанасьев Теперь ошибка о том, что не удается построить цепочку. Если корневой сертификат цепочки установлен в cacerts, то возможно, существует также промежуточный, который надо передать в verify. Ещё раз спасибо за помощь, разобрался. т.е. без передачи множества сертификатов в метод verify (JCP, видимо, сама проверяет наличие всей цепочки нужных сертификатов в хранилище). | |
Автор: Захар Тихонов
Корневой сертификат достаточно установить в mRoot.
А CRL от тестового УЦ доступны на клиенте и на сервере по URL из сертификатов?
На клиенте выполните
1. csptest -tlsc -server bend.ru -port 443 -v -nosave
2. Разкоментируйте строчку и перезапустите службу и выполните
csptest -tlsc -server bend.ru -port 443 -v -nosave -user thumbprint
thumbprint – это отпечаток клиентского сертификата. И приложите сертификат клиента и сервера.
CRL от тестового УЦ доступны на клиенте – ДА, на сервере -НЕТ, но установил руками в mCA.
Без требования клиентского сертификата csptest -tlsc -server bend.ru -port 443 -v -nosave
Цитата:
11 algorithms supported:
Aglid Class OID
[00] 0x661e 0x6000 1.2.643.2.2.21 (ГОСТ 28147-89)
[01] 0x6631 0x6000 1.2.643.7.1.1.5.2 (ГОСТ Р 34.12-2015 Кузнечик)
[02] 0x6630 0x6000 1.2.643.7.1.1.5.1 (ГОСТ Р 34.12-2015 Магма)
[03] 0x801e 0x8000 1.2.643.2.2.3 (ГОСТ Р 34.11/34.10-2001)
[04] 0x8021 0x8000 1.2.643.7.1.1.2.2 (ГОСТ Р 34.11-2012 256 бит)
[05] 0x801f 0x8000
[06] 0x803d 0x8000
[07] 0x803c 0x8000
[08] 0x2e23 0x2000 1.2.643.2.2.19 (ГОСТ Р 34.10-2001)
[09] 0x2e49 0x2000 1.2.643.7.1.1.1.1 (ГОСТ Р 34.10-2012 256 бит)
[10] 0x2e3d 0x2000 1.2.643.7.1.1.1.2 (ГОСТ Р 34.10-2012 512 бит)
Cipher strengths: 256..256
Supported protocols: 0xa80:
Transport Layer Security 1.0 client side
Transport Layer Security 1.1 client side
Transport Layer Security 1.2 client side
dwProtocolMask: 0x800e2aaa
Protocol version: 3.3
ClientHello: RecordLayer: TLS, Len: 165
SessionId: (empty)
Cipher Suites: (c1 00) (c1 01) (c1 02) (ff 85) (00 81) (c0 30) (c0 2f) (c0 28) (c0 27) (c0 14) (c0 13) (00 9d) (00 9c) (00 3d) (00 3c) (00 35) (00 2f) (00 0a)
170 bytes of handshake data sent
1460 bytes of handshake data received
2904 bytes of handshake data received
229 bytes of handshake data sent
63 bytes of handshake data received
Handshake was successful
SECPKG_ATTR_SESSION_INFO: Reuse: 0, SessionId: 120957f94feae1da7d3264c453f5b1ebd8831ca4aa2658646a082f1fe4e35bea
SECPKG_ATTR_CIPHER_INFO: Version: 1
SECPKG_ATTR_CIPHER_INFO: Protocol: 303
SECPKG_ATTR_CIPHER_INFO: CipherSuite: c100, TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC
SECPKG_ATTR_CIPHER_INFO: BaseCipherSuite: c100
SECPKG_ATTR_CIPHER_INFO: Cipher: GR 34.12-15 K, Len: 256, BlockLen: 1
SECPKG_ATTR_CIPHER_INFO: Hash: GR 34.11-2012 256, Len: 256
SECPKG_ATTR_CIPHER_INFO: Exchange: GOST DH 34.10-2012 256, MinLen: 512, MaxLen: 512
SECPKG_ATTR_CIPHER_INFO: Certificate: GR 34.10-2012 256, KeyType: 0
SECPKG_ATTR_CONNECTION_INFO: Protocol: 0x800 (TLS 1.2)SECPKG_ATTR_CONNECTION_INFO: Cipher: 0x6631SECPKG_ATTR_CONNECTION_INFO: Cipher strength: 256SECPKG_ATTR_CONNECTION_INFO: Hash: 0x8021SECPKG_ATTR_CONNECTION_INFO: Hash strength: 256SECPKG_ATTR_CONNECTION_INFO: Exch: 0xaa47SECPKG_ATTR_CONNECTION_INFO: Key exchange strength: 512
SECPKG_ATTR_KEY_INFO: KeySize: 256SECPKG_ATTR_KEY_INFO: SignatureAlgorithm: 0x2e23, Name: GOST R 34.11SECPKG_ATTR_KEY_INFO: EncryptAlgorithm: 0x6631, Name: GR 34.12-2015 Kuznyechik
SECPKG_ATTR_SUPPORTED_SIGNATURES: Supported signatures: (ee ee) (40 08) (ef ef) (41 08) (ed ed)
SECPKG_ATTR_NAMES: STREET=”улица , дом 1″, UnstructuredName=”INNLE=77553423/KPP=88888888/OGRN=1111111111″, INNLE=72222222, E=info@ru, OGRN=22222222222, C=RU, S=77 Москва, L=Москва, O=”АО “”COMPANY”””, CN=”АО “”COMPANY”””
SECPKG_ATTR_PACKAGE_INFO: fCapabilities: 0x107B3SECPKG_ATTR_PACKAGE_INFO: wVersion: 1SECPKG_ATTR_PACKAGE_INFO: wRPCID: 65535SECPKG_ATTR_PACKAGE_INFO: cbMaxToken: 16379SECPKG_ATTR_PACKAGE_INFO: Name: CryptoPro SSPSECPKG_ATTR_PACKAGE_INFO: Comment: CryptoPro Security Package
Server certificate:
Subject: STREET=”улица , дом 1″, UnstructuredName=”INNLE=77553423/KPP=88888888/OGRN=1111111111″, INNLE=72222222, E=info@ru, OGRN=22222222222, C=RU, S=77 Москва, L=Москва, O=”АО “”COMPANY”””, CN=”АО “”COMPANY”””
Valid : 27.05.2022 09:14:17 – 27.05.2023 09:24:17 (UTC)
Issuer : [email protected], OGRN=1097746299353, INN=007707704692, C=RU, S=77 Москва, L=Москва, STREET=”ул. Кожевническая, д. 14, стр. 5″, OU=Удостоверяющий центр, O=”АО “”ЕЭТП”””, CN=”АО “”ЕЭТП”””
PrivKey: 27.05.2022 09:14:16 – 27.05.2023 09:14:16 (UTC)
SECPKG_ATTR_STREAM_SIZES: Header: 5, Trailer: 16, MaxMessage: 16384
SECPKG_ATTR_STREAM_SIZES: Buffers: 4, BlockSize: 1
SECPKG_ATTR_SIZES: MaxToken: 16384
SECPKG_ATTR_SIZES: MaxSignature: 16
SECPKG_ATTR_SIZES: BlockSize: 1
SECPKG_ATTR_SIZES: SecurityTrailer: 21
HTTP request: GET / HTTP/1.1
User-Agent: Webclient
Accept:*/*
Host: bend.ru
Connection: close
Sending plaintext: 100 bytes
142 bytes of application data sent
314 bytes of (encrypted) application data received
Decrypted data: 270 bytes
Extra data: 23 bytes
Context expired: OK if file is completely downloaded
Reply status: HTTP/1.1 200 OK
Sending Close Notify
23 bytes of handshake data sent
1 connections, 270 bytes in 0.237 seconds;
Total: SYS: 0.030 sec USR: 0.040 sec UTC: 0.260 sec
[ErrorCode: 0x00000000]
С требованием клиентского сертификата csptest -tlsc -server bend.ru -port 443 -v -nosave
Цитата:
11 algorithms supported:
Aglid Class OID
[00] 0x661e 0x6000 1.2.643.2.2.21 (ГОСТ 28147-89)
[01] 0x6631 0x6000 1.2.643.7.1.1.5.2 (ГОСТ Р 34.12-2015 Кузнечик)
[02] 0x6630 0x6000 1.2.643.7.1.1.5.1 (ГОСТ Р 34.12-2015 Магма)
[03] 0x801e 0x8000 1.2.643.2.2.3 (ГОСТ Р 34.11/34.10-2001)
[04] 0x8021 0x8000 1.2.643.7.1.1.2.2 (ГОСТ Р 34.11-2012 256 бит)
[05] 0x801f 0x8000
[06] 0x803d 0x8000
[07] 0x803c 0x8000
[08] 0x2e23 0x2000 1.2.643.2.2.19 (ГОСТ Р 34.10-2001)
[09] 0x2e49 0x2000 1.2.643.7.1.1.1.1 (ГОСТ Р 34.10-2012 256 бит)
[10] 0x2e3d 0x2000 1.2.643.7.1.1.1.2 (ГОСТ Р 34.10-2012 512 бит)
Cipher strengths: 256..256
Supported protocols: 0xa80:
Transport Layer Security 1.0 client side
Transport Layer Security 1.1 client side
Transport Layer Security 1.2 client side
dwProtocolMask: 0x800e2aaa
Protocol version: 3.3
ClientHello: RecordLayer: TLS, Len: 165
SessionId: (empty)
Cipher Suites: (c1 00) (c1 01) (c1 02) (ff 85) (00 81) (c0 30) (c0 2f) (c0 28) (c0 27) (c0 14) (c0 13) (00 9d) (00 9c) (00 3d) (00 3c) (00 35) (00 2f) (00 0a)
170 bytes of handshake data sent
1460 bytes of handshake data received
1460 bytes of handshake data received
2718 bytes of handshake data received
Server requested new credentials!
Trying to create new credential
Issuer 0: [email protected], CN= ТЕСТ, OU=IT, O=IT, L=Moscow, S=Moscow, C=RU
Issuer 1: [email protected], OGRN=1097746299353, INN=007707704692, C=RU, S=77 Москва, L=Москва, STREET=”ул. Кожевническая, д. 14, стр. 5″, OU=Удостоверяющий центр, O=”АО “”ЕЭТП”””, CN=”АО “”ЕЭТП”””
Issuer 2: STREET=”улица , дом 1″, UnstructuredName=”INNLE=742143224/KPP=7432141/OGRN=103423477″, INNLE=7424224, E=info@ru, OGRN=1042314327, C=RU, S=77 Москва, L=Москва, O=”АО “””””, CN=”АО “””””
Issuer 3: [email protected], C=RU, S=77 Москва, L=г. Москва, STREET=”улица Тверская, дом 7″, O=Минкомсвязь России, OGRN=1047702026701, INN=007710474375, CN=Минкомсвязь России
Issuer 4: [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Issuers: 5, Length: 1261 bytes
Client certificate:
Subject: [email protected], CN=ТЕСТ, OU=IT, O=IT, L=Moscow, S=Moscow, C=RU
Valid : 26.05.2022 14:37:01 – 26.08.2022 14:47:01 (UTC)
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
CPCSP: CryptoPro CSP license is expired or not yet valid.
(o) OK
OK
new schannel credential created
11 algorithms supported:
Aglid Class OID
[00] 0x661e 0x6000 1.2.643.2.2.21 (ГОСТ 28147-89)
[01] 0x6631 0x6000 1.2.643.7.1.1.5.2 (ГОСТ Р 34.12-2015 Кузнечик)
[02] 0x6630 0x6000 1.2.643.7.1.1.5.1 (ГОСТ Р 34.12-2015 Магма)
[03] 0x801e 0x8000 1.2.643.2.2.3 (ГОСТ Р 34.11/34.10-2001)
[04] 0x8021 0x8000 1.2.643.7.1.1.2.2 (ГОСТ Р 34.11-2012 256 бит)
[05] 0x801f 0x8000
[06] 0x803d 0x8000
[07] 0x803c 0x8000
[08] 0x2e23 0x2000 1.2.643.2.2.19 (ГОСТ Р 34.10-2001)
[09] 0x2e49 0x2000 1.2.643.7.1.1.1.1 (ГОСТ Р 34.10-2012 256 бит)
[10] 0x2e3d 0x2000 1.2.643.7.1.1.1.2 (ГОСТ Р 34.10-2012 512 бит)
Cipher strengths: 256..256
Supported protocols: 0xa80:
Transport Layer Security 1.0 client side
Transport Layer Security 1.1 client side
Transport Layer Security 1.2 client side
dwProtocolMask: 0x800e2aaa
**** Error 0xffffffff80090304 returned by InitializeSecurityContext (2)
../../../../CSPbuild/CSP/samples/csptest/WebClient.c:765:Error performing handshake.
Error 0x80090304: The Local Security Authority cannot be contacted
Total: SYS: 0.010 sec USR: 0.010 sec UTC: 3.030 sec
[ErrorCode: 0x80090304]
csptest -tlsc -server bend.ru -port 443 -v -nosave -user 7b9aa5fc636bf036f6b2a36d59b8fcacf4ee37c6
Цитата:
#0:
Subject: [email protected], CN= ТЕСТ, OU=IT, O=IT, L=Moscow, S=Moscow, C=RU
Valid : 26.05.2022 14:37:01 – 26.08.2022 14:47:01 (UTC)
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Client certificate:
Subject: [email protected], CN=ТЕСТ, OU=IT, O=IT, L=Moscow, S=Moscow, C=RU
Valid : 26.05.2022 14:37:01 – 26.08.2022 14:47:01 (UTC)
Issuer : [email protected], C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
(o) OK
OK
11 algorithms supported:
Aglid Class OID
[00] 0x661e 0x6000 1.2.643.2.2.21 (ГОСТ 28147-89)
[01] 0x6631 0x6000 1.2.643.7.1.1.5.2 (ГОСТ Р 34.12-2015 Кузнечик)
[02] 0x6630 0x6000 1.2.643.7.1.1.5.1 (ГОСТ Р 34.12-2015 Магма)
[03] 0x801e 0x8000 1.2.643.2.2.3 (ГОСТ Р 34.11/34.10-2001)
[04] 0x8021 0x8000 1.2.643.7.1.1.2.2 (ГОСТ Р 34.11-2012 256 бит)
[05] 0x801f 0x8000
[06] 0x803d 0x8000
[07] 0x803c 0x8000
[08] 0x2e23 0x2000 1.2.643.2.2.19 (ГОСТ Р 34.10-2001)
[09] 0x2e49 0x2000 1.2.643.7.1.1.1.1 (ГОСТ Р 34.10-2012 256 бит)
[10] 0x2e3d 0x2000 1.2.643.7.1.1.1.2 (ГОСТ Р 34.10-2012 512 бит)
Cipher strengths: 256..256
Supported protocols: 0xa80:
Transport Layer Security 1.0 client side
Transport Layer Security 1.1 client side
Transport Layer Security 1.2 client side
dwProtocolMask: 0x800e2aaa
Protocol version: 3.3
ClientHello: RecordLayer: TLS, Len: 113
SessionId: (empty)
Cipher Suites: (c1 00) (c1 01) (c1 02) (ff 85) (00 81)
118 bytes of handshake data sent
1460 bytes of handshake data received
1460 bytes of handshake data received
2718 bytes of handshake data received
**** Error 0xffffffff80090304 returned by InitializeSecurityContext (2)
../../../../CSPbuild/CSP/samples/csptest/WebClient.c:765:Error performing handshake.
Error 0x80090304: The Local Security Authority cannot be contacted
Total: SYS: 0.060 sec USR: 0.000 sec UTC: 2.060 sec
[ErrorCode: 0x80090304]
Отредактировано пользователем 1 июля 2022 г. 9:54:57(UTC)
| Причина: Не указана
Настройка проверки формата сертификатов
Сервис Проверки Подписи «КриптоПро SVS» позволяет настроить дополнительную проверку
соответствия полей сертификата установленной форме.
Проверка происходит на основании структуры полей, представленных в следующих правилах.
- Версия (version). Версия сертификата должна быть не ниже 3.
- Серийный номер (serial number). Проверяется наличие номера и отсутствие в нем недопустимых символов.
- Алгоритм подписи (signature). В поле algorithm, входящем в состав поля signature, должен содержаться идентификатор используемого алгоритма подписи:
- ГОСТ Р 34.10–2012 с ключом длиной 256 бит: “1.2.643.7.1.1.3.2”, szOID_CP_GOST_R3411_12_256_R3410
- ГОСТ Р 34.10–2012 с ключом длиной 512 бит: “1.2.643.7.1.1.3.3”, szOID_CP_GOST_R3411_12_512_R3410
- (для архивного хранения и проверки подписи) ГОСТ Р 34.10-2001: “1.2.643.2.2.3”, szOID_CP_GOST_R3411_R3410EL
- Имя издателя (issuer) — проверяется только наличие его в сертификате.
- Дата и время начала действия сертификата (notBefore).
- Дата и время окончания действия сертификата (notAfter).
- Имя владельца сертификата (subject).
Возможна проверка следующих компонентов имени владельца сертификата (компоненты имени проверяются на допустимые символы, длину, если такие требования имеются):- ФИО или наименование владельца (и другие сведения, если требуется) (commonName, title, surname, givenName)
- Местонахождение (countryName, stateOrProvinceName, localityName, streetAddress)
- СНИЛС (SNILS)
- ОГРН (OGRN)
- ОГРНИП (OGRNIP)
- ИНН (INN)
- ИНН юридического лица (ЮЛ) (INNLE)
- совпадение общего имени и наименования организации (CN=O)
- тип идентификации заявителя (identificationKind)
- Открытый ключ (subjectPublicKeyInfo). Проверяется только наличие его в сертификате.
- Дополнения (расширения) сертификата (Extensions). Проверяется только наличие следующих расширений в сертификате.
- Authority Key Identifier, OID.2.5.29.35, идентификатор ключа УЦ.
- Key Usage, OID.2.5.29.15, область использования ключа.
- Certificate Policies, OID.2.5.29.32, политики сертификата. Для данного расширения проверяется содержимое в соответствии с требованиями, указанными в Приказе ФСБ РФ от 27 декабря 2011 г. N 795.
- Subject Sign Tool, OID.1.2.643.100.111, сведения о средстве ЭП владельца сертификата.
- Issuer Sign Tool, OID.1.2.643.100.112, сведения о средствах ЭП УЦ и средствах УЦ.
- ExtendedKeyUsage, OID.2.5.29.37, расширенное использование ключа. Состав дополнения (расширения) зависит от информационной системы, в которой используется сертификат.
- CDP, OID.2.5.29.31, точки распространения списков сертификатов, досрочно прекративших действие (CRL).
- IdentificationKind, OID.1.2.643.100.114, идентификация заявителя.
Проверка сертификата выполняется при помощи специального плагина. Для активации проверки
сертификатов необходимо зарегистрировать плагин с помощью Windows PowerShell. После
установки КриптоПро SVS плагин находится в директории <Путь установки>\cprodss\Plugins\certverifiers\
и называется SVS.CertificateVerifier.Qualified.dll.
Для регистрации и настройки плагина проверки формата сертификатов используются командлеты
Add-VsCertificateVerifierPlugin, Get-VsCertificateVerifierPlugin,
Remove-VsCertificateVerifierPlugin.
Для настройки проверки того, что сертификаты выданы определенным УЦ, необходимо выполнение следующих действий:
зарегистрировать отпечатки корневых сертификатов в КриптоПро SVS. Работа с отпечатками производится при помощи командлетов
Add-VsQualifiedCAThumbprints, Get-VsQualifiedCAThumbprints
и Remove-VsQualifiedCAThumbprints. Если отпечатки не заданы, данная проверка сертификатов проводиться не будет.установить корневые сертификаты УЦ в выделенное хранилище КриптоПро SVS. Хранилище создается автоматически при установке
КриптоПро SVS и имеет название вида <Имя веб-приложения SVS>-TSL.
Пример настройки плагина
# Регистрация плагина и настройка пути к файлу TSL
Add-VsCertificateVerifierPlugin -Assembly SVS.CertificateVerifier.Qualified.dll -PluginDescription "Проверка сертификата на соответствие установленной форме" -Parameters @{'TSLPath'='C:\TSL.xml'}
# Добавление отпечатков корневых сертификатов Минцифры РФ
Add-VsQualifiedCAThumbprints -Thumbprint 4bc6dc14d97010c41a26e058ad851f81c842415a
Add-VsQualifiedCAThumbprints -Thumbprint aff05c9e2464941e7ec2ab15c91539360b79aa9d
Add-VsQualifiedCAThumbprints -Thumbprint 2f0cb09be3550ef17ec4f29c90abd18bfcaad63a
Если плагин зарегистрирован и настроен, в веб-интерфейсе КриптоПро SVS при проверке
сертификата будет выводиться дополнительная информация о соответствии его заданным правилам.
При проверке ЭП также будет осуществляться проверка данного сертификата.
Дополнительные параметры плагина:
- LocationCheck – требовать обязательного наличия компонентов местонахождения. Возможные значения: true, false. Значение по умолчанию false;
- OrganizationNameStrictCheck – требовать совпадения значений компонентов имени CN и O в сертификате. Возможные значения: true, false. Значение по умолчанию false;
- INNforLECheckMode – режим проверки ИНН ЮЛ. Возможные значения: Any, Soft, Strict. Значение по умолчанию Soft.
- Any – требуется присутствие INN и/или INNLE;
- Soft – требуется присутствие INNLE; присутствие INN докускается;
- Strict – требуется присутствие только INNLE.
- TSLPath – полный путь к файлу TSL.
Для проверки УЦ на принадлежность к заданному списку УЦ необходимо указать путь к файлу со списком
УЦ Tsl.xml в параметре TSLPath.
Загрузка файла Tsl.xml возможна следующими способами:
DSS.TslTool.exe --skipcrl --skipcerts --skiproot
Файл TSL будет загружен в папку tmp в каталоге утилиты Dss.TslTool.exe.
- при помощи команды
wget
в консоли Powershell
wget https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml -OutFile E:\tmp\tsl.xml
SVS автоматически отслеживает изменения файла TSL, путь к которому указан в параметре TSLPath.
Скопировать актуальный файл TSL можно с помощью Powershell-скрипта, приведенного ниже.
Данный скрипт возможно добавить в планировщик задач и выполнять раз в сутки (или чаще).
Пример скрипта копирования TSL:
$ErrorActionPreference = "Stop"
# Полный путь к загруженному файлу TSL
$sourceFile = "E:\tmp\tsl_source\tsl.xml"
# Полный путь к файлу TSL, используемому SVS
$destinationFile = "E:\tmp\tsl_target\tsl.xml"
# Загрузка файла TSL
wget https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml -OutFile $sourceFile
if (!(Test-Path $sourceFile -PathType Leaf)) {
# Загруженный файл TSL отсутствует
Write-Host "Файл TSL отсутствует! " $sourceFile
exit 2;
}
$targetFolder1 = Split-Path $destinationFile -Parent
if (!(Test-Path $targetFolder1 -PathType Container)) {
# Не существует каталог, в который требуется скопировать файл TSL
Write-Host "Каталог не существует! " $targetFolder1
exit 2;
}
if (!(Test-Path $destinationFile -PathType Leaf)) {
Write-Host "Копирование нового файла TSL..."
# Целевой файл TSL отсутствует
# Просто копируем файл TSL
Copy-Item $sourceFile -Destination $destinationFile
} else {
# Целевой файл TSL присутствует
# Копируем файл TSL при помощи временного файла
Write-Host "Замена существующего файла TSL... "
$targetFolder = Split-Path $destinationFile -Parent
$tmpTslPath = Join-Path -Path $targetFolder -ChildPath "temp_tsl.xml"
if (Test-Path $tmpTslPath -PathType Leaf) {
# Если временный файл существует, удалим его
Remove-Item $tmpTslPath -Force
}
# Копируем TSL во временный файл
Copy-Item $sourceFile -Destination $tmpTslPath
# Перемещаем TSL в целевой файл
Move-Item $tmpTslPath -Destination $destinationFile -Force
}
Настройка выполнения проверки полей сертификата по умолчанию
Проверка соответствия полей сертификата установленной форме при помощи описанного в данном разделе плагина
может применяться по умолчанию как в веб-интерфейсе SVS, так и при обращении к SVS с использованием REST API.
Для этого в настройках плагина необходимо указать флаг CheckByDefaultRequired.
Set-VsCertificateVerifierPlugin -ID 1 -CheckByDefaultRequired 1
В зависимости от интерфейса SVS данная настройка будет применена следующим образом:
- в веб-интерфейсе SVS – напротив пункта “Проверка сертификата на соответствие установленной форме” (или иной формулировке, если это было указано при настройке плагина) в разделе “Дополнительные проверки” по умолчанию будет активирован чекбокс. Пользователь может самостоятельно отключить проверку, деактивировав данный чекбокс перед отправкой сертификата на проверку.
- при использовании REST API SVS – параметр зависит от переданного в запросе списка CertVerifiersPluginsIds:
- если список передан – проверка не учитывается, будут применены плагины, указанные в списке;
- если список передан со значением NULL – проверка не учитывается, никакие дополнительные проверки к сертификату применяться не будут;
- если список НЕ передан (отсутствует в запросе) – проверка учитывается, сертификат будет проверен в соответствии с настройками плагина, описанного в данном разделе.
Для прикладных систем, взаимодействующих с КриптоПро SVS через REST API, но не умеющих обрабатывать результаты дополнительных
проверок сертификатов (параметр CertificateVerificationResult),
можно включить неуспешный результат проверки в основное сообщение об ошибке (параметр Message).
Данное поведение можно настроить при помощи следующей команды.
Set-VsProperties -IncludeCertPluginErrorInfoInMainError 1
Restart-VsInstance
Как посмотреть информацию о сертификате ключа электронной подписи
Важно! Если при получении сертификата вы установили пароль на контейнер, возможность просмотреть его отсутствует. Рекомендуем:
- Вспомнить или подобрать пароль (количество попыток ввода пароля не ограничено);
- Переустановить сертификат из копии этого ключевого контейнера без пароля, если она есть;
- Если копия отсутствует и пароль Вы не вспомнили, получить новый сертификат.
Просмотреть информацию о сертификате ключа подписи можно:
- В «Личном кабинете» в нижней части вкладки «Договор» — «Список сертификатов».
- В Internet Explorer в меню «Сервис» — «Свойства обозревателя» — закладка «Содержание» — «Сертификаты». Двойным щелчком мыши откройте нужный сертификат.
- В «КриптоПро CSP» (меню «Пуск» – «Панель управления» — «КриптоПро CSP» — «Сервис») нажмите кнопку «Просмотреть сертификаты в контейнере» — «Обзор» — выберите нужный ключевой контейнер (сертификат) – нажмите кнопку «Далее» — откройте сертификат с помощью кнопки «Свойства».
На вкладке «Общие» будет отображена следующая информация:
- На кого выдан сертификат.
- Дата генерации сертификата.
- Срок действия сертификата.
- Кем сертификат выдан, если сертификат получен в компании «Такском».
На вкладке «Состав» можно посмотреть:
- серийный номер (вторая строка сверху);
- отпечаток сертификата (последняя строка);
- с помощью какого криптопровайдера был выпущен сертификат (поле «Средства электронной подписи»).