「常時SSL化」時代に向けたセキュリティ対策指南書
3. SSL/TLSとは何か
SSL暗号化がもたらした脅威環境の変化を理解する前に、SSL暗号化の基本的な仕組みについて説明します。
インターネット接続で使用される通信プロトコルにはTCP/IPが用いられますが、これはOSIの参照モデル*4 (厳密には異なりますが)のトランスポート層とネットワーク層(インターネット層)のプロトコルです。そして、HTTPやSMTP*5 などはアプリケーション層に位置しています。そしてSSLについてはトランスポート層とアプリケーション層の間に存在し、HTTPなどのアプリケーションよりも下層であるセッション層として実装されています。
暗号化通信までの簡単な流れを、Webアクセスのケースで図示すると次のようになります。
(SSLは、POP3やSMTP、IMAP4などでも利用できます。)
- ブラウザでSSL接続が有効になっているWebサーバーに接続を開始します。
- Webサーバーは、Webサーバーに設定されているサーバー証明書と秘密鍵に対応する公開鍵を送り返します。(実際にはサーバー証明書に公開鍵は内包されています)
- ブラウザでは、受け取ったサーバー証明書が、クライアントに登録されたルート証明書リストで検証します。
- クライアントからは、暗号化接続のための一時的な共通鍵を作成し、それをWebサーバーから送られてきた公開鍵で暗号化しWebサーバー側に送ります。
- 公開鍵で暗号化された共通鍵を受けたWebサーバーでは、対応する秘密鍵で復号し共通鍵を取り出します。
- この段階で暗号化のセッションが確立し、双方が送受信する情報は、共通鍵で暗号化/復号処理を行います。
SSL実装はトランスポート層とアプリケーション層の間、いわゆるセッション層で行われるため、一度暗号化セッションが確立すればWebブラウザやWebサーバー自体に特別な操作や設定を必要とせずに暗号化された通信を行うことが可能です。
SSLの導入は容易に行え、優れたセキュリティ機能を利用できます。
SSL導入による優れたセキュリティ機能
- 発行された証明書が信頼される機関によるものかで判断ができる
SSL接続で使用する鍵が、正しい中間認証局(クライアントのルート証明局に認められた認証局)で署名されたものかを確認することができます。ルート証明書で検証できない場合、その旨の警告を発し注意を促します。 - コンピュータ間の通信セッションを暗号化し、データが盗まれても内容が判別できないようにする
対称鍵の共有のために、RSA2048ビットの鍵などの公開鍵による暗号化を、通信の暗号化にはAES256ビットの鍵などの対称鍵による暗号化を用い、推測や総当たり攻撃による復号処理を現実的な時間でできないようにします。(安全性と相互接続性についての要求設定は、IPAが公開しているSSL/TLS暗号設定ガイドラインを参照) - 通信データを通信の途中で傍受し、内容を改変して送りなおす改変行為をできないようにする
暗号化データを送信する場合、送信する暗号化したデータ全体のハッシュ値を生成し、中のデータが改変された場合に改変の事実がわかる仕組みを提供します。
Googleは、SSLを採用し安全性の向上に取り組んでいるサイトを高評価しているため、多くの企業はSSLの導入に取り組むことになりました。
- *4 通信に必要な機能を階層として定義した国際標準化機構が策定した構造
- *5 HTTPはWeb通信に用いられ、SMTPはメール通信に用いられるプロトコル
「常時SSL化」時代に向けたセキュリティ対策指南書 ダウンロード