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 签名, 是坏主意。此类做法中几乎任何错误都会导致灾难性安全失败。