SMIME расшифровка электронной почты с использованием закрытого ключа – что я делаю не так?

Вопрос или проблема

У меня есть зашифрованный файл .eml и закрытый ключ. Я много раз искал это в интернете, но не смог найти способ расшифровать электронную почту с помощью OpenSSL. Я пробовал эту команду:
smime -decrypt -in encrypted.eml -inkey privatekey.key -out decrypted.eml
и каждый раз получаю эту ошибку:

OpenSSL> smime -decrypt -in encrypted.eml -inkey privatekey.key -out decrypted.eml
Не указан сертификат или ключ получателя
smime: Используйте -help для получения справки.

Я также пробовал конвертировать закрытый ключ в файл .pem, но сообщение остается прежним. Оба файла находятся в одной папке с приложением openssl.exe, до этого я не мог заставить его работать вообще.

Я явно что-то делаю не так, что именно?

Попробуйте использовать openssl cms вместо openssl smime. Посмотрите https://www.misterpki.com/openssl-cms/ для хорошего примера.

Вы пропустили флаг -recip с вашим файлом сертификата публичного ключа certificate.pem. Из документации OpenSSL:

-recip file
сертификат получателя при расшифровке сообщения. Этот сертификат должен соответствовать одному из получателей сообщения, иначе возникнет ошибка.

Итак, пожалуйста, попробуйте следующее:

openssl smime -decrypt -in encrypted.eml -recip certificate.pem -inkey privatekey.pem -out decrypted.eml

Ответ или решение

Проблема, с которой вы столкнулись при попытке расшифровать электронное письмо с использованием OpenSSL, связана с неправильным использованием команд и отсутствием необходимых сертификатов. Давайте более подробно разберемся в вашей ситуации и предложим правильный подход к решению.

Анализ вашей команды

Вы используете следующую команду для расшифровки:

openssl smime -decrypt -in encrypted.eml -inkey privatekey.key -out decrypted.eml

Ошибка, которую вы получили:

No recipient certificate or key specified

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

Что вы делаете неправильно?

  1. Отсутствие сертификата получателя: При расшифровке S/MIME-сообщений OpenSSL требует не только приватный ключ для расшифровки, но и сертификат получателя, чтобы удостовериться, что ключ соответствует правильно зашифрованному сообщению. Вы используете только частный ключ, что и вызывает ошибку.

  2. Тип используемой команды: Вы пытаетесь использовать функцию S/MIME вместо CMS (Cryptographic Message Syntax), что также может привести к путанице, так как синтаксис и требования могут отличаться. Для работы с зашифрованными сообщениями в формате MIME рекомендуется использовать openssl cms.

Рекомендации по исправлению проблемы

Чтобы успешно расшифровать ваше сообщение, вам необходимо следовать следующим шагам:

  1. Подготовьте необходимые файлы: Убедитесь, что у вас есть:

    • Файл с зашифрованным сообщением (encrypted.eml).
    • Приватный ключ в формате PEM (privatekey.pem).
    • Сертификат получателя, который обычно экспортируется в файл (certificate.pem). Этот сертификат должен соответствовать получателю зашифрованного сообщения.
  2. Используйте правильную команду:

Попробуйте следующую команду с указанием сертификата получателя:

openssl smime -decrypt -in encrypted.eml -recip certificate.pem -inkey privatekey.pem -out decrypted.eml

Объяснение параметров:

  • -in encrypted.eml: файл с зашифрованным сообщением.
  • -recip certificate.pem: сертификат получателя.
  • -inkey privatekey.pem: приватный ключ для расшифровки.
  • -out decrypted.eml: файл, куда будет записано расшифрованное сообщение.
  1. Конвертация форматов ключей: Если ваш приватный ключ находится в другом формате, вы можете конвертировать его в формат PEM с помощью команды:
openssl rsa -in yourprivatekey.key -out privatekey.pem

Заключение

Следуя указанным шагам и рекомендациям, вы сможете успешно расшифровать ваше S/MIME сообщение с использованием OpenSSL. Убедитесь, что все файлы правильно расположены и имеют корректные форматы. Если проблемы продолжатся, проверьте, правильно ли вы экспортировали сертификат и соответствует ли он тому, что было использовано при шифровании.

Оцените материал
Добавить комментарий

Капча загружается...