Рейтинг:1

Алгоритм шифрования дайджеста PKCS#7 — разница между rsaEncryption и sha256WithRsaEncryption

флаг cn

В рамках нашей реализации безопасной загрузки Linux с использованием dm-verity и проверка подписи корневого хэша, мне нужно подписать файл следующей командой openssl (пример):

openssl smime -sign -nocerts -noattr -binary -in unsigned.txt -inkey private.key -signer cert.pem -outform der -out signed.txt

При этом создается файл PKCS#7, который затем может быть успешно обработан ядром Linux.

Но для производства мы не используем openssl, а Сервер подписи PrimeKey (который основан на bouncycastle) с подписчиком CMS. Здесь мне пока не удалось настроить подписывающую сторону CMS для создания рабочего PKCS#7. Проблема заключается в различии алгоритма дайджеста_enc_algorithm, как показано на изображении ниже (слева: сервер подписи, справа: openssl).

введите описание изображения здесь

Проблема в том, что ядро не будет поддерживать этот OID. Простое добавление sha256WithRsaEncryption к коммутатору устраняет проблему, но я не уверен, что это правильное решение. Исправление ядра

Еще одно «исправление», которое я нашел, заключалось в простой замене OID подписанного файла PKCS # 7, что также вызывает у меня несколько вопросов ?!

Теперь мои вопросы:

  • Есть ли реальная разница между rsaEncryption и sha256WithRsaEncryption в этом контексте?
  • Почему можно изменить файл PKCS#7 и все работает нормально?
  • Было бы правильным исправить добавление OID в регистр переключателей в ядре? (по крайней мере, с точки зрения криптографии)

Спасибо за Вашу поддержку!

ОБНОВИТЬ: Нашел эту проблему об отставании сервера подписи PrimeKey.

dave_thompson_085 avatar
флаг cn
rsaEncryption — единственный определенный OID в PKCS7 (доступный как RFC2315, см. 9.4), возможно, потому, что он был написан в эпоху PKCS1v1, когда подпись неправильно понималась как «обратное шифрование» и (всегда) отделялась от хеша; CMS переименовала дайджестEncryptionAlgorithm в signalAlgorithm, а затем расширила значение (2630 12.2.2 только rsaEncryption, но 3370 3.2 также {sha1,md5}с RSA, с тех пор было добавлено больше). Хотя PKCS7 и CMS _в основном_ одинаковы, это одно различие, и Bouncy — это CMS, а не PKCS7.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.