OpenSSLは、その名の通りSSL/TLSプロトコルのオープンソース実装であることはもちろん、セキュリティアプリケーションの開発やデータの暗号化、認証局構築など、多様かつ高度なセキュリティ機能を提供する汎用のライブラリ。本書は、そのOpenSSLについて、各機能の詳細から活用のノウハウ、プログラミングテクニック、リファレンスまでを網羅するもの。
https://www.ohmsha.co.jp/book/9784274065736/
正誤表やDLデータ等がある場合はこちらに掲載しています
第1章 はじめに
第2章 コマンドラインインタフェース
第3章 公開鍵基盤(PKI)
第4章 OpenSSLが提供する基盤
第5章 SSL/TLSプログラミング
第6章 共通鍵暗号化方式
第7章 ハッシュとMAC
第8章 公開鍵アルゴリズム
第9章 他言語でOpenSSLを使うには
第10章 高度なプログラミングトピック
付録 コマンドラインリファレンス
第1章 はじめに
1.1 暗号技術の基礎
・暗号技術の目的
・暗号化アルゴリズム
1.2 SSLの概要
1.3 SSLの問題点
・効率性
・鍵の管理
・不正なサーバ証明書
・証明書の検証
・エントロピーの不足
・安全でない暗号化方式
1.4 SSLの有効範囲
・TCP/IP以外のトランスポート層プロトコル
・否認防止
・ソフトウェアの欠陥からの保護
・汎用のデータセキュリティ
1.5 OpenSSLの基礎
1.6サードパーティソフトウェアの安全確保
第2章 コマンドラインインタフェース
2.1 基本操作
・設定ファイル
2.2 メッセージダイジェストアルゴリズム
2.3 共通鍵暗号化方式
2.4 公開鍵暗号化方式
・DH
・DSA
・RSA
2.5 S/MIME
2.6 パスワードとパスフレーズ
2.7 疑似乱数生成器のシード
第3章 公開鍵基盤(PKI)
3.1 証明書
・証明機関
・証明書の階層
・証明書の拡張領域
・証明書失効リスト(CRL)
・OCSP
3.2 証明書の取得
・個人証明書
・コード署名証明書
・Webサイト証明書
3.3 CAのセットアップ
・CA用の環境の作成
・OpenSSL設定ファイルの作成
・自己署名ルート証明書の作成
・証明書の発行
・証明書の失効
第4章 OpenSSLが提供する基盤
4.1 マルチスレッドのサポート
・静的ロックのコールバック
・動的ロックのコールバック
4.2 内部エラー処理
・エラーキューの操作
・可読なエラーメッセージ
・スレッド化と実際のアプリケーション
4.3 入出力の抽象化
・ソース/シンクBIO
・フィルタBIO
4.4 乱数の生成
・PRNGのシード
・代替エントロピーソースの使用
4.5 任意精度の数値演算
・基礎知識
・数値演算
・素数の生成
4.6 エンジンの使用
第5章 SSL/TLSプログラミング
5.1 SSLプログラミング
・対象とするアプリケーション
・手順1:SSLのバージョンの選択および証明書の準備
・手順2:ピアの認証
・手順3:SSLオプションと暗号スイート
5.2 SSLの高度なプログラミング
・SSLセッションのキャッシュ
・SSLコネクションにおけるI/O
・SSLの再ネゴシエーション
第6章 共通鍵暗号化方式
6.1 共通鍵暗号化方式の基礎
・ブロック暗号とストリーム暗号
・ブロック暗号の基本的なモード
6.2 EVP APIを使用した暗号化
・利用できる暗号化方式
・共通鍵暗号の初期化
・鍵長その他のオプションの指定
・暗号化
・復号
・カウンタモードでのUDP通信の処理
6.3 そのほかの注意事項
第7章 ハッシュとMAC
7.1 ハッシュとMACの概要
7.2 EVP APIを使用したハッシュ化
7.3 MACの使用
・そのほかのMAC
7.4 HTTP Cookieの安全性確保
第8章 公開鍵アルゴリズム
8.1 公開鍵暗号化方式の用途
8.2 DH
・基礎知識
・DHパラメータの生成と交換
・共有秘密の算出
・実際の用途
8.3 DSA
・基礎知識
・DSAパラメータと鍵の生成
・署名と検証
・実際の用途
8.4 RSA
・基礎知識
・鍵の生成
・データの暗号化・鍵合意・鍵配送
・署名と検証
・実際の用途
8.5 公開鍵用のEVPインタフェース
・署名と検証
・暗号化と復号
8.6 オブジェクトの符号化と復元
・DER形式のオブジェクトの読み書き
・PEM形式のオブジェクトの読み書き
第9章 他言語でOpenSSLを使うには
9.1 Perl用のNet::SSLeay
・Net::SSLeayの変数
・Net::SSLeayのエラー処理
・Net::SSLeayのユーティリティ関数
・Net::SSLeayの低レベルバインディング
9.2 Python用のM2Crypto
・低レベルバインディング
・高レベルクラス
・Python自体のモジュールの拡張
9.3 PHPのOpenSSL対応機能
・汎用関数
・証明書用の関数
・暗号化および署名関数
・PKCS#7(S/MIME)関数
第10章 高度なプログラミングトピック
10.1 オブジェクトスタック
10.2 設定ファイル
10.3 X.509
・証明書要求の生成
・証明書の作成
・X.509証明書検証
10.4 PKCS#7とS/MIME
・署名と検証
・暗号化と復号
・署名と暗号化を組み合わせた処理
・PKCS#7のフラグ
10.5 PKCS#12
・PKCS#12オブジェクトへの情報のラッピング
・PKCS#12データからのオブジェクトのインポート
付録 コマンドラインリファレンス