首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KeyStore PasswordProtection场

KeyStore PasswordProtection场
EN

Stack Overflow用户
提问于 2019-01-27 09:34:51
回答 1查看 203关注 0票数 1

我正在使用JAVA类来存储我的用户的KeyStore令牌,比如Dropbox。

它可以正常工作,但我担心它的安全性,因为我对它的存储方式和存储位置知之甚少。

http://www.howtobuildsoftware.com/index.php/how-do/ZPR/c-android-xamarin-monodroid-sqlcipher-correct-way-to-store-encryption-key-for-sqlcipher-database

我的代码是基于上面的示例,没有提供的一件事是为什么密码字段是空的。

所以我的问题是,这应该是无效的吗?或者它应该包含一个对我的应用程序来说是独一无二的密码,如果是后者,我将在哪里保护我的应用程序密码,因为我在这里有点像鸡和蛋的场景。

尼克。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-27 10:51:00

没有提供的一件事是密码字段为null的原因。

实现中的问题变成了应该使用什么“密码”。

我在这里有点像鸡和蛋。

如果在应用程序中硬编码了密码,那么最好使用null (IMHO).但是我已经和安全研究人员合作过,并且看到了他们的工具包和为方法调用提供的硬编码密码对于他们破解不到2分钟的工作,所以我可以想象一个黑客可以在更短的时间内获得它,就像“密码”是通过一个非安全的通道从Web中动态检索的一样。

备注:我不是说使用空/空密码是可以的,我是而不是,继续阅读。

提示用户输入密码(以滑动模式、密码、密码等形式)在每次使用keystore之前,将使这种实现方式更加“安全”,但是,只有您和您的用户才能为应用程序的用例确定该实现方式的代价是什么。就我个人而言,我喜欢当我的银行应用程序提示我输入一个引脚,并通过短信和另一个密码进行验证,但那可能只是我。

FYI:对于大多数黑客和研究人员来说,只需一个应用程序和密码就能为多个站点盗取用户的OAUTH令牌将是相当诱人的。

但我担心的是安全问题

而且你应该这么做。

你所指的国际水文学组织的实施非常薄弱。至少,它应该检查并使用(AndroidKeyStore),如果应用程序至少运行在API级别18上。如果应用程序只支持18+ (或运行在18+设备上),则不应该维护自己的密钥存储文件(同样是IMHO.但是我无法想象一个安全研究人员会有异议,但是如果他们认为你应该的话,我很乐意听听他们的观点)。

使用keystore提供程序将您和您的应用程序从创建/维护/保护密钥存储文件的过程中移除,就像操作系统一样,它使用用户的令牌/密码/pin/lock模式/等等.才能确保真正的污秽物本身。没有鸡蛋问题了。

当然,这不包括您的应用程序检查根设备执行,恶意应用程序安装,当前的安全漏洞测试,非补丁和/或缺失的安全补丁,等等。但至少这是个开始。(我在一些非常安全的开发环境中工作过)。

另外,实现并不是检查安全的硬件;KeyInfo.IsUserAuthenticationRequirementEnforcedBySecureHardware,等..。

Google有一些很好的密钥库培训材料,涵盖了诸如keystore提供商这样的主题:

https://developer.android.com/training/articles/keystore#java

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54386766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档