【发布时间】:2017-03-26 19:18:54
【问题描述】:
我正在构建一个应用程序,其中在客户端使用密码来加密椭圆曲线密钥对的私钥。然后密码被bcrypted并发送到服务器(连同加密的私钥)和公钥。
最初,我在加密私钥之前使用 pbkdf2 对密码进行哈希处理,但由于我也在对密码进行 bcrypt,我可以使用 bcrypted 来代替吗?
根据https://medium.com/@mpreziuso/password-hashing-pbkdf2-scrypt-bcrypt-1ef4bb9c19b3#.sj4jcbynx 的答案不仅是肯定的,而且 bcrypt 甚至更好,因为它更具 GPU-ASIC 弹性。我有什么遗漏吗?
【问题讨论】:
-
DRAFT NIST 特别出版物 800-63B 数字认证指南建议将 PBKDF2 用于密码派生。
-
不清楚你在做什么。 1.bcrypt在哪里使用。 2. 如果您发送的是 bcrypted 密码,您将没有解密 EC 密钥的密码。 3.按执行顺序一步步修改问题:1.做这个,2.做这个,3.等等..
-
在我能理解的范围内,您是在询问是否可以将用于加密某些明文的密钥与从中派生的密文一起发送。不完全安全。
-
向服务器端发送 bcypted 密码的目的是什么?如果没有您的原始密码,即使使用 bcypted 密码,服务器也无法解密加密的私钥。服务器只能使用 bcypted 密码来验证输入密码的正确性。但是,使用原始密码,您可以在没有 bcypted 密码的情况下解密私钥。为什么要向服务器泄露重要信息?
标签: encryption cryptography bcrypt pbkdf2