2014-06-02 3 views
1

Я хотел бы хранить публичный сертификат в базе данных, но мне нужен атрибут публичного сертификата для индексации публичных сертификатов в базе данных. Я хотел бы сделать это уникальным полем.является отпечатком публичного сертификата уникальным?

Отпечаток пальца публичного сертификата уникален?

+0

Да, скорее всего http://en.wikipedia.org/wiki/Public_key_fingerprint –

ответ

6

Отпечаток пальца уникален (для всех практических целей); два разных сертификата никогда не должны использовать один и тот же хэш. Например, в соответствии с ОС Windows X509certificate2.thumbprint documentation:

Отпечаток уникальное значение для сертификата, обычно используется, чтобы найти конкретный сертификат в хранилище сертификатов.

Пер с OpenSSL documentation:

Из-за природы дайджестов отпечаток сертификата является уникальным для этого сертификата и два сертификата с теми же отпечатками пальцев можно считать одинаковой.

Обратите внимание, что отпечаток пальца не входит в сертификат. Скорее, он вычисляется путем принятия криптографического хэша всего сертификата (включая подпись). Различные криптографические реализации могут использовать разные алгоритмы хеширования для вычисления отпечатка пальца и, таким образом, предоставлять разные отпечатки пальцев для одного и того же сертификата. (Например, API Windows Crypto вычисляет хэш SHA-1 сертификата для вычисления отпечатка пальца, тогда как OpenSSL может генерировать хэш SHA-256 или SHA-1.) Таким образом, вам необходимо убедиться, что клиенты, использующие отпечаток базы данных используют один и тот же API или согласованный алгоритм хэширования.

Теоретически, дублирующий отпечаток пальца, разделяемый несколькими сертификатами, потребует столкновения хэшей. Вероятность того, что такое событие происходит случайно, является астрономической. Преднамеренно генерирование такой пары сертификатов потребует успешной атаки preimage на основную функцию хэширования, атака, которая не известна для SHA-1 (см. Preimage Attack).

+0

Хороший ответ. Спасибо :) –

+0

Согласен. Отличный ответ. – Joppe

Смежные вопросы