Windows или браузеры сохраняют подпись сертификата X509? - PullRequest
0 голосов
/ 18 октября 2018

Windows имеет классы X509Certificate2 и X509Certificate для данных сертификата.Но никто не предоставляет оригинальную подпись, только отпечаток.Они предоставляют поле RawData, но это только сам сертификат, потому что я запустил хэш на нем, и он соответствует хэшу, предоставленному X509Certificate.

В Windows есть инструменты для сохранения каждого сертификата в файл различных форматов, нони один из них, кажется, не включает подпись.У Firefox есть своя собственная утилита для отображения сертификата, в которой он отображает подпись, но это выглядит как ошибка, поскольку подпись соответствует последним байтам RawData, возвращаемым X509Certificate, и этот RawData является необработанным сертификатом без подписи.

Я попробовал и сертификаты CA, и сертификаты серверов из сеанса HTTPS, и ни один из них не включает подпись.Похоже, что Windows проверяет подпись, преобразует ее в отпечаток большого пальца и просто выбрасывает подпись.Почему?

1 Ответ

0 голосов
/ 18 октября 2018

TL; DR: да, подпись сохранена, , даже если она не отображается .Подпись необходима для создания цепочки доверия .Подпись состоит из большого количества двоичных данных, поэтому не так уж и полезно показать их пользователю.


Вы в замешательстве.Последние части сертификата - это значение подписи, как вы можете видеть в спецификациях X.509 .

Хэш поверх отображаемого сертификата: не хеш, который используется для генерации подписи.Это отдельный хэш для всех двоичных данных, составляющих сертификат , включая подпись , в то время как хэш в сертификате находится только над TBSCertificate - подписываемым"часть сертификата.

Кроме того, отпечатки большого пальца по всем сертификатам обычно рассчитываются с использованием одного конкретного алгоритма хеширования. Это позволяет легко сравнивать отпечатки пальцев. Алгоритм хеширования, который используется дляСигнатура указана в самом сертификате - всеобъемлющим образом называется signatureAlgorithm. Хотя это может быть тот же алгоритм, что и у отпечатка большого пальца, обычно это более современная хеш-функция, которая не допускает коллизий.-5, который менее безопасен, но проще для человека.

...