[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


To: dnssec@cafax.se
From: "Olaf M. Kolkman" <olaf@ripe.net>
Date: Fri, 20 Jun 2003 10:09:33 +0200
Sender: owner-dnssec@cafax.se
Subject: Key management draft draft



Hi all,

Miek and myself have been documenting some of the keymanagement issues
we are aware off. We are not yet confident if we should push this to
the I-D repository before the cut-off date.

We would appreciate a quick read and some comments. If you, dear
readers, convince us this should be in the repository before the cut
off date then we'll post it. We are not aiming at the cut of so no 
hurry.


Miek and I will both be at the IETF so we can discuss things
via VOS (voice over soundwave).

We plan  to throw this document to the DNSOP wg at some point.


-- Olaf

PS: I hope I finally fixed my subscription address to dnssec list,
since a previous copy hit the moderators queue it may appear as
duplicate. Entirely my fault and excuses for the duplicates in that
case.

---------------------------------| Olaf M. Kolkman
---------------------------------| RIPE NCC




Individual                                                    O. Kolkman
Internet-Draft                                                  RIPE NCC
Expires: December 18, 2003                                     R. Gieben
                                                              NLnet Labs
                                                           June 19, 2003


                         DNSSEC key operations
               draft-kolkman-dnssec-operational-practices

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at http://
   www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on December 18, 2003.

Copyright Notice

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

Abstract

   This Internet-Draft is intended as a place holder for considerations
   and operational practices for DNSSEC key-management.  It is intended
   to be 'long-lived' and result in documentation of best(?) current
   practices.









Kolkman & Gieben       Expires December 18, 2003                [Page 1]

Internet-Draft           DNSSEC key operations                 June 2003


Table of Contents

   1.    Introduction . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.    Time in DNSSEC . . . . . . . . . . . . . . . . . . . . . . .  3
   2.1   Time definitions . . . . . . . . . . . . . . . . . . . . . .  3
   2.2   Time considerations  . . . . . . . . . . . . . . . . . . . .  4
   3.    Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
   3.1   Using Key-Signing and Zone-Signing Keys. . . . . . . . . . .  6
   3.1.1 Motivations for the KSK and ZSK functions  . . . . . . . . .  6
   3.2   Key security considerations  . . . . . . . . . . . . . . . .  6
   3.3   Key rollovers  . . . . . . . . . . . . . . . . . . . . . . .  6
   3.3.1 Zone-signing key rollovers . . . . . . . . . . . . . . . . .  7
   3.3.2 Key-signing key rollovers  . . . . . . . . . . . . . . . . . 11
   4.    Planning for emergency key rollover. . . . . . . . . . . . . 11
   4.1   KSK compromise . . . . . . . . . . . . . . . . . . . . . . . 12
   4.2   ZSK compromise . . . . . . . . . . . . . . . . . . . . . . . 12
   4.3   Pre-configured key compromise  . . . . . . . . . . . . . . . 12
   5.    Parental policies. . . . . . . . . . . . . . . . . . . . . . 13
   6.    Initial key exchanges and parental policies
         considerations.  . . . . . . . . . . . . . . . . . . . . . . 13
   6.1   Storing keys so hashes can be regenerated  . . . . . . . . . 13
   6.2   Self signed keys during upload or not? . . . . . . . . . . . 13
   6.3   Security lameness checks.  . . . . . . . . . . . . . . . . . 13
   6.4   SIG DS validity interval.  . . . . . . . . . . . . . . . . . 13
   7.    Resolver key configuration.  . . . . . . . . . . . . . . . . 13
   8.    Security considerations  . . . . . . . . . . . . . . . . . . 13
   9.    Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . 14
         Normative References . . . . . . . . . . . . . . . . . . . . 14
         Informative References . . . . . . . . . . . . . . . . . . . 14
         Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 15
   A.    Terminology  . . . . . . . . . . . . . . . . . . . . . . . . 15
   B.    Zone-signing key rollover howto  . . . . . . . . . . . . . . 16
   C.    Typographic conventions  . . . . . . . . . . . . . . . . . . 16
         Full Copyright Statement . . . . . . . . . . . . . . . . . . 19

















Kolkman & Gieben       Expires December 18, 2003                [Page 2]

Internet-Draft           DNSSEC key operations                 June 2003


1. Introduction

   During workshops and early operational deployment test, operators and
   system administrators have gained knowledge about operating DNSSEC
   aware DNS services.  This document intends to document the current
   practices and the background on why practices are as they are.

   The structure of the document is roughly as follows.  We start with
   discussing some of the consideration with respect to timing
   parameters of DNS in relation to DNSSEC in Section 2.  Aspects of Key
   management such as key rollover schemes are described Section 3.
   Emergency rollover considerations are addressed in Section 4.In
   Typographic conventions are explained in Appendix C

   Since this is a document with operational suggestions and there is no
   protocol specifications the RFC2119 [5] language does not apply.

2. Time in DNSSEC

   In pre-DNSSEC DNS all times were relative.  The SOA, refresh, retry
   and expiration timers are counters that are being used to determine
   the time since the most recent time a slave server synced (or tried
   to sync) with a master server.  The TTL value and the SOA minimum TTL
   parameter [6] are used to to determine how long a forwarder should
   cache data after it has been fetched from an authoritative server.
   DNSSEC introduces an absolute time in the DNS.  Signatures in DNSSEC
   have an expiration date after which the signature is invalid and the
   signed data is to be considered bad.

2.1 Time definitions

   In this section we will be using a number of time related terms.
   Within the context of this document the following definitions apply:

   o  "Signature validity interval"

         Time a signature is valid.

   o  "Signing period"

         The period with  which a zone is signed

   o  "Signature refresh time"

         Time after which a previous signature made with the same key is
         replaced by a new one.  If all signatures are replaced at the
         moment of signing than the signing interval is equal to the
         signing interval.  (Some implementations only refresh the



Kolkman & Gieben       Expires December 18, 2003                [Page 3]

Internet-Draft           DNSSEC key operations                 June 2003


         signature if a certain fraction of the signature validity
         interval has expired)

   o  "Key usage time"

         The time between when data signed with this key first appears
         in the DNS and the time the authentication chain to this key is
         broken i.e.  the signature over the parental DS RR has expired
         and this public key is not hard-configured as trusted entry
         point into verifying resolvers.  The "Key Usage Time" is
         essentially the window of opportunity for crypto analists to
         attack a key.

   o  "Key publication lifetime"

         The time the public part of the key is published in the DNS.
         The public part of the key can be published in the DNS while it
         has not yet been used to sign data [Editors note: Is it true
         that cryptanalyst cannot launch a successful attack when only
         the public key, and no data signed with the private key is
         available?].

   o  "Maximum/Minimum Zone TTL"

         The maximum or minimum value of all the TTLs in your zone.


2.2 Time considerations

   Because of the expiration of signatures one should consider the
   following.

   o  The Maximum zone TTL  of your zone data should be a fraction of
      your signature validity period.

         If the the TTL would be of similar order as the signature
         validity interval then all RRsets fetched during the validity
         interval would be cached until the signature expiration time.
         The result would be that query behavior may become bursty.

         We suggest the TTL on all the RRs in your zone to be at least
         an order of magnitude smaller than your signature validity
         period.

   o  The Minimum zone TTL should be long enough to fetch and verify all
      the RRs in the authentication chain.

         [Editors note: This comes from memory, we walked into this



Kolkman & Gieben       Expires December 18, 2003                [Page 4]

Internet-Draft           DNSSEC key operations                 June 2003


         problem during one of the workshops; but I am not 100% clear on
         the issue itself and if the suggested value makes sense.  Input
         is wanted.!]

         We have seen events where data needed for verification of an
         authentication chain had expired from caches.

         We suggest the TTL on all the RRs in your zone to be at least
         30 seconds.

   o  The signature refresh time should at least be one maximum TTL
      smaller than the signature validity interval.

         If a zone is resigned shortly before the end of the signature
         validity period then this may cause simultaneous expire of data
         from caches which  leads to bursty query behavior and increase
         the load on authoritative servers.

   o  Slave servers will need to be able to fetch newly signed zones
      well before the data expires from your zone.

         If a slave server is not able to contact a master server for an
         extended period it will at some point expire and not hand out
         any data.  If the server serves a DNSSEC zone than it may well
         happen that the signatures expire well before the SOA
         expiration timer counted down to zero.  It is not possible to
         fully prevent this from happening by tweaking the SOA
         parameters but effects can be minimized if the expiration time
         is a fraction of the signing validity interval.

         When a zone cannot be updated while signatures in that zone
         have expired non-secure resolvers will continue to be able to
         resolve the data served by the particular slave servers.  Only
         security aware resolvers that receive data with expired
         signatures will experience problems.

         We suggest the expiration timer being approximately one third
         or one forth of the signing validity interval.

         We also suggest that operators of nameservers with slave zones
         develop watchdogs to be able to spot these upcoming signature
         expirations in slave zones, so that appropriate action can be
         taken.








Kolkman & Gieben       Expires December 18, 2003                [Page 5]

Internet-Draft           DNSSEC key operations                 June 2003


3. Keys

3.1 Using Key-Signing and Zone-Signing Keys.

3.1.1 Motivations for the KSK and ZSK functions

   Although all data in a zone can simply be signed by one single key
   using two keys has its advantages.  [7] introduced the concept of
   key-signing and zone-signing keys while [4] introduced the concept of
   a key with the Secure Entry Point flag set; a key that is the first
   key from the zone when following an authentication chain.  When using
   key-signing key with the SEP flag set and zone-signing keys without
   the SEP flag set one can use the following operational procedures.

   The zone-signing key can be used to sign all the data in a zone on a
   regular basis.  When a zone-signing key is to be rolled over no
   interactions with third parties are needed.  This allows for
   relatively short "Signature Validity Lifetimes" (order of days).

   The key-signing key (with the SEP flag set) is only to be used to
   sign the Key RR set from the zone apex.  If a zone-signing key is to
   be rolled over, there will be interactions with parties other than
   the zone maintainer such as the registry of the parent zone or
   administrators of verifying resolvers that have the particular key
   configured as trusted entry points.  Hence, the "Key Usage Time" of
   these keys can and should be made much longer.  Although, given a
   long enough key, the "Key Usage Time" can be on the order of years we
   suggest to plan for a "Key Usage Time" of the order of a few months
   so that a key rollover remains an operational routine.

3.2 Key security considerations

   In RFC2541 [2] a number of considerations with respect to the
   security of keys are described.  That document deals in detail with
   generation, lifetime, size and storage of private keys.

   [Editors Note: Eastlake does not suggest hard numbers.  Should this
   document suggest some lower boundaries on key-length/lifetime?]

3.3 Key rollovers

   Key rollovers are a fact of live when using DNSSEC.  A DNSSEC key
   cannot be used eternally (see RFC2541 [2]).  Zone maintainers who are
   in the process of rolling their keys have to take into account that
   data they have published in previous versions of their zone still
   lives in  caches.

   The most pressing example of this is when zone material which is



Kolkman & Gieben       Expires December 18, 2003                [Page 6]

Internet-Draft           DNSSEC key operations                 June 2003


   signed with an old key is being validated by a resolver who does not
   have the old zone key cached.  As the old key is no longer present in
   the current zone, this validation fails, marking the data bad.
   Alternatively, an attempt could be made to validate data which is
   signed with a new key against a old key that lives a a local cache,
   also resulting in data being marked bad.

   To appreciate the situation one could think of a number of
   authoritative servers that may not be instantaneously running the
   same version of a zone and a security aware non-recursive resolver
   that sits behind security aware caching forwarders.

   [Editors note: This needs more verbose explanation, nobody will
   appreciate the situation just yet]


      ---------------
      | Auth. Server|  ___
      --------------- /   \--
                   \ /       \
                    /         \  --------------------
                   /  Internet|- | Caching Forwarder|
   --------------  \          |  --------------------
   |Auth. Server| --\         |               |
   --------------   |____     /     -------------------------
                         |___/      |   sec. aware          |
          -------------- /          | non-recursive resolver|
          |Auth. Server|/           -------------------------
          --------------



3.3.1 Zone-signing key rollovers

   For zone-signing key rollovers there are two ways to make sure that
   during the rollover the data still in caches can be verified with the
   new keysets or the newly generated signatures can be verified with
   the keys still in caches.

      The new key is entered into the zone and all the data in the zone
      is signed with two signatures.  That way data from the new version
      of the zone can be verified with a key RR from the old version of
      the zone, besides the new keyset from the new version of the zone
      contains a key that can be used to verify data from the old
      version of the zone.  The drawback of this signing scheme is that
      during the rollover the amount of signatures in your zone doubles,
      which may be prohibitive if you have very big zones.




Kolkman & Gieben       Expires December 18, 2003                [Page 7]

Internet-Draft           DNSSEC key operations                 June 2003


      This rollover does not involve signing the zone data twice, but
      before the actual rollover the new key is published in the keyset.
      The keyset is signed with both the new and the old zone-signing
      key (and the key-signing keys).

   More detail on these two kinds of zone-signing key rollovers follows
   below.

3.3.1.1 A double signature zone-signing key rollover

   This section shows how to perform a ZSK key using the double zone
   data signature scheme.

   .  During the rollover stage the new version of the zone file will
   need to propagate to all authoritative servers and the data that
   existed in distant caches will need to expire.

       normal              roll            after

       SOA 0               SOA 1           SOA 2

       KEY1                KEY1            KEY1
       KEY10               KEY10           KEY11
                           KEY11
       SIG1 (KEY)          SIG1 (KEY)      SIG1 (KEY)
       SIG10(KEY)          SIG10(KEY)      SIG11(KEY)
                           SIG11(KEY)

       ZD                  ZD              ZD
       SIG10(ZD)           SIG10(ZD)       SIG11(ZD)
                           SIG11(ZD)

   normal: Version 0 of the zone: KEY1 is a key-signing key.  Key 10 is
      used to sign all the data of the zone, it is the zone-signing key.

   roll: At the rollover stage (SOA serial 1) key 11 is introduced into
      the keyset and all the data in the zone is signed with KEY 10 and
      KEY 11.  The rollover period will need to exist until all data
      from version 0 of the zone has expired from remote caches.  This
      will take at least the maximum value of all the TTLs in the
      version 0 of the zone.

   after: KEY10 is removed from the zone.  All the signatures from KEY10
      are removed from the zone.  The keyset, now only containing KEY11)
      is resigned with the KEY1.

   At every instance the data from the previous version of the zone can
   be verified with the key from the current version.  Besides, the data



