我正在处理客户端/服务器应用程序。我已经通过NIO连接了两侧,并且它们的连接由SSL保护。现在,我希望服务器对用户在客户端上输入的登录凭据进行身份验证。不幸的是,那里有大量矛盾的信息。
此线程Is it ok to send plain-text password over HTTPS?指出
标准做法是通过HTTPS发送“纯文本”密码。
这让我觉得我的情况也应该很好。
您通常要使用质询/响应协议
我希望应用程序尽可能安全。该连接已经受到TLS 1.2和SSL的保护,但是据我了解,这并不会使中间人攻击成为不可能,这使我想实施质询-响应身份验证。但这与我计划的另一种服务器端安全措施相冲突:salting。
这是我想象的包含质询-响应和盐析的协议必须是:
此协议有两个问题。
编辑:
问题2可以通过让服务器响应随机盐来解决,以防用户不存在,如Patrick Mevzek在评论中指出的那样。这样,即使是被黑客入侵的客户端也不会知道用户名或密码是否错误。