Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline mikl92  
#1 Оставлено : 19 января 2022 г. 16:49:39(UTC)
mikl92

Статус: Участник

Группы: Участники
Зарегистрирован: 17.09.2014(UTC)
Сообщений: 14

Сказал(а) «Спасибо»: 3 раз
Добрый день! Мне требуется отсеивать подписи по промежуточным сертификатам. Я установил их в локальное хранилище компьютера командой:
certmgr -inst -store mCA -file {file}
Корневой сертификат установил с помощью:
certmgr -inst -store mRoot -file {file}
Личных сертификатов всего два:
Пупкин И.О.
Пупкин И.А.

Проверяю файл, подписанный подписью не из списка mCA командой:
cryptcp -verify -verall -errchain -detached /tmp/doc.xlsx /tmp/doc.xlsx.sig -f /tmp/doc.xlsx.sig
Результат:
Certificates found: 3
Certificate chains are checked.
Folder '/tmp/':
/tmp/doc.xlsx... Signature verifying...
Signer: Иванов Иван Иванович и т.д.
Signature's verified.
[ErrorCode: 0x00000000]

Но данный результат меня не устраивает, т.к. промежуточный сертификат не находится в моем списке доверенных сертификатов.
Проверка без ключа -f {file} даёт тот же результат.

1) Как мне сделать проверку подписи используя только сертификаты, установленные в моем хранилище?
2) И будет ли работать проверка цепочки сертификатов, если конечный сертификат пользователя не находится в моем списке личных сертификатов?
Offline Андрей *  
#2 Оставлено : 19 января 2022 г. 17:06:02(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,691
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2046 раз в 1586 постах
Здравствуйте.

Доверенные корневые ЦС (прямо так и написано )..
mCA - это промежуточные ЦС ...

Если есть доверие к корневому - будет проверяться.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 19 января 2022 г. 17:36:03(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,691
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2046 раз в 1586 постах
-nonet
+ ставить crl тогда вручную, кеш чистить... ?
Техническую поддержку оказываем тут
Наша база знаний
Offline mikl92  
#4 Оставлено : 19 января 2022 г. 18:11:32(UTC)
mikl92

Статус: Участник

Группы: Участники
Зарегистрирован: 17.09.2014(UTC)
Сообщений: 14

Сказал(а) «Спасибо»: 3 раз
Автор: Андрей * Перейти к цитате
Здравствуйте.

Доверенные корневые ЦС (прямо так и написано )..
mCA - это промежуточные ЦС ...

Если есть доверие к корневому - будет проверяться.

Это я понимаю.

Автор: Андрей * Перейти к цитате
-nonet
+ ставить crl тогда вручную, кеш чистить... ?


Crl вручную установил и отслеживаю актуальность.
Добавление -nonet не помогло. Подпись все равно проходит проверку, хотя в системе не установлен данный сертификат (проверял командой certmgr -list -store mCA -thumbprint {Отпечаток}).

Дело в том, что с этого года начал действовать 63-ФЗ, согласно которому проверку проходят только те подписи, которые находятся в списке минцифры. И мне нужно отфильтровать промежуточные УЦ. Я, конечно, могу получать из сертификата ИНН компании, выдавшей сертификат, но это лишнее действие. Хотелось бы с помощью одной команды проверять подписи, используя только предустановленные сертификаты
Offline TolikTipaTut1  
#5 Оставлено : 19 января 2022 г. 18:31:57(UTC)
TolikTipaTut1

Статус: Активный участник

Группы: Участники
Зарегистрирован: 05.07.2018(UTC)
Сообщений: 467

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Попробуйте добавить серты, которым вы не доверяете, в недоверенные. Посмотрите, будет ли проходить проверка?
Offline mikl92  
#6 Оставлено : 19 января 2022 г. 18:59:36(UTC)
mikl92

Статус: Участник

Группы: Участники
Зарегистрирован: 17.09.2014(UTC)
Сообщений: 14

Сказал(а) «Спасибо»: 3 раз
Автор: TolikTipaTut1 Перейти к цитате
Попробуйте добавить серты, которым вы не доверяете, в недоверенные. Посмотрите, будет ли проходить проверка?


А как на linux добавить сертификат в список недоверенных? Как называется такое хранилище?
Offline TolikTipaTut1  
#7 Оставлено : 19 января 2022 г. 19:07:52(UTC)
TolikTipaTut1

Статус: Активный участник

Группы: Участники
Зарегистрирован: 05.07.2018(UTC)
Сообщений: 467

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Автор: mikl92 Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Попробуйте добавить серты, которым вы не доверяете, в недоверенные. Посмотрите, будет ли проходить проверка?


А как на linux добавить сертификат в список недоверенных? Как называется такое хранилище?


На линукс "одной командой" не обойтись. Придется так или иначе, скорее всего, писать скрипт, или прогу. В целом, вытащить thumbprint из серта, и проверить его наличие в хранилище, не проблема.

Схема должна быть вот какая:
1. Вы получили ЭП
2. Вы извлекли серт из ЭП
3. Получили отпечаток серта
4. Посмотрели, есть ли такой серт у вас в доверенных
5. Если нет - досрочное завершение с ошибкой, если есть - проверяйте подпись дальше

Как делать
2 и 3:
Код:
openssl pkcs7 -inform PEM -in Desktop/11.txt -print_certs | openssl x509 -fingerprint -noout #тут мы извлекаем thumbprint сертификата

4. Через certutil думаю получится все забрать
5. Ну тут какое-то условие должно быть. Я не знаю, что вы используете. Лично я с powershell на линухе :)))))

