【问题标题】:Android: Replacement for missing Security architectureAndroid:替换缺少的安全架构
【发布时间】:2012-11-17 17:51:40
【问题描述】:

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

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

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

另外,有没有办法阻止 I/O 访问,即基于每个线程?

【问题讨论】:

    标签: java android security osgi apache-felix


    【解决方案1】:

    沙盒中的沙盒!出于性能原因,这听起来不是一个特别有吸引力的想法,但据我所知,仍然可以设置 SecurityManager。因此,您可以设置自己的安全管理器并在检查时进行检查。但是,this discussion 表明 Android 团队对基础库的质量不是很有信心。 (我可能会删除所有检查以获得一些性能,但我现在觉得进程内安全的整个想法是一个简单、清晰和错误的解决方案......)

    【讨论】:

    • 嗨,感谢您的回复,但我不确定这是否真的有效,因为使用 System.setSecurityManager(sm) 会导致 SecurityException 并且 System.getSecurityManager() 将始终返回 null在安卓中。还是你的意思是别的?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 2018-10-03
      • 2012-04-03
      • 2016-02-03
      • 1970-01-01
      • 2017-02-06
      • 2020-03-17
      相关资源
      最近更新 更多