如何在 android KeyStore 中生成 KeyPair,受自定义密码保护
Posted
技术标签:
【中文标题】如何在 android KeyStore 中生成 KeyPair,受自定义密码保护【英文标题】:How to generate KeyPair in android KeyStore, protected by custom password 【发布时间】:2017-03-25 17:13:38 【问题描述】:我的应用程序使用指纹和 4 位密码(可由用户在应用程序设置中设置,这不是系统密码/模式/密码)授权。
有了指纹一切都很好,我的密码有问题。
我想做的是:
-
让用户从应用设置中设置 pin
在密钥库中为某些受输入 pin 保护的别名生成密钥对(这样,没有此 pin 就无法访问私钥)
将公钥发送到服务器以供将来签名验证
从服务器获取用户令牌并将其存储在本地存储中
然后在授权期间:
-
请求用户输入密码
通过输入的密码检索私钥
从本地存储中检索令牌
使用第 6 步中的私钥签署令牌
将其与签名数据一起发送到服务器
验证服务器上的签名,如果签名有效,则为用户打开会话。
我的问题是:如何生成受用户输入的密码保护的密钥对
附:对于fingerprint,此逻辑由以下人员处理:
KeyGenParameterSpec.Builder(KEY_NAME, KeyProperties.PURPOSE_SIGN).setUserAuthenticationRequired(true)
【问题讨论】:
您好,您找到解决方案了吗? 【参考方案1】:我会建议尝试使用这个帖子Use the android KeyStore to securely store arbitrary strings 帖子。
这篇文章涵盖了
在设备上生成、安全存储和检索加密密钥。
加密任意数据并将其保存在设备上。
访问和解密数据以供后续使用。
我希望它会有所帮助。
【讨论】:
以上是关于如何在 android KeyStore 中生成 KeyPair,受自定义密码保护的主要内容,如果未能解决你的问题,请参考以下文章