身份验证系统是否需要ssl


Is ssl required for authentication system?

我正在开发一个视频网站。我的网站上没有任何交易。我有一个登录系统。

你认为我需要ssl作为登录系统吗?我甚至集成了facebook,所以大多数用户都会使用他们的facebook帐户登录。

像我这样的网站有ssl的替代方案吗?

您在没有使用SSL/TLS(或加密/保护您传递的信息机密性的等效系统)的情况下通过互联网传递的任何信息都必须被认为是完全泄露的,并且对任何人都可见。在您的情况下,这将包括用户名、密码和会话令牌,这可能允许攻击者学习您的UN/PW组合,以便他们可以长期模拟用户,以及会话令牌,以便他们充当登录用户。

你需要保护这个吗?绝对是一个冒险的决定。您的数据的敏感级别是多少?如果这种妥协发生,会有什么后果?如果你的用户的用户名和密码向全世界公开,他们会怎么想?由于用户倾向于在网站之间重复使用密码,因此如果发生这种情况,将对您网站的声誉(以及您的声誉)造成一些损害。

同样的事情也可能发生在基于Facebook的登录中。这使用OAuth,它只是从客户端发送到服务器的承载令牌。如果这是在SSL/TLS隧道之外发送的,则必须假设它已被破坏,并且根据承载令牌的工作方式,任何可以看到令牌并重用它并充当用户的人都必须这样做。

基本上,SSL/TLS是便宜的,无论是从受人尊敬和信任的CA的证书成本还是服务器功率/延迟方面。如果您有任何重要规模的用户群,那么使用SSL/TLS很可能是一个非常容易的决定。

我会认真考虑使用第三方OpenID或OAuth提供程序作为身份验证系统。处理登录有许多注意事项。用户通常会因使用弱哈希函数存储密码的自定义登录系统而面临风险。Gawker泄漏就是一个很好的例子,它使用DES来存储密码。非常可怕的事情,尤其是当你认为这是可以完全避免的时候。

显然,您需要SSL来通过网络传输用户名和密码。但实际上,用户是使用cookie值或会话令牌向您的应用程序进行身份验证的。这是真正的身份验证方法,也是OWASP a9要求该值永远不要溢出到不安全通道的原因。

如果你的网站有任何价值,那么就使用SSL来保护你的用户会话。如果你的网站是无用的,没有人关心有一个帐户,那么为什么要建立它呢?

许多人在不同的网站上使用相同的登录名,因此为了防止窃听,建议使用ssl。

如果这是你担心的价格,并且你没有在网站上进行任何金融交易,你可以尝试获得免费证书:https://www.startssl.com/?app=1