SSL/TLSは,インターネット上で安全にデータ通信を行うための暗号化プロトコルであり,基本情報技術者試験をはじめとする情報処理技術者試験で重要となる内容です。WebサイトのHTTPS通信などでは,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のプロトコル構成
SSLは,次のようなプロトコルで構成されています。
| Handshake プロトコル | 暗号アルゴリズムや鍵など,暗号化通信に必要な情報を通信相手と交渉するプロトコル |
| Change Cipher Spec プロトコル | Handshakeプロトコルにより決定した情報の利用開始を通知するプロトコル |
| Alertプロトコル | エラーなどを通知するプロトコル |
| Recordプロトコル | 上位層から渡されたデータを圧縮・暗号化して下位層に渡したり,下位層から渡されたデータを復号して上位層に渡したりするプロトコル |
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-VPN)
まとめ
今回は,SSL/TLSについてシンプルにまとめてみました。SSL/TLSは,インターネット上で安全な通信を実現するための暗号化プロトコルであり,通信内容の暗号化やサーバー認証などの機能を提供します。HTTPSなど多くのインターネットサービスで利用されている重要な技術なので,繰り返し確認して理解を深めておきましょう。
理解が進んだら,基本情報技術者試験の過去問題等にもチャレンジしてみてください。


