第1章 SSL/TLS と暗号技術
1.1 Transport Layer Security
1.2 ネットワークの階層
1.3 プロトコルの歴史
1.4 暗号技術
第2章 TLS 1.3
2.1 Record プロトコル
2.2 Handshake プロトコル
2.3 認証
2.4 Alertプロトコル
2.5 暗号に関する計算
2.6 拡張
2.7 暗号スイート
2.8 0-RTT
2.9 まとめ
第3章 TLS 1.2
3.1 Recordプロトコル
3.2 Handshakeプロトコル
3.3 鍵交換
3.4 認証
3.5 暗号化
3.6 再ネゴシエーション
3.7 Application Dataプロトコル
3.8 Alertプロトコル
3.9 接続の終了
3.10 暗号処理
3.11 暗号スイート
3.12 拡張
3.13 プロトコルの限界
3.14 プロトコルのバージョンによる相違
第4章 公開鍵基盤
4.1 インターネットPKI
4.2 証明書の標準
4.3 証明書
4.4 証明書チェーン
4.5 証明書利用者
4.6 CA
4.7 証明書のライフサイクル
4.8 失効
4.9 CT(証明書の透明性)
4.10 CAA(CAに対する認証)
4.11 証明書のライフサイクルを自動化する
4.12 弱点
4.13 改善の試み
4.14 エコシステムの観測
第5章 PKI に対する攻撃
5.1 VeriSign 社のMicrosoft 社に対するコード署名証明書
5.2 Thawte 社とlogin.live.com
5.3 StartCom 社のセキュリティ侵害(2008年)
5.4 CertStar(Comodo社)のMozilla 証明書
5.5 偽造RapidSSL 証明書
5.6 Comodo社のリセラーのセキュリティ侵害
5.7 StartCom 社のセキュリティ侵害(2011年)
5.8 DigiNotar 社
5.9 DigiCert Sdn. Bhd
5.10 Flame
5.11 TURKTRUST社
5.12 ANSSI
5.13 インド情報工学センター
5.14 広範囲に及ぶTLS の傍受
5.15 CNNIC
5.16 ルート鍵が破られる
5.17 Symantec社によるテスト用の証明書
5.18 カザフスタンにおける傍受
5.19 WoSign社とStartCom社の問題
5.20 SHA1の終焉
5.21 Symantec社のPKIからの失墜
5.22 さまざまな検証をめぐる事故
第6章 HTTPおよびブラウザの問題
6.1 サイドジャッキング
6.2 クッキー窃取
6.3 クッキーを書き換える攻撃
6.4 HTTPSストリッピング
6.5 MITMに使われる証明書
6.6 証明書の警告
6.7 セキュリティインジケーター
6.8 混在コンテンツ
6.9 EV証明書
6.10 証明書の失効
第7章 実装の問題
7.1 証明書の検証における欠陥
7.2 暗号化への昇格が安全でない状況
7.3 乱数生成における欠陥
7.4 Heartbleed
7.5 FREAK
7.6 Logjam
7.7 プロトコルダウングレード攻撃
7.8 強制切断攻撃
7.9 サイトの公開方法における問題
第8章 プロトコルに対する攻撃
8.1 安全でない再ネゴシエーション
8.2 BEAST
8.3 圧縮サイドチャネル攻撃
8.4 Lucky 13
8.5 RC4の弱点
8.6 トリプルハンドシェイク攻撃
8.7 POODLE
8.8 KCI攻撃
8.9 SLOTH
8.10 DROWN
8.11 Sweet32
8.12 Bleichenbacher攻撃
8.13 Raccoon攻撃
8.14 Bullrun
第9章 パフォーマンス
9.1 遅延と接続の管理
9.2 TLSプロトコルの最適化
9.3 DoS攻撃
第10章 HSTS、CSP、ピニング
10.1 HSTS
10.2 CSP
10.3 ピニング
第11章 設定ガイド
11.1 秘密鍵と証明書
11.2 サーバの構成
11.3 HTTPとアプリケーションのセキュリティ
11.4 パフォーマンス
11.5 検証と監視
第12章 OpenSSL
12.1 ことはじめ
12.2 鍵と証明書の管理
12.3 設定
12.4 パフォーマンス
12.5 プライベートCAを作る
第13章 OpenSSLを使った動作検証
13.1 動作検証用にOpenSSLをコンパイルする
13.2 TLSのサービスに接続する
13.3 証明書の検証
13.4 TLSを利用するプロトコルへの昇格機能を確認する
13.5 リモートの証明書を取得する
13.6 対応しているプロトコルを調べる
13.7 暗号スイートの設定を確認する
13.8 暗号スイートの優先機能の動作を確認する
13.9 名前付きグループに関する挙動を確認する
13.10 DANEの動作を確認する
13.11 セッションリザンプションの動作を確認する
13.12 接続をまたがってセッションの状態を維持する
13.13 OCSPによる失効を確認する
13.14 OCSPステープリングを調べる
13.15 CRLの失効を調べる
13.16 再ネゴシエーションの動作を確認する
13.17 Heartbleedに対する挙動を調べる
13.18 DHパラメータの強度を見極める
第14章 まとめ
索引