首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyCryptodome的带有密码的export_key安全吗?

PyCryptodome的带有密码的export_key安全吗?
EN

Cryptography用户
提问于 2021-02-15 19:30:33
回答 2查看 313关注 0票数 1

当导出具有PyCryptodome、information、PKCS#8和适当强密码的私钥时,导出的密钥是否足够安全,以放置通常不希望存储敏感信息的地方,如数据库或硬盘?

来自PyCryptodome.readthedocs.io

对于“DER”,使用了PBKDF2WithHMAC-SHA1AndDES-EDE3-CBC方案。执行下列操作:

  1. 使用Crypto.Protocol.KDF.PBKDF2()和8字节盐以及1000次Crypto.Hash.HMAC迭代,从密码短语派生出一个16字节的三元DES密钥。
  2. 私钥使用CBC加密。
  3. 加密密钥按照PKCS#8编码。
EN

回答 2

Cryptography用户

回答已采纳

发布于 2021-02-16 00:30:47

嗯,这有点安全。没有严重的问题,但有几个问题:

  • 3 DES -由DES密码三轮组成的密码。DES的密钥大小太低,只有56位,但是运行了三次(首先在加密方向,然后是解密方向,然后再次加密,因此缩略词"EDE")使密钥大小达到168位,尽管有效的密钥空间仅为112位,这是由于一种适用于这种结构的中间攻击。虽然3 DES是不推荐的,但它并不像DES那样被认为是易碎的。只是有更快、更安全的选择。3 3DES的另一个问题是它有64位的小块大小。这会引发严重的安全问题,因为更多的数据是用一个密钥加密的。由于私钥很小(大小仅以千字节为单位),所以小块大小不是问题。
  • 小盐-盐大小太小,只有8个字节(64位)。在实践中,这不太可能是一个严重的问题。攻击者需要建造一个非常大的彩虹表来攻击64位盐。在使用12位盐的日子里,用随机盐为散列制作彩虹表是可能的,但今天用64位盐就不行了。不过,我推荐128位。
  • 低PBKDF2迭代- PBKDF2是一个缓慢散列密码的函数,迫使任何试图破解哈希的人使用相同的慢函数。PBKDF2的1000次迭代并不多。它比直接使用密码的散列要好得多,但并不理想。最好至少使用100,000次迭代,甚至切换到高级内存--像Argon2这样的硬KDF。

总的来说,我会说它很可能足够安全,但它并不理想,如果我能帮上忙的话,我也不会用它。

票数 3
EN

Cryptography用户

发布于 2021-02-16 08:30:47

密码破解的发展非常迅速,所以一般来说,您应该始终质疑任何库的默认设置。

在这种情况下,我认为您可以使用export_key()函数,但是使用更现代的密码派生算法,比如scrypt:

代码语言:javascript
复制
key.export_key(pkcs=8, protection='scryptAndAES256-CBC', passphrase='my secret')

这仍然将使用默认的scrypt参数,这些参数可能仍然足够好(16000次迭代,块大小8,没有并行化)。

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

https://crypto.stackexchange.com/questions/88258

复制
相关文章

相似问题

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