跳到主要内容

4. The NSEC3PARAM Resource Record (NSEC3PARAM 资源记录)

4. The NSEC3PARAM Resource Record (NSEC3PARAM 资源记录)

NSEC3PARAM RR 包含权威服务器计算哈希所有者名称所需的 NSEC3 参数 (哈希算法、标志、迭代和盐)。在区域顶点 (zone apex) 存在 NSEC3PARAM RR 表示权威服务器可以使用指定的参数为负响应选择适当的 NSEC3 RR 集合。验证器或解析器不使用 NSEC3PARAM RR。

如果在区域顶点存在 Flags 字段值为零的 NSEC3PARAM RR, 则区域中每个哈希所有者名称处必须存在使用相同哈希算法、迭代和盐参数的 NSEC3 RR。也就是说, 该区域必须包含一组完整的具有相同哈希算法、迭代和盐参数的 NSEC3 RR。

NSEC3PARAM RR 的所有者名称是区域顶点的名称。

NSEC3PARAM RR 的类型值为 51。

NSEC3PARAM RR RDATA 格式与类无关, 描述如下。

类 (class) 必须与此 RR 引用的 NSEC3 RR 相同。

4.1. RDATA Fields (RDATA 字段)

此 RR 的 RDATA 反映了 NSEC3 RR 中的前四个字段。

4.1.1. Hash Algorithm (哈希算法)

Hash Algorithm 字段标识用于构造哈希值 (hash-value) 的加密哈希算法。

可接受的值与 NSEC3 RR 中的相应字段相同。

4.1.2. Flag Fields (标志字段)

Opt-Out 标志未使用, 并设置为零。

所有其他标志保留供将来使用, 必须为零。

Flags 字段值不为零的 NSEC3PARAM RR 必须被忽略。

4.1.3. Iterations (迭代)

Iterations 字段定义了哈希执行的额外次数。

其可接受的值与 NSEC3 RR 中的相应字段相同。

4.1.4. Salt Length (盐长度)

Salt Length 字段定义了盐的长度 (以八位字节为单位), 取值范围从 0 到 255。

4.1.5. Salt (盐)

Salt 字段在哈希之前附加到原始所有者名称。

4.2. NSEC3PARAM RDATA Wire Format (NSEC3PARAM RDATA 线路格式)

NSEC3PARAM RR 的 RDATA 如下所示:

                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hash Alg. | Flags | Iterations |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Salt Length | Salt /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Hash Algorithm 是单个八位字节。

Flags 字段是单个八位字节。

Iterations 表示为 16 位无符号整数, 最高有效位在前。

Salt Length 表示为无符号八位字节。Salt Length 表示后续 Salt 字段的长度 (以八位字节为单位)。如果值为零, 则省略 Salt 字段。

Salt (如果存在) 编码为二进制八位字节序列。此字段的长度由前面的 Salt Length 字段确定。

4.3. Presentation Format (呈现格式)

RDATA 部分的呈现格式如下:

  • Hash Algorithm 字段表示为无符号十进制整数。该值最大为 255。

  • Flags 字段表示为无符号十进制整数。该值最大为 255。

  • Iterations 字段表示为无符号十进制整数。该值介于 0 和 65535 之间 (包括边界值)。

  • Salt Length 字段不表示。

  • Salt 字段表示为不区分大小写的十六进制数字序列。序列中不允许有空格。当 Salt Length 字段为零时, 此字段表示为 "-" (不带引号)。