CommuniGate Pro
Version 5.1
 
WebMail
 
 
S/MIME

WebMail: セキュアメール(S/MIME)

セキュアメール(S/MIME) は、公開鍵に基づく技術です。S/MIME を使うことで、次のようなことが可能になります。

  • メッセージにデジタル署名を追加できます。その結果、受取人は、次の処理ができます。
    • メッセージが本当に差出人から送られたものかどうかをチェックできます。
    • メッセージの内容が改変されていないかどうか、また、ユーザー(差出人) が作成したと きと同じ形式で受信されたかどうかをチェックできます。
  • メッセージをデジタル暗号化できます。その結果、メッセージは受取人だけが読むことがで きます。メッセージが転送中に捕捉されても、また、そのメッセージが格納されているサー バーからコピーされても、暗号化されているため第三者は内容を読むことはできません。

公開鍵インフラストラクチャ(PKI)

公開鍵技術は、いわゆる非対称暗号法による技術です。この非対称暗号法とは異なり、通常の対称暗 号法の場合、通信を行うユーザーは、両者が鍵またはパスワード(共有秘密) を知ってなければなり ません。つまり、データの交換の前に共有秘密(共通鍵) を交換する必要があり、このことが対称暗 号法の主なセキュリティ上の問題となります。具体的には、共有秘密は、交換中に盗まれる可能性があります。

例えば、 スパイがおり、そのスパイが共有秘密を使って本部との間で情報を交換するとします。この 場合、共有秘密は、頻繁に変えることが必要です。つまり、共有秘密が「解読」される前に変えなけ ればならず、「解読」までの時間は、その共有秘密を使って交換される情報の「寿命」より長くなけれ ばなりません。また、共有秘密を新しくしても、その共有秘密をスパイに送信(または、その逆) し た際に捕捉されることがあり、捕捉された場合、メッセージはすべて復号化(デコード) されてしま います。

一方、公開鍵技術では、特殊な方法で作成された2 つの鍵を使います。2 つの鍵はどちらも、非常に 大きな数値で表されます。その長さは512 ビット(10 進数で約50 桁) 以上です。この2 つの鍵はい ずれも特殊な方法で生成され、また、情報を暗号化する方法も特殊です。一方の鍵で暗号化されたデー タを他方の鍵で復号化できます。この2 つの鍵はそれぞれ、「秘密鍵(プライベートキー)」、「公開鍵 (パブリックキー)」と呼ばれます。

公開鍵技術で実装されるアルゴリズムはPKI (公開鍵インフラストラクチャ) アルゴリズムと呼ばれ、 このアルゴリズムでは、公開鍵で暗号化されたデータを秘密鍵で復号化できます。逆に、秘密鍵で暗 号化されたデータを公開鍵で復号化することもできます。公開鍵があっても、秘密鍵を計算するのは 非常に難しいのが特徴です。なお、公開鍵で暗号化されたデータ( メッセージ) を同じ公開鍵で復号 化することはできません。公開鍵で暗号化されたデータは、秘密鍵でのみ復号化が可能です。

スパイ(また、情報を安全に交換する必要があるユーザー) が公開鍵技術を使った場合の処理を考え てみます。

ただ、上記のPKI アルゴリズムは、実際には、そのまま使用されているわけではありません。代わり に、ランダムの共有秘密(パスワード) を生成し、その共有秘密を使って実際のデータを暗号化し、 その後、PKI アルゴリズム(公開鍵) を使って共有秘密を暗号化します。この暗号化された共有秘密 は、実際のデータ(暗号化済みのデータ) に付加されます。データ( メッセージ) を受け取ったユー ザーは、そのユーザーの秘密鍵(PKI の秘密鍵) を使って、データに付加されている共有秘密を復号 化します。その後、復号化された共有秘密を使って、実際のデータを復号化します。したがって、こ の方法は形式上、通常の「対称暗号法」ということになります。

上記の手法を使われるのは、PKI による計算を簡素化するためで(共有秘密のサイズは、実際のデー タに比べて小さいのが普通です)、実際、PKI アルゴリズムでは、上の対称暗号法アルゴリズムより格 段に複雑な処理が必要です。

