SSL 暗号化
SSL プロトコルは、アプリケーション層と TCP/IP 層の間で機能します。 これによりデータ・ストリーム自体の暗号化が可能になり、任意のアプリケーション層プロトコルを使ってそれを安全に伝送することができます。
データの暗号化およびメッセージ認証コードの計算に使用できるアルゴリズムは多種あります。 アルゴリズムによっては、ハイレベルのセキュリティーを提供するが、暗号化と暗号化解除のために大量の計算が必要になるものがあります。 また、セキュリティーはそれより劣るものの、暗号化と暗号化解除を短時間で行えるものもあります。 暗号化に使用される鍵の長さは、セキュリティーのレベルに影響を及ぼします。鍵が長いほど、データのセキュリティーが向上します。 SSL は、SSL 接続中に使用される暗号アルゴリズムを指定するために暗号スイートを定義します。
SSL 暗号化技法
SSL では、2 つの暗号化技法が使用されます。
- Public Key Cryptography Standard (PKCS) は、SSL ハンドシェーク中に証明書を暗号化および暗号化解除します。 暗号鍵は、公開鍵とそれに関連する秘密鍵というペアで作成されます。 特定の公開鍵で暗号化されたデータは、それに関連する秘密鍵だけを使って暗号化解除できます。 つまり、意図された受信者だけがデータを読み取ることができます。 特定の秘密鍵で暗号化されたデータは、それに関連する公開鍵だけを使って暗号化解除できます。 つまり、認証データの発信元は秘密鍵の所有者であることが確証されます。
- DES (Data Encryption Standard)、Triple-DES などの相互合意による対称暗号化技法は、ハンドシェーク後のデータ転送で使用されます。
SSL で使用される PKCS は、要約すると次のように機能します。
- 証明書が作成されるとき、2 つの乱数に基づくアルゴリズムを使って、証明書の所有者の秘密鍵と公開鍵が作成されます。 結果として作成される秘密鍵と公開鍵は、次のように互いに関連しています。
- 公開鍵から秘密鍵の値を推測したり、秘密鍵から公開鍵を推測することはできません
秘密鍵は安全に保管されます。所有者以外に知らされることはありません。 公開鍵は、任意のユーザーが自由に入手できます。 その際、秘密鍵の暗号が漏えいするセキュリティー・リスクはありません。
- 公開鍵を使って暗号化された情報は、秘密鍵だけを使って暗号化解除できます
任意のユーザーが情報を暗号化して、それを秘密鍵の所有者に安全に送ることができます。 第三者は公開鍵を使って情報を読み取ることができません。
- 秘密鍵を使って暗号化された情報は、公開鍵だけを使って暗号化解除できます
公開鍵を使って暗号化解除される情報を暗号化できるのは、秘密鍵の所有者だけです。 第三者が情報の送信者を偽装することはできません。
- 公開鍵から秘密鍵の値を推測したり、秘密鍵から公開鍵を推測することはできません