Kolkman & Gieben       Expires December 18, 2003                [Page 8]

Internet-Draft           DNSSEC key operations                 June 2003


   from the current version can be verified with the data from the
   previous version of the zone.  The duration of the rollover phase and
   the period between rollovers should be at least the "Maximum Zone
   TTL".

   To be on the safe side one could make sure that the rollover phase
   lasts until the signature expiration time of the data in version 0 of
   the zone.  But this date could be considerable longer than the TTL,
   making the rollover a lengthly procedure.

   Note that in this example we assumed that the zone did not get
   modified during the rollover.  New data can be introduced in the zone
   as long as it is signed with both keys.

3.3.1.2 Pre-publish keyset rollover

   This section shows how to perform a ZSK key without the need to sign
   all the data in ones zone twice.  We recommend this method because it
   has certain advantages in the case of key compromises.  A small
   "HOWTO" for this kind of rollover can be found in Appendix B.

       normal          pre-roll       roll         after

       SOA 0           SOA 1          SOA 2        SOA 3

       KEY1            KEY1           KEY1         KEY1
       KEY10           KEY10          KEY10        KEY11
                       KEY11          KEY11
       SIG1 (KEY)      SIG1 (KEY)     SIG1(KEY)    SIG1 (KEY)
       SIG10(KEY)      SIG10(KEY)     SIG11(KEY)   SIG11(KEY)


       ZD              ZD             ZD           ZD
       SIG10(ZD)       SIG10(ZD)      SIG11(ZD)    SIG11(ZD)


   normal: Version 0 of the zone: KEY1 is a key-signing key.  Key 10 is
      used to sign all the data of the zone, its the zone-signing key.

   pre-roll: Key 11 is introduced in the keyset.  Note that no
      signatures are generated with this key yet.  The key is therefore
      not yet exposed to cryptanalysis [OK: is this a true statement?]
      The minimum duration of this pre-roll phase is the time it takes
      for the data to propagate to the authoritative servers plus TTL
      value on the keyset.  [FIXME: 3 times the TTL then]

   roll:




