プライマリ・コンテンツに移動
Java Platform, Standard Editionセキュリティ開発者ガイド
リリース10
E94999-01
次へ
目次
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
1
一般的なセキュリティ
Javaセキュリティの概要
Javaセキュリティの紹介
Java言語セキュリティおよびバイト・コード検証
基本的なセキュリティ・アーキテクチャ
セキュリティ・プロバイダ
ファイルの場所
Javaの暗号化
公開鍵インフラストラクチャ
鍵および証明書ストレージ
公開鍵インフラストラクチャのツール
認証
セキュアな通信
SSL、TLSおよびDTLSプロトコル
Simple Authentication and Security Layer(SASL)
Generic Security Service APIとKerberos
アクセス制御
アクセス権
セキュリティ・ポリシー
アクセス制御の実施
XML署名
Javaセキュリティに関する追加情報
Javaセキュリティ・クラスのサマリー
削除対象としてマークされている推奨されていないセキュリティAPI
セキュリティ・ツールのサマリー
組込みのプロバイダ
Java SEプラットフォームのセキュリティ・アーキテクチャ
概要
オリジナルのsandboxモデル
sandboxモデルの改良
保護メカニズム - 基本概念の概要
アクセス権とセキュリティ・ポリシー
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
Policyのファイル形式
ポリシー・ファイルでのプロパティの展開
ポリシー・ファイルでの一般的な展開
アクセス権の割当て
デフォルトのシステム・ポリシー・ファイルとユーザー・ポリシー・ファイル
Policyの評価のカスタマイズ
java.security.GeneralSecurityException
アクセス制御メカニズムとアルゴリズム
java.security.ProtectionDomain
java.security.AccessController
アクセス権チェックのアルゴリズム
特権の扱い
アクセス制御コンテキストの継承
java.security.AccessControlContext
安全なクラス・ローディング
クラス・ローダーのクラス階層
初期クラス・ローダー
クラス・ローダーの委譲
クラスの解釈処理アルゴリズム
セキュリティ管理
アプレットおよびアプリケーションの管理
SecurityManagerとAccessController
補助ツール
鍵および証明書管理ツール
JAR署名および検証ツール
GuardedObjectおよびSignedObject
java.security.GuardedObjectとjava.security.Guard
java.security.SignedObject
検討事項および将来の方針
リソース消費管理
アクセス権を任意にグループ化する
オブジェクト・レベルでの保護
保護ドメインの分割
署名付きコンテンツでのアプレットの実行
付録A: 特権ブロックのためのAPI
doPrivileged APIの使用
戻り値がなく、例外がスローされない場合
値を返す場合
ローカル変数にアクセスする場合
例外の処理
特権のサブセットのアサーション
最小特権
追加特権
特権コードを使う意味
リフレクション
付録B: 謝辞
付録C: 参考資料
標準アルゴリズム名
JDKでのアクセス権
アクセス権の説明とリスク
メソッドとその呼出しに必要なアクセス権
java.lang.SecurityManagerメソッドのアクセス権チェック
デフォルトのPolicyの実装とポリシー・ファイルの構文
デフォルトのPolicyの実装
ポリシー・ファイルのデフォルトの場所
Policyの実装の変更
ポリシー・ファイルの構文
キーストア・エントリ
付与エントリ
SignedBy、Principal、およびCodeBaseフィールド
キーストア別名の置換
アクセス権エントリ
Windowsシステムでのファイル・パスの指定
ポリシー・ファイルの例
ポリシー・ファイルでのプロパティの展開
Windowsシステム、ファイル・パス、およびプロパティの展開
ポリシー・ファイルでの一般的な展開
付録A: FilePermissionのパス名の正規化がデフォルトで無効化
セキュリティのトラブルシューティング
2
Java暗号化アーキテクチャ(JCA)リファレンス・ガイド
Java暗号化アーキテクチャの概要
JCAの設計の原則
プロバイダ・アーキテクチャ
暗号化サービス・プロバイダ
プロバイダの実際の実装方法
キーストア
エンジン・クラスとアルゴリズム
コア・クラスとインタフェース
Providerクラス
プロバイダ実装の要求および獲得方法
プロバイダのインストール
Providerクラス・メソッド
Securityクラス
プロバイダの管理
セキュリティ・プロパティ
SecureRandomクラス
SecureRandomオブジェクトの作成
SecureRandomオブジェクトのシードまたは再シード
SecureRandomオブジェクトの使用
シード・バイトの生成
MessageDigestクラス
MessageDigestオブジェクトの作成
メッセージ・ダイジェスト・オブジェクトのアップデート
ダイジェストの計算
Signatureクラス
Signatureオブジェクトの状態
Signatureオブジェクトの作成
Signatureオブジェクトの初期化
Signatureオブジェクトによる署名
Signatureオブジェクトによる検証
Cipherクラス
Cipherベースのその他のクラス
Cipher Streamクラス
SealedObjectクラス
Macクラス
Keyインタフェース
KeyPairクラス
鍵仕様のインタフェースおよびクラス
KeySpecインタフェース
KeySpecサブインタフェース
EncodedKeySpecクラス
PKCS8EncodedKeySpecクラス
X509EncodedKeySpecクラス
ジェネレータとファクトリ
KeyFactoryクラス
SecretKeyFactoryクラス
KeyPairGeneratorクラス
KeyGeneratorクラス
KeyAgreementクラス
鍵の管理
KeyStoreクラス
アルゴリズム・パラメータのクラス
AlgorithmParameterSpecインタフェース
AlgorithmParametersクラス
AlgorithmParameterGeneratorクラス
CertificateFactoryクラス
SSL/TLS実装でのJCAの使用方法
暗号強度の構成
管轄ポリシー・ファイル形式
アプリケーションの暗号化制限の免責を取得する方法
標準名
アプリケーションのパッケージ化
その他のJCAコード・サンプル
MessageDigestオブジェクトの計算
鍵のペアの生成
生成された鍵を使った署名の生成および検証
鍵仕様およびKeyFactory
を使った署名の生成と検証
乱数の生成
2つの鍵の同一性の判定
Base64でエンコードされた証明書の読み取り
認証応答の解析
暗号化の使用
パスワードベース暗号化の使用
Diffie-Hellman鍵交換、AES/GCMおよびHMAC-SHA256のサンプル・プログラム
2つのパーティ間のDiffie-Hellman鍵交換
3つのパーティ間のDiffie-Hellman鍵交換
AES/GCMの例
HMAC-SHA256の例
3
Java暗号化アーキテクチャでのプロバイダの実装方法
このドキュメントの対象読者
用語に関する注記
プロバイダ実装の概要
エンジン・クラスおよび対応するService Provider Interfaceクラス
プロバイダの実装および統合までのステップ
ステップ1: サービス実装コードの記述
ステップ1.1: 暗号化実装のためのJCAプロバイダのその他の要件および推奨事項の検討
ステップ2: プロバイダの命名
ステップ3: プロバイダのサブクラスであるマスター・クラスの記述
ステップ3.1: Stringオブジェクトを使用してサービスを登録するプロバイダの作成
ステップ3.2: Provider.Serviceを使用するプロバイダの作成
ステップ3.3: Cipher実装のための追加情報の指定
ステップ4: プロバイダのモジュール宣言の作成
ステップ5: コードのコンパイル
ステップ6: JARファイルへのプロバイダの記述
ステップ7: JARファイルの署名(必要な場合)
ステップ7.1: コード署名証明書の取得
ステップ7.2: プロバイダの署名
ステップ8: テストの準備
ステップ8.1: プロバイダの構成
ステップ8.2: プロバイダ・アクセス権の設定
ステップ9: テスト・プログラムの記述とコンパイル
ステップ10: テスト・プログラムの実行
ステップ11: 米国政府による輸出承認の申請(必要な場合)
ステップ12: プロバイダおよびそのサポート対象サービスのドキュメント化
ステップ12.1: 実装をメッセージ・ダイジェストとMAC用に複製可能かどうかの指定
ステップ13: クラス・ファイルおよびドキュメントをクライアントから利用可能にする
実装の詳細および要件
別名
サービスの相互依存性
デフォルトの初期化
デフォルトの鍵ペア・ジェネレータのパラメータの要件
Provider.Serviceクラス
署名フォーマット
DSAインタフェースおよびその実装要件
RSAインタフェースおよびその実装要件
Diffie-Hellmanインタフェースおよびその実装要件
その他のアルゴリズム型用インタフェース
アルゴリズム・パラメータの仕様のインタフェースおよびクラス
鍵ファクトリにより要求される鍵仕様のインタフェースおよびクラス
秘密鍵の生成
新規オブジェクト識別子の追加
エクスポート機能の保証
MyProviderのサンプル・コード
4
JDKプロバイダ・ドキュメント
JDKプロバイダの概要
暗号化アルゴリズムの輸入制限
暗号の変換
SecureRandom実装
SunPKCS11プロバイダ
SUNプロバイダ
SunRsaSignプロバイダ
SunJSSEプロバイダ
SunJCEプロバイダ
SunJGSSプロバイダ
SunSASLプロバイダ
XMLDSigプロバイダ
SunPCSCプロバイダ
SunMSCAPIプロバイダ
SunECプロバイダ
OracleUcryptoプロバイダ
Appleプロバイダ
JdkLDAPプロバイダ
JdkSASLプロバイダ
5
PKCS#11リファレンス・ガイド
SunPKCS11プロバイダ
SunPKCS11の要件
SunPKCS11の構成
Network Security Services (NSS)へのアクセス
PKCS#11のトラブルシューティング
PKCS#11プロバイダまたは個々のPKCS#11メカニズム(あるいはその両方)の無効化
アプリケーション開発者
トークン・ログイン
トークン鍵
プロバイダの遅延選択
JAAS KeyStoreLoginModule
JSSEキーストアおよびトラスト・ストアとしてのトークン
PKCS#11トークンとのkeytoolおよびjarsignerの使用
ポリシー・ツール
プロバイダ開発者
プロバイダ・サービス
パラメータ・サポート
SunPKCS11プロバイダでサポートされているアルゴリズム
SunPKCS11プロバイダのキーストアの要件
プロバイダの例
6
JAAS (Java Authentication and Authorization Service)
Java認証・承認サービス(JAAS)リファレンス・ガイド
このドキュメントの対象読者
関連ドキュメント
コア・クラスとインタフェース
共通クラス
サブジェクト
プリンシパル
クレデンシャル
認証クラスとインタフェース
LoginContext
LoginModule
CallbackHandler
コールバック
承認クラス
Policy
AuthPermission
PrivateCredentialPermission
JAASチュートリアルとサンプル・プログラム
付録A: java.securityセキュリティ・プロパティ・ファイルでのJAAS設定
ログイン構成プロバイダ
ログイン構成URL
ポリシー・プロバイダ
ポリシー・ファイルURL
付録B: JAASログイン構成ファイル
ログイン構成ファイルの構造および内容
使用するログイン構成ファイルの位置指定
JAASチュートリアル
JAAS認証チュートリアル
認証チュートリアル・コード
SampleAcn.java
SampleLoginModule.javaとSamplePrincipal.java
ログイン構成
JAAS認証チュートリアルのログイン構成ファイル
コードの実行
セキュリティ・マネージャを使用したコードの実行
JAAS承認チュートリアル
JAAS承認とは
JAAS承認の実行手順
プリンシパルベースのポリシー・ファイル文の作成方法
サブジェクトのアクセス制御コンテキストへの関連付け
承認チュートリアル・コード
SampleAzn.java
SampleAction.java
JAAS承認チュートリアルのログイン構成ファイル
ポリシー・ファイル
SampleAznに必要なアクセス権
SampleActionに必要なアクセス権
SampleLoginModuleに必要なアクセス権
完全なポリシー・ファイル
承認チュートリアル・コードの実行
Java Authentication and Authorization Service (JAAS): LoginModule開発者ガイド
LoginModuleの概要
LoginModule
の実装手順
ステップ1: 認証技術の理解
ステップ2: LoginModule実装への命名
ステップ3: 抽象LoginModuleメソッドの実装
ステップ4: サンプル・アプリケーションの選択または記述
ステップ5: LoginModuleおよびアプリケーションのコンパイル
ステップ6: テストの準備
ステップ7: LoginModule
の試用
ステップ8: LoginModule実装のドキュメント化
ステップ9: LoginModule JARファイルおよびドキュメントの有効化
7
Java Generic Security Services (Java GSS-API)
JAASおよびJava GSS-APIチュートリアルの紹介
Java GSS-APIおよびJSSEをいつ使用するか
Java GSS-APIを使用した、JAASプログラミングなしのセキュアなメッセージ交換
クライアントおよびサーバー・アプリケーションの概要
SampleClientおよびSampleServerコード
コマンド行引数の取得
メッセージ交換用ソケット接続の確立
セキュリティ・コンテキストの確立
メッセージのセキュアな交換
クリーン・アップ
Kerberosユーザー名およびサービス・プリンシパル名
プリンシパル名にレルムを指定する必要がある場合
ログイン構成ファイル
useSubjectCredsOnlyシステム・プロパティ
SampleClientおよびSampleServerプログラムの実行
SampleServerの実行準備
SampleClientの実行準備
SampleServerの実行
SampleClientの実行
JAAS認証
認証チュートリアル・コード
LoginContextのインスタンス化
LoginContextのloginメソッドの呼び出し
ログイン構成
このチュートリアルのログイン構成ファイル
コードの実行
セキュリティ・マネージャを使用したコードの実行
JAAS承認
JAAS承認とは
JAAS承認の実行手順
プリンシパルベースのポリシー・ファイル文の作成方法
サブジェクトのアクセス制御コンテキストへの関連付け
承認チュートリアル・コード
JaasAzn.java
SampleAction.java
ログイン構成ファイル
ポリシー・ファイル
JaasAznに必要なアクセス権
SampleActionに必要なアクセス権
承認チュートリアル・コードの実行
JAAS Loginユーティリティの使用
Loginユーティリティに関する重要な情報
アプリケーションおよびほかのファイル要件
アプリケーション要件
ログイン構成ファイル要件
ポリシー・ファイル要件
サンプル・アプリケーション・プログラム
ログイン構成ファイル
ポリシー・ファイル
LoginおよびMyActionクラスに必要なアクセス権
Sampleに必要なアクセス権
Loginユーティリティを使用したサンプル・プログラムの実行
JAAS LoginユーティリティおよびJava GSS-APIを使用したセキュアなメッセージ交換
作業を開始する前に: 関連チュートリアルの紹介
クライアントおよびサーバー・アプリケーションの概要
Kerberosユーザー名およびサービス・プリンシパル名
プリンシパル名にレルムを指定する必要がある場合
ログイン構成ファイル
ポリシー・ファイル
クライアントのポリシー・ファイル
サーバーのポリシー・ファイル
SampleClientおよびSampleServerプログラムの実行
SampleServerの実行準備
SampleClientの実行準備
SampleServerの実行
SampleClientの実行
Java GSS-APIおよびJAASで実行可能な他の操作
クライアント・ユーザーでのコードの実行
基本的なアプローチ
サンプル・コードおよびポリシー・ファイル
サンプル・コードの実行
クライアントから委譲されたクレデンシャルの使用
クレデンシャルの委譲に必要なアクセス権
Kerberos要件
デフォルトのレルムおよびKDCを表すプロパティの設定
krb5.conf構成ファイルの検出
レルム名およびホスト名の命名規則
相互レルム認証
トラブルシューティング
JAASおよびJava GSS-APIチュートリアルのソース・コード
関連ドキュメント
Kerberosを使ったJavaのシングル・サインオン
概説
概要
Kerberos V5
JAAS (Java Authentication and Authorization Service)
プラグインおよびスタック可能なフレームワーク
認証と認可
サブジェクト
doAsおよびdoAsPrivileged
LoginContext
コールバック
LoginModules
Kerberosログイン・モジュール
Kerberosクラス
認可
Java Generic Security Service Application Program Interface (Java GSS-API)
Generic Security Service API (GSS-API)
Java GSS-API
GSSNameインタフェース
GSSCredentialインタフェース
GSSContextインタフェース
メッセージの保護
クレデンシャルの委譲
デフォルト・クレデンシャル取得モデル
モデルの例外
Webブラウザ統合
セキュリティ・リスク
クレデンシャルの取得
コンテキストの確立
クレデンシャルの委譲
結論
謝辞
参考資料
Java SE認証、セキュアな通信、およびシングル・サインオンでの高度なセキュリティ・プログラミング
第I部: Java認証・承認サービス(JAAS)を使用したセキュアな認証
課題1: JAAS APIの使用
課題2: Kerberos認証用のJAASの構成
第II部: Java SE Security APIを使用したセキュアな通信
課題3: Java Generic Security Service (GSS) APIの使用
課題4: Java SASL APIの使用
課題5: KerberosでのJava Secure Socket Extensionの使用
第III部: Kerberos環境でのシングル・サインオンの配備
課題6: シングル・サインオンの配備
第IV部: より強力な暗号化アルゴリズムを使用したセキュアな通信
課題7: Kerberos環境でのより強力な暗号化アルゴリズムを使用したセキュアな通信の構成
第V部: SPNEGO Java GSSメカニズムを使用したセキュアな認証
課題8: SPNEGOとJava Generic Security Services (GSS) APIの使用
第VI部: HTTP/SPNEGO認証
課題9: HTTP/SPNEGO認証の使用
HTTP SPNEGOとは
HTTP/SPNEGO認証の使用方法
HTTP/SPNEGO認証の例
Java SE認証、セキュアな通信およびシングル・サインオンでの高度なセキュリティ・プログラミングのソース・コード
付録A: Kerberosアカウントの設定
Kerberos 5 GSS-APIメカニズム
8
Java Secure Socket Extension (JSSE)リファレンス・ガイド
JSSEの概要
JSSEの特長と利点
JSSE標準API
SunJSSEプロバイダ
JSSE関連ドキュメント
用語と定義
Secure Sockets Layer (SSL)プロトコルの概要
SSLを使用することの利点
SSLの仕組み
暗号化処理
秘密鍵暗号化
公開鍵暗号化
秘密鍵暗号化と公開鍵暗号化の比較
公開鍵証明書
暗号化ハッシュ関数
メッセージ認証コード
デジタル署名
SSLハンドシェーク
SSLプロトコル
ハンドシェークの再実行(再ネゴシエーション)
符号化方式の選択とリモート・エンティティの検証
クライアント主導型OCSPとOCSPステープリング
クライアント主導型OCSPと証明書失効
クライアント主導型OCSPを使用するためのJavaクライアントの設定
OCSPステープリングと証明書失効
OCSPステープリングを使用するためのJavaクライアントの設定
OCSPステープリングを使用するためのJavaサーバーの設定
OCSPステープリングの構成プロパティ
JSSEクラスとインタフェース
JSSEのコア・クラスとインタフェース
SocketFactoryおよびServerSocketFactoryクラス
SSLSocketFactoryおよびSSLServerSocketFactoryクラス
SSLSocketFactoryの取得
SSLSocketおよびSSLServerSocketクラス
SSLSocketの取得
SSLEngineクラス
SSLEngineオブジェクトの作成
SSL/TLSデータの生成と処理
Datagram Transport Layer Security (DTLS)プロトコル
DTLSハンドシェーク
DTLS接続での再送信の処理
DTLSのためのSSLEngineオブジェクトの作成
DTLSデータの生成と処理
SSLEngineの操作のステータスについて
ブロック・タスクの処理
SSL/TLS/DTLS接続の停止
SSLSessionとExtendedSSLSession
HttpsURLConnectionクラス
割当て済のSSLSocketFactoryの設定
割当て済のHostnameVerifierの設定
サポート・クラスとインタフェース
SSLContextクラス
SSLContextクラスの取得と初期化
SSLContextオブジェクトの作成
TrustManagerインタフェース
TrustManagerFactoryクラス
TrustManagerFactoryの作成
PKIX TrustManagerのサポート
X509TrustManagerインタフェース
X509TrustManagerの作成
独自のX509TrustManagerの作成
keyStoreの動的更新
X509ExtendedTrustManagerクラス
X509ExtendedTrustManagerの作成
独自のX509ExtendedTrustManagerの作成
KeyManagerインタフェース
KeyManagerFactoryクラス
KeyManagerFactoryの作成
X509KeyManagerインタフェース
X509KeyManagerの作成
独自のX509KeyManagerの作成
X509ExtendedKeyManagerクラス
TrustManagerとKeyManagerの関係
二次サポート・クラスおよびインタフェース
SSLParametersクラス
暗号化方式群の優先順位
SSLSessionContextインタフェース
SSLSessionBindingListenerインタフェース
SSLSessionBindingEventクラス
HandShakeCompletedListenerインタフェース
HandShakeCompletedEventクラス
HostnameVerifierインタフェース
X509Certificateクラス
AlgorithmConstraintsインタフェース
StandardConstantsクラス
SNIServerNameクラス
SNIMatcherクラス
SNIHostNameクラス
JSSEのカスタマイズ
java.lang.Systemプロパティの指定方法
java.security.Securityプロパティの指定方法
X509証明書実装のカスタマイズ
デフォルトで有効な暗号化方式群の指定
HTTPSプロトコルの代替実装の指定
プロバイダ実装のカスタマイズ
暗号化プロバイダの静的な登録
暗号化サービス・プロバイダを動的に登録する
プロバイダ構成
特定の複数のアルゴリズムのための推奨プロバイダの構成
デフォルトのキーストアとトラストストア、ストア・タイプおよびストア・パスワードのカスタマイズ
デフォルトのキー・マネージャおよびトラスト・マネージャのカスタマイズ
無効化された制限付き暗号化アルゴリズム
暗号化アルゴリズム・プロバイダのカスタマイズ
エフェメラルDiffie-Hellman鍵のサイズのカスタマイズ
最大断片長ネゴシエーション(MFLN)拡張のカスタマイズ
最大および最小パケット・サイズの構成
Transport Layer Security (TLS)再ネゴシエーションの問題
この問題を解決するためのフェーズ別アプローチ
フェーズ2修正の説明
SSL/TLS再ネゴシエーションに対する回避方法と代替方法
TLS実装の詳細
フェーズ1修正の説明
SSL/TLS再ネゴシエーションにおける安全でないサーバー証明書変更の許可
ハードウェア高速化およびスマート・カードのサポート
スマートカードをキーストアおよびトラストストアとして使用するためのJSSEの構成
複数の動的キーストア
Kerberos暗号化方式群
Kerberos要件
ピアのアイデンティティ情報
セキュリティ・マネージャ
その他のキーストア形式(PKCS12)
Server Name Indication (SNI)拡張
TLSのアプリケーション層プロトコル・ネゴシエーション
クライアントでのALPNの設定
サーバーでのデフォルトALPNの設定
サーバーでのカスタムALPNの設定
ハンドシェーク中のネゴシエーション済ALPN値の特定
ALPN関連のクラスとメソッド
JSSEのトラブルシューティング
構成の問題
ハンドシェーク時の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が発生する
WebサーバーからSSLでアプリケーション・リソースを取得しようとするとFailedDownloadExceptionがスローされる
RC4暗号化方式群がDTLS用に構成されている場合のIllegalArgumentException
デバッグ・ユーティリティ
SSL/TLS接続のデバッグ
コード例
セキュアでないソケットからセキュアなソケットへの変換
JSSEサンプル・コードの実行
JSSEで使用するキーストアの作成
Server Name Indication (SNI)拡張の使用
一般的なクライアント側使用例
一般的なサーバー側使用例
仮想インフラストラクチャの操作
標準名
プロバイダのプラグイン可能性
JSSE暗号化方式群のパラメータ
9
JSSEサンプル・コードの実行
サンプル・トラストストア
クライアントとサーバーのセキュアなソケット接続を表すサンプル・コード
SSLソケット・サンプルの構成要件
SSLSocketClientの実行
SSLSocketClientWithTunnellingの実行
SSLSocketClientWithClientAuthの実行
ClassFileServerの実行
ClassFileServerによるSSLSocketClientWithClientAuthの実行
HTTPS接続を表すサンプル・コード
URLReaderの実行
URLReaderWithOptionsの実行
セキュアなRMI接続を表すサンプル・コード
SSLEngineの使用を表すサンプル・コード
SSLEngineSimpleDemoの実行
JSSEサンプル・コードのトラブルシューティング
10
Java PKIプログラマーズ・ガイド
PKIプログラマーズ・ガイドの概要
公開鍵証明書の概要
X.509証明書と証明書失効リスト(CRL)
コア・クラスとインタフェース
基本のCertification Pathクラス
CertPathクラス
CertificateFactoryクラス
CertPathParametersインタフェース
Certification Path検証クラス
CertPathValidatorクラス
CertPathValidatorResultインタフェース
Certification Path構築クラス
CertPathBuilderクラス
CertPathBuilderResultインタフェース
証明書/CRLストレージ・クラス
CertStoreクラス
CertStoreParametersインタフェース
CertSelectorおよびCRLSelectorインタフェース
X509CertSelectorクラス
X509CRLSelectorクラス
PKIXクラス
TrustAnchorクラス
PKIXParametersクラス
PKIXCertPathValidatorResultクラス
PolicyNodeインタフェースおよびPolicyQualifierInfoクラス
PKIXBuilderParametersクラス
PKIXCertPathBuilderResultクラス
PKIXCertPathCheckerクラス
証明書パス検証でのPKIXCertPathCheckerの使用
PKIXRevocationCheckerクラスを使った証明書の失効ステータスのチェック
サービス・プロバイダの実装
プロバイダの実装および統合までのステップ
サービスの相互依存性
証明書パス・パラメータ仕様のインタフェース
証明書パスの結果の仕様インタフェース
証明書パスの例外クラス
付録A: 標準名
付録B: SUNプロバイダでのCertPath実装
付録C: OCSPサポート
付録D: JdkLDAPプロバイダでのCertPath実装
付録E: 暗号化アルゴリズムの無効化
11
Java SASL APIプログラミングおよび配備ガイド
Java SASL APIの概要
メカニズムの作成
メカニズムに入力を渡す
メカニズムの使用
ネゴシエーション済みのセキュリティ層の使用
SASLメカニズムをインストールおよび選択する方法
SunSASLプロバイダ
SunSASLプロバイダのクライアント・メカニズム
SunSASLプロバイダのサーバー・メカニズム
JdkSASLプロバイダ
JdkSASLプロバイダのクライアント・メカニズム
JdkSASLプロバイダのサーバー・メカニズム
デバッグおよびモニタリング
SASLセキュリティ・プロバイダの実装
12
XMLデジタル署名APIの概要とチュートリアル
パッケージ階層
サービス・プロバイダ
XML署名について
XML署名の例
XMLデジタル署名APIの例
検証の例
XML署名の検証
署名を含むドキュメントのインスタンス化
検証する署名要素の指定
検証コンテキストの作成
XML署名のアンマーシャリング
XML署名の検証
XML署名の検証に失敗した場合
KeySelectorの使用
GenEnvelopedの例
XML署名の生成
署名するドキュメントのインスタンス化
公開鍵のペアの作成
署名コンテキストの作成
XML署名の構築
XML署名の生成
生成されるドキュメントの印刷または表示
13
セキュリティAPIの仕様
14
削除対象としてマークされている推奨されていないセキュリティAPI
15
セキュリティ・ツール
16
セキュリティ関連のトピック