0

OpenID 的目标之一是抵御任何一家公司的失败。这听起来不错,但还有另一个问题:如果托管您的 ID 的站点出现故障,那么您的 ID 也会出现故障。我认为必须有一个完全抵抗失败的登录系统。

我的想法是这样的:我去一个网站,我必须登录。我给他们我的公钥。该网站向我发送了一些随机数据。我用我的私钥签署这些数据并将其发回给他们。如果签名有效,我就会登录。这样做的好处是我的 ID 只是我的公钥,所以我不依赖任何外部站点。

为了使用户不必记住那里的密钥,系统还可以选择允许类似 OpenID 的系统,其中我的密钥托管在某个服务器上,原始站点将我重定向到那里登录,并且该站点对数据进行签名并将其发送回原始站点,然后我已登录。此方法的工作方式类似于 OpenID,但允许我备份我的密钥,因此如果该站点出现故障,我可以使用另一个站点。

这是一个实用的系统吗?我只是在浪费时间吗?我不应该重新发明轮子而只使用 OpenID 吗?

4

6 回答 6

2

身份证,如 Windows Cardspace,是一个不错的选择,因为它们存储在您的计算机上并且可以备份。这在技术上称为身份元系统身份卡

这与 OpenID 等集中式身份服务不同。OpenID 系统的好处是每个人的身份服务器宕机的可能性都非常小。但是,单独地,每个用户都可能会遇到中断。

Microsoft 的 InfoCard 系统是一个很好的解决方案,虽然它不是很流行。

这不是一个新问题——电子邮件签名和加密是与私钥/公钥系统类似的解决方案。GPG 实际上确实有密钥库,您可以在其中发布您的公钥,以便人们可以验证您的签名。

如果您真的想避免身份服务器关闭的任何可能性(非常严格的要求),请使用 CardSpace 或其他一些用户自己拥有密钥的私钥/公钥系统,并且只需要证明他们有他们通过一些挑战 - 响应散列算法。

此外,cardspace 解决方案并不是严格意义上的微软产品,所有操作系统都有大量的应用程序。我相信这是一个公共标准。

于 2009-05-02T18:50:39.747 回答
1

这与HTTPS 的工作方式非常相似。

根据您的想法,您需要妥善保管您的私钥。如果您的计算机崩溃等怎么办。另外,从其他人的计算机登录怎么办?您是否相信将带有您私钥的拇指驱动器放入其他人的计算机中?

这也与军方对身份证的处理方式非常相似,他们将私钥嵌入到他们发给军人的芯片上。会员需要将自己的 ID 放入专用阅读器,并使用必须定期更改的唯一 ID 和密码登录。这是为了处理成员丢失他的 ID 并且其他人试图使用它的情况。

所以我想我的答案是肯定的,你有一个好主意,但也许你只需要进一步完善它。

于 2009-05-02T18:34:19.567 回答
0

使用 OpenID。它很容易设置,您不必调试它。

于 2009-05-02T18:29:27.300 回答
0

Windows CardSpace支持这样的东西。但它并没有真正起飞。

于 2009-05-02T18:34:18.600 回答
0

您的系统的问题是,如果您由于硬件问题或系统崩溃而丢失了密钥,您将失去访问您使用该密钥的站点的唯一途径。

于 2009-05-02T18:34:40.033 回答
0

我会说 OpenID 就足够了。

我发现您的系统存在一些问题

  1. 我需要有那个密钥才能登录。如果我出去了,并且没有我的文件或远程托管的文件,我就不走运了。我也可能无法在我的手机或其他设备上输入它。

  2. 您还需要保护密钥不丢失。这可能意味着密码保护密钥,这带走了系统的很多便利。

为了让 OpenID 更能抵抗 ID 提供者的失败,需要做的是让网站允许多个 OpenID 与一个帐户相关联,就像 SO 所做的那样。所以,你的想法可能最终是可行的,但我认为让它工作和采用的努力将比广泛采用允许多个 OpenID 的网站的工作要大得多。

此外,请查看此链接以获取 TLS 客户端身份验证的描述

于 2009-05-02T19:39:44.213 回答