Internet DRAFT - draft-liman-dns-utcstamp
draft-liman-dns-utcstamp
Domain Name Operations L-J. Liman
Internet-Draft Netnod
Intended status: Informational R. Sundblad
Expires: May 24, 2019 Royal Institute of Technology
November 20, 2018
A UTC Timestamp Option For EDNS
draft-liman-dns-utcstamp-00
Abstract
UTCSTAMP is an EDNS extension to allow a client to request from a
server that it includes a timestamp in the response message, and for
the server to provide it, if requested and deemed appropriate. This
is primarily intended as a debugging tool.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on May 24, 2019.
Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Liman & Sundblad Expires May 24, 2019 [Page 1]
Internet-Draft EDNS(0) UTCSTAMP Option November 2018
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 2
3. Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. General Behavior . . . . . . . . . . . . . . . . . . . . 3
3.2. Resolver Behavior . . . . . . . . . . . . . . . . . . . . 3
3.3. Name Server Behavior . . . . . . . . . . . . . . . . . . 3
3.4. The UTCSTAMP Option . . . . . . . . . . . . . . . . . . . 4
3.5. Presentation Format . . . . . . . . . . . . . . . . . . . 4
4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1. Data Payload . . . . . . . . . . . . . . . . . . . . . . 5
4.2. Presentation format . . . . . . . . . . . . . . . . . . . 6
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 6
7. Change History . . . . . . . . . . . . . . . . . . . . . . . 7
8. Document Timestamp . . . . . . . . . . . . . . . . . . . . . 7
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 7
9.1. Normative References . . . . . . . . . . . . . . . . . . 7
9.2. Informative References . . . . . . . . . . . . . . . . . 7
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
1. Introduction
Network security based on encryption depends heavily on the
requirement that all involved parties have a common understanding of
the time of day. This is true also for the domain name system (DNS)
and its transaction signature (TSIG) is no exception. If the time
difference between the DNS server and the DNS client is too large,
TSIG signatures will not validate. When debugging security-related
issues with the DNS, knowing what a remote party believes to be the
current time can be very helpful. This documents describes an option
to Extended DNS (EDNS) [RFC6891] that allows a client to request that
the server includes a timestamp in the response packet, and for the
server to provide it, if requested and deemed appropriate.
This document is modeled after the NSID option, described in RFC 5001
[RFC5001].
2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Liman & Sundblad Expires May 24, 2019 [Page 2]
Internet-Draft EDNS(0) UTCSTAMP Option November 2018
3. Protocol
This protocol uses an EDNS RFC 6891 [RFC6891] option to signal a
resolver's desire for information identifying a server's
understanding of the current date and time of day, and to hold the
name server's response, if any.
3.1. General Behavior
The semantics of a UTCSTAMP request are not transitive. That means
that any DNS server that receives a incoming query with a UTCSTAMP
request, to which it intends to honour it, MUST report its own
understanding of the current time, and not relay information obtained
from a different host.
UTCSTAMP responses MUST NOT be cached.
3.2. Resolver Behavior
A resolver signals its desire for information about the server's
understanding of the current time by sending an empty UTCSTAMP option
(Section 3.4) in an EDNS OPT pseudo-RR in the query message.
The resolver MUST NOT include any UTCSTAMP payload data in the query
message.
The resolver MUST NOT expect the server to respond with a valid
UTCSTAMP response.
The resolver MUST be able to handle the situation that the request is
ignored by the server.
The resolver SHOULD be able to handle unsolicited UTCSTAMP data sent
by the server.
3.3. Name Server Behavior
A name server that understands the UTCSTAMP option, and chooses to
honour a particular UTCSTAMP request, responds by including time
information in a UTCSTAMP option (Section 3.4) in an EDNS OPT pseudo-
RR in the response message.
The name server MUST ignore any UTCSTAMP payload data that might be
present in the query message.
A name server MUST NOT send a UTCSTAMP option back to a resolver
unless it was requested.
Liman & Sundblad Expires May 24, 2019 [Page 3]
Internet-Draft EDNS(0) UTCSTAMP Option November 2018
The UTCSTAMP option is not transitive. In particular, a recursive
name server MUST consider UTCSTAMP incoming transactions its client
as a separate from its outgoing transactions towards authoritative
servers and/or forward resolvers. An incoming UTCSTAMP received from
an authoritative (or forward) server MUST NOT be forwarded in an
outgoing response to a client.
If a server doesn't have an understanding of the current time, it
MUST either ignore the request, OR signal the fact that it cannot
honour the request by responding with NOTIME data (see Section 3.4).
3.4. The UTCSTAMP Option
The OPTION-CODE for the UTCSTAMP option is 65394 (provisional and
experimental, a permanent one to be assigned by the IANA, should this
document be adopted as an RFC.).
OPTION-LEN MUST always be zero (0) in UTCSTAMP requests and MUST be
at least eight (8) in responses. UTCSTAMP options with OPTION-LENs
that deviate from these rules MUST be ignored.
The OPTION-DATA section for a UTCSTAMP request must be empty. For
responses the UTCSTAMP OPTION-DATA is always an unsigned integer, in
network byte order, at least 64-bits long, which represents the
number of seconds since 1970-01-01 00:00:00 UTC, with the exception
of the value with all bits set (i.e., FFFFFFFFFFFFFFFF (HEX) for a
64-bit number) which SHOULD be sent and received as a signal that the
server giving out the information understands the request but is
incapable of providing the information. The signal is referred to as
"NOTIME". If the server understands the request and is able to
provide the requested information, but is unwilling to do so
(typically due to its configuration), the incoming UTCSTAMP request
SHOULD be ignored, and no UTCSTAMP option response given at all.
3.5. Presentation Format
User interfaces SHOULD present the UTCSTAMP information using human
readable ISO 8601 format and UTC time: "YYYY-MM-DD HH:MM:SS UTC"
(e.g., "2018-11-15 15:52:23 UTC"). In addition to this, user
interfaces MAY also offer to provide the compact ISO 8601 format:
"YYYYMMDDTHHMMSSZ" (e.g., "20181115T155223Z"), and/or the pure data
from the OPTION-DATA section of the message, in decimal notation
(e.g., "1542383543").
The first format is preferred, as UTCSTAMP is intended as a debugging
tool for humans, and that version is easier for humans to read. The
latter may be useful in automated monitoring scenarios.
Liman & Sundblad Expires May 24, 2019 [Page 4]
Internet-Draft EDNS(0) UTCSTAMP Option November 2018
Software that present this information should examine data carefully,
before processing it, and should not assume that the data is neither
correct nor sensible.
The UTCSTAMP payload is binary data. Any automated comparison
between UTCSTAMP payloads SHOULD be a comparison of the raw binary
data or the raw data converted to the native byte order for the
machine in question. Copy operations MUST NOT assume that the raw
UTCSTAMP payload is null-terminated.
4. Discussion
This section discusses certain aspects of the protocol and explains
considerations that led to the chosen design.
4.1. Data Payload
The choice of "epoch time" (number of seconds since 1970-01-01
00:00:00 UTC) was based on simplicity. Epoch time is a simple
integer, that will fit in fixed 64-bit container for a long time to
come. Epoch time needs no meta information, such as day of week or
time zone, and there are no options or alternatives associated with
epoch time. By eliminating options and alternatives, there is very
little chance of misinterpretation on the recipient side, and since
it is a simple number, comparison with other similar timestamps is
very straightforward. In certain cases, which are arguably common,
it also imposes very little need for computation at the server end.
There are of course arguments for making it more complex. An obvious
one is that the server may not have, or be able to compute, the
specified value. It may have no notion what so ever of a time zone.
It may have an internal format that is based on a totally different
format than epoch seconds, and may therefore have to perform some
computations in order to produce the value.
For the former case, time comparison is of more limited value. If
the server doesn't even know which time zone it sits in, it has no
notion of universal time, and universal time is needed for
timestamped signatures to work universally. There may be cases where
a limited cluster of servers share a common understanding of time
which is not based on time zones, but this protocol is intended to be
generic and possible to use on the public global Internet.
For the case with a different internal time system, computation will
indeed be necessary, but the authors argue that that case is less
common, and that the computations are only moderately complex.
Liman & Sundblad Expires May 24, 2019 [Page 5]
Internet-Draft EDNS(0) UTCSTAMP Option November 2018
4.2. Presentation format
The presentation format was chosen based on readability and
international standards. This protocol is primarily intended to be
used by humans when debugging DNS systems. The international
standard ISO 8601 specifies different ways to express time and date.
The chosen model is a common version of ISO 8601 "extended version",
where standardised punctuation is utilised to facilitate readability.
It retains the important property that the order of significance is
monotonously decreasing. The most significant value (the year) is to
the far left, and the least significant value (seconds) is to the far
right. This makes it easy for humans to compare two dates.
The alternative forms suggested are intended for programmatic use,
and may be easier for computers to parse.
5. IANA Considerations
This memo includes a request to the IANA to assign an EDNS option
code for UTCSTAMP.
6. Security Considerations
This protocol is intended as and aid in debugging scenarios. If this
protocol signals that the server's notion of current time differs
significantly from that of the client, that is an indicator of a
possible problem. If the time given by the server matches that of
the client, no knowledge has been gained.
This protocol is not intended to be a way to obtain trustworthy time
information. There is no guarantee that the server responds with
correct data, and the transport of the result is questionable. The
transport of data can normally be secured by using TSIG, but as a
logical somersault, the primary intent of the protocol is to aid in
debugging scenarios where TSIG doesn't work. Therefore TSIG cannot
be depended on to provide secure transport.
This protocol SHOULD NOT be used to try obtain correct time, as there
is no way to ensure that the information is correct. Trusting time
obtained with this protocol may lead to complex fault scenarios where
incorrect time makes signature validation fail - a situation that can
be very difficult to get out without manual intervention - or
scenarios where replay attack may succeed.
This protocol is primarily intended to be used to compare time
between two DNS parties.
Liman & Sundblad Expires May 24, 2019 [Page 6]
Internet-Draft EDNS(0) UTCSTAMP Option November 2018
7. Change History
draft-liman-dns-utcstamp-00
Initial version. Released 2018-11-20.
8. Document Timestamp
(This is support for the author. To be removed before publication.)
Document Time-stamp: "2018-11-20 16:10:42 liman"
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms
for DNS (EDNS(0))", STD 75, RFC 6891,
DOI 10.17487/RFC6891, April 2013,
<https://www.rfc-editor.org/info/rfc6891>.
9.2. Informative References
[RFC5001] Austein, R., "DNS Name Server Identifier (NSID) Option",
RFC 5001, DOI 10.17487/RFC5001, August 2007,
<https://www.rfc-editor.org/info/rfc5001>.
Authors' Addresses
Lars-Johan Liman
Netnod
Box 30194
SE-104 25 Stockholm
SE
Phone: +46 8 562 860 00
Email: liman@netnod.se
URI: https://www.netnod.se/
Liman & Sundblad Expires May 24, 2019 [Page 7]
Internet-Draft EDNS(0) UTCSTAMP Option November 2018
Ragnar Sundblad
Royal Institute of Technology
SE-100 44 Stockholm
SE
Phone: +46 8 790 60 00
Email: ragge@kth.se
URI: https://www.kth.se/
Liman & Sundblad Expires May 24, 2019 [Page 8]