draft-ietf-dnssec-secext-03.txt  -->   draft-ietf-dnssec-secext-04.txt

view Side-By-Side changes

   318 Acton Street        +1 508-371-7148(fax)     dee@world.std.com
Carlisle, MA 01741 USA     +1 703-620-4200(main office, Reston, VA)

DNS Security Working Group                       Donald E. Eastlake, 3rd
INTERNET-DRAFT                                                       DEC                                                 CyberCash
                                                      Charles W. Kaufman
                                                                    Iris
Expires: 1 Jul 24 December 1995                                           2 Jan                                   25 June 1995



                 Domain Name System Protocol Security Extensions
                 ------ ---- ------ -------- -------- ----------




Status of This Document

   This draft, file name draft-ietf-dnssec-secext-03.txt, draft-ietf-dnssec-secext-04.txt, is intended to
   be become a proposed standard Proposed Standard RFC.  Distribution of this document is
   unlimited. Comments should be sent to the DNS Security Working Group
   mailing list <dns-security@tis.com> or to the authors.

   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, nic.nordu.net, ftp.isi.edu,
   munnari.oz.au, or ftp.is.co.za.



















Eastlake, Kaufman                                               [Page 1]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


Abstract

   The Domain Name System (DNS) has become a critical operational part
   of the Internet infrastructure yet it has no strong security
   mechanisms to assure data integrity or authentication.  Extensions to
   the DNS are described that provide these services to security aware
   resolvers or applications through the use of cryptographic digital
   signatures.  These digital signatures are included in secured zones
   as resource records.  Security can still be provided even through
   non-security aware DNS servers. servers in many cases.

   The extensions also provide for the storage of authenticated public
   keys in the DNS.  This storage of keys can support a general public key
   distribution service as well as DNS security.  The stored keys enable
   security aware resolvers to learn the authenticating key of zones in
   addition to keys for which they are initially configured.  Keys
   associated with DNS names can be retrieved to support other
   protocols.  Provision is made for a variety of key types and
   algorithms.

   In addition, the security extensions provide for the optional
   authentication of DNS protocol transactions.



Acknowledgements

   The significant contributions of the following persons (in alphabetic
   order) to this draft are gratefully acknowledged:

        Madelyn Badger, Matt Crawford, James M. Galvin, Olafur
        Gudmundsson, Sandy Murphy, Masataka Ohta, Michael A. Patton,
        Jeffrey I. Schiller.



















Eastlake, Kaufman                                               [Page 2]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


Table of Contents

      Status of This Document....................................1

      Abstract...................................................2
      Acknowledgements...........................................2

      Table of Contents..........................................3

      1. Introduction............................................5 Overview of Contents....................................5

      2.  Brief  Overview of the Extensions.......................6 Extensions.............................6
      2.1 Services Not Provided..................................6
      2.2 Key Distribution.......................................6
      2.3 Data Origin Authentication and Integrity...............7
      2.3.2
      2.3.1 The SIG Resource Record..............................7
      2.3.3
      2.3.2 Authenticating Name Non-existence....................8
      2.3.5 and Type Non-existence...........8
      2.3.3 Special Problems Considerations With Time-to-Live...................8 Time-to-Live.............8
      2.3.4 Special Considerations at Delegation Points..........9
      2.3.5 Special Considerations with CNAME RRs................9
      2.3.6 Signers Other Than The Zone..........................9
      2.4 DNS Transaction Authentication.........................9 Authentication........................10

      3. The KEY Resource Record................................10 Record................................11
      3.1 KEY RDATA format......................................10 format......................................11
      3.2 Object Types and Types, DNS Names Names, and Keys...................10 Keys.....................11
      3.3 The KEY RR Flag Octet.................................11 Field.................................12
      3.4 The Protocol Octet....................................14
      3.5 The KEY Algorithm Version Number and the MD5/RSA Algorithm.......12
      3.5 Algorithm....14
      3.6 Interaction of Flags, Algorithm, and Protocol Bytes...15
      3.7 KEY RRs in the Construction of Responses..............13
      3.6 Responses..............16
      3.8 File Representation of KEY RRs........................14 RRs........................16

      4. The SIG Resource Record................................15 Record................................18
      4.1 SIG RDATA Format......................................15 Format......................................18
      4.1.1 Signature Format....................................17 Data......................................20
      4.1.2 SIG RRs Covering Type ANY...........................18 MD5/RSA Algorithm Signature Calculation.............21
      4.1.3 Zone Transfer (AXFR) SIG............................18 SIG............................22
      4.1.4 Transaction SIGs....................................19 SIGs....................................22
      4.2 SIG RRs in the Construction of Responses..............19 Responses..............23
      4.3 Processing Responses with and SIG RRs.....................20 RRs......................23
      4.4 Signature Expiration, TTLs, and Validity..............24
      4.5 File Representation of SIG RRs........................21 RRs........................25

      5. Non-existent Names.....................................22 Names and Types...........................26
      5.1 The NXD NXT Resource Record...............................22 Record...............................26
      5.2 NXD NXT RDATA Format......................................23 Format......................................27
      5.3 Example...............................................23 Example...............................................27
      5.4 Interaction of NXD NXT RRs and Wildcard RRs...............23 RRs...............28
      5.5 Blocking NXD NXT Pseudo-Zone Transfers....................24

      6. How to Resolve Securely................................25
      6.1 Boot File Format......................................25
      6.2 Chaining Through Zones................................25
      6.3 Secure Time...........................................27 Transfers....................28


Eastlake, Kaufman                                               [Page 3]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


      5.6 Special Considerations at Delegation Points...........29

      6. The AD and CD Bits and How to Resolve Securely.........30
      6.1 The AD and CD Header Bits.............................30
      6.2 Boot File Format......................................31
      6.3 Chaining Through Zones................................32
      6.4 Secure Time...........................................33

      7. Operational Considerations.............................28 Considerations.............................34
      7.1 Key Size Considerations...............................28 Considerations...............................34
      7.2 Key Storage...........................................28 Storage...........................................35
      7.3 Key Generation........................................29 Generation........................................35
      7.4 Key Lifetimes.........................................29 Lifetimes.........................................35
      7.5 Signature Lifetime....................................30 Lifetime....................................36
      7.6 Root..................................................30 Root..................................................36

      8. Conformance............................................31 Conformance............................................37
      8.1 Server Conformance....................................31 Conformance....................................37
      8.2 Resolver Conformance..................................31 Conformance..................................37

      9. Security Considerations................................32
      References................................................32 Considerations................................38
      References................................................38

      Authors Addresses.........................................33 Addresses.........................................39
      Expiration and File Name..................................33 Name..................................39

      Appendix: Base 64 Encoding................................34 Encoding................................40

























Eastlake, Kaufman                                               [Page 4]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


1. Introduction Overview of Contents

   This draft describes extensions of the DNS Domain Name System (DNS)
   protocol to support DNS security and public key distribution.

   This draft  It
   assumes that the reader is familiar with the Domain Name System,
   particularly as described in RFCs 1034 and 1035.













































Eastlake, Kaufman                                               [Page 5]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


2.  Brief Overview

   Section 2 provides an overview of the Extensions

   The DNS protocol extensions provide three distinct services: and the key
   distribution as described in section 2.2 below,
   distribution, data origin
   authentication as described in section 2.3 below, authentication, and transaction
   authentication, described security
   they provide.

   Section 3 discusses the KEY resource record, its structure, use in section 2.4 below.



2.1 Services Not Provided

   It is part of
   DNS responses, and file representation.  These resource records
   represent the design philosophy pubic keys of entities named in the DNS that and are used
   for key distribution.

   Section 4 discusses the data SIG digital signature resource record, its
   structure, use in it is
   public DNS responses, and that file representation.  These
   resource records are used to authenticate other resource records in
   the DNS gives the same answers to all inquirers.

   Following this philosophy, no attempt has been made and optionally to include any
   sort of authenticate DNS transactions.

   Section 5 discusses the NXT resource record and its use in DNS
   responses.  The NXT RR permits authenticated denial in the DNS of the
   existence of a name or of a particular type for an existing name.

   Section 6 discusses how a resolver can be configured with a starting
   key or keys and proceed to securely resolve DNS requests.
   Interactions between resolvers and servers are discussed for all
   combinations of security aware and security non-aware.  Two
   additional query header bits are defined for signaling between
   resolvers and servers.

   Section 7 reviews a variety of operational considerations including
   key generation, lifetime, and storage.

   Section 8 defines levels of conformance for resolvers and servers.

   Section 9 provides a few paragraphs on overall security
   considerations.

   An Appendix is provided that gives some details of base64 encoding
   which is used in the file representation of some RR's defined in this
   draft.









Eastlake, Kaufman                                               [Page 5]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


2.  Overview of the Extensions

   The Domain Name System (DNS) protocol security extensions provide
   three distinct services: key distribution as described in Section 2.2
   below, data origin authentication as described in Section 2.3 below,
   and transaction authentication, described in Section 2.4 below.

   Special considerations related to time to live, CNAMEs, and
   delegation points are also discussed in Section 2.3.



2.1 Services Not Provided

   It is part of the design philosophy of the DNS that the data in it is
   public and that the DNS gives the same answers to all inquirers.

   Following this philosophy, no attempt has been made to include any
   sort of access control lists or other means to differentiate
   inquirers.

   In addition, no effort has been made to provide for any
   confidentiality for queries or responses.  (This service may be
   available via an IP other protocols such as a network level security
   protocol for which there
   is current an IETF working group.) providing confidentiality.)



2.2 Key Distribution

   The resource

   Resource records (RRs) are defined to associate keys with DNS names.
   This permits the DNS to be used as a general public key distribution
   mechanism in support of the data origin authentication and
   transaction authentication DNS services as well as other security
   services such as IP level security.
   services.

   The syntax of a KEY resource record (RR) is described in Section 3.
   It includes the name of the entity the key is associated with
   (frequently but not always the KEY resource record owner name), an algorithm identifier, flags indicating the type of
   entity the key is associated with and/or asserting that there is no
   key associated with that entity, and the actual public key
   parameters.

   Under conditions described in Section 3, security aware DNS servers
   will
   may automatically attempt to return KEY resources as additional
   information, along with those resource records actually requested, to
   minimize query
   traffic. the number of queries needed.






Eastlake, Kaufman                                               [Page 6]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


2.3 Data Origin Authentication and Integrity

   Security is provided by associating with resource records in the DNS
   cryptographically generated digital signatures.  Commonly, there will
   be a single private key that signs for an entire zone.  If a security
   aware resolver reliably learns the public key of the zone, it can
   verify that all the
   verify, for any data read from that zone, that it was properly
   authorized and is reasonably current.  The expected implementation is
   for the zone private key to be kept off-line and used to re-sign all
   of the records in the zone periodically.

   The data origin authentication key belongs to the zone and not to the
   servers that store copies of the data.  That means compromise of a
   server or even all servers for a zone will not necessarily affect the
   degree of assurance that a resolver has that the data is genuine.

   A resolver can learn the public key of a zone either by reading it
   from DNS or by having it staticly configured.  To reliably learn the
   public key by reading it from DNS, the key itself must be signed.
   Thus, to provide a reasonable degree of security, the resolver must
   be configured with at least the public key of one zone. zone that it can
   use to authenticate signatures.  From that, it can securely read the
   public keys of other zones if the intervening zones in the DNS tree
   are secure.  It  (It is in principle more secure to have the resolver
   manually configured with the public keys of multiple zones, since
   then the compromise of a single zone would not permit the faking of
   information from other zones.  It is also more administratively
   cumbersome, however, particularly when public keys change. change.)

   Adding origin authentication and integrity requires no change to the
   "on-the-wire" DNS protocol beyond the addition of the signature
   resource types (and, as a practical matter, the key resource type
   needed for key distribution).  This service can be supported by
   existing resolver and server implementations so long as they could can
   support the additional resource types. types (see Section 8) with the one
   exception that CNAME referals can not be authenticated if they are
   from non-security aware servers (see Section 2.3.5).

   If signatures are always separately retrieved and verified when
   retrieving the information they authenticate, there will be more
   trips to the server and performance will suffer.  To avoid this,
   security aware servers mitigate that degradation by automatically always sending exactly
   the signature(s) needed.



2.3.2



2.3.1 The SIG Resource Record

   The syntax of a SIG resource record (signature) is described in
   Section 4.  It includes the type of the RR(s) being signed, the name


