1. はじめに English
(準備中)
TLS プロトコルの主な目的は、通信を行う 2 つのアプリケーション間に、通信プライバシーとデータインテグリティ機能を提供することである。プロトコルは、2 つの層から成る。それは TLS レコードプロトコルと TLS ハンドシェイクプロトコルである。TLS レコードプロトコルは、 セキュアな伝送プロトコル層(例えば、TCP [TCP] )の直上にある。TLS レコードプロトコルにより、次の 2つの基本的特性をもつコネクションセキュリティが提供される。
- コネクションで交換される情報を非公開にするため、データを暗号化するために共通鍵暗号が使用される。(例えば、DES [DES]、RC4 [RC4] など)。この共通鍵暗号に使用される鍵は、他のプロトコル(たとえば、TLS ハンドシェイクプロトコル)による秘密情報に基づいて、各コネクションごとに一意に生成される。また、レコードプロトコルは、暗号化を用いずに使用することもできる。
- コネクションは信頼できる。メッセージ送受信が行われる際には、鍵付き MAC を使用したメッセージの保全チェックが行われる。MAC を計算するために、 セキュアなハッシュ関数(例えば SHA、MD5 など)が使用される。レコードプロトコルは、MAC なしでも機能するが、一般にはこのセキュリティ チェックモードのみが使用される。他のプロトコルは、このレコードプロトコルを、セキュリティパラメータを共有するための通信手段として使用する。
TLS レコード プロトコルは、より上位に位置するさまざまなプロトコルのカプセル化に使用される。カプセル化されるプロトコルの1つである TLS ハンドシェイク プロトコルでは、アプリケーションプロトコルの最初のデータを送信または受信する前に、サーバーとクライアントの相互認証、暗号化アルゴリズムと暗号鍵の共有を行うことができる。TLS ハンドシェイク プロトコルにより、次の 3 つの基本的特性をもつコネクション セキュリティが提供される。
- コネクションを行う双方の ID 認証は、公開鍵暗号 (例えば、RSA [RSA], DSS [DSS]など) を使用して認証することができる。この認証は任意とすることができるが、一般には、少なくとも一方のコネクションでは、必要である。
- 共有されるシークレットの共有は安全であるので、共有された秘密情報を盗聴者は、知ることができない。また認証されたコネクションにおいては、コネクションの間に攻撃者が介在・中継していたとしても、秘密情報を得ることはできない。
- 共有は信頼できる。通信をしている当事者によって検出されることなく、攻撃者が共有プロトコルを勝手に変更することはできない。
TLS の利点のひとつは、アプリケーション プロトコルから独立していることである。 TLS プロトコルを透過的なものとした、より上位のプロトコル層を形成することができる。 しかし TLS 規格では、より上位のプロトコルにおいて、どのように TLS を使用したセキュリティを追加するか、については規定しない。どのように TLS ハンドシェイクを開始し、交換された認証証明書をどのように解釈するかに関しては、TLS の上位プロトコルを実装する側の判断による。