Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 在web应用程序中,SRP是SSL/TLS(服务器证书)的安全替代方案吗?_Security_Ssl_Meteor - Fatal编程技术网

Security 在web应用程序中,SRP是SSL/TLS(服务器证书)的安全替代方案吗?

Security 在web应用程序中,SRP是SSL/TLS(服务器证书)的安全替代方案吗?,security,ssl,meteor,Security,Ssl,Meteor,Meteor使用(SRP)对用户进行身份验证。Meteor文档没有进一步声明提供的安全级别,但我想知道SRP是否可以在不需要SSL/TLS的情况下提供安全性?SRP上的维基百科页面说明: 。。。窃听者或中间人不能获得足够的信息。 信息,以便能够暴力猜测密码,而无需进一步 与各方就每个猜测进行互动 我承认我对安全性知之甚少,但我找不到任何关于其使用的建议 非常感谢SRP仅用于交换密码。更准确地说,这纯粹是为了提供通信保证的双方都拥有相同的共享秘密,而不允许窃听者或中间人猜测共享秘密。这就是它的全部

Meteor使用(SRP)对用户进行身份验证。Meteor文档没有进一步声明提供的安全级别,但我想知道SRP是否可以在不需要SSL/TLS的情况下提供安全性?SRP上的维基百科页面说明:

。。。窃听者或中间人不能获得足够的信息。 信息,以便能够暴力猜测密码,而无需进一步 与各方就每个猜测进行互动

我承认我对安全性知之甚少,但我找不到任何关于其使用的建议

非常感谢

SRP仅用于交换密码。更准确地说,这纯粹是为了提供通信保证的双方都拥有相同的共享秘密,而不允许窃听者或中间人猜测共享秘密。这就是它的全部功能:双向身份验证,因此,如果/当(例如)我登录到服务器时,我知道该服务器确实是我想要登录的服务器,并且它知道我是一个密码正确的用户


但是,它甚至不尝试在双方之间创建加密连接,如SSL/TLS。虽然有人在监听时无法获得足够的密码信息来登录到我的位置(或模拟其他人登录的服务器),但它不会(单独)加密进一步的通信——除非您自己做的不仅仅是SRP,其他任何人仍然可以读取通过连接传递的所有数据。

我知道,我在这里的回答有点晚,但我决定补充一些说明。正如Jerry Coffin所说,SRP用于密码交换,证明双方都拥有一些共享的秘密,并且它本身不提供任何加密,但在握手过程中,双方生成相同的密钥,这些密钥稍后可用于其他一些算法的加密/解密,即AES-256。 但是如果你决定使用这种认证方法,你应该考虑这个:

  • 在用户注册期间,它以明文形式将其salt和验证器发送到服务器,所以攻击者能够对其进行暴力攻击或字典攻击。为了防止这种情况,您最好至少使用安全素数N=2048字节或更高的SHA256散列(在我的例子中,SHA512和N=8192似乎工作得足够快,但这是一个巨大的过度杀伤力)。当然还有一个强大的用户密码
  • 拥有验证器和salt的攻击者将无法在服务器上进行身份验证,但他可以将自己伪装成客户端的服务器。不过,他将无法获得钥匙,也无法建立MITM攻击。在大多数情况下,这对攻击者来说是非常无用的,但你永远不知道
  • 如果您计划在某种web界面中实现此协议,请注意它不会保护您的用户免受简单的网络钓鱼攻击。因为在浏览器中,发送密码之前需要JavaScript来保护密码,所以坏人只需向用户提供一个纯html表单,就可以将纯文本密码发送到任何他们想要的地方。因此无论如何,强烈建议使用TLS/SSL
  • 总之:SRP是一个非常好的附加安全层,它有助于保护用户密码,生成会话加密密钥,对客户端到服务器进行身份验证,并防止MITM攻击,但如果它位于TLS/SSL通道内,则更安全


    天王星将与你同在!;)

    为了补充Jerry Coffin的答案:SRP由TLS规范和一些TLS引擎支持。也就是说,如果你不想要证书,你可以使用TLS和SRP。是的,但它创建了一个共享的秘密,这是eves滴管所不知道的,更重要的是,钓鱼者也不知道的。这个秘密可以用来加密链接。这就是说,TLS可以对指向某人的链接进行加密,而你只是不知道你在和谁说话(假设没有最终用户可以验证URL在实践中是正确的)。