Kolkman & Gieben       Expires December 18, 2003                [Page 9]

Internet-Draft           DNSSEC key operations                 June 2003


      At the rollover stage (SOA serial 1) KEY 11 is used to sign the
      data in the zone (exclusively i.e.  all the signatures from KEY10
      are removed from the zone.).  KEY 10 remains published in the
      keyset.  This way data that was loaded into caches from version 1
      of the zone can still be verified with key sets fetched from
      version 2 of the zone.

      The minimum time that the keyset that includes KEY 10 is to be
      published is the time that it takes for zone data from the
      previous version of the zone to expire from old caches i.e.  the
      time it takes for this zone to propagate to all authoritative
      servers plus the maximum TTL value of any of the data in the
      previous version of the zone.  [FIXME: 3 times the TTL then?]

   after: KEY10 is removed from the zone.  The keyset, now only
      containing KEY11 is resigned with the KEY1.

   The above scheme can be simplified a bit by always publishing the
   "future" key immediately after the rollover.  The scheme would look
   like this (we show 2 rollovers):


       normal       roll         after       2nd roll   2nd after

       SOA 0        SOA 2        SOA 3       SOA 4      SOA 5

       KEY1         KEY1         KEY1        KEY1       KEY1
       KEY10        KEY10        KEY11       KEY11      KEY12
       KEY11        KEY11        KEY12       KEY12      KEY13
       SIG1 (KEY)   SIG1 (KEY)   SIG1(KEY)   SIG1(KEY)  SIG1(KEY)
       SIG10(KEY)   SIG11(KEY)   SIG11(KEY)  SIG12(KEY) SIG12(KEY)


       ZD           ZD           ZD          ZD         ZD
       SIG10(ZD)    SIG11(ZD)    SIG11(ZD)   SIG12(KEY) SIG12(KEY)


   Note that the key introduced after the rollover is not used for
   production yet; the private key can thus be stored in a physically
   secure space and does not need to be 'fetched' every time a zone
   needs to be signed.

   This scheme has the benefit that the key that is intended for future
   use, can immediately be used during an emergency rollover under the
   assumption that it was stored physically secure.






