我正在创建一个应用程序,该应用程序使用用户每次登录应用程序时创建的密钥加密数据。但是,有时会通过需要加密的BroadcastReceiver接收数据,但用户没有登录,因此加密密钥不可用。安全性是非常重要的,因此使用存储在代码中的密钥来加密数据,直到用户下一次登录是不可能的,就像将一个密钥存储在应用程序DB中一样,尽管它位于应用程序沙箱中。我一直在搜索Android文档,并获得API的提示,以解决这种情况,但还没有找到明确的解决方案。有人知道这个问题的通常解决办法吗?我预计它会在软件开发中大量出现。
发布于 2010-08-21 08:47:57
让我看看..。
设置:创建一个RSA。加密私钥。存储未加密的公钥。
广播接收:生成一个随机的AES-128密钥/IV。用RSA公钥加密密钥。用密钥/iv加密付费广告。存储加密密钥、iv和加密的有效载荷。
登录:解密私钥。使用私钥解密AES密钥。使用AES密钥解密有效负载。
因为这是我想到的第一个想法,我不能担保它的安全特性。
我也不知道你在寻找什么安全属性--你想要防御什么攻击?为什么攻击者不能直接拦截广播呢?你不担心它在其他进程的记忆中徘徊吗?
发布于 2010-08-20 09:14:10
有两个想法:
我不知道你的应用程序做什么,所以这只是猜测什么是可能的.
https://stackoverflow.com/questions/3529524
复制相似问题