データの暗号化に使われるランダムの共有秘密の長さは、通常、40 ビット、56 ビット、128 ビットの いずれかですが、PKI では、これよりずっと長い鍵が使用されます。40 ビットの共有秘密(データの 暗号化に使用) は、PKI の鍵(共有秘密の暗号化に使用) に比べて解読が容易です。といっても、共 有秘密はトランザクションごとにランダムに生成されるため、万一、第三者によって解読されたとし ても、影響(復号化) は、そのトランザクションに限定されます。つまり、PKI の鍵が同じであって も、共有秘密はトランザクションによって異なります。

この2 種類の鍵(PKI と共有秘密) を使用する方法では、ユーザーは、暗号化されたメッセージを複 数の受取人に一度に送信できます。その場合、ユーザーはランダムの共有秘密を使ってメッセージを 暗号化し、続いて、PKI 公開鍵(受取人の公開鍵) を使って共有秘密を暗号化します。この場合、共 有秘密は、受取人の数だけ作成します。その後、受取人に応じて、異なる共有秘密をメッセージに付 加し、メッセージを送信します。受取人が受け取ったメッセージの共有秘密は、その受取人のPKI 公 開鍵で暗号化されており、したがって、その受取人のPKI 秘密鍵で共有秘密を復号化できます。その 後、復号化した共有秘密を使って、実際のデータを復号化します。


デジタル署名

暗号化だけでは、セキュリティ問題を完全に解決することはできません。上記のスパイと本部の例で いうと、スパイの公開鍵を第三者が入手した場合、その第三者が本部になりすまして、スパイに暗号 化メッセージを送信することもできます。そのため、スパイは、メッセージの送信者が本当に本部で あるかどうか確認する必要があります。この確認は、デジタル署名を使うことで可能で、このデジタ ル署名は、ダイジェスティングアルゴリズムと公開鍵アルゴリズムを使って実装されます。

ダイジェスティングアルゴリズムでは、ダイジェストが使われます。ダイジェストは比較的短い数値 (16 ~ 40 バイト) で、その内容はメッセージのチェックサムです。このダイジェスト(値) はメッセージによって異なり、ダイジェストが同じメッセージを作成するのは非常に困難です。したがって、 このダイジェストを使用することで、メッセージの判別が可能です。

メッセージにダイジェスト(デジタル署名) を付加する場合、送り側のユーザーは次の処理を行います。

受け取り側のユーザーは、送り側のユーザーの公開鍵(送り側のユーザーから受け取り側のユーザー に渡された公開鍵) を使って、メッセージのダイジェストの復号化、また、そのメッセージのダイジェ ストの計算を行います。その後、複合化したダイジェストと計算されたメッセージのダイジェストを 比較します。2 つのダイジェストが一致すれば、そのメッセージは改変されておらず、かつ、所定の 秘密鍵を持っているユーザーから送信されたメッセージということになります。

上のスパイの例でいうと、第三者は本部を装ってスパイにメッセージを送ることはできません。第三 者は、本部の秘密鍵を入手できないためです。かりに第三者が、本部の秘密鍵以外の秘密鍵を入手し、 その秘密鍵を使ってダイジェストを暗号化してメッセージを送ったときでも、スパイがダイジェスト をチェックしたときに分かります。スパイは、第三者の秘密鍵に対応する公開鍵ではなく、本部の公 開鍵を使ってメッセージをダイジェストを復号化するのであり、したがって、そのダイジェストとメッ セージの計算後のダイジェストは一致しません。


証明書

上記の暗号化技術とデジタル署名技術ではどちらも、各ユーザーが公開鍵を自由に交換できることを 前提としています。したがって、「鍵が盗まれる」リスクがありますが、これは無視されています。実 際、公開鍵は誰でも入手できる「公開情報」です。一方、公開鍵が第三者から送られるというリスク があり、このリスクは無視できません。そのため、公開鍵を受け取ったユーザーは、その公開鍵が本 来のユーザーのものであるか検証することが必要です。第三者は誰でも公開鍵/ 秘密鍵のペアを作成 でき、公開鍵をユーザーに送ることができるためです。例えば、上の例で、第三者はスパイを装って 本部を公開鍵を送ることができます。この場合、本部で、その公開鍵が偽物であることが分からなかっ たときには、その公開鍵を使ってデータを暗号化し、スパイに送信するといったことも起こります。 この場合、スパイは、そのデータを読むことはできませんが(公開鍵が本部の公開鍵ではありません)、 第三者は、そのデータを復号化して読むことができます(その公開鍵に対応する秘密鍵を持っていま す)。

