pkcs7-подпись сообщения - PullRequest
1 голос
/ 13 апреля 2011

При создании сообщения как / mime, где вы во второй части (первая часть является фактическим сообщением) должны предоставить ОБА сертификат, которым вы подписали сообщение, И результат подписания, то есть дайджестВы должны их объединить?

Я не использую никаких библиотек, таких как надувной замок или подобное.Я создаю сообщение вручную.Вы просто должны объединить их после друг друга, или с новой линией между ними или как это делается?Я попытался посмотреть, как это делается в Британской Колумбии, и немного погуглил без четких ответов.

1 Ответ

1 голос
/ 16 апреля 2011

Формат S / MIME основан на спецификации CMS (синтаксис криптографических сообщений), которая стандартизирует структуры данных для переноса зашифрованных, аутентифицированных или подписанных данных. S / MIME (и CMS) использует нотацию ASN.1 для этих структур данных.

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

Некоторые технические данные:

  • последняя версия модуля S / MIME ASN.1 описана в RFC 5911
  • подпись сообщения ContentInfo, содержащая SignedData структуру
  • SignedData содержит SignerInfo (в большинстве случаев только один, поскольку электронное письмо подписано одним отправителем). SignerInfo содержит цифровую подпись сообщения, алгоритм подписи и уникальный идентификатор сертификата подписавшего (например, эмитента сертификата и серийный номер)
  • сертификаты могут быть добавлены в SignedData (это опционально, поскольку сертификаты являются открытыми объектами, их можно загрузить из репозитория, или у получателя уже может быть цепочка сертификатов подписи, сохраненная в ее почтовом приложении)
...