1
1
基本上,您希望在HTTP上实现SSL;这在某种程度上是可行的,但永远不会像实际情况那样好。 能够来回发送加密数据只是问题的一半。问题的另一部分是确保您实际上是在与服务器交谈(想想中间人攻击)。
如果生成的令牌从不重复,攻击者就不能仅仅重新发送相同的加密消息,也不能解密消息以找出所有内容。 |
2
3
你可以用 HTTP Digest Authentication . 大多数浏览器、服务器和各种库都已经支持这一点。 编辑: 如果您真的想使用一些没有SSL/TLS的公钥加密,您可以看看 HTTPsec 如果你真的想发明你自己的身份验证方案,你应该注意到你的标签的加密/解密是错误的(不确定这是否是一个打字错误,或者我没有正确地阅读图表,这看起来像是你在做的) 环境温度(t,A) 在服务器端):
|
3
2
如果将RSA与适当的填充机制(如OAEP)结合使用,它就不易受到已知的明文攻击。所以没必要回避这个问题。 一个陌生人走了过来,声称自己是鲍勃。为了证明这一点,他们证明他们知道一个只有真正的鲍勃知道的秘密。在公钥密码学中,秘密是 钥匙。 在您的方案中,首先必须获取Bob的公钥,并确保它确实是Bob的,以便稍后可以使用它来加密挑战。如何引导这个过程? 现在“Bob”正确地响应了您的挑战,并为他的请求添加了一些说明。你怎么知道中间的那个女人,伊芙,没有砍掉鲍勃真正的指令,而代之以她自己的指令?
如果你真的要这么做,你应该想办法 数字签名 |
4
1
假设您的客户机和服务器在此交换开始之前交换了一个公钥,您可以执行以下操作:
包含URL是为了防止针对不同资源的重播攻击。通过在加密数据中包含时间戳,可以获得更高的防止重播的安全性。
编辑:删除提及AES128。 |
5
0
正如Bruno所说,您描述的是HTTP摘要,它非常安全。但如果你仔细看的话,就会发现环洞。不是很大。一定要有人在听,等着拿起握手中的钥匙,才能破门而入。如果安全是一个问题,你必须使用https和让路给它。这就是为什么它在那里。https有证书可以使握手在一开始就抵抗窃听者。 |
6
0
首先,HTTPS做的不仅仅是加密。它还可以防止活动的MTIM攻击并保护您的会话id。如果您只是泄漏会话id,则密码没有意义。这是OWASP A9的一部分。 JavaScript solution . 对会话id和密码进行加密。它使用Diffie-Hellman密钥交换,类似SSL。就连作者也说,它不是https的好替代品,但总比什么都没有好。我甚至不会考虑使用https以外的任何东西。 |