2017-09-10 11 views
0

私はJavaアプリケーションを持っており、セキュリティについて考えています。私はコードを難読化することができますが、私はまだメモリからコードを「盗む」ことができますし、例えばjavassistを使って実行時にコードを変更することもできます。私は変更する前に私のコードを保護し、別のJavaアプリケーションによってメモリからコードを取得するためにSecurityManagerを探しています。 この例ではSecurityManagerをどのように使用するか、またはより良い解決策を知る方法を知っていますか?Java SecurityManager - 実行時に変更前の安全なコード

+0

多くの商用およびオープンソース「難読化ツール」はあります。ただし、JVMの最適化機能に影響することを理解する必要があります。本当にそれは価値がありますか? – fg78nc

答えて

4

SecurityManagerは、あなたがやろうとしていることとは逆の動作をします。信頼できないコードを実行することによる潜在的な有害な影響から、ユーザーのマシンを保護します。ユーザーに対してコードを保護しようとしています。

コードを100%保護する本当の解決策はありません。コードがユーザーのマシン上で実行されると、コードが盗まれ、(スキルと労力で)リバースエンジニアリングされます。これはすべてのプログラミング言語についてはです。

基本的に、ユーザーがプラットフォームを制御している場合、実行中のアプリケーションメモリ内のものにアクセスすることができ、これを停止することはできません。 Javaの場合、セキュリティ管理者を無効にしたり、エージェントを接続したりすることもできます。基本的にはを無効にします。それは彼らの< <プラットフォームです。

あなたが望むことができる最良のことは、必要なリバースエンジニアリングのスキルと時間を必要とせずに、誰かにとってそれを難し​​くすることです。など

とコードが貴重は...だけでそれを実行することである場合>>あなた< <データセンター>>であなたの< <ハードウェア、

関連する問題