770 lines
32 KiB
Plaintext
770 lines
32 KiB
Plaintext
|
||
|
||
Internet Draft Johan Ihr‰n
|
||
draft-ietf-dnsop-interim-signed-root-01.txt Autonomica
|
||
February 2003
|
||
Expires in six months
|
||
|
||
|
||
An Interim Scheme for Signing the Public DNS Root
|
||
|
||
|
||
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.
|
||
|
||
|
||
Abstract
|
||
|
||
This memo documents a proposed mechanism for a first stage of a
|
||
transition from an unsigned DNS root to a signed root, such that
|
||
the data in the root zone is accompanied by DNSSEC signatures to
|
||
allow validation.
|
||
|
||
The underlying reason for signing the root zone is to be able to
|
||
provide a more secure DNS hierarchy, where it is possible to
|
||
distinguish false answers from correct answers.
|
||
|
||
For the special case of the DNS root zone, an interim scheme is
|
||
proposed. This scheme is mostly aimed at securing the root zone
|
||
itself for technical and operational reasons, and to give
|
||
operational experience of DNSSEC.
|
||
|
||
|
||
1. Terminology
|
||
|
||
The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED",
|
||
and "MAY" in this document are to be interpreted as described in
|
||
RFC 2119.
|
||
|
||
The term "zone" refers to the unit of administrative control in the
|
||
Domain Name System. "Name server" denotes a DNS name server that is
|
||
authoritative (i.e. knows all there is to know) for a DNS zone,
|
||
typically the root zone. A "resolver", finally, is a DNS "client",
|
||
i.e. an entity that sends DNS queries to authoritative nameservers
|
||
and interpret the results.
|
||
|
||
|
||
2. Motivation for signing the DNS root
|
||
|
||
In the special case of the root zone there are very strong reasons
|
||
to take a slow and conservative approach to any changes with
|
||
operational impact. Signing the root is such a change.
|
||
|
||
DNSSEC[RFC2535, RFC3090] has been in development for a number of
|
||
years now and still has not reached the point where the last flag
|
||
day is behind us.
|
||
|
||
However, during the years of DNSSEC development and refinement
|
||
[RFC2930, RFC3007, RFC3008, RFC3110, RFC3225, RFC3226, AD-secure,
|
||
Opt-in, Wild-card-optimize], the Internet has matured and more and
|
||
more businesses and other organizations have become dependent on
|
||
the stability and constant availability of the Internet.
|
||
|
||
It is therefore prudent to do everything in our power to ensure
|
||
that the DNS infrastructure works as well as possible and, when
|
||
appropriate and possible, adding enhancements and functionality.
|
||
|
||
The time is now right for yet another step of improvement by
|
||
signing the root zone. By doing that any Internet user that so
|
||
wishes will obtain the ability of verifying responses received from
|
||
the root nameservers.
|
||
|
||
Since this is new operational ground the objective is not maximum
|
||
security but rather an "Internet-wide" controlled experiment with a
|
||
signed root zone, where the trade off is that we utilize the fact
|
||
that there are operators in place that can help even though they
|
||
are not sufficiently staffed to do off-line signing in a 24x7
|
||
mode. For this reason it is fully possible to even do automatic
|
||
signing, since the purpose is to ensure that DNSSEC works
|
||
operationally with a signed root zone and gain experience from the
|
||
exercise.
|
||
|
||
It should be pointed out, however, that the experimental part is
|
||
only the added DNSSEC records. The traditional records in the root
|
||
zone remain unchanged and the new records will only be visible to
|
||
DNSSEC-aware resolvers that explicitly ask to see these new
|
||
records.
|
||
|
||
|
||
2.1. Motivation for signing the root zone now
|
||
|
||
The reason DNSSEC is not yet widely deployable is that the problem
|
||
of key management remains unsolved, especially where communication
|
||
between the zone administrators for a parent zone and child zone is
|
||
required.
|
||
|
||
However, during the past year a solution to this problem has been
|
||
found (in the form of a new record type, DS aka Delegation Signer)
|
||
[DS], discussed, implemented and tested. Therefore, it is finally
|
||
reasonable to consider DNSSEC deployment to be a real possibility
|
||
within the next 12 months.
|
||
|
||
In the case of the root zone the particular importance of managing
|
||
the transition with zero operational mistakes is a strong reason to
|
||
separate the signing of the zone itself, with the associated key
|
||
management issues, from the future management of signed delegations
|
||
(of top level domains).
|
||
|
||
Although support for Delegation Signer has been implemented and
|
||
tested it is not yet generally available except experimentally. For
|
||
this reason signed delegations for productions zones will have to
|
||
wait a bit longer. Furthermore, it will take some time to ensure
|
||
that the entire RSS aka Root Server System is capable of supporting
|
||
the protocol changes that accompany the new support for Delegation
|
||
Signer.
|
||
|
||
By signing now it will be possible to work through the operational
|
||
issues with signing the zone itself without at the same time having
|
||
to manage the additional complexity of signed delegations. Also, by
|
||
explicitly not supporting any signed delegations, it is also
|
||
possible to recover in a graceful way should new operational
|
||
problems turn up.
|
||
|
||
Because of these operational and technical issues there is a
|
||
"window of opportunity" to sign the root zone before the status of
|
||
implementation of "full DNSSEC", including Delegation Signer
|
||
support, change to "generally available", thereby increasing the
|
||
pressure for signed delegations from the root zone.
|
||
|
||
|
||
3. Trust in DNSSEC Keys
|
||
|
||
In the end the trust that a validating resolver will be able to put
|
||
in a key that it cannot validate within DNSSEC will have to be a
|
||
function of
|
||
|
||
* trust in the key issuer
|
||
|
||
* trust in the distribution method
|
||
|
||
* trust in extra, out-of-band verification
|
||
|
||
For any security apex, i.e. a node in the DNS hierarchy that issues
|
||
out-of-band "trusted keys", it is of critical importance that this
|
||
function produces a positive result (i.e. the resolver gains
|
||
sufficient confidence in the keys to decide to trust them). The
|
||
particular case of the root zone is no different, although possibly
|
||
it is more crucial than many other security apexes.
|
||
|
||
To ensure that the resulting trust is maximized it is necessary to
|
||
work with all the parameters that are available. In the case of the
|
||
key issuer there is the possibility of chosing a key issuer that
|
||
has a large "trust base" (i.e. is already trusted by a large
|
||
fraction of the resolver population). However, it is also possible
|
||
to expand the aggregated trust base by using multiple simultaneous
|
||
key issuers, as described in [Threshold-Validation].
|
||
|
||
Furthermore, with multiple trusted keys it will be possible for a
|
||
validating resolver to optimize for the "right compromise" between
|
||
|
||
* maximum security (as expressed by all available signatures by all
|
||
available keys verifying correctly
|
||
|
||
* maximum redundancy (as in the DNS lookup being validated if there
|
||
is any signature by any trusted key available)
|
||
|
||
Without multiple, independent trusted keys the rollover operation
|
||
will always be a dangerous operation where it is likely that some
|
||
fraction of the resolver population lose their ability to verify
|
||
lookups (and hence start to fail hard). I.e. the validating
|
||
resolver will be forced to adopt the "maximum security" policy,
|
||
since there is no alternative.
|
||
|
||
With multiple, independent trusted keys, however, it is possible to
|
||
design for improved redundancy by trusting lookups that are only
|
||
validated against a subset of the available keys. This will make
|
||
rollovers much less risky to the extent that it will be possible to
|
||
"survive" even emergency rollovers without any immediate
|
||
configuration chagnes in the validating resolver.
|
||
|
||
|
||
4. Interim signing of the root zone
|
||
|
||
At present all the authoritative servers for the root zone pull the
|
||
zone from a primary master. I.e. any changes at the primary master
|
||
will propagate via NOTIFY[RFC1996] and subsequent
|
||
AXFR/IXFR[RFC1995, AXFR-clarify] to the slave servers.
|
||
|
||
Between the primary master and the slaves transactions are signed
|
||
with TSIG[RFC2845] signatures. This mechanism is already in place,
|
||
and there is operational experience with periodic key rollover of
|
||
the TSIG keys.
|
||
|
||
|
||
4.1. Design philosophy
|
||
|
||
By introducing a signing step into the distribution of the zone
|
||
file complexity is increased. To avoid introducing new single
|
||
points of failure it is therefore important to ensure that any
|
||
added or changed steps are as redundant as possible.
|
||
|
||
The assumption is that the operators of the root servers are
|
||
trusted and that consistency of the zone among the root servers is
|
||
a crucial property that MUST be preserved in emergencies.
|
||
|
||
To ensure that consistency is maintained new single points of
|
||
failure SHOULD NOT be introduced by the signing step. Therefore a
|
||
structure where several parties have the ability to sign the zone
|
||
is proposed. Furthermore, such a design helps avoid any individual
|
||
party becoming a de facto single zone signing authority.
|
||
|
||
|
||
4.2. Proposed new management structure for the root zone
|
||
|
||
Taking into account the already existing infrastructure for
|
||
management of TSIG keys and rollover of these keys the following
|
||
structure is proposed:
|
||
|
||
* Day-to-day signing of the root zone is performed by a subgroup of
|
||
the root server operators referred to as "signing operators". For
|
||
this task individual, per-operator, Zone Signing Keys, ZSKs, are
|
||
used.
|
||
|
||
* The set of Zone Signing Keys are signed by several Key Signing
|
||
Keys, KSKs, at any particular time. The public part of KSKs in
|
||
use have to be statically configured as "trusted keys" in all
|
||
resolvers that want to be able to perform validation of
|
||
responses.
|
||
|
||
* Key rollover, the operation when an old KSK is exchanged for a
|
||
new KSK, is managed with minimal overlap and on a frequent basis
|
||
of no less than three times per year per KSK. The rollover
|
||
schedule is chosen to be frequent enough to not make long-term
|
||
trust possible while being low enough to not become operationally
|
||
infeasible.
|
||
|
||
|
||
4.2.1. Management and distribution of the zone file
|
||
|
||
The present, unsigned zone is published by the official slaves, the
|
||
"root nameservers", transferring the zone securely from a primary
|
||
master and subsequently using the data to respond to queries. This
|
||
mechanism is changed into:
|
||
|
||
* The unsigned root zone is transferred securely from the primary
|
||
master to a set of "signing primaries" managed by the operators
|
||
participating in signing the zone. This is done via the
|
||
traditional mechanisms NOTIFY + AXFR/IXFR + TSIG.
|
||
|
||
* The root nameservers change their configuration so that they
|
||
replace the present, single, primary master as the source of the
|
||
zone with a set of multiple possible "signing primaries" as
|
||
masters that provide the signed zone.
|
||
|
||
* When a new, unsigned zone, is published by the primary master it
|
||
will automatically be transferred to the pre-signing servers. The
|
||
responsible operator will then sign the new zone and publish it
|
||
from his signing primary. Since the serial number is higher than
|
||
what the official root nameservers presently have the official
|
||
root nameservers will all transfer the zone from this source
|
||
(because of the redundant configuration with multiple possible
|
||
masters for the signed zone).
|
||
|
||
* The operators that participate in signing rotate the signing
|
||
responsibility among themselves. Should the responsible operator
|
||
be unable to do this for any reason then any of the others are
|
||
able to do the signing instead. Traceability is maintained since
|
||
the zone signing keys are individual.
|
||
|
||
* To avoid having several "backup signing operators" possibly sign
|
||
at exactly the same time backups are allocated "time windows"
|
||
within which they are allowed to publish a signed zone.
|
||
|
||
With N signers, each signer is assigned a unique number R in
|
||
[1..N].
|
||
|
||
T = 2*k*((S-R) mod N)
|
||
|
||
T is time to wait in seconds, S current serial number. The length
|
||
of the window is k, thereby separating each signing window with
|
||
an interval where signing is not allowed.
|
||
|
||
The constant k is used to create sufficient separation of the
|
||
signers with respect to time used to sign and time needed to
|
||
distribute the zone. A reasonable value for k would be in the
|
||
order of 1800 seconds.
|
||
|
||
* Because the digital signatures in the signed root zone MUST NOT
|
||
expire it is necessary to ensure that the unsigned zone does
|
||
change sufficiently often to cause new signing to occur within
|
||
the validity period of the old signatures. This is most easily
|
||
accomplished by a dummy update that only increments the serial
|
||
number in the SOA record.
|
||
|
||
This new requirement will not cause any operational problems,
|
||
since in fact the root zone is maintained this way since several
|
||
years back.
|
||
|
||
|
||
4.2.2. Management of the Key Signing Keys
|
||
|
||
Key Signing Keys, KSKs, are periodically issued by a several "Key
|
||
Signing Key Holders", KSK holders, individually. These KSKs consist
|
||
of a private part that should always be kept secret and a public
|
||
part that should be published as widely as possible since it will
|
||
be used as a "trusted key" in resolver configurations.
|
||
|
||
The public part of each KSK should be included in the keyset for
|
||
"." as described in [Threshold-Validation]. I.e. the keyset will be
|
||
the union of the public parts of all KSKs and all ZSKs, Zone
|
||
Signing Keys.
|
||
|
||
* Each KSK holder should generate a sequence of KSKs where the
|
||
public parts will be used to include in the keyset for "." and
|
||
the private parts will be used for signing the keyset.
|
||
|
||
* Each KSK holder should, on request from the signing operators,
|
||
send in the public part of the KSK. The union of the public parts
|
||
of KSKs and the corresponding public parts of ZSKs, as collected
|
||
by the signing operators, constitute a "keyset".
|
||
|
||
* Each KSK holder should, on request from the signing operators,
|
||
sign the complete keyset with the private part of the associated
|
||
KSK and send in the resulting signature to the signing operators
|
||
for inclusion in the signed zone.
|
||
|
||
|
||
4.2.3. Management of the Zone Signing Keys and the keyset signatures
|
||
|
||
A subgroup of the root operators that choose to participate in
|
||
signing the zone each hold an individual "Zone Signing Key",
|
||
ZSK. The subgroup of operators may include all operators, but that
|
||
is not necessary as long as a sufficient number to achieve
|
||
redundancy in "signing ability" participates.
|
||
|
||
* The complete keyset (i.e. all the public parts of KSKs and ZSKs)
|
||
should be signed by each KSK holder individually, generating a
|
||
new signature for the keyset which is sent back to the signing
|
||
operators via an out-of-band mechanism.
|
||
|
||
* The signing operators should verify each received signature
|
||
against the corresponding key in the keyset and, unless invalid,
|
||
accept the signature into the set of signatures associated with
|
||
this keyset as described in [Threshold-Validation].
|
||
|
||
* The signing operators should include one of the keysets together
|
||
with all the KSK signatures in the zone file according to an
|
||
agreed upon rotation schedule.
|
||
|
||
|
||
4.2.4. Management of key rollover
|
||
|
||
The Key Signing Keys should, for this interim scheme, be relatively
|
||
short-lived and rolled over frequently. The direct intent is that
|
||
it should not be possible to put long term trust in the keys.
|
||
Therefore, by design, every resolver that chooses to configure
|
||
these as "trusted keys" (to be able to validate lookups) will have
|
||
to change the configuration periodically.
|
||
|
||
This is, after all, only an interim method of root zone signing.
|
||
|
||
* Key rollover is executed by changing from one signed keyset to
|
||
another. I.e. from a keyset signed by one set of KSKs to a keyset
|
||
signed by a partially different set of KSKs. By not rolling all
|
||
the KSKs at the same time redundancy is improved.
|
||
|
||
* Technically the signing operators are able to initiate key
|
||
rollover, although except for the case of a suspected key
|
||
compromise (with subsequent immediate key rollover) this ability
|
||
should only be used according to an established schedule.
|
||
|
||
* New Key Signing Keys will be published as widely as possible,
|
||
however exactly how and where to publish the keys is by itself an
|
||
area where it is necessary to acquire more experience. Especially
|
||
for the case of individual hosts and other devices this will be a
|
||
significant issue to deal with.
|
||
|
||
* Since the keys expire within a few months the aim is to make it
|
||
as difficult as possible to configure an interim key and then
|
||
forget about it long enough to still trust an interim key when a
|
||
long term design for signing the root zone emerges.
|
||
|
||
|
||
4.2.5. The role of the KSK holder
|
||
|
||
With multiple KSKs it is possible to have multiple individual KSK
|
||
holders. Each will perform the role of authenticating the identity
|
||
of the signing operators, through the act of signing the keyset
|
||
that includes the operator Zone Signing Keys.
|
||
|
||
The chain of authority that defines editorial control over the zone
|
||
contents is entirely separate from this and is in no way affected.
|
||
|
||
I.e. the KSK holder is only asserting identity of the holders of
|
||
ZSKs and does not in any way take part in issues regarding zone
|
||
contents. In this respect the role of a KSK holder is much like
|
||
that of a public notary or a Certificate Authority.
|
||
|
||
The primary function that the KSK holder is performing is adding
|
||
trust to the authenticity of the Zone Signing Keys and this trust
|
||
has to be propagated down to validating resolvers. Therefore an
|
||
obvious key characteristic of a KSK holder is that it should
|
||
already be trusted by as large a fraction of the "resolver
|
||
population" as possible. In this document that fraction is referred
|
||
to as the "trust base" of a KSK holder.
|
||
|
||
The key characteristics of a KSK holder will be entities that
|
||
|
||
* already are trusted by some part of the "resolver population",
|
||
i.e. have a "trust base"
|
||
|
||
* are multiple entities that complement each other (so that the
|
||
aggregated "trust base" grows)
|
||
|
||
* are willing to help work on methods for distributing their
|
||
trusted keys to the resolvers (hard problem)
|
||
|
||
The requirement on the individual KSK holders is that they must be
|
||
able to
|
||
|
||
* establish a secure out-of-band communication path in
|
||
collaboration with the signing operators which will be used for
|
||
authenticated exchange of the unsigned keyset and generated
|
||
signatures
|
||
|
||
* periodically generate strong keys using a good random number
|
||
generator
|
||
|
||
* manage their keys (i.e. use them for signing the operator keyset
|
||
and keeping the private key appropriately secret)
|
||
|
||
|
||
4.2.5.6. Suggestions for KSK holders
|
||
|
||
Regional Internet Registries, RIRs, are suggested to be one
|
||
suitable choice of KSK holders. However, since every KSK holder
|
||
will act on its own there is no requirement that all RIRs
|
||
participate, although more than one would be good. Other suitable
|
||
KSK holders may exist and as long as the requirements are met more
|
||
would be better within the packe size limitations that are
|
||
discussed in [Threshold-Validation].
|
||
|
||
The basis of the suggestion of RIRs is
|
||
|
||
* their neutrality
|
||
|
||
* their proven record of service to the Internet community
|
||
|
||
* that they don't have the domain name system as their primary
|
||
field of activity
|
||
|
||
* their geographical diversity
|
||
|
||
* the fact that they are, by definition, not a single entity, but
|
||
rather a collective of organizations.
|
||
|
||
|
||
5. Risk Analysis
|
||
|
||
A change in the management of the root zone is always a risk. But
|
||
that is all the more reason to do it carefully and after due
|
||
consideration, rather than as a result of an immediate and urgent
|
||
need. The gains of a signed root zone have to be judged against the
|
||
added complexity of the signing step.
|
||
|
||
However, added complexity, in one form or another, is basically
|
||
unavoidable. It is possible to argue for or against implementation
|
||
details, but in the end the benefits of a signed root will have to
|
||
be compared against some amount of added complexity. If the cost or
|
||
risk of this complexity is deemed to be too high, then it is not
|
||
possible to sign the DNS root zone. If that is the conclusion; then
|
||
it is obviously important to reach it as soon as possible.
|
||
|
||
The same is true for the need for operational experience with a
|
||
signed root zone. There is no method of acquiring this experience
|
||
except by signing the root zone, so that is what is being proposed.
|
||
|
||
Some identified scenarios:
|
||
|
||
|
||
5.1. What will the consequences of a signed root zone be for old
|
||
resolver software?
|
||
|
||
Nameservers that are authoritative for signed zones only give out
|
||
these signatures when explicitly asked for them. Therefore, the
|
||
presence of signatures in the root zone will not have any impact at
|
||
all on the majority of resolvers on the Internet that does not
|
||
validate lookups.
|
||
|
||
|
||
5.2. What happens if a signing operator fails to sign the zone on
|
||
time?
|
||
|
||
Literally nothing. I.e. the root zone that is published will be the
|
||
version prior to the last change. This is not believed to be a
|
||
major problem, since all changes to the data in the root zone are
|
||
characterized by long overlaps in time. Furthermore every change is
|
||
preceded by an administrative process that takes several days or
|
||
even weeks. Because of this, a failure to install a new version of
|
||
the root zone for even so long as a day will not noticeably change
|
||
the turn-around time for changes in the root zone.
|
||
|
||
|
||
5.3. What happens if several signing operators by mistake sign the
|
||
same version?
|
||
|
||
Literally nothing. One signing operator will be first, according to
|
||
the mechanism designed to separate the different backup signing
|
||
operators described in 3.3.1. The signed zone published by this
|
||
operator will be the version of the signed root zone that all the
|
||
root nameservers pick up.
|
||
|
||
When the second signing operator signs the zone the serial number
|
||
in the zone will be unchanged, and therefore the root nameservers
|
||
will not pick this zone up but instead stay with the first version.
|
||
|
||
|
||
5.4. What happens if the unsigned zone is compromised between the
|
||
primary master and the signing primaries?
|
||
|
||
This is basically the same threat as the zone being compromised
|
||
between the primary master and the root servers in the traditional
|
||
unsigned case. To guard against this possibility every zone
|
||
transfer is already protected by a TSIG signature.
|
||
|
||
Because of this the root zone file cannot get transferred to the
|
||
signing primaries unless the transaction signature matches, thereby
|
||
proving that the zone contents are uncompromised. The consequence
|
||
is that if the zone transfers are somehow compromised in transit,
|
||
they will not get signed and therefore the published root zone will
|
||
remain the signed version of the last uncompromised transfer.
|
||
|
||
|
||
5.5. What are the security implications for the new "signing
|
||
primaries"? Will they not have to be as secure as the primary
|
||
master is now?
|
||
|
||
Yes. However, the entire root server system is based upon trust,
|
||
i.e. the entire Internet is trusting the present root server system
|
||
because there is no alternative to doing that. This proposal is not
|
||
about changing the need for trust in the root server system. It is
|
||
about providing a method of determining authenticity of data,
|
||
something that is presently missing.
|
||
|
||
The root operators are already trusted to provide a root server
|
||
system based upon secure servers lacking validation mechanisms. It
|
||
is therefore a bit difficult to argue for not trusting them to
|
||
provide an improved system that adds exactly the lacking validation
|
||
mechanisms on a basis of not trusting them to secure the servers
|
||
involved. In both cases trust is involved, the difference is that
|
||
in the latter case validation is possible.
|
||
|
||
Furthermore, the proposed signing primaries will not need to have
|
||
publicly known addresses (just as the present primary master is not
|
||
publicly known), nor will they need to be able to communicate with
|
||
anyone outside the well defined set of servers that are part of the
|
||
root server system. Because of this it will be significantly easier
|
||
to secure the signing primaries than the already present task of
|
||
securing the DNS root nameservers.
|
||
|
||
|
||
5.6. What happens if a Zone Signing Key is compromised?
|
||
|
||
If this happens it is necessary to do an emergency rollover of the
|
||
keyset that includes the compromised key. I.e. the old keyset (and
|
||
its signatures) is replaced by a new keyset containing new ZSKs but
|
||
the same, uncompromised, KSKs and its signatures. Then the root
|
||
zone is re-signed using one of the new Zone Signing Keys.
|
||
|
||
This problem is not unique to a signed root zone, it is inherent in
|
||
any activity involving cryptographic keys.
|
||
|
||
Also note that there will be no need to change any configuration in
|
||
the resolver end. The rollover is an entirely atomic operation
|
||
inside the management structure of the root zone.
|
||
|
||
|
||
5.7. What happens if a Key Signing Key is compromised?
|
||
|
||
Depending on the trust model used by individual validating
|
||
resolvers one of two things will happen.
|
||
|
||
Resolvers that through local policy have chosen to trust this KSK
|
||
alone will need to change their configuration to instead trust
|
||
other KSKs, either available from other KSK holders or a new
|
||
trusted key made available by the same KSK holder that held the
|
||
compromised key.
|
||
|
||
Resolvers that have chosen to require multiple signatures by KSKs
|
||
for the root zone will not have to do any emergency key rollover at
|
||
all, since validation of lookups will still work, based upon the
|
||
integrity of the other trusted keys that have not been compromised.
|
||
|
||
In the management end it is necessary to do an emergency rollover
|
||
of the keyset including the compromised key and the suggested
|
||
method is by switching to a keyset that only changes the
|
||
compromised KSK and the ZSKs and keeps all other KSKs. Such keysets
|
||
should be prepared and signed in advance.
|
||
|
||
The new signed keyset is added to the root zone and then the zone
|
||
is re-signed using one of the new Zone Signing Keys. In this case,
|
||
since a Key Signing Key is changed, every resolver that choose to
|
||
trust that KSK holder will over time have to configure the new key
|
||
to be able to validate lookups.
|
||
|
||
This problem is not unique to a signed root zone, it is inherent in
|
||
any activity involving cryptographic keys.
|
||
|
||
|
||
5.8. Does the out-of-band communication between the signing operators
|
||
and the RIRs holding the key-signing keys add a new failure mode?
|
||
|
||
Yes. The traditional DNSSEC design assumes that (for an arbitrary
|
||
zone, not particularly for the root zone) the key-signing key is
|
||
managed by the same entity that manages the operator keys and hence
|
||
no communication issue exists.
|
||
|
||
In this case it is important that the signing operators do not hold
|
||
the responsibility for the key-signing keys. The root server
|
||
operators should only act as a "publishing service" for the root
|
||
zone contents, not as the entity that verifies correctness of the
|
||
published data.
|
||
|
||
However, apart from established secure methods of out-of-band
|
||
communication being available, there is also the very real
|
||
possibility of managing these exchanges with actual eye-to-eye
|
||
contact. Representatives for the RIRs and the root server operators
|
||
already meet on a regular basis during IETF meetings and the
|
||
different RIR meetings.
|
||
|
||
|
||
6. Security Considerations
|
||
|
||
Signing the DNS root zone is all about security. A signed root zone
|
||
may aid applications and organizations all over the Internet in
|
||
improving their security by enabling validation of DNS lookups.
|
||
|
||
Signing the root zone does add a new management step and therefore
|
||
it is important to ensure that possible failures in this management
|
||
step does not leave the published root zone in a state that is
|
||
actually worse than the original unsigned state.
|
||
|
||
The various failure modes that have been identified all show this
|
||
property of not being any worse than the unsigned case.
|
||
|
||
There is however one scenario that changes drastically with the
|
||
proposed distributed signing scheme and that is the consequences of
|
||
one signing operator intentionally changing the contents of the
|
||
root zone prior to the actual signing. In the unsigned case this
|
||
will cause the root zone to become inconsistent (i.e. the responses
|
||
vary depending upon which server it comes from), while in the
|
||
signed case the root zone will remain consistent but with erroneous
|
||
data in it.
|
||
|
||
It is my belief (this is impossible to prove) that the risk of
|
||
human error among the operators, however small, is still far
|
||
greater than the risk of willful misconduct. Therefore, the
|
||
proposed design that enforces consistency among the roots, is
|
||
actually also an improvement in stability and security.
|
||
|
||
Se further section 4 for a more complete risk analysis.
|
||
|
||
|
||
7. IANA Considerations
|
||
|
||
NONE.
|
||
|
||
|
||
8. References
|
||
|
||
8.1. Normative.
|
||
|
||
[RFC2535] Domain Name System Security Extensions. D. Eastlake.
|
||
March 1999.
|
||
|
||
[RFC3090] DNS Security Extension Clarification on Zone Status.
|
||
E. Lewis. March 2001.
|
||
|
||
[RFC1995] Incremental Zone Transfer in DNS. M. Ohta. August 1996.
|
||
|
||
[RFC1996] A Mechanism for Prompt Notification of Zone Changes
|
||
(DNS NOTIFY). P. Vixie. August 1996.
|
||
|
||
[RFC2845] Secret Key Transaction Authentication for DNS (TSIG).
|
||
P. Vixie, O. Gudmundsson, D. Eastlake, B. Wellington.
|
||
May 2000.
|
||
|
||
8.2. Informative.
|
||
|
||
[RFC2930] Secret Key Establishment for DNS (TKEY RR). D. Eastlake.
|
||
September 2000.
|
||
|
||
[RFC3007] Secure Domain Name System (DNS) Dynamic Update.
|
||
B. Wellington. November 2000.
|
||
|
||
[RFC3008] Domain Name System Security (DNSSEC) Signing Authority.
|
||
B. Wellington. November 2000.
|
||
|
||
[RFC3110] RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System
|
||
(DNS). D. Eastlake 3rd. May 2001.
|
||
|
||
[RFC3225] Indicating Resolver Support of DNSSEC. D. Conrad.
|
||
December 2001.
|
||
|
||
[RFC3226] DNSSEC and IPv6 A6 aware server/resolver message size
|
||
requirements. O. Gudmundsson. December 2001.
|
||
|
||
[Delegation-Signer] Delegation Signer Resource Record.
|
||
O. Gudmundsson. October 2002. Work In Progress.
|
||
|
||
[AXFR-clarify] draft-ietf-dnsext-axfr-clarify-NN.txt DNS Zone
|
||
Transfer Protocol Clarifications. A. Gustafsson. March
|
||
2002. Work In Progress.
|
||
|
||
[AD-secure] draft-ietf-dnsext-ad-is-secure-NN.txt Redefinition of
|
||
DNS AD bit. B. Wellington, O Gudmundsson. June 2002.
|
||
Work In Progress.
|
||
|
||
[Opt-In] draft-ietf-dnsext-dnssec-opt-in-NN.txt DNSSEC Opt-In
|
||
R. Arends, M Kosters, D. Blacka. June 2002. Work In
|
||
Progress.
|
||
|
||
[Wild-card-optimize] draft-olaf-dnsext-dnssec-wildcard-
|
||
optimization-NN.txt DNSSEC Wildcard optimization.
|
||
O. Kolkman, J. Ihren, R. Arends. September 2002.
|
||
Work In Progress.
|
||
|
||
[Threshold-Validation]
|
||
draft-ihren-dnsop-threshold-validation-00.txt Threshold
|
||
validation: A Mechanism for Improved Trust and Redundancy
|
||
for DNSSEC Keys. J. Ihren. February 2003. Work In
|
||
Progress.
|
||
|
||
9. Acknowledgments.
|
||
|
||
To help me produce this document I have received lots and lots of
|
||
comments from many people around the Internet with suggestions for
|
||
lots and lots sorely needed improvements. Among the folks who
|
||
helped out are, in no particular order: Paul Vixie, Bill Manning,
|
||
Ôlafur Gumundsson, Rob Austein, Patrik F„ltstr÷m, Olaf Kolkman,
|
||
Harald Alvestrand, Suzanne Woolf, John M. Brown, Lars-Johan Liman
|
||
and M…ns Nilsson.
|
||
|
||
|
||
10. Authors' Address
|
||
|
||
Johan Ihr‰n
|
||
Autonomica AB
|
||
Bellmansgatan 30
|
||
SE-118 47 Stockholm, Sweden
|
||
johani@autonomica.se
|