Kolkman & Gieben       Expires December 18, 2003               [Page 10]

Internet-Draft           DNSSEC key operations                 June 2003


3.3.2 Key-signing key rollovers

   For the rollover of a key-signing key the same considerations as for
   the rollover of a zone-signing key apply.  However we can use a
   single double signature scheme to guarantee that old data (only the
   apex keyset) in caches can be verified with a new keyset and vice
   verse.


       normal       roll         after

       SOA 0        SOA 2        SOA 3

       KEY1         KEY1         KEY2
                    KEY2
       KEY10        KEY10        KEY11
       KEY11        KEY11        KEY12
       SIG1 (KEY)   SIG1 (KEY)   SIG2(KEY)
                    SIG2 (KEY)
       SIG10(KEY)   SIG11(KEY)   SIG11(KEY)


       ZD           ZD           ZD
       SIG10(ZD)    SIG11(ZD)    SIG11(ZD)



4. Planning for emergency key rollover.

   This section deals with what one has to consider in preparation of a
   reaction to a possible key compromise.  Our advice is to have a
   documented procedure ready for when a key compromise would ever
   happen.

   [Editors note: We are much in favor of a rollover tactic that keeps
   the authentication chain intact as long as possible.  This has as a
   result that one has to take all the regular rollover properties into
   account.]

   When the private material of one of your keys is compromised it can
   be used by 'blackhats' for as long as a valid authentication chain
   exists.  A authentication chain remains intact for:

      as long as a signature over the compromised key made by another
      key in the authentication chain is valid,

      as long as a parental DS RR (and signature) points to the
      compromised key,



