gpt4 book ai didi

python - 基于字符串的协议(protocol)安全基础

转载 作者:太空狗 更新时间:2023-10-30 00:58:03 25 4
gpt4 key购买 nike

我不确定如何表达这个问题,所以如果它与其他问题重复,请提前致歉。

我想检查一下我是如何保护我的基于扭曲的应用程序的,并认为我在这方面做得很好,但我已经十多年没有编写任何使用原始或托管套接字的东西了。

认证交易: 客户端连接并立即发送回一个包含 16 个字符的十六进制字符串的质询响应。 客户端获取用户名和密码,密码转换为 sha1(salt + sha1(password)),凭证作为 { username, password } 发送回服务器。在服务器端,身份验证执行标准查找模式(如果用户存在并且密码等于输入,则授予)。

如果用户和客户端之间的连接丢失,协议(protocol)类将自己标记为脏并断开与用户对象的连接。在此之后的任何时间,要再次访问用户对象,客户端将不得不使用新的盐重复身份验证过程。

我错过了什么吗?对于基于字符流的协议(protocol),是否有更好/更安全的方法?

最佳答案

您描述的协议(protocol)解决了一种攻击,即重放攻击。但是,您很容易受到 MITM 攻击。当攻击者进入协议(protocol)时,TCP 连接不会断开。此外,可以嗅探通过该系统传输的任何内容。如果您在咖啡馆使用无线网络,该地区的每个人都将能够嗅探传输的所有内容,然后对经过身份验证的 session 进行 MITM。另一点是 sha1() 被证明是不安全的,你应该使用 sha256 来处理任何与安全相关的事情。

永远不要重新发明轮子,尤其是在安全方面。

使用 SSL!每个人都使用 SSL,它具有久经考验的安全性,这是您无法构建的。 SSL 不仅解决了中间人攻击,而且您还可以使用证书而不是密码来验证客户端和服务器,从而使您免受暴力破解。在攻击者可以暴力破解 2048 位 RSA 证书之前,太阳会燃烧殆尽。父亲更多,您不必担心夜猫子会嗅探传输。

请记住,OpenSSL 是免费的,生成证书是免费的,证书的颁发也是免费的。虽然您想要签署证书的唯一原因是您想要实现 PKI,但这可能不是必需的。客户端可以硬编码服务器的公钥来验证连接。服务器可以有一个客户端公钥数据库。该系统将是自包含的,不需要 OCSP 或 CRL 或公钥基础设施的任何其他部分。

关于python - 基于字符串的协议(protocol)安全基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2155509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com