1

いくつかのテストのために、システムで利用可能な暗号化アルゴリズムをフィルタリングしようとしていますが、問題が発生しています。

local_policy.jar ファイルには、default_local.policy ファイルのさまざまなエントリが含まれています。

permission javax.crypto.CryptoPermission "DES", 64;

以下を渡して、カスタム ポリシー ファイルを使用しようとしています。

-Djava.security.manager -Djava.security.policy=F:/myfile.policy

これはある程度機能しますが、エラーが発生します。

java.security.policy: error parsing file:/F:/myfile.policy: 
line 65: expected [;], found [64]

何らかの理由で、引用符 "" の外側は何も読み取れませんが、これは local_policy.jar ファイルにあるものから機能します。ポリシー ファイルの内容は次のとおりです。

grant {
    permission javax.crypto.CryptoPermission "DES", 64; <--- line #65
    permission javax.crypto.CryptoPermission "DESede", *;
    permission javax.crypto.CryptoPermission "RC4", 128;
    permission javax.crypto.CryptoPermission "RSA", *;
    permission javax.crypto.CryptoPermission *, 128;
};

Policy Tool (jdk/bin フォルダー内の policytool.exe) も使用してみましたが、次のようになります。

java.lang.NoSuchMethodException: javax.crypto.CryptoPermission.<init>
(java.lang.String, java.lang.String)

何か案は?

ありがとう。

4

1 に答える 1

1

javax.crypto.CryptoPermissions は、セキュリティ マネージャーで使用されるアクセス許可ではありませんが、Java 暗号化拡張機能 (JCE) に適用されます。つまり、それらは別のポリシー ファイルに入れられます (セキュリティ マネージャのポリシー ファイルと形式が多少共有されます)。JCE の詳細については、http://docs.oracle.com/javase/1.5.0/docs/guide/security/jce/JCERefGuide.html を参照してください

私が間違っていなければ (そしてこれはおそらくここに当てはまります)、JRE/JDK インストールでファイルを交換して JCE ポリシー ファイルをインストールする必要があります (こちらの情報も参照してください: Java Security: Illegal key size or default parameters? ) . 私の知る限り、このポリシー ファイルは VM 引数を介して単純に指定することはできません。

于 2013-07-09T14:46:12.803 に答える