我正在考虑为我的域安装SSL / TLS。有两个问题一直困扰着我:
是否存在https连接可以回退到http的情况?因此,对于例如如果我的ajax看起来像这样
$.post("https://foo.com", function(){
});
这有可能改变为
$.post("http://foo.com", function(){
});
即使这样,我的域名仍可在http://foo.com访问?
接下来我已经阅读了大量有关使用SSL / TLS的内容,从我所看到的内容看起来相当准确,假设如果启用此功能,即使我以纯文本形式发送用户凭据,它仍然是安全(当然会有加密盐和服务器上的所有内容)。这在多大程度上是正确的,并且会在客户端上创建哈希,然后通过https发送它更安全吗?
更新:如果通过SSL发送明文足够安全,那么使用cnonce之类的东西究竟是什么意思?这不仅仅是客户端上不必要的开销吗?
答案 0 :(得分:1)
不,HTTPS永远不会自动回退到HTTP。这将需要用户的慎重行动。如果您只是通过将其URL放入地址栏来访问网页,这很容易;表格提交更难。
是的,通过SSL发送纯文本很好。实际上,发送散列密码实际上并没有真正提高安全性 - 如果有人设法嗅探连接并获得散列密码,那么他们只需要能够登录该站点。它有一个小优势:如果用户在多个站点使用相同的密码,那么学习一个站点的哈希密码并不能帮助他们进入另一个使用不同(或没有)哈希的站点。由于客户不知道盐,因此发送盐渍哈希是不可行的。
cnonce增加了额外的保护。如果某人设法破解了SSL加密,那么cnon会阻止他们从中获取可用的密码。这基本上解决了我上面提到的关于为什么发送散列密码没有帮助的观点:你需要的是会话之间的变化,而cnonce提供了这个。
请参阅https://security.stackexchange.com/questions/3001/what-is-the-use-of-a-client-nonce