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
   <dnssec@tis.com> 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]