首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在域间安全地发送用户名和密码

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

Stack Overflow用户
提问于 2015-11-23 12:58:39
回答 3查看 61关注 0票数 0

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

我们将有另一个独立域(www.domain2.com),如果用户尝试登录到domain2,用户名/密码将发送到domain1,与domain1_db核对,如果用户存在且密码为真,则将使用用户名/密码和布尔值(真或假)将响应发送给domain2。

为了un+pw对的安全性,同时在domain1和domain2之间发送它。我已经评估了三种选择:

  • AES加密(密钥将在开始时传递,un+pw对将被对称加密)
  • RSA加密(domain1和domain2有它们的公钥/私钥对)。un+pw将被签名和加密)
  • 用于domain1和domain2的自签名ssl证书

我想评估这些选择:

  • 对于这种情况,RSA是否过分呢?在这种情况下,AES如何比RSA更不安全?
  • 使用自签名证书需要考虑哪些漏洞?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-23 13:38:02

首先,如果您试图构建一个多个web应用程序可以使用单个身份验证系统的系统,那么几乎可以肯定地说,最好使用像OAuth这样的已建立的协议。几乎每种语言都有实现。

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

这里回答了您的第一个问题:如果两个网站都属于您,并且始终属于您,您可以使用对称密码。

第二个问题是这里:能够说服domain2接受另一台计算机作为domain1的攻击者可以欺骗domain2将所有数据发送到该服务器;这是一个经典的“中间人”攻击

票数 1
EN

Stack Overflow用户

发布于 2015-12-04 06:08:25

弱点在于钥匙和钥匙的交换。我假设您将在每个选项中使用强键。

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

非对称密码(例如RSA)在Diffie-Hellman密钥交换过程中很弱,这就是SSL不再安全的原因,而且每个人都已经转移到TLS。然而,非对称密码解决了“我不能控制两台机器”的问题,所以我们容忍它稍微不那么安全。

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

对于SSL和TLS,RSA只被简单地使用。只需要足够长的时间来交换对称密钥。在那之后一切都是对称密码。

票数 1
EN

Stack Overflow用户

发布于 2015-11-23 19:36:37

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

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

此外,domain1不应该以可以检索密码的方式存储密码。密码需要存储在盐渍杂碎表单中。

一种更好的方法是使用外部身份提供者为两个站点提供单点登录(SSO),因此您根本不必费心存储密码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33871712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档