S/MIMEは、「暗号メールを実現する機能」と「署名を実現する機能」の両方を 実現する機能があります。それにより、以下のセキュリティが確保されます。

 S/MIME (エス・マイム)

MIME (Multipurpose Internet Mail Extension:多目的インターネットメール拡張) は、ASCIIコードのみでやり取りして いた従来の方法に対して、バイナリも扱えるように機能を拡張したプロトコルです。
そしてMIMEと電子証明書を利用して、メールの暗号とデジタル署名を実現したものが Secure/MIMEです。

暗号メールを実現する機能の手順説明を示します。

  1. 送信者は、メール平文に対して使う共通鍵を生成します。
  2. 1で生成した鍵をメール本文に使って暗号化します。
  3. 1で得た鍵を、受信者の公開鍵を使って暗号化します。
  4. 2で得た暗号化したデータと3で得たデータを合わせて送信します。
  5. 受信者は、受信した3のデータを自分の秘密鍵で復号します。
  6. 受信者は、5で得た共通鍵を使ってメール平文へ復号します。

署名を実現する機能の手順説明を示します。

  1. メール本文に対してハッシュ関数を使います。
  2. 1で得たデータに対して送信者の秘密鍵を使って署名とし、 本文、電子証明書と併せて送信します。
  3. 受信者は、電子証明書の発行元CAを信頼した上で、 電子証明書内の公開鍵を署名に対して使います。
  4. 受信者は、メール本文に対してハッシュ関数を使います。 それが3で得たデータと一致するか検証します。

メールソフトThunderbirdでの利用例

「ツール」メニューの「アカウント設定」で現れるダイアログ内で「セキュリティ」を選択した状態です。

上記で、署名や暗号するのチェックを行うのですが、その前に「証明書」をボタンで、次の 「証明書マネージャ」のダイアログボックスを開き、「あなたの証明書」のタブで、 自分の公開鍵と秘密鍵を含むファイルpkcs12のファイル(例 tarou.p12)をインポートします。
また、個人証明書タブでメールの相手のクライアント証明書(例 hanako-ca.crt)をインポートします。