← RFC Reference

RFC 8551: S/MIME 4.0 メッセージ仕様

Standards Track Content Security Published March 2026
ELI5: [S/MIME 3.2](5751)は、メールを良いロックの付いた金庫に入れるようなものです。S/MIME 4.0はそのロックを最新のものに置き換え、内容を秘密にするだけでなく、誰かが金庫自体に改ざんを試みたかどうかも検出します。暗号化アルゴリズムを現在のベストプラクティスにアップグレードします。AES-CBCではなくAES-GCM、RSAと並んで楕円曲線、最低限としてのSHA-256。同じ概念、より強力な数学。

これが存在する理由

S/MIME 3.2(RFC 5751、2010年発行)はその時代には堅牢でしたが、暗号化は進化し続けています:

仕組み

MIME構造とCMSラッピングはS/MIME 3.2と同じままです。変更は送受信者間でネゴシエートされるアルゴリズムと機能にあります。

3.2から4.0への変更点

機能 S/MIME 3.2(RFC 5751) S/MIME 4.0(RFC 8551)
コンテンツ暗号化 AES-128-CBC(MUST) AES-128-GCM(MUST)
署名用ダイジェスト SHA-256(MUST) SHA-256(MUST)
署名アルゴリズム RSA(MUST) P-256付きECDSA(MUST)、RSA(MUST)
鍵転送 RSA(MUST) P-256付きECDH(MUST)、RSA-OAEP(SHOULD)
署名用SHA-1 許可(後方互換性) 廃止
3DES暗号化 許可(後方互換性) 廃止
ヘッダー保護 対応なし メカニズム定義
EdDSA(Ed25519) 未定義 関連RFCで参照

認証付き暗号化(AES-GCM)

最も重要な変更はAES-CBCからAES-GCMへの移行であり、必須のコンテンツ暗号化アルゴリズムです:

楕円曲線暗号

S/MIME 4.0はECDSA(署名用)とECDH(鍵合意用)をRSAと並行して実装を必須にします:

アルゴリズム 曲線 同等のRSA強度 鍵サイズ
ECDSA / ECDH P-256(secp256r1) RSA-3072 256ビット
ECDSA / ECDH P-384(secp384r1) RSA-7680 384ビット
ECDSA / ECDH P-521(secp521r1) RSA-15360 521ビット

EC鍵は同等のセキュリティレベルでRSA鍵よりも劇的に小さいです。電子メールではこれは署名が小さく、暗号化された鍵転送ブロックが小さいことを意味するため、メッセージサイズが削減されます。

ヘッダー保護

S/MIME 4.0は電子メールヘッダー(Subject、From、To、Date)の保護されたコピーを署名付きまたは暗号化されたMIME本体内に含める方法を定義します。外側のヘッダーはルーティングと表示のために可視のままですが、内側の保護されたコピーにより受信者は転送中にヘッダーが変更されていないことを確認できます:

-- S/MIME暗号化本体内 --
Content-Type: message/rfc822

Subject: 機密四半期結果
From: cfo@example.com
To: board@example.com
Date: Wed, 12 Mar 2025 09:00:00 -0400

(暗号化本体コンテンツ...)

受信者のクライアントは内側のヘッダーと外側のヘッダーを比較し、異なる場合にアラートを表示します。

主要な技術詳細

RSA-OAEPとRSA PKCS#1 v1.5

S/MIME 3.2は鍵転送にRSA PKCS#1 v1.5を使用しました。このパディングスキームはBleichenbacher型攻撃に対して脆弱です。S/MIME 4.0はRSA-OAEP(最適非対称暗号化パディング)を推奨します。これは選択平文攻撃に対して証明可能に安全です。送信者はS/MIME機能を介して受信者がサポートを示すときにRSA-OAEPを使用すべきです(SHOULD)。

S/MIME機能属性

メッセージに署名するとき、送信者はサポートするアルゴリズムを列挙するSMIMECapabilities属性を含めます。受信者はこれを使用して相互にサポートされる最強のアルゴリズムを暗号化された返信に対して選択します。S/MIME 4.0は推奨される機能の順序付けを更新します:

  1. AES-256-GCM
  2. AES-128-GCM
  3. AES-256-CBC(後方互換性のため)
  4. AES-128-CBC(後方互換性のため)

後方互換性

S/MIME 4.0エージェントはS/MIME 3.2メッセージを受け取り処理できなければなりません。送信するときは、受信者の機能がサポートを示すときはS/MIME 4.0アルゴリズム(AES-GCM、ECDSA)を使用し、そうでない場合は3.2アルゴリズムにフォールバックすべきです。SMIMECapabilities属性がこのネゴシエーションを駆動します。

一般的な間違い

配信可能性への影響

Related RFCs