我有一个P2P备份网络,对等点可以存储数据并稍后从另一个对等点检索数据。我可以采取哪些最好的安全措施,以避免其他用户未读取数据?我打算使用单密钥加密和数字签名,但我确定这是否是正确的方法。 在此先感谢您的帮助加密算法
加密算法
回答
对称密钥(单密钥)加密将工作。但是,正确的做法有点棘手 - 务必了解密码操作模式。您应该询问用户密码,并使用该密码派生主密钥。那么你应该使用基于主密钥和块编号的密钥来加密每个数据块(你正在将数据分成块,对吗?)。
数字签名不会阻止窃听,但无论如何您都应签署内容,因为您不能相信对方给您正确的内容。您应该使用MAC(消息认证码),因为无论如何您已经建立了对称密钥,并且用户是唯一需要验证签名的一方。
如我所知,如果只是检索存储数据的创建者,那么单个密钥加密机制应该足够了,因为数据仅由该用户加密和解密,而不需要一个重要的交易所。
证书(或公/私钥)不是必需的,因为没有其他用户参与加密过程。
同时考虑到使用MAC功能(消息认证码)的必要性,以确保所存储的数据不会被修改。
的问题是模糊的,但无论如何,这里有云:
每个节点生成一个唯一的加密密钥 - 只知道本身。当它需要存储数据时,它应该例如:用例如散列数据SHA算法,连接数据和散列,加密,存储。这允许在检索之后便宜地验证数据,而不必处理不对称算法。总结:使用哈希和对称加密算法,没有已知的弱点,例如SHA-2和AES,可避免例如SHA-2和AES。 MD5和DES。不需要非对称算法,如RSA/DSA,而是使用嵌入式哈希签名。
破解加密的主要方式,特别是在这种情况下,仍然是蛮力。它在大多数情况下工作得非常好,非常高效。
要破解例如用于在md5哈希值后面签署某个URL或密码的秘密令牌,您可以启动一堆Amazon EC2实例,只需付给他们所需的时间,然后分配蛮力攻击。大多数算法在GPU上运行得更好,而不是CPUS,但它更加方便,因为您可以更好地租用和共享CPU。
那么这是什么意思?从理论上讲,如果您能分发攻击,您可以在几分钟内将任何密码或重点保护帐户破解。在实践中,这大多不起作用,因为认证服务器限制了请求的数量,因此限制了你应用暴力的能力。
在这种情况下,您听起来像是在完全将数据泄露给潜在的攻击者。因此,如果您将文件存储在我的计算机上,并且我想破解它们,我可以将它们分发到一个巨大的计算云(这只会让我花费几个小钱来完成这个短小的任务),并且会破坏您的签名。
如果这是可能的,即使是很长的数字签名者也不是安全的。当然,所需的计算能力的数量随着密钥的长度呈指数级增长,但这还不够。
因此,在此介绍之后......那么要走的路是什么?
在我看来,最好的办法是为每个文件生成一个独特的签名,并将它们留在客户端。不要使用共享签名。
因此,如果我通过fileA.zip发送到您的服务器,我会在我身边保留一个fileA.zip.key,使我可以对其进行分辨。通过这种方式你可以破解一个文件,但是我的账户没有组合。
如果你做一个2048位密钥或somethig每个文件单独sotred这应该是非常安全的。
你也可以考虑使用bcrypt,你可以故意放慢加密过程,使攻击更难。但请记住,这也会减慢你的结局。但是如果它的备份存储或者仅仅是这样做会带来相当大的安全性。
-1:蛮力高效?您将经过验证的弱哈希算法(MD5)与完美的加密算法(如AES)混合使用。而且这个星球上还没有足够的计算能力来有效地强化现代哈希/加密算法,而这些算法没有固有的弱点。 – Erik 2011-03-19 12:16:17
我同意aes仍然安全。但蛮力并不关心算法。这就是为什么它被称为蛮力。当然,破灭一个MD5的论点比破除一个AAA的关键要容易得多,因为它的时间要长得多,但原则是一样的。 “一台每秒钟可以检测十亿次(1018)AES密钥的设备理论上需要大约3×1051年的时间才能耗尽256位密钥空间。”但很有可能发现keypae中缺少entrophy,就像ibms ssl实现和openssl一样。我只是建议不要为所有文件使用1个密钥来提高安全性。 – 2011-03-19 12:24:07
- 1. 加密算法
- 2. 加密算法
- 3. 加密算法
- 4. McEliece加密/解密算法
- 5. C#加密算法
- 6. J2ME加密算法
- 7. 加密算法iphone
- 8. 加密:RSA算法
- 9. 加密算法加密作业
- 10. 加密算法塞萨尔
- 11. ColdFusion的CFMX_COMPAT加密算法
- 12. 我的加密算法
- 13. 基本加密算法
- 14. 新的加密算法,SSH
- 15. 识别加密算法
- 16. C#RSA加密算法
- 17. 快速PHP加密算法?
- 18. 更改加密算法3.0
- 19. 加密/编码算法
- 20. 数据加密算法
- 21. 识别GSM加密算法
- 22. 制定出加密算法
- 23. 加密与Rijndael算法
- 24. iPhone:支持的加密/解密算法
- 25. 加密和解密使用Base64算法
- 26. 加密密码的最佳算法
- 27. 单向密码加密算法
- 28. 关于OpenLDAP的加密密码算法
- 29. 对称密钥加密算法
- 30. Glassfish 4中的密码加密算法
我强烈建议您在实施前仔细阅读加密和哈希处理方法 - 如果您不完全了解自己在做什么,可以使用很多方法制作可实施的解决方案。 – Erik 2011-03-19 12:32:01