Network Working Group                                    D. Eastlake 3rd
Request for Comments: 3110                                      Motorola
Obsoletes: 2537                                                 May 2001
Category: Standards Track
        
Network Working Group                                    D. Eastlake 3rd
Request for Comments: 3110                                      Motorola
Obsoletes: 2537                                                 May 2001
Category: Standards Track
        

RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)

域名系统(DNS)中的RSA/SHA-1 SIGs和RSA密钥

Status of this Memo

本备忘录的状况

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2001). All Rights Reserved.

版权所有(C)互联网协会(2001年)。版权所有。

Abstract

摘要

This document describes how to produce RSA/SHA1 SIG resource records (RRs) in Section 3 and, so as to completely replace RFC 2537, describes how to produce RSA KEY RRs in Section 2.

本文档在第3节中描述了如何生成RSA/SHA1 SIG资源记录(RRs),并在第2节中描述了如何生成RSA密钥RRs,以完全取代RFC 2537。

Since the adoption of a Proposed Standard for RSA signatures in the DNS (Domain Name Space), advances in hashing have been made. A new DNS signature algorithm is defined to make these advances available in SIG RRs. The use of the previously specified weaker mechanism is deprecated. The algorithm number of the RSA KEY RR is changed to correspond to this new SIG algorithm. No other changes are made to DNS security.

自从在DNS(域名空间)中采用RSA签名的拟议标准以来,哈希技术取得了进展。定义了一种新的DNS签名算法,使这些进步在SIG RRs中可用。不推荐使用以前指定的较弱机制。RSA密钥RR的算法编号更改为与此新SIG算法相对应。没有对DNS安全性进行其他更改。

Acknowledgements

致谢

Material and comments from the following have been incorporated and are gratefully acknowledged:

以下材料和意见已纳入本文件,特此致谢:

Olafur Gudmundsson

奥拉弗尔·古德蒙松

The IESG

IESG

Charlie Kaufman

查理考夫曼

Steve Wang

史蒂芬王

Table of Contents

目录

   1. Introduction................................................... 2
   2. RSA Public KEY Resource Records................................ 3
   3. RSA/SHA1 SIG Resource Records.................................. 3
   4. Performance Considerations..................................... 4
   5. IANA Considerations............................................ 5
   6. Security Considerations........................................ 5
   References........................................................ 5
   Author's Address.................................................. 6
   Full Copyright Statement.......................................... 7
        
   1. Introduction................................................... 2
   2. RSA Public KEY Resource Records................................ 3
   3. RSA/SHA1 SIG Resource Records.................................. 3
   4. Performance Considerations..................................... 4
   5. IANA Considerations............................................ 5
   6. Security Considerations........................................ 5
   References........................................................ 5
   Author's Address.................................................. 6
   Full Copyright Statement.......................................... 7
        
1. Introduction
1. 介绍

The Domain Name System (DNS) is the global hierarchical replicated distributed database system for Internet addressing, mail proxy, and other information [RFC1034, 1035, etc.]. The DNS has been extended to include digital signatures and cryptographic keys as described in [RFC2535]. Thus the DNS can now be secured and used for secure key distribution.

域名系统(DNS)是全球分层复制分布式数据库系统,用于互联网寻址、邮件代理和其他信息[RFC1034、1035等]。DNS已扩展为包括[RFC2535]中所述的数字签名和加密密钥。因此,DNS现在可以得到保护并用于安全密钥分发。

Familiarity with the RSA and SHA-1 algorithms is assumed [Schneier, FIP180] in this document.

本文档假定您熟悉RSA和SHA-1算法[Schneier,FIP180]。

RFC 2537 described how to store RSA keys and RSA/MD5 based signatures in the DNS. However, since the adoption of RFC 2537, continued cryptographic research has revealed hints of weakness in the MD5 [RFC1321] algorithm used in RFC 2537. The SHA1 Secure Hash Algorithm [FIP180], which produces a larger hash, has been developed. By now there has been sufficient experience with SHA1 that it is generally acknowledged to be stronger than MD5. While this stronger hash is probably not needed today in most secure DNS zones, critical zones such a root, most top level domains, and some second and third level domains, are sufficiently valuable targets that it would be negligent not to provide what are generally agreed to be stronger mechanisms. Furthermore, future advances in cryptanalysis and/or computer speeds may require a stronger hash everywhere. In addition, the additional computation required by SHA1 above that required by MD5 is insignificant compared with the computational effort required by the RSA modular exponentiation.

