在桌面Java中,存在sun.security.mscAPI.SunMSCAPI cryptoprovIDer,我们可以使用它与KeyStore访问windows系统证书存储.
我知道Android上有类似的商店,但我找不到管理这些商店的方法(列出,添加,删除证书).
我发现的是:
1)使用KeyChain,但这需要通过ActivitIEs与用户进行额外的交互;
2)在桌面上使用KeyStore并直接加载存储文件,但这些文件的路径在所有设备上都不是恒定的.
还有其他我不知道的方法吗?
解决方法:
KeyChain是一个相对较新的补充.它仅适用于API 14(冰淇淋三明治)及更高级别. Nicolay Elenkov在Using the ICS KeyChain API有一篇很好的博客文章.
KeyStore是一个更新的补充.它仅适用于API 18(Jelly Bean MR2)及更高版本. Nicolay Elenkov在Credential storage enhancements in Android 4.3还有一篇很好的博客文章.
您可能也会对AndroID Developer’s Blog中的Unifying Key Store Access in ICS感兴趣.它告诉我们KeyStore自API 4(Donut)以来一直存在,但只有系统可以使用它,它只用于VPN机密(后来添加了Wifi).
直到最近,用户证书存储还有点破碎.要从商店中删除证书,您必须删除整个商店(甚至是您要保留的证书和私钥).见User key/cert management in ICS.
系统的证书存储区曾经存储在ROM中.这在Diginotar failure之后发生了变化,因为AndroID必须构建新的图像以删除受损的Diginotar根.鉴于如此多的 *** 作符不支持他们的设备,那里仍有数百万(可能是数十亿)有缺陷的设备.
如果您想要最吸引AndroID设备的东西,那么您可能需要使用自己的商店.也许Java Keystore或SQLciper将是一个不错的选择.只需确保数据库使用从用户输入的内容(如秘密)派生的密钥进行加密.将用户的秘密与存储在沙箱或KeyStore中的文件系统上的随机值相结合,以获得最大效果.
如果您不接受用户的输入,则会遇到“无人值守密钥存储”问题.这是一个没有解决方案的问题.例如,参见Peter Guttman的Engineering Security.
总结以上是内存溢出为你收集整理的java – Android上有任何系统证书存储吗?全部内容,希望文章能够帮你解决java – Android上有任何系统证书存储吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)