書籍:食べる!SSL!―HTTPS環境構築から始めるSSL入門 著者:小島 拓也, 中嶋 亜美, 吉原 恵美, 中塚 淳
1.セキュリティの重要性
セキュリティを考えるときの3要素(CIA)
- 機密性(Confidentiality)
- 情報が漏洩しないこと。盗聴やなりすましなどの攻撃を防ぐこと。
- 完全性(Integrity)
- 改ざんされていないこと
- 可用性(Availability)
- 使用可能であるべきとき、使用可能であること
- DoS攻撃は可用性を脅かす攻撃
攻撃モデルにMicrosoft社のSTRIDEがある。
- なりすまし(Spoofing)
- データの改ざん(Tampering)
- 否認(Repudiation)
- 情報漏洩(Information Disclosure)
- サービス不能(Denial of Service)
- 権限昇格(Elevation of Privilege)
2.SSL通信とは
SSL通信のフェーズ
ハンドシェイクフェーズとデータ通信フェーズに分かれる。
- ハンドシェイクフェーズ
- データ転送フェーズ
SSL通信で守られる範囲
- SSL プロトコルは OSI第5層、セッション層に位置する
- それ以下の層(TCP層やIP層)は隠蔽されない。例えば、IPアドレスは暗号化されない
- また、SSLには透過性があり、SSLプロトコルはデータを変更しない。つまり、SSLを使うように変更した場合でも、アプリケーションプロトコルには変更は必要ない。これはすなわち、アプリケーションプロトコルの脆弱性、例えば、SQLインジェクション等は、SSLでは守られない。
3. SSL通信の構築準備
- Webアプリケーションサーバの構成
- クライアント - ロードバランサ - Webサーバ - アプリケーションサーバ
- SSLの導入はパフォーマンスに影響がある。Webサーバとアプリケーションサーバを同じセキュリティゾーンとみなせるなら、クライアントWebサーバ間をHTTPS、Webサーバアプリサーバ間をHTTPにすることもできる。
- ロードバランサがある場合、ロードバランサ以降が同じセキュリティゾーンなら、ロードバランサまでをHTTPS通信にし、それ以降をHTTPにすることもある。この場合、SSLの証明書の設定等が一か所になるのでメンテナンスが楽。
- SSLを使う範囲は、セキュリティ技術、パフォーマンス、スペック等を考慮して決める必要がある