RFC 2537描述了如何在DNS中存储RSA密钥和基于RSA/MD5的签名。然而,自从采用RFC2537以来,持续的密码研究揭示了RFC2537中使用的MD5[RFC1321]算法的弱点。SHA1安全散列算法[FIP180]已经开发出来,它可以产生更大的散列。到目前为止,已经有足够的SHA1经验证明它比MD5更强大。虽然目前在大多数安全DNS区域中可能不需要这种更强大的哈希,但关键区域(如根域、大多数顶级域以及一些第二级和第三级域)是非常有价值的目标,如果不提供通常认为更强大的机制,那就太疏忽了。此外,密码分析和/或计算机速度的未来进步可能需要更强大的散列。此外,与RSA模幂运算所需的计算量相比,SHA1所需的额外计算量(MD5所需的计算量)微不足道。

This document describes how to produce RSA/SHA1 SIG RRs in Section 3 and, so as to completely replace RFC 2537, describes how to produce RSA KEY RRs in Section 2.

本文档在第3节中描述了如何生成RSA/SHA1 SIG RRs,并在第2节中描述了如何生成RSA密钥RRs,以完全取代RFC 2537。

Implementation of the RSA algorithm in DNS with SHA1 is MANDATORY for DNSSEC. The generation of RSA/MD5 SIG RRs as described in RFC 2537 is NOT RECOMMENDED.

DNSSEC必须使用SHA1在DNS中实现RSA算法。不建议按照RFC 2537中的说明生成RSA/MD5 SIG RRs。

The key words "MUST", "REQUIRED", "SHOULD", "RECOMMENDED", "NOT RECOMMENDED", and "MAY" in this document are to be interpreted as described in RFC 2119.

本文件中的关键词“必须”、“必需”、“应该”、“建议”、“不建议”和“可能”应按照RFC 2119中的说明进行解释。

2. RSA Public KEY Resource Records
2. RSA公钥资源记录

RSA public keys are stored in the DNS as KEY RRs using algorithm number 5 [RFC2535]. The structure of the algorithm specific portion of the RDATA part of such RRs is as shown below.

RSA公钥使用5号算法[RFC2535]作为密钥RRs存储在DNS中。这种RRs的RDATA部分的算法特定部分的结构如下所示。

         Field             Size
         -----             ----
         exponent length   1 or 3 octets (see text)
         exponent          as specified by length field
         modulus           remaining space
        
         Field             Size
         -----             ----
         exponent length   1 or 3 octets (see text)
         exponent          as specified by length field
         modulus           remaining space
        

For interoperability, the exponent and modulus are each limited to 4096 bits in length. The public key exponent is a variable length unsigned integer. Its length in octets is represented as one octet if it is in the range of 1 to 255 and by a zero octet followed by a two octet unsigned length if it is longer than 255 bytes. The public key modulus field is a multiprecision unsigned integer. The length of the modulus can be determined from the RDLENGTH and the preceding RDATA fields including the exponent. Leading zero octets are prohibited in the exponent and modulus.

对于互操作性,指数和模的长度均限制为4096位。公钥指数是长度可变的无符号整数。如果其长度在1到255之间,则表示为一个八位字节;如果长度超过255字节,则表示为零个八位字节,后跟两个八位字节的无符号长度。公钥模数字段是一个多精度无符号整数。模数的长度可以通过RDLENGTH和前面的RDATA字段(包括指数)确定。指数和模数中禁止前导零八位字节。

Note: KEY RRs for use with RSA/SHA1 DNS signatures MUST use this algorithm number (rather than the algorithm number specified in the obsoleted RFC 2537).

注意:用于RSA/SHA1 DNS签名的密钥RRs必须使用此算法编号(而不是过时的RFC 2537中指定的算法编号)。

Note: This changes the algorithm number for RSA KEY RRs to be the same as the new algorithm number for RSA/SHA1 SIGs.

注意:这会将RSA密钥RRs的算法编号更改为与RSA/SHA1 SIGs的新算法编号相同。

3. RSA/SHA1 SIG Resource Records
3. RSA/SHA1 SIG资源记录

RSA/SHA1 signatures are stored in the DNS using SIG resource records (RRs) with algorithm number 5.

RSA/SHA1签名使用算法编号为5的SIG资源记录(RRs)存储在DNS中。

The signature portion of the SIG RR RDATA area, when using the RSA/SHA1 algorithm, is calculated as shown below. The data signed is determined as specified in RFC 2535. See RFC 2535 for fields in the SIG RR RDATA which precede the signature itself.

使用RSA/SHA1算法时,SIG RR RDATA区域的签名部分的计算如下所示。根据RFC 2535中的规定确定签名的数据。请参阅RFC 2535,了解签名之前的SIG RR RDATA中的字段。

hash = SHA1 ( data )

hash=SHA1(数据)

         signature = ( 01 | FF* | 00 | prefix | hash ) ** e (mod n)
        
         signature = ( 01 | FF* | 00 | prefix | hash ) ** e (mod n)
        

