TLS による識別、認証、機密性、保全性
クライアントとサーバーの両方の認証時に、非対称鍵のペアで鍵のどちらかを使用してデータを暗号化し、ペアのもう一方の鍵を使用して復号することが必要な手順があります。 保全性のためには、メッセージ・ダイジェストを使用します。
TLS ハンドシェークに関連するステップの概要については、 SSL/TLS ハンドシェークの概要を参照してください。
TLS での認証
サーバーの認証の場合、クライアントはサーバーの公開鍵を使用して、秘密鍵の計算に使用されるデータを暗号化します。 サーバーは、正しい秘密鍵を使用してそのデータを復号する場合だけ、秘密鍵を生成することができます。 ランダム・バイト・ストリング自体は、サーバーの公開鍵を使用して暗号化されます (概要のステップ 4 )。
クライアント認証の場合、サーバーはクライアント証明書の公開鍵を使用して、ハンドシェークのステップ 5 でクライアントが送信するデータを暗号化解除します。 秘密鍵を使用して暗号化された完了メッセージの交換 (概要のステップ 7 および 8 ) により、認証が完了したことが確認されます。
認証ステップのいずれかが失敗すると、ハンドシェークが失敗し、セッションは終了します。
TLS ハンドシェーク時のデジタル証明書の交換は、認証プロセスの一環です。 証明書が偽名の使用をどのように防止するかについては、
関連情報を参照してください。 必要な証明書は、以下のとおりです。ここで、CA X は、TLS クライアントに証明書を発行し、CA Y は、TLS サーバーに証明書を発行します。
- CA
Yによってサーバーに発行される個人用証明書 - サーバーの秘密鍵
- CA
Yの CA 証明書
X) の公開鍵を使用してクライアントのデジタル証明書を検証することにより、クライアントの ID を検証します。 サーバーとクライアント認証のいずれの場合も、サーバーは次のものを必要とします。- CA
Yによってサーバーに発行される個人用証明書 - サーバーの秘密鍵
- CA
Xの CA 証明書
- CA
Xによってクライアントに発行される個人用証明書 - クライアントの秘密鍵
- CA
Yの CA 証明書
TLS サーバーとクライアントの両方で、ルート CA 証明書までの証明書チェーンを作成するために、他の CA 証明書が必要になる場合があります。 証明書チェーンの詳細については、 関連情報を参照してください。
証明書の検査時に行われること
- デジタル署名が検査されます ( SSL/TLS のデジタル署名 を参照)。
- 証明書チェーンが検査されます。中間 CA 証明書が必要です ( 証明書チェーンの機能 を参照)。
- 有効期限とアクティブ化の日付、および有効期間が検査されます。
- 証明書の失効状況が検査されます ( 失効した証明書の処理 を参照)。
秘密鍵の再設定
TLS ハンドシェーク中に、TLS のクライアントとサーバー間のデータを暗号化するために秘密鍵 が生成されます。 秘密鍵は数式の中で使用され、その数式がデータに適用されて、平文を読み取り不能な暗号文に変換したり、暗号文を平文に変換したりします。
秘密鍵は、ハンドシェークの一部として送信されたランダム・テキストから生成され、平文を暗号文に暗号化するために使用されます。 秘密鍵は MAC (メッセージ確認コード) アルゴリズムでも使用されます。このアルゴリズムは、メッセージが変更されたかどうかの判断に使用されます。 詳しくは、 メッセージ・ダイジェストおよびデジタル署名 を参照してください。
秘密鍵が発見されれば、メッセージの平文を暗号文から復号したり、メッセージ・ダイジェストを計算したりできるので、メッセージを検出せずに変更できます。 複雑なアルゴリズムでも、可能なすべての数学的変換を暗号文に適用すれば、最後には平文を発見できます。 秘密鍵が破損している場合の復号または変更可能なデータ量を最小化するために、秘密鍵を定期的に再調整できます。 秘密鍵が再調整されると、前の秘密鍵は、新規の秘密鍵で暗号化されたデータの復号には使用できなくなります。
TLS での機密性
TLS は、対称暗号化と非対称暗号化の組み合わせを使用して、メッセージのプライバシーを確保します。 TLS ハンドシェーク時に、TLS クライアントとサーバーは、1 つのセッションだけに使用される暗号化アルゴリズムと共有秘密鍵を一致させます。 TLS クライアントとサーバー間で伝送されるすべてのメッセージは、そのアルゴリズムと鍵を使用して暗号化され、メッセージが傍受された場合であっても、秘密のままであることを確実にします。 TLS は、共有秘密鍵のトランスポート時に非対称暗号化を使用するので、鍵配布の問題はありません。 暗号化手法について詳しくは、 暗号化方式を参照してください。
TLS での保全性
TLS は、メッセージ・ダイジェストを計算してデータ保全性を提供します。 詳しくは、 メッセージのデータ保全性を参照してください。
TLS を使用すると、 CipherSpecsの表で説明されているように、チャネル定義の CipherSpec がハッシュ・アルゴリズムを使用する場合に、データ保全性が保証されます。
特に、データ保全性が重要となる場合には、ハッシュ・アルゴリズム「なし」とリストされる CipherSpec を選択しないでください。 また、MD5 は非常に古くなり、ほとんどの場合、実用目的では安全と言えなくなったため、これを使用しないよう強くお勧めします。