4

ネイティブコードで暗号化機能を実行する方が安全かどうか疑問に思います。Javaを使用すると、暗号化/復号化の直後にキーをゼロにしたとしても、GCがメモリを再ソートし、キーの浅いコピーをメモリに残すかどうかを確認できません。

ばかげた質問かもしれませんが、情報が見つかりませんでした。ネイティブコードはまだサンドボックス化されてVM内で実行されているので、GC / VM /システムはメモリを再ソートして、浅いコピーを残すことができますか?では、スタックとヒープは静的ですか、それとも移動できますか?AFAIKには仮想アドレスがあるので、これを行うことができます。

ありがとう、よろしくお願いします

4

1 に答える 1

4

ネイティブ コードは、Dalvik VM ではなく ARM (そして現在は Intel だと思います) 用にコンパイルされており、プロセッサ上で直接実行され、Dalvik によって読み込まれて呼び出されますが、Dalvik によって直接制御されることはありません。ネイティブ コードのスタックとヒープは本物です。memcpy/memset を呼び出すと、メモリが完全に変更されます。

最新のシステムはすべて仮想メモリも備えているため、これはおそらくセキュリティに関する限りです。

于 2012-04-18T16:07:15.767 に答える