在允许多个签名的 Android 服务上实现签名级安全性
我目前正在开发一个应用程序,其中包含相当多的个人用户信息 - 例如Facebook联系人等...现在,我希望能够做到(并且已经非常有效地完成)的一件事是使用Android的内置进程间通信协议(AIDL)将应用程序的某些部分开放给“第三方”应用程序。目前为止,一切都好。
问题是:由于我们参与了处理相当多的个人信息,因此我们必须非常小心谁可以访问和无法访问它;具体来说,只有“受信任”的应用程序才能做到这一点。因此,执行此操作的自然方法是在 AndroidManifest 中使用自定义权限.xml文件,我们在其中声明服务。我的问题是这样的:我希望能够制定签名级别的保护(类似于正常的“签名”权限级别),但有一点问题:
我不仅希望使用我们的内部签名签名的应用程序能够访问服务。我希望能够在运行时构建一个“可信签名”列表(或者如果有更好的方法,那么也许在其他时间?)能够根据这个可信密钥列表检查传入的请求。
这将以与我认为的正常“签名”权限级别相同的方式满足安全约束 - 只有“可信密钥列表”上的程序才能访问服务,并且密钥很难欺骗(如果可能的话?) - 但额外的好处是,我们不必使用我们内部团队的密钥对每个应用程序进行签名。
目前在Android中这可能吗?如果是这样,是否有任何特殊要求?
谢谢