Security 在域之间安全地发送用户名和密码
我们有一个网站www.domain1.com,注册用户的用户名/密码对存储在domain1_db中 我们将有另一个单独的域(www.domain2.com),如果用户尝试登录到domain2,用户名/密码将发送到domain1,并根据domain1_db进行检查,如果用户存在且密码为true,则将向domain2发送带有用户名/密码和布尔值(true或false)的响应 用于在域1和域2之间发送un+pw对时的安全性。我评估了3个选项: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对将对称加密)
- AES加密(密钥将在开始时通信,un+pw对将对称加密)
- RSA加密(域1和域2有它们的公钥/私钥对。un+pw将被签名和加密)
- 域1和域2的自签名ssl证书
- 在这种情况下,RSA是一种过激手段吗?在这种情况下,AES的安全性如何低于RSA
- 有什么样的漏洞需要考虑自签名证书?<李>
第二个问题得到了回答:能够说服domain2接受另一台计算机作为domain1的攻击者可以欺骗domain2将所有数据发送到此服务器;这是一个经典。在站点之间发送用户名/密码时使用HTTPS就足以确保凭据的传输安全 这里真正的问题是,为什么首先需要将密码发送回domain2?如果域2信任域1来验证用户名和密码,那么它所需要的只是结果(是否有效用户)以及一些额外的信息,比如用户名和电子邮件地址等。它不需要用户的密码 此外,域1不应以可以检索密码的方式存储密码。密码需要存储在表单中
更好的方法是使用为两个站点提供单点登录(SSO)的外部身份提供商,这样您就不必费心存储密码。缺点在于密钥和密钥交换。我假设您将为每个选择使用强键 如果您控制这两台机器,并且可以使用带外密钥交换(运动鞋网络上的拇指驱动器等),则对称加密(例如AES)将更快、更安全 非对称加密(例如RSA)在Diffie-Hellman密钥交换期间很弱,这就是为什么SSL不再安全,每个人都转向TLS的原因。然而,非对称加密解决了“我不能同时控制两台机器”的问题,所以我们容忍它的安全性稍差 自签名证书是最糟糕的选择,因为如果您不控制这两台机器,它将失败或抛出警告。如果您同时控制这两台机器,只需使用AES即可 另外,对于SSL和TLS,RSA仅被短暂使用。刚好足够交换一个对称密钥。在那之后,一切都是对称加密。你说,“注册用户的用户名/密码对存储在domain1_db中。”我希望你指的是盐哈希?