食べる!SSL!―HTTPS環境構築から始めるSSL入門 メモ1

書籍:食べる!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通信のフェーズ

ハンドシェイクフェーズとデータ通信フェーズに分かれる。

  • ハンドシェイクフェーズ
    1. 使用するアルゴリズムの合意
    2. サーバの認証
      • サーバが証明書をクライアントに送り、クライアントが検証する
    3. データ転送で使う鍵の決定
    4. ハンドシェイクの確認
      • 1~3の通信データのMACを作成し、サーバ、クライアント相互に送りあう
  • データ転送フェーズ

SSL通信で守られる範囲

3. SSL通信の構築準備

  • Webアプリケーションサーバの構成
    • クライアント - ロードバランサ - Webサーバ - アプリケーションサーバ
    • SSLの導入はパフォーマンスに影響がある。Webサーバとアプリケーションサーバを同じセキュリティゾーンとみなせるなら、クライアントWebサーバ間をHTTPS、Webサーバアプリサーバ間をHTTPにすることもできる。
    • ロードバランサがある場合、ロードバランサ以降が同じセキュリティゾーンなら、ロードバランサまでをHTTPS通信にし、それ以降をHTTPにすることもある。この場合、SSLの証明書の設定等が一か所になるのでメンテナンスが楽。
    • SSLを使う範囲は、セキュリティ技術、パフォーマンス、スペック等を考慮して決める必要がある