dnssec-keygen(1M)

名称

dnssec-keygen - DNSSEC 密钥生成工具

用法概要

dnssec-keygen -a algorithm -b keysize -n nametype [-ehk] 
     [-c class] [-f flag] [-g generator] [-p protocol] 
     [-r randomdev] [-s strength] [-t type] [-v level] name

描述

dnssec-keygen 实用程序为 DNSSEC(安全 DNS)生成密钥,如 RFC 2535 和 RFC 4034 中定义的那样。它还可以生成与 TSIG(Transaction Signature,事务签名)一起使用的密钥,如 RFC 2845 中定义的那样。

选项

支持以下选项:

–a algorithm

选择加密算法。algorithm 的值必须是 RSAMD5 (RSA) 或 RSASHA1 之一、DSA、NSEC3RSASHA1、NSEC3DSA、DH (Diffie-Hellman) 或 HMAC-MD5。这些值不区分大小写。

对于 DNSSEC,RSASHA1 是强制实现的算法;DSA 是建议的算法。对于 TSIG,HMAC-MD5 是强制算法。


注 - HMAC-MD5 和 DH 自动设置 –k 标志。
–b keysize

指定密钥中的位数。密钥大小的选择取决于使用的算法。RSAMD5 和 RSASHA1 密钥必须在 512 和 2048 位之间。Diffie-Hellman 密钥必须在 128 和 4096 位之间。DSA 密钥必须在 512 和 1024 位之间,并且必须是 64 的整数倍。HMAC-MD5 密钥必须在 1 位和 512 位之间。

–c class

表明包含密钥的 DNS 记录应该具有指定类。如果没有指定,将使用类 IN。

–e

如果生成 RSAMD5 或 RSASHA1 密钥,则使用大指数。

–f flag

在 KEY/DNSKEY 记录的标志字段中设置指定的标志。唯一识别的标志是 KSK(Key Signing Key,密钥签名密钥)DNSKEY。

–g generator

如果生成 Diffie Hellman 密钥,则使用此 generator。允许的值是 2 和 5。如果没有指定 generator,则将使用 RFC 2539 中的已知索数(如果可能);否则,缺省值是 2。

–h

列出 dnssec-keygen 的选项和参数的简短摘要。

–k

生成 KEY 记录,而不是 DNSKEY 记录。

–n nametype

指定密钥的所有者类型。nametype 的值必须是 ZONE(对于 DNSSEC 区域密钥 (KEY/DNSKEY))、HOSTENTITY(对于与主机相关的密钥 (KEY))、USER(对于与用户相关的密钥 (KEY))或 OTHER (DNSKEY)。这些值不区分大小写。缺省值是 ZONE(用于生成 DNSKEY)。

–p protocol

为生成的密钥设置协议值。protocol 参数是 0 到 255 之间的数字。缺省值是 3 (DNSSEC)。在 RFC 2535 及其后续版本中列出了此参数的其他可能值。

–r randomdev

指定随机源。如果操作系统不提供 /dev/random 或等效设备,则缺省的随机源是键盘输入。randomdev 指定字符设备的名称或包含要使用的随机数据的文件(而非缺省文件)。特殊值 "keyboard" 表示应该使用键盘输入。

–s strength

指定密钥的强度值。strength 参数是 0 到 15 之间的数字,且当前尚未在 DNSSEC 中定义其用途。

–t type

表明密钥的用途。type 必须是 AUTHCONFNOAUTHCONFNOAUTHNOCONF 之一。缺省值是 AUTHCONFAUTH 指的是验证数据的能力,CONF 指的是加密数据的能力。

–v level

设置调试级别。

生成的密钥

生成的密钥

dnssec-keygen 成功完成时,会向标准输出中输出 Knnnn.+aaa+iiiii 格式的字符串。这是其生成的密钥的标识字符串。

  • nnnn 是密钥名称。

  • aaa 是算法的数字表示。

  • iiiii 是密钥标识符(或足迹)。

dnssec-keygen 实用程序创建两个文件,并根据列出的字符串命名这两个文件。

  • Knnnn.+aaa+iiiii.key 包含公钥。

  • Knnnn.+aaa+iiiii.private 包含私钥。

.key 文件包含 DNS KEY 记录,该记录可以直接插入到区域文件,也可以使用 $INCLUDE 语句插入。

.private 文件包含算法特定的字段。出于安全原因,此文件不具有一般读取权限。

对于对称加密算法(如 HMAC-MD5),将生成 .key.private 文件,即使公钥和私钥等效也如此。

示例

示例 1 生成 768 位 DSA 密钥

要为域 example.com 生成 768 位 DSA 密钥,则将发出以下命令:

dnssec-keygen -a DSA -b 768 -n ZONE example.com

该命令将列出以下格式的字符串:

Kexample.com.+003+26160

将创建以下文件:

Kexample.com.+003+26160.key
Kexample.com.+003+26160.private

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
service/network/dns/bind
接口稳定性
Volatile(可变)
posted @ 2018-05-24 16:57  白色的番茄  阅读(467)  评论(0编辑  收藏  举报