登录不再弹签名窗:ERC-8019 的钱包自动登录白名单规则 图 1
登录不再弹签名窗:ERC-8019 的钱包自动登录白名单规则 · 图 1

登录弹窗的疲劳问题

用以太坊地址登录网站,走的是 EIP-4361 定义的以太坊登录消息:网站给一个随机数,请求你的钱包对一段写着域名、时间、有效期等信息的文本签名,验证方据此确认你控制这个地址,全程不上链、不花手续费。机制干净,代价是每个会话都要在钱包里读一遍全文、按一次确认。频繁使用的信任站点上,这个弹窗几乎总是被下意识点掉——安全研究里反复出现的警告是,习惯性批准比弹窗本身更危险。ERC-8019 就从这里出发:与其让人磨得麻木,不如把“每次都看”换成“一次定规矩,之后按规矩自动放行”。该提案目前处于评审阶段,比草案更进一步,但仍是建议而非强制。

一份策略长什么样

草案定义的自动登录策略是一条钱包本地记录,字段包括:精确匹配的域名、登录消息地址字段必须以其开头的前缀、允许链标识列表、资源地址的允许集合、一个可选的到期时间戳,以及一个针对硬件钱包未部署账户体验的选项。钱包对一条登录消息放行自动签名的条件被写成五条确定性规则:域名与策略完全相等;消息里的统一资源标识符以前缀规则开头;消息带链标识时必须在允许列表内;消息带资源清单时,其集合必须是允许集合的子集;策略设了到期时间时当前时间必须在到期之前。原文特意举了一个例子说明资源匹配的用意:如果网站在登录消息里顺带请求了钱包调用能力,自动登录策略会因资源集合对不上而拒绝放行,防止登录通道夹带执行授权。

只有钱包能改规则

这份标准刻意不定义任何让网站申请策略的接口。策略的创建、列举、修改、删除全部发生在钱包界面里,网站没有任何方式请求“给我这台钱包开个自动登录”。建议的实现路径是:钱包内置一批热门应用的默认策略,其余应用在用户首次正常签名登录后征得同意再建立策略,并且每个钱包都应提供一个总开关。验证层面的底线写得也很清楚:随机数唯一性、时间有效性、签名与域名绑定这些以太坊登录消息的标准校验一条都不能少,自动化只是替你把按确认键的动作省了,不是把验证省了。

白名单的三处风险面

安全考量与规则本身给出的风险清单值得逐条消化。一是前缀匹配的天然宽松:地址字段用前缀而不是全串匹配,策略作者把前缀写得太短,等于给同域名下的陌生用途开门,原文建议把前缀写得具体,例如精确到登录路径。二是框架页攻击面:策略应始终比对登录消息里的域名与页面顶层来源,否则自动签名可能在恶意页面内嵌的合法框架里被触发。三是名单的老化:策略没有到期时间就一直有效,用过一次的应用名单会随时间沉积,成为攻击者研究你习惯的地图。这三条对应的用户检查动作非常具体:定期打开钱包的授权与连接管理,看一眼自动登录列表,把不认识的、久不用的、地址前缀宽泛的逐条清理。

现状与使用纪律

支持这类自动登录的钱包目前仍是少数,更多产品的合并体验来自另一族接口——把连接和登录压进一次协商,思路可参考 一条通道完成连接:ERC-7846 的 wallet_connect 把授权与登录合成一次弹窗。如果你用的钱包实现了这条草案,三条纪律。第一,默认关:新装钱包提示开启自动登录时,先在少数确有高频刚需的站点上开,并设置到期时间让策略会自然过期。第二,看首次:第一次为某站点签登录消息时仍然读全文,尤其看链标识和资源字段,那一次签名的内容会成为未来策略的原型。第三,把它当成授权的一种:自动登录免除的是弹窗审查,不改变“这枚签名证明你控制该地址”的事实,因此与撤销授权、会话管理一样,属于需要定期盘点的资产权限。本文为机制说明,不构成任何投资建议。