TLSの定義と目的
TLS(Transport Layer Security)は、クライアントとサーバー間の通信を保護するための暗号化プロトコルです。主な目的は、(1) 通信内容の機密性(盗み見を困難にする)、(2) 改ざんの検出(通信の整合性を守る)、(3) サーバーが正しい相手であることの確認(証明書を通じて所在を結びつける)です。
なお、TLSは「リンク(経路)」上の保護に強く関係しますが、端末内のマルウェアや認証情報の不正利用など、TLS単体では防ぎきれない領域もあります。ここを前提として理解すると、過度な期待を避けられます。
仕組みの全体像(できるだけ単純に)
TLSは一連の通信の流れの中で、次の考え方を段階的に行います。
- 合意(ネゴシエーション):クライアントとサーバーが、どの暗号方式や機能を使うかを決めます。
- 鍵の共有(または導出):共通鍵を安全に作るための仕組みにより、以後の暗号化・検証で使う鍵材料を整えます。
- 証明書による相手確認:サーバー側は証明書を提示し、クライアントは署名や有効性などを検証します。
- データ通信:合意した方式と鍵で、以後は暗号化しつつ整合性を確かめながらやり取りします。
この「合意→相手確認→鍵導出→保護されたデータ通信」という流れは、TLSの理解に役立つ骨組みです。実際の手順名や細部の数は実装やTLSバージョンで変わり得るため、まずは全体像として押さえるのが現実的です。
TLSの構成要素:証明書・暗号スイート・バージョン
TLSを語るとき、よく出る要素が3つあります。
- 証明書:サーバー(ドメイン等)に紐づいた公開鍵と署名者情報が含まれます。 クライアントは、証明書が正当であること(署名、チェーン、有効期間など)を検証します。 - 暗号スイート(暗号の組み合わせ):鍵交換、暗号化、整合性(MAC/AEADなど)の方式がセットで選ばれます。 安全性は、選ばれる方式に強く依存します。 - TLSバージョン:TLSには複数の世代があり、古い方式ほど安全性や互換性の都合で制約が生まれます。
