目次
- タイトルおよび著作権情報
- はじめに
-
1 一般的なセキュリティ
- 用語と定義
- Javaセキュリティの概要
-
Java SEプラットフォームのセキュリティ・アーキテクチャ
- 概要
- 保護メカニズム - 基本概念の概要
-
アクセス権とセキュリティ・ポリシー
-
Permissionクラス
- java.security.Permission
- java.security.PermissionCollection
- java.security.Permissions
- java.security.UnresolvedPermission
- java.io.FilePermission
- java.net.SocketPermission
- java.security.BasicPermission
- java.util.PropertyPermission
- java.lang.RuntimePermission
- java.awt.AWTPermission
- java.net.NetPermission
- java.lang.reflect.ReflectPermission
- java.io.SerializablePermission
- java.security.SecurityPermission
- java.security.AllPermission
- javax.security.auth.AuthPermission
- アクセス権の意味
- 新しいタイプのアクセス権を作成する方法
- java.security.CodeSource
- java.security.Policy
- java.security.GeneralSecurityException
-
Permissionクラス
- アクセス制御メカニズムとアルゴリズム
- 安全なクラス・ローディング
- セキュリティ管理
- GuardedObjectおよびSignedObject
- 検討事項および将来の方針
- 付録A: 特権ブロックのためのAPI
- 付録B: 謝辞
- 付録C: 参考資料
- 標準アルゴリズム名
- JDKでのアクセス権
- セキュリティのトラブルシューティング
-
2 Java暗号化アーキテクチャ(JCA)リファレンス・ガイド
- Java暗号化アーキテクチャの概要
- コア・クラスとインタフェース
- SSL/TLS実装でのJCAの使用方法
- 暗号強度の構成
- 管轄ポリシー・ファイル形式
- 暗号化制限からアプリケーションを除外する方法
- 標準名
- アプリケーションのパッケージ化
- その他のJCAコード・サンプル
- Diffie-Hellmanキー交換、AES/GCMおよびHMAC-SHA256のサンプル・プログラム
-
3 Java暗号化アーキテクチャでのプロバイダの実装方法
- このドキュメントの対象読者
- 用語に関するノート
- プロバイダ実装の概要
- エンジン・クラスおよび対応するService Provider Interfaceクラス
-
プロバイダの実装および統合までのステップ
- ステップ1: サービス実装コードの記述
- ステップ2: プロバイダの命名
- ステップ3: プロバイダのサブクラスであるマスター・クラスの記述
- ステップ4: プロバイダのモジュール宣言の作成
- ステップ5: コードのコンパイル
- ステップ6: JARファイルへのプロバイダの記述
- ステップ7: JARファイルの署名(必要な場合)
- ステップ8: テストの準備
- ステップ9: テスト・プログラムの記述とコンパイル
- ステップ10: テスト・プログラムの実行
- ステップ11: 米国政府による輸出承認の申請(必要な場合)
- ステップ12: プロバイダおよびそのサポート対象サービスのドキュメント化
- ステップ13: クラス・ファイルおよびドキュメントをクライアントから利用可能にする
- 実装の詳細および要件
- MyProviderのサンプル・コード
- 4 JDKプロバイダ・ドキュメント
- 5 PKCS#11リファレンス・ガイド
- 6 JAAS (Java Authentication and Authorization Service)
-
7 Java Generic Security Services (Java GSS-API)
-
JAASおよびJava GSS-APIチュートリアルの紹介
- Java GSS-APIおよびJSSEをいつ使用するか
- Java GSS-APIを使用した、JAASプログラミングなしのセキュアなメッセージ交換
- JAAS認証
- JAAS承認
- JAAS Loginユーティリティの使用
- JAAS LoginユーティリティおよびJava GSS-APIを使用したセキュアなメッセージ交換
- Java GSS-APIおよびJAASで実行可能な他の操作
- Kerberos要件
- トラブルシューティング
- JAASおよびJava GSS-APIチュートリアルのソース・コード
- 関連ドキュメント
- ネイティブGSS-APIへのアクセス
- Kerberosを使ったJavaのシングル・サインオン
- Java SE認証、セキュアな通信、およびシングル・サインオンでの高度なセキュリティ・プログラミング
- Kerberos 5 GSS-APIメカニズム
-
JAASおよびJava GSS-APIチュートリアルの紹介
-
8 Java Secure Socket Extension (JSSE)リファレンス・ガイド
- JSSEの概要
- Transport Layer Security (TLS)プロトコルの概要
-
JSSEクラスとインタフェース
- JSSEのコア・クラスとインタフェース
- SocketFactoryおよびServerSocketFactoryクラス
- SSLSocketFactoryおよびSSLServerSocketFactoryクラス
- SSLSocketおよびSSLServerSocketクラス
- SSLEngineクラス
- SSLSessionとExtendedSSLSession
- HttpsURLConnectionクラス
- サポート・クラスとインタフェース
- 二次サポート・クラスおよびインタフェース
-
JSSEのカスタマイズ
- java.lang.Systemプロパティの指定方法
- java.security.Securityプロパティの指定方法
- X509証明書実装のカスタマイズ
- デフォルトで有効な暗号化方式群の指定
- HTTPSプロトコルの代替実装の指定
- プロバイダ実装のカスタマイズ
- 暗号化プロバイダの静的な登録
- 暗号化サービス・プロバイダを動的に登録する
- プロバイダ構成
- 特定の複数のアルゴリズムのための推奨プロバイダの構成
- デフォルトのキーストアとトラストストア、ストア・タイプおよびストア・パスワードのカスタマイズ
- デフォルトのキー・マネージャおよびトラスト・マネージャのカスタマイズ
- 無効化された制限付き暗号化アルゴリズム
- レガシーの暗号化アルゴリズム
- 暗号化アルゴリズム・プロバイダのカスタマイズ
- エフェメラルDiffie-Hellmanキーのサイズのカスタマイズ
- 最大断片長ネゴシエーション(MFLN)拡張のカスタマイズ
- 最大および最小パケット・サイズの構成
- アルゴリズムでキー・セットを使用して暗号化可能なデータ量の制限
- サーバー側の状態のないセッションの再開
- 受信時にclose_notifyアラートを送信するように指定
- サーバー証明書選択のためのcertificate_authorities拡張の有効化
- SunJSSE再ネゴシエーションの相互運用性モード
- クライアント主導型OCSPとOCSPステープリング
- デフォルトの拡張機能の構成
- ハードウェア高速化およびスマート・カードのサポート
- その他のキーストア形式(PKCS12)
- Server Name Indication (SNI)拡張
- TLSのアプリケーション層プロトコル・ネゴシエーション
-
JSSEのトラブルシューティング
-
構成の問題
- SSLHandshakeException: 使用可能な認証方式なし、ハンドシェーク失敗
- ハンドシェーク時のCertificateException
- 実行時例外: SSL Service Not Available
- 実行時例外: "No available certificate corresponding to the SSL cipher suites which are enabled"
- 実行時例外: No Cipher Suites in Common
- ClientHelloメッセージの送信後ソケットが切断される
- 必要なアルゴリズムをサポートするJCAプロバイダをSunJSSEが見つけられず、NoSuchAlgorithmExceptionが発生する
- SNI拡張が必要な仮想ホストのWebサーバーからアプリケーション・リソースを取得すると例外がスローされる
- RC4暗号化方式群がDTLS用に構成されている場合のIllegalArgumentException
- デバッグ・ユーティリティ
-
構成の問題
- 互換性のリスクと既知の問題
- コード例
- 標準名
- プロバイダのプラグイン可能性
- 9 Java PKIプログラマーズ・ガイド
- 10 Java SASL APIプログラミングおよび配備ガイド
- 11 XMLデジタル署名APIの概要とチュートリアル
- 12 Java API for XML Processing (JAXP)セキュリティ・ガイド
- 13 セキュリティAPIの仕様
- 14 セキュリティ関連のトピック