目次

監訳者まえがき
まえがき
対象読者
本書で使用するバージョン
本書の表記法
本書の構成
謝辞
本書へのご意見

1章 Javaアプリケーションのセキュリティ
	1.1 セキュリティとは
	1.2 Javaサンドボックス
	1.3 アプリケーション、アプレット、プログラム
		1.3.1 Javaアプリケーションの構造
	1.4 Javaアプリケーションの実行
		1.4.1 JavaRunnerアプリケーションの概要
		1.4.2 Javaアプリケーションに組み込まれるセキュリティ
	1.5 まとめ

2章 Java言語のセキュリティ
	2.1 Java言語のセキュリティ構造
		2.1.1 オブジェクトのシリアライゼーションとメモリの完全性
	2.2 Java言語の規則の遂行
		2.2.1 コンパイラによる規則の遂行
		2.2.2 バイトコード検証器
		2.2.3 実行時の規則の遂行
	2.3 まとめ

3章 Javaクラスローダ
	3.1 セキュリティとクラスローダ
		3.1.1 クラスローダとセキュリティの遂行
		3.1.2 クラスローダと名前空間
	3.2 クラスローダの構造
		3.2.1 内部クラスローダ
		3.2.2 アプレットクラスローダ
		3.2.3 RMIクラスローダ
		3.2.4 セキュアクラスローダ
		3.2.5 URLクラスローダ
		3.2.6 適切なクラスローダの選択
	3.3 クラスのロード
	3.4 クラスローダの実装
		3.4.1 ClassLoaderクラスの実装
		3.4.2 SecureClassLoaderクラスの実装
		3.4.3 クラスローダにおけるセキュリティポリシの実装
	3.5 クラスローダの拡張
		3.5.1 複数サイトからのロード
		3.5.2 JARファイルクラスローダ
	3.6 クラスローダに関する他のトピック
		3.6.1 委譲
		3.6.2 リソースのロード
		3.6.3 ライブラリのロード
	3.7 まとめ

4章 セキュリティマネージャクラス
	4.1 セキュリティマネージャの概要
		4.1.1 セキュリティマネージャとJava API
	4.2 信頼できるクラスと信頼できないクラス
	4.3 セキュリティマネージャの使用法
		4.3.1 セキュリティマネージャの設定
		4.3.2 ファイルアクセスに関するメソッド
		4.3.3 ネットワークアクセスに関するメソッド
		4.3.4 Java仮想マシンを保護するメソッド
		4.3.5 プログラムスレッドを保護するメソッド
		4.3.6 システムリソースを保護するメソッド
		4.3.7 セキュリティの性質を保護するメソッド
	4.4 まとめ

5章 アクセスコントローラ
	5.1 CodeSourceクラス
	5.2 パーミッション
		5.2.1 Permissionクラス
		5.2.2 Java APIのパーミッション
		5.2.3 Permissionクラスの使用法
		5.2.4 BasicPermissionクラス
		5.2.5 PermissionCollectionクラス
		5.2.6 Permissionsクラス
	5.3 Policyクラス
		5.3.1 デフォルトのポリシ
	5.4 プロテクションドメイン
	5.5 AccessControllerクラス
	5.6 ガードオブジェクト
	5.7 まとめ

6章 セキュリティポリシの実装
	6.1 セキュリティマネージャのprotectedメソッド
		6.1.1 クラスローダの深さ
		6.1.2 セキュリティマネージャのprotectedインスタンス変数
	6.2 セキュリティマネージャとクラスローダ
		6.2.1 クラスローダとセキュリティマネージャ
	6.3 実装に関する技法
		6.3.1 ユーティリティクラス
		6.3.2 ネットワークアクセスの実装
		6.3.3 クラスローダのネットワークパーミッション
		6.3.4 スレッドセキュリティの実装
		6.3.5 パッケージアクセスの実装
		6.3.6 Java 2におけるセキュリティポリシの確立
		6.3.7 Java 1.1のセキュリティポリシの確立
	6.4 安全なアプリケーションの実行
		6.4.1 安全なJavaRunner
		6.4.2 安全なJava Launcher
	6.5 まとめ

7章 暗号の基礎
	7.1 認証の必要性
		7.1.1 作成者の認証
		7.1.2 データの認証
		7.1.3 認証におけるJavaの役割
	7.2 認証の役割
	7.3 暗号エンジン
		7.3.1 メッセージダイジェスト
		7.3.2 暗号鍵
		7.3.3 電子署名
		7.3.4 暗号化エンジン
	7.4 まとめ

8章 セキュリティプロバイダ
	8.1 セキュリティプロバイダのアーキテクチャ
		8.1.1 アーキテクチャのコンポーネント
		8.1.2 セキュリティプロバイダの選定
	8.2 Providerクラス
		8.2.1 Providerクラスの使用法
		8.2.2 Providerクラスの実装方法
	8.3 Securityクラス
		8.3.1 Securityクラスとセキュリティマネージャ
	8.4 エンジンクラスのアーキテクチャ
	8.5 まとめ

9章 メッセージダイジェスト
	9.1 メッセージダイジェストクラスの使用法
		9.1.1 安全なメッセージダイジェスト
	9.2 メッセージダイジェストストリーム
		9.2.1 DigestOutputStreamクラス
		9.2.2 DigestInputStreamクラス
	9.3 メッセージダイジェストクラスの実装
	9.4 まとめ