Kolkman & Gieben       Expires December 18, 2003               [Page 11]

Internet-Draft           DNSSEC key operations                 June 2003


      as long as the key is anchored in a resolver and is used as a
      starting point for validation.  (This is hardest to update.)

   While an authentication chain to your compromised key exists your
   name-space is vulnerable to abuse by the "black-hat".  Zone operators
   have to make a trade off if the abuse of the compromised key is worse
   than having data in caches that cannot be validated.  If the zone
   operator chooses to break the authentication chain to the compromised
   key, data in caches signed with this key can not be validated.  On
   the other hand if the zone administrator chooses to take the path of
   a regular roll-over the "black-hat" can spoof data so that it appears
   to be valid, note that this kind of attack will usually be localized
   in the Internet topology.


4.1 KSK compromise

   If the KSK has been compromised the parent must be notified as soon
   as possible and in a secure means.  The keyset of the zone SHOULD
   also be resigned as soon as possible.  Care must be taken to not
   break the authentication chain.  The local zone can only be resigned
   with the new KSK when the parent's zone has been updated with the new
   KSK.  Before this update takes place it could be best to drop the
   security status of a zone all together: the parent removes the DS of
   the child at the next zone update.  After that the child can be made
   secure again.  When a key is compromised it should first be
   investigated on why this happened.  If there is a leak in a
   organization a new KSK won't help much against a new compromise.
   [Editors Note: make better text, or drop this]

