S/MIME(Secure/Multipurpose Internet Mail Extensions)は、MIMEデータにディジタル署名や暗号化を適用する規格で、電子メールの保護に使われます。署名は送信者の認証や対象データの改ざん検知、暗号化は内容の秘匿を目的とします。両者は別の機能です。
署名と暗号化の鍵を区別する
| 機能 | 使う鍵の考え方 | 目的 |
|---|---|---|
| 署名の作成 | 送信者の秘密鍵 | 対象データに署名する |
| 署名の検証 | 送信者の公開鍵 | 署名と対象データの整合性を確認する |
| 暗号化 | 共通鍵で本文を保護し、受信者の公開鍵に対応する方法などでその鍵を保護する | 受信者が読めるように内容を秘匿する |
| 復号 | 受信者の秘密鍵を利用して内容の鍵を取得する | 暗号化された本文を読む |
基本的な公開鍵方式の構成では、署名は送信者側、暗号化は受信者側の鍵に注目します。「送信者の公開鍵で暗号化して送る」と逆に覚えないようにしましょう。
証明書を確認する理由
公開鍵が誰のものかを確認するため、X.509証明書と信頼関係を利用します。検証では証明書の連鎖、有効期間、失効状態、用途なども関係します。署名が有効でも、秘密鍵の盗難や端末の侵害まで排除できるわけではありません。
TLS・DKIMとの違い
TLSは接続区間を保護します。S/MIMEはメールのMIMEデータ自体へ署名・暗号化を施します。DKIMは主に送信ドメインが付ける署名を受信側で検証する仕組みで、本文の秘匿は行いません。
導入と利用時の注意
- 送受信側の対応ソフト、証明書、鍵の管理・配布方法を確認する。
- 暗号化する前に、受信者の利用可能な公開鍵を入手する。
- 署名だけでは本文は秘密にならず、暗号化だけでは送信者を必ず認証できるわけではない。
- 通常の外側ヘッダーまで全て隠れるとは限らない。保護する範囲は仕様と実装による。
OpenPGPも署名・暗号化に使われますが、鍵の形式や信頼の管理方法が異なります。自己署名だけで公開鍵の持ち主の身元を証明できる、と単純化しないことが大切です。
確認問題:送信者の署名を検証するときは、受信者の秘密鍵を使う?
いいえ。署名の検証には送信者の公開鍵を使います。暗号化メールの復号に使う受信者側の鍵と区別します。
noteで暗号化と認証を整理
仕組みを理解したら、情報セキュリティのnote教材で共通鍵・公開鍵・ディジタル署名・認証の違いを復習しましょう。用語を暗記するだけでなく、どの情報を、どの範囲で守るか説明する練習につながります。


コメント