Eastlake, Kaufman                                               [Page 7]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   of the signer, the time at which the signature was created, the time
   it expires (when it is no longer to be believed), its original time


Eastlake, Kaufman                                               [Page 7]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995
   to live (which may be longer than its current time to live but cannot
   be shorter), the cryptographic algorithm in use, and the actual
   signature.

   Every name in a zone supporting signed data will have associated with
   it at least one SIG resource record for each resource type under that
   name.  A security aware server supporting the performance enhanced
   version of the DNS protocol security extensions will attempt to
   return, with all records retrieved, the corresponding SIGs.  If a
   server does not support the protocol, the resolver must retrieve all
   the SIG records for a name and select the one or ones that sign the
   resource record(s) that resolver is interested in.



2.3.3



2.3.2 Authenticating Name and Type Non-existence

   The above security mechanism provides only a way to sign existing RRs
   in a zone.  Data origin  "Data origin" authentication is not obviously provided
   for the non-existence of a domain name in a zone. zone or the non-existence
   of a type for an existing name.  This gap is filled by the NXD NXT RR
   which authenticatably asserts a range of non-existent names in a zone.  The owner of the NXD RR is the start of such a
   ranger zone
   and its RDATA is the end of non-existence types for the range; however, there are
   additional complexities due to wildcards. initial name in that range.

   Section 6 5 below covers the NXD NXT RR.



2.3.5



2.3.3 Special Problems Considerations With Time-to-Live

   A digital signature will fail to verify if any change has occurred to
   the data between the time it was originally signed and the time the
   signature is verified.  This conflicts with our desire to have the
   time-to-live field tick down when resource records are cached.

   This could be avoided by leaving the time-to-live out of the digital
   signature, but that would allow unscrupulous secondaries servers to set
   arbitrarily long time to live values undetected.  Instead, we include
   the "original" time-to-live in the signature and communicate that
   data in addition to the current time-to-live.  Unscrupulous servers
   under this scheme can manipulate the time to live but a security
   aware resolver will bound the TTL value it uses at the original
   signed value.  Separately, signatures include a time signed and an
   expiration time.  A resolver that knows an the absolute time can
   determine securely whether a signature has expired.  It is not
   possible to rely solely on the signature expiration as a substitute
   for the TTL, however, singe since non-security aware servers must still be
   supported.


Eastlake, Kaufman                                               [Page 8]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


2.3.5 Signers Other Than The Zone

   There are two general cases where a SIG resource record is signed by
   other than the zone private key.  One is for future support of
   dynamic update where an entity is permitted


2.3.4 Special Considerations at Delegation Points

   DNS security would like to authenticate/update
   its own records.  The public key view each zone as a unit of data
   completely under the entity must be present in control of the
   DNS zone owner and be appropriately signed but the other RR(s) may be signed
   with by the entity's
   zone's key.  The other is for support of transaction
   authentication as described in Section 2.3 below.



2.4 DNS Transaction Authentication

   The data origin authentication service described above protects
   resource records but provides no protection for  But the operational DNS message headers.
   If header bits views the leaf nodes in a zone
   which are falsely set by also the apex nodes of a server, there is little that can
   be done.  However, it is possible subzone (i.e., delegation points)
   as "really" belonging to add transaction authentication.
   Such authentication means that the subzone.  These nodes occur in two
   master files and will have RRs signed by both the upper and lower
   zone's keys.  A retrieval could get a resolver can mixture of these RRs and SIGs,
   especially since one server could be sure it is getting
   messages from serving both the server it thinks it queried zone above and that
   below a delegation point.

   In general, the response
   is KEY RR from the query it sent and that these messages have not been
   diddled in transit.

   This superzone is accomplished by optionally adding a special SIG resource
   record to authoritative while for
   all other RRs, the end of data from the reply which digitally signs subzone is more authoritative.  To
   avoid conflicts, only the
   concatenation of KEY RR in the server's response superzone should be signed
   and the resolver's query.  The
   private key used belongs to NS and any A (glue) RRs should only be signed in the host composing subzone
   along with the reply, not to SOA and any other RRs that have the zone being queried. name as
   owner.  The corresponding public key only exception is stored in the NXT RR type that will always appear
   differently and
   retrieved from authoritatively in both the DNS.  Because replies superzone and subzone, if
   both are highly variable, message
   authentication SIGs can not be pre-calculated.  Thus it will be
   necessary to keep the private key on-line, for example in software or secure, as described in a directly connected piece of hardware.

   DNS level transaction authentication would be unnecessary if a lower
   level (i.e., IP level) end-to-end security protocol were available.
   However, such a protocol is not yet standardized and when it is,
   there will be a considerable time during which there will be systems
   on which it will be hard to add IPSEC but relatively easy to replace
   the DNS components.













Eastlake, Kaufman                                               [Page 9]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


3. The KEY Resource Record

   The KEY RR Section 5.



2.3.5 Special Considerations with CNAME RRs

   There is used to document a key that is associated significant problem with security related RRs with a DNS
   name.  It will be a public key as only public keys are stored in the
   DNS.  This can be the public key of a zone owner, of a host or other
   end entity, or
   same owner name as a user.  A KEY CNAME RR is, like any other RR, authenticated
   by when retrieved from a SIG RR.  Security non-security-
   aware DNS implementations should be designed
   to handle at least two simultaneously valid keys of server.  In particular, an initial retrieval for the same CNAME or
   any other type will not retrieve an associated with a name.

   The signature, key, or NXT
   RR. For types other than CNAME it will retrieve that type number for at the KEY RR is 25.



3.1 KEY RDATA format

   The RDATA for a KEY RR consists
   target name of an object name, flags, the
   algorithm version, CNAME (or chain of CNAMEs) and will return the public
   CNAME as additional info.  In particular, a specific retrieval for
   type SIG will not get the SIG, if any, at the original domain name
   but rather an SIG at the target name.

   In general, security aware servers must be used to securely CNAME in
   DNS.  Security aware servers must (1) allow KEY, SIG, and NXT RRs
   along with CNAME RRs, (2) suppress CNAME processing on retrieval of
   these types as well as on retrieval of the type CNAME, and (3)
   automatically return SIG RRs authenticating the CNAME or CNAMEs
   encountered in resolving a query.



2.3.6 Signers Other Than The Zone

   There are two cases where a SIG resource record is signed by other
   than the zone private key.  One is for future support of dynamic
   update where an entity is permitted to authenticate/update its own
   records.  The public key of the entity must be present in the DNS and


Eastlake, Kaufman                                               [Page 9]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   be appropriately signed but the other RR(s) may be signed with the
   entity's key.  The other is for support of transaction authentication
   as described in Section 2.4 below.



2.4 DNS Transaction Authentication

   The data origin authentication service described above protects
   resource records but provides no protection for DNS message headers.
   If header bits are falsely set by a server, there is little that can
   be done.  However, it is possible to add transaction authentication.
   Such authentication means that a resolver can be sure it is at least
   getting messages from the server it thinks it queried, that the
   response is from the query it sent, and that these messages have not
   been diddled in transit.

   This is accomplished by optionally adding a special SIG resource
   record to the end of the reply which digitally signs the
   concatenation of the server's response and the resolver's query.  The
   private key used belongs to the host composing the reply, not to the
   zone being queried.  The corresponding public key is stored in and
   retrieved from the DNS.  Because replies are highly variable, message
   authentication SIGs can not be pre-calculated.  Thus it will be
   necessary to keep the private key on-line, for example in software or
   in a directly connected piece of hardware.

   DNS level transaction authentication would be unnecessary if a lower
   level (i.e., IP level) end-to-end security protocol were available.
   However, such a protocol is not yet standardized and when it is,
   there will be a significant time during which there will be systems
   on which it will be hard to add such a protocol but relatively easy
   to replace the DNS components.



















Eastlake, Kaufman                                              [Page 10]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


3. The KEY Resource Record

   The KEY resource record (RR) is used to document a key that is
   associated with a Domain Name System (DNS) name.  It will be a public
   key as only public keys are stored in the DNS.  This can be the
   public key of a zone, of a host or other end entity, or a user.  A
   KEY RR is, like any other RR, authenticated by a SIG RR. Security
   aware DNS implementations MUST be designed to handle at least two
   simultaneously valid keys of the same type associated with a name.

   The type number for the KEY RR is 25.



3.1 KEY RDATA format

   The RDATA for a KEY RR consists of flags, a protocol octet, the
   algorithm number, and the public key itself.  The format is as
   follows:

                        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   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               /
   /                          public key                           /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|

   The meaning of the KEY RR owner name, flags, and protocol octet are
   described in Sections 3.2, 3.3 and 3.4 below respectively.  The flags
   and protocol must be examined before any following data as they
   control the format and even whether there is any following data.  The
   algorithm and public key fields are described in Section 3.5.  The
   format of the public key is algorithm dependent.



3.2 Object Types, DNS Names, and Keys

   The public key in a KEY RR belongs to the object named in the owner
   name.

   This DNS name may refer to up to three different things.  For
   example, dee.cybercash.com could be (1) a zone, (2) a host or other
   end entity , and (3) the mapping into a DNS name of the user or
   account dee@cybercash.com .  Thus, there are flags in the KEY RR to
   indicate with which of these roles the owner name and public key are
   associated as described below.


Eastlake, Kaufman                                              [Page 11]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   Although the same name can be used for up to all three of these
   contexts, such overloading of a name is discouraged.  It is also
   possible to use the same key for different things with the same name
   or even different names, but this is strongly discouraged.  In
   particular, the use of a zone key as a non-zone key will usually
   require that the private key be kept on line and thereby become much
   more vulnerable.

   It would be desirable for the growth of DNS to be managed so that
   additional possible simultaneous uses for names are NOT added.  New
   uses should be distinguished by exclusive domains.  For example, all
   IP autonomous system numbers have been mapped into the in-as.arpa
   domain [draft-ietf-dnssec-as-map-*.txt] and all telephone numbers in
   the world have been mapped into the tpc.int domain [RFC 1530].  This
   is much preferable to having the same name possibly be an autonomous
   system number, telephone number, and/or host as well as a zone and a
   user.

   In addition to the name type bits, there are additional control bits,
   the "no key" bit, the "experimental" bit, the "signatory" field,
   etc., as described below.



3.3 The KEY RR Flag Field

   In the "flags" field:

        Bit 0 is the "no key" bit.  If this bit is on, there is no key
   information and the RR stops after the algorithm octet.  By the use
   of this bit, a signed KEY RR can authenticatably assert that, for
   example, a zone is not secured.

        Bit 1 is the "experimental" bit.  It is ignored if the "no key"
   bit is on and the following description assumes the "no key" bit to
   be off.  Keys may be associated with zones, entities, or users for
   experimental, trial, or optional use, in which case this bit will be
   one.  If this bit is a zero, it means that the use or availability of
   security based on the key is "mandatory".  Thus, if this bit is off
   for a zone key, the zone should be assumed secured by SIG RRs and any
   responses indicating the zone is not secured should be considered
   bogus.  If this bit is a one for a host or end entity, it might
   sometimes operate in a secure mode and at other times operate without
   security.  The experimental bit, like all other aspects of the KEY
   RR, is only effective if the KEY RR is appropriately signed by a SIG
   RR.  The experimental bit must be zero for safe secure operation and
   should only be a one for a minimal transition period.

        Bits 2-4 are reserved and must be zero.



Eastlake, Kaufman                                              [Page 12]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


        Bit 5 on indicates that this is a key itself. associated with a "user"
   or "account" at an end entity, usually a host.  The format coding of the
   owner name is that used for the responsible individual mailbox in the
   SOA record: The owner name is the user name as
   follows:

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               /
   +-              object the name of a node
   under the entity name.  For example, "j.random_user" on
   host.subdomain.domain could have a public key associated through a
   KEY RR with name j\.random_user.host.subdomain.domain.  It could be
   used in an security protocol where authentication of a user was
   desired.  This key would be useful in IP or other security for a user
   level service such a telnet, ftp, rlogin, etc.

        Bit 6 on indicates that this is a key associated with the non-
   zone "entity" whose name     +---------------+---------------+
   /                               |    flags      |   algorithm   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               /
   + - is the RR owner name.  This will commonly be
   a host but could, in some parts of the DNS tree, be some other type
   of entity such as an Autonomous System [draft-ietf-dnssec-as-map-
   *.txt].  This is the public key                           /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/

   The object name, and the flags octets are described used in Sections 3.2
   and 3.3 below respectively.  The flags must connection with the optional
   DNS transaction authentication service that can be examined before any
   following data used if the owner
   name is a DNS server host.  It could also be used in an IP-security
   protocol where authentication of a host was desired such as they control routing,
   NTP, etc.

        Bit 7 is the format "zone" bit and even whether there indicates that this is
   any following data.  The algorithm and a zone key
   for the zone whose name is the KEY RR owner name.  This is the
   fundamental type of DNS data origin authentication public key.

        Bits 8 is reserved to be the "IPSEC" bit and indicate that this
   key fields are
   described is valid for use in Section 3.4. a future IP level security protocol.  This
   key could be used in connection with secured communication on behalf
   of an end entity or user whose name is the owner name of the KEY RR
   if the entity or user bits are on.  The format presence of a KEY resource
   with the public key is algorithm
   dependent.