4.2 ZSK compromise

   Though not as bad as a KSK compromise the zone must still be resigned
   with a new ZSK as soon as possible.  As this is a local operation and
   requires no communication between the parent and child this can be
   achieved quickly.  One has to take into account though that just as
   with a normal rollover immediate disappearance from the old
   compromised key may lead to verification problems.  The pre-
   publication scheme as discussed above minimizes that problem.

4.3 Pre-configured key compromise

   A key can also be pre-configured in resolvers.  If DNSSEC is rolled
   out as planned the root key should be pre-configured in every secure
   aware resolver on the planet.

   If that key is compromised all the resolvers should be notified of
   this fact.  Zone administrators may consider setting up a mailing



Kolkman & Gieben       Expires December 18, 2003               [Page 12]

Internet-Draft           DNSSEC key operations                 June 2003


   list to communicate the fact that a Secure Zone Entry Key is about to
   be rolled over.  This communication will of course need to be secured
   e.g.  by using digital signatures.

   Key must be removed as soon as possible.  Non updated resolver will
   have a problem.  [FIXME: (miekg) extend this further]

5. Parental policies.

6. Initial key exchanges and parental policies considerations.

6.1 Storing keys so hashes can be regenerated

6.2 Self signed keys during upload or not?

6.3 Security lameness checks.

6.4 SIG DS validity interval.

   Since the DS can be replayed as long as it has a valid signature a
   short signature validity interval over the DS minimizes the time a
   child is vulnerable in the case of a compromise of the child's KSK.
   A signature validity interval that is too short introduces the
   possibility that a zone is marked BAD in case of a configuration
   error in the signer; there may not be enough time to fix the problems
   before signatures expire.  Something as mundane as weekends show the
   need for a DS signature lifetimes longer than 2 days.  We recommend
   the minimum for a DS signature validity interval to be about 2 days.

   The maximum signature lifetime of the DS record depends on how long
   child zones are willing to be vulnerable after a key compromise.  We
   consider a signature validity interval of the order of a week a good
   compromise between the operational constraints of the parent and
   minimizing damage for the child.

7. Resolver key configuration.

   Zone keys may be hard configured in resolver configurations.  In case
   of a compromise of a SEP key these "distant" resolvers will need to
   be informed of a compromise and will need to take appropriate action.
   A special purpose maillist on which such a compromise can be
   announced (securely) and a set of procedures for securely publishing
   the new SEP key should be considered.

