3

JAR ファイルとして配布されるソフトウェアを作成しています。現在、この JAR ファイルを改ざんして、サーバーが 経由URLClassLoaderで送信する別のファイルを取得して保存し、逆コンパイルし、それを使用するクライアントのセキュリティのために非公開のままにしておく必要があるコード内のさまざまなものを見つけることができます。基本的には、元の JAR が改ざんされていないかどうかを確認する方法を実装したいと考えています。私はこれが逆説的に不可能であることを知っていますSignedObjectJavaの性質上逆コンパイルできるため、元のクラスではコードが改ざんされているかどうかを判断できる他の方法はありますか? このチェックは、有効性をチェックするためにダウンロードされる中間クラス、または動作が保証されるその他の手段を介して行うことができます。私は一日中ここに座って、この問題の解決策を見つけようとしています。どんな助けでも大歓迎です。

4

1 に答える 1

2

これは理論的にも現実的にも不可能です。jar の検証はクライアント側で行われます。検証可能な方法で暗号化が提示されることはなく、クライアントが暗号化を提供することを信頼します。

検証のために jar ファイル自体から任意のバイトを要求したとしても、悪意のあるユーザーは、適切な jar からバイトが取得され、悪いコードによって提示されるように構成する可能性があります。

暗号証明を使用して相手側データがあることを確認できますが、そのデータのコピー/リビジョン/バージョンのみがあることを確認することは不可能です。断固たる攻撃者は、有効な jar を持っていることを検証で主張できるため、嘘をつくことができます。

要するに、正しいデータが存在するということは、同じデータが排他的に存在することを意味するものではありません。

于 2013-07-18T00:27:33.167 に答える