​TSIG(Transaction SIGnature)​是RFC 2845中​定义的计算机网络​协议。主要是它使域名系统​(DNS)能够验证对DNS数据库的更新。这是最常用的更新动态DNS​或辅助/从属DNS服务器。TSIG使用共享​密钥和单向哈希来提供一种密码安全的方式来认证连接的每个端点被允许作出或响应DNS更新。

尽管对DNS的查询通常可能在没有身份验证的情况下进行,但对DNS的更新必须经过身份验证,因为它们会对Internet命名系统的结构进行持久更改。由于更新请求可能通过不安全的渠道(互联网)到达,因此必须采取措施确保请求的真实性和完整性。使用由客户端进行更新和DNS服务器共享的密钥有助于确保更新请求的真实性和完整性。单向哈希函数用于防止恶意观察者修改更新并转发到目的地,从而确保消息从源到目的地的完整性。

TSIG协议中包含一个时间戳,用于防止记录的响应被重用,这将使攻击者违反TSIG的安全性。这要求在动态DNS服务器和TSIG客户端包含一个准确的时钟。由于DNS服务器连接到网络,网络时间协议可以提供准确的时间源。

DNS更新(如查询)通常通过UDP​传输,因为它要求比TCP更低的开销。但是,DNS服务器同时支持UDP和TCP请求。




内容


 [ 隐藏 ] 

1实施

2TSIG的替代品

3另见

4参考

5外部链接

实现[ 编辑]

RFC 2136中​规定的更新是对DNS服务器的一组指令。其中包括标题,要更新的区域,必须满足的先决条件以及要更新的记录。TSIG添加最终记录,其中包括时间戳和请求的散列。它还包括用于签署请求的密钥的名称。RFC 2535提供了关于名称形式的建议。

对TSIG成功更新的回应也将用TSIG记录进行签名。故障没有经过签名,以防止攻击者使用特制的更新“探测器”了解有关TSIG密钥的任何信息。

该的nsupdate程序可以使用TSIG做DNS更新。

TSIG记录与更新请求中的其他记录格式相同。这些字段的含义在RFC 1035中进行了描述。

TSIG记录字段

领域

字节

描述

名称

最大。256

密钥名称,在客户端和服务器上必须是唯一的

类型

2

TSIG(250)

2

任何(255)

​TTL​

4

0(因为TSIG记录不能被缓存)

RDLENGTH

2

RDATA字段的长度

RDATA

变量

包含时间戳,算法和散列数据的结构

TSIG的替代品[ ​​编辑​​]

虽然TSIG被广泛部署,但协议还有几个问题:

  • 它需要将密钥分发给每个必须更新的主机。
  • HMAC-MD5摘要不再被认为是非常安全的。
  • 没有权威的层次。任何带有密钥的主机都可能更新任何记录。

因此,已经提出了一些备选方案和扩展。