SSL/TLS -情報処理シンプルまとめ

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

 基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,SSL/TLSについてシンプルにまとめています。はじめに,SSL/TLSの概要を説明し,その後,SSLのプロトコル(SSL Handshakeプロトコル(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-VPN-インターネットVPN-SSL-VPN -情報処理シンプルまとめ」を参照

SSLのプロトコル

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

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

セッションの確立

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

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

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

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

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

SSL対応のプロトコル

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

プロトコルポート番号
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について,シンプルにまとめてみました。難しく感じた場合は,また,時間を空けて読んでみましょう。