View a markdown version of this page

在 Amazon SES 中使用 S/MIME 驗證電子郵件 - Amazon Simple Email Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon SES 中使用 S/MIME 驗證電子郵件

安全/多用途網際網路郵件延伸 (S/MIME) 是使用憑證型數位簽章的標準。它證明訊息是由寄件者地址的擁有者傳送的,並且其內容在傳輸中未變更。如需 S/MIME 訊息格式的詳細資訊,請參閱 RFC 編輯器網站上的 RFC 8551:S/MIME 訊息規格。

S/MIME 簽署可在個別寄件者層級證明訊息真實性和完整性。收件人可以確信訊息內容未遭到竄改。

使用 Amazon SES,您可以在提交訊息之前自動套用 S/MIME 簽章,而無需簽署訊息。您可以在 AWS Certificate Manager (ACM) 中管理憑證。Amazon SES 是與 ACM 整合的其中一項服務。如需與 ACM 整合之服務的詳細資訊,請參閱與 ACM 整合之服務。

S/MIME 和 DKIM

S/MIME 和 DKIM 在不同層級操作,並且是互補的。DKIM 證明傳送網域已使用在 DNS 中發佈的金鑰授權訊息。S/MIME 使用憑證向憑證授權單位宣告信任鏈。這可證明特定電子郵件地址持有者已傳送訊息,且內容完好無損。S/MIME 無法取代 DKIM。

了解 S/MIME 簽章

當您透過已啟用 S/MIME 簽署的組態設定傳送傳出訊息時,Amazon SES 會簽署該訊息。解析的電子郵件身分必須具有寄件者地址的ACTIVE憑證。Amazon SES 會在傳送時間簽署訊息伺服器端。

Amazon SES 會使用 RFC 編輯器網站 RFC 1847 中定義的multipart/signed格式 (清除簽署) 產生分離簽章。郵件用戶端不支援 S/MIME 的收件人仍可讀取原始訊息。Amazon SES 會將簽署的內容作為第一個 MIME 部分傳送。它會分別攜帶簽章做為媒體類型的第二部分 application/pkcs7-signature(通常名為 smime.p7s)。Amazon SES 會將您的簽署憑證及其憑證鏈嵌入簽章 (密碼編譯訊息語法 (CMS) SignedData 物件)。然後,收件人可以將信任鏈建置回發行憑證授權單位,並驗證訊息完整性和原始伺服器。

簽章的訊息使用標準 S/MIME 標頭。其中包括 參數為 protocol 的Content-Type: multipart/signed標頭,"application/pkcs7-signature"以及命名摘要演算法的micalg參數 (例如 sha-256)。下列範例顯示已簽署訊息的最上層 Content-Type 標頭:

Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="----=_SmimeBoundary"

S/MIME 憑證考量事項

若要讓憑證可用於 Amazon SES 中的 S/MIME 簽署,必須符合下列所有要求:

  • 憑證必須位於您傳送電子郵件的相同 AWS 區域中的 ACM。

  • 必須驗證電子郵件身分。可接受網域驗證 (TXT 記錄) 或電子郵件地址驗證。

  • 憑證的主體別名 (SAN) 必須包含符合寄件者地址的 RFC822Name 電子郵件地址。對於網域身分,這表示該網域或子網域下的地址。對於電子郵件地址身分,這表示完全相符。

  • 憑證金鑰演算法必須使用下列其中一項:RSA 2048、RSA 3072、RSA 4096、EC P-256、EC P-384 或 EC P-521 (RFC 編輯器網站上的每個 RFC 8550)。

  • 憑證目前必須是有效的 (未過期)。

憑證授權機構信任要求

收件人的郵件用戶端必須信任發行憑證的憑證授權機構 (CA),才能驗證簽章。根據預設,來自公有 CA 的憑證受大多數郵件用戶端和 ISPs 信任。如果您使用私有 CA,收件人必須能夠存取和信任您的根 CA。ISPs和郵件用戶端預設不信任私有 CAs。

如需憑證標準的詳細資訊,請參閱 RFC 編輯器網站上的 RFC 5280:X.509 憑證和 CRL 設定檔和 RFC 8550:S/MIME 憑證處理。