Java Development Kit(JDK?)で提供されているセキュリティ機能は、次のさまざまな利用者を対象としています。
プログラムを実行するユーザー:
組込みのセキュリティ機能によって、悪意のあるプログラム(ウィルスを含む)からユーザーを保護し、ユーザーに関する情報やファイルのプライバシを守り、コード・プロバイダのIDを認証します。 必要に応じて、アプリケーションやアプレットをセキュリティ制御の管理下に置くことができます。
開発者:
APIのメソッドを使用して、暗号化サービスやセキュリティ・チェックなどのセキュリティ機能をプログラムに組み込むことができます。 APIフレームワークを利用すると、独自の権限(特定のリソースに対するアクセスの制御)や、暗号化サービスの実装、セキュリティ・マネージャの実装、ポリシーの実装を定義および統合できます。 また、信頼できる人物からの公開鍵証明書や、公開鍵と秘密鍵のペアを管理するためのクラスが提供されています。
システム管理者、開発者、ユーザー:
JDKツールを使用すると、キーストア(鍵や証明書のデータベース)を管理し、JARファイルのデジタル署名を生成し、これらの署名の信頼性と署名されたコンテンツの整合性を検証し、インストールのセキュリティ・ポリシーを定義するポリシー・ファイルを作成および変更できます。
Quick Tour of Controlling Appletsでは、許可ポリシー・ファイルのアクセス権によって明示的に許可されている場合を除き、署名されていないアプレットによるリソース・アクセスの禁止(ファイルの読取りや書込みなど)がどのように行われているかを説明します。
Quick Tour of Controlling Applicationsは、1つ前のレッスンを基にしています。セキュリティ・マネージャの管理下でアプリケーションが実行されている場合、署名されていないアプレットの場合とまったく同様にリソース・アクセスを制御できます。
API and Tools Use for Secure Code and File Exchangesでは、デジタル署名、証明書、キーストアの定義について説明するとともに、なぜこれらが必要であるかを明らかにします。 また、ツールやAPIを使用した署名の生成や証明書のエクスポート/インポートなどに通常必要とされる手順に関して、次の3つのレッスンに適用される情報を確認します。
Signing Code and Granting It Permissionsでは、すべてのセキュリティ関連ツールの使用法を説明します。 ここでは、署名を行い、別の人物が実行できるようにコードを配布する際に開発者が取る手順を示します。 また、コードを実行する人物(またはシステム管理者)が、必要なリソース・アクセスに対するコードのアクセス権を付与するために、どのようにポリシー・ファイルにエントリを追加するのかについて説明します。
Exchanging Filesでは、ツールを使用して契約書などの重要なドキュメントに署名し、契約書の署名に使用した秘密鍵に対応する公開鍵の公開鍵証明書をエクスポートする方法を示します。 次に、この契約書、署名、公開鍵証明書を受け取った別の人物が証明書をインポートし、署名を検証する手順を示します。
Generating and Verifying Signaturesでは、JDK Security APIを使用したJavaプログラムの記述例を段階的に確認していきます。このプログラムは鍵を生成し、秘密鍵を使用してデータのデジタル署名を生成し、ファイルの署名と公開鍵をエクスポートします。 次に、2番目のプログラムの記述例について確認します。2番目のプログラムは、公開鍵をインポートして署名の信頼性を検証する別の人物のコンピュータ上で実行することが想定されています。 最後に、これらの基本プログラムによって使用されたアプローチが抱える潜在的な弱点について例を通じて説明するとともに、鍵を提供およびインポートする際に考えられる代替手法(証明書内の鍵の格納など)を実証します。
Implementing Your Own Permissionでは、独自の特殊権限を定義するクラスの作成方法を示します。
Javaプラグインを使用して、JDK 6と互換性のある最新のJava Runtime Environment(JRE)をダウンロードするための情報は、 Java Plug-in Technologyページを参照してください。