S/MIME について

 

S/MIME が登場する前、管理者は、幅広く受け入れられているが本質的に安全でない電子メール プロトコルである SMTP (Simple Mail Transfer Protocol) を使用していたか、またはより安全だが専用のソリューションを使用していました。管理者は、セキュリティまたは接続性のいずれかを重視したソリューションを選択していました。S/MIME により、管理者は、より安全で幅広く受け入れられている電子メール オプションを使用できるようになります。S/MIME は、セキュリティを危険にさらすことなく電子メールの接続性を拡張して、SMTP を次のレベルへと上げるため、SMTP と同じぐらい重要な標準です。

S/MIME の歴史

S/MIME について理解するには、その歴史を知ることが役に立ちます。S/MIME の最初のバージョンは、多数のセキュリティ ベンダによって 1995 年に開発されました。これはメッセージ セキュリティに関する複数の仕様の 1 つでした。Pretty Good Privacy (PGP) は、メッセージ セキュリティに関する他の仕様の例です。S/MIME Version 1 の時点では、メッセージをセキュリティで保護するための標準として認識されている単一の標準はなく、複数の標準が競合していました。

1998 年、S/MIME Version 2 の登場によってこの状況は変わり始めました。Version 1 とは異なり、S/MIME Version 2 はインターネット標準としての検討のためにインターネット特別技術調査委員会 (IETF) に提出されました。これにより、S/MIME は、多数の標準の中の 1 つの選択肢から、メッセージ セキュリティ標準の有力な候補へと変わりました。S/MIME Version 2 は、メッセージの標準を規定した RFC 2311 (http://www.ietf.org/rfc/rfc2311.txt) と証明書処理のための標準を規定した RFC 2312 (http://www.ietf.org/rfc/rfc2312.txt) の 2 つの IETF Request for Comments (RFC) から構成されます。これらの RFC は連携して、ベンダが相互運用可能なメッセージ セキュリティ ソリューションを提供する際に従うことができる最初のインターネット標準ベースのフレームワークを提供しました。S/MIME Version 2 により、S/MIME はメッセージ セキュリティの標準として浮上します。

1999 年、S/MIME Version 3 は、S/MIME の機能を拡張するために IETF によって提案されました。RFC 2632 (http://www.ietf.org/rfc/rfc2632.txt) は、RFC 2311 の成果を基にして S/MIME メッセージの標準の仕様を規定し、RFC 2633 (http://www.ietf.org/rfc/rfc2633.txt) は、RFC 2312 の証明書処理の仕様を拡張しました。RFC 2634 (http://www.ietf.org/rfc/rfc2634.txt) は、S/MIME へサービスを追加して全体的な機能を拡張しました。

S/MIME Version 3 は、メッセージ セキュリティの標準として幅広く受け入れられました。S/MIME Version 3 は、以下の Microsoft 製品でサポートされています。

  • Microsoft Outlook® 2000 SR-1 以降
  • Microsoft Outlook Express 5.01 以降
  • Microsoft Exchange 5.5 以降

S/MIME の動作について

S/MIME は、以下の 2 つのセキュリティ サービスを提供します。

  • デジタル署名
  • メッセージの暗号化

この 2 つのサービスは、S/MIME ベースのメッセージ セキュリティの中心となります。メッセージ セキュリティに関連するその他の概念はすべて、この 2 つのサービスをサポートします。メッセージ セキュリティの全容は複雑に見える場合がありますが、この 2 つのサービスがメッセージ セキュリティの基盤です。デジタル署名とメッセージの暗号化の基本について理解した後、これらのサービスを他の概念がどのようにサポートするかを習得できます。

各サービスについて個別に確認した後、2 つのサービスがどのように連携するかについて説明します。

デジタル署名について

デジタル署名は、S/MIME の最も一般的に使用されるサービスです。名前が示すように、デジタル署名は、紙の文書に対する従来の正当な署名のデジタル版です。正当な署名と同様に、デジタル署名は以下のセキュリティ機能を提供します。

  • 認証   署名は ID の検証に役立ちます。エンティティをその他すべてと区別し、一意性を証明する手段を提供して、"あなたはだれか" という問いに対する答えを検証します。SMTP 電子メールでは認証が行われないため、だれがメッセージを実際に送信したかを知る方法はありません。デジタル署名での認証は、メッセージがそのメッセージを送信したと主張する人物または組織によって送信されたことを受信者が確認できるようにすることで、この問題を解決します。
  • 否認不可性   署名の一意性により、署名の所有者は署名が自分のものではないと言えなくなります。この機能は否認不可性と呼ばれます。このように、署名が提供する認証によって、否認不可性を適用するための手段が与えられます。否認不可性の概念は書面による契約で最もよく知られています。署名された契約は法的拘束力を持つ文書で、認証された署名が自分のものではないと言うことはできません。デジタル署名は同じ機能を提供し、一部の領域では次第に、紙への署名と同様に法的拘束力を持つものとして認識されてきています。SMTP 電子メールは認証手段を提供しないため、否認不可性を提供できません。送信者は簡単に SMTP 電子メール メッセージの所有権を否認できます。
  • データ整合性   デジタル署名が提供するその他のセキュリティ サービスはデータ整合性です。データ整合性は、デジタル署名を可能にする特定の操作から生じます。データ整合性サービスにより、デジタル署名された電子メール メッセージの受信者がデジタル署名を検証すると、受信した電子メール メッセージが実際に署名および送信されたメッセージであり、送信中に変更されていないことが受信者に保証されます。署名された後で送信中にメッセージが変更された場合、署名は無効になります。このように、紙の文書では署名後の変更が可能なため、デジタル署名は紙への署名では行えない保証を提供できます。
important重要 :
デジタル署名はデータ整合性を提供しますが、機密性は提供しません。デジタル署名のみを含むメッセージは、SMTP メッセージと同様にクリア テキストで送信されるため、他人に読み取られる可能性があります。メッセージが符号化署名付きである場合は、Base64 で符号化されるため、ある程度は難読化されますが、クリア テキストであることは変わりません。電子メール メッセージの内容を保護するには、メッセージの暗号化を使用する必要があります。

認証、否認不可性、およびデータ整合性は、デジタル署名の中心的な機能です。これらの機能が連携して、メッセージが送信者から送られたものであること、および受信したメッセージが送信されたメッセージであることを受信者に保証します。

簡単に説明すると、デジタル署名は、次の図に示すように、電子メール メッセージが送信される際にメッセージのテキストに対して署名操作を実行し、メッセージが読み取られる際に検証操作を実行することによって機能します。

7eb8a3ca-35c8-4101-9dd6-421a6bc7cc79

メッセージの送信時に実行される署名操作には、送信者のみが提供できる情報が必要です (この署名操作の詳細については、「公開キー暗号について」の「公開キー暗号とデジタル署名」を参照してください)。この情報は、電子メール メッセージを取得し、メッセージに対して署名を行う署名操作で使用されます。この操作により、実際のデジタル署名が生成されます。次に、この署名が電子メール メッセージに付加され、送信時にメッセージに含まれます。次の図は、メッセージへの署名の手順を示しています。

b310b679-91bf-40f7-be7f-abbc24515204

  1. メッセージが取得されます。
  2. 送信者を一意に識別する情報が取得されます。
  3. 送信者の一意の情報を使用して署名操作がメッセージに対して実行され、デジタル署名が生成されます。
  4. デジタル署名がメッセージに付加されます。
  5. メッセージが送信されます。

この操作には送信者からの一意の情報が必要となるため、デジタル署名は認証と否認不可性を提供します。この一意の情報は、メッセージが送信者から来たものであることを証明できます。

note注 :
どのセキュリティ メカニズムも完全ではありません。認証されていないユーザーがデジタル署名に使用される一意の情報を取得して、送信者になりすまそうとすることは可能です。ただし、S/MIME 標準はこのような状況に対処できるので、認証されていない署名は無効であると示されます。詳細については、「デジタル証明書について」を参照してください。

受信者がデジタル署名された電子メール メッセージを開くと、デジタル署名に対する検証手順が実行されます。メッセージに含まれているデジタル署名がメッセージから取得されます。元のメッセージも取得され、署名操作が実行されて、別のデジタル署名が生成されます。メッセージに含まれているデジタル署名が、受信者によって生成されたデジタル署名と比較されます。署名が一致する場合、メッセージは主張どおりの送信者から来たものと確認されます。署名が一致しない場合、メッセージは無効であるとマークされます。次の図は、メッセージの検証の手順を示しています。

1dc0bde0-fcc9-4c15-9697-a8925781649a

  1. メッセージが受信されます。
  2. メッセージからデジタル署名が取得されます。
  3. メッセージが取得されます。
  4. 送信者を識別する情報が取得されます。
  5. メッセージに対して署名操作が実行されます。
  6. メッセージに含まれるデジタル署名が、受信時に生成されたデジタル署名と比較されます。
  7. デジタル署名が一致した場合、メッセージは有効です。
important重要 :
署名の検証に使用される送信者の情報は、メッセージの署名時に送信者が入力するのと同じ情報ではありません。受信者によって使用される情報は、受信者が送信者の一意の情報を実際に知らなくても検証できるようにする方法で関連付けられるため、送信者の情報は保護されます。送信者と受信者が情報を共有する方法の詳細については、「公開キー暗号について」の「公開キー暗号とデジタル署名」を参照してください。

デジタル署名およびデジタル署名の検証のプロセスは、合わせて行うことで、電子メール メッセージの送信者を認証し、署名されたメッセージ内のデータ整合性を判断します。送信者の認証により否認不可性の機能が追加され、認証された送信者はそのメッセージを送信したのは自分ではないと主張できなくなります。デジタル署名は、標準の SMTP ベースのインターネット電子メールで行われる可能性がある、なりすましやデータの改ざんに対する解決策です。

メッセージの暗号化について

メッセージの暗号化は、情報公開に対する解決策となります。SMTP ベースのインターネット電子メールは、メッセージをセキュリティで保護しません。SMTP インターネット電子メールは、送信中に見るすべての人、または保存されている場所で表示するすべての人によって読み取り可能です。これらの問題は、S/MIME で暗号化を使用することによって解決されます。

暗号化は情報を変更するための方法なので、読み取り可能および理解可能な形式に変えられるまで情報を読み取ったり理解することはできません。

メッセージの暗号化はデジタル署名ほど幅広く使用されていませんが、多くの人がインターネット電子メールの最も重大な弱点と考える問題に対処します。メッセージの暗号化は、2 つの固有のセキュリティ サービスを提供します。

  • 機密性   メッセージの暗号化は、電子メール メッセージの内容を保護するために役立ちます。目的の受信者だけが内容を表示でき、そのメッセージを他の人が受信または表示した場合でも機密性を維持したままで、内容を知ることはできません。暗号化は、メッセージが送信および格納されているときに機密性を提供します。
  • データ整合性   デジタル署名と同様、メッセージの暗号化は、暗号化を可能にする特定の操作から生じるデータ整合性サービスを提供します。
important重要 :
メッセージの暗号化は機密性を提供しますが、どのような方法でもメッセージ送信者を認証しません。署名されていない暗号化されたメッセージは、暗号化されていないメッセージと同じぐらい送信者のなりすましを受けやすくなります。否認不可性は認証の直接的な結果なので、メッセージの暗号化は否認不可性も提供しません。暗号化はデータ整合性を提供しますが、暗号化されたメッセージが示すことができるのは、そのメッセージが送信後に変更されていないことだけです。メッセージを送信した人物に関する情報は提供されません。送信者の身元を証明するには、メッセージでデジタル署名を使用する必要があります。

機密性とデータ整合性は、メッセージの暗号化の中心的な機能です。目的の受信者だけがメッセージを表示でき、受信したメッセージが送信されたメッセージであることを保証します。

メッセージの暗号化では、送信時にメッセージのテキストを暗号化して読み取り不可能にします。メッセージが受信されると、次の図に示すように、メッセージが読み取られるときに解読操作が実行され、テキストが再び読み取り可能になります。

70d97fee-7c86-4ab9-b104-56558a5a4102

メッセージの送信時に実行される暗号化操作では、電子メール メッセージを取得し、目的の受信者に固有の情報を使用して暗号化します。暗号化されたメッセージによって元のメッセージが置き換えられ、メッセージは受信者に送信されます。次の図は、電子メール メッセージの暗号化の手順を示しています。

7320c72f-dfc4-45c2-b56c-13433dc4360e

  1. メッセージが取得されます。
  2. 受信者を一意に識別する情報が取得されます。
  3. 受信者の情報を使用してメッセージに対して暗号化操作が実行され、暗号化されたメッセージが生成されます。
  4. 暗号化されたメッセージによってメッセージのテキストが置き換えられます。
  5. メッセージが送信されます。

この操作には受信者に関する一意の情報が必要なので、メッセージの暗号化は機密性を提供します。解読操作を実行するための情報を持っているのは、目的の受信者だけです。暗号化が解除されたメッセージを表示する前に受信者の一意の情報を入力する必要があるため、目的の受信者だけがメッセージを表示できるようになります。

important重要 :
メッセージの暗号化に使用される受信者の情報は、メッセージの解読時に受信者が入力するのと同じ情報ではありません。送信者によって使用される情報は、送信者が受信者の一意の情報を実際に知らなくても使用できるようにする方法で関連付けられるため、受信者の情報は保護されます。送信者と受信者が情報を共有する方法の詳細については、「公開キー暗号について」の「公開キー暗号とメッセージの暗号化」を参照してください。

受信者が暗号化されたメッセージを開くと、暗号化されたメッセージに対して解読操作が実行されます。暗号化されたメッセージと受信者の一意の情報の両方が取得されます。次に、受信者の一意の情報が、暗号化されたメッセージに対して実行される解読操作で使用されます。この操作によって暗号化を解除されたメッセージが返され、受信者に示されます。メッセージが送信中に変更された場合、解読操作は失敗します。次の図は、電子メール メッセージの解読の手順を示しています。

5b1ee7e9-35fb-4c55-bd0f-63a2b52a6604

  1. メッセージが受信されます。
  2. 暗号化されたメッセージが取得されます。
  3. 受信者を一意に識別する情報が取得されます。
  4. 暗号化されたメッセージに対して受信者の一意の情報を使用して解読操作が実行され、暗号化が解除されたメッセージが生成されます。
  5. 暗号化が解除されたメッセージが受信者に返されます。
note注 :
どのセキュリティ メカニズムも完全ではありません。認証されていないユーザーが受信者の一意の情報を取得し、暗号化されたメッセージをその情報を使用して読み取ることは可能です。ただし、S/MIME 標準はこのような状況に対処できます。詳細については、「デジタル証明書について」を参照してください。

メッセージの暗号化および解読プロセスは、電子メール メッセージの機密性を提供します。このプロセスは、実際にだれもがすべてのメッセージを読み取ることができるというインターネット電子メールの重大な弱点に対処します。

デジタル署名とメッセージの暗号化の連携について

デジタル署名とメッセージの暗号化は、相互に排他的なサービスではありません。各サービスは、特定のセキュリティ問題に対処します。デジタル署名は認証および否認不可性の問題に対処し、メッセージの暗号化は機密性の問題に対処します。それぞれが異なる問題に対処するため、メッセージ セキュリティ戦略では、多くの場合、両方のサービスを同時に必要とします。この 2 つのサービスは、送信者側と受信者側をそれぞれ個別に扱うため、互いに連携して使用されることを意図して設計されました。デジタル署名は、送信者に関連するセキュリティ問題に対処し、暗号化は、主に受信者に関連するセキュリティ問題に対処します。

デジタル署名とメッセージの暗号化が共に使用されると、ユーザーは両方のサービスから利益を得ることができます。メッセージに両方のサービスを使用しても、いずれかのサービスの処理が変わることはありません。各サービスは、本書で既に説明したとおりに動作します。デジタル署名とメッセージの暗号化がどのように連携して実行されるかを示すために、次の図に電子メール メッセージの署名と暗号化の手順を示します。

3d9893ab-cffa-4783-95d9-fd9d997c1533

  1. メッセージが取得されます。
  2. 送信者を一意に識別する情報が取得されます。
  3. 受信者を一意に識別する情報が取得されます。
  4. 送信者の一意の情報を使用してメッセージに対して署名操作が実行され、デジタル署名が生成されます。
  5. デジタル署名がメッセージに付加されます。
  6. 受信者の情報を使用してメッセージに対して暗号化操作が実行され、暗号化されたメッセージが生成されます。
  7. 元のメッセージが暗号化されたメッセージによって置き換えられます。
  8. メッセージが送信されます。

次の図は、解読およびデジタル署名の検証の手順を示しています。

deab38d5-da66-4c23-add3-a78722c41cb1

  1. メッセージが受信されます。
  2. 暗号化されたメッセージが取得されます。
  3. 受信者を一意に識別する情報が取得されます。
  4. 暗号化されたメッセージに対して受信者の一意の情報を使用して解読操作が実行され、暗号化が解除されたメッセージが生成されます。
  5. 暗号化が解除されたメッセージが返されます。
  6. 暗号化が解除されたメッセージが受信者に返されます。
  7. 暗号化が解除されたメッセージからデジタル署名が取得されます。
  8. 送信者を識別する情報が取得されます。
  9. 暗号化が解除されたメッセージに対して送信者の情報を使用して署名操作が実行され、デジタル署名が生成されます。
  10. メッセージに含まれるデジタル署名が、受信時に生成されたデジタル署名と比較されます。
  11. デジタル署名が一致した場合、メッセージは有効です。

トリプルラップされたメッセージ

S/MIME Version 3 の注目すべき拡張機能の 1 つは、"トリプルラップ" です。トリプルラップされた S/MIME メッセージとは、署名され、暗号化され、次に再度署名されたメッセージです。暗号化のこの追加の層が、セキュリティに追加の層を提供します。ユーザーが S/MIME Control を使用した Outlook Web Access でメッセージに署名して暗号化した場合、そのメッセージは自動的にトリプルラップされます。Outlook と Outlook Express では、トリプルラップは行いませんが、トリプルラップされたメッセージを読むことは可能です。

デジタル署名とメッセージの暗号化は互いを補完し、SMTP ベースのインターネット電子メールに影響を与えるセキュリティ問題に対する包括的な解決策を提供します。

デジタル証明書とメッセージの暗号化は、S/MIME の中心的な機能です。メッセージ セキュリティをサポートする最も重要な概念は、公開キー暗号です。公開キー暗号により、S/MIME 内でデジタル署名とメッセージの暗号化が実行可能になります。「公開キー暗号について」では、公開キー暗号について、また公開キー暗号と S/MIME がどのように関連するかについて説明しています。