INTERNET-DRAFT DSA KEYs and SIGs in the DNS September 1997 Expires March 1998 DSA KEYs and SIGs in the Domain Name System --- ---- --- ---- -- --- ------ ---- ------ Donald E. Eastlake 3rd Status of This Document This draft, file name draft-ietf-dnssec-dss-00.txt, is intended to be become a Proposed Standard RFC. Distribution of this document is unlimited. Comments should be sent to the DNS security mailing list or to the author. This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months. Internet-Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet- Drafts as reference material or to cite them other than as a ``working draft'' or ``work in progress.'' To learn the current status of any Internet-Draft, please check the 1id-abstracts.txt listing contained in the Internet-Drafts Shadow Directories on ds.internic.net (East USA), ftp.isi.edu (West USA), nic.nordu.net (North Europe), ftp.nis.garr.it (South Europe), munnari.oz.au (Pacific Rim), or ftp.is.co.za (Africa). Abstract A standard method for storing US Government Digital Signature Algorithm keys and signatures in the Domain Name System is described which utilizes DNS KEY and SIG resource records. Donald E. Eastlake 3rd [Page 1] INTERNET-DRAFT DSA in the DNS Table of Contents Status of This Document....................................1 Abstract...................................................1 Table of Contents..........................................2 1. Introduction............................................3 2. DSA KEY Resource Records................................3 3. DSA SIG Resource Records................................5 4. Performance Considerations..............................6 5. Security Considerations.................................6 References.................................................7 Author's Address...........................................7 Expiration and File Name...................................7 Donald E. Eastlake 3rd [Page 2] INTERNET-DRAFT DSA in the DNS 1. Introduction The Domain Name System (DNS) is the global hierarchical replicated distributed database system for Internet addressing, mail proxy, and other information. The DNS has been extended to include digital signatures and cryptographic keys as described in RFC 2065. Thus the DNS can now be secured and used for secure key distribution. This document describes how to store US Government Digital Signature Algorithm (DSA) keys and signatures in the DNS. Familiarity with the US Digital Signature Algorithm is assumed [Schneier]. 2. DSA KEY Resource Records DSA public keys are stored in the DNS as KEY RRs using algorithm number 3 (see RFC 2065). The structure of the RDATA portion of this RR is as shown below. The first 4 octets, including the flags, protocol, and algorithm fields are common to all KEY RRs. The remainder, from Q through Y is the "public key" part of the KEY RR. The period of key validity is not in the KEY RR but is indicated by the SIG RR(s) which signs and authenticates the KEY RR(s) at that domain name. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | flags | protocol | algorithm=3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | T | | |-+-+-+-+-+-+-+-+ Q (20 octets) | | .../ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | P (64+T*8 octets) / | .../ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | G (64+8*T octets) / | .../ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Y (64+8*T octets) / | .../ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ As described in [FIPS 186] and [Schneier]: T is a key size parameter chosen such that 0 <= T <= 8. (The meaning for algorithm 3 if the T Donald E. Eastlake 3rd [Page 3] INTERNET-DRAFT DSA in the DNS octet is greater than 8 is reserved and the remainder of the RDATA portion may have a different format in that case.) Q is a prime number selected at key generation time such that 2**159 < Q < 2**160 so Q is always 20 octets long and, as with all other fields, is stored in "big-endian" network order. P, G, and Y are calculated as directed by the FIPS 186 key generation algorithm [Schneier]. P is in the range 2**(511+64T) < P < 2**(512+64T) and so is 64 + 8*T octets long. G and Y are quantities modulus P and so can be up to the same length as P and are allocated fixed size fields with the same number of octets as P. During the key generation process, a random number X must be generated such that 1 <= X <= Q-1. X is the private key and is used in the final step of public key generation where Y is computed as Y = G**X mod P Donald E. Eastlake 3rd [Page 4] INTERNET-DRAFT DSA in the DNS 3. DSA SIG Resource Records The signature portion of the SIG RR RDATA area, when using the US Digital Signature Algorithm, is shown below. See RFC 2065 for fields in the SIG RR RDATA which precede the signature itself. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | T | | |-+-+-+-+-+-+-+-+ R, 20 octets | | .../ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | S, 20 octets | | .../ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The data signed is determined as specified in RFC 2065. Then the following steps are taken, as specified in [FIPS 186], where Q, P, G, and Y are as specified in the public key [Schneier]: hash = SHA-1 ( data ) Generate random K such that 0 < K < Q. R = ( G**K mod P ) mod Q S = ( K**(-1) * (hash + X*R) ) mod Q Since Q is 160 bits long, R and S can not be larger than 20 octets which is the space allocated. T is copied from the public key. It is not logically necessary in the SIG but is present so that values of T > 8 can more conveniently be used as an escape for extended versions of DSA or other algorithms as later specified. Donald E. Eastlake 3rd [Page 5] INTERNET-DRAFT DSA in the DNS 4. Performance Considerations Signature generation speeds are roughly the same for RSA and DSA. Key generation is faster for DSA. Signature verification is an order of magnitude slower than RSA. Current DNS implementations are optimized for small transfers, typically less than 512 bytes including overhead. While larger transfers will perform correctly and work is underway 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, an authenticating SIG RR will also be returned. 5. Security Considerations DSA assumes the ability to frequently generate high quality random numbers. See RFC 1750 for guidance. DSA is designed so that if manipulated rather than random numbers are used, very high bandwidth covert channels are possible [Schneier]. The leakage of an entire DSA private key in only two DSA signatures has been demonstrated. Thus DSA provides security only if trusted implementations, including trusted random number generation, are used. The key size limitation of a maximum of 1024 bits ( T = 8 ) limits the security of DSA. For particularly critical high level keys, sizes of 2048 and larger are now used in RSA. Many of the general security consideration in RFC 2065 apply. Of course, the DSA key stored in the DNS for an entity should not be trusted unless it has been obtain via a trusted DNS resolver that vouches for its security or unless the application using the key has done a similar authentication. Donald E. Eastlake 3rd [Page 6] INTERNET-DRAFT DSA in the DNS References [FIPS 186] - U.S. Federal Information Processing Standard: Digital Signature Standard. [RFC 1034] - P. Mockapetris, "Domain names - concepts and facilities", 11/01/1987. [RFC 1035] - P. Mockapetris, "Domain names - implementation and specification", 11/01/1987. [RFC 1750] - D. Eastlake, S. Crocker, J. Schiller, "Randomness Recommendations for Security", 12/29/1994. [RFC 2065] - Domain Name System Security Extensions, D. Eastlake, C. Kaufman, January 1997. [Schneier] - Bruce Schneier, "Applied Cryptography: Protocols, Algorithms, and Source Code in C", 1996, John Wiley and Sons Author's Address Donald E. Eastlake 3rd CyberCash, Inc. 318 Acton Street Carlisle, MA 01741 USA Telephone: +1 508 287 4877 +1 703 620-4200 (main office, Reston, VA) FAX: +1 508 371 7148 EMail: dee@cybercash.com Expiration and File Name This draft expires in March 1998. Its file name is draft-ietf-dnssec-dss-00.txt. Donald E. Eastlake 3rd [Page 7]