ええコンサルタント
>
セキュリティプラザ
>
セキュアプログラミング
C/C++セキュアプログラミングクックブック
VOLUME3:公開鍵暗号の実装とネットワークセキュリティ
第一章:公開鍵暗号
- どのような状況で公開鍵暗号を利用すべきか
- 公開鍵アルゴリズムを選択する
- 公開鍵サイズを選択する
- 大きな数を操作する
- 素数を生成する
- RSA鍵ペアを生成する
- OpenSSLで公開鍵と秘密鍵を分離する
- RSAで使用するためにバイナリ文字列を整数値に変換する
- RSAで使用するために整数値をバイナリ文字列に変換する
- RSA公開鍵を使って、生の暗号化を行う
- RSA秘密鍵で生の復号化を行う
- RSA秘密鍵を使って、データに署名する
- RSA公開鍵を使って、署名されたデータを検証する
- RSAによるセキュアな署名と暗号化
- デジタル署名アルゴリズム(DSA)を使用する
- 公開鍵と証明書をバイナリ(DERエンコーディング)で表現する
- 鍵と証明書を平文で表現する(PEMエンコード)
第二章:認証と鍵交換
- 認証方法を選択する
- Unixでユーザ及びグループ情報を取得する
- Windowsでユーザ及びグループ情報を取得する
- ホスト名あるいはIPアドレスによるアクセス制限
- ランダムなパスワードとパスフレーズを生成する
- パスワードの強度を検査する
- パスワード入力を要求する
- 失敗する認証を締め出す
- crypt()を使ってパスワードベースの認証を行う
- MD5-MCFを使って、パスワードベースの認証を行う
- PBKDF2を使って、パスワードベースの認証を行う
- PAMを使って認証する
- Kerberosを使って認証する
- HTTPクッキーを使って認証する
- パスワードベースの認証と鍵交換を行う
- RSAを使って認証された鍵交換を行う
- 基本的なDiffie-Hellman鍵共有を使用する
- Diffie-HellmanとDSAを一緒に使用する
- PKIを使用しないで認証する場合の脆弱性の窓を最小限にする
- 対称暗号システムにフォワード隠蔽性(Forward Secrecy)を提供する
- 公開鍵暗号システムにフォワード隠蔽性(Forward Secrecy)を確保する
- メールで要求を確認する
第三章:ネットワーク
- SSL対応クライアントを作成する
- SSL対応サーバを作成する
- セッションをキャッシュしてSSLサーバの効率をあげる
- WinInet APIを使ってWindowsによる安全なWeb通信を行う
- ソースコードを変更せずにSSLを有効にする
- Kerberosを使用する
- ソケットを使ってプロセス間通信を行う
- Unixドメインソケットで認証を行う
- セッションIDを管理する
- データベースを安全に接続する
- 仮想専用ネットワークを使って安全なネットワーク接続を構築する
- 認証された安全な経路をSSLを使用せずに構築する
第四章:公開鍵基盤
- 公開鍵基盤(PKI)を理解する
- 証明書を取得する
- ルート証明書を使用する
- X.509証明書の検証方法を理解する
- OpenSSLを使ってX.509証明書を検証する
- CryptoAPIを使ってX.509証明書を検証する
- SSLのピア証明書を検証する
- 証明書の検証にホスト名検査を追加する
- ホストリストを使って証明書を検証する
- OpenSSLで証明書失効リストを取得する
- CryptoAPIでCRLを取得する
- OpenSSLからOCSPを使って失効ステータスを調べる
ええコンサルタント
>
セキュリティプラザ
>
セキュアプログラミング