8. Security considerations

   DNSSEC adds data integrity to the DNS.  This document tries to assess
   considerations to operate a stable and secure DNSSEC service.



Kolkman & Gieben       Expires December 18, 2003               [Page 13]

Internet-Draft           DNSSEC key operations                 June 2003


9. Acknowledgments

   We, the folk mentioned as authors, only acted as editors.  Most of
   the ideas in this draft where the result of collective efforts during
   workshops and discussions and try outs.

   At the risk of forgetting individuals who where the original
   contributors of the ideas we like to acknowledge people who where
   actively involved in the compilation of this document.  In
   alphabetical order:

   Kolkman and Gieben take the blame for all mistakes.

Normative References

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

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

   [3]  Lewis, E., "DNS Security Extension Clarification on Zone
        Status", RFC 3090, March 2001.

   [4]  Lewis, E., Kolkman, O. and J. Schlyter, "KEY RR Key-Signing Key
        (KSK) Flag", draft-ietf-dnsext-keyrr-key-signing-flag-06 (work
        in progress), February 2003.

Informative References

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

   [6]  Andrews, M., "Negative Caching of DNS Queries (DNS NCACHE)", RFC
        2308, March 1998.

   [7]  Gudmundsson, O., "Delegation Signer Resource Record", draft-
        ietf-dnsext-delegation-signer-13 (work in progress), March 2003.

   [8]  Arends, R., "Protocol Modifications for the DNS Security
        Extensions", draft-ietf-dnsext-dnssec-protocol-01 (work in
        progress), March 2003.









Kolkman & Gieben       Expires December 18, 2003               [Page 14]

Internet-Draft           DNSSEC key operations                 June 2003


Authors' Addresses

   Olaf M. Kolkman
   RIPE NCC
   Singel 256
   Amsterdam  1016 AB
   NL

   Phone: +31 20 535 4444
   EMail: olaf@ripe.net
   URI:   http://www.ripe.net/


   Miek Gieben
   NLnet Labs
   Kruislaan 419
   Amsterdam  1098 VA
   NL

   EMail: miek@nlnetlabs.nl
   URI:   http://www.nlnetlabs.nl

Appendix A. Terminology

   In this document there is some jargon used that is defined in other
   documents.  In most cases we have not copied the text from the
   documents defining the terms but give a more elaborate explanation of
   the meaning.  Note that these explanations should not be seen as
   authoritative.

   Private and Public Keys: DNSSEC secures the DNS through the use of
      public key cryptography.  Public key cryptography is based on the
      existence of 2 keys, a public key and a private key.  The public
      keys are published in the DNS by use of the KEY Resource Record
      (KEY RR).  Private keys are supposed to remain private i.e.
      should not be exposed to parties not-authorized to do the actual
      signing.

   Signer: The system that has access to the private key material and
      signs the Resource Record sets in a zone.  A signer may be
      configured to sign only parts of the zone e.g.  only those RRsets
      for which existing signatures are about to expire.

   KSK: A Key-Signing key (KSK) is a key that is used for exclusively
      signing the apex keyset.  The fact that a key is a KSK is only
      relevant to the signing tool.

   ZSK: A Zone signing key (ZSK) is a key that is used for signing all



Kolkman & Gieben       Expires December 18, 2003               [Page 15]

Internet-Draft           DNSSEC key operations                 June 2003


      data in a zone.  The fact that a key is a ZSK is only relevant to
      the signing tool.

   Singing Zone Rollover: The term used for the event where an
      administrator joyfully rolls over the keys while producing melodic
      sound patterns.


