跳到正文
M5wallet
参与测试

安全

M5 Vault 究竟如何工作

本页解释的是机制,而不是宣称它很安全。凡是存在局限或取舍之处,都会写明。

签名仪式

通过信道传输的从来不是分片

签名是一个交互式协议。每一方用自己的分片计算消息、发送消息,并推导出最终签名。任何一方在任何时刻都不会传输自己的分片,完整密钥也在任何时刻都不存在。

你的设备share₁第二方share₂加密中继AES-256-GCM会话密钥已建立分片与完整密钥都不会经过此信道

两种保险库

第二份分片由谁保管,由你决定

两种情况下协议完全相同。不同之处在于第二方是谁,因而你所信任的对象也不同。

Fast Vault

第二份分片由 M5 的协同签名服务保管。它以 AES-256-GCM 加密存储,密码只有你知道;除非你在请求中提供该密码,该服务无法使用这份分片。

取舍:便捷,单台设备即可使用——但第二方由 M5 运营,因此签名依赖该服务可达。

Secure Vault

第二份分片由你自己的第二台设备保管。仪式在你的两台设备之间进行,M5 只运营在两者之间传递加密消息的中继。

取舍:签名不依赖 M5——但批准一笔交易需要你的两台设备都在手边。

把话说清楚

M5 能做什么、不能做什么

M5 无法

  • 转移你的资金。单份分片无法签名;Fast Vault 的分片还以你的密码加密,而该密码不在 M5 手中。
  • 重建你的密钥。协议从不将其组装,因此我们这边没有任何可供拼合的东西。
  • 替你找回保险库。这是自托管——不存在任何能恢复访问权限的客服流程。
  • 读取你的仪式流量。中继消息在两方之间端到端加密。

由你负责

  • 保管好你的保险库备份。签名需要两份分片;在没有备份的情况下失去访问权限,就意味着失去资金。
  • 你的 Fast Vault 密码。它用于加密服务器保管的那份分片,我们无法为你找回。
  • 你所用设备的安全。被入侵的设备可能诱导你批准并非本意的交易。
  • 你签署的内容。无论采用何种密钥机制,批准一笔恶意交易仍然是你批准的。

设备之上

协议之外

本地加密

敏感的本地存储使用 AES-256 加密。分片材料从不出现在日志或崩溃报告中。

隔离签名

密钥操作与硬件钱包通信运行在后台进程中,与钱包所渲染的任何页面或网页内容相隔离。

交易检查

在请你批准之前,交易会被解码并做风险检查;dApp 网址也会在建立连接前接受检查。

原生实现

门限签名库在 Android 与 iOS 上以原生模块形式提供,而不是 JavaScript。

我们不作的声明

M5wallet 尚未完成第三方安全审计,本站也不声称有过审计。它没有任何认证、保险或损失担保。上文所述的协议是一种经过充分研究的构造,但正确的构造一旦落到真实软件里,它仍然只是软件。请把测试版当作测试版对待,在测试期间不要投入超出你承受能力的资产。

协同签名服务、中继与钱包客户端都属于 M5 代码库的一部分。如果你在认真评估,请去读实现,而不是相信这个页面。