Я хочу зашифровать определенные заголовки почты (Subject
и Reply-To
), которые отправляются в зашифрованной почте. Я беру весь MIME (включая заголовки) и успешно шифрую его. Я могу отправить эту зашифрованную почту S / MIME моему почтовому клиенту (Thunderbird) успешно. Он будет успешно расшифрован и проверен как подписанный.
Однако все заголовки, которые отправляются во внутреннем зашифрованном MIME, не используются моим почтовым клиентом.
Согласно RF C -5751 Я должен был обернуть свою почту в сообщение message/rfc822
, но я не знаю, как этого добиться.
Ниже приведены примеры моих сообщений, которые я создаю.
Мой первый вопрос: последний MIME, который я создаю message/rfc822
, правильно структурирован? Это возможно проблема с почтовым клиентом? Могу ли я зашифровать событие Reply-To
Заголовок?
Если бы я мог получить пример инкапсулированного сообщения mesage/rfc822
, которое было бы очень полезно.
Почта для шифрования
Это приведет к успешному получению подписанного письма, и почтовый клиент правильно интерпретирует заголовки Subject
/ Reply-To
.
Content-Type: multipart/signed; protocol="application/pkcs7-signature";
micalg=sha256; boundary="--_NmP-d017e0e3556f7bbc-Part_1"
From: sender@domain.com
Sender: senderdomain.com
To: recipient@domain.com
Reply-To: keepsecret@domain.com
Subject: A Secret Subject
Message-ID: <400b1383-362b-eed7-0719-6b2a2e231143>
Date: Mon, 24 Feb 2020 15:59:19 +0000
MIME-Version: 1.0
----_NmP-d017e0e3556f7bbc-Part_1
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
My Message that will be encrypted
----_NmP-d017e0e3556f7bbc-Part_1
Content-Type: application/pkcs7-signature; name=smime.p7s
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7s
MIIOCAYJKoZIhvcNAQcCoIIN+TCCDfUCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg
gguTMIIFCDCCA/CgAwIBAgIQVz2HAGYJcTJNsPiWLx1f/TANBgkqhkiG9w0BAQsFADCBjTELMAkG
.
.
.
17p13e02JxfyCqltdb6lkOdpRZ6ZlHHuQZyBCuRtJhRN83gvcJ4d7WCxKI349NEa2/tOb8ziFGat
gzvgu+o=
----_NmP-d017e0e3556f7bbc-Part_1--
My Encrypted Почта
Эта зашифрованная почта будет получена и успешно расшифрована и проверена (подпись проверена) моим почтовым клиентом. Reply-To
и Subject
все еще работают, как и ожидалось, поскольку они все еще видны. Примечание: все заголовки из незашифрованной почты все еще присутствуют в зашифрованном теле этого сообщения.
Sender: sender@domain.com
From: sender@domain.com
To: recipient@domain.com
Subject: A Secret Subject
Reply-To: keepsecret@domain.com
Message-ID: <400b1383-362b-eed7-0719-6b2a2e231143>
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m
Content-Type: application/pkcs7-mime; smime-type=enveloped-data;
name=smime.p7m
Date: Mon, 24 Feb 2020 16:03:38 +0000
MIME-Version: 1.0
MIIYbwYJKoZIhvcNAQcDoIIYYDCCGFwCAQAxggG/MIIBuwIBADCBojCBjTELMAkG
.
.
.
O+EPVCh1fGDFwiFpDtY/z1Lv8g==
Мое инкапсулированное сообщение / rfc822
Это сообщение будет быть дешифрованными правильно, но мой клиент не распознает, что это было зашифрованное сообщение, или проверяет, что оно было подписано (не очень беспокоюсь об этом). Расшифрованное письмо интерпретируется как пересылаемое и прикрепляется как файл .eml
. Однако заголовки Subject
или Reply-To
не найдены (они находятся в зашифрованной почте). Если я добавлю фиктивные значения в соответствии с рекомендациями RF C, эти фиктивные значения будут использоваться моим почтовым клиентом, а не зашифрованными.
Content-Type: message/rfc822; forwarded=false; boundary="--_NmP-07c15c542cedfe74-Part_1"
From: sender@domain.com
Sender: sender@domain.com
To: recipient@domain.com
Date: Mon, 24 Feb 2020 15:28:07 +0000
Message-ID: <400b1383-362b-eed7-0719-6b2a2e231143>
MIME-Version: 1.0
----_NmP-07c15c542cedfe74-Part_1
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m
Content-Type: application/pkcs7-mime; smime-type=enveloped-data;
name=smime.p7m
MIIYbwYJKoZIhvcNAQcDoIIYYDCCGFwCAQAxggG/MIIBuwIBADCBojCBjTELMAkG
.
.
.
fYU1LuhSBEyymSVRzwWr2T3lrhUe5BZBoY996epZtOPdIYrz2jqUglii1+AUBpUP
UUnpr8+cHTMk/50LHdy3MqMeYA==
----_NmP-07c15c542cedfe74-Part_1
Редактировать: добавить выдержку из RF C
В РФ C -8551 говорится следующее
In order to protect outer, non-content-related message header fields (for instance, the "Subject", "To", "From", and "Cc" fields), the
sending client MAY wrap a full MIME message in a message/rfc822
wrapper in order to apply S/MIME security services to these header
fields. It is up to the receiving client to decide how to present
this "inner" header along with the unprotected "outer" header. Given
the security difference between headers, it is RECOMMENDED that the
receiving client provide a distinction between header fields,
depending on where they are located.
When an S/MIME message is received, if the top-level protected MIME
entity has a Content-Type of message/rfc822, it can be assumed that
the intent was to provide header protection. This entity SHOULD be
presented as the top-level message, taking into account
header-merging issues as previously discussed.