3.2 Object Types IPSEC and DNS Names entity bits on and experimental and Keys

   The public key in no-key bits
   off is a KEY RR belongs to guarantee that the object named in host speaks IPSEC.

        Bits 9-11 are reserved and must be zero.

        Bits 12-15 are the object
   name "signatory" field.  Frequently this will also be  If non-zero, it indicates
   that the owner name key can validly sign RRs of the KEY
   RR.  But they will be different in the case of same name.  If the key or keys stored
   under owner
   name is a zone's wildcard, then RRs with any name for which is in the zone's superzone or keys that wildcard's
   scope can be signed.  Fifteen different non-zero values are stored possible
   for cross certification of this field and any differences in their meaning are reserved for
   definition in connection with possible future DNS dynamic update or
   other zones.

   The new DNS object name may refer to up commands.  This field is meaningless for zone keys
   which always have authority to three different things.  For sign any RRs in the zone.  The
   signatory field, like all other aspects of the KEY RR, is only
   effective if the KEY RR is appropriately signed by a SIG RR.







Eastlake, Kaufman                                              [Page 10] 13]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


   example, dee.lkg.dec.com could


3.4 The Protocol Octet

   It is anticipated that keys stored in DNS will be (1) a zone, (2) a host or used in conjunction
   with Internet protocols other end
   entity , and (3) the mapping into a than DNS name of the user or account
   dee@lkg.dec.com .  Thus, there are flags in the KEY RR to indicate (keys with which of these roles the object name and public key are
   associated as described below.

   Although the same name can be used for up zone bit or
   signatory field non-zero) and IPSEC (keys with IPSEC bit set).  The
   protocol octet is provided to all three of these
   contexts, such overloading of indicate that a name is discouraged.  It key is also
   possible to valid for such
   use the same key and, for different things with the same name end entity keys or even different names, but this is strongly discouraged.  In
   particular, the use host part of a zone key as a non-zone key will usually
   require user keys, that the private key be kept on line and thereby become much
   more vulnerable.

   It would be desirable for the growth
   secure version of DNS to be managed so that
   additional possible simultaneous uses for names protocol is implemented on that entity or
   host.

   Values between 1 and 191 decimal inclusive are NOT added.  New
   uses should be distinguished available for
   assignment by exclusive domains.  For example, all
   IP autonomous system numbers have been mapped into the in-as.arpa
   domain [draft-ietf-dnssec-as-map-*.txt] IANA for such protocols.  The 63 values between 192 and all telephone numbers in
   the world have been mapped into the tpc.int domain [RFC 1530].  This
   is much preferable to having the same name possibly
   254 inclusive will not be an autonomous
   system number, telephone number, and/or host as well as assigned to a zone specific protocol and a
   user.

   In addition to the name type bits, there are three control bits, the
   "no key" bit, the "experimental" bit, and
   available for experimental use under bilateral agreement. Value 0
   indicates, for a particular key, that it is not valid for any
   particular additional protocol beyond those indicated in the "signatory" bit, as
   described below.



3.3 The KEY RR Flag Octet

   In flag
   field. And value 255 indicates that the "flags" field:

        Bit 0 key is valid for all assigned
   protocols (those in the "no key" bit.  If this bit is on, there 1 to 191 range).

   It is no key
   information intended that new uses of DNS stored keys would initially be
   implemented, and operational experience gained, using the RR stops with
   experimental range of the flags protocol octet.  By the use of
   this bit, a signed KEY RR can authenticatably assert that,  If demand for
   example, widespread
   deployment for the indefinite future warrants, a zone is not secured.

        Bits 1 is value in the "experimental" bit.  Keys may
   assigned range would then be associated with
   zones, entities, or users designated for experimental, trial, or optional use, the protocol.  Finally,
   (1) should the protocol become so widespread in conjunction with
   other protocols which case this are indicated via the protocol octet and with
   which it shares key values that duplicate RRs are a serious burden
   and (2) should the protocol provide substantial facilities not
   available in any protocol for which a flags field bit will be one.  If this has been
   allocated, then a flag field bit is may be allocated to the protocol.
   Then a zero, it means key can be simultaneously indicated as valid for that protocol
   and the use entity or availability of security based on host can be simultaneously flagged as implementing
   the key is
   "mandatory".  Thus, if this bit is off secure version of that protocol, along with other protocols for a zone,
   which flag field bits have been assigned.

   Note that the zone should IPSEC protocol being developed may provide facilities
   adequate for all point to point IP communication meaning that
   additional flag field bits would only be
   assumed secured by SIG RRs and any responses indicating assigned, when appropriate
   as indicated above, to protocols with a store-and-forward nature
   (other than DNS) or otherwise not subsumed into a point-to-point
   paradigm.



3.5 The KEY Algorithm Number and the zone MD5/RSA Algorithm

   This octet is
   not secured should be considered bogus.  Similarly, if this bit were
   off for a host the key and attempts algorithm parallel to negotiate IP-security with the
   host produced indications that IP-security was not supported, it
   should be assumed that same field for the host has been compromised or
   communications with it
   SIG resource.  The MD5/RSA algorithm described in this draft is
   number 1.  Numbers 2 through 253 are being spoofed.  On available for assignment should
   sufficient reason arise.  However, the other hand, if this designation of a new algorithm


Eastlake, Kaufman                                              [Page 11] 14]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


   bit were


   could have a major impact on interoperability and requires an IETF
   standards action.  Number 254 is reserved for private use and will
   never be assigned a one, specific algorithm.  For number 254, the host might very well sometimes operate public
   key area shown in a
   secure mode the packet diagram above will actually begin with
   an Object Identifier (OID) indicating the private algorithm in use
   and at other times operate without the availability of
   IP-security.  The experimental bit, like all other aspects remainder of the KEY
   RR, area is only effective if the KEY RR whatever is appropriately signed required by a SIG
   RR.  The experimental that
   algorithm. Values 0 and 255 are reserved.

   If the no key bit must be is zero for safe secure operation and
   should only be a one for a minimal transition period.

        Bit the algorithm field is 1, indicating
   the MD5/RSA algorithm, the public key field is structured as follows:

                        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 is the "signatory" bit.  It indicates that the 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | pub exp length|        public key can
   validly sign RRs of the same name.  If the owner name is a wildcard,
   then RRs with any name which is in exponent                    /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               /
   +-                           modulus                            /
   |                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/

   To promote interoperability, the wildcard's scope can be signed
   including NS exponent and corresponding zone KEY RRs to carve out a subzone.
   This bit is meaningless for zone keys which always have authority modulus are limited to
   sign any RRs
   2552 bits in the zone. length.  The signatory bit, like all other aspects
   of the KEY RR, public key exponent is only effective a variable length
   unsigned integer.  Its length in octets is represented as one octet
   if the KEY RR it is appropriately
   signed in the range of 1 to 255 and by a SIG RR.

        Bits 3-4 are reserved and must be zero.  If they are found non-
   zero, they should be ignored and the KEY RR used as indicated zero octet followed by the
   other flags.

        Bit 5 on indicates that this is a
   two octet unsigned length if it is longer than 255 bytes.  The public
   key associated with a "user"
   or "account" at an end entity, usually modulus field is a host. multiprecision unsigned integer.  The coding length
   of the
   owner name is that used for modulus can be determined from the responsible individual mailbox RDLENGTH and the preceding
   RDATA fields including the exponent.  Leading zero bytes are
   prohibited in the
   SOA record: The owner name is exponent and modulus.



3.6 Interaction of Flags, Algorithm, and Protocol Bytes

   Various combinations of the user name no-key bit, algorithm byte, protocol
   byte, and any protocol indicating flags (such as the name of a node
   under reserved IPSEC
   flag) are possible.  (Not that the entity name.  For example, "j.random_user" zone flag bit being on
   host.subdomain.domain could have a public key associated through or the
   signatory field being non-zero is effectively a
   KEY RR with name j\.random_user.host.subdomain.domain.  It could be
   used in an IP-security DNS protocol where authentication flag
   on.)  The meaning of a user was
   desired.  This these combinations is indicated below:

      NK = no key would be useful in IP flag
      AL = alogrithm byte
      PR = protocols indicated by protocol byte or other security for a user
   level service such a telnet, ftp, rlogin, etc.

        Bit 6 on indicates that this is a protocol flags

      x represents any valid non-zero value.

       AL  PR   NK  Meaning
        0   0   0   Illegal, claims key associated with the non-
   zone entity whose name is the RR owner name.  This will commonly be a
   host but could, in some parts has bad algorithm field.
        0   0   1   Authenticates total lack of the security for owner.


Eastlake, Kaufman                                              [Page 15]


INTERNET-DRAFT      DNS tree, Protocol Security Extensions        25 June 1995


        0   x   0   Illegal, claims key but has bad algorithm field.
        0   x   1   Specified protocols insecure, others may be some other type of
   entity such as an Autonomous System [draft-ietf-dnssec-as-map-*.txt].
   This is the public secure.
        x   0   0   Useless.  Gives key used in connection but no protocols to use it.
        x   0   1   Useless.  Denies key but for no protocols.
        x   x   0   Authenticates key for protocols and certifies
                      that those protocols are implemented with
                      security.
        x   x   1   Algorithm not understood for protocol.

      (remember, in reference to the optional DNS
   transaction authentication service above table, that can be used if a protocol
       byte of 255 means all protocols with protocol bytes assigned)



3.7 KEY RRs in the owner name
   is Construction of Responses

   An explicit request for KEY RRs does not cause any special additional
   information processing except, of course, for the corresponding SIG
   RR from a security aware server.

   Security aware DNS server host.  It could also be used servers will include KEY RRs as additional
   information in an IP-security
   protocol responses where authentication appropriate including the following:

   (1) On the retrieval of a host was desired.

        Bit 7 on indicates that this is a NS RRs, the zone key KEY RR(s) for the zone whose
   served by these name is servers will be included as additional
   information.  If not all additional info will fit, the KEY RR owner name.  This is the fundamental RR(s) have
   higher priority than type A (or AAAA) glue RRs.

   (2) On retrieval of DNS type A (or AAAA) RRs, the end entity KEY RR(s)
   will be included.  On inclusion of A (or AAAA) RRs as additional
   information, their KEY RRs will also be included but with lower
   priority than the relevant A (or AAAA) RRs.



3.8 File Representation of KEY RRs

   KEY RRs may appear as lines in a zone data origin authentication public key.



3.4 file.

   The KEY Algorithm Version flag field, protocol,  and MD5/RSA Algorithm

   This octet algorithm number octets are then
   represented as unsigned integers.  Note that if the "no key" flag is
   on in the flags, nothing appears after the key algorithm version parallel octet.

   The remaining public key portion is represented in base 64 (see
   Appendix) and may be divided up into any number of white space
   separated substrings, down to single base 64 digits, which are
   concatenated to obtain the same field
   for full signature.  These substrings can span
   lines using the standard parenthesis.

   Note that the SIG resource.  The MD5/RSA algorithm described in this draft public key may have internal sub-fields but these do


Eastlake, Kaufman                                              [Page 12] 16]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


   is number 1.  Version numbers 2 through 253 are available for
   assignment should sufficient reason arise.  However,


   not appear in the designation
   of a new version could have a major impact on interoperability and
   requires an IETF standards action.  Version 254 master file representation.  For example, with
   algorithm 1 there is reserved for
   private use a public exponent and will never be assigned then a specific algorithm.  For
   version modulus and with
   algorithm 254, the public key area shown in the packet diagram above there will actually begin with be an Object Identifier (OID) indicating the
   private OID followed by algorithm dependent
   information.
















































