OpenID 的目标之一是抵御任何一家公司的失败。这听起来不错,但还有另一个问题:如果托管您的 ID 的站点出现故障,那么您的 ID 也会出现故障。我认为必须有一个完全抵抗失败的登录系统。
我的想法是这样的:我去一个网站,我必须登录。我给他们我的公钥。该网站向我发送了一些随机数据。我用我的私钥签署这些数据并将其发回给他们。如果签名有效,我就会登录。这样做的好处是我的 ID 只是我的公钥,所以我不依赖任何外部站点。
为了使用户不必记住那里的密钥,系统还可以选择允许类似 OpenID 的系统,其中我的密钥托管在某个服务器上,原始站点将我重定向到那里登录,并且该站点对数据进行签名并将其发送回原始站点,然后我已登录。此方法的工作方式类似于 OpenID,但允许我备份我的密钥,因此如果该站点出现故障,我可以使用另一个站点。
这是一个实用的系统吗?我只是在浪费时间吗?我不应该重新发明轮子而只使用 OpenID 吗?