Internet DRAFT - draft-gieben-resolver-application-interface

draft-gieben-resolver-application-interface





Network Working Group                                          R. Gieben
Internet-Draft                                                NLnet Labs
Expires: October 19, 2004                                      G. Guette
                                                           IRISA / INRIA
                                                              O. Courtay
                                                           ENST-Bretagne
                                                          April 20, 2004


               DNSSEC Resolver Interface to Applications
           draft-gieben-resolver-application-interface-00.txt

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 October 19, 2004.

Copyright Notice

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

Abstract

   This document describes an interface between a DNSSEC aware resolver
   and an application. This interface will define which kind of
   information a DNSSEC aware resolver is able to send back to an
   application. The basic question we want to answer is: "What does an
   application want to know from a secure aware resolver?".

   In Section 4 we define an error bit array. The secure aware resolver
   will set specific bits in the array. With the added information in
   the error array, the application can have extra control on what to do



Gieben, et al.          Expires October 19, 2004                [Page 1]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


   with bogus data.

   When something goes wrong during the secure resolving process the
   application may also want to know where in the DNS tree this
   happened. With a simple error array one can not convey this
   information. A possibility might be to give the application the owner
   name of the DNS node where the validation failed.

   This document is written in the hope that it will lead to a
   discussion within the IETF on the resolver-application
   interaction(s).

Table of Contents

   1.  Introduction and Rational  . . . . . . . . . . . . . . . . . .  3
   2.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  What Causes Data to be Bogus?  . . . . . . . . . . . . . . . .  4
   4.  Resolver Interface to Applications . . . . . . . . . . . . . .  5
   5.  What is Local Policy To an Application?  . . . . . . . . . . .  6
   6.  Interface to the Resolver  . . . . . . . . . . . . . . . . . .  7
   7.  Resolver Interface on The Network  . . . . . . . . . . . . . .  7
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . .  7
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  7
   9.1   Normative References . . . . . . . . . . . . . . . . . . . .  7
   9.2   Informative References . . . . . . . . . . . . . . . . . . .  7
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . .  7
   A.  Document Details and Changes . . . . . . . . . . . . . . . . .  8
       Intellectual Property and Copyright Statements . . . . . . . .  9























Gieben, et al.          Expires October 19, 2004                [Page 2]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


1.  Introduction and Rational

   The server side of DNSSEC is currently well understood. What is
   lacking is a precise definition on how resolvers and applications
   interact in a DNSSEC world.

   This document intends to kick start a discussion about how a possible
   interface between application and resolver might look like and if it
   is desirable.

   We are not going to talk about caching, nor are we detailing an
   interface protocol for over the network, ie. no protocol
   modifications are proposed in this document (yet). See Section 7 for
   details.

   With DNSSEC we can distinguish between verified, unsecured and bogus
   data (See [1]). However, if data is bogus it could still be useful
   depending on why it is bogus and what the intentions of the end-user
   are.

   For example, an end-user is browsing a site called
   banking.example.com. This URL is considered bogus by the local
   resolver. If the end-user just wants to browse the site the
   bogus-ness could be considered harmless. If on the other hand the
   end-user wants to engage in online banking it would be better to
   postpone that. To make this a reality the browser should be able to
   show the end-user a pop-up and explain what the problem is. For the
   browser to do that it would have to know the exact reason on why the
   data is bogus.

   The current model (SERVFAIL when data is bogus) is not sufficient for
   an application to make this decision. In essence the decision is
   already made (SERVFAIL). Without some standard way of getting this
   information to an application, different applications will follow
   different paths to try to get this information somehow. This could
   lead to the (undesirable) situation where every networked application
   has its own secure resolver.

2.  Definitions

   [Editors Note: the abbreviations here are given to try to standardize
   those as well in one swoop. If there is a lot of discussion about it,
   the will be removed.]

   o  fully DNSSEC Aware Resolver (DAR):






Gieben, et al.          Expires October 19, 2004                [Page 3]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


         A resolver that is fully DNSSEC aware. It implements all DNSSEC
         mechanism and is capable of querying the DNS (recursively). It
         has no (permanent) cache.
   o  Application:
         In this document an application is an entity that sits between
         an end-user and the resolver.
   o  Cache:
         An entity that stores Resource Records for the duration of
         their TTL.

   We could go as far to merge a resolver (DAR) and a cache and which
   case you get a "fully DNSSEC Aware Caching Resolver", that would
   yield DACR, which is unpronounceable, so may be DARC is better
   (DNSSEC Aware Resolver and Cacher).

3.  What Causes Data to be Bogus?

   There are many ways in DNSSEC for data to become bogus. In this
   section we classify the different reasons why a resource record set
   (RR set) can become bogus.

   Data in DNSSEC is considered bogus when there is no valid chain of
   trust up to a trusted DNSKEY. As explained above, the exact reason
   for data becoming bogus could be of importance to an application.

   We can distinguish between the following causes: bogus due to an
   attack, bogus due to mis-configuration, bogus due to a timing issue
   or bogus due to local policy.
   o  Attacks
         In the case of an attack it is important that a resolver
         detects this (and reports it to the user). There are many
         attacks possible. We list some of them below.
         Some resource records are missing in the answer received by the
         resolver, possibly because these records are spoofed away by an
         attacker.
         Introduction of extra records. An attacker can add wrong RRSIG
         records. These records can be added in messages from secure
         zones, but also in messages from otherwise unsecured zones.
         Another avenue of attacks might be tricking the resolver into
         believing it is resolving in the unsecure tree, while in fact
         the tree is secured.
   o  Mis-configuration
         [Editors Note: What kind of things can we expect here? Missing
         KEY records....Important thing here: it that it would be nice
         if we could distinguish between a misconfiguration and an
         attack. If you know it is missing, it is an attack. Otherwise a
         misconfiguration is also a possibility.]