Eastlake, Kaufman                                              [Page 17]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


4. The SIG Resource Record

   The SIG or "signature" resource record (RR) is the fundamental way
   that data is authenticated in use and the remainder secure Domain Name System (DNS). As
   such it is the heart of the combined area is
   whatever is required by that algorithm. Algorithm versions 0 security provided.

   The SIG RR unforgably authenticates other RRs of a particular type,
   class, and name and binds them to a time interval and 255
   are reserved.

   If the no key bit signer's
   domain name.  This is zero done using cryptographic techniques and the algorithm field
   signer's private key.  The signer is 1, indicating frequently the MD5/RSA algorithm, owner of the public key filed zone
   from which the RR originated.



4.1 SIG RDATA Format

   The RDATA portion of a SIG RR is structured as follows: shown below.  The integrity of
   the RDATA information is protected by the signature field.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             public key exponent               |modulus length |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               /
   +-                           modulus                            /
   |                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The public key modulus field is a multiprecision unsigned integer.
   The "modulus length" is an unsigned octet which is the actual modulus
   length minus 64.  This limits keys to a maximum of 255+64 or 319
   octets and a minimum of 64 octets.  Although moduluses of less than
   512 significant bits are not permitted, due to the weak security they
   provide, they can be represented by using leading zeros.



3.5 KEY RRs in the Construction of Responses

   An explicit request for KEY RRs does not cause any special additional
   information processing except, of course, for the corresponding SIG
   RR from a security aware server.

   Security aware DNS servers will include KEY RRs as additional
   information in responses where  appropriate including the following:

        On the retrieval of NS RRs, the zone key KEY RR(s) for the zone
   served by these name servers will be included.  If not all additional
   info will fit, the KEY RR(s) have lower priority than type A or AAAA
   glue RRs.

        On retrieval of type A or AAAA RRs, the end entity KEY RR(s)
   will be included.  On inclusion of A or AAAA RRs as additional
   information, their KEY RRs will also be included but with lower


Eastlake, Kaufman                                              [Page 13]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


   priority than the relevant A or AAAA RRs.



3.6 File Representation of KEY RRs

   KEY RRs may appear as lines in a zone data file.

   In the RDATA portion, the object 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        type covered           |  algorithm    |     labels    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         original TTL                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      signature expiration                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         time signed                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         key footprint         |                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         signer's name appears first.         /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               /
   +-                          signature                           /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The flag octet and algorithm version octets are then represented as
   unsigned integers; however, if value of the "no key" flag SIG RR type is on in the flags,
   nothing appears after the flag octet.

   If the algorithm specified 24.

   The "type covered" is the MD5/RSA algorithm, then type of the
   exponent and modulus appear. other RRs covered by this SIG.

   The public key exponent algorithm number is an unsigned
   integer from 3 to 16777215.  The public key modulus can be quite
   large, up to 319 octets.  It is octet specifying the last data field and is
   represented in base 64 (see Appendix) and may be divided up into any
   number of white space separated substrings, down to single base 64
   digits, which are concatenated digital signature
   algorithm used parallel to obtain the full signature.  These
   substrings can span lines using algorithm octet for the standard parenthesis.

   If an KEY RR.  The
   MD5/RSA algorithm from described in this draft is number 1.  Numbers 2
   through 253 is specified, the public key
   parameters required by that algorithm are given.  If available for assignment should sufficient reason
   arise to allocate them.  However, the designation of a new algorithm
   specified is number 254, then
   could have a major impact on the interoperability of the global DNS
   systems and requires an OID appears followed by whatever IETF standards action.  Number 254 is
   required


Eastlake, Kaufman                                              [Page 18]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   reserved for the private algorithm.  An implementation that does use and will not
   understand be assigned a particular standard or specific
   algorithm.  For number 254, the "signature" area shown above will
   actually begin with an Object Identifier (OID) indicating the private
   algorithm should attempt
   to parse in use and the rest remainder of the line as one or more base 64 substrings to be
   concatenated to yield the key parameters.  Algorithm versions signature area is whatever
   is required by that algorithm.  Values 0 and 255 are reserved.





















Eastlake, Kaufman                                              [Page 14]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


4. The SIG Resource Record

   The "labels" octet is an unsigned count of how many labels there are
   in the original SIG or "signature" resource record (RR) RR owner name not counting the null label for
   root and not counting any initial "*" for a wildcard.  If a secured
   retrieval is the fundamental way
   that data result of wild card substitution, it is authenticated necessary
   for the resolver to use the original form of the name in verifying
   the secure DNS.  As such digital signature.  This field helps optimize the determination
   of the original form reducing the effort in authenticating signed
   data.

   If, on retrieval, the RR appears to have a longer name than indicated
   by "labels", the resolver can tell it is the
   heart result of wildcard
   substitution.  If the security provided.

   The SIG RR unforgably authenticates other RRs of a particular type,
   class, and owner name and binds them appears to a time interval be shorter than the
   labels count, the SIG RR should be considered corrupt and ignored.
   The maximum number of labels possible in the current DNS is 127 but
   the signer's
   fully qualified domain name.  This entire octet is done using cryptographic
   techniques reserved and the signer's private key. would be required should DNS names
   ever be expanded to 255 labels.  The signer following table give some
   examples.  The value of "labels" is frequently at the owner of top, the zone from which retrieved owner
   name on the RR originated.



4.1 SIG RDATA Format

   The RDATA portion of a SIG RR is as shown below.  The integrity of left, and the RDATA information table entry is protected by the name to use in signature field.

                        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
   verification except that "bad" means the RR is corrupt.

        labels= |  0  |   1  |    2   |      3   |      4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |        type covered
        --------+-----+------+--------+----------+----------+
               .|   . |  algorithm bad  |     labels  bad   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    bad   |                         original TTL    bad   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              d.|  *. |                      signature expiration   d. |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  bad   |                         time signed    bad   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    bad   |         key footprint
            c.d.|  *. |                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         signer's name         /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ *.d. |                                                               /
   +-   c.d. |    bad   |    bad   |
          b.c.d.|  *. | *.d. | *.c.d. |   b.c.d. |    bad   |
        a.b.c.d.|  *. | *.d. | *.c.d. | *.b.c.d. | a.b.c.d. |

   The "original TTL" field is included in the RDATA portion to avoid
   (1) authentication problems that caching servers would otherwise
   cause by decrementing the real TTL field and (2) security problems
   that unscrupulous servers could otherwise cause by manipulating the
   real TTL field.  This original TTL is protected by the signature                           /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The value of
   while the SIG RR type current TTL field is 24. not.

   NOTE:  The "type covered" is the type of "original TTL" must be restored into the other RRs covered by this SIG.

   The algorithm version number is an octet specifying RRs when
   the digital signature algorithm used.  The MD5/RSA algorithm described in this
   draft is version 1.  Version numbers 2 through 253 are available for
   assignment should sufficient reason arise to allocate them.  However, verified.  This implies that the designation of RRs for a new version could
   particular type need to all have a major impact on the
   interoperability of same TTL to start with.

   The SIG is valid until the global DNS systems and requires "signature expiration" time which is an IETF
   standards action.  Version 254
   unsigned number of seconds since the start of 1 January 1970, GMT,
   ignoring leap seconds.  (See also Section 4.4.)

   The "time signed" field is reserved for private use and will an unsigned number of seconds since the


Eastlake, Kaufman                                              [Page 15] 19]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


   never be assigned a specific algorithm.  For version 254, the
   "signature" area shown above will actually begin with an Object
   Identified (OID) indicating the private algorithm in use and the
   remainder


   start of the signature area is whatever 1 January 1970, GMT, ignoring leap seconds.

   The "key footprint" is required by a 16 bit quantity that
   algorithm.  Version numbers 0 and 255 are reserved.

   The "labels" octet is an unsigned count of how many labels there are
   in the original SIG RR owner name not counting the null label for
   root used to help
   efficiently select between multiple keys which may be applicable and not counting any initial "*" for
   as a wildcard.  If, on
   retrieval, quick check that a public key about to be used for the RR appears
   computationally expensive effort to have a longer name, check the resolver can
   tell signature is possibly
   valid.  Its exact meaning is algorithm dependent.  For the MD5/RSA
   algorithm, it is the result next to the bottom two octets of wildcard substitution.  If the RR owner name
   appears public key
   modulus needed to be shorter than decode the labels count, signature field.  That is to say, the SIG RR should be
   considered corrupt and ignored.  The maximum number
   most significant 16 of labels
   possible in the current DNS lest significant 24 bits of this quantity
   in network order.

   The "signer's name" field is 127 but the entire octet domain name of the signer generating
   the SIG RR.  This is reserved
   and would frequently the zone which contained the RR(s)
   being authenticated.  The signer's name may be required should compressed with
   standard DNS names ever be expanded to 255
   labels.  If a secured retrieval is name compression when being transmitted over the result
   network.

   The structure of wild card
   substitution, it the "signature" field  is necessary for described below.



4.1.1 Signature Data

   The actual signature portion of the resolver to use SIG RR binds the original
   form other RDATA
   fields to all of the name in verifying "type covered" RRs with that owner name.  These
   covered RRs are thereby authenticated.  To accomplish this, a data
   sequence is constructed as follows:

        data = RDATA | RR(s)...

   where | is concatenation, RDATA is all the digital signature.  The field helps
   optimize RDATA fields in the determination of SIG RR
   itself before the original form reducing signature, and RR(s) are all the effort
   in authentication signed data.  The following table give some
   examples.  The value RR(s) of "labels" is at the top, type
   covered with the retrieved same owner name on and class as the left, SIG RR in canonical
   form and order.

   For purposes of DNS security, the table entry canonical form for an RR is the RR
   with domain names (1) fully expanded (no name compression via
   pointers) and (2) all domain name letters set to use lower case.  For
   purposes of DNS security, the canonical order for RRs is to sort them
   in signature
   verification except ascending order by name, then by type, as left justified unsigned
   octet sequences in network (transmission) order where a missing octet
   sorts before a zero octet.  (See also ordering discussion in Section
   5.1.)  Within any particular name and type they are similarly sorted
   by RDATA as a left justified unsigned octet sequence. EXCEPT that "bad" means the RR
   type SIG RR(s) covering any particular type appear immediately after
   the other RRs of that type.  Thus if at name a.b there is corrupt.

      labels= |  0  |   1  |    2   |      3   |      4   |
      --------+-----+------+--------+----------+----------+
             .|   . | bad  |  bad   |    bad   |    bad   |
            d.|  *. |   d. |  bad   |    bad   |    bad   |
          c.d.|  *. | *.d. |   c.d. |    bad   |    bad   |
        b.c.d.|  *. | *.d. | *.c.d. |   b.c.d. |    bad   |
      a.b.c.d.|  *. | *.d. | *.c.d. one A RR
   and one KEY RR, their order with SIGs for concatenating the "data" to
   be signed would be as follows:



Eastlake, Kaufman                                              [Page 20]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


        a.b.  A ....
        a.b.  SIG A ...
        a.b.  KEY ...
        a.b.  SIG KEY ...

   (SIGs on type ANY should not be included in a zone.)

   How this data sequence is processed into the signature is algorithm
   dependent.



4.1.2 MD5/RSA Algorithm Signature Calculation

   For the MD5/RSA algorithm, the signature is as follows

        hash = MD5 ( data )

        signature = ( 01 | *.b.c.d. FF* | a.b.c.d. 00 |

   The "original TTL" field hash ) ** e (mod n)

   where MD5 is included the message digest algorithm documented in RFC 1321, "|"
   is concatenation, "e" is the RDATA portion to avoid
   authentication problems that caching servers would otherwise cause by
   decrementing secret key exponent of the real TTL field signer, and security problems that
   unscrupulous servers could otherwise cause by manipulating the real
   TTL field.  This original TTL
   "n" is protected by the signature while the
   current TTL field is not.

   NOTE:  The "original TTL" must be restored into public modulus of the covered RRs when signer's public key.  01, FF, and 00
   are fixed octets of the signature corresponding hexadecimal value.  The FF
   octet is verified.  This implies repeated the maximum number of times such that the RRs need to all
   have value of
   the same TTL to start with.

   The SIG quantity being exponentiated is valid until one octet shorter than the "signature expiration" time which value
   of n.

   The size of n, including most and least significant bits (which will
   be 1) SHALL be not less than 512 bits and not more than 2552 bits.  n
   and e SHOULD be chosen such that the public exponent is an
   unsigned number small.

   Leading zeros bytes are not permitted in the MD5/RSA algorithm
   signature.

   The above specifications are similar to Public Key Cryptographic
   Standard #1 [PKCS1].

   A public exponent of seconds since 3 minimizes the start effort needed to decode a
   signature.  Use of 1 January 1970, GMT.

   The "time signed" field is 3 as the public exponent may be weak for
   confidentiality uses since, if the same data can be collected
   encrypted under three different keys with an unsigned number exponent of seconds since 3 then,
   using the
   start of 1 January 1970, GMT.

   The "key footprint" is a 16 bit quantity that Chinese Remainder Theorem, the original plain text can be
   easily recovered.  This weakness is used to help not significant for DNS because
   we seek only authentication, not confidentiality.







