Studio での SSL の使用

Secure Sockets Layer (SSL) は、サーバーとクライアントの間で暗号化されたリンクを確立するための標準セキュリティー・テクノロジーです。 暗号化されたリンクは、サーバーとクライアントの間で、すべてのデータが秘密情報として、変更されることなく送受信されることを保証します。 SSL 接続を作成するために、サーバーは SSL 証明書を必要とします。 このセクションでは、Studio での SSL の使用の概要を説明するとともに、Transport Layer Security (TLS) と SSL セキュリティーおよび証明書について説明します。また、SSL クライアント認証を検査するときに使用する認証局 (CA) 証明書、エンド・エンティティー証明書、および秘密鍵を適切にインポートするために必要な手順についても説明します。

SSL と Transport Layer Security

TLS 1.0 は、SSL 3.0 をアップグレードしたプロトコルです。 例えば、クライアント/サーバー認証の確立および暗号化のための TLS ハンドシェーク・プロトコルは、SSL ハンドシェーク・プロトコルと異なります。 さらに、TLS では拡張性が向上しています。 両者を併用することはできませんが、TLS が提供するメカニズムを使用すると、TLS 1.0 実装環境を SSL 3.0 実装環境に戻すことができます。

TLS プロトコルでは、公開鍵および対称鍵による暗号テクノロジーを使用します。 公開鍵暗号方式では、公開鍵と秘密鍵を使用します。 一方の鍵で暗号化された情報は、他方の鍵でのみ暗号化解除することができます。 例えば、公開鍵で暗号化された情報は、秘密鍵でのみ暗号化解除することができます。

各サーバーの公開鍵は公開されていますが、秘密鍵は秘密にされています。 セキュア・メッセージをサーバーに送信するために、クライアントは、サーバーの公開鍵を使用してメッセージを暗号化します。 サーバーは、メッセージを受信すると、その秘密鍵を使用してメッセージを暗号化解除します。

対称鍵暗号方式では、同じ鍵を使用してメッセージを暗号化および暗号化解除します。 クライアントは、すべてのセッション・データを暗号化するために使用する対称鍵をランダムに生成します。 この鍵がサーバーの公開鍵によって暗号化され、サーバーに送信されます。

TLS は、以下の 3 つの基本セキュリティー・サービスを提供します。
  • メッセージ・プライバシー - 公開鍵と対称鍵の暗号化を組み合わせることにより実現します。 クライアントとサーバーの間のすべてのトラフィックは、1 つの鍵と、セッション・セットアップ時のネゴシエーションにより決定された暗号化アルゴリズムを使用して、暗号化されます。
  • メッセージ保全性 - セッション・トラフィックがその最終宛先までの経路上で変更されないようにします。 TLS および SSL では、公開/秘密鍵とハッシュ関数の組み合わせを使用して、メッセージ保全性を確保します。
  • 相互認証 – 公開鍵証明書を使用した識別情報の交換。 クライアントとサーバーの識別情報は、公開鍵証明書内でエンコードされています。公開鍵証明書には、以下のコンポーネントが含まれます。
    • サブジェクトの識別名
    • 発行者の識別名
    • サブジェクトの公開鍵
    • 発行者の署名
    • 有効期間
    • シリアル番号
セキュア HTTP (HTTPS) も使用できます。これにより、サーバーからダウンロードされるときに、クライアントのセキュリティー情報の漏えいを確実に避けることができます。

証明書

SSL では、デジタル証明書を使用して、サーバーの識別情報およびクライアントの識別情報 (オプション) を認証します。 デジタル証明書は、認証局 (CA) によって発行されます。CA は、信頼のおける第三者機関として、要求側の識別情報および妥当性を検査した後で、デジタル証明書の発行、更新、および取り消しを行う権限を持ちます。 CA 証明書は、ルート CA 証明書または従属 CA 証明書のいずれかであり、CA の署名および有効期間が記述されています。 CA は、1 つの鍵と別の CA またはエンド・エンティティーとの間の接続を保証します。 エンド・エンティティーとは、特定の個人、ロール、組織、ハンドル・ネーム、ハードウェア、またはソフトウェアのことです。

暗号化と認証は、公開鍵および秘密鍵を使用して実行されます。 公開鍵は、サイト証明書またはサーバー証明書と呼ばれる証明書に組み込まれています。 この証明書には、いくつかの情報項目があります。主な項目は、証明書を発行した CA の名前、サーバーまたはクライアントの名前と公開鍵、CA の署名、証明書の日付とシリアル番号などです。 秘密鍵は、ユーザーが自己署名証明書または CA 証明書要求を作成するときに作成され、クライアントからのメッセージを暗号化解除するために使用されます。

SSL または TLS セッションは、以下の手順で確立されます。
  1. クライアントとサーバーは、ハロー・メッセージを交換して、セッションで使用する暗号化アルゴリズムとハッシュ関数 (メッセージ保全性のため) についてのネゴシエーションを行います。
  2. クライアントは、識別情報を証明するための ITU-T 標準 X.509 証明書をサーバーに要求します。 オプションで、サーバーがクライアントに証明書を要求することもできます。 証明書を検査するために、証明書のフォーマットと有効期間の日付が正しいかどうか、および証明書にトラステッド認証局の署名が含まれているか (あるいは自己署名されているか) どうかが確認されます。
  3. クライアントは、暗号化に使用する鍵のセットをランダムに生成します。 これらの鍵はサーバーの公開鍵によって暗号化され、サーバーまで安全に送信されます。



フィードバック | 特記事項


タイム・スタンプ・アイコン 最終更新: 2013年11月7日 (木曜日)


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/SSL_overview.html