首先,我在我的网站上为 OpenID 设置了一个私人代表,并将我的 SE 帐户指向我网站上的 URL;SE 不知道实际的 OpenID 提供程序端点,直到我的委托响应告诉它。
其次,在向 SE 等人进行身份验证时,我注意到如果我没有明确键入 https://... 它会使用 HTTP 而不是 HTTPS 发出请求。
第三,将我的 SE 帐户与我的 OpenID 端点关联后,我可以使用 HTTP 或 HTTPS 登录,尽管在关联帐户时使用了 HTTPS。
因此,这不会让我面临 MITM 攻击,攻击者只需修改来自我的 Web 服务器的响应以委托给他们自己的 OpenID 提供商,从而获得对我的 SE 帐户的访问权限吗?
注意:我不是在谈论 OpenID 提供程序的实际身份验证步骤,它确实使用 HTTPS 并在通过 HTTP 访问时重定向到 HTTPS,我说的是 SE 对我的委托的初始请求,SE 允许使用 HTTP 完成因为它们只存储从基域开始的 URL(省略协议和子域)以用于匹配帐户而不是完整的 URL。