加密算法

时间:2011-03-19 12:01:07

标签: security encryption key p2p

我有一个P2P备份网络,其中对等方可以存储数据并在以后从另一个对等方检索数据。我可以采取哪些最好的安全措施,以便其他未创建数据的用户不会读取数据?我打算使用单键加密和数字签名,但我确定这是否是正确的方法。 在此先感谢您的帮助

4 个答案:

答案 0 :(得分:1)

对称密钥(单密钥)加密将起作用。但是,正确的做法有点棘手 - 请务必了解密码操作模式。您应该询问用户密码,并使用该密码来获取主加密密钥。那么你应该使用基于主密钥和块号的密钥加密每个数据块(你将数据分成块,对吧?)。

数字签名不会阻止窃听,但您仍应签署内容,因为您不能相信对方提供正确的内容。您应该使用MAC(消息认证码),因为您已经建立了对称密钥,并且用户是唯一需要验证签名的一方。

答案 1 :(得分:0)

如我所知,如果只是检索存储数据的创建者,则单个密钥加密机制应该足够,因为数据仅由该用户加密和解密,而无需密钥交换。

证书(或公钥/私钥)不是必需的,因为加密过程中不涉及其他用户。

还要考虑使用MAC功能(消息认证码)以确保不会修改存储的数据。

答案 2 :(得分:0)

这个问题很模糊,但无论如何这里都是:

每个对等体都会生成一个唯一的加密密钥 - 只有自己知道。当它需要存储数据时,它应该例如:用例如哈希数据来哈希数据。 SHA算法,连接数据和散列,加密,存储。这样可以在检索后对数据进行廉价的验证,而无需处理非对称算法。

总结:使用没有已知弱点的散列和对称加密算法,例如SHA-2和AES,避免例如: MD5和DES。不需要像RSA / DSA这样的非对称算法,而是使用嵌入式哈希进行签名。

答案 3 :(得分:-1)

破坏加密的主要方法,特别是在这种情况下,仍然是蛮力。在大多数情况下,它的效果非常好而且非常有效。

例如,要破解用于签署某个URL或md5哈希背后的密码的秘密令牌,您只需启动一堆Amazon EC2实例,只需支付它们所需的时间,并分发暴力攻击。大多数算法在GPU而不是CPUS上运行得更好,但它更方便,因为你可以更好地租用和共享CPU。

那是什么意思?理论上,如果您可以分发攻击,您可以在几分钟内进入任何密码或密钥保护帐户。在实践中,这通常不起作用,因为身份验证服务器限制了请求的数量,因此限制了您应用暴力的能力。

在这种情况下,听起来你完全将数据泄露给潜在的攻击者。

因此,如果您将文件存储在我的计算机上并且我想破解它们,我可以将它们分发到一个巨大的计算云(这只会让我花费一些时间来为这个短暂的工作量而烦恼)并破坏您的签名。

如果可以,即使长数字签名者也不安全。当然,所需的计算能力随着密钥的长度呈指数增长,但这还不够。

所以在介绍之后......那么还有什么方法呢?

在我看来,最好的方法是为每个文件生成一个唯一的签名,并将它们保留在客户端。不要使用共享签名。

因此,如果我通过fileA.zip发送到您的服务器,我会在我这边保留一个fileA.zip.key,这使我能够对其进行解密。通过这种方式,您可以破坏一个文件,但我的帐户没有被编译。

如果您为每个文件单独执行2048位密钥或某些操作,那么这应该非常安全。

你也可以考虑使用bcrypt,你可以故意减慢加密过程,使攻击更加困难。但请记住,这也会减慢你的愚蠢行为。但是,如果它的备份存储或其他东西只会带来相当大的安全性。