Проверка подписи SSL-сертификата - PullRequest
1 голос
/ 08 октября 2011

Я пытаюсь проверить сертификат на встроенной плате вручную, потому что он не поддерживает Openssl или другие библиотеки. Однако в нем есть библиотеки для хэшей MD5 и SHA1 и шифрования RSA.

Из того, что я понимаю для проверки сертификата, сначала вычислите хэш SHA1 (или MD5) сертификата; затем декодируйте подпись, используя открытый ключ CA, чтобы получить хешированное значение. Эти два значения хеша должны быть одинаковыми.

SHA1-хеш дает 20-байтовое значение, а MD5 - 16-байтовое значение. Однако RSA расшифровка подписи не делает. Если ключ CA равен 1024 битам, подпись декодирования будет 80 байтов; если ключ CA равен 512 битам, декодированная подпись будет 40 байтов. Поэтому я не могу сравнить 20-байтовое значение SHA1 с 40- или 80-байтовой декодированной подписью.

Я что-то не так делаю? Или я пропускаю шаг?

1 Ответ

1 голос
/ 08 октября 2011

Отсутствующий бит - это алгоритм заполнения.

Вы используете RSA с определенным алгоритмом заполнения, и тот же алгоритм также говорит вам, как получить результат (при расшифровке подписи) и извлечь из негофактические данные (хеш).

...