Eastlake, Kaufman                                              [Page 16] 21]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


4.1.3 Zone Transfer (AXFR) SIG

   The above SIG mechanisms assure the authentication of all zone signed
   RRs of a particular name, class and type.  However, to efficiently select between multiple keys which may
   secure complete zone transfers, a SIG RR owned by the zone name must
   be applicable and
   as created with a quick check type covered of AXFR that a public key about to covers all zone signed
   RRs other than the SIG AXFR itself.  It will be used calculated by hashing
   together all other static zone RRs, including SIGs.  The RRs are
   ordered and concatenated for the
   computationally expensive effort to check the signature is possibly
   valid.  Its exact meaning is algorithm dependent.  For the MD5/RSA
   algorithm, it is the next to the bottom two octets hashing as described in Section 4.1.1.
   (See also ordering discussion in Section 5.1.)

   The AXFR SIG must be calculated last of the public all zone key
   modulus needed signed SIGs in
   the zone.  It really belongs to decode the signature field.  That is zone as a whole, not to say, the
   most significant 16 of the lest significant 24 bits of this quantity
   in network order. zone
   name.  The "signer's name" field AXFR SIG is the fully qualified domain name only retrieved as part of a zone transfer.
   After validation of the
   signer generating the SIG RR.  This is frequently AXFR SIG, the zone which
   contained the RR(s) being authenticated.

   The structured may be considered valid
   without verification of all the "signature" field depends on internal zone SIGs in the algorithm
   chosen and is described below for zone;
   however, any SIGs signed by entity keys or the MD5/RSA algorithm.



4.1.1 Signature Format like must still be
   validated.  The actual signature portion of the AXFR SIG RR binds RDATA to all of is transmitted first in a zone transfer so
   the
   "type covered" RRs with receiver can tell immediately that owner name.  These covered they may be able to avoid
   verifying other zone signed SIGs.

   Dynamic zone RRs are
   thereby authenticated.  To accomplish this, a data sequence is
   constructed as follows:

        data = RDATA | RR(s)...

   where | is concatenation which might be added by some future dynamic zone
   update protocol and RR(s) signed by an end entity or user key rather than a
   zone key (see Section 3.2) are all not included.  They originate in the expanded (no name
   abbreviation) RR(s) of
   network and will not, in general, be migrated to the type covered with recommended off
   line zone signing procedure (see Section 8.2).  Thus such dynamic RRs
   are not directly signed by the same owner name zone, are not included in the AXFR
   SIG, and
   class are not generally protected against omission during zone
   transfers.



4.1.4 Transaction SIGs

   A response message from a security aware server may optionally
   contain a special SIG as the SIG RR last item in canonical order.  The canonical order for RRs
   is the additional information
   section to sort them in ascending order as left justified unsigned octet
   sequences where authenticate the transaction.

   This SIG has a missing octet sorts before "type covered" field of zero, which is not a zero octet.

   How this data sequence valid RR
   type.  It is processed into calculated by using a "data" (see Section 4.1.2) of the signature is algorithm
   dependent.

   For
   entire preceding DNS reply message, including DNS header,
   concatenated with the MD5/RSA algorithm, entire DNS query message that produced this
   response, including the signature query's DNS header.  That is as follows

        hash = MD5 (

        data )

        signature = ( 01 | FF* | 00 full response (less trailing message SIG) | hash ) ** e (mod n)

   where "|" is concatenation, "e" is the secret key exponent of the
   signer, and "n" is the public modulus that is the signer's public
   key.  01, FF, and 00 are fixed octets of the corresponding
   hexadecimal value.  The FF octet is repeated the maximum number of
   times such that the value full query

   Verification of the quantity being exponentiated transaction SIG (which is one
   octet shorter than signed by the value of n.

   The size of n, including most and least significant bits (which will


Eastlake, Kaufman                                              [Page 17]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


   be 1) SHALL be not less than 512 bits and server
   host key, not more than 2552 bits.  n
   and e MUST be chosen such the zone key) by the requesting resolver shows that the public exponent is less than or
   equal to 2**24 - 1
   query and SHOULD be chosen such response were not tampered with in transit, that the public exponent
   is small.

   The above specifications are similar
   response corresponds to Public Key Cryptographic
   Standard #1 [PKCS1].

   (A public exponent of 3 minimizes the effort needed to decode a
   signature.  Use of 3 as intended query, and that the public exponent may be weak for
   confidentiality uses since, if response


Eastlake, Kaufman                                              [Page 22]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   comes from the same data can be collected
   encrypted under three different keys with an exponent queried server.



4.2 SIG RRs in the Construction of 3 then,
   using Responses

   Security aware servers MUST, for every authoritative RR the Chinese Remainder Theorem, query
   will return, attempt to send the original plain text can be
   easily recovered.  This weakness is not significant for DNS because
   we seek only authentication, not confidentiality.)



4.1.2 available SIG RRs Covering Type ANY which authenticate
   the requested RR.  The SIG RR described above protects all following rules apply to the inclusion of SIG
   RRs with a particular
   owner name, class, and type.  Thus a server must supply them all to
   convince a security aware resolver.  However, in responses:

   1. when an unscrupulous server
   could claim there were no RRs of RR is placed in a particular type and class under an
   owner name while presenting signed RRs of other types.  To provide response, its SIG RR has a higher
      priority for inclusion than other RRs that may need to be
      included.  If space does not permit its inclusion, the response
      MUST be considered truncated.

   2. when a
   means of protection against this, one or more SIG RR is added present for
   each owner name that covers an RR to be included in the type ANY.  It is calculated as
   indicated above except that all
      additional information section, the response MUST not be
      considered truncated if space does not permit the inclusion of the
      SIG RR.

   Sending SIGs to authenticate non-authoritative data (glue records and
   NS RRs for that owner name subzones) is unnecessary and must be avoided.  Note that
   KEYs for subzones are authoritative.

   If a SIG key,
   except the SIG covers any RR covering type ANY itself, are included that would be in the data
   string which is processed into answer section of the signature.

   To allow for dynamic update,
   response, its automatic inclusion MUST be the zone key signed ANY SIG RR answer section.  If it
   covers
   only zone signed RRs. an RR that would appear in the authority section, its
   automatic inclusion MUST be in the authority section.  If RRs are added to a zone it covers
   an RR that would appear in the additional information section it MUST
   appear in the additional information section.

   Optionally, DNS transactions may be authenticated by an
   entity or user key, then an ANY a SIG RR signed by that key covering at the
   end of the response in the additional information section (Section
   4.1.4).  Such SIG RRs are signed by that key should the DNS server originating the
   response.  Although the signer field must be added.



4.1.3 Zone Transfer (AXFR) SIG

   The above SIG mechanisms assure the authentication name of all the RRs of
   a particular name, class and type and all
   originating server host, the RRs of a particular
   name, class and any type.  However, to secure complete zone
   transfers, a SIG RR owned by owner name, class, TTL, and original
   TTL, are meaningless.  The class and TTL fields can be zero.  To
   conserve space, the zone owner name must SHOULD be created with a
   type covered of AXFR root (a single zero octet).
   If transaction authentication is desired, that covers all other zone signed RRs.  It will SIG RR must be calculated by hashing together all
   considered higher priority than any other static zone RRs,
   including SIGs.  The RRs are ordered and concatenated for hashing as
   described RR in Section 4.1.1.  This SIG, other than having the answer.



4.3 Processing Responses and SIG RRs

   The following rules apply to be
   calculated last the processing of all zone key signed SIGs SIG RRs included in the zone, is the same
   as any other SIG. a
   response:

   1. a security aware resolver that receives a response from what it


Eastlake, Kaufman                                              [Page 18] 23]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


   Dynamic zone RRs which might


      believes to be added by some future dynamic zone
   update protocol and signed by an end entity or user key rather than a
   zone key security aware server via a communication path
      that it believes to be secure with the AD bit (see Section 3.2) are not included.  They originate 6.1)
      set, MAY choose to accept the RRs as received
       without verifying the SIG RRs.

   2. in other cases, a security aware resolver SHOULD verify the SIG
      RRs for the RRs of interest.  This may involve initiating
      additional queries for SIG or KEY RRs, at least in the case of
      getting a response from an insecure server.  (As explained in 4.2
      above, it will not be possible to secure CNAMEs being served up by
      old resolvers.)

      NOTE: Implementors might expect the SHOULD to be a MUST.  However,
      local policy or the calling application may not require the
   network and will not,
      security services.

   3. If SIG RRs are received in general, be migrated response to a user query explicitly
      specifying the recommended off
   line zone signing procedure (see Section 8.2).  Thus such dynamic RRs
   are SIG type, no special processing is required.

   If the message does not directly pass reasonable checks or the SIG does not
   check against the signed by RRs, the zone SIG RR is invalid and should be
   ignored.  If all of the SIG RR(s) purporting to authenticate a set of
   RRs are invalid, then the set of RR(s) is not generally protected
   against omission during zone transfers.



4.1.4 Transaction SIGs

   A response message from a security aware server may optionally
   contain a special authenticated.

   If the SIG as RR is the last item RR in a response in the additional
   information section to authenticate the transaction.

   This SIG and has a "type covered" field type covered of zero, which is not a valid RR
   type.  It it is calculated by using a "data" (see section 4.1.1)
   transaction signature of the
   entire preceding DNS reply message, including DNS header,
   concatenated with response and the entire DNS query message that produced this
   response, including the query's DNS header.  That is

        data = full response (less trailing message SIG) | full query

   Verification of
   response.  It MAY be optionally checked and the message rejected if
   the checks fail.  But even if the checks succeed, such a transaction
   authentication SIG (which is does NOT authenticate any RRs in the message.
   Only a proper SIG RR signed by the server host
   key, not the zone key) by the requesting can authenticate RRs.  If a
   resolver shows that the
   query and response were does not tampered with in transit and implement transaction SIGs, it MUST at least ignore
   them without error.

   If all reasonable checks indicate that the
   response corresponds to the intended query.



4.2 SIG RR is valid then RRs in the Construction of Responses
   verified by it should be considered authenticated.



4.4 Signature Expiration, TTLs, and Validity

   Security aware servers MUST, for every authoritative RR the query
   will return, attempt to send the available must not consider SIG RRs which authenticate
   the requested RR.  If multiple such SIGs are available, there may be
   insufficient space in the response to include them all.  In this
   case, SIGs whose signer is the zone containing the RR MUST be given
   highest priority authentic
   after their expiration time and retained even if SIGs with other signers must not consider any RR to be
   dropped.

   Sending SIGs
   authenticated after its signatures have expired.  Within that
   constraint, servers should continue to authenticate follow DNS TTL aging.  Thus
   authoritative servers should continue to follow the zone refresh and
   expire parameters and a non-authoritative data (glue records server should count down
   the TTL and
   NS discard RRs for subzones) when the TTL is optional and zero.  In addition, when RRs
   are transmitted in a query response, the TTL should be avoided if it will
   lead to UDP trimmed so
   that current time plus the TTL does not extend beyond the signature


Eastlake, Kaufman                                              [Page 24]


INTERNET-DRAFT      DNS response truncation.

   If a SIG covers any Protocol Security Extensions        25 June 1995


   expiration time.  Thus, in general, the TTL on an transmitted RR that
   would be in the answer section

      min(sigExpTim,max(zoneMinTTL,min(originalTTL,currentTTL)))



