C/C++セキュアプログラミングクックブック VOLUME 3
――公開鍵暗号の実装とネットワークセキュリティ

[cover photo]
この商品は品切れ再入荷未定です

ネットワークにおけるセキュリティ問題の大半はソフトウェアに原因があります。堅牢なソフトウェアを開発するには専門的な知識が必要であり、その習得はプログラマにとって急務の課題であるといえます。 本書はWindowsならびにLinuxを含むUnixプラットフォームで、セキュアなプログラムをC/C++で記述するためのテクニックを一問一答形式でわかりやすく解説します(全3巻)。プログラミングの際に遭遇する問題を網羅し、そのまま使えるサンプルコードを豊富に収録した本書は、すべてのプログラマにとって必携の書となることでしょう。 このVOLUME3では、「公開鍵暗号」、「認証と鍵交換」、「ネットワーク」、「公開鍵基盤」などの公開鍵アルゴリズムの実装に関する話題とネットワークのセキュリティを扱います。「VOLUME1〜基本的な実装テクニック」、「VOLUME2〜対称鍵暗号の実装」とあわせて読めば、広範で高度なセキュリティの知識をマスターすることができます。

監訳者まえがき
まえがき
はじめに

1章 公開鍵暗号
	レシピ・-1.1 どのような状況で公開鍵暗号を利用すべきか
	レシピ・-1.2 公開鍵アルゴリズムを選択する
	レシピ・-1.3 公開鍵のサイズを選択する
	レシピ・-1.4 大きな数を操作する
	レシピ・-1.5 素数を生成する(素数テストをする)
	レシピ・-1.6 RSA鍵ペアを生成する
	レシピ・-1.7 OpenSSLで公開鍵と秘密鍵を分離する
	レシピ・-1.8 RSAで使用するためにバイナリ文字列を整数値に変換する
	レシピ・-1.9 RSAで使用するために整数値をバイナリ文字列に変換する
	レシピ・-1.10 RSA公開鍵を使って生の暗号化を行う
	レシピ・-1.11 RSA秘密鍵で生の復号化を行う
	レシピ・-1.12 RSA秘密鍵を使ってデータに署名する
	レシピ・-1.13 RSA公開鍵を使って署名されたデータを検証する
	レシピ・-1.14 RSAによるセキュアな署名と暗号化
	レシピ・-1.15 デジタル署名アルゴリズム(DSA)を使用する
	レシピ・-1.16 公開鍵と証明書をバイナリ(DERエンコーディング)で表現する
	レシピ・-1.17 鍵と証明書を平文で表現する(PEMエンコード)

2章 認証と鍵交換
	レシピ・-2.1 認証方法を選択する
	レシピ・-2.2 Unixでユーザおよびグループ情報を取得する
	レシピ・-2.3 Windowsでユーザおよびグループ情報を取得する
	レシピ・-2.4 ホスト名あるいはIPアドレスによるアクセス制限	
	レシピ・-2.5 ランダムなパスワードとパスフレーズを生成する
	レシピ・-2.6 パスワードの強度を検査する
	レシピ・-2.7 パスワード入力を要求する
	レシピ・-2.8 失敗する認証を締め出す
	レシピ・-2.9 crypt( )を使ってパスワードベースの認証を行う
	レシピ・-2.10 MD5-MCFを使ってパスワードベースの認証を行う
	レシピ・-2.11 PBKDF2を使ってパスワードベースの認証を行う
	レシピ・-2.12 PAMを使って認証する
	レシピ・-2.13 Kerberosを使って認証する
	レシピ・-2.14 HTTPクッキーを使って認証する
	レシピ・-2.15 パスワードベースの認証と鍵交換を行う
	レシピ・-2.16 RSAを使って認証された鍵交換を行う
	レシピ・-2.17 基本的なDiffie-Hellman鍵共有を使用する
	レシピ・-2.18 Diffie-HellmanとDSAを一緒に使用する
	レシピ・-2.19 PKIを使用しないで認証する場合の脆弱性の窓を最小限にする
	レシピ・-2.20 対称暗号システムにフォワード秘匿性(Forward Secrecy)を提供する
	レシピ・-2.21 公開鍵システムでフォワード秘匿性(Forward Secrecy)を確保する
	レシピ・-2.22 メールで要求を確認する

3章 ネットワーク
	レシピ・-3.1 SSL対応クライアントを作成する
	レシピ・-3.2 SSL対応サーバを作成する
	レシピ・-3.3 セッションをキャッシュしてSSLサーバの効率を上げる
	レシピ・-3.4 WinInet APIを使ってWindowsによる安全なWeb通信を行う
	レシピ・-3.5 ソースコードを変更せずにSSLを有効にする
	レシピ・-3.6 Kerberosの暗号を使用する
	レシピ・-3.7 ソケットを使ってプロセス間通信を行う
	レシピ・-3.8 Unixドメインソケットで認証を行う
	レシピ・-3.9 セッションIDを管理する
	レシピ・-3.10 データベースに安全に接続する
	レシピ・-3.11 仮想専用ネットワークを使って安全なネットワーク接続を構築する
	レシピ・-3.12 認証された安全な経路をSSLを使用せずに構築する

4章 公開鍵基盤	
	レシピ・-4.1 公開鍵基盤(PKI)を理解する
	レシピ・-4.2 証明書を取得する
	レシピ・-4.3 ルート証明書を使用する
	レシピ・-4.4 X.509証明書の検証方法を理解する
	レシピ・-4.5 OpenSSLを使ってX.509証明書を検証する
	レシピ・-4.6 CryptoAPIを使ってX.509証明書を検証する
	レシピ・-4.7 SSLのピア証明書を検証する
	レシピ・-4.8 証明書の検証にホスト名検査を追加する
	レシピ・-4.9 ホワイトリストを使って証明書を検証する
	レシピ・-4.10 OpenSSLで証明書失効リストを取得する
	レシピ・-4.11 CryptoAPIでCRLを取得する
	レシピ・-4.12 OpenSSLからOCSPを使って失効ステータスを調べる

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]