1

OSGi 経由でプラグインを実行できるようにする Android アプリケーションを開発しています (Apache Felix を使用)。ただし、プラグインごとに特定のセキュリティ面を適用したいと考えています。つまり、どのプラグインがファイルシステムへのアクセスを許可されているかです。また、一般的に反射を防ぎたいです。

私がこれまでに見つけたすべてのチュートリアルは、標準の Java SecurityManager のロードと組み合わせて OSGi セキュリティーを使用することに言及しています。ただし、後者は Android には存在しないため、アプローチ全体が完全に使用できなくなります。バイトコード操作を使用して、さまざまなプラグインで問題が発生するのを防ぐことはしたくありません。これは面倒であり、常に何かを見逃す可能性があるためです。

では、Android で標準の Java セキュリティに似たセキュリティ アーキテクチャを取得するにはどうすればよいでしょうか。最も重要なのは、リフレクションが使用されないようにするにはどうすればよいですか?

また、スレッド単位で I/O アクセスを防ぐ方法はありますか?

4

2 に答える 2

1

コアOSを変更する意思がない限り、変更することはできません。Androidの標準権限により、ファイルとAPIへのアクセスを制限できますが、反映を停止するものはありません。OSはそれを使用するので、完全にブロックすると物事が壊れます。UIDによるブロックでは、プロセスは実行可能かもしれませんが、コアJava APIの実装(libcore内)を変更する必要があります。

于 2012-11-30T02:27:47.430 に答える
1

サンドボックスの中のサンドボックス!パフォーマンス上の理由から特に魅力的なアイデアとは思えませんが、私の知る限り、SecurityManager は引き続き設定できます。そのため、独自のセキュリティ マネージャーを設定して、進行中のチェックをキャッチすることができます。ただし、この議論は、Android チームが基本ライブラリの品質についてあまり自信を持っていないことを示しています。(おそらく、パフォーマンスを向上させるためにすべてのチェックを削除したでしょうが、最近では、プロセス内セキュリティの全体的な考え方は、単純で明確で間違ったソリューションであると感じています ...)

于 2012-11-30T07:38:48.943 に答える