问题描述
以下登录过程安全吗?
- 在服务器上签署消息
- 发送给客户
- 使用元掩码签署消息
- 将签名发回
- 从签名和签名的消息中恢复帐户
- 使用恢复的地址作为 id
我在使用这个概念时遇到的最常见漏洞是什么?
解决方法
这个概念在非常高的层次上是有效的,但实现细节是关键。例如,考虑重放攻击,攻击者不应该能够使用先前签名的回复。还要考虑一个 mitm:服务器发送挑战,攻击者将其转发给客户端,客户端对其进行签名,然后将其发送给攻击者,现在攻击者可以验证和冒充受害者。这意味着它需要一个安全通道,其中客户端已经对服务器进行了身份验证(即 https)。等等,关于如何实施这一点有很多细节很重要。
另请注意,这与 webauthn 的作用有关。