跳到主要内容

8.7. Signing Large Amounts of Data at Once (一次对大量数据签名)

8.7. Signing Large Amounts of Data at Once (一次对大量数据签名)

避免一次对大量数据签名 (其中"大"取决于预期验证方)。特别是, 除非底层协议不要求, 否则接收方必须 (MUST) 缓冲整条待验证消息 (或足以重构它的信息, 例如压缩或加密版本)。

这是因为多数情况下处理未验证数据是不安全的, 而验证签名需要对整条消息做一次遍历, 最终至少需要两次遍历。

从 API 设计角度, 这意味着任何 Initialize–Update–Finalize (IFU) 验证接口都容易被误用。

修改 Ed25519 或 Ed448 签名以便仅用常量缓冲的 IUF 接口就能生成有效的 Ed25519/Ed448 签名, 是坏主意。此类做法中几乎任何错误都会导致灾难性安全失败。