この問題は、公開鍵を「生の形」で配布しないようにすることで解決できます。つまり、公開鍵を証 明書の中に埋め込む形で配布することで解決が可能です。この証明書は、次の要素で構成されていま す。

証明書は、証明機関(第三者機関で、全関係者が信頼する機関) によって発行されます。また、各ユー ザーはいずれも、使用する証明機関の公開鍵を入手することが前提です。ただし、最近のインターネッ トアプリケーション(ブラウザ、メーラーなど) には、あらかじめ信頼機関(例えば、VeriSign など) のリストが内蔵されており、各信頼機関(証明機関) の公開鍵もあらかじめ登録されています。

何らかの証明書を受け取った場合、ユーザーは、その証明書がいずれかの信頼機関から発行されたも のであるかどうかをチェックできます。チェックは、証明書の発行者の名前がいずれかの信頼機関(ア プリケーションに登録されている信頼機関) の名前と一致していた場合、その信頼機関の公開鍵(ア プリケーションに登録されている公開鍵) を使って、証明書の署名(ダイジェスト) を検証するとい う方法で行います。ここで、署名の検証に成功した場合、証明書の公開鍵は、実際に証明書の件名 フィールドに指定されている機関のものであること、したがって、その証明書が本物であることが証 明されます。

なお、証明機関が中間証明機関であることも少なくありません。例えば、信頼機関は、別の機関に対 して証明書を発行することもできます。その場合、その機関(中間証明機関) が証明機関となり、さ らに、別の機関に証明書を発行することもできます。このようにして、証明書が中間証明機関の中間 証明機関(第3 レベル) のものだった場合、その中間証明機関の証明書のほか、上位の中間証明機関 の証明書も送られてきます。このケースでは、まず、その中間証明機関(第3 レベル) の証明書が本 当に、その中間証明機関のものであるかどうかがチェックされます。この場合、その証明書の署名を 上位の中間証明機関の公開鍵を使って検証するという方法でチェックされます。その後、同じように して、上位の中間証明機関の証明書がチェックされます。ここでは、その証明書の署名を信頼機関の 公開鍵(アプリケーションに登録されている公開鍵) を使って検証するという方法でチェックが行わ れます。


秘密鍵と証明書の保存

PKI を使ってセキュアメールを実装する場合、アカウントには、そのアカウントの秘密鍵と証明書(公 開鍵を格納) がなければなりません。このうち、秘密鍵はできる限り保護しなければならず、一方、 証明書には任意のユーザーがアクセスできることが必要です。

CommuniGate Pro では、証明書はアカウント設定(属性userCertificate) に格納されます。また、証明 書のコピーがディレクトリに格納されます(ディレクトリ統合が有効な場合)。

また、秘密鍵もアカウント設定に格納されます。ただし、秘密鍵は、セキュアメールパスワード(Secure Mail Password) を使って暗号化されています(下記を参照)。そのため、セキュアメール機能を使用す る場合、ユーザーは、このセキュアメールパスワードを入力しなければなりません。この入力により、 サーバー上でユーザーの秘密鍵が読み取られ、復号化されます。

注意: セキュアメールパスワードは、どこにも保存されません。そのため、セキュアメールパスワー ドを忘れた場合、秘密鍵と証明書を新たに作成しなければなりません。ただし、その場合、それまで の公開鍵で暗号化されたメッセージは復号化できなくなります。こういったメッセージは、システム 管理者でも復号化できません。

注意: セキュアメールパスワードは、必ず記憶するようにします。ただし、記憶は難しくはありませ ん。セキュアメールパスワードとしては単語や語句を使用でき(最大で100 文字)、また、どの言語に も対応しています。

