Android:替换缺少的安全架构

时间:2012-11-29 15:49:05

标签: java android security osgi apache-felix

我正在开发一个允许插件通过OSGi运行的Android应用程序(使用Apache Felix)。但是,我想在每个插件的基础上强制执行某些安全方面。即哪个插件可以访问文件系统。另外,我想一般防止反思。

到目前为止,我发现的所有教程都是指将OSGi安全性与加载标准Java SecurityManager结合使用。但是,后者在Android上不存在,因此整个方法完全无法使用。 我不想使用字节码操作来防止各种插件中发生的事情,因为这既麻烦又总是会遗漏一些东西。

那么,有没有人有任何想法,我如何在Android上获得类似于标准Java安全性的安全架构? 最重要的是,如何防止反射被使用?

但是,有没有办法防止I / O访问,即基于每个线程?

2 个答案:

答案 0 :(得分:1)

除非您愿意修改核心操作系统,否则您不能。 Android标准权限可以限制对文件和API的访问,但没有什么可以阻止反射。操作系统使用它,所以如果你完全阻止它,事情就会破裂。通过UID阻止,进程可能是可行的,但您必须修改核心Java API的实现(在libcore中)。

答案 1 :(得分:1)

沙箱中的沙箱!由于性能原因,它听起来并不是一个特别有吸引力的想法,但据我所知,仍然可以设置SecurityManager。所以你可以设置自己的安全管理器并随时检查它们。但是,this discussion表示Android团队对基本库的质量不太有信心。 (我可能已经删除了所有检查以获得一些性能,但我现在感觉到过程安全的整个想法是一个简单,明确和错误的解决方案......)