4.5 File Representation of the
   response, its automatic inclusion MUST SIG RRs

   A SIG RR can be the answer section.  If it
   covers an represented as a single logical line in a zone data
   file [RFC1033] but there are some special problems as described
   below.  (It does not make sense to include a transaction
   authenticating SIG RR that would appear in the authority section, its
   automatic inclusion MUST be in the authority section.  If a file as it is a transient authentication
   that covers data including an RR that would appear in the additional information section ephemeral transaction number so it MUST


Eastlake, Kaufman                                              [Page 19]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


   appear in the additional information section.

   Optionally, DNS transactions may must
   be authenticated calculated in real time by a SIG RR at the
   end of DNS server.)

   There is no particular problem with the response signer, covered type, and
   times.  The time fields appears in the additional information section (section
   4.1.4).  Such SIG RRs are signed by form YYYYMMDDHHMMSS where YYYY
   is the DNS server originating year, the
   response.  Although first MM is the signer field must be month number (01-12), DD is the name day
   of the
   originating server host, month (01-31), HH is the owner name, class, TTL, hour in 24 hours notation (00-23),
   the second MM is the minute (00-59), and original
   TTL, are meaningless. SS is the second (00-59).

   The class and original TTL and algorithm fields appear as unsigned integers.

   The "labels" field does not appear in the file representation as it
   can be zero.  To save
   space, calculated from the name should owner name.

   The key footprint appears as an unsigned decimal number.

   However, the signature itself can be root (a single zero octet).

   [There very long.  It is the last data
   field and is represented in base 64 (see Appendix) and may be a problem with SIG divided
   up into any number of white space separated substrings, down to
   single base 64 digits, which are concatenated to obtain the full
   signature.  These substrings can be split between lines using the
   standard parenthesis.

















Eastlake, Kaufman                                              [Page 25]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


5. Non-existent Names and NXD RR's associated with domain
   names that are CNAMEs. Types

   The DNS RFCs prohibit other types SIG RR mechanism described in Section 4 above provides strong
   authentication of RRs
   appearing with that exist in a CNAME RR.  This problem zone.  But is being ignored until it is not
   immediately clear if DNS servers will really have how to authenticatably deny the existence of a problem with this.]



4.3 Processing Responses with SIG RRs

   If SIG RRs are received name
   in response to a query explicitly specifying
   the SIG type, no special processing is required but zone or a security aware
   client MAY wish to authenticate them type for an existent name.

   The nonexistence of a name in a zone is indicated by checking the signature NXT ("next")
   RR for a name interval containing the nonexistent name. An NXT RR and
   applying consistency checks.

   If
   its SIG RRs are received returned in the authority section, along with the error,
   if the server is security aware.  The same is true for a non-existent
   type under an existing name.  NXT RRs will also be returned if an
   explicit query is made for the NXT type.

   The existence of a complete set of NXT records in a zone means that
   any other response, query for any name and type to a security aware
   client should check them using the public key of server serving
   the signer.  The
   result zone should then be verified against the appropriate other result in an reply containing at least one signed RR.

   NXT RRs
   retrieved.

   If the message does not pass reasonable checks or the SIG does do not
   check against appear in zone master files since they can be derived
   from the signed RRs, rest of the SIG RR zone.



5.1 The NXT Resource Record

   The NXT resource record is invalid used to securely indicate that RRs with an
   owner name in a certain name interval do not exist in a zone and should be
   ignored. to
   indicate what zone signed type RRs are present for an existing name.

   The time of receipt owner name of the SIG NXT RR must be is an existing name in the inclusive
   range of the time signed and the signature expiration but the SIG can
   be retained zone.  It's
   RDATA is a "next" name and remains locally valid until the expiration time plus
   the authenticated TTL.

   If a type bit map. The presence of the SIG NXT RR is
   means that generally no name between its owner name and the last RR in a response name in the additional
   information section
   its RDATA area exists and has that no other types exist under its owner
   name.  This implies a type covered canonical ordering of zero, it is all domain names in a
   transaction signature of
   zone.

   The ordering is to sort labels as unsigned left justified octet
   strings where the absence of a octet sorts before a zero octet.
   Names are then sorted by sorting on the response highest level label and then,
   within those names with the query that produced
   the response.  It may be optionally checked and same highest level label by the message rejected
   if next
   lower label, etc.  Since we are talking about a zone, the checks fail.  But even it zone name
   itself always exists and all other names are the checks succeed, such a
   transaction authentication SIG does NOT authenticate any RRs in zone name with some
   prefix of lower level labels.  Thus the
   message.  Only zone name itself always sorts
   first.

   There is a proper SIG RR signets signed by problem with the zone can
   authenticate RRs.  If last NXT in a resolver does not implement transaction SIGs, zone as it MUST at least ignore them without error.

   If all reasonable checks wants to have an
   owner name which is the last existing name in sort order, which is
   easy, but it is not obvious what name to put in its RDATA to indicate that
   the SIG RR entire remainder of the name space.  This is valid then RRs
   verified handled by it should be considered authenticated treating
   the name space as circular and all other RRs putting the zone name in the response should be considered with suspicion. RDATA of


Eastlake, Kaufman                                              [Page 20] 26]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


4.4 File Representation of SIG RRs

   A SIG RR can be represented as a single logical line in a zone data
   file [RFC1033] but there


   the last NXT.

   There are some special problems as described
   below.  (It does not make sense considerations due to include a transaction
   authenticating SIG RR in a file interaction with wildcards as it is
   explained below.

   The NXT RRs for a transient authentication
   that must zone should be automatically calculated in real time by the DNS server.)

   There is no particular problem with the signer, covered type, and
   times.  The time fields appears in the form YYYYMMDDHHMMSS where YYYY
   is the year, the first MM is the month number (01-12), DD is the day
   of the month (01-31), HH is the hour in 24 hours notation (00-23), added
   to the second MM is zone by the minute (00-59), and SS is same recommended off-line process that signs the second (00-59).
   zone.  The original NXT RR's TTL and algorithm fields appears as unsigned integers.

   The "labels" field does should not appear in exceed the file representation as it zone minimum TTL.



5.2 NXT RDATA Format

   The RDATA for an NXT RR consists simply of a domain name followed by
   a bit map.

   The type number for the NXT RR is 30.

                        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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     next domain name                                          /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        type bit map                           /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The size of the bit map can be calculated inferred from the owner RDLENGTH and the
   length of the next domain name.

   The key footprint appears as



5.3 Example

   Assume zone foo.bar has entries for

               big.foo.bar,
               medium.foo.bar.
               small.foo.bar.
               tiny.foo.bar.

   Then a query to a security aware server for huge.foo.bar would
   produce an eight digit unsigned hexadecimal
   number.

   However, the signature itself can be very long.  It is error reply with the last authority section data
   field and including the
   following:

        big.foo.bar. NXT medium.foo.bar. 130
        big.foo.bar. SIG NXT ...

   Note that this response implies that big.foo.bar is represented an existing name
   in base 64 (see Appendix) and may be divided
   up into any number of white space separated substrings, down to
   single base 64 digits, which are concatenated to obtain the full
   signature.  These substrings can be split between lines using zone and thus has other RR types associated with it than NXT.
   However, only the
   standard parenthesis. NXT (and its SIG) RR appear in the response to this


Eastlake, Kaufman                                              [Page 21] 27]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


5. Non-existent Names

   The SIG RR mechanism described in section 4 above provides strong
   authentication


   query for huge.foo.bar, which is a non-existent name.



5.4 Interaction of NXT RRs that exist and Wildcard RRs

   Since, in some sense, a zone.  But is it not
   immediately clear how wildcard RR causes all possible names in an
   interval to authenticatably deny the existence exist, there should not be an NXT RR that would cover any
   part of a this interval.  Thus if *.X.ZONE exists you would expect an
   NXT RR that ends at X.ZONE and one that starts with the last name
   in a zone.

   The nonexistence of a
   covered by *.X.ZONE.  However, this "last name in a zone covered" is indicated by something
   very ugly and long like \255\255\255....X.zone.  So the NXD RR NXT for a
   name interval containing the nonexistent name.  An NXD RR and its SIG
   are returned in the additional information section, along with
   interval following is simply given the
   error, if owner name *.X.ZONE.  This "*"
   type name is not expanded when the resolver NXT is security aware.  NXD RRs can also be returned if an explicit query is made for the NXD type.

   The existence of a complete set of NXD records as authority
   information in connection with a zone means that
   any query for a non-existent name.

   If there could be any name to wildcard RRs in a security aware server serving the zone
   should result in an reply containing at least one signed RR.



5.1 The NXD Resource Record

   The NXD resource record is used to securely indicate that no RRs with
   an and thus wildcard NXTs,
   care must be taken in interpreting the results of explicit NXT
   retrievals as the owner name in may be a wildcard expansion.

   The existence of one or more wildcard RRs covering a certain name interval exist in
   makes it possible for a zone. malicious server to hide any more specificly
   named RRs in the internal.  The owner name server can just falsely return the
   wildcard match NXT instead of the NXD RR more specificly named RRs.  If
   there is a zone wide wildcard, there will be an existing NXT RR whose owner
   name in is the zone.  It's wild card and whose RDATA is another existing name in the zone.  The presence zone name.  In this case
   a server could conceal the existence of any more specific RRs in the NXD
   RR means
   zone.  (It would be possible to design a more strict NXT feature
   which would eliminate this possibility.  But it would be more complex
   and might be so constraining as to make any future dynamic update
   feature that no name between its owner could create new names very difficult (see Section
   3.2).)

   What name and should be put into the name in its RDATA area exists.  This implies a canonical ordering of all domain
   names in an RR with a zone.

   The ordering name that is to sort labels as unsigned left justified octet
   strings where
   within a wild card scope?  Since the absence of "next" existing name will be one
   that matches the wild card, the wild card name should be used.



5.5 Blocking NXT Pseudo-Zone Transfers

   In a byte sorts before secure zone, a zero byte.  Names
   are then sorted by sorting on resolver can query for the initial NXT associated
   with the zone name.  Using the next domain name RDATA field from that
   RR, it can query for the highest level label and then,
   within those names with next NXT RR.  By repeating this, it can walk
   through all the same highest level label by NXTs in the next
   lower label, etc.  Since we zone.  If there are talking about no wildcards, it can
   use this technique to find all names in a zone, zone. If it does type ANY
   queries, it can incrementally get all information in the zone name
   itself always exists and all other names
   perhaps defeat attempts to administratively block zone transfers.

   If there are any wildcards, this NXT walking technique will not find


Eastlake, Kaufman                                              [Page 28]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   any more specific RR names in the zone name with some
   prefix part of lower level labels.  Thus the zone name itself always sorts
   first.

   There is a slight problem with space the last NXD in wildcard
   covers.  By doing explicit retrievals for wildcard names, a zone as it wants to
   have an owner name which is the last existing name in sort order,
   which is easy, resolver
   could determine what intervals are covered by wildcards but still
   could not, with these techniques, find any names inside such
   intervals except by trying every name.

   If it is not obvious what name to put in its RDATA desired to
   indicate the entire remainder of block NXT walking, the name space.  This recommended method is handled by
   treating the name space as circular and putting the to
   add a zone name in the
   RDATA wide wildcard of the last NXD.

   There are additional complexities due to interaction KEY type with wildcards
   as explained below.

   The NXD RRs for a zone can be automatically calculated the no key bit on and added
   with no type (zone, entity, or user) bit on.  This will cause there
   to


Eastlake, Kaufman                                              [Page 22]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


   the be one zone by the same recommended off-line process that signs covering NXT RR and leak no information about what
   real names exist in the zone.  The NXD RR's TTL should not exceed  This protection from pseudo-zone
   transfers is bought at the zone minimum TTL.

   The type number for expense of eliminating the NXD RR is xxx.



5.2 NXD RDATA Format

   The RDATA for an NXD RR consists simply data origin
   authentication of a 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     next domain name                                          /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



5.3 Example

   Assume a the non-existence of names that NXT RRs can
   provide.  If an entire zone has entries for

               big.foo.bar,
               medium.foo.bar.
               small.foo.bar.
               tiny.foo.bar.

   Then is covered by a query to wildcard, a security aware malicious
   server for huge.foo.bar would
   produce can return an error reply with the additional information section
   containing

        big.foo.bar. NXD medium.foo.bar.

   and RR produced by matching the corresponding SIG RR.



5.4 Interaction of NXD RRs and Wildcard RRs

   As a resulting wildcard RR causes all possible names in an interval to exist,
   there should not be an NXD record that would cover any part of this
   interval.  Thus if *.X.ZONE exists you would expect an NXD RR that
   ends at X.ZONE
   NXT and can thus hide all the real data and one that starts delegations with more
   specific names in the last name covered by
   *.X.ZONE.  However, this "last zone.