10章 鍵と証明証
	10.1 鍵
		10.1.1 Keyインタフェース
		10.1.2 KeyPairクラス
	10.2 KeyPairGeneratorクラス
		10.2.1 KeyPairGeneratorクラスの使用法
		10.2.2 DSA鍵の生成
		10.2.3 キーペアジェネレータの実装
	10.3 KeyFactoryクラス
		10.3.1 KeyFactoryクラスの使用法
		10.3.2 キーファクトリの実装
		10.3.3 鍵の仕様
		10.3.4 キーファクトリの例
	10.4 証明書
		10.4.1 Certificateクラス
		10.4.2 CertificateFactoryクラス
		10.4.3 X509Certificateクラス
		10.4.4 X509Certificateクラスのメソッド
		10.4.5 無効になった証明書
	10.5 鍵、証明書、オブジェクトのシリアライゼーション
	10.6 まとめ

11章 鍵管理
	11.1 鍵管理の概要
		11.1.1 Principal
	11.2 KeyStoreクラス
	11.3 鍵管理の例
		11.3.1 KeyStoreクラスのインストール
	11.4 まとめ

12章 電子署名
	12.1 Signatureクラス
		12.1.1 Signatureクラスの使用法
		12.1.2 SignedObjectクラス
		12.1.3 署名と認証
	12.2 署名されたクラス
		12.2.1 署名されたJARファイルの読み取り
		12.2.2 署名されたJARファイルとセキュリティポリシ
	12.3 Signatureクラスの実装
	12.4 まとめ

13章 暗号化
	13.1 輸出規制
	13.2 JCEにおけるSunセキュリティプロバイダ
	13.3 JCEにおける鍵の種類
		13.3.1 秘密鍵
	13.4 秘密鍵エンジン
		13.4.1 KeyGeneratorクラス
		13.4.2 SecretKeyFactoryクラス
	13.5 データの暗号化
		13.5.1 Cipherクラスの使用法
		13.5.2 Cipherアルゴリズム
		13.5.3 Cipherクラスの実装
	13.6 Cipherストリーム
		13.6.1 CipherOutputStreamクラス
		13.6.2 CipherInputStreamクラス
		13.6.3 SSL暗号化
	13.7 対称鍵交換
	13.8 シールドオブジェクト
	13.9 まとめ

付録A セキュリティツール
	A.1 keytool
		A.1.1 keytoolのグローバルオプション
		A.1.2 証明書のエントリの追加
		A.1.3 キーエントリの追加
		A.1.4 キーストアエントリの修正
		A.1.5 キーストアエントリの削除
		A.1.6 キーストアデータのテスト
		A.1.7 ベースのアイデンティティデータベースのインポート
		A.1.8 その他のコマンド
	A.2 jarsigner
		A.2.1 署名されたJARファイルの作成
		A.2.2 JARファイルの検証
	A.3 policytool
		A.3.1 ポリシコードベースの管理
		A.3.2 パーミッションの管理
		A.3.3 証明書のエントリの管理
	A.4 手作業によるファイル管理
		A.4.1 java.securityファイル
		A.4.2 java.policyファイル
付録B アイデンティティベースの鍵管理
	B.1 アイデンティティ
		B.1.1 Identityクラス
		B.1.2 Signerクラス
	B.2 アイデンティティスコープ
		B.2.1 IdentityScopeクラスの使用法
		B.2.2 アイデンティティスコープの書き方
		B.2.3 アイデンティティスコープとセキュリティマネージャ
	B.3 アイデンティティスコープの鍵管理
		B.3.1 Identityクラスの実装
		B.3.2 Signerクラスの実装
		B.3.3 共有システムアイデンティティスコープ
		B.3.4 アイデンティティの作成
	B.4 まとめ
付録C セキュリティに関する情報源
	C.1 セキュリティのバグ
		C.1.1 Javaセキュリティバグ
		C.1.2 セキュリティバグの追跡
	C.2 サードパーティのセキュリティプロバイダ
	C.3 セキュリティに関するリファレンス
付録D クイックリファレンス
	java.securityパッケージ
	java.security.certパッケージ
	java.security.interfacesパッケージ
	java.security.specパッケージ
	javax.cryptoパッケージ
	javax.crypto.interfacesパッケージ
	javax.crypto.specパッケージ
	補録のパッケージ
コラム
セキュリティとオペレーティングシステム
Java 2の安全なアプリケーション
他の言語のバイトコード検証器
すでにロードされているクラスの検索
セキュアクラスローダとdefineClass( )メソッド
クラスローダと他のプロトコル
すべてのセキュリティ違反を認識できるわけではない
アプレットがファイルをアクセスできない本当の理由
ネットワークアクセスが制限される本当の理由
プロパティの展開とポリシクラス
アクセスコントローラとセキュリティマネージャ
セキュリティマネージャの判定
ヌルセキュリティマネージャ
ファイルアクセスの許可
暗号化とデータの認証の対比
証明書:クラスかインタフェースか
識別名について
非公開鍵の暗号化
暗号化と軍需品
NullCipherクラス


書籍についてのお問い合わせは以下までお願いします。

株式会社オライリー・ジャパン

〒160-0003 東京都新宿区本塩町7番地6 四谷ワイズビル
e-mail:japan@oreilly.com


書籍の購入方法トップページへ戻る