Appendix B. Zone-signing key rollover howto

   Using the pre-published signature scheme and the most conservative
   method to assure oneself that data does not live in distant caches
   here follows the "HOWTO".

      STEP 0, the preparation: Create two keys and publish them both in
      your keyset.  Mark one of the keys as "active" and the other as
      "published".  Use the "active" key for signing your zone data.
      Store the private part of the "published" key, preferably off-
      line.

      STEP 1, determine expiration: At the beginning of the rollover:
      make a note of the highest expiration time of signatures in your
      zonefile created with the current key currently marked as
      "active".

      Wait until the expiration time marked in STEP 1

      STEP 2  Then start using the key that was marked as "published" to
      sign your data i.e.  mark it as "active".  Stop using the key that
      was marked as "active", mark it as "rolled".

      STEP 3: It is safe to engage in a new rollover (STEP 1) after at
      least "signature validity interval".


Appendix C. Typographic conventions

   The following typographic conventions are used in this document:

   Key notation: A key is denoted by KEYx, where x is a number, x could
      be thought of as the key id.

   Signature notation: Signatures are denoted as SIGx(RRset), which
      means that RRset is signed with KEYx.

      Optionally the RRset can be written in full: SIG1(KEY1, KEY2).
      Which is the signature made with KEY1 over the keyset containing
      KEY1 and KEY2.



Kolkman & Gieben       Expires December 18, 2003               [Page 16]

Internet-Draft           DNSSEC key operations                 June 2003


   Zone representation: Using the above notation we have simplify the
      representation of a signed ZONE by leaving out all unneeded
      details such as the names and by just representing all non zone
      apex data by "ZD" (Zone Data).

   SOA representation: Soa's are represented as SOA x, where x is the
      serial number.

   Using this notation the following zone :


   example.net.      600     IN SOA  ns.example.net. ernie.example.net. (
                                     10         ; serial
                                     450        ; refresh (7 minutes 30 seconds)
                                     600        ; retry (10 minutes)
                                     345600     ; expire (4 days)
                                     300        ; minimum (5 minutes)
                                     )
                     600     SIG     SOA 5 2 600 20130522213204 (
                                     20130422213204 14 example.net.
                                     cmL62SI6iAX46xGNQAdQ... )
                     600     NS      a.iana-servers.net.
                     600     NS      b.iana-servers.net.
                     600     SIG     NS 5 2 600 20130507213204 (
                                     20130407213204 14 example.net.
                                     SO5epiJei19AjXoUpFnQ ... )
                     3600    KEY     256 3 5 (
                                     EtRB9MP5/AvOuVO0I8XDxy0...
                                     ) ; key id = 14
                     3600    KEY     256 3 5 (
                                     gsPW/Yy19GzYIY+Gnr8HABU...
                                     ) ; key id = 15
                     3600    SIG     KEY 5 2 3600 20130522213204 (
                                     20130422213204 14 example.net.
                                     J4zCe8QX4tXVGjV4e1r9... )
                     3600    SIG     KEY 5 2 3600 20130522213204 (
                                     20130422213204 15 example.net.
                                     keVDCOpsSeDReyV6O... )
                     600     NXT     a.example.net. NS SOA TXT SIG KEY NXT
                     600     SIG     NXT 5 2 600 20130507213204 (
                                     20130407213204 14 example.net.
                                     obj3HEp1GjnmhRjX... )
   a.example.net.    600     IN TXT  "A label"
                     600     SIG     TXT 5 3 600 20130507213204 (
                                     20130407213204 14 example.net.
                                     IkDMlRdYLmXH7QJnuF3v... )
                     600     NXT     b.example.com. TXT SIG NXT
                     600     SIG     NXT 5 3 600 20130507213204 (



Kolkman & Gieben       Expires December 18, 2003               [Page 17]

Internet-Draft           DNSSEC key operations                 June 2003


                                     20130407213204 14 example.net.
                                     bZMjoZ3bHjnEz0nIsPMM... )

                     ...


    is reduced to the following represenation:

       SOA 10

       KEY14
       KEY15

       SIG14(KEY)
       SIG15(KEY)

       ZD
       SIG14(ZD)

































Kolkman & Gieben       Expires December 18, 2003               [Page 18]

Internet-Draft           DNSSEC key operations                 June 2003


Full Copyright Statement

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

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

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

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

Acknowledgement

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



















Kolkman & Gieben       Expires December 18, 2003               [Page 19]


Home | Date list | Subject list