5.6 Special Considerations at Delegation Points

   A name covered" other than root which is something very ugly
   and long like \255\255\255....X.zone.  So the NXD for head of a zone also appears as
   the interval
   following is simply given leaf in a superzone.  If both are secure, there will always be
   two different NXT RRs with the owner name *.X.zone.  This "*" type same name.  They can be distinguished
   by their signers and next domain name is not expanded fields.  Security aware servers
   should return the correct NXT automatically when required to
   authenticate the NXD is returned as additional
   information in connection with non-existence of a name and both NXTs, if available,
   on explicit query for a non-existent name type NXT.

   Insecure servers will never automatically return an NXT and may only
   return the NXT from the subzone on explicit queries.




















Eastlake, Kaufman                                              [Page 23] 29]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


   type.

   If there could be any wildcard RRs in a zone


6. The AD and thus wildcard NXDs,
   care must be taken in interpreting the results of explicit NXD
   retrievals as CD Bits and How to Resolve Securely

   Retrieving or resolving authentic data from the owner name may be a wildcard expansion.

   The existence of Domain Name System
   (DNS) involves starting with one or more wildcard RRs covering a name interval
   makes it possible for trusted public keys. With
   trusted keys, a malicious server browser willing to hide any more specificly
   named RRs in the internal.  The server perform cryptography can just falsely return the
   wildcard match NXD instead of the more specificly named RRs.  If
   there is a zone wide wildcard, there will be only one NXD RR whose
   owner name and RDATA are both progress
   securely through the secure DNS zone name.  In this case a server
   could conceal structure to the existence zone of any more specific RRs
   interest as described in the zone.
   (It Section 6.3. Such trusted public keys would
   normally be possible to make a more complex NXD feature, taking into
   account the types of RRs that did not exist configured in a name interval, and
   the like, which would eliminate this possibility.  But it would be
   more complex and would be so constraining as manner similar to make any future
   dynamic update feature that could create new names very difficult
   (see described in
   Section 3.2).)



5.5 Blocking NXD Pseudo-Zone Transfers

   In 6.2.  However, as a secure zone, practical matter, a security aware
   resolver can query for the initial NXD associated
   with the zone name.  Using the RDATA field from that RR, it can query
   for the next NXD RR.  By repeating this, it can walk through all the
   NXDs would still gain some confidence in the zone.  If there are no wildcards, results it can use this
   technique to find all names in a zone. If returns
   even if it does type ANY queries, was not configured with any keys but trusted what it can incrementally get all information in got
   from a local well known server as a starting point.

   Data stored at a server needs security labels of Authenticated,
   Pending, or Insecure. There is also a fourth transient state of Bad
   which indicates that SIG checks have explicitly failed on the zone and perhaps
   defeat attempts to administratively block zone transfers.

   If there are any wildcards, this NXD walking technique will data.
   Such data is not find
   any more specific RR names in retained at a security aware server. Authenticated
   means that the part data has a valid SIG under a KEY traceable via a chain
   of the name space the wildcard
   covers.  By doing explicit retrievals for wildcard names, zero or more SIG and KEY RRs to a KEY configured at the resolver
   could determine what intervals are covered by wildcards but
   via its boot file.  Pending data has no authenticated SIGs and at
   least one additional SIG the browser is still
   could not, with these techniques, find any names inside such
   intervals except by trying every name.

   If to authenticate.
   Insecure data is data which it is desired to block NXD walking, the recommended method known can never be either
   authenticated or found bad because it is to
   add in a zone wide wildcard of the KEY type with the no key bit on and
   with no type (zone, entity, or user) bit on.  This will cause there
   to be only one NXD RR an
   experimental key.  Behavior in the zone for the zone name terms of control of and leak no
   information about what real names exist in the zone.  This protection
   from pseudo-zone transfers flagging based
   on such data labels is bought at the expense described in Section 6.1.

   The proper validation of eliminating
   the data origin authentication signatures requires a reasonably secure
   shared opinion of the non-existence absolute time between resolvers and servers as
   described in Section 6.4.

   In getting to the data of names that NXD
   RRs can provide.  If an entire zone is covered by interest to respond to a wildcard, query, a
   malicious server can return an RR produced by matching the resulting
   wildcard NXD secure
   resolver may encounter genuine non-secure zones.  It may proceed
   through such zones but should report this as described in Section
   6.5.



6.1 The AD and can thus hide all CD Header Bits

   Two unused bits are allocated out of the DNS query/response format
   header.  The AD (authentic data) bit indicates in a response that the real
   data and delegations with
   more specific names included has been verified by the server providing it.  The CD
   (checking disabled) bit indicates in a query that non-verified data
   is acceptable to the zone. resolver sending the query.

   These bits are allocated from the must-be-zero Z field as follows:






Eastlake, Kaufman                                              [Page 24] 30]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


6. How


                                          1  1  1  1  1  1
            0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
          +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
          |                      ID                       |
          +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
          |QR|   Opcode  |AA|TC|RD|RA| Z|AD|CD|   RCODE   |
          +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
          |                    QDCOUNT                    |
          +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
          |                    ANCOUNT                    |
          +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
          |                    NSCOUNT                    |
          +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
          |                    ARCOUNT                    |
          +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

   These bits are zero in old servers and resolvers.  Thus the responses
   of old servers are not flagged as authenticated to Resolve Securely

   Retrieving or resolving authentic data security aware
   resolvers and queries from non-security aware resolvers do not assert
   the DNS involves starting checking disabled bit and thus will be answered by security aware
   servers only with one or more trusted public keys and, in general, progressing
   securely from them through authenticated data.  Of course security aware
   resolvers can not trust the AD bit unless they trust the server they
   are talking to and have a secure path to it.

   Any security aware resolver willing to do cryptography should assert
   the CD bit on all queries to reduce DNS zone structure latency time by allowing
   security aware servers to answer before they have resolved the zone
   validity of
   interest.  Such trusted public keys would normally be configured data.

   Security aware servers never return bad data.  For non-security aware
   resolvers or security aware resolvers requesting service by having
   the CD bit clear, security aware servers return only authenticated or
   insecure data with the AD bit set in a
   manner similar the response.  Security aware
   resolvers will know that if data is insecure versus authentic by the
   absence of SIG RRs.  Security aware servers may return pending data
   to that described in section 6.1.  However, as a
   practical matter, a security aware resolver would still gain some
   confidence resolvers requesting the service by clearing the AD
   bit in the results it returns even if it was not configured
   with any keys but trusted what it got from a local well known server
   as response.  The AD bit may only be set on a starting point.



6.1 response if the
   RRs in the response are either authenticated or insecure.



6.2 Boot File Format

   The recommended format for a boot file line directive to configure a starting
   keys zone key
   is as follows:

        pubkey name object flags protocol algorithm [exponent modulus] key-data

   for a public key.  "object" is the domain name of the thing the key
   is associated with and  "name" is the owner name if (if the line is
   translated into a KEY RR).  Flags indicates the type of key and is


Eastlake, Kaufman                                              [Page 31]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   the same as the flag byte octet in the KEY RR.  In particular, if the "no
   key" bit is on in flags, then all fields after flags algorithm  may be
   omitted.  Algorithm is the algorithm in use where one is the MD5/RSA
   algorithm and 254 indicates a private algorithm.  The material after
   the algorithm is algorithm dependent and, for private algorithms,
   starts with the algorithm's identifying OID.  For the RSA algorithm, it  It is
   the public key exponent as a decimal number between 3 and 16777215,
   and the modulus encoded in base
   64 (see Appendix).

   A file of keys for cross certification or other purposes can be
   configured though the keyfile directive as follows:

        keyfile filename

   The file looks like a master file except that it can only contain KEY
   and SIG RRs with the SIGs signed under a key configured with the
   pubkey directive.

   While it might seem logical for everyone to start with the key for
   the root zone, this has problems.  The logistics of updating every
   DNS resolver in the world when the root key changes would be
   excessive.  It may be some time before there even is a root key.
   Furthermore, many organizations will explicitly wish their "interior"
   DNS implementations to completely trust only their own zone.  These
   interior resolvers can then go through the organization's zone server
   to access data outsize the organization's domain.



6.2



6.3 Chaining Through Zones

   Starting with one or more trusted zone key, keys for a zone, it is should be
   possible to retrieve signed keys for its subzones which have a key. key
   and, if the zone is not root, for some superzone. Every authoritative
   secure zone (except root) server should also include the KEY RR for its a super-zone
   signed by the secure zone and with the owner name of the secure zone and object


Eastlake, Kaufman                                              [Page 25]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


   name of the super-zone. via a keyfile directive. This makes it
   possible to climb the tree of zones if one starts below root.  A
   secure sub-zone is indicated by a KEY RR appearing with the NS RRs
   for the sub-zone and with the same
   owner and object names. sub-zone.  These make it possible to descend within the tree
   of zones.

   A resolver should keep track of the number of successive secure zones
   traversed from a starting point to any secure zone it can reach.  In
   general, the lower such a distance number is, the greater the
   confidence in the data.  Data configured via a boot file directive
   should be given a distance number of zero.  Should a query encounter
   different data for the same query with different distance values,
   that with a larger value should be ignored.

   A security conscious resolver should completely refuse to step from a
   secure zone into a non-secure zone unless the non-secure zone is


Eastlake, Kaufman                                              [Page 32]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   certified to be non-secure or only experimentally secure by the
   presence of an authenticated KEY RR for the non-secure zone with a no
   key flag or the presence of a KEY RR with the experimental bit set.
   Otherwise the resolver is probably getting completely bogus or
   spoofed data.

   If legitimate non-secure zones are encountered in traversing the DNS
   tree, then no zone can be trusted as secure that can be reached only
   via information from such non-secure zones. Since the non-secure zone
   data could have been spoofed, the "secure" zone reach via it could be
   counterfeit.  The "distance" to data in such zones or zones reached
   via such zones could be set to 512 or more as this exceeds the
   largest possible distance through secure zones in the DNS.
   Nevertheless, continuing to apply secure checks within "secure" zones
   reached via non-secure zones will, as a practical matter, provide
   some increase in security.

   The syntax of KEY RRs, with an arbitrary object name, provides for
   cross-certification.  Although the syntax permits the owner name of a
   cross-certification KEY RR to be any name, by convention and to avoid
   an undue concentration of such KEY RRs under any particular name,
   their owner name should be the zone name prefixed with the
   destination object name (truncated an integral number of labels from
   the front if necessary due to DNS name restrictions).  Thus a key for
   isoc.org would appear in the mit.edu zone with the owner name
   isoc.org.mit.edu and object name isoc.org.

   The existence of cross certifications adds further policy questions.
   Assume we have a zone B.A and a zone Y.X.  Many possibilities exist
   for a secure resolver configured with the B.A key to get to Y.X.  If
   all the zones along the way are secure, it could climb to root and
   then descend the other side, a total of four hops (B.A -> A -> . -> X
   -> Y.X).  If the B.A administrator had installed a cross certified
   key for Y.X in the B.A zone, using that would be a shorter and


Eastlake, Kaufman                                              [Page 26]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995


   presumably more as secure way to find Y.X's key which would that can be immune to reached only
   via information from such non-secure zones. Since the non-security or even compromise of non-secure zone
   data could have been spoofed, the servers for A or root "secure" zone reach via it could be
   counterfeit.  The "distance" to data in such zones or
   X.  But what if some less trusted subzone of B.A, say flakey.B.A
   installed a cross certified key for Y.X?  If there is a conflict,
   should this zones reached
   via such zones could be preferred set to a hierarhically derived key obtained by
   climbing 512 or more as this exceeds the
   largest possible distance through secure zones in the DNS.
   Nevertheless, continuing to root and descending?  Such questions are entirely apply secure checks within "secure" zones
   reached via non-secure zones will, as a
   matter of local resolver policy.



6.3 practical matter, provide
   some increase in security.



6.4 Secure Time

   Coordinated interpretation of the time fields in SIG RRs requires
   that reasonably consistent time be available to the hosts
   implementing the DNS security extensions.

   A variety of time synchronization protocols exist including the
   Network Time Protocol (NTP, RFC1305).  If such protocols are used,
   they should be used securely so that time can not be spoofed.
   Otherwise, for example, a host could get its clock turned back and
   might then believe old SIG and KEY RRs which were valid but no longer
   are.





















Eastlake, Kaufman                                              [Page 27] 33]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