PKI を使ってセキュアメールを実装する場合、上記のように秘密鍵と証明書をアカウント設定に格納 ( インポート) しなければなりません。この作業は、次のようにして行います。まず、ユーザーの秘密 鍵と証明書(デジタルID とも呼びます) を通常の電子メールクライアント(Microsoft® Outlook や Netscape® Messenger) を使って取得します。取得後、そのデジタルID を.pfx ファイルまたは.p12 ファイル(PKCS#12 フォーマットファイル) にエクスポートします。エクスポートの際、データの保 護のため、電子メールクライアントによりパスワード(ファイルパスワード) の入力が求められ、ま た、そのパスワードを使ってエクスポートされるデータ(デジタルID) が暗号化されます( このファ イルパスワードは、記憶しておかなければなりません)。注意: 上記のエクスポートの際に必要となるファイルパスワードは、非ASCII 文字も使用できますが、 できるだけASCII 文字だけにします。これは、電子メールクライアント(Outlook を含む) では通常、 非ASCII 文字は正常に処理できないためです。

続いて、WebUser インターフェイスでサーバーに接続して[Settings] セクションを開き、[Secure Mail] リンクをクリックします。この後、次のようなページが開きます。

設定: セキュアメール
基本設定 パスワード フォルダ 新規作成 カレンダー 連絡先 セキュアメール 公開情報
新しいパスワード
パスワード再入力
鍵と証明書をインポート PFX ファイル
パスワード

注意: [Settings] セクションに[Secure Mail] リンクが表示されない場合、アカウント/ ドメインの S/MIME サービスが無効になっていることを示しています。

保存(エクスポート) したファイル(.pfx または.p12) の名前を[PFX] フィールドに入力します。 または、[Browse] ボタンを使って、ワークステーションのディスク上のファイルを選択します。その 後、ファイルのエクスポートの際に使用したファイルパスワードを[File Password] フィールドに入 力します。

[Secure Mail Password] フィールドに、セキュアメールパスワードを入力します。このセキュアメール パスワードは、秘密鍵の保護に必要です。[Veriry Secure Mail Password] フィールドに再度、同じセ キュアメールパスワードを入力します。入力後、[Import File Data] ボタンをクリックします。ここ で、[File Password] フィールドに入力したファイルパスワードが正しければ、証明書/ 秘密鍵情報は、 そのユーザーのアカウント設定に格納されます。

秘密鍵と証明書を新たに作成する場合(例えば、セキュアメールパスワードを忘れた場合)、[Generate Key And Certificate] パネルを使います。

設定: セキュアメール
基本設定 パスワード フォルダ 新規作成 カレンダー 連絡先 セキュアメール 公開情報
新しいパスワード
パスワード再入力
鍵と証明書をインポート PFX ファイル
パスワード

この場合も、秘密鍵/ 証明書のインポートと同じく、 [Secure Mail Password] フィールドにセキュア メールパスワード、また、[Veriry Secure Mail Password] フィールドに再度、同じセキュアメールパス ワードを入力します。その後、[Generate Key And Certificate] パネルの[Generate] ボタンをクリッ クします。

証明書は、WebUser インターフェイスの設定のFrom アドレスがユーザーのCommuniGate Pro アカウ ントを指している場合、そのFrom アドレスを使って発行されます。そうでないときには、ユーザー のCommuniGate Pro アカウントのアドレスを使って発行されます。

また、生成された証明書には、CommuniGate Pro サーバーの証明書が付加されます。

この後、[Secure Mail] ページに証明書のデータと秘密鍵のサイズが表示されます。

設定: セキュアメール
基本設定 パスワード フォルダ 新規作成 カレンダー 連絡先 セキュアメール 公開情報
セキュアメールパスワードの変更 新しいパスワード
パスワード再入力
  鍵と証明書をエクスポート
鍵と証明書を削除 PFX ファイル
パスワード

上のパネルでは、セキュアメールパスワードの変更が可能です。変更する場合、[New Password] フィー ルドと[Verify Password] フィールド(確認) に新規のセキュアメールパスワードを入力します。入 力後、[Modify Password] ボタンをクリックします。

格納されている秘密鍵/ 証明書をワークステーションのディスクにエクスポートしたい場合、[Export Key and Certificate] リンクをクリックします。

鍵と証明書をエクスポート
基本設定 パスワード フォルダ 新規作成 カレンダー 連絡先 セキュアメール 公開情報
エクスポート パスワード
パスワード再入力

[File Password] と[Verify File Password] の各フィールドに同じファイルパスワードを入力します。こ のファイルパスワードを使って、秘密鍵/ 証明書情報が暗号化されます。入力後、[Export] ボタンを クリックします。この後、ファイルの保存場所が尋ねられますので、その場所を指定します。ファイ ルは、CertAndKey.pfx という名前で保存されます( この名前は、変更できます)。

アカウント設定に保存されている秘密鍵/ 証明書を削除する場合、まず、そのコピーをファイルに保 存(エクスポート) します(上記を参照)。このようにすることで、誤って秘密鍵を削除したときでも 復旧が可能です。一方、秘密鍵を削除し、コピーを保存していなかった場合、受信した暗号化メッセー ジはいずれも読むことができなくなります。

アカウント設定に保存されている秘密鍵/ 証明書を削除するには、[Remove Key and Ceriticate] パネ ルの[Saved PFX File] フィールドに、秘密鍵/ 証明書が保存されているファイル(秘密鍵/ 証明書を エクスポートしたファイル) の名前を入力します。また、[File Password] フィールドにファイルパス ワード(エクスポートしたときのパスワード) を入力します。その後、[Compare with File and Delete] ボタンをクリックします。これで、指定したファイルパスワードを使ってファイルが復号化され、そ のファイルの秘密鍵とアカウント設定に格納されている秘密鍵が比較されます。この比較で秘密鍵が 一致すれば、アカウント設定に格納されている秘密鍵と証明書が削除されます。


秘密鍵の有効化

秘密鍵は、ユーザーのアカウント設定に格納された時点で有効になります。有効な場合、そのユーザー の証明書/ 秘密鍵を使って暗号化されたメッセージはすべて、WebUser インターフェイスによって自 動的に復号化されます。また、ユーザーは、暗号化メッセージと署名付きメッセージを送信できます。 なお、安全を考慮し、秘密鍵は、有効になってから3 分後に無効になり( ロックされ) ます。その場合、WebUser インターフェイスセッションを終了し、再度ログインしたときでも、秘密鍵は自動的に 有効になることはありません。

秘密鍵を有効にするには、セキュアメールパスワードを入力します。入力は、次のS/MIME キーアク ティべーションパネル([Secure Mail is Locked] パネル) で行えます。[SMIME Password] フィールド にセキュアメールパスワードを入力し、[Unlock Secure Mail] ボタンをクリックすると、秘密鍵が有 効になります。

設定: セキュアメール
基本設定 パスワード フォルダ 新規作成 カレンダー 連絡先 セキュアメール 公開情報
セキュアメールはロックされています セキュアメール パスワード

署名付きメッセージの受信

別のユーザーが署名付きのメッセージを送信し、そのメッセージがメールボックスに格納されている 場合、そのメッセージを開くと、WebUser インターフェイスによって自動的に、その署名の整合性が チェックされます。このチェックは、署名データから署名者(単一または複数) のデータを取り出し、 各署名者の署名をすべて検証する(ダイジェストを比較する) という方法で行われます。ここで、署 名とメッセージの内容(ダイジェスト) が一致した場合、その署名の署名者の名前がすべて表示され ます。

署名済み (Text SHA1)
Dear Sir,

Thank you for your offer. I'm accepting it.

Sincerely yours,
Sample Sender
次の署名によって内容は保証されています:
Sample Sender <sender@domain.dom>

上記の検証が失敗したときには、エラーメッセージが表示されます。


証明書の記録

署名付きメッセージとは、署名者の証明書があるメッセージをいいます。署名付きメッセージをユー ザーが開いた場合、[Message] ページに[Take Certificate] ボタンが表示されます。このボタンをク リックすると、そのメッセージの電子メールアドレスと署名者の名前( メッセージヘッダではなく、 証明書にある電子メールアドレスと名前) 、また、その署名者の証明書が現在選択しているアドレス ブックに取り込まれます。

アドレスブックでは、エントリ(アドレス) のうち、既知(保存済み) の証明書があるエントリには [@] マーカーが付加されます。こういったアドレスには、暗号化メッセージを送信することができま す。


署名付きメッセージの送信

署名付きメッセージを送信する場合、まず、秘密鍵が有効になっている( ロックされていない) こと を確認します。確認は簡単で、メッセージ作成ページに[Send Signed] チェックボックスが表示され ていれば、秘密鍵が有効になっていることを表しています。このチェックボックスを選択すると、メッ セージに署名が付加されるようになります。その場合、ユーザーの秘密鍵を使って作成された署名が、 メッセージの添付データを含めて、メッセージ全体に付加され、また、その署名にユーザーの証明書 が付加されます。

署名付きメッセージを受け取ったユーザーは、その内容が改ざんされていないかチェックが可能です。 また、そのメッセージの証明書をアドレスブックに保存し、そのアドレスに対して暗号化メッセージ を送信できます(上記の「署名付きメッセージの受信」、「証明書の記録」の説明を参照)。


暗号化メッセージの送信

暗号化メッセージを送信する場合、秘密鍵が有効になっている( ロックされていない) ことを確認し ます。確認は簡単で、メッセージ作成ページに[Send Encrypted] チェックボックスが表示されてい れば、秘密鍵が有効です。また、受取人のアドレスがアドレスブックに登録されており、しかも、そのアドレスに証明書がある([@] マーカーが付加されている) ことを確かめます( こういったアドレ スに限って暗号化メッセージの送信が可能です)。

メッセージ作成ページの[Send Encrypted] チェックボックスを選択します。これで、メッセージが 暗号化されるようになります。その場合、受取人の公開鍵(アドレスブックに保存されている証明書 から取り出されます) とユーザーの公開鍵の両方を使って、添付データを含め、メッセージ全体が暗 号化されます。そのため、ユーザーは、自分の送信メールボックスに格納されている暗号化メッセー ジを読むこともできます。

[Send Signed] と[Send Encrypted] の2 つのチェックボックスを選択した場合(つまり、メッセージ を署名付きと暗号化の両方で送信する)、まず、メッセージが署名付きメッセージとして作成され、そ の後、メッセージヘッダと署名を含めてメッセージ全体が暗号化されます。

暗号化のサイファ(暗号化アルゴリズム/ システム) は、WebUser インターフェイスの[Encryption Method] オプションで指定できます。


暗号化メッセージの受信

暗号化メッセージを受信した場合、そのメッセージの内容は何も表示されません。

暗号化
 
セキュアメール パスワード:

内容を表示するには、まず、秘密鍵を有効( ロック解除) します。これで、その秘密鍵を使って暗号 化メッセージが復号化されます。メッセージの復号化に成功した場合、内容が表示されます。

暗号化 RC2(40bit)
件名: My Report
差出人: The Agent <agent@company.dom>
宛先: The Center <center@company.dom>
Hello,

Sorry, no report this month. Please stay tuned...

Yours,
The Best Agent.

暗号化されたメッセージを復号化してメールボックスに保存したい場合、[Decrypt] ボタンをクリッ クします。これで暗号化メッセージの復号化が開始され、処理に成功すると、復号化されたメッセー ジがメールボックスに保存されます。オリジナルの暗号化メッセージは削除されます。


保存されているメッセージの暗号化

暗号化されていないメッセージがメールボックスに保存されている場合、そのメッセージを暗号化す ることができます。手順は、まず、秘密鍵を有効化( ロック解除) します。その後、[Encrypt] ボタ ンをクリックするとメッセージが暗号化されます。この場合、暗号化には秘密鍵は使用されませんが (公開鍵が使われます)、秘密鍵のロックの解除は必要です。秘密鍵のロックを解除することで、その メッセージを復号化できるようになります。


受信メッセージの暗号化

アカウントに向けられた受信メッセージ(まだメールボックスに保存されていないメッセージ) は、 自動処理ルールを使って自動的に暗号化してメールボックスに保存できます。ルールのアクションは、 Store Encrypted を使用します。詳しくは、「自動処理ルール」 のセクションを参照してください。


CommuniGate® Pro Guide. Copyright © 1998-2007, Stalker Software, Inc.