encryption - USB令牌PKI解密
问题描述
我正在寻找用于非对称解密目的的 USB 令牌解决方案。服务器使用定期轮换的数据加密密钥 (DEK) 对敏感数据进行加密,该密钥与加密数据一起存储,并使用 USB 令牌 (KEK) 的预分发公钥对其自身进行加密。
用户(Web 浏览器客户端)使用用户名和密码登录到单页应用程序。用户然后插入 USB 令牌,这将触发以下序列:
- 从服务器检索加密的 DEK
- 使用 USB 令牌私钥解密 DEK
- 使用 DEK 从服务器检索数据
我研究过Yubikey之类的解决方案,但它似乎更关注用户身份验证而不是密码服务。以便携式格式实现基于硬件的密码的正确产品是什么?昂贵的 HSM 是毫无疑问的,因为多个用户应该拥有一个便携式令牌的实例。此外,每个实例都应包含相同的私钥。
解决方案
好主意,但是您遇到了一些问题
使用 USB 令牌私钥解密 DEK
目前没有浏览器支持直接使用pkcs#11(智能卡或usb token keystore协议)解密。
浏览器可以使用存储的密钥对进行身份验证,仅此而已。(如果我遗漏了什么,请纠正我)。
虽然您可以使用一些本地实用程序(非网络)使用智能卡(gpg,openssl,...)进行解密
此外,每个实例都应包含相同的私钥。
大多数严肃的智能卡都允许生成新的私钥,但您不能导入自己的密钥材料(至少我拥有的那些)。因此很难创建多个具有相同密钥对的智能卡
你可以做的是为一组公钥加密 DEK
推荐阅读
- python - 点击网页抓取按钮
- r - 在df.y中的dateStart dateEnd上过滤df.x中的dateTime列加入2个数据框?
- c# - 在 Visual Studio 中查找和替换类似的扩展
- c# - 什么(如果有的话)取代了 EntityFramework Refresh 方法?
- azure - 如何在 Azure 中创建仅在指定时间范围内触发的指标警报?
- shell - 可以递归搜索具有特定后缀的文件并删除具有特定模式的所有文件中的所有行的命令行实用程序?
- python - 如何更改 PushButton 边框半径
- c# - REST API 中的 Thread.sleep 与 Task.delay
- web2py - 通过 CAS Consumer 登录时未执行 login_onaccept 操作
- python - 为什么多次运行 python 脚本时 CSV 文件中会添加空行?