摘要

  • RFC 3965 把传真网关的外呼视作一项需要单独授权的动作,而不是所有邮件收件人都能继承的附带效果。
  • 它以“回复所有人”为重放威胁的假设案例:授权应绑定具体发件人与具体消息;RFC 并未记载真实攻击事件。

一个电子邮件地址指向的未必只是邮箱。在 RFC 3965 描述的模式中,它也可以指向 Internet 传真出站网关:网关收到邮件后,再拨打电话连接 Group 3 传真设备。于是,同一条业务路径包含两种不同的操作:一种是通过 Internet 邮件系统转发消息,另一种则可能占用电话资源并产生费用。

这条边界让日常邮件动作有了意料之外的后果。收到邮件的人点击“回复所有人”,新消息可能再次发给原收件人中的传真网关。如果网关沿用上一位发件人的授权,这封回复便可能触发另一通电话;但写回复的人,未必就是允许第一封传真发出的那个人。RFC 把这描述为一个非恶意的重放示例。这是威胁模型,不是某次传真真的被重复发送,也不是系统遭到入侵的事故记录。

差异从网关实际接收到的字段开始。RFC 要求电话号码和传真出站网关标识放在邮件传输字段中,例如 SMTP 的 RCPT TO。地址的本地部分由域名所指向的邮件传输代理解释。网关因此不是传真机地址簿里可复制的一项,而是决定这封邮件能否变成电话呼叫的服务。服务多位用户的网关可以作为邮件传输代理运行;只服务一位用户时,则更像用户代理。

邮件地址本身也不能证明是谁写了这封信。RFC 提醒,实际发件人可能与邮件头中的 From 或 Sender、以及 SMTP 信封中的 MAIL FROM 不同。SMTP 并不内置对作者身份的认证。网关可以先认证来源,再查自己的授权表;也可以按来源主机或网络过滤。但 RFC 说明,当时 Internet 协议并没有为此类服务定义标准授权方法。它提出的是必须守住的控制边界,而不是标准化、可互通的授权令牌。

具体规则是:授权应同时关联一个特定发件人和一封特定消息。这样,一次传真对应的许可才不会悄悄变成下一条消息的权限。收件人名单相同并不足够。回复或许保留了原来的地址,却换了作者、内容、目的和时间。对话连续,不代表授权也连续。

同一边界还会泄露另一类信息。拨号所需的资料——例如电话卡授权号码——可能编码在地址参数里,最终印到传真封面。RFC 建议给发件人一种避免披露的方法,同时说明当时尚无标准保护机制。它也要求传真接收方获得足以追查来源的信息;单靠 From 或 MAIL FROM 不够。授权、保密与责任追溯彼此有关,却不能互相替代。

故障通知也必须区分层次。SMTP 中继失败时,应产生失败通知,最好采用 DSN(投递状态通知)格式;传真设备无法处理 TIFF 则是另一个问题,其通知方式由本地决定。邮件成功中继,不等于传真已打印、有人看过或某人确认接收;退信也不证明传真端的最终结果。规范描述的是数个阶段,而不是一个端到端收据。

RFC 3965 的历史意义,在于它揭示了邮件对话与操作权限之间的错位:收件人列表可以保留下来,而每封新消息的授权关系已经不同。网关不能仅凭传真地址被复制,就推定拨号许可仍然有效。它必须判断授权属于谁、对应哪条消息。规范记录了这个设计问题,却没有测量现实中的网关有多常遇到它,或采用了何种方案。

来源:RFC 3965、RFC 2305、RFC 3191、RFC 3192、RFC 3461、RFC 3464、RFC 5321、RFC 5322、RFC 3949、RFC 2306。