【書籍】プロフェッショナルSSL/TLS
一昨年、「インターネットのカタチ」や「マスタリングTCP/IP」を手がけた編集者の鹿野さんが、オーム社を退職して技術書を扱う、ラムダノート株式会社という出版社を起業しました。 鹿野さんの会社が発売する最初の書籍である「プロフェッショナルSSL/TLS」と「RubyでつくるRuby」(参考:書籍『Ruby でつくる Ruby』が発売されます)が今朝発売開始されています。
「プロフェッショナルSSL/TLS」は、TLS(Transport Layer Security)の背景となる理論やプロトコルだけではなく、過去に発生したプロトコル上の脆弱性、運用上の脆弱性、実装上の脆弱性なども解説してあります。Webブラウザの問題も紹介されています。後半は、Apache、Tomcat、IIS、Nginx、などの設定方法の紹介です。
編集者であり技術者な鹿野さん
「プロフェッショナルSSL/TLS」を出版したラムダノート株式会社を立ち上げた鹿野さんは、職業は編集者ですが、どちらかというとプログラマ的な人です。
鹿野さんとの最初の出会いは2002年でした。当時、鹿野さんは「マスタリングTCP/IP RTP編」の監訳をする人を探していました。当時、私はRTPでDV(Digital Video)を転送するシステムを実装したり、そのプロトコルのRFC化(RFC 3189、RFC 3190)をしていたので、鹿野さんから監訳のオファーが来たのです。鹿野さん自身も既に忘れてしまったようですが、多分、ここら辺の記事などを見たのだろうと思います(参考1、参考2、参考3)。
2003年にRTP本は出版され、その後、鹿野さんとは特に連絡もしていなかったのですが、私が当時匿名でやっていたこのブログで退職報告および自己紹介をしたところ、「読んでました!」という連絡をもらって会いに行きました。その後、「インターネットのカタチ」と「マスタリングTCP/IP OpenFlow編」を鹿野さんと一緒に作りました。
鹿野さんが一般的な編集者と違うのは、鹿野さん自身が業務時間外に出版支援システムを自作してMITライセンスでフリーソフトとして公開し、それを使いつつ著者と一緒に書籍を作って来た点です。 鹿野さんとの書籍制作では、私がsvnでcommitするとPDFが自動生成されたので、最終的なアウトプットが常に意識しつつ執筆活動ができました。
一般的なIT書籍出版の流れと、鹿野さんと一緒にやったときの流れの違いは、2011年に書いた以下の記事をご覧ください。
書籍原稿のフォーマットも他社と全く違ってました。「インターネットのカタチ」の時はLaTeX、「マスタリングTCP/IP OpenFlow編」のときにはXMLでした。 編集者による赤入れまでLaTeXやXMLで行われるのも面白かったです。
鹿野さんによる赤入れも結構マニアックで、編集者とやりとりしているというよりは、どちらかというと共著者かレビューアとやりとりしているような気分にもなります。 そんな鹿野さんは、「いま必要だけど存在していない」という方向性の深いIT系の書籍に対する想いも強く、本当に作りたい書籍を作るために独立して新しい出版社を立ち上げてしまいました。
そして、鹿野さんが立ち上げた出版社が世に出した最初の書籍のひとつが「プロフェッショナルSSL/TLS」なのです。
電子書籍はTLS 1.3対応のバージョンアップ予定
鹿野さんは、発売した後もバージョンアップしたいという目標も持っています。
「プロフェッショナルSSL/TLS」も、そういった想いが反映されており、購入した読者がバージョンアップした電子版を入手できるようになっています。
「プロフェッショナルSSL/TLS」の書籍サイトには、以下のようにあります。
TLS 1.3対応について
TLSプロトコルの現行バージョンはTLS 1.2です。しかし、IETFではTLS 1.3の標準化が進行中であり、本年中にRFCの改訂が予定されています。
本書の内容は現行のTLS 1.2に対応した解説となっていますが、すでに原著者のIvan氏がTLS 1.3に向けた改稿を開始しており、原書の"Bulletproof SSL and TLS"もTLS 1.3対応版へのバージョンアップが予定されています。
翻訳版でも、原書に追随してTLS 1.3対応へのバージョンアップを今後予定しています。本書を購入いただき、ラムダノートのサイトでユーザ登録をしていただいた方には、TLS 1.3対応版の刊行時に電子版について無償アップグレードを予定しています(紙書籍のお取替えはできません)。
一般的な出版であれば、第2版としてTLS 1.3に対応した別の書籍として発売するのではなく、既に購入済みの読者に対して無償アップグレードを提供するということを最初から公言しているのが鹿野さんらしいです。
目次
「プロフェッショナルSSL/TLS」の目次は次のようになっています。
第1章 SSL/TLS と暗号技術 1.1 Transport Layer Security 1.2 ネットワークの階層 1.3 プロトコルの歴史 1.4 暗号技術 第2章 プロトコル 2.1 Record プロトコル 2.2 Handshake プロトコル 2.3 鍵交換 2.4 認証 2.5 暗号化 2.6 再ネゴシエーション 2.7 Application Data プロトコル 2.8 Alert プロトコル 2.9 接続を閉じる 2.10 暗号処理 2.11 暗号スイート 2.12 拡張 2.13 プロトコルの限界 2.14 プロトコルのバージョンによる相違 第3章 公開鍵基盤 3.1 インターネットPKI 3.2 証明書の標準 3.3 証明書 3.4 証明書チェーン 3.5 証明書利用者 3.6 CA 3.7 証明書のライフサイクル 3.8 失効 3.9 弱点 3.10 ルートCA証明書の鍵の危殆化 3.11 エコシステムの観測 3.12 改善 第4章 PKI に対する攻撃 4.1 VeriSign 社のMicrosoft 社に対するコード署名証明書 4.2 Thawte 社とlogin.live.com 4.3 StartCom 社のセキュリティ侵害(2008年) 4.4 CertStar(Comodo社)のMozilla 証明書 4.5 偽造RapidSSL 証明書 4.6 Comodo社のリセラーのセキュリティ侵害 4.7 StartCom 社のセキュリティ侵害(2011年) 4.8 DigiNotar 社 4.9 DigiCert Sdn. Bhd 4.10 Flame 4.11 TURKTRUST社 4.12 ANSSI 4.13 インド情報工学センター 4.14 広範囲に及ぶTLS の傍受 4.15 CNNIC 第5章 HTTPおよびブラウザの問題 5.1 サイドジャッキング 5.2 クッキー窃取 5.3 クッキー書き換え攻撃 5.4 HTTPSストリッピング 5.5 MITM証明書 5.6 証明書の警告 5.7 セキュリティインジケーター 5.8 混在コンテンツ 5.9 EV証明書 5.10 証明書の失効 第6章 実装の問題 6.1 証明書の検証における欠陥 6.2 乱数生成における欠陥 6.3 Heartbleed 6.4 FREAK 6.5 Logjam 6.6 プロトコルダウングレード攻撃 6.7 強制切断攻撃 6.8 デプロイにおける弱点 第7章 プロトコルに対する攻撃 7.1 安全でない再ネゴシエーション 7.2 BEAST 7.3 圧縮サイドチャネル攻撃 7.4 Lucky 13 7.5 RC4の弱点 7.6 トリプルハンドシェイク攻撃 7.7 POODLE 7.8 Bullrun 第8章 デプロイ 8.1 鍵 8.2 証明書 8.3 プロトコルの設定 8.4 暗号スイートの設定 8.5 サーバの設定とアーキテクチャ 8.6 セキュリティ上の問題への緩和策 8.7 ピンニング 8.8 HTTP 第9章 パフォーマンス最適化 9.1 遅延と接続の管理 9.2 TLS プロトコルの最適化 9.3 DoS攻撃 第10章 HSTS、CSP、ピンニング 10.1 HSTS 10.2 CSP 10.3 ピンニング 第11章 OpenSSL 11.1 ことはじめ 11.2 鍵と証明書の管理 11.3 設定 11.4 プライベートCAを作る 第12章 OpenSSLによるテスト 12.1 SSL/TLS のサービスに接続する 12.2 SSL/TLS 利用へと昇格するプロトコルを試す 12.3 異なる形式のハンドシェイクを使う 12.4 リモートの証明書を取得する 12.5 対応しているプロトコルを調べる 12.6 対応している暗号スイートを調べる 12.7 SNI を要求するサーバを調べる 12.8 セッションの再利用を調べる 12.9 OCSPによる失効を確認する 12.10 OCSPステープリングを調べる 12.11 CRLの失効を調べる 12.12 再ネゴシエーションを調べる 12.13 BEAST脆弱性を調べる 12.14 Heartbleed を調べる 12.15 DHパラメータの強度を見極める 第13章 Apacheの設定 13.1 静的なOpenSSLを使ってApache をインストールする 13.2 TLS を有効にする 13.3 TLS プロトコルの設定 13.4 鍵と証明書の設定 13.5 複数の鍵を設定する 13.6 ワイルドカード証明書とマルチサイト証明書 13.7 仮想セキュアホスティング 13.8 エラーメッセージ用にデフォルトサイトを予約する 13.9 PFS 13.10 OCSPステープリング 13.11 DHE鍵交換の設定 13.12 TLS セッションの管理 13.13 クライアント認証 13.14 プロトコルの問題を低減する 13.15 HSTSの導入 13.16 セッションキャッシュの状態をモニターする 13.17 ネゴシエーションしたTLS パラメータをログに残す 13.18 mod_sslhaf による高度なログ 第14章 Java およびTomcatの設定 14.1 Java における暗号の構成要素 14.2 Tomcat 第15章 Microsoft WindowsおよびIIS の設定 15.1 Schannel 15.2 Microsoft ルート証明書プログラム 15.3 設定 15.4 ASP.NET のWebアプリケーションを安全にする 15.5 IIS 第16章 Nginxの設定 16.1 OpenSSLソースコード利用のNginx のインストール 16.2 TLS を有効にする 16.3 TLS プロトコルの設定 16.4 鍵と証明書の設定 16.5 複数の鍵を設定する 16.6 ワイルドカード証明書とマルチサイト証明書 16.7 仮想セキュアホスティング 16.8 エラーメッセージ用にデフォルトのサイトを使う 16.9 PFS 16.10 OCSPステープリング 16.11 DHE鍵交換の設定 16.12 ECDHE鍵交換の設定 16.13 TLS セッションの管理 16.14 クライアント認証 16.15 プロトコルの問題への対策 16.16 HSTSのデプロイ 16.17 TLS バッファの調整 16.18 ロギング 第17章 まとめ
最近のエントリ
- 「ピアリング戦記」の英訳版EPUBを無料配布します!
- IPv4アドレス移転の売買価格推移および移転組織ランキング100
- 例示用IPv6アドレス 3fff::/20 が新たに追加
- ShowNet 2024のL2L3
- ShowNet 2024 ローカル5G
- ShowNetのローカル5G企画(2022年、2023年)
過去記事