首页 文章

为用户安全地生成RSA密钥

提问于
浏览
1

我有一个用户系统管理用户属性,哈希盐渍密码,RSA公钥和加密的RSA私钥(通过实际盐密码) .

RSA密钥是在用户注册期间生成的,或者密码被重置(通过用户管理员或忘记密码),因为私钥在没有密码的情况下基本丢失 .

目前,RSA密钥在客户端计算机上生成,使用其密码加密(在浏览器内存中存储),并发送回服务器以存储数据 .

但是现在,我想为RSA密钥生成创建另外两个选项 . 这两个都将在消息队列系统上工作,该系统将在本地系统上处理(通过cron),或者系统将消息发送到另一个服务器(通过对称加密通道),该服务器创建密钥并将其发送回存储系统 .

虽然这些方法是执行RSA生成的有效安全方法,但我目前的难题是如何保护该用户的计算私钥 . 使用密码保护私钥意味着需要密码,并且任何其他机制都要求密钥可用于代码,或者临时存储双方(用户和系统)可用的加密密钥 . .

我最初认为用用系统RSA密钥对存储用户密码是好的,并且当生成新密钥时,获取用户密码(并从商店中删除)并用于加密新私钥并存储它 . 与用户 . 但这要求系统可以访问其私钥,这将使黑客能够访问用户密码 .

如果将命令发送到单独的安全服务器(甚至物理上),则上述方法可能有效,因为如果这是唯一存储内部私钥的方法,那么只有在该服务器被黑客攻击时才能访问它 .

有没有人有任何关于如何处理和保护用户私钥的建议,即使黑客可以访问完整的源代码和数据库,也无法解密?

1 回答

  • 1

    我不打算评论您系统的任何安全方面 . 然而,在阅读你的私钥存储想法时,我被提醒了我前一段时间在查理考夫曼和Radia Perlman的server-side private key storage上读过的一篇论文 . 摘要笔记"...We propose protocols that are secure even if Alice’s password is guessable..." .

    请注意,该论文写于1999年,这意味着您应该四处寻找更多关于概念的最新分析和改进 .

相关问题