我正在寻找一个已经建立的安全机制,用于在客户端和服务器端密码散列之外应用客户端密码散列。客户端可以是Web应用程序或移动应用程序。客户端和服务器之间的通信使用HTTPS。服务器应该使用bcrypt或类似的安全密码散列算法。
现在,我不想发送未加密的密码从客户端到服务器,以防止针对用户的内部攻击。我希望确保我们的管理人员都无法获得原始密码,因为-正如我们所知道的那样-大多数人会重复使用他们的密码在多个网站上或使用密码方案来推导出易于记忆的密码。
此外,我想在身份验证协议中实施另一种额外的两因素安全层,该层利用存储在客户端上的秘密以进一步增强整体安全性。
是否有任何已发布和验证的机制可用于此情况?
编辑 在我的情况下,恶意管理员无法控制应用程序的代码。进行身份验证并提供敏感数据的服务器是REST服务器。应用程序代码由不同的服务器(对于Web应用程序)或通过AppStore(对于移动应用程序)交付。我还在考虑攻击者仅具有与连接HTTPS服务器和应用程序服务器的内部网络段的只读访问权限的情况。在大多数实际设置中,SSL终止是在专用服务器上完成的。
现在,我不想发送未加密的密码从客户端到服务器,以防止针对用户的内部攻击。我希望确保我们的管理人员都无法获得原始密码,因为-正如我们所知道的那样-大多数人会重复使用他们的密码在多个网站上或使用密码方案来推导出易于记忆的密码。
此外,我想在身份验证协议中实施另一种额外的两因素安全层,该层利用存储在客户端上的秘密以进一步增强整体安全性。
是否有任何已发布和验证的机制可用于此情况?
编辑 在我的情况下,恶意管理员无法控制应用程序的代码。进行身份验证并提供敏感数据的服务器是REST服务器。应用程序代码由不同的服务器(对于Web应用程序)或通过AppStore(对于移动应用程序)交付。我还在考虑攻击者仅具有与连接HTTPS服务器和应用程序服务器的内部网络段的只读访问权限的情况。在大多数实际设置中,SSL终止是在专用服务器上完成的。