|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.security.Permission java.security.BasicPermission java.security.SecurityPermission
public final class SecurityPermission
このクラスはセキュリティーアクセス権のために用意されています。SecurityPermission は名前 (「ターゲット名」とも呼ばれる) を持ちますが、アクションリストは持ちません。 ユーザーは名前付きアクセス権を持つ場合と、持たない場合があります。
ターゲット名には、セキュリティー構成パラメータの名前 (下記を参照) を指定します。現在、SecurityPermission オブジェクトを使うと、Policy、Security、Provider、Signer、Identity オブジェクトへのアクセスを保護できます。
次の表に、可能な SecurityPermission ターゲット名のすべてと、そのターゲット名のそれぞれについてアクセス権が許可する内容、およびコードにアクセス権を与えるリスクについての説明の一覧を示します。
アクセス権ターゲット名 | 可能になる操作 | このアクセス権を与えた場合のリスク |
---|---|---|
createAccessControlContext | createAccessControlContext の作成。 | このアクセス権は DomainCombiner を使用して AccessControlContext をインスタンス化する。現在スタックにある ProtectionDomains へのリファレンスが DomainCombiners に与えられるので、悪意のある DomainCombiners である場合、プライバシーが漏出する危険性があります。 |
getDomainCombiner | AccessControlContext の DomainCombiner を取得。 | このアクセス権は AccessControlContext の DomainCombiner を取得する。DomainCombiner には重要な情報があるので、プライバシの漏洩につながる可能性がある |
getPolicy | システム全体のセキュリティーポリシー (具体的には、現在インストールされている Policy オブジェクト) の取得。 | 特定の CodeSource に対してどのようなアクセス権が与えられているかを知ることができる getPermissions の呼び出しにより、システム全体のセキュリティーポリシーに対して問い合わせができるようになります。ポリシー情報が盗まれてもシステムのセキュリティーが脅かされるわけではありませんが、攻撃の狙いをより正確に定めるための追加情報を悪意のあるコードに与えてしまいます。必要以上の情報は公開しないようにする必要があります。 |
setPolicy | システム全体のセキュリティーポリシー (具体的には、Policy オブジェクト) の設定。 | このアクセス権を与えると、悪意のあるコードは、システムを攻撃するのに必要なアクセス権のすべてを自らに与えることができるようになるため、極めて危険です。 |
createPolicy.{policy type} | プロバイダから Policy 実装のインスタンスを取得。 | このアクセス権を許可すると、Policy オブジェクトを取得するコードが有効になります。悪意のあるコードが、コードにほかのどのようなアクセス権が付与されているかについて Policy オブジェクトに問い合わせを行う可能性があります。 |
getProperty.{key} | 鍵を指定してのセキュリティープロパティーの取得。 | 指定した鍵により可能になるアクセスの種類によっては、コードから、システム全体のポリシーとユーザーセキュリティーポリシーの場所のほか、セキュリティープロバイダのリストにもアクセスできるようになります。この情報が盗まれてもシステムのセキュリティーが脅かされるわけではありませんが、攻撃の狙いをより正確に定めるための追加情報を悪意のあるコードに与えてしまいます。 |
setProperty.{key} | 鍵を指定してのセキュリティープロパティーの設定。 | これには、セキュリティープロバイダの設定と、システム全体のセキュリティーポリシーの場所の定義が含まれます。新しいセキュリティープロバイダを設定するアクセス権が与えられた悪意のあるコードは、暗号化非公開鍵などの機密情報を盗むプロバイダを設定する可能性があります。また、システム全体のセキュリティーポリシーの場所を設定するアクセス権が与えられた悪意のあるコードは、システムを攻撃するのに必要なアクセス権のすべてを攻撃者に与えるセキュリティーポリシーの場所をその場所に設定する可能性があります。 |
insertProvider.{provider name} | 指定した新しいプロバイダの追加。 | 悪意のあるプロバイダ (受け取った非公開鍵を暴露するプロバイダなど) を、もっとも高い優先順位を持つプロバイダとして追加できるようになります。これは、インストールされているプロバイダを管理する現在の Security オブジェクトは、プロバイダを追加する前に、その整合性や信頼性のチェックは行わないためでです。 |
removeProvider.{provider name} | 指定したプロバイダの削除。 | プログラムの他の部分の動作を変更したり、その実行を無効にすることができるようになります。プログラムが要求したプロバイダがすでに削除されてしまった場合、実行が異常終了する可能性があります。また、削除されたプロバイダがプログラムの残りの部分で要求されていなくても、そのプロバイダが、通常、暗号化サービスが要求されたときに選ばれるプロバイダである場合は (プロバイダのリストで前の方にあるため)、代わりに別のプロバイダが選ばれるか、適切なプロバイダが見つからない場合はエラーになります。 |
setSystemScope | システムのアイデンティティースコープの設定。 | 攻撃者は、信頼されるべきでない証明書を使用してシステムのアイデンティティースコープを設定し、そのような証明書を使用して署名されたアプレットやアプリケーションのコードに、システムの元のアイデンティティースコープでは拒否されていた特権を与えることができます。 |
setIdentityPublicKey | Identity の公開鍵の設定。 | アイデンティティーが「信頼できるもの」としてマークされている場合、攻撃者は、システムのアイデンティティースコープが信頼していない別の公開鍵 (独自の公開鍵など) を設定し、その公開鍵を使用して署名されたアプレットやアプリケーションのコードに、本来なら否定されていた特権を与えることができます。 |
setIdentityInfo | Identity の概要を表す文字列の設定。 | 攻撃者は、アイデンティティーの概要を表す文字列を設定できるようになります。これにより攻撃者は、アプリケーションを騙して目的のものとは異なるアイデンティティーを使用させるようにしたり、特定のアイデンティティーを見つけることができないようにしたりできます。 |
addIdentityCertificate | Identity の証明書の追加。 | 攻撃者は、アイデンティティーの公開鍵に証明書を設定できるようになります。システム全体の信頼関係に影響するため、このアクセス権は危険です。この公開鍵は、本来よりも広い範囲のコードに対して急に信頼性を持つようになります。 |
removeIdentityCertificate | Identity の証明書の削除。 | 攻撃者は、アイデンティティーの公開鍵のための証明書を削除できるようになります。システム全体の信頼関係に影響するため、このアクセス権は危険です。この公開鍵は、急に本来よりも信頼性が低く見なされるようになります。 |
printIdentity | アイデンティティーの本人の名前、および必要に応じてそのアイデンティティーが使用されるスコープ、そのアイデンティティーがスコープ内で「信頼できる」と見なされているかどうかを表示する | 出力されるスコープがファイル名の場合、ローカルシステムの情報が伝達されてしまうことがあります。たとえば、「carol」という名前のアイデンティティーのサンプル出力を示します。「carol」は、ユーザーのアイデンティティーデータベースでは「信頼されない」としてマーク付けされています。 carol[/home/luehe/identitydb.obj][not trusted] |
clearProviderProperties.{provider name} | Provider によって実装されているサービスの参照に使用されるプロパティーが空になるように、Provider を「クリア」する。 | プロバイダによって実装されているサービスの参照が無効になります。したがって、アクセス権「removeProvider.{provider name}」の部分で説明しているように、通常はその Provider を利用しているプログラムの他の部分の動作が変更されたり、その実行が無効になったりする可能性があります。 |
putProviderProperty.{provider name} | 指定した Provider のプロパティーの設定。 | プロバイダのプロパティーは、そのプロバイダによって実装されている特定のサービスの名前と場所を指定します。このアクセス権を与えると、コードからサービスの指定を変更し、別の実装を指定できるようになります。 |
removeProviderProperty.{provider name} | 指定した Provider からのプロパティーの削除。 | プロバイダによって実装されているサービスの参照が無効になります。プロバイダの名前と場所を指定したプロパティーが削除されるため、そのプロバイダにはアクセスできなくなります。したがって、アクセス権「removeProvider.{provider name}」の部分で説明しているように、通常はその Provider を利用しているプログラムの他の部分の動作が変更されたり、その実行が無効になったりする可能性があります。 |
getSignerPrivateKey | 署名者の非公開鍵の取得。 | 非公開鍵へのアクセスを許可するのは非常に危険です。非公開鍵は、ほかに知られないようにしておくことが前提になっています。非公開鍵が知られてしまうと、コードはその非公開鍵を使用してさまざまなファイルに署名し、署名がその署名者のものであると主張できるようになります。 |
setSignerKeyPair | 署名者の鍵のペア (公開鍵と非公開鍵) の設定。 | 攻撃者は、他人 (標的) の鍵のペアを、それよりも弱い鍵のペア (キーサイズの小さいものなど) と置き換えることができるようになります。また、標的とその通信相手との間の暗号化されたやりとりを傍受できるようにもなります。標的の通信相手が、標的の「新しい」公開鍵を使用して暗号化セッション鍵をラップしても、攻撃者 (対応する非公開鍵の所有者) は、「新しい」公開鍵を使用してそのセッション鍵のラップを解除し、そのセッション鍵を使用して暗号化された通信データを解読できます。 |
BasicPermission
,
Permission
,
Permissions
,
PermissionCollection
,
SecurityManager
,
直列化された形式コンストラクタの概要 | |
---|---|
SecurityPermission(String name)
新しい SecurityPermission を指定された名前で作成します。 |
|
SecurityPermission(String name,
String actions)
指定された名前を持つ新しい SecurityPermission オブジェクトを作成します。 |
メソッドの概要 |
---|
クラス java.security.BasicPermission から継承されたメソッド |
---|
equals, getActions, hashCode, implies, newPermissionCollection |
クラス java.security.Permission から継承されたメソッド |
---|
checkGuard, getName, toString |
クラス java.lang.Object から継承されたメソッド |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
public SecurityPermission(String name)
name
- セキュリティーアクセス権の名前
NullPointerException
- name
が null
の場合
IllegalArgumentException
- name
が空の場合。public SecurityPermission(String name, String actions)
name
- セキュリティーアクセス権の名前actions
- null でなければならない
NullPointerException
- name
が null
の場合
IllegalArgumentException
- name
が空の場合。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。