4

Java jar は、JDK jarsigner ツールで署名できます。これは、policytool と組み合わせて、実行時にのみ jar に特権を追加できるように見えます。デフォルトの「実行へのアクセスを取り消す」を希望します。特定の一連の証明書によって署名されたjarファイルのみが実行を許可されるように、Javaにホワイトリストを作成させることは可能ですか?

4

3 に答える 3

4

私が理解しているように、これはあなたが制御できるコンピューター上にあります。使用する

 java -Djava.security.manager YourApplication

アプリケーションを起動するとき。これにより、ポリシー ファイルで設定できるデフォルトのセキュリティ マネージャがインストールされます。ポリシー ファイルを使用すると、署名者ごとまたはコード ベースごとにパーミッションを構成できます。

  grant signedBy "me" {
      permission java.io.FilePermission "/home/me/*", "read,write";
  };

考えられるさまざまなパーミッションの中で、現在「実行する」パーミッションは見当たりませんが、ネットワークとファイルシステム アクセスの両方を完全に無効にできるようです。

意思決定者 (起動するか起動しないか) である独自の外部アプリケーションを実行する可能性がある場合は、既に説明したように、コードから署名を検証できます。

また、ここに記載されているように、-verify スイッチを使用して jarsigner の周りにラッパーを作成できます。

jarsigner -verify -keystore mystore hackerApplication.jar 

bashのようなラッパーを使用して、出力の「smk」をキャプチャします。

于 2013-01-13T15:49:19.800 に答える
1

7u10以降のOracleJREのJavaPlugInおよびWebStartの場合、Javaコントロールパネルに関連するカスタムセキュリティ設定があります。[安全なJREバージョンでの信頼できないアプリに対するアクション]で、[実行しない]を選択します。Javaクライアントのセキュリティレベルの設定を参照してください。

于 2013-01-13T22:48:28.483 に答える