Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 密码存储和安全密码传输_Security_Passwords_Password Protection_Password Encryption - Fatal编程技术网

Security 密码存储和安全密码传输

Security 密码存储和安全密码传输,security,passwords,password-protection,password-encryption,Security,Passwords,Password Protection,Password Encryption,我正在开发一个系统(基于PHP,但这并不重要),该系统将用户密码保存在数据库中。但是,在安全性方面,我需要考虑如何保护密码并确保密码传输机制的完整性 我选择了保护数据库中用盐散列的密码,但在将密码从浏览器传输到服务器(将用于非安全连接)方面,我不确定如何检查它 所以我的问题是,有没有人知道有什么安全机制可以让客户端发送他们的密码,然后可以将其与DB(使用salt)进行比较除了客户端浏览器内存之外,任何地方都没有明文密码?整个行业都是通过SSL通道以明文形式发送密码 也就是说,您必须确保登录页面及

我正在开发一个系统(基于PHP,但这并不重要),该系统将用户密码保存在数据库中。但是,在安全性方面,我需要考虑如何保护密码并确保密码传输机制的完整性

我选择了保护数据库中用盐散列的密码,但在将密码从浏览器传输到服务器(将用于非安全连接)方面,我不确定如何检查它


所以我的问题是,有没有人知道有什么安全机制可以让客户端发送他们的密码,然后可以将其与DB(使用salt)进行比较除了客户端浏览器内存之外,任何地方都没有明文密码?

整个行业都是通过SSL通道以明文形式发送密码

也就是说,您必须确保登录页面及其加载的所有资源都是通过HTTPS提供的。这将保护传输中的密码。一旦密码到达另一端,您就可以散列并与数据库中的密码进行比较

发送散列或其他深奥的解决方案(尊重“仅在浏览器内存中使用明文的密码”)除了用一个秘密交换另一个秘密外,什么都做不了——攻击面保持不变。
您可以在客户端混淆密码并添加一个基于时间的组件,但由于所有逻辑都必须在客户端,因此可以反转,因此您只需添加“模糊性”(通过模糊性实现安全性是不值得的).

在整个行业中实现这一点的方法是通过SSL通道以明文形式发送密码

也就是说,您必须确保登录页面及其加载的所有资源都是通过HTTPS提供的。这将保护传输中的密码。一旦密码到达另一端,您就可以散列并与数据库中的密码进行比较

发送散列或其他深奥的解决方案(尊重“仅在浏览器内存中使用明文的密码”)除了用一个秘密交换另一个秘密外,什么都做不了——攻击面保持不变。
您可以在客户端混淆密码并添加一个基于时间的组件,但由于所有逻辑都必须在客户端,因此可以反转,因此您只需添加“隐蔽性”(通过隐蔽性实现安全性是不值得的)。

是的,这就是我的想法,但我刚刚写了一个答案,使用RSA提供了相当多的安全性,但在理想情况下,我希望在您自己的代码中使用SSlimpenting crypto是一个非常非常糟糕的主意。最好的情况是,您最终获得了通过SSL运行服务所需的40-50美元的安全性。在更糟糕的情况下,您最终会创建一个可怕的混乱和易受攻击的服务。是的,这正是我所想的,但我刚刚写了一个答案,使用RSA提供了相当多的安全性,但在理想的世界中,我希望在您自己的代码中使用SSlimpenting crypto是一个非常非常糟糕的主意。最好的情况是,您最终获得了通过SSL运行服务所需的40-50美元的安全性。在更糟糕的情况下,您最终会造成可怕的混乱和易受攻击的服务。