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_Ssl Certificate_Aes_Rsa - Fatal编程技术网

Security 在域之间安全地发送用户名和密码

Security 在域之间安全地发送用户名和密码,security,ssl-certificate,aes,rsa,Security,Ssl Certificate,Aes,Rsa,我们有一个网站www.domain1.com,注册用户的用户名/密码对存储在domain1_db中 我们将有另一个单独的域(www.domain2.com),如果用户尝试登录到domain2,用户名/密码将发送到domain1,并根据domain1_db进行检查,如果用户存在且密码为true,则将向domain2发送带有用户名/密码和布尔值(true或false)的响应 用于在域1和域2之间发送un+pw对时的安全性。我评估了3个选项: AES加密(密钥将在开始时通信,un+pw对将对称加密)

我们有一个网站www.domain1.com,注册用户的用户名/密码对存储在domain1_db中

我们将有另一个单独的域(www.domain2.com),如果用户尝试登录到domain2,用户名/密码将发送到domain1,并根据domain1_db进行检查,如果用户存在且密码为true,则将向domain2发送带有用户名/密码和布尔值(true或false)的响应

用于在域1和域2之间发送un+pw对时的安全性。我评估了3个选项:

  • AES加密(密钥将在开始时通信,un+pw对将对称加密)
  • RSA加密(域1和域2有它们的公钥/私钥对。un+pw将被签名和加密)
  • 域1和域2的自签名ssl证书
我想评估这些选项:

  • 在这种情况下,RSA是一种过激手段吗?在这种情况下,AES的安全性如何低于RSA
  • 有什么样的漏洞需要考虑自签名证书?<李>
首先,如果您试图构建一个系统,其中多个web应用程序可以使用单个身份验证系统,那么您几乎肯定最好使用一个已建立的协议,如。几乎每种语言都有实现

其次,评估安全解决方案的唯一方法是理解上下文。有些解决方案总是不好的(例如,自行开发的加密算法),但没有任何解决方案总是足够的-拥有无限资源的攻击者可以破坏大多数解决方案

你的第一个问题得到了回答:如果两个网站都属于你,并且永远属于你,那么你可以使用对称加密


第二个问题得到了回答:能够说服domain2接受另一台计算机作为domain1的攻击者可以欺骗domain2将所有数据发送到此服务器;这是一个经典。

在站点之间发送用户名/密码时使用HTTPS就足以确保凭据的传输安全

这里真正的问题是,为什么首先需要将密码发送回domain2?如果域2信任域1来验证用户名和密码,那么它所需要的只是结果(是否有效用户)以及一些额外的信息,比如用户名和电子邮件地址等。它不需要用户的密码

此外,域1不应以可以检索密码的方式存储密码。密码需要存储在表单中


更好的方法是使用为两个站点提供单点登录(SSO)的外部身份提供商,这样您就不必费心存储密码。

缺点在于密钥和密钥交换。我假设您将为每个选择使用强键

如果您控制这两台机器,并且可以使用带外密钥交换(运动鞋网络上的拇指驱动器等),则对称加密(例如AES)将更快、更安全

非对称加密(例如RSA)在Diffie-Hellman密钥交换期间很弱,这就是为什么SSL不再安全,每个人都转向TLS的原因。然而,非对称加密解决了“我不能同时控制两台机器”的问题,所以我们容忍它的安全性稍差

自签名证书是最糟糕的选择,因为如果您不控制这两台机器,它将失败或抛出警告。如果您同时控制这两台机器,只需使用AES即可

另外,对于SSL和TLS,RSA仅被短暂使用。刚好足够交换一个对称密钥。在那之后,一切都是对称加密。

你说,“注册用户的用户名/密码对存储在domain1_db中。”我希望你指的是盐哈希?