ntp-keygen.c

时间:2021-02-20 14:06:21

这个程序产生加密数据文件使用的的密码,遵循Autokey security protocol和NTPv4.文件名被名字和创建时间组成的头部当做前缀,后面跟有一个类型定义的描述符标签和PEM加密的数据结构并且兼容OPENSSL库。

所有的文件名类似"ntpkey_<type>_<hostname>.<filestamp>",此处的<type>代表文件类型,<hostname>即产生文件的主机名并且<filestamp>就是以ntp秒数产生计时的时间。NTP程序期望一个通用的类似"ntpkey_<type>_whimsy.udel.edu"的通过软连接的关系。随后是一系列文件类型,第一行是文件名第二行是链接名。

ntpkey_MD5key_<hostname>.<filestamp>

MD5(128-bit)的密钥用来在对称密钥加密算法中计算消息摘要

ntpkey_RSAhost_<hostname>.<filestamp>

ntpkey_host_<hostname>

RSA  private/public host key pair 用在公钥签名中。

ntpkey_RSAsign_<hostname>.<filestamp>
ntpkey_sign_<hostname>

RSA private/public sign key pair用在公钥签名中。

ntpkey_DSAsign_<hostname>.<filestamp>
ntpkey_sign_<hostname>

DSA private/public sign key pair用在公钥签名中。

可用的摘要/签名方案

RSA:    RSA-MD2, RSA-MD5, RSA-SHA, RSA-SHA1, RSA-MDC2, EVP-RIPEMD160

DSA:    DSA-SHA, DSA-SHA1

ntpkey_XXXcert_<hostname>.<filestamp>
ntpkey_cert_<hostname>

X509v3证书使用RSA或者DSA公钥和签名。XXX是用来识别消息摘要和签名加密算法的码。

识别方案。key type pair被用来做挑战;key type key被用来应答。

ntpkey_IFFkey_<groupname>.<filestamp>
 ntpkey_iffkey_<groupname>
 Schnorr (IFF) identity parameters and keys

ntpkey_GQkey_<groupname>.<filestamp>,
 ntpkey_gqkey_<groupname>
 Guillou-Quisquater (GQ) identity parameters and keys

ntpkey_MVkeyX_<groupname>.<filestamp>,
 ntpkey_mvkey_<groupname>

Mu-Varadharajan (MV) identity parameters and keys

注意:有时因为有些统计意外这个程序不能产生并且验证加密的数据,可以被返回状态为-1表明。在这种情况下只是再次运行这程序即可。如果程序的确是以返回值0结束,数据即被验证正确。

这些加密例程可以被模数大小分类。默认值是512位,可以在加密长度和计算时间之间达成妥协,这一般应用就够了。这些例程已经被256,512,1024和2048位的大小测试过。并不是所有的消息摘要和签名加密方案都可以在小于512位的大小的情况下工作。大于2048位的计算时间在所有机器上都是不可忍受的,当然最快的处理器除外。ULTRASPARC刀锋1000需要超过9分钟来产生和验证大小是2048的模数。老的SPARC IPC可能需要整整一周。

这一个程序使用的OPenssl库需要一个随机的种子文件。就如OPENSSL文件描述的那样,文件名默认是RANDFILE环境变量在用户的家目录然后.rnd在用户的家目录。

相关文章