SSL/TLSの基礎まとめ【仕組み・プロトコル・セッション確立を解説】

SSL/TLSに関するブログのアイキャッチ画像 セキュリティ
広告

 このページでは,基本情報技術者試験をはじめとする情報処理技術者試験で必須となる,SSL/TLSについてシンプルにまとめています。SSL/TLSの概要,SSLプロトコル(Handshakeプロトコル,Change Cipher Specプロトコル,Alertプロトコル,Recordプロトコル),セッションの確立方法(プリマスタシークレット,マスタシークレット,セッション鍵,MACシークレット),SSL/TLSの問題点などを解説します。繰り返し確認して理解を深めましょう。

情報処理シンプルまとめ(ネットワーク)の各ページを順番に読んでいる場合,このページは,後回しにしてもかまいません。

※ 理解を深めるためには,先に,情報処理シンプルまとめ(ネットワーク)の各ページと,「暗号化の基礎まとめ」,「認証の基礎まとめ」を読んだ方が良いと思います。

広告

SSL/TLS(Secure Socket Layer / Transport Layer Security)とは(安全な暗号化通信プロトコル)

 SSL/TLSは,インターネット上でデータを暗号化して送信するプロトコルです。通信内容の暗号化や,サーバー認証,クライアント認証といった機能を提供します。

※ SSLは,トランスポート層(OSI基本参照モデル)のプロトコルである(トランスポート層とセッション層の間で動作する)

※ TLSは,SSLを標準化したプロトコルである

※ SSLは,ステートフルなプロトコルなので,状態管理を行うこと(以前の状態を保持すること)ができる

※ SSL/TLSは,Webブラウザの多くが対応していることから,主にWWWで利用されている。また,(Webアプリケーションシステムにおいて)インターネットVPNを構築する際に用いられることもある(SSL-VPN。クライアントに特別な設定がいらず,ファイアウォールの設定も容易なため)。SSL-VPNについては,「WAN(広域通信網)の基礎まとめ(SSL-VPNとは)」を参照

SSLのプロトコル構成

 SSLは,次のようなプロトコルで構成されています。

SSLのプロトコルに関する説明画像
Handshake
プロトコル
暗号アルゴリズムや鍵など,暗号化通信に必要な情報を通信相手と交渉するプロトコル
Change Cipher Spec
プロトコル
Handshakeプロトコルにより決定した情報の利用開始を通知するプロトコル
Alertプロトコルエラーなどを通知するプロトコル
Recordプロトコル上位層から渡されたデータを圧縮・暗号化して下位層に渡したり,下位層から渡されたデータを復号して上位層に渡したりするプロトコル

SSLセッションの確立

 SSLセッションは,SSLハンドシェイクプロトコルにより確立します。

SSLセッションの確立に関する説明画像

 SSLセッション確立後は,Recordプロトコルが,上位層から渡されたデータを圧縮・暗号化して下位層に渡したり,下位層から渡されたデータを復号して上位層に渡したりします。

 また,複数のセッションを使用することもできます。その場合,既存のセッション情報を用いてセッションを確立することができます。

既存のセッションに基づくコネクションの確立に関する説明画像

SSL/TLSが使われるプロトコル一覧

 SSL/TLSを利用できるプロトコルには,次のようなものがあります。

プロトコルポート番号
HTTPS(HTTP over SSL/TLS)443
LDAPS(LDAP over SSL/TLS)636
FTPS DATA(FTP DATA over SSL/TLS)989
FTPS(FTP over SSL/TLS)990
POP3S(POP3 over SSL/TLS)995

SSL/TLSの課題(負荷と対応要件)

 SSL/TLSは,アプリケーションと連携した通信が可能ですが,次のような問題点もあります。

  • それぞれのアプリケーションが,SSLに対応している必要がある
  • SSLサーバーの負荷が大きい

※ サーバーのクラスタリングや,SSLアクセラレータなどの導入により負荷分散を図る必要がある。負荷分散については,「」を参照

  • VPN装置がインターネットから攻撃可能な位置に配置されているため,完全な閉域性は確保できない
  • 通信速度は保証されない

まとめ

 今回は,SSL/TLSについてシンプルにまとめてみました。SSL/TLSのしくみやプロトコル,セッション確立の流れを理解し,ネットワーク通信の安全性を押さえましょう。

 理解が進んだら,過去問題等にも挑戦してみてください。