我有工作通过websocket发送用户登录详细信息。但是我知道有人嗅探数据包可以捕获密码,所以我想用wss代替。但是我现在明白,通过玩我的后端,首先需要一个证书才能正确连接,其次,如果我导致自签名证书警告,那么后面的websockets将使用wss,但那是对客户来说不是很好。通过谷歌搜索这个问题,我发现自签名证书将不够好。
我想要的只是为用户提供一种安全的登录方式..... 所以无论如何我现在认为最好不要一起使用wss。我可以使用传统的servlet进行登录,但这可能也需要https的证书,而且我不想在我的业务可能甚至没有那么成功的情况下开始向人们支付大量的证书。
我一直在考虑其他可以安全地发送用户密码的方法。一种方法可能是在浏览器中生成哈希。我知道我可以使用一些挑战之王以及发送到浏览器的盐,但我不确定如何做到这一点以及这将是多么安全。我有传统的登录使用salt,使用AES生成哈希。有什么建议吗?
我只是希望用户登录详细信息是安全的,我不想沿着证书路线走下去,这很烦人且不可靠。
答案 0 :(得分:0)
登录应始终通过HTTPS进行。不仅POST发送用户和密码,而且GET获取登录表单,因此客户可以确保获得正确的表单,并将他的信息发布到正确的位置。
如果您需要安全性,可以通过HTTPS或WSS发送登录详细信息。如果您使用自签名证书,您将提供传输安全性,但由于证书未由CA签名,因此客户端无法确定与之交互的服务器是否正确,这就是浏览器显示的原因警告。
因此,如果您希望为您的客户提供安全保障,您应该获得签名证书并将其用于HTTPS和WSS(您可以在某些地方每年获得10美元)。默认情况下,您在浏览器中执行的任何操作都是不安全的,首先是用户无法确定是否与正确的服务器进行交互而不是欺骗性服务器。
答案 1 :(得分:0)
发现这个博客很有帮助,即使它是针对raspberry pi和python / nodejs的。 http://simplyautomationized.blogspot.com/2015/09/5-ways-to-secure-websocket-rpi.html
关于安全性和身份验证的良好概念。我建议总是使用ssl而不是滚动你自己的加密。