1046 lines
31 KiB
Plaintext
1046 lines
31 KiB
Plaintext
|
||
|
||
DNSSEC Working Group Donald E. Eastlake, 3rd
|
||
INTERNET-DRAFT IBM
|
||
Expires: March 1999 September 1998
|
||
|
||
|
||
|
||
Secret Key Establishment for DNS (TKEY RR)
|
||
------ --- ------------- --- --- ----- ---
|
||
|
||
Donald E. Eastlake 3rd
|
||
|
||
|
||
|
||
Status of This Document
|
||
|
||
This draft, file name draft-ietf-dnssec-tkey-01.txt, is intended to
|
||
be become a Proposed Standard RFC. Distribution of this document is
|
||
unlimited. Comments should be sent to the DNS security mailing list
|
||
<dns-security@tis.com> or to the author.
|
||
|
||
This document is an Internet-Draft. Internet-Drafts are working
|
||
documents of the Internet Engineering Task Force (IETF), its areas,
|
||
and its working groups. Note that other groups may also distribute
|
||
working documents as Internet-Drafts.
|
||
|
||
Internet-Drafts are draft documents valid for a maximum of six
|
||
months. Internet-Drafts may be updated, replaced, or obsoleted by
|
||
other documents at any time. It is not appropriate to use Internet-
|
||
Drafts as reference material or to cite them other than as a
|
||
``working draft'' or ``work in progress.''
|
||
|
||
To view the entire list of current Internet-Drafts, please check the
|
||
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
|
||
Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern
|
||
Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific
|
||
Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast).
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 1]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
Abstract
|
||
|
||
[draft-ietf-dnsind-tsig-*.txt] provides a means of authenticating and
|
||
securing Domain Name System (DNS) queries and responses using shared
|
||
secret keys via the TSIG resource record (RR). However, it provides
|
||
no mechanism for setting up such keys other than manual exchange.
|
||
This document describes a TKEY RR that can be used in a number of
|
||
different modes to establish shared secret keys between a DNS
|
||
resolver and server.
|
||
|
||
[changes from last draft: add IANA considerations section, make time
|
||
fields module 2**32, minor edits, update author info, ...]
|
||
|
||
|
||
|
||
Acknowledgments
|
||
|
||
The substantial comments and ideas of the following persons (listed
|
||
in alphabetic order) have been incorporated herein and are gratefully
|
||
acknowledged:
|
||
|
||
Olafur Gudmundsson <ogud@tis.com>
|
||
|
||
Stuart Kwan <skwan@microsoft.com>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 2]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
Table of Contents
|
||
|
||
Status of This Document....................................1
|
||
|
||
Abstract...................................................2
|
||
Acknowledgments............................................2
|
||
|
||
Table of Contents..........................................3
|
||
|
||
1. Introduction............................................4
|
||
1.1 General Principles.....................................4
|
||
1.2 Overview of Contents...................................5
|
||
|
||
2. The TKEY Resource Record................................6
|
||
|
||
3. Exchange via Resolver Query.............................8
|
||
3.1 Query for Server Assigned Keying.......................8
|
||
3.2 Query for Diffie-Hellman Exchanged Keying..............9
|
||
3.3 Query for GSS-API Established.........................10
|
||
|
||
4. Spontaneous Server Inclusion...........................11
|
||
4.1 Spontaneous Server Assigned Keying....................11
|
||
4.2 Spontaneous Diffie-Hellman Keying.....................11
|
||
4.3 Spontaneous GSS-API Exchange..........................11
|
||
4.4 Spontaneous Key Deletion..............................12
|
||
|
||
5. TKEY Dynamic Update Requests...........................13
|
||
5.1 Exchange via TKEY 'Add'...............................13
|
||
5.2 TKEY Deletion.........................................13
|
||
|
||
6. Methods of Encryption..................................14
|
||
|
||
7. IANA Considerations....................................15
|
||
|
||
8. Security Considerations................................16
|
||
|
||
References................................................17
|
||
|
||
Author's Address..........................................18
|
||
Expiration and File Name..................................18
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 3]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
1. Introduction
|
||
|
||
The Domain Name System (DNS) is a hierarchical, distributed, highly
|
||
available database used for mapping between domain names and
|
||
addresses, for email routing, and for other information [RFC 1034,
|
||
1035]. It has been extended to provide for public key security and
|
||
dynamic update [RFC 2136, draft-ietf-dnssec-secext2-*.txt, draft-
|
||
ietf-dnssec-update2-*.txt].
|
||
|
||
[draft-ietf-dnsind-tsig-*.txt] provides a means of more efficiently
|
||
authenticating and securing DNS messages using shared secret keys via
|
||
the TSIG resource record (RR) but provides no mechanism for setting
|
||
up such keys other than manual exchange. This document describes a
|
||
TKEY RR that can be used in a number of different modes to establish
|
||
such shared secret keys between a DNS resolver and server.
|
||
|
||
|
||
|
||
1.1 General Principles
|
||
|
||
TKEY is a meta-RR that is not stored or cached in the DNS and does
|
||
not appear in zone files. It supports a variety of modes for the
|
||
establishment and deletion of shared secret keys between DNS entities
|
||
such as resolvers and servers. The establishment of such a key
|
||
requires that state be maintained at both the resolver and the server
|
||
and the allocation of the resources to maintain such state may
|
||
require mutual agreement. In the absence of such agreement, servers
|
||
are free to return errors for any attempt to use TKEY and resolvers
|
||
are free to ignore any TKEY RRs they receive.
|
||
|
||
In all cases herein, the term "resolver" includes that part of a
|
||
server which makes full and incremental [RFC 1995] zone transfer
|
||
queries as well as other queries.
|
||
|
||
Servers are not required to implement any particular mode or modes of
|
||
the defined modes of TKEY shared secret key establishment or deletion
|
||
and may return errors for any they do not support. Based on
|
||
experience, in the future more modes may be added or some modes
|
||
described herein may be deprecated.
|
||
|
||
The means by which the shared secret keying material exchanged via
|
||
TKEY is actually used in any particular TSIG algorithm is algorithm
|
||
dependent and is defined in connection with that algorithm.
|
||
|
||
Note that this keying material and TSIGs that use it are associated
|
||
with DNS hosts. They are not tied to zones. They may be used to
|
||
authenticate queries and responses but they do not provide zone
|
||
stored DNS data origin authentication [draft-ietf-dnssec-secext2-
|
||
*.txt].
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 4]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
Two modes of TKEY, the server assigned and resolver assigned modes,
|
||
perform encryption which may effect their export or inport status for
|
||
some countries. All other aspects of DNS security, including the
|
||
SIG, KEY, NXT, and TSIG RRs and all other defined modes of TKEY
|
||
perform authentication (signatures and signature verification) only.
|
||
|
||
|
||
|
||
1.2 Overview of Contents
|
||
|
||
Section 2 below specifies the TKEY resource record (RR) and provides
|
||
a high level description of its constituent fields.
|
||
|
||
Section 3 discusses key exchange via queries for type TKEY. This is
|
||
applicable to the server assigned, Diffie-Hellman exchange, and GSS-
|
||
API establishment modes.
|
||
|
||
Section 4 discusses spontaneous inclusion of TKEY RRs in responses by
|
||
servers. This is applicable to key deletion and to server assigned
|
||
and Diffie-Hellman exchange key establishment.
|
||
|
||
Section 5 discusses use of dynamic update requests for type TKEY.
|
||
This supports optional key exchange via resolver update request,
|
||
which is applicable to key deletion and to the resolver assigned
|
||
mode.
|
||
|
||
Section 6 describes encryption methods for transmitting secret key
|
||
information.
|
||
|
||
Section 7 covers IANA considerations in assignment of TKEY modes.
|
||
|
||
Finally, Section 8 touches on some security considerations.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 5]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
2. The TKEY Resource Record
|
||
|
||
The TKEY resource record (RR) has the structure given below. Its RR
|
||
type code is 249.
|
||
|
||
Field Type Comment
|
||
----- ---- -------
|
||
|
||
NAME domain see description below
|
||
TTYPE u_int16_t TKEY
|
||
CLASS u_int16_t ignored, should be zero
|
||
TTL u_int32_t SHOULD be zero
|
||
RDLEN u_int16_t size of RDATA
|
||
RDATA: Algorithhm: domain
|
||
Inception: u_int32_t
|
||
Expiration: u_int32_t
|
||
Mode: u_int16_t
|
||
Error: u_int16_t
|
||
Key Size: u_int16_t
|
||
Key Data: octet-stream
|
||
Other Size: u_int16_t
|
||
Other Data: octet-stream undefined by this protocol
|
||
|
||
The Name field's meaning differs somewhat with mode and context as
|
||
explained in subsequent sections.
|
||
|
||
The TTL field SHOULD always be zero to be sure that older DNS
|
||
implementations do not cache TKEY RRs.
|
||
|
||
The algorithm name is a domain name with the same meaning as in
|
||
[draft-ietf-dnsind-tsig-*.txt]. The algorithm determines how the
|
||
secret keying material exchanged using the TKEY RR is actually used
|
||
to derive the algorithm specific key that is used.
|
||
|
||
The inception time and expiration time are in number of seconds since
|
||
the beginning of 1 January 1970 GMT ignoring leap seconds treated as
|
||
modulo 2**32 using ring arithmetic [RFC 1982]. In messages between a
|
||
DNS resolver to a DNS server where these fields are meaningful, they
|
||
are the either requested validity interval for the keying material
|
||
asked for or specify the validity interval of keying material
|
||
provided. To avoid reply attack, to keying material used to
|
||
authenticate TKEY keying material MUST NOT have a lifetime of more
|
||
then 2**31 seconds. This applies to keying material used in either a
|
||
TSIG or a SIG(0) transacation or request signature.
|
||
|
||
The mode field specifies the general scheme for key agreement. Note
|
||
that implementation of TKEY as a whole and of any particular mode is
|
||
optional. The following values of the Mode octet are defined or
|
||
reserved:
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 6]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
Value Description
|
||
----- -----------
|
||
0 - reserved
|
||
1 server/responder assignment
|
||
2 Diffie-Hellman exchange
|
||
3 GSS-API negotiation
|
||
4 resolver/querier assignment
|
||
5 key deletion
|
||
6-65534 - available, see IANA considerations section
|
||
65535 -reserved
|
||
|
||
The error code field is an extended RCODE. The following values are
|
||
defined:
|
||
Value Description
|
||
----- -----------
|
||
0 - no error
|
||
1-15 a DNS RCODE
|
||
16 BADSIG
|
||
17 BADKEY
|
||
18 BADTIME
|
||
19 BADMODE
|
||
|
||
The key data size field is an unsigned 16 bit integer in network
|
||
order which specifies the size of the key exchange data field in
|
||
octets. The meaning of the key data depends on the mode.
|
||
|
||
The Other Size and Other Data fields are not used. The RDLEN field
|
||
MUST equal the length of the RDATA section through the end of other
|
||
data or the RR is to be considered malformed and rejected.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 7]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
3. Exchange via Resolver Query
|
||
|
||
One method for a resolver and a server to establish a shared secret
|
||
key for use in TSIG is through queries from the resolver for type
|
||
TKEY. Such queries MUST either be accompanied by one or more TKEY
|
||
RRs in the additional information section to indicate the mode(s) in
|
||
use and other information where required or the resolver and server
|
||
must have a prior agreement that supplies any information that would
|
||
otherwise have had to be conveyed by TKEY RR(s) in the query.
|
||
|
||
For TKEY(s) appearing in a query, the TKEY RR name SHOULD be a domain
|
||
locally unique at the resolver (or globally unique), less than 128
|
||
octets long, and meaningful to the resolver to distinguish keys
|
||
and/or key agreement sessions. (For resolvers not wishing to make
|
||
this use of the name, it may be specified as root to minimize
|
||
length.) For TKEY(s) appearing in a response to a query, the TKEY RR
|
||
name SHOULD be a globally unique server assigned domain. If the TKEY
|
||
in a response is the result of a query containing a TKEY with a non-
|
||
root name, that query TKEY name SHOULD be incorporated as the prefix
|
||
of the response TKEY name.
|
||
|
||
Type TKEY queries SHOULD NOT be flagged as recursive and servers MAY
|
||
ignore the recursive header bit in TKEY queries they receive.
|
||
|
||
For every mode defined below, the inception and expiration times in a
|
||
query TKEY are set to the time interval for which the resolver wishes
|
||
the requested key to be valid and they are set in a successful
|
||
response to the actual time interval during which the server will
|
||
consider the key valid. Future modes may be defined which ignore the
|
||
inception and expiration time fields.
|
||
|
||
|
||
|
||
3.1 Query for Server Assigned Keying
|
||
|
||
In server assigned keying, the DNS server host generates the keying
|
||
material and it is sent to the resolver encrypted under a resolver
|
||
host key. See section 6 for description of encryption methods.
|
||
|
||
A resolver sends a query for type TKEY accompanied by a TKEY RR
|
||
specifying the "server assignment" mode and a resolver host KEY RR to
|
||
be used in encrypting the response, both in the additional
|
||
information section. The TKEY algorithm field is set to the signature
|
||
algorithm the resolver plans to use. It is recommended that any "key
|
||
data" provided in the query TKEY be strongly mixed with server
|
||
generated randomness [RFC 1750] to derive the keying material to be
|
||
used. The KEY that appears in the query SHOULD have a zero TTL. It
|
||
need not be accompanied by a SIG(KEY) and if the query is signed by
|
||
the resolver host and that signature is verified, then any SIG(KEY)
|
||
provided MAY be ignored for key exchange purposes. The KEY RR in
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 8]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
such a query SHOULD have a name that corresponds to the resolver host
|
||
but it is only essential that it be a public key for which the
|
||
resolver has the corresponding private key so it can decrypt the
|
||
response data.
|
||
|
||
Accepting and responding to an unsigned query of this sort may drain
|
||
some entropy from an entropy pool being maintained by the server and
|
||
used for secret key generation and so might enable an entropy
|
||
exhaustion attack. In addition, some significant amount of
|
||
computational resources may be used in the public key encryption of
|
||
response data. To protect against these effects, a server SHOULD
|
||
require such a query to be signed and MAY rate limit responses.
|
||
|
||
The server response contains a TKEY in its answer section with the
|
||
server assigned mode. If the error field is non-zero, the query
|
||
failed for the reason given. If the error field is zero, the KEY RR
|
||
provided in the query will be echoed back and the key data portion of
|
||
the response TKEY RR will be the server assigned keying data
|
||
encrypted under the public key in the KEY RR. The name of the TKEY
|
||
RR will be the server assigned name of the key and SHOULD be globally
|
||
unique.
|
||
|
||
|
||
|
||
3.2 Query for Diffie-Hellman Exchanged Keying
|
||
|
||
Diffie-Hellman (DH) key exchange is means whereby two parties can
|
||
derive some shared secret information without requiring any secrecy
|
||
of the messages they exchange [Schneier]. Provisions have been made
|
||
for the storage of DH public keys in the DNS [draft-ietf-dnssec-dhk-
|
||
*.txt].
|
||
|
||
A client sends a query for type TKEY accompanied by a TKEY RR in the
|
||
additional information section specifying the "Diffie-Hellman" mode
|
||
and accompanied by a KEY RR specifying a client host Diffie-Hellman
|
||
key. The TKEY algorithm field is set to the signature algorithm the
|
||
resolver plans to use and any "key data" provided is ignored by the
|
||
server.
|
||
|
||
Accepting and responding to an unsigned query of this sort may use
|
||
significant computation at the server; however, if the server
|
||
requires that the request be signed, then if no shared secret is in
|
||
place to permit a TSIG to be used on the request, it would be
|
||
necessary to use a SIG(0) the verification of which would impose its
|
||
own computational load.
|
||
|
||
The server response contains a TKEY in its answer section with the
|
||
Diffie-Hellman mode. If the error field is non-zero, the query failed
|
||
for the reason given. If the error field is zero, the client host
|
||
supplied Diffie-Hellman KEY should be echoed back and a server host
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 9]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
Diffie-Hellman KEY RR will also be present.
|
||
|
||
Both parties can calculate the same shared secret quantity from the
|
||
pair of Diffie-Hellman keys used [Schneier] provided they use the
|
||
same modulus. If the server host does not have an appropriate
|
||
Diffie-Hellman key to use for the exchange, it should return the
|
||
BADKEY error.
|
||
|
||
|
||
|
||
3.3 Query for GSS-API Established
|
||
|
||
This is described in a separate document [draft-skwan-gss-tsig-*.txt]
|
||
which should be seen for the full description. Basically, when an
|
||
acceptable symmetric key is not yet in place, the resolver can send a
|
||
query for type TKEY with a TKEY specifying the GSS-API mode in the
|
||
additional information section and a GSS-API token in the key data
|
||
portion. The server responds with a TKEY specifying the GSS-API mode
|
||
and a GSS-API token in the key data portion. The resolver and server
|
||
feed these tokens to their local GSS implementation and interate
|
||
until an error is encountered or a key (GSS-API session) is
|
||
established. A similar exchange can be used to delete a GSS-API
|
||
session.
|
||
|
||
Any issues of possible encryption of the GSS-API token data being
|
||
transmitted are handled by the GSS-API level. In addition, the GSS-
|
||
API level provides authentication so that this mode of TKEY query and
|
||
response MAY be, but do not need to be, signed with TSIG or SIG(0).
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 10]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
4. Spontaneous Server Inclusion
|
||
|
||
A DNS server may include TKEY RRs spontaneously as additional
|
||
information in responses. This SHOULD only be done if the server
|
||
knows the querier understands TKEY and has this option implemented.
|
||
This technique can be used to establish a server assigned key, a
|
||
Diffie-Hellman exchange key, for GSS-API exchange, and to delete a
|
||
key. A disadvantage of this technique is that there is no way for
|
||
the server to get any immediate error or success indication back and,
|
||
in the case of UDP, no way to even know if the DNS response reached
|
||
the resolver.
|
||
|
||
|
||
|
||
4.1 Spontaneous Server Assigned Keying
|
||
|
||
A server can include in the additional information section of a
|
||
response a server assignment mode TKEY with encrypted keying material
|
||
in its key data section along with a KEY RR specifying the client
|
||
public key used for the encryption. Such a response SHOULD be signed
|
||
but the KEY RR need not be signed by a SIG(KEY). A server should
|
||
only do this if there is sufficient room in a query and it has reason
|
||
to believe the resolver will understand such additional data. The
|
||
KEY RR used MUST be one for which the resolver host has the
|
||
corresponding private key or it will not be able to decrypt the
|
||
keying material.
|
||
|
||
|
||
|
||
4.2 Spontaneous Diffie-Hellman Keying
|
||
|
||
A server can include in the additional information section of a
|
||
response a Diffie-Hellman exchange mode TKEY along with two KEY RRs
|
||
specifying the client and server host public keys used for the
|
||
exchange. Such a response SHOULD be signed but the KEY RRs need not
|
||
be signed by a SIG(KEY). A server should only do this if there is
|
||
sufficient room in a query and it has reason to believe the resolver
|
||
host will understand such additional data.
|
||
|
||
|
||
|
||
4.3 Spontaneous GSS-API Exchange
|
||
|
||
A server can spontaneously include in the additional information
|
||
section of a response, a GSS-API mode TKEY. The information in the
|
||
key data section of such a TKEY is a GSS-API token which SHOULD be
|
||
fed by the resolver to its local GSS-API implementation. If such a
|
||
response is signed, the signature must verify before processing the
|
||
data. To the extent that GSS-API provides its own security, such a
|
||
response may not need to be signed. To the extent that GSS-API
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 11]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
handles duplicated messages, such a spontaneous TKEY can be sent
|
||
repeatedly, until, perhaps, a response via a GSS-API mode TKEY query
|
||
is received.
|
||
|
||
|
||
|
||
4.4 Spontaneous Key Deletion
|
||
|
||
A server can hint to a client that it has deleted a symmetric key by
|
||
spontaneously including a TKEY RR in the additional information
|
||
section of a response with the key's name and specifying the key
|
||
deletion mode. Such a response SHOULD be signed. If authenticated,
|
||
it deletes all keys with the given name whose effective time period
|
||
overlaps the inception to expiration period given in the TKEY. (If
|
||
the inception time of one symmetric key is equal to the expiration
|
||
time of another, or vice versa, they do not overlap.) Failure by a
|
||
client to receive or properly process such additional information in
|
||
a response would simply mean that the client might use a key that the
|
||
server had discarded and then get an error indication.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 12]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
5. TKEY Dynamic Update Requests
|
||
|
||
If a DNS server supports dynamic update [RFC 2136], then dynamic
|
||
update request can be used to exchange resolver assigned symmetric
|
||
keys as described in section 5.1 below and to delete previously
|
||
exchanged keys from a server as described in section 5.2 below.
|
||
|
||
|
||
|
||
5.1 Exchange via TKEY 'Add'
|
||
|
||
Optionally, a server can accept resolver assigned keys. The keying
|
||
material must be encrypted under a server host key for protection in
|
||
transmission as described in Section 6.
|
||
|
||
The resolver sends an update request to add a TKEY RR that specifies
|
||
the keying data with a KEY RR in the additional information section
|
||
specifying the server host public key used to encrypt the data. The
|
||
name of the key and the keying data are completely controlled by the
|
||
sending resolver so a globally unique key name SHOULD be used. The
|
||
server SHOULD require that this request be signed with a TSIG, if
|
||
there already exists an appropriate shared secret, or a SIG(0) by the
|
||
resolver host. The KEY RR used MUST be one for which the server has
|
||
the corresponding private key or it will not be able to decrypt the
|
||
keying material.
|
||
|
||
|
||
|
||
5.2 TKEY Deletion
|
||
|
||
Keys established via TKEY can be treated as soft state. Since DNS
|
||
transactions are originated by the resolver, the resolver can simply
|
||
toss keys, although it may have to go through another key exchange if
|
||
it later needs one. Similarly, the server can discard keys although
|
||
that will result in an error on receiving a query with a TSIG using
|
||
the discarded key.
|
||
|
||
The key expiration provided in the TKEY and the ability of each party
|
||
to discard keys may be adequate but servers that support dynamic
|
||
update [RFC 2136] may optionally implement key deletion whereby the
|
||
server discards a key on receipt from a resolver of a delete request
|
||
for a TKEY with the key's name. The mode and most fields of the TKEY
|
||
being "deleted" are ignored. But, to allow for the possibility of
|
||
multiple keys with the same name but different time periods, the only
|
||
key deleted are those whose time period overlaps with that specified
|
||
by the inception and expiration in the TKEY being "deleted".
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 13]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
6. Methods of Encryption
|
||
|
||
For the server assigned and resolver assigned key exchange, the
|
||
keying material is sent within the key data field of a TKEY RR
|
||
encrypted under the private key corresponding to the public key in an
|
||
accompanying KEY RR [draft-ietf-dnssec-secext2-*.txt]. The secret
|
||
keying material being send will generally be fairly short, usually
|
||
less than 256 bits, because that is adequate for very strong
|
||
protection with modern keyed hash or symmetric algorithms.
|
||
|
||
If the KEY RR specifies the RSA algorithm, then the keying material
|
||
is encrypted as per the description of RSA encryption in PKCS-1.
|
||
(Note, the secret keying material being sent is directly RSA
|
||
encrypted in PKCS-1 format, It is not "enveloped" under some other
|
||
symmetric algorithm.) In the unlikely event that the keying material
|
||
will not fit within one RSA modulus of the chosen public key,
|
||
additional RSA encryption blocks are included. The length of each
|
||
block is clear from the public RSA key specified and the PKCS-1
|
||
padding makes it clear what part of the encrypted data is actually
|
||
keying material and what part is formatting or the required at least
|
||
eight bytes of random [RFC 1750] padding.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 14]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
7. IANA Considerations
|
||
|
||
Mode field values 0x0000 through 0x00FF, and 0XFF00 through 0XFFFF
|
||
can only be assigned by an IETF standards action excluding
|
||
Experimental Standards (and 1 through 5 are assigned by this Proposed
|
||
Standard). Special consideration should be given before the
|
||
allocation of meaning for Mode field values 0x0000 and 0xFFFF.
|
||
|
||
Mode field values 0x0100 through 0x0FFF and 0xF0000 through 0xFEFF
|
||
are allocated by an IETF consensus (i.e., at this time, an IESG vote)
|
||
excluding Experimental Standards.
|
||
|
||
Mode field values 0x1000 through 0xEFFF are allocated based on RFC
|
||
documentation of their use or the issuance of an Experimental
|
||
Standard.
|
||
|
||
Mode values should not be changed when the status of their use
|
||
changes. I.E. a mode value assigned for an Experimental Standard
|
||
should not be changed later just because that standard's status is
|
||
changed to Proposed.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 15]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
8. Security Considerations
|
||
|
||
To avoid different interpretations of the inception and expiration
|
||
times in TKEY RRs, resovlers and servers exchanging them must have
|
||
the same idea of what time it is. One way of doing this is with the
|
||
NTP protocol [RFC 2030] but that or any other time synchronization
|
||
MUST be done securely.
|
||
|
||
It is recommended that the server require TKEY queries be signed.
|
||
However, for currently defined modes, relatively little damage will
|
||
be done if an unsigned query of this sort is accepted and processed,
|
||
as described below for each mode. In addition, requiring that a TKEY
|
||
query be signed by a TSIG (if there exists an acceptable exchanged
|
||
key between the parties) or a SIG(0) may itself impose significant
|
||
computational requirements on the server, particularly in verifying
|
||
SIG(0) public key signatures.
|
||
|
||
Responses to TKEY queries SHOULD always have DNS transaction
|
||
signatures to protect the integrity of any keying data, error codes,
|
||
etc. This signature, if present, MUST use a previously established
|
||
secret (TSIG) or public (SIG(0)) key and MUST NOT use any key that
|
||
the response to be verified is itself providing.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 16]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
References
|
||
|
||
PKCS-1 - RSA Encryption Standard (An RSA Laboratories Technical
|
||
Note).
|
||
|
||
RFC 1034 - P. Mockapetris, "Domain Names - Concepts and Facilities",
|
||
STD 13, November 1987.
|
||
|
||
RFC 1035 - P. Mockapetris, "Domain Names - Implementation and
|
||
Specifications", STD 13, November 1987.
|
||
|
||
RFC 1750 - D. Eastlake, S. Crocker & J. Schiller, "Randomness
|
||
Recommendations for Security", December 1994.
|
||
|
||
RFC 1982 - Robert Elz, Rrandy Bush, "Serial Number Arithmetic",
|
||
09/03/1996.
|
||
|
||
RFC 1995 - Masatka Ohta, "Incremental Zone Transfer in DNS", August
|
||
1996.
|
||
|
||
RFC 2030 - D. Mills, "Simple Network Time Protocol (SNTP) Version 4
|
||
for IPv4, IPv6 and OSI", October 1996.
|
||
|
||
RFC 2136 - P. Vixie, S. Thomson, Y. Rekhter, J. Bound, "Dynamic
|
||
Updates in the Domain Name System (DNS UPDATE)", 04/21/1997.
|
||
|
||
draft-ietf-dnsind-tsig-*.txt - P. Vixie, O. Gudmundsson, D.
|
||
Eastlake, "Secret Key Transaction Signatures for DNS (TSIG)".
|
||
|
||
draft-ietf-dnssec-dhk-*.txt - D. Eastlake
|
||
|
||
draft-ietf-dnssec-update2-*.txt - Donald E. Eastlake 3rd, "Secure
|
||
Domain Name System Dynamic Update".
|
||
|
||
draft-ietf-dnssec-secext2-*.txt - Donald E. Eastlake 3rd, "Domain
|
||
Name System Security Extensions".
|
||
|
||
draft-skwan-gss-tsig-*.txt - S. Kwan, P. Garg, R. Viswanathan, "GSS
|
||
Algorithm for TSIG (GSS-TSIG)"
|
||
|
||
[Schneier] - Bruce Schneier, "Applied Cryptography: Protocols,
|
||
Algorithms, and Source Code in C", 1996, John Wiley and Sons
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 17]
|
||
|
||
|
||
INTERNET-DRAFT The DNS TKEY RR September 1998
|
||
|
||
|
||
Author's Address
|
||
|
||
Donald E. Eastlake 3rd
|
||
IBM
|
||
318 Acton Street
|
||
Carlisle, MA 01741 USA
|
||
|
||
Telephone: +1 978 287 4877
|
||
+1 914 784 7913
|
||
FAX: +1 978 371 7148
|
||
email: dee3@us.ibm.com
|
||
|
||
|
||
|
||
Expiration and File Name
|
||
|
||
This draft expires March 1999.
|
||
|
||
Its file name is draft-ietf-dnssec-tkey-01.txt.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Donald E. Eastlake, 3rd [Page 18]
|
||
|