摘要
- RFC 1492 于 1993 年 7 月以 Informational 文档发表;作者因版权问题无法取得已经存在的 TACACS 原始规范,这正是重写说明的主要原因。
- Cisco 的简单版本实现只是“被认为”与原始协议兼容;扩展版本和明尼苏达大学案例提供了有限的运行证据,不能证明原文、普遍采用或互联网标准地位。
- nonce 只能把 UDP 回答与未决请求对应起来;daemon 的接受决定、终端服务器的执行、目的连接和记账各自需要独立凭据。
通常,技术文档努力让自己显得确定。RFC 1492 反其道而行:它公开了证据缺口。原始 TACACS 规范存在,但作者说自己因版权问题无法获得它。于是,他与 Cisco Systems 合作,根据一份被认为兼容的简单版本实现整理出可公开检查的说明。
“被认为兼容”不能缩写成“已经证明相同”。代码可以回答一组输入会产生什么字段和分支,却不能告诉读者遗漏的选项是不是从未存在;一个行为究竟是原设计、产品扩展,还是长期保存下来的缺陷。RFC 甚至预先说明,若日后找回原始规范,本文某些部分可能会被确认不正确。
这份克制也体现在文档状态上。RFC 1492 是 Informational,而非 Internet Standard。进入 RFC 档案使重建结果可引用、可质疑,并没有使 Cisco 的实现获得普遍规范权。
“简单”与“扩展”不是同一份来历
文档区分简单 TACACS 和扩展 TACACS。与原始协议的兼容判断只谨慎地落在 Cisco 的简单实现上;Cisco 另有扩展版本,明尼苏达大学的分布式认证系统也使用了扩展协议。这些名称证明特定场景中存在过运行系统,却不是市场份额调查,更不能说明所有设备说的是同一种方言。
当源文档缺席时,运行代码很容易从证人变成宪法。后来者为了互通会复制它的字段、次序和异常行为。再过一轮,兼容实现的选择可能被叙述成协议原意。RFC 1492 保留的不确定性,正是防止这种历史反转的边界。
LOGIN 的成功不等于 CONNECT 的成功
协议的基本动作是客户端提出请求,认证 daemon 返回回答。每一个请求都需要回答,因此也都可能被拒绝。LOGIN 请求提交认证信息;若通过,终端服务器才可以开始登录连接。CONNECT 则发生在已经存在的连接内部,询问能否向某个具体目的地址和 TCP 端口另开连接。
这两个时点不能合并。LOGIN 通过,没有自动授权用户访问任意目的。CONNECT 获得接受,也只说明 daemon 在当时数据和算法下给出肯定决定。终端服务器是否执行,网络是否送达,目的端是否接受,以及后来是否留下记账记录,仍是不同事件。
文档把接受或拒绝所用的算法与数据留给 daemon 运营者。这让站点可以使用自己的密码资料和规则,也说明回答只代表本地控制面。格式相同的两个 daemon 可以依法作出不同决定;报文语法没有创造一条全球政策。
nonce 只完成一小段对应关系
历史 UDP 编码使用端口 49。客户端在请求中放入 nonce,服务器把它原样带回应答。这个机制可以把到达的 datagram 与一个尚未完成的请求配对。它没有验证用户身份,没有证明回答来自预期服务器,也没有给明文内容提供完整性或保密性。
超时重试又制造了一层歧义。UDP 客户端可以重发,服务器本身不重发。RFC 指出,这种设计仿佛要求请求具备幂等性,但请求事实上并不幂等。第一份回答可能丢失,而第一次处理已经改变了更大连接的状态;第二个相同请求因此未必无害。
所以,两个 nonce 相同的包不能自动压成“一次逻辑操作”。调查需要同时保存时间、请求类型、重试原因、daemon 状态和终端服务器动作。
明文密码先于任何接受回答经过网络
UDP 与 TCP 编码都把用户名和密码以明文携带。RFC 1492 的安全说明明确警告:网络监听者能够收集用户名/密码对,而服务本身也提供了探测凭据的表面。一次 ACCEPT 回答不可能事后保护已经暴露的请求。受管理的链路也不是密码学加密。
TCP 版本解决的是另一类问题。它与历史 TACACS 明确不兼容,改用更容易处理的帧格式,让 TCP 管理传输,并为回答留下更大空间。可靠、有序地收到字节,不等于确认发送者身份,不等于隐藏凭据,更不等于设备已经执行策略。
后来的 TACACS+ 只能作对照
RFC 8907 后来把 TACACS+ 描述为区分认证、授权与记账的协议套件,并提醒协议会话未必对应一个用户或用户动作,认证请求也不会自动与授权请求关联。这些提示能帮助今天的读者分开证据,却不能倒推为 1993 年 TACACS 已经遵循现代 TACACS+ 语义。
更早的 RFC 927 处理 TELNET TUID 用户识别交接。它属于另一条问题链。RFC 1492 的独特位置,是在原始说明不可取得时,以可见实现重建 daemon 决策协议,并把猜测写在档案表面。
因此,真正值得继承的不是某个老报文,而是证据纪律:文档保管证明拿到了什么文本,实现观察证明某个程序做了什么,RFC 证明某种描述被发表,传输记录证明请求与回答经过了网络,本地日志证明 daemon 作了决定,执行与结果还要由各自系统作证。
来源
- RFC 1492 信息页
- RFC 1492,An Access Control Protocol, Sometimes Called TACACS
- RFC 927 信息页
- RFC 927,TACACS User Identification Telnet Option
- RFC 8907 信息页
- RFC 8907,The TACACS+ Protocol
- RFC 4962,AAA 密钥管理指南
- IANA 服务名称与传输协议端口号登记表
- Heng Lu,Running-Code Primacy
- Heng Lu,Minimum Initial Specification
- Heng Lu,On Reality Layers
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