В итоге выйдет строк 5 или 6 максимум

Отредактировано пользователем 19 января 2022 г. 19:16:58(UTC)  | Причина: Не указана

Offline TolikTipaTut1  
#8 Оставлено : 19 января 2022 г. 19:26:25(UTC)
TolikTipaTut1

Статус: Активный участник

Группы: Участники
Зарегистрирован: 05.07.2018(UTC)
Сообщений: 467

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Да, у меня вышло 7 строк... Писал прям на коленке. Скрипт на powershell
Код:
$thumb = openssl pkcs7 -inform PEM -in ~/Desktop/11.txt -print_certs | openssl x509 -fingerprint -noout | % {$_ -split "="} | select -Index 1 | % {$_ -replace ":", ""} #Эта часть скрипта из этого: SHA1 Fingerprint=CD:32:1B:87:FD:AB:B5:03:82:9F:88:DB:68:D8:93:B5:9A:7C:5D:D3 делает это: CD321B87FDABB503829F88DB68D893B59A7C5DD3
$flag = $false
gci -Recurse -Path ~/Certs | % {if ($thumb -eq $_.FullName) {$flag = $true; break}} #Можно через certmgr искать в конкретном Store, чтобы с циклами не маяться
switch ($flag) {
    $true {cryptcp <#тут параметры у каждого свои#>; break}
    $false {Write-Host -ForegroundColor Red -Object "Aborting! No trust!"}
}

Отредактировано пользователем 19 января 2022 г. 19:28:31(UTC)  | Причина: Не указана

Offline mikl92  
#9 Оставлено : 19 января 2022 г. 20:44:37(UTC)
mikl92

Статус: Участник

Группы: Участники
Зарегистрирован: 17.09.2014(UTC)
Сообщений: 14

Сказал(а) «Спасибо»: 3 раз
Автор: TolikTipaTut1 Перейти к цитате
Автор: mikl92 Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Попробуйте добавить серты, которым вы не доверяете, в недоверенные. Посмотрите, будет ли проходить проверка?


А как на linux добавить сертификат в список недоверенных? Как называется такое хранилище?


На линукс "одной командой" не обойтись. Придется так или иначе, скорее всего, писать скрипт, или прогу. В целом, вытащить thumbprint из серта, и проверить его наличие в хранилище, не проблема.

Схема должна быть вот какая:
1. Вы получили ЭП
2. Вы извлекли серт из ЭП
3. Получили отпечаток серта
4. Посмотрели, есть ли такой серт у вас в доверенных
5. Если нет - досрочное завершение с ошибкой, если есть - проверяйте подпись дальше

Как делать
2 и 3:
Код:
openssl pkcs7 -inform PEM -in Desktop/11.txt -print_certs | openssl x509 -fingerprint -noout #тут мы извлекаем thumbprint сертификата

4. Через certutil думаю получится все забрать
5. Ну тут какое-то условие должно быть. Я не знаю, что вы используете. Лично я с powershell на линухе :)))))

В итоге выйдет строк 5 или 6 максимум


Спасибо. Я думал, что просто недостаточно разобрался в cryptcp и моя проблема легко решается добавлением какой-нибудь опции.
По поводу алгоритма: всё правильно, но чтобы получить отпечаток промежуточного сертификата, нужно брать не первый из списка, а второй (если не попадется подписей без вложенного сертификата корневого УЦ или с двумя промежуточными).
Offline TolikTipaTut1  
#10 Оставлено : 19 января 2022 г. 20:49:47(UTC)
TolikTipaTut1

Статус: Активный участник

Группы: Участники
Зарегистрирован: 05.07.2018(UTC)
Сообщений: 467

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Автор: mikl92 Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Автор: mikl92 Перейти к цитате
Автор: TolikTipaTut1 Перейти к цитате
Попробуйте добавить серты, которым вы не доверяете, в недоверенные. Посмотрите, будет ли проходить проверка?


А как на linux добавить сертификат в список недоверенных? Как называется такое хранилище?


На линукс "одной командой" не обойтись. Придется так или иначе, скорее всего, писать скрипт, или прогу. В целом, вытащить thumbprint из серта, и проверить его наличие в хранилище, не проблема.

Схема должна быть вот какая:
1. Вы получили ЭП
2. Вы извлекли серт из ЭП
3. Получили отпечаток серта
4. Посмотрели, есть ли такой серт у вас в доверенных
5. Если нет - досрочное завершение с ошибкой, если есть - проверяйте подпись дальше

Как делать
2 и 3:
Код:
openssl pkcs7 -inform PEM -in Desktop/11.txt -print_certs | openssl x509 -fingerprint -noout #тут мы извлекаем thumbprint сертификата

4. Через certutil думаю получится все забрать
5. Ну тут какое-то условие должно быть. Я не знаю, что вы используете. Лично я с powershell на линухе :)))))

В итоге выйдет строк 5 или 6 максимум


Спасибо. Я думал, что просто недостаточно разобрался в cryptcp и моя проблема легко решается добавлением какой-нибудь опции.
По поводу алгоритма: всё правильно, но чтобы получить отпечаток промежуточного сертификата, нужно брать не первый из списка, а второй (если не попадется подписей без вложенного сертификата корневого УЦ или с двумя промежуточными).


Конечно, если в ЭП добавлено несколько сертов. Можно извлечь все и посмотреть на поля Issuer и Subject.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.