draft-ietf-dnsext-tkey-00.txt   draft-ietf-dnsext-tkey-01.txt 
DNSEXT Working Group Donald E. Eastlake, 3rd DNSEXT Working Group Donald E. Eastlake, 3rd
INTERNET-DRAFT Motorola INTERNET-DRAFT Motorola
Expires: August 2000 February 2000 Expires: September 2000 March 2000
Secret Key Establishment for DNS (TKEY RR) Secret Key Establishment for DNS (TKEY RR)
------ --- ------------- --- --- ----- --- ------ --- ------------- --- --- ----- ---
draft-ietf-dnsext-tkey-01.txt
Donald E. Eastlake 3rd Donald E. Eastlake 3rd
Status of This Document Status of This Document
This draft, file name draft-ietf-dnsext-tkey-00.txt, is intended to This draft, file name draft-ietf-dnsext-tkey-01.txt, is intended to
be become a Proposed Standard RFC. Distribution of this document is be become a Proposed Standard RFC. Distribution of this document is
unlimited. Comments should be sent to the DNS working group mailing unlimited. Comments should be sent to the DNS working group mailing
list <namedroppers@ops.ietf.org> or to the author. list <namedroppers@ops.ietf.org> or to the author.
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. Internet-Drafts are working all provisions of Section 10 of RFC2026. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six months
months. Internet-Drafts may be updated, replaced, or obsoleted by and may be updated, replaced, or obsoleted by other documents at any
other documents at any time. It is not appropriate to use Internet- time. It is inappropriate to use Internet- Drafts as reference
Drafts as reference material or to cite them other than as a material or to cite them other than as "work in progress."
``working draft'' or ``work in progress.''
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Abstract Abstract
[draft-ietf-dnsind-tsig-*.txt] provides a means of authenticating [draft-ietf-{dnsind|dnsext}-tsig-*.txt] provides a means of
Domain Name System (DNS) queries and responses using shared secret authenticating Domain Name System (DNS) queries and responses using
keys via the TSIG resource record (RR). However, it provides no shared secret keys via the TSIG resource record (RR). However, it
mechanism for setting up such keys other than manual exchange. This provides no mechanism for setting up such keys other than manual
document describes a TKEY RR that can be used in a number of exchange. This document describes a TKEY RR that can be used in a
different modes to establish shared secret keys between a DNS number of different modes to establish shared secret keys between a
resolver and server. DNS resolver and server.
Acknowledgments Acknowledgments
The comments and ideas of the following persons (listed in alphabetic The comments and ideas of the following persons (listed in alphabetic
order) have been incorporated herein and are gratefully acknowledged: order) have been incorporated herein and are gratefully acknowledged:
Olafur Gudmundsson (TIS) Olafur Gudmundsson (TIS)
Stuart Kwan (Microsoft) Stuart Kwan (Microsoft)
skipping to change at page 4, line 14 skipping to change at page 4, line 14
1. Introduction 1. Introduction
The Domain Name System (DNS) is a hierarchical, distributed, highly The Domain Name System (DNS) is a hierarchical, distributed, highly
available database used for bi-directional mapping between domain available database used for bi-directional mapping between domain
names and addresses, for email routing, and for other information names and addresses, for email routing, and for other information
[RFC 1034, 1035]. It has been extended to provide for public key [RFC 1034, 1035]. It has been extended to provide for public key
security and dynamic update [RFC 2535, RFC 2136]. Familiarity with security and dynamic update [RFC 2535, RFC 2136]. Familiarity with
these RFCs is assumed. these RFCs is assumed.
[draft-ietf-dnsind-tsig-*.txt] provides a means of efficiently [draft-ietf-{dnsind|dnsext}-tsig-*.txt] provides a means of
authenticating DNS messages using shared secret keys via the TSIG efficiently authenticating DNS messages using shared secret keys via
resource record (RR) but provides no mechanism for setting up such the TSIG resource record (RR) but provides no mechanism for setting
keys other than manual exchange. This document specifies a TKEY RR up such keys other than manual exchange. This document specifies a
that can be used in a number of different modes to establish and TKEY RR that can be used in a number of different modes to establish
delete such shared secret keys between a DNS resolver and server. and delete such shared secret keys between a DNS resolver and server.
Note that TKEY established keying material and TSIGs that use it are Note that TKEY established keying material and TSIGs that use it are
associated with DNS servers or resolvers. They are not associated associated with DNS servers or resolvers. They are not associated
with zones. They may be used to authenticate queries and responses with zones. They may be used to authenticate queries and responses
but they do not provide zone based DNS data origin or denial but they do not provide zone based DNS data origin or denial
authentication [RFC 2535]. authentication [RFC 2535].
Certain modes of TKEY perform encryption which may affect their Certain modes of TKEY perform encryption which may affect their
export or import status for some countries. The affected modes export or import status for some countries. The affected modes
specified in this document are the server assigned mode and the specified in this document are the server assigned mode and the
skipping to change at page 4, line 49 skipping to change at page 4, line 49
1.1 Overview of Contents 1.1 Overview of Contents
Section 2 below specifies the TKEY RR and provides a description of Section 2 below specifies the TKEY RR and provides a description of
and considerations for its constituent fields. and considerations for its constituent fields.
Section 3 describes general principles of operations with TKEY. Section 3 describes general principles of operations with TKEY.
Section 4 discusses key agreement and deletion via DNS requests with Section 4 discusses key agreement and deletion via DNS requests with
the Query opcode for RR type TKEY. This method is applicable to all the Query opcode for RR type TKEY. This method is applicable to all
currently defined TKEY modes although in some cases it is not what currently defined TKEY modes, although in some cases it is not what
would intuitively be called a "query". would intuitively be called a "query".
Section 5 discusses spontaneous inclusion of TKEY RRs in responses by Section 5 discusses spontaneous inclusion of TKEY RRs in responses by
servers. servers.
Section 6 describes encryption methods for transmitting secret key Section 6 describes encryption methods for transmitting secret key
information. In this document these are used only for the server information. In this document these are used only for the server
assigned mode and the resolver assigned mode. assigned mode and the resolver assigned mode.
Section 7 covers IANA considerations in assignment of TKEY modes. Section 7 covers IANA considerations in assignment of TKEY modes.
skipping to change at page 6, line 5 skipping to change at page 6, line 5
The Name field relates to naming keys. Its meaning differs somewhat The Name field relates to naming keys. Its meaning differs somewhat
with mode and context as explained in subsequent sections. with mode and context as explained in subsequent sections.
At any DNS server or resolver only one octet string of keying At any DNS server or resolver only one octet string of keying
material may be in place for any particular key name. An attempt to material may be in place for any particular key name. An attempt to
establish another set of keying material at a server for an existing establish another set of keying material at a server for an existing
name returns a BADNAME error. name returns a BADNAME error.
For a TKEY with a non-root name appearing in a query, the TKEY RR For a TKEY with a non-root name appearing in a query, the TKEY RR
name SHOULD be a domain locally unique at the resolver, less than 128 name SHOULD be a domain locally unique at the resolver, less than 128
octets long, and meaningful to the resolver to assist in octets long in wire encoding, and meaningful to the resolver to
distinguishing keys and/or key agreement sessions. For TKEY(s) assist in distinguishing keys and/or key agreement sessions. For
appearing in a response to a query, the TKEY RR name SHOULD be a TKEY(s) appearing in a response to a query, the TKEY RR name SHOULD
globally unique server assigned domain. be a globally unique server assigned domain.
A reasonable key naming strategy is as follows: A reasonable key naming strategy is as follows:
If the key is generated as the result of a query with root as If the key is generated as the result of a query with root as
its owner name, then the server SHOULD create a globally unique its owner name, then the server SHOULD create a globally unique
domain name, to be the key name, by suffixing a pseudo-random domain name, to be the key name, by suffixing a pseudo-random
[RFC 1750] label with a domain name of the server. For example [RFC 1750] label with a domain name of the server. For example
89n3mDgX072pp.server.example.com. If generation of a new 89n3mDgX072pp.server.example.com. If generation of a new
pseudo-random name in each case is an excessive computation load pseudo-random name in each case is an excessive computation load
or entropy drain, a serial number prefix can be added to a fixed or entropy drain, a serial number prefix can be added to a fixed
pseudo-random name generated an DNS server start time, such as pseudo-random name generated an DNS server start time, such as
1001.89n3mDgX072pp.server.example.com. 1001.89n3mDgX072pp.server.example.com.
If the key is generated as the result of a query with a non-root If the key is generated as the result of a query with a non-root
name, say 789.foo.example.net, then use the concatenation of name, say 789.resolver.example.net, then use the concatenation
that with a name of the server. For example of that with a name of the server. For example
789.foo.example.net.server.example.com. 789.resolver.example.net.server.example.com.
2.2 The TTL Field 2.2 The TTL Field
The TTL field is meaningless. It SHOULD always be zero to be sure The TTL field is meaningless. It SHOULD always be zero to be sure
that older DNS implementations do not cache TKEY RRs. that older DNS implementations do not cache TKEY RRs.
2.3 The Algorithm Field 2.3 The Algorithm Field
The algorithm name is a domain name with the same meaning as in The algorithm name is in the form of a domain name with the same
[draft-ietf-dnsind-tsig-*.txt]. The algorithm determines how the meaning as in [draft-ietf-{dnsind|dnsext}-tsig-*.txt]. The algorithm
secret keying material agreed to using the TKEY RR is actually used determines how the secret keying material agreed to using the TKEY RR
to derive the algorithm specific key that is used. is actually used to derive the algorithm specific key.
2.4 The Inception and Expiration Fields 2.4 The Inception and Expiration Fields
The inception time and expiration times are in number of seconds The inception time and expiration times are in number of seconds
since the beginning of 1 January 1970 GMT ignoring leap seconds since the beginning of 1 January 1970 GMT ignoring leap seconds
treated as modulo 2**32 using ring arithmetic [RFC 1982]. In messages treated as modulo 2**32 using ring arithmetic [RFC 1982]. In messages
between a DNS resolver and a DNS server where these fields are between a DNS resolver and a DNS server where these fields are
meaningful, they are either the requested validity interval for the meaningful, they are either the requested validity interval for the
keying material asked for or specify the validity interval of keying keying material asked for or specify the validity interval of keying
material provided. material provided.
skipping to change at page 7, line 41 skipping to change at page 7, line 41
2.6 The Error Field 2.6 The Error Field
The error code field is an extended RCODE. The following values are The error code field is an extended RCODE. The following values are
defined: defined:
Value Description Value Description
----- ----------- ----- -----------
0 - no error 0 - no error
1-15 a non-extended RCODE 1-15 a non-extended RCODE
16 BADVERS (RFC 2671) 16 BADSIG (tsig)
17 BADSIG (tsig) 17 BADKEY (tsig)
18 BADKEY (tsig) 18 BADTIME (tsig)
19 BADTIME (tsig) 19 BADMODE
20 BADMODE 20 BADNAME
21 BADNAME 21 BADALG
22 BADALG
When a non-zero RCODE appears in the TKEY Error Field in a response
to a TKEY query, the DNS header RCODE field indicates no error.
However, it is possible if a TKEY is spontaneously included in a When the TKEY Error Field is non-zero in a response to a TKEY query,
response the TKEY RR and DNS header error field could have unrelated the DNS header RCODE field indicates no error. However, it is
non-zero error codes. possible if a TKEY is spontaneously included in a response the TKEY
RR and DNS header error field could have unrelated non-zero error
codes.
2.7 The Key Size and Data Fields 2.7 The Key Size and Data Fields
The key data size field is an unsigned 16 bit integer in network 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 order which specifies the size of the key exchange data field in
octets. The meaning of the key data depends on the mode. octets. The meaning of the key data depends on the mode.
2.8 The Other Size and Data Fields 2.8 The Other Size and Data Fields
The Other Size and Other Data fields are not used in this The Other Size and Other Data fields are not used in this
specification but may be used in future extensions. The RDLEN field specification but may be used in future extensions. The RDLEN field
MUST equal the length of the RDATA section through the end of Other MUST equal the length of the RDATA section through the end of Other
Data or the RR is to be considered malformed and rejected. Data or the RR is to be considered malformed and rejected.
3. General TKEY Considerations 3. General TKEY Considerations
TKEY is a meta-RR that is not stored or cached in the DNS and does 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 not appear in zone files. It supports a variety of modes for the
establishment and deletion of shared secret keys information between establishment and deletion of shared secret keys information between
DNS entities such as resolvers and servers. The establishment of DNS resolvers and servers. The establishment of such a shared key
such a shared key requires that state be maintained at both the requires that state be maintained at both ends and the allocation of
resolver and the server and the allocation of the resources to the resources to maintain such state may require mutual agreement. In
maintain such state may require mutual agreement. In the absence of the absence of willingness to provide such state, servers MUST return
such agreement, servers MUST return errors such as NOTIMP or REFUSED errors such as NOTIMP or REFUSED for an attempt to use TKEY and
for an attempt to use TKEY and resolvers are free to ignore any TKEY resolvers are free to ignore any TKEY RRs they receive.
RRs they receive.
The shared secret keying material developed by using TKEY is a plain The shared secret keying material developed by using TKEY is a plain
octet sequence. The means by which this shared secret keying octet sequence. The means by which this shared secret keying
material, exchanged via TKEY, is actually used in any particular TSIG material, exchanged via TKEY, is actually used in any particular TSIG
algorithm is algorithm dependent and is defined in connection with algorithm is algorithm dependent and is defined in connection with
that algorithm. For example, see [RFC 2104] for how TKEY agreed that algorithm. For example, see [RFC 2104] for how TKEY agreed
shared secret keying material is used in HMAC-MD5.SIG-ALG... or any shared secret keying material is used in the HMAC-MD5 algorithm or
other HMAC algorithm. other HMAC algorithms.
There MUST NOT be more than one TKEY RR in a DNS query or response. There MUST NOT be more than one TKEY RR in a DNS query or response.
Except for GSS-API mode TKEY responses MUST always have DNS Except for GSS-API mode, TKEY responses MUST always have DNS
transaction authentication to protect the integrity of any keying transaction authentication to protect the integrity of any keying
data, error codes. This authentication MUST use a previously data, error codes, etc. This authentication MUST use a previously
established secret (TSIG) or public (SIG(0)) key and MUST NOT use any established secret (TSIG) or public (SIG(0)) key and MUST NOT use any
key that the response to be verified is itself providing. key that the response to be verified is itself providing.
TKEY queries MUST be authenticated for all modes except GSS-API and, TKEY queries MUST be authenticated for all modes except GSS-API and,
under some circumstances, server assignment mode. In particular, if under some circumstances, server assignment mode. In particular, if
the query for a server assigned key is for a key to assert some the query for a server assigned key is for a key to assert some
privilege, such as update authority, then the query must be privilege, such as update authority, then the query must be
authenticated to avoid spoofing. However, if the key is just to be authenticated to avoid spoofing. However, if the key is just to be
used for transaction security, then spoofing will lead at worst to used for transaction security, then spoofing will lead at worst to
denial of service. The query authentication SHOULD use an denial of service. Query authentication SHOULD use an established
established secret (TSIG) key authenticator if available. Otherwise, secret (TSIG) key authenticator if available. Otherwise, it must use
it must use a public (SIG(0)) key signature. It MUST NOT use any key a public (SIG(0)) key signature. It MUST NOT use any key that the
that the query is itself providing. query is itself providing.
To avoid replay attacks, it is necessary that a TKEY response or To avoid replay attacks, it is necessary that a TKEY response or
query not be valid if replayed on the order of 2**32 second (about query not be valid if replayed on the order of 2**32 second (about
136 years), or a multiple thereof, later. To accomplish this, the 136 years), or a multiple thereof, later. To accomplish this, the
keying material used in any TSIG or SIG(0) RR that authenticates a keying material used in any TSIG or SIG(0) RR that authenticates a
TKEY message MUST NOT have a lifetime of more then 2**31 - 1 seconds TKEY message MUST NOT have a lifetime of more then 2**31 - 1 seconds
(about 68 years). Thus, on attempted replay, the authenticating TSIG (about 68 years). Thus, on attempted replay, the authenticating TSIG
or SIG(0) RR will not be verifiable due to key expiration and the or SIG(0) RR will not be verifiable due to key expiration and the
replay will fail. replay will fail.
skipping to change at page 10, line 5 skipping to change at page 9, line 50
derive some shared secret information without requiring any secrecy derive some shared secret information without requiring any secrecy
of the messages they exchange [Schneier]. Provisions have been made of the messages they exchange [Schneier]. Provisions have been made
for the storage of DH public keys in the DNS [RFC 2539]. for the storage of DH public keys in the DNS [RFC 2539].
A resolver sends a query for type TKEY accompanied by a TKEY RR in A resolver sends a query for type TKEY accompanied by a TKEY RR in
the additional information section specifying the Diffie-Hellman mode the additional information section specifying the Diffie-Hellman mode
and accompanied by a KEY RR also in the additional information and accompanied by a KEY RR also in the additional information
section specifying a resolver Diffie-Hellman key. The TKEY RR section specifying a resolver Diffie-Hellman key. The TKEY RR
algorithm field is set to the authentication algorithm the resolver algorithm field is set to the authentication algorithm the resolver
plans to use. The "key data" provided in the TKEY is used as a random plans to use. The "key data" provided in the TKEY is used as a random
nonce to avoid always deriving the same keying material for the same [RFC 1750] nonce to avoid always deriving the same keying material
pair of DH KEYs. for the same pair of DH KEYs.
The server response contains a TKEY in its answer section with the The server response contains a TKEY in its answer section with the
Diffie-Hellman mode. The "key data" provided in this TKEY is used as Diffie-Hellman mode. The "key data" provided in this TKEY is used as
an additional nonce to avoid always deriving the same keying material an additional nonce to avoid always deriving the same keying material
for the same pair of DH KEYs. If the TKEY error field is non-zero, for the same pair of DH KEYs. If the TKEY error field is non-zero,
the query failed for the reason given. FORMERR is given if the query the query failed for the reason given. FORMERR is given if the query
included no DH KEY and BADKEY is given if the query included an included no DH KEY and BADKEY is given if the query included an
incompatible DH KEY. incompatible DH KEY.
If the TKEY error field is zero, the resolver supplied Diffie-Hellman If the TKEY error field is zero, the resolver supplied Diffie-Hellman
skipping to change at page 11, line 12 skipping to change at page 11, line 10
that will result in an error on receiving a query with a TSIG using that will result in an error on receiving a query with a TSIG using
the discarded key. the discarded key.
To avoid attempted reliance in requests on keys no longer in effect, To avoid attempted reliance in requests on keys no longer in effect,
servers MUST implement key deletion whereby the server "discards" a servers MUST implement key deletion whereby the server "discards" a
key on receipt from a resolver of an authenticated delete request for key on receipt from a resolver of an authenticated delete request for
a TKEY RR with the key's name. If the server has no record of a key a TKEY RR with the key's name. If the server has no record of a key
with that name, it returns BADNAME. with that name, it returns BADNAME.
Key deletion TKEY queries MUST be authenticated. This authentication Key deletion TKEY queries MUST be authenticated. This authentication
may be a TSIG RR using the key to be deleted. MAY be a TSIG RR using the key to be deleted.
For querier assigned and Diffie-Hellman keys, the server MUST truly For querier assigned and Diffie-Hellman keys, the server MUST truly
"discard" all active state associated with the key. For server "discard" all active state associated with the key. For server
assigned keys, the server MAY simply mark the key as no longer assigned keys, the server MAY simply mark the key as no longer
retained by the client and may re-send it in response to a future retained by the client and may re-send it in response to a future
query for server assigned keying material. query for server assigned keying material.
4.3 Query for GSS-API Establishment 4.3 Query for GSS-API Establishment
This mode is described in a separate document under preparation which This mode is described in a separate document under preparation which
skipping to change at page 12, line 5 skipping to change at page 12, line 4
A resolver sends a query for type TKEY accompanied by a TKEY RR A resolver sends a query for type TKEY accompanied by a TKEY RR
specifying the "server assignment" mode and a resolver KEY RR to be specifying the "server assignment" mode and a resolver KEY RR to be
used in encrypting the response, both in the additional information used in encrypting the response, both in the additional information
section. The TKEY algorithm field is set to the authentication section. The TKEY algorithm field is set to the authentication
algorithm the resolver plans to use. It is RECOMMENDED that any "key algorithm the resolver plans to use. It is RECOMMENDED that any "key
data" provided in the query TKEY RR by the resolver be strongly mixed data" provided in the query TKEY RR by the resolver be strongly mixed
by the server with server generated randomness [RFC 1750] to derive by the server with server generated randomness [RFC 1750] to derive
the keying material to be used. The KEY RR that appears in the query the keying material to be used. The KEY RR that appears in the query
need not be accompanied by a SIG(KEY) RR. If the query is need not be accompanied by a SIG(KEY) RR. If the query is
authenticated by the resolver with a TSIG RR [draft-ietf-dnsind- authenticated by the resolver with a TSIG RR [draft-ietf-
tsig-*.txt] or SIG(0) RR and that authentication is verified, then {dnsind|dnsext}-tsig-*.txt] or SIG(0) RR and that authentication is
any SIG(KEY) provided in the query SHOULD be ignored. The KEY RR in verified, then any SIG(KEY) provided in the query SHOULD be ignored.
such a query SHOULD have a name that corresponds to the resolver but The KEY RR in such a query SHOULD have a name that corresponds to the
it is only essential that it be a public key for which the resolver resolver but it is only essential that it be a public key for which
has the corresponding private key so it can decrypt the response the resolver has the corresponding private key so it can decrypt the
data. response data.
The server response contains a TKEY RR in its answer section with the The server response contains a TKEY RR in its answer section with the
server assigned mode and echoes the KEY RR provided in the query in server assigned mode and echoes the KEY RR provided in the query in
its additional information section. its additional information section.
If its error field is zero, the key data portion of the response TKEY If the reponse TKEY error field is zero, the key data portion of the
RR will be the server assigned keying data encrypted under the public response TKEY RR will be the server assigned keying data encrypted
key in the resolver provided KEY RR. In this case, the name of the under the public key in the resolver provided KEY RR. In this case,
answer TKEY RR will be the server assigned name of the key. the owner name of the answer TKEY RR will be the server assigned name
of the key.
If the error field of the response TKEY is non-zero, the query failed If the error field of the response TKEY is non-zero, the query failed
for the reason given. FORMERR is given if the query specified no for the reason given. FORMERR is given if the query specified no
encryption key. encryption key.
The inception and expiry times in the query TKEY RR are those The inception and expiry times in the query TKEY RR are those
requested for the keying material. The inception and expiry times in requested for the keying material. The inception and expiry times in
the response TKEY are the maximum period the server will consider the the response TKEY are the maximum period the server will consider the
keying material valid. Servers may pre-expire keys so this is not a keying material valid. Servers may pre-expire keys so this is not a
guarantee. guarantee.
The resolver KEY RR MUST be authenticated, though the authentication The resolver KEY RR MUST be authenticated, through the authentication
of this query with a TSIG or SIG(0) or the signing of the resolver of this query with a TSIG or SIG(0) or the signing of the resolver
KEY with a SIG(KEY). Otherwise, an attacker can forge a resolver KEY KEY with a SIG(KEY). Otherwise, an attacker can forge a resolver KEY
for which they know the private key, and thereby the attacker could for which they know the private key, and thereby the attacker could
obtain a valid shared secret key from the server. obtain a valid shared secret key from the server.
4.5 Query for Resolver Assigned Keying 4.5 Query for Resolver Assigned Keying
Optionally, a server can accept resolver assigned keys. The keying Optionally, a server can accept resolver assigned keys. The keying
material must be encrypted under a server key for protection in material must be encrypted under a server key for protection in
transmission as described in Section 6. transmission as described in Section 6.
The resolver sends a TKEY query with a TKEY RR that specifies the The resolver sends a TKEY query with a TKEY RR that specifies the
encrypted keying material and a KEY RR specifying the server public encrypted keying material and a KEY RR specifying the server public
key used to encrypt the data, both in the additional information key used to encrypt the data, both in the additional information
section. The name of the key and the keying data are completely section. The name of the key and the keying data are completely
controlled by the sending resolver so a globally unique key name controlled by the sending resolver so a globally unique key name
SHOULD be used. The KEY RR used MUST be one for which the server has SHOULD be used. 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 the corresponding private key, or it will not be able to decrypt the
keying material and will return a FORMERR (or possibly an attacker keying material and will return a FORMERR, and no untrusted party
who does have the private key can capture the messages to the server (preferably no other party than the server) has the private key, or
and spoof server TSIGs on responses). the untrusted private key holder can capture the messages to the
server, learn the shared secret, and spoof valid TSIGs.
The query TKEY RR inception and expiry give the time period the The query TKEY RR inception and expiry give the time period the
querier intends to consider the keying material valid. The server querier intends to consider the keying material valid. The server
can return a lesser time interval to advise that it will not maintain can return a lesser time interval to advise that it will not maintain
state for that long and can pre-expire keys in any case. state for that long and can pre-expire keys in any case.
This mode of query MUST be authenticated, though authenticating it This mode of query MUST be authenticated with a TSIG or SIG(0).
with a TSIG or SIG(0). Otherwise, an attacker can forge a resolver Otherwise, an attacker can forge a resolver assigned TKEY query, and
assigned TKEY query, and thereby the attacker could specify a shared thereby the attacker could specify a shared secret key that would be
secret key that would be accepted, used, and honored by the server. accepted, used, and honored by the server.
5. Spontaneous Server Inclusion 5. Spontaneous Server Inclusion
A DNS server may include a TKEY RR spontaneously as additional A DNS server may include a TKEY RR spontaneously as additional
information in responses. This SHOULD only be done if the server information in responses. This SHOULD only be done if the server
knows the querier understands TKEY and has this option implemented. knows the querier understands TKEY and has this option implemented.
This technique can be used for GSS-API exchange, and to delete a key. This technique can be used for GSS-API exchange, and to delete a key.
A disadvantage of this technique is that there is no way for the A disadvantage of this technique is that there is no way for the
server to get any error or success indication back and, in the case server to get any error or success indication back and, in the case
of UDP, no way to even know if the DNS response reached the resolver. of UDP, no way to even know if the DNS response reached the resolver.
skipping to change at page 14, line 11 skipping to change at page 14, line 11
assigned keys, the querier MAY simply mark the key as no longer assigned keys, the querier MAY simply mark the key as no longer
retained by the server and may re-send it in a future query retained by the server and may re-send it in a future query
specifying querier assigned keying material. specifying querier assigned keying material.
5.2 Spontaneous GSS-API Exchange 5.2 Spontaneous GSS-API Exchange
A server can spontaneously include in the additional information A server can spontaneously include in the additional information
section of a response, a GSS-API mode TKEY RR. The information in section of a response, a GSS-API mode TKEY RR. The information in
the key data section of such a TKEY is a GSS-API token which SHOULD 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 be fed by the resolver to its local GSS-API implementation. If such
a response is authenticated, the authentication may be verify before a response is authenticated, the authentication MAY be verify before
processing the data. To the extent that GSS-API provides its own processing the data. To the extent that GSS-API provides its own
security, such a response may not need to be authenticated. To the security, such a response need not be authenticated. To the extent
extent that GSS-API handles duplicated messages, such a spontaneous that GSS-API handles duplicated messages, such a spontaneous TKEY
TKEY could be sent repeatedly, until, for example, a response via a could be sent repeatedly, until, for example, a response via a GSS-
GSS-API mode TKEY query is received. See also section 4.3. API mode TKEY query is received. See also section 4.3.
6. Methods of Encryption 6. Methods of Encryption
For the server assigned and resolver assigned key agreement modes, For the server assigned and resolver assigned key agreement modes,
the keying material is sent within the key data field of a TKEY RR the keying material is sent within the key data field of a TKEY RR
encrypted under the public key in an accompanying KEY RR [RFC 2535]. encrypted under the public key in an accompanying KEY RR [RFC 2535].
This KEY RR MUST be for a public key algorithm where the public and This KEY RR MUST be for a public key algorithm where the public and
private keys can be used for encryption and the corresponding private keys can be used for encryption and the corresponding
decryption which recovers the originally encrypted data. The KEY RR decryption which recovers the originally encrypted data. The KEY RR
SHOULD correspond to a name for the decrypting resolver/server such SHOULD correspond to a name for the decrypting resolver/server such
skipping to change at page 15, line 8 skipping to change at page 15, line 8
7. IANA Considerations 7. IANA Considerations
This section is to be interpreted as provided in [RFC 2434]. This section is to be interpreted as provided in [RFC 2434].
Mode field values 0x0000 through 0x00FF, and 0XFF00 through 0XFFFF Mode field values 0x0000 through 0x00FF, and 0XFF00 through 0XFFFF
can only be assigned by an IETF standards action. Special can only be assigned by an IETF standards action. Special
consideration should be given before the allocation of meaning for consideration should be given before the allocation of meaning for
Mode field values 0x0000 and 0xFFFF. Mode field values 0x0000 and 0xFFFF.
Mode field values 0x0100 through 0x0FFF and 0xF0000 through 0xFEFF Mode field values 0x0100 through 0x0FFF and 0xF0000 through 0xFEFF
are allocated by IESG approval. are allocated by IESG approval or IETF consensus.
Mode field values 0x1000 through 0xEFFF are allocated based on Mode field values 0x1000 through 0xEFFF are allocated based on
Specification Requires as defined in [RFC 2434]. Specification Required as defined in [RFC 2434].
Mode values should not be changed when the status of their use Mode values should not be changed when the status of their use
changes. For example, a mode value assigned for an Experimental changes. For example, a mode value assigned for an Experimental
Standard should not be changed later just because that standard's Standard should not be changed later just because that standard's
status is changed to Proposed. status is changed to Proposed.
The following assignments are documented herein: The following assignments are documented herein:
RR Type 249 for TKEY. RR Type 249 for TKEY.
TKEY Modes 1 through 5 as listed in section 2.5. TKEY Modes 1 through 5 as listed in section 2.5.
Extended RCODE Error values of 20, 21, and 22 as listed in Extended RCODE Error values of 19, 20, and 21 as listed in
section 2.6. section 2.6.
8. Security Considerations 8. Security Considerations
The entirety of this specification is concerned with the secure The entirety of this specification is concerned with the secure
establishment of a shared secret between DNS clients and servers in establishment of a shared secret between DNS clients and servers in
support of TSIG. support of TSIG.
Protection against denial of service via the use of TKEY is not Protection against denial of service via the use of TKEY is not
provided. provided.
skipping to change at page 16, line 49 skipping to change at page 16, line 49
RFC 2437 - B. Kaliski, J. Staddon, "PKCS #1: RSA Cryptography RFC 2437 - B. Kaliski, J. Staddon, "PKCS #1: RSA Cryptography
Specifications Version 2.0", October 1998. Specifications Version 2.0", October 1998.
RFC 2535 - D. Eastlake, "Domain Name System Security Extensions", RFC 2535 - D. Eastlake, "Domain Name System Security Extensions",
March 1999. March 1999.
RFC 2539 - D. Eastlake, "Storage of Diffie-Hellman Keys in the Domain RFC 2539 - D. Eastlake, "Storage of Diffie-Hellman Keys in the Domain
Name System (DNS)", March 1999. Name System (DNS)", March 1999.
draft-ietf-dnsind-tsig-*.txt - P. Vixie, O. Gudmundsson, D. draft-ietf-{dnsind|dnsext}-tsig-*.txt - P. Vixie, O. Gudmundsson, D.
Eastlake, "Secret Key Transaction Signatures for DNS (TSIG)". Eastlake, "Secret Key Transaction Signatures for DNS (TSIG)".
Author's Address Author's Address
Donald E. Eastlake 3rd Donald E. Eastlake 3rd
Motorola Motorola
65 Shindegan Hill Road, RR #1 65 Shindegan Hill Road, RR #1
Carmel, NY 10512 USA Carmel, NY 10512 USA
Telephone: +1 914-276-2668 (h) Telephone: +1 914-276-2668 (h)
+1 508-261-4600 (w) +1 508-261-5434 (w)
FAX: +1 914-276-2947 (h) FAX: +1 914-276-2947 (h)
email: dee3@torque.pothole.com email: Donald.Eastlake@motorola.com
Expiration and File Name Expiration and File Name
This draft expires August 2000. This draft expires August 2000.
Its file name is draft-ietf-dnsext-tkey-00.txt. Its file name is draft-ietf-dnsext-tkey-01.txt.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/