where SHA1 is the message digest algorithm documented in [FIP180], "|" is concatenation, "e" is the private key exponent of the signer, and "n" is the modulus of the signer's public key. 01, FF, and 00 are fixed octets of the corresponding hexadecimal value. "prefix" is the ASN.1 BER SHA1 algorithm designator prefix required in PKCS1 [RFC2437], that is,

其中SHA1是[FIP180]中记录的消息摘要算法,“|”是串联,“e”是签名者的私钥指数,“n”是签名者公钥的模。01、FF和00是对应十六进制值的固定八位字节。“前缀”是PKCS1[RFC2437]中要求的ASN.1 BER SHA1算法指示符前缀,即,

hex 30 21 30 09 06 05 2B 0E 03 02 1A 05 00 04 14

六角30 21 30 09 06 05 2B 0E 03 02 1A 05 00 04 14

This prefix is included to make it easier to use standard cryptographic libraries. The FF octet MUST be repeated the maximum number of times such that the value of the quantity being exponentiated is one octet shorter than the value of n.

包含此前缀是为了更容易使用标准加密库。FF八位组必须重复最大次数,以使被指数化的量的值比n的值短一个八位组。

(The above specifications are identical to the corresponding parts of Public Key Cryptographic Standard #1 [RFC2437].)

(上述规范与公钥密码标准#1[RFC2437]的相应部分相同。)

The size of "n", including most and least significant bits (which will be 1) MUST be not less than 512 bits and not more than 4096 bits. "n" and "e" SHOULD be chosen such that the public exponent is small. These are protocol limits. For a discussion of key size see RFC 2541.

“n”的大小,包括最高有效位和最低有效位(将为1),必须不小于512位且不大于4096位。“n”和“e”的选择应确保公共指数较小。这些是协议限制。有关密钥大小的讨论,请参见RFC 2541。

Leading zero bytes are permitted in the RSA/SHA1 algorithm signature.

RSA/SHA1算法签名中允许前导零字节。

4. Performance Considerations
4. 性能注意事项

General signature generation speeds are roughly the same for RSA and DSA [RFC2536]. With sufficient pre-computation, signature generation with DSA is faster than RSA. Key generation is also faster for DSA. However, signature verification is an order of magnitude slower with DSA when the RSA public exponent is chosen to be small as is recommended for KEY RRs used in domain name system (DNS) data authentication.

RSA和DSA的一般签名生成速度大致相同[RFC2536]。通过充分的预计算,DSA生成签名的速度比RSA快。DSA的密钥生成速度也更快。然而,当RSA公共指数被选择为较小时,签名验证比DSA慢一个数量级,这是域名系统(DNS)数据身份验证中使用的密钥RRs的建议。

A public exponent of 3 minimizes the effort needed to verify a signature. Use of 3 as the public exponent is weak for confidentiality uses since, if the same data can be collected encrypted under three different keys with an exponent of 3 then, using the Chinese Remainder Theorem [NETSEC], the original plain text can be easily recovered. If a key is known to be used only for authentication, as is the case with DNSSEC, then an exponent of 3 is acceptable. However other applications in the future may wish to leverage DNS distributed keys for applications that do require confidentiality. For keys which might have such other uses, a more conservative choice would be 65537 (F4, the fourth fermat number).

公共指数为3可以最大限度地减少验证签名所需的工作量。使用3作为公开指数对于保密用途来说是很弱的,因为如果相同的数据可以在指数为3的三个不同密钥下加密收集,那么,使用中国剩余定理[NETSEC],原始纯文本可以很容易地恢复。如果已知密钥仅用于身份验证,如DNSSEC,则指数为3是可以接受的。但是,未来的其他应用程序可能希望为确实需要保密性的应用程序利用DNS分布式密钥。对于可能有其他用途的键,更保守的选择是65537(F4,第四个费马数)。

Current DNS implementations are optimized for small transfers, typically less than 512 bytes including DNS overhead. Larger transfers will perform correctly and extensions have been standardized [RFC2671] to make larger transfers more efficient, it is still advisable at this time to make reasonable efforts to minimize the size of KEY RR sets stored within the DNS consistent with adequate security. Keep in mind that in a secure zone, at least one authenticating SIG RR will also be returned.

当前的DNS实现针对小型传输进行了优化,包括DNS开销在内,通常小于512字节。更大的传输将正确执行,扩展已标准化[RFC2671],为了使更大的传输更有效,此时仍建议做出合理的努力,使DNS中存储的密钥RR集的大小最小化,以确保足够的安全性。请记住,在安全区域中,还将返回至少一个身份验证SIG RR。

5. IANA Considerations
5. IANA考虑

The DNSSEC algorithm number 5 is allocated for RSA/SHA1 SIG RRs and RSA KEY RRs.

DNSSEC算法编号5分配给RSA/SHA1 SIG RRs和RSA密钥RRs。

6. Security Considerations
6. 安全考虑

Many of the general security considerations in RFC 2535 apply. Keys retrieved from the DNS should not be trusted unless (1) they have been securely obtained from a secure resolver or independently verified by the user and (2) this secure resolver and secure obtainment or independent verification conform to security policies acceptable to the user. As with all cryptographic algorithms, evaluating the necessary strength of the key is essential and dependent on local policy. For particularly critical applications, implementers are encouraged to consider the range of available algorithms and key sizes. See also RFC 2541, "DNS Security Operational Considerations".

RFC 2535中的许多一般安全注意事项适用。不应信任从DNS检索的密钥,除非(1)它们已从安全解析程序安全获取或由用户独立验证;(2)此安全解析程序和安全获取或独立验证符合用户可接受的安全策略。与所有密码算法一样,评估密钥的必要强度至关重要,并且取决于本地策略。对于特别关键的应用,鼓励实施者考虑可用算法和密钥大小的范围。另请参见RFC 2541,“DNS安全操作注意事项”。

References

工具书类

[FIP180] U.S. Department of Commerce, "Secure Hash Standard", FIPS PUB 180-1, 17 Apr 1995.

[FIP180]美国商务部,“安全哈希标准”,FIPS PUB 180-1801995年4月17日。

[NETSEC] Network Security: PRIVATE Communications in a PUBLIC World, Charlie Kaufman, Radia Perlman, & Mike Speciner, Prentice Hall Series in Computer Networking and Distributed Communications, 1995.

[NETSEC]网络安全:公共世界中的私人通信,Charlie Kaufman,Radia Perlman和Mike Speciner,Prentice Hall计算机网络和分布式通信系列,1995年。

[RFC1034] Mockapetris, P., "Domain Names - Concepts and Facilities", STD 13, RFC 1034, November 1987.

[RFC1034]Mockapetris,P.,“域名-概念和设施”,STD 13,RFC 1034,1987年11月。

[RFC1035] Mockapetris, P., "Domain Names - Implementation and Specification", STD 13, RFC 1035, November 1987.

[RFC1035]Mockapetris,P.,“域名-实现和规范”,STD 13,RFC 1035,1987年11月。

[RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992.

[RFC1321]Rivest,R.,“MD5消息摘要算法”,RFC13211992年4月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC2437] Kaliski, B. and J. Staddon, "PKCS #1: RSA Cryptography Specifications Version 2.0", RFC 2437, October 1998.

[RFC2437]Kaliski,B.和J.Staddon,“PKCS#1:RSA加密规范2.0版”,RFC 2437,1998年10月。

[RFC2535] Eastlake, D., "Domain Name System Security Extensions", RFC 2535, March 1999.

[RFC2535]Eastlake,D.,“域名系统安全扩展”,RFC25351999年3月。

[RFC2536] Eastlake, D., "DSA KEYs and SIGs in the Domain Name System (DNS)", RFC 2536, March 1999.

[RFC2536]Eastlake,D.,“域名系统(DNS)中的DSA密钥和SIG”,RFC 25361999年3月。

[RFC2537] Eastlake, D., "RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)", RFC 2537, March 1999.

[RFC2537]Eastlake,D.,“域名系统(DNS)中的RSA/MD5密钥和SIG”,RFC 2537,1999年3月。

[RFC2541] Eastlake, D., "DNS Security Operational Considerations", RFC 2541, March 1999.

[RFC2541]Eastlake,D.,“DNS安全操作注意事项”,RFC 25411999年3月。

[RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC 2671, August 1999.

[RFC2671]Vixie,P.,“DNS的扩展机制(EDNS0)”,RFC 26711999年8月。

[Schneier] Bruce Schneier, "Applied Cryptography Second Edition: protocols, algorithms, and source code in C", 1996, John Wiley and Sons, ISBN 0-471-11709-9.

[Schneier]Bruce Schneier,“应用密码学第二版:C语言中的协议、算法和源代码”,1996年,John Wiley and Sons,ISBN 0-471-11709-9。

Author's Address

作者地址

Donald E. Eastlake 3rd Motorola 155 Beaver Street Milford, MA 01757 USA

Donald E.Eastlake 3rd Motorola美国马萨诸塞州米尔福德海狸街155号01757

   Phone:   +1-508-261-5434 (w)
            +1-508-634-2066 (h)
   Fax      +1-508-261-4777 (w)
   EMail:   Donald.Eastlake@motorola.com
        
   Phone:   +1-508-261-5434 (w)
            +1-508-634-2066 (h)
   Fax      +1-508-261-4777 (w)
   EMail:   Donald.Eastlake@motorola.com
        

Full Copyright Statement

完整版权声明

Copyright (C) The Internet Society (2001). All Rights Reserved.

版权所有(C)互联网协会(2001年)。版权所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。

D. Eastlake 3rd Standards Track [Page 7]

D.东湖第三标准跑道[第7页]