|
|
1
4
您可以对密码进行反向工程。您要发送密码的SHA,而不是密码本身。制定自己的安全协议几乎从来都不是一个好主意。你不能使用SSL或等效的东西吗? |
|
|
2
3
以下情况如何:
|
|
|
3
2
这是一个相当可怕的协议。如果这是有人想让你实施的,拒绝。这类事情有现有的、经过审查的协议。如果这是一个你指出所有缺陷的游戏——好吧。
我确实错过了更多。 |
|
|
4
1
你说得对——如果你捕捉到挑战并(挑战XOR密码),那么提取密码就很容易了。 您需要在步骤3中使用正确的加密,而不是XOR。用密码加密挑战。 为了使攻击者的生活更加艰难,您可以在加密对象中添加随机数据:例如加密填充CHALLENGEPiding。服务器不在乎填充是什么,它知道在哪里寻找挑战,但这意味着攻击者不知道整个明文是什么。 |
|
|
5
1
正如其他人所指出的那样,你是对的。还要记住,当真实用户遇到网络问题(例如:DDOS)时,有人可能会拦截通信(3)并可能重新发送,然后冒名顶替者将登录,这通常足以更改密码(也就是说,许多系统不要求您在登录后提供密码进行更改)。 您可能需要考虑HMAC(密钥哈希消息身份验证码)。我在这里详细写了博客: http://blog.ciscavate.org/2007/09/creating-a-secure-webauth-system-part-1-hmac.html 下面我会做一个简短的总结。 HMAC是一种确保消息是由有权访问共享密钥的人生成的方法。HMAC使用某种单向散列函数(如MD5或SHA-1)来加密消息中的秘密。这将生成一个16-20字节的简短摘要,作为消息+秘密组合的指纹。当摘要与消息一起发送时,接收方(我们的服务器)可以使用相同的HMAC计算重新生成哈希,并将本地生成的摘要与消息附带的摘要进行比较。记住:服务器也有秘密,所以它有足够的信息来确认摘要。(这只考虑了验证消息来源的问题,但如果你使用不同的秘密,比如一组公钥,你可以使用相同的方法加密整个消息。) |
|
|
6
0
我这样做的方式如下:
数字签名在这里很重要,因为它是防止中间人攻击的开始。 |
|
|
7
0
正如其他人指出的那样,是的,这是一个糟糕的挑战-响应算法。 你可能想看看 Digest Authentication ,如HTTP所使用的。事实上,如果你的协议是基于HTTP的,你可以跳过编写自己的协议,直接使用或实现它。 |
|
|
8
0
公钥加密?使用服务器的公钥加密密码。 |
|
|
9
0
尽管推出自己的加密协议从来不是一个好的解决方案,而且我也不建议这样做。... 克服你面临的问题。.. F-一个函数,它接受密码和一个伪随机单调递增的值,并返回一个数字。例如哈希(哈希(密码)^时间戳)
亲切问候, Ashish Sharma |
|
10
0
我相信Diffie hellman是一个众所周知且可靠的密钥交换协议? |
|
|
xchrisbradley · 使用Zig签名对功能选择器进行编码 1 年前 |
|
|
Shirin Ebadi · 加载公钥字节作为DH密钥 1 年前 |
|
YoavKlein · 为什么jwt.io会给我私钥部分来填充? 1 年前 |
|
|
birb · RFC-6238 TOTP实现与示例不匹配 2 年前 |
|
|
Stefan N · 如何生成N个字符的所有字母数字组合[重复] 2 年前 |
|
|
xdivayze · 在线和离线客户端之间的打包密钥交换 2 年前 |