7. Operational Considerations

   This section discusses a variety of considerations in secure
   operation of DNS the Domain Name System (DNS) using these proposed
   protocol extensions.



7.1 Key Size Considerations

   There are a number of factors that effect public key size choice for
   use in the DNS security extension.  Unfortunately, these factors
   usually do not all point in the same direction.  Choice of a zone key
   size should generally be made by the zone administrator depending on
   their local conditions.

   For most schemes, larger keys are more secure but slower.
   Verification  Given a
   small public exponent, verification (the most common operation) for
   the MD5/RSA algorithm will vary roughly with the square of the
   modulus length, signing will vary with the cube of the modulus
   length, and key generation (the least common operation) will vary
   with the fourth power of the modulus length.  The current best
   algorithms for factoring a modulus and breaking RSA security vary
   roughly with the square of the modulus itself.  Thus going from a 640
   bit modulus to a 1280 bit modulus only increases the verification
   time by a factor of 4 but vastly increases the work factor of breaking the key.
   key by over 2^3000.  [RSA FAQ] An upper bound of 2552 bit has been
   established for the MD4/RSA DNS security algorithm for
   interoperability purposes.

   However, larger keys increase size of the KEY and SIG RRs.  This
   increases the chance of DNS UDP packet overflow and the possible
   necessity for using higher overhead TCP. TCP in responses.

   The recommended minimum RSA algorithm modulus size, 640 bits, is
   believed by the authors to be secure at this time and for some years
   but high level zones in the DNS tree may wish to set a higher
   minimum, perhaps 1000 bits, for security reasons.  (Since the United
   States National Security Agency generally permits export of
   encryption systems using an RSA modulus of up to 512 bits, use of
   that small a modulus, i.e. n, must be considered weak.)

   For a key used only to secure data and not to secure other keys, 640
   bits should be entirely adequate.








Eastlake, Kaufman                                              [Page 34]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


7.2 Key Storage

   It is strongly recommended that zone private keys and the zone file
   master copy be kept and used in off-line non-network connected
   physically secure machines only.  Periodically an application can be
   run to re-sign the RRs in a zone by adding NXD NXT and SIG RRs.  Then the
   augmented file can be transferred, perhaps by sneaker-net, to the


Eastlake, Kaufman                                              [Page 28]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995
   networked zone primary server machine.

   The idea is to have a one way information flow to the network to
   avoid the possibility of tampering from the network.  Keeping the
   zone master file on-line on the network and simply cycling it through
   an off-line signer does not do this.  The on-line version could still
   be tampered with if the host it resides on is compromised.  The  For
   maximum security, the master copy of the zone file should be off net
   and should not be updated based on an unsecured network mediated
   communication.

   Note, however, that secure resolvers need to be configured with some
   trusted on-line public key information (or a secure path to such a
   resolver).

   Non-zone private keys, such as host or user keys, may have to be kept
   on line to be used for real-time purposes such a IP secure IPSEC session set-up
   or secure mail.



7.3 Key Generation

   Careful key generation is a sometimes over looked but absolutely
   essential element in any cryptographically secure system.  The
   strongest algorithms used with the longest keys are still of no use
   if an adversary can guess enough to lower the size of the likely key
   space so that it can be exhaustively searched.  Suggestions will be
   found in draft-ietf-security-randomness-*.txt. RFC 1750.

   It is strongly recommended that key generation also occur off-line,
   perhaps on the machine used to sign zones (see Section 7.2).



7.4 Key Lifetimes

   No key should be used forever.  The longer a key is in use, the
   greater the probability that it will have been compromised through
   carelessness, accident, espionage, or cryptanalysis.

   No been compromised through
   carelessness, accident, espionage, or cryptanalysis.  Furthermore, if
   key rollover is a rare event, there is an increased risk that, when
   the time does come up change the key, no one at the site will
   remember how to do it or other problems will have developed in the


Eastlake, Kaufman                                              [Page 35]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   procedures.

   While key lifetime is a matter of local policy, these considerations
   suggest that no zone key should have a lifetime significantly over five
   four years.
   The recommended  A reasonable maximum lifetime for zone keys that are
   kept off-line and carefully guarded is 13 months with the intent that
   they be replaced every year.  The recommended  A reasonable maximum lifetime for end
   entity keys that are used for IP-security or the like and are kept on
   line is 36 days with the intent that they be replaced monthly or more
   often.  In some cases, an entity key lifetime of a little somewhat over a day
   may be reasonable.

   Key lifetimes significantly over a year increase the risk that, when
   the time comes up change the key, no one at the site will remember
   how to do it.




Eastlake, Kaufman                                              [Page 29]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995



7.5 Signature Lifetime

   Signature expiration times must be set far enought enough in the future that
   it is quite certain that new signatures can be generated before the
   old ones expire.  However, setting expiration too far into the future
   could, if bad data or signatures were ever generated, mean a long
   time to flush such badness.

   It is recommended that signature lifetime be a small multiple of the
   TTL but not less than a reasonable re-signing interval.



7.6 Root

   It should be noted that in DNS the root is a zone unto itself.  Thus
   the root zone key should only be see seen signing itself or signing RRs
   with names one level below root, such as .aq, .edu, or .arpa.
   Implementations MAY reject as bogus any purported root signature of
   records with a name more than one level below root.


















Eastlake, Kaufman                                              [Page 30] 36]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


8. Conformance

   Several levels of server and resolver conformance are defined.



8.1 Server Conformance

   Three

   Two levels of server conformance are defined as follows:

        Basic

        Minimal server compliance is the ability to store and retrieve
   (including zone transfer) SIG, KEY, and NXD NXT RRs.  Secondaries  Any secondary,
   caching, or other server for a secure zone must be at least basicly compliant.

        Medium minimally
   compliant and even then some things, such as secure CNAMEs, will not
   work.

        Full server compliance adds the following to basic compliance:
   (1) ability to read SIG, KEY, and NXD NXT RRs in zone files and (2)
   ability, given a zone file and private key, to add appropriate SIG
   and NXD NXT RRs, possibly via a separate application.  Primary servers
   for secure zones must be at least minimally compliant.

        Full server compliance is ability to automatically include application, (3) proper
   automatic inclusion of SIG, KEY, and NXD NXT RRs in responses responses, (4)
   suppression of CNAME following on retrieval of the security type RRs,
   (5) recognize the CD query header bit and set the AD query header
   bit, as appropriate, and (6) proper handling of the two NXT RRs at
   delegation points.  Primary servers for secure zones MUST be fully
   compliant and for completely successful secure operation, all
   secondary, caching, and other servers handling the zone should be
   fully compliant as well as meeting
   medium compliance. well.



8.2 Resolver Conformance

   Two levels of resolver compliance are defined:

        A basic compliance resolver can handle SIG, KEY, and NXD NXT RRs
   when they are explicitly requested.

        A fully compliant resolver (1) understands KEY, SIG, and NXD NXT
   RRs, (2) maintains appropriate information in its local caches and
   database to indicate which RRs have been authenticated and to what
   extent they have been authenticated, and (3) performs additional queries
   as necessary to attempt to obtain KEY, SIG, or NXD NXT RRs from non-security non-
   security aware servers. servers, (4) normally sets the CD query header bit on
   its queries.







Eastlake, Kaufman                                              [Page 31] 37]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


9. Security Considerations

   This document concerns technical details of extensions to the Domain
   Name System (DNS) protocol to provide data integrity and data origin
   authentication, public key distribution, and optional transaction
   security.

   If should be noted that, at most, these extensions guarantee the
   validity of resource records, including KEY resource records,
   retrieved from the DNS.  They do not magically solve other security
   problems.  For example, using secure DNS you can have high confidence
   in the IP address you retrieve for a host; however, this does not
   stop someone for substituting an unauthorized host at that address or
   capturing packets sent to that address and responding with packets
   apparently from that address.  Any reasonably complete security
   system will require the protection of many other facets of the
   Internet.




References

   [PKCS1] - PKCS #1: RSA Encryption Standard, RSA Data Security, Inc.,
   3 June 1991, Version 1.4.

   [RFC1032] - Domain Administrators Guide, M. Stahl, November 1987

   [RFC1033] - Domain Administrators Operations Guide, M. Lottor,
   November 1987

   [RFC1034] - Domain Names - Concepts and Facilities, P. Mockapetris,
   November 1987

   [RFC1035] - Domain Names - Implementation and Specifications

   [RFC1305] - Network Time Protocol (v3), D. Mills, April 9 1992.

   [RFC1321] - The MD5 Message-Digest Algorithm, R. Rivest, April 16
   1992.

   [RFC1750] - Randomness Requirements for Security, D. Eastlake, S.
   Crocker, J. Schiller, December 1994.

   [RSA FAQ] - RSADSI Frequently Asked Questions periodic posting.







Eastlake, Kaufman                                              [Page 32] 38]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


Authors Addresses

   Donald E. Eastlake, 3rd
   Digital Equipment Corporation
   550 King Street, LKG2-1/BB3
   Littleton,
   CyberCash, Inc.
   318 Acton Street
   Carlisle, MA 01460 01741 USA

   Telephone:   +1 508 486 6577(w)  +1 508 287 4877(h) 4877
   EMail:       dee@lkg.dec.com       dee@cybercash.com


   Charles W. Kaufman
   Iris Associates
   1 Technology Park Drive
   Westford, MA 01886 USA

   Telephone:   +1 508-392-5276
   EMail:       charlie_kaufman@iris.com




Expiration and File Name

   This draft expires 1 July 24 December 1995.

   Its file name is draft-ietf-dnssec-secext-03.txt. draft-ietf-dnssec-secext-04.txt.

























Eastlake, Kaufman                                              [Page 33] 39]


INTERNET-DRAFT      DNS Protocol Security Extensions        January        25 June 1995


Appendix: Base 64 Encoding

   The following encoding technique is taken from RFC 1521 by Borenstein
   and Freed.  It is reproduced here in a slightly an edited form for convenience.

   A 65-character subset of US-ASCII is used, enabling 6 bits to be
   represented per printable character. (The extra 65th character, "=",
   is used to signify a special processing function.)

   The encoding process represents 24-bit groups of input bits as output
   strings of 4 encoded characters. Proceeding from left to right, a
   24-bit input group is formed by concatenating 3 8-bit input groups.
   These 24 bits are then treated as 4 concatenated 6-bit groups, each
   of which is translated into a single digit in the base64 alphabet.

   Each 6-bit group is used as an index into an array of 64 printable
   characters. The character referenced by the index is placed in the
   output string.

                         Table 1: The Base64 Alphabet

      Value Encoding  Value Encoding  Value Encoding  Value Encoding
          0 A            17 R            34 i            51 z
          1 B            18 S            35 j            52 0
          2 C            19 T            36 k            53 1
          3 D            20 U            37 l            54 2
          4 E            21 V            38 m            55 3
          5 F            22 W            39 n            56 4
          6 G            23 X            40 o            57 5
          7 H            24 Y            41 p            58 6
          8 I            25 Z            42 q            59 7
          9 J            26 a            43 r            60 8
         10 K            27 b            44 s            61 9
         11 L            28 c            45 t            62 +
         12 M            29 d            46 u            63 /
         13 N            30 e            47 v
         14 O            31 f            48 w         (pad) =
         15 P            32 g            49 x
         16 Q            33 h            50 y

   Special processing is performed if fewer than 24 bits are available
   at the end of the data being encoded.  A full encoding quantum is
   always completed at the end of a quantity.  When fewer than 24 input
   bits are available in an input group, zero bits are added (on the
   right) to form an integral number of 6-bit groups.  Padding at the
   end of the data is performed using the '=' character.  Since all
   base64 input is an integral number of octets, only the following
   cases can arise: (1) the final quantum of encoding input is an
   integral multiple of 24 bits; here, the final unit of encoded output


Eastlake, Kaufman                                              [Page 34]


INTERNET-DRAFT      DNS Protocol Security Extensions        January 1995
   will be an integral multiple of 4 characters with no "=" padding, (2)


Eastlake, Kaufman                                              [Page 40]


INTERNET-DRAFT      DNS Protocol Security Extensions        25 June 1995


   the final quantum of encoding input is exactly 8 bits; here, the
   final unit of encoded output will be two characters followed by two
   "=" padding characters, or (3) the final quantum of encoding input is
   exactly 16 bits; here, the final unit of encoded output will be three
   characters followed by one "=" padding character.















































Eastlake, Kaufman                                              [Page 35] 41]

----