Gieben, et al.          Expires October 19, 2004                [Page 4]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


   o  Timing issue
         When a RRset together with its RRSIG is validated by a resolver
         the first thing checked is the RRSIG expiration and inception
         time. If the current time does not fall in the interval set by
         those two times a RRSIG is invalid and the data bogus. It could
         be conceivable that RRSIG's older than a few minutes are still
         useful for validation.
   o  Local Policy Decisions
         Don't accept certain key sizes. Only accept some algorithms.
         Etc. [Editors Note: Not accepting certain (i.e.) algorithms
         will thus lead to bogus data, while the DNSSEC crypto may be
         completely valid.]
   o  Others?
         [Editors Note: are there more?]

4.  Resolver Interface to Applications

   To signal the resolving status to an application we propose to use an
   array of bits. This error array will have specific bits set to 1
   which correspond to specific errors. After a query multiple bits
   maybe set to 1.

   The bit array has a length of 32 bits. [Editors Note: If 32 bits is
   too little we use 64.] The left most bit is numbered 0 and the right
   most if numbered 31. The left most two bits of these array have a
   slightly different meaning. Bit 0 will tell an application if the
   entire answer is validated (1) or not (0). Bit 1 is used to signal if
   the data was gathered with one or more (unsecure) DNS query (0) or
   was done by utilizing DNSSEC (1). If a resolver has a trusted anchor
   for the current lookup the bit must be set.

   The definition of the bits is as follows: If the definition is true
   the bit is set to 1, otherwise the bit is 0.


















Gieben, et al.          Expires October 19, 2004                [Page 5]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


        Bit # | Definition	            Bit # | Definition
         0  Unsecure answer            16  AD bit set
         1  Validated answer           17  CD bit set
         2  Indeterminate		    18
         3  Missing record             19
         4  Delegation problem         20
         5  Policy error               21
         6                             22
         7  DS involved                23  Through secure channel
         8  NSEC involved              24  Signature timing problem
         9  NS involved                25  Bad algorithm
        10  RRSIG involved             26  Key size not accepted
        11  DNSKEY involved            27
        12                             28
        13                             29
        14                             30
        15                             31

   There are 4 blocks defined in the array, these are: block 1 (bit 0 -
   bit 5); general indication of any error. Block 2 (bit 7 - bit 11);
   indicate which RRs are involved in the error. Block 3 (bit 16 - bit
   17); what bits are set on the packet and block 4 (bit 23 - bit 26);
   local policy disapproved the answer.

   As said, bits 0 and 1 indicate the general failure mode. If bit 0 and
   bit 1 are both set to 0 an error has occurred. If bit 2 is set, the
   resolver could not determine the actual cause of the error.

   When bit 0 and 1 are 0 the other bits in the array should now
   indicate what the error is. If bit 3 is set, the meaning of the other
   bits in the array is undefined.

   Bits 6 up to 10 indicate which RR(s) are involved in the error. Bits
   3,4 and 5 indicate what the error is. Bit 3 indicates some records
   are missing, bit 4 tells the application there was a delegation error
   and bit 5 says local policy was the culprit.

   Bit 18 means that the response was obtained though a secure channel.
   This means the resolver is configured to securely communicate with a
   forwarder.

5.  What is Local Policy To an Application?

   Local policy is a set of rules which define which bits from the error
   array can/should be overruled by the application.

   Local policy defines all the rules that the application must respect,
   and thus defines the behavior of the application when it receives



Gieben, et al.          Expires October 19, 2004                [Page 6]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


   bogus data or when the verification of the RRset generates an error.

6.  Interface to the Resolver

   In the same way as an application is able to overrule the error
   array, the user or system administrator can overrule the resolver and
   thereby influence all applications on a host.

   This kind of behavior can best be summarized as: "Don't tell the
   application X", or "Always tell the application X". Where 'X' is the
   appropriate bit in the error array.

7.  Resolver Interface on The Network

   To send this feedback information over the network would require a
   protocol extension. We, the authors, think such a extension does not
   belong in this document. However, for the sake of symmetry such an
   interface should be defined. Right now we only describe
   resolver-application behavior on a single host.

8.  Acknowledgments

   The authors would like to thanks the following persons for their
   contributions to this document (in no particular order): Jelte
   Jansen, Scott Rose, Suresh Krishnaswamy.

9.  References

9.1  Normative References

9.2  Informative References

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


Authors' Addresses

   Miek Gieben
   NLnet Labs
   Kruislaan 419
   Amsterdam  1098 VA
   NL

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




Gieben, et al.          Expires October 19, 2004                [Page 7]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


   Gilles Guette
   IRISA / INRIA
   Campus de Beaulieu
   Rennes  35042
   FR

   EMail: gilles.guette@irisa.fr
   URI:   http://www.irisa.fr


   Olivier Courtay
   ENST-Bretagne
   2, rue de la chataigneraie
   Cesson Sevigne  35512
   FR

   EMail: olivier.courtay@enst-bretagne.fr
   URI:   http://www.enst-bretagne.fr

Appendix A.  Document Details and Changes































Gieben, et al.          Expires October 19, 2004                [Page 8]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights. Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11. Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard. Please address the information to the IETF Executive
   Director.


Full Copyright Statement

   Copyright (C) The Internet Society (2004). 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 assignees.

   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



Gieben, et al.          Expires October 19, 2004                [Page 9]

Internet-Draft    DNSSEC Resolver Interface to Applications   April 2004


   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Acknowledgment

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











































Gieben, et al.          Expires October 19, 2004               [Page 10]