This commit was manufactured by cvs2git to create branch 'v9_6_esv_branch'.
This commit is contained in:
1792
doc/draft/draft-ietf-behave-dns64-07.txt
Normal file
1792
doc/draft/draft-ietf-behave-dns64-07.txt
Normal file
File diff suppressed because it is too large
Load Diff
785
doc/draft/draft-ietf-dnsext-dnssec-bis-updates-10.txt
Normal file
785
doc/draft/draft-ietf-dnsext-dnssec-bis-updates-10.txt
Normal file
@@ -0,0 +1,785 @@
|
||||
|
||||
|
||||
|
||||
Network Working Group S. Weiler
|
||||
Internet-Draft SPARTA, Inc.
|
||||
Updates: 4033, 4034, 4035, 5155 D. Blacka
|
||||
(if approved) VeriSign, Inc.
|
||||
Intended status: Standards Track March 8, 2010
|
||||
Expires: September 9, 2010
|
||||
|
||||
|
||||
Clarifications and Implementation Notes for DNSSECbis
|
||||
draft-ietf-dnsext-dnssec-bis-updates-10
|
||||
|
||||
Abstract
|
||||
|
||||
This document is a collection of technical clarifications to the
|
||||
DNSSECbis document set. It is meant to serve as a resource to
|
||||
implementors as well as a repository of DNSSECbis errata.
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This Internet-Draft is submitted to IETF in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF), its areas, and its working groups. Note that
|
||||
other groups may also distribute working documents as Internet-
|
||||
Drafts.
|
||||
|
||||
Internet-Drafts are draft documents valid for a maximum of six months
|
||||
and may be updated, replaced, or obsoleted by other documents at any
|
||||
time. It is inappropriate to use Internet-Drafts as reference
|
||||
material or to cite them other than as "work in progress."
|
||||
|
||||
The list of current Internet-Drafts can be accessed at
|
||||
http://www.ietf.org/ietf/1id-abstracts.txt.
|
||||
|
||||
The list of Internet-Draft Shadow Directories can be accessed at
|
||||
http://www.ietf.org/shadow.html.
|
||||
|
||||
This Internet-Draft will expire on September 9, 2010.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2010 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
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 1]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
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 BSD License.
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction and Terminology . . . . . . . . . . . . . . . . . 3
|
||||
1.1. Structure of this Document . . . . . . . . . . . . . . . . 3
|
||||
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
2. Important Additions to DNSSSECbis . . . . . . . . . . . . . . 3
|
||||
2.1. NSEC3 Support . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
2.2. SHA-256 Support . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3. Security Concerns . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
3.1. Clarifications on Non-Existence Proofs . . . . . . . . . . 4
|
||||
3.2. Validating Responses to an ANY Query . . . . . . . . . . . 5
|
||||
3.3. Check for CNAME . . . . . . . . . . . . . . . . . . . . . 5
|
||||
3.4. Insecure Delegation Proofs . . . . . . . . . . . . . . . . 5
|
||||
4. Interoperability Concerns . . . . . . . . . . . . . . . . . . 5
|
||||
4.1. Errors in Canonical Form Type Code List . . . . . . . . . 5
|
||||
4.2. Unknown DS Message Digest Algorithms . . . . . . . . . . . 6
|
||||
4.3. Private Algorithms . . . . . . . . . . . . . . . . . . . . 6
|
||||
4.4. Caution About Local Policy and Multiple RRSIGs . . . . . . 7
|
||||
4.5. Key Tag Calculation . . . . . . . . . . . . . . . . . . . 7
|
||||
4.6. Setting the DO Bit on Replies . . . . . . . . . . . . . . 7
|
||||
4.7. Setting the AD Bit on Queries . . . . . . . . . . . . . . 8
|
||||
4.8. Setting the AD Bit on Replies . . . . . . . . . . . . . . 8
|
||||
4.9. Setting the CD bit on Requests . . . . . . . . . . . . . . 8
|
||||
4.10. Nested Trust Anchors . . . . . . . . . . . . . . . . . . . 8
|
||||
4.10.1. Closest Encloser . . . . . . . . . . . . . . . . . . 9
|
||||
4.10.2. Accept Any Success . . . . . . . . . . . . . . . . . 9
|
||||
4.10.3. Preference Based on Source . . . . . . . . . . . . . 10
|
||||
5. Minor Corrections and Clarifications . . . . . . . . . . . . . 10
|
||||
5.1. Finding Zone Cuts . . . . . . . . . . . . . . . . . . . . 10
|
||||
5.2. Clarifications on DNSKEY Usage . . . . . . . . . . . . . . 10
|
||||
5.3. Errors in Examples . . . . . . . . . . . . . . . . . . . . 11
|
||||
5.4. Errors in RFC 5155 . . . . . . . . . . . . . . . . . . . . 11
|
||||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
|
||||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12
|
||||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
|
||||
8.1. Normative References . . . . . . . . . . . . . . . . . . . 12
|
||||
8.2. Informative References . . . . . . . . . . . . . . . . . . 13
|
||||
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 13
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14
|
||||
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 2]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
1. Introduction and Terminology
|
||||
|
||||
This document lists some additions, clarifications and corrections to
|
||||
the core DNSSECbis specification, as originally described in
|
||||
[RFC4033], [RFC4034], and [RFC4035], and later amended by [RFC5155].
|
||||
(See section Section 2 for more recent additions to that core
|
||||
document set.)
|
||||
|
||||
It is intended to serve as a resource for implementors and as a
|
||||
repository of items that need to be addressed when advancing the
|
||||
DNSSECbis documents from Proposed Standard to Draft Standard.
|
||||
|
||||
1.1. Structure of this Document
|
||||
|
||||
The clarifications to DNSSECbis are sorted according to their
|
||||
importance, starting with ones which could, if ignored, lead to
|
||||
security problems and progressing down to clarifications that are
|
||||
expected to have little operational impact.
|
||||
|
||||
1.2. Terminology
|
||||
|
||||
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 [RFC2119].
|
||||
|
||||
|
||||
2. Important Additions to DNSSSECbis
|
||||
|
||||
This section lists some documents that should be considered core
|
||||
DNSSEC protocol documents in addition to those originally specified
|
||||
in Section 10 of [RFC4033].
|
||||
|
||||
2.1. NSEC3 Support
|
||||
|
||||
[RFC5155] describes the use and behavior of the NSEC3 and NSEC3PARAM
|
||||
records for hashed denial of existence. Validator implementations
|
||||
are strongly encouraged to include support for NSEC3 because a number
|
||||
of highly visible zones are expected to use it. Validators that do
|
||||
not support validation of responses using NSEC3 will likely be
|
||||
hampered in validating large portions of the DNS space.
|
||||
|
||||
[RFC5155] should be considered part of the DNS Security Document
|
||||
Family as described by [RFC4033], Section 10.
|
||||
|
||||
Note that the algorithm identifiers defined in RFC5155 (DSA-NSEC3-
|
||||
SHA1 and RSASHA1-NSEC3-SHA1) signal that a zone MAY be using NSEC3,
|
||||
rather than NSEC. The zone MAY indeed be using either and validators
|
||||
supporting these algorithms MUST support both NSEC3 and NSEC
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 3]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
responses.
|
||||
|
||||
2.2. SHA-256 Support
|
||||
|
||||
[RFC4509] describes the use of SHA-256 as a digest algorithm in
|
||||
Delegation Signer (DS) RRs. [RFC5702] describes the use of the
|
||||
RSASHA256 algorithm in DNSKEY and RRSIG RRs. Validator
|
||||
implementations are strongly encouraged to include support for this
|
||||
algorithm for DS, DNSKEY, and RRSIG records.
|
||||
|
||||
Both [RFC4509] and [RFC5702] should also be considered part of the
|
||||
DNS Security Document Family as described by [RFC4033], Section 10.
|
||||
|
||||
|
||||
3. Security Concerns
|
||||
|
||||
This section provides clarifications that, if overlooked, could lead
|
||||
to security issues.
|
||||
|
||||
3.1. Clarifications on Non-Existence Proofs
|
||||
|
||||
[RFC4035] Section 5.4 under-specifies the algorithm for checking non-
|
||||
existence proofs. In particular, the algorithm as presented would
|
||||
incorrectly allow an NSEC or NSEC3 RR from an ancestor zone to prove
|
||||
the non-existence of RRs in the child zone.
|
||||
|
||||
An "ancestor delegation" NSEC RR (or NSEC3 RR) is one with:
|
||||
|
||||
o the NS bit set,
|
||||
o the SOA bit clear, and
|
||||
o a signer field that is shorter than the owner name of the NSEC RR,
|
||||
or the original owner name for the NSEC3 RR.
|
||||
|
||||
Ancestor delegation NSEC or NSEC3 RRs MUST NOT be used to assume non-
|
||||
existence of any RRs below that zone cut, which include all RRs at
|
||||
that (original) owner name other than DS RRs, and all RRs below that
|
||||
owner name regardless of type.
|
||||
|
||||
Similarly, the algorithm would also allow an NSEC RR at the same
|
||||
owner name as a DNAME RR, or an NSEC3 RR at the same original owner
|
||||
name as a DNAME, to prove the non-existence of names beneath that
|
||||
DNAME. An NSEC or NSEC3 RR with the DNAME bit set MUST NOT be used
|
||||
to assume the non-existence of any subdomain of that NSEC/NSEC3 RR's
|
||||
(original) owner name.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 4]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
3.2. Validating Responses to an ANY Query
|
||||
|
||||
[RFC4035] does not address how to validate responses when QTYPE=*.
|
||||
As described in Section 6.2.2 of [RFC1034], a proper response to
|
||||
QTYPE=* may include a subset of the RRsets at a given name. That is,
|
||||
it is not necessary to include all RRsets at the QNAME in the
|
||||
response.
|
||||
|
||||
When validating a response to QTYPE=*, all received RRsets that match
|
||||
QNAME and QCLASS MUST be validated. If any of those RRsets fail
|
||||
validation, the answer is considered Bogus. If there are no RRsets
|
||||
matching QNAME and QCLASS, that fact MUST be validated according to
|
||||
the rules in [RFC4035] Section 5.4 (as clarified in this document).
|
||||
To be clear, a validator must not expect to receive all records at
|
||||
the QNAME in response to QTYPE=*.
|
||||
|
||||
3.3. Check for CNAME
|
||||
|
||||
Section 5 of [RFC4035] says little about validating responses based
|
||||
on (or that should be based on) CNAMEs. When validating a NOERROR/
|
||||
NODATA response, validators MUST check the CNAME bit in the matching
|
||||
NSEC or NSEC3 RR's type bitmap in addition to the bit for the query
|
||||
type. Without this check, an attacker could successfully transform a
|
||||
positive CNAME response into a NOERROR/NODATA response.
|
||||
|
||||
3.4. Insecure Delegation Proofs
|
||||
|
||||
[RFC4035] Section 5.2 specifies that a validator, when proving a
|
||||
delegation is not secure, needs to check for the absence of the DS
|
||||
and SOA bits in the NSEC (or NSEC3) type bitmap. The validator also
|
||||
needs to check for the presence of the NS bit in the matching NSEC
|
||||
(or NSEC3) RR (proving that there is, indeed, a delegation), or
|
||||
alternately make sure that the delegation is covered by an NSEC3 RR
|
||||
with the Opt-Out flag set. If this is not checked, spoofed unsigned
|
||||
delegations might be used to claim that an existing signed record is
|
||||
not signed.
|
||||
|
||||
|
||||
4. Interoperability Concerns
|
||||
|
||||
4.1. Errors in Canonical Form Type Code List
|
||||
|
||||
When canonicalizing DNS names, DNS names in the RDATA section of NSEC
|
||||
and RRSIG resource records are not downcased.
|
||||
|
||||
[RFC4034] Section 6.2 item 3 has a list of resource record types for
|
||||
which DNS names in the RDATA are downcased for purposes of DNSSEC
|
||||
canonical form (for both ordering and signing). That list
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 5]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
erroneously contains NSEC and RRSIG. According to [RFC3755], DNS
|
||||
names in the RDATA of NSEC and RRSIG should not be downcased.
|
||||
|
||||
The same section also erroneously lists HINFO, and twice at that.
|
||||
Since HINFO records contain no domain names, they are not subject to
|
||||
downcasing.
|
||||
|
||||
4.2. Unknown DS Message Digest Algorithms
|
||||
|
||||
Section 5.2 of [RFC4035] includes rules for how to handle delegations
|
||||
to zones that are signed with entirely unsupported public key
|
||||
algorithms, as indicated by the key algorithms shown in those zone's
|
||||
DS RRsets. It does not explicitly address how to handle DS records
|
||||
that use unsupported message digest algorithms. In brief, DS records
|
||||
using unknown or unsupported message digest algorithms MUST be
|
||||
treated the same way as DS records referring to DNSKEY RRs of unknown
|
||||
or unsupported public key algorithms.
|
||||
|
||||
The existing text says:
|
||||
|
||||
If the validator does not support any of the algorithms listed in
|
||||
an authenticated DS RRset, then the resolver has no supported
|
||||
authentication path leading from the parent to the child. The
|
||||
resolver should treat this case as it would the case of an
|
||||
authenticated NSEC RRset proving that no DS RRset exists, as
|
||||
described above.
|
||||
|
||||
To paraphrase the above, when determining the security status of a
|
||||
zone, a validator disregards any DS records listing unknown or
|
||||
unsupported algorithms. If none are left, the zone is treated as if
|
||||
it were unsigned.
|
||||
|
||||
Modified to consider DS message digest algorithms, a validator also
|
||||
disregards any DS records using unknown or unsupported message digest
|
||||
algorithms.
|
||||
|
||||
4.3. Private Algorithms
|
||||
|
||||
As discussed above, section 5.2 of [RFC4035] requires that validators
|
||||
make decisions about the security status of zones based on the public
|
||||
key algorithms shown in the DS records for those zones. In the case
|
||||
of private algorithms, as described in [RFC4034] Appendix A.1.1, the
|
||||
eight-bit algorithm field in the DS RR is not conclusive about what
|
||||
algorithm(s) is actually in use.
|
||||
|
||||
If no private algorithms appear in the DS set or if any supported
|
||||
algorithm appears in the DS set, no special processing will be
|
||||
needed. In the remaining cases, the security status of the zone
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 6]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
depends on whether or not the resolver supports any of the private
|
||||
algorithms in use (provided that these DS records use supported hash
|
||||
functions, as discussed in Section 4.2). In these cases, the
|
||||
resolver MUST retrieve the corresponding DNSKEY for each private
|
||||
algorithm DS record and examine the public key field to determine the
|
||||
algorithm in use. The security-aware resolver MUST ensure that the
|
||||
hash of the DNSKEY RR's owner name and RDATA matches the digest in
|
||||
the DS RR. If they do not match, and no other DS establishes that
|
||||
the zone is secure, the referral should be considered Bogus data, as
|
||||
discussed in [RFC4035].
|
||||
|
||||
This clarification facilitates the broader use of private algorithms,
|
||||
as suggested by [RFC4955].
|
||||
|
||||
4.4. Caution About Local Policy and Multiple RRSIGs
|
||||
|
||||
When multiple RRSIGs cover a given RRset, [RFC4035] Section 5.3.3
|
||||
suggests that "the local resolver security policy determines whether
|
||||
the resolver also has to test these RRSIG RRs and how to resolve
|
||||
conflicts if these RRSIG RRs lead to differing results." In most
|
||||
cases, a resolver would be well advised to accept any valid RRSIG as
|
||||
sufficient. If the first RRSIG tested fails validation, a resolver
|
||||
would be well advised to try others, giving a successful validation
|
||||
result if any can be validated and giving a failure only if all
|
||||
RRSIGs fail validation.
|
||||
|
||||
If a resolver adopts a more restrictive policy, there's a danger that
|
||||
properly-signed data might unnecessarily fail validation, perhaps
|
||||
because of cache timing issues. Furthermore, certain zone management
|
||||
techniques, like the Double Signature Zone-signing Key Rollover
|
||||
method described in section 4.2.1.2 of [RFC4641] might not work
|
||||
reliably.
|
||||
|
||||
4.5. Key Tag Calculation
|
||||
|
||||
[RFC4034] Appendix B.1 incorrectly defines the Key Tag field
|
||||
calculation for algorithm 1. It correctly says that the Key Tag is
|
||||
the most significant 16 of the least significant 24 bits of the
|
||||
public key modulus. However, [RFC4034] then goes on to incorrectly
|
||||
say that this is 4th to last and 3rd to last octets of the public key
|
||||
modulus. It is, in fact, the 3rd to last and 2nd to last octets.
|
||||
|
||||
4.6. Setting the DO Bit on Replies
|
||||
|
||||
As stated in [RFC3225], the DO bit of the query MUST be copied in the
|
||||
response. At least one implementation has done something different,
|
||||
so it may be wise for resolvers to be liberal in what they accept.
|
||||
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 7]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
4.7. Setting the AD Bit on Queries
|
||||
|
||||
The use of the AD bit in the query was previously undefined. This
|
||||
document defines it as a signal indicating that the requester
|
||||
understands and is interested in the value of the AD bit in the
|
||||
response. This allows a requestor to indicate that it understands
|
||||
the AD bit without also requesting DNSSEC data via the DO bit.
|
||||
|
||||
4.8. Setting the AD Bit on Replies
|
||||
|
||||
Section 3.2.3 of [RFC4035] describes under which conditions a
|
||||
validating resolver should set or clear the AD bit in a response. In
|
||||
order to protect legacy stub resolvers and middleboxes, validating
|
||||
resolvers SHOULD only set the AD bit when a response both meets the
|
||||
conditions listed in RFC 4035, section 3.2.3, and the request
|
||||
contained either a set DO bit or a set AD bit.
|
||||
|
||||
4.9. Setting the CD bit on Requests
|
||||
|
||||
When processing a request with the CD bit set, a resolver SHOULD
|
||||
attempt to return all responsive data, even data that has failed
|
||||
DNSSEC validation. RFC4035 section 3.2.2 requires a resolver
|
||||
processing a request with the CD bit set to set the CD bit on its
|
||||
upstream queries.
|
||||
|
||||
The guidance in RFC4035 is ambiguous about what to do when a cached
|
||||
response was obtained with the CD bit not set. In the typical case,
|
||||
no new query is required, nor does the cache need to track the state
|
||||
of the CD bit used to make a given query. The problem arises when
|
||||
the cached response is a server failure (RCODE 2), which may indicate
|
||||
that the requested data failed DNSSEC validation at an upstream
|
||||
validating resolver. (RFC2308 permits caching of server failures for
|
||||
up to five minutes.) In these cases, a new query with the CD bit set
|
||||
is required.
|
||||
|
||||
For efficiency, a validator may wish to set the CD bit on all
|
||||
upstream queries when it has a trust anchor at or above the QNAME
|
||||
(and thus can reasonably expect to be able to validate the response).
|
||||
|
||||
4.10. Nested Trust Anchors
|
||||
|
||||
A DNSSEC validator may be configured such that, for a given response,
|
||||
more than one trust anchor could be used to validate the chain of
|
||||
trust to the response zone. For example, imagine a validator
|
||||
configured with trust anchors for "example." and "zone.example."
|
||||
When the validator is asked to validate a response to
|
||||
"www.sub.zone.example.", either trust anchor could apply.
|
||||
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 8]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
When presented with this situation, DNSSEC validators have a choice
|
||||
of which trust anchor(s) to use. Which to use is a matter of
|
||||
implementation choice. It is possible and perhaps advisable to
|
||||
expose the choice of policy as a configuration option. The rest of
|
||||
this section discusses some possible policies. As a default, we
|
||||
suggest that validators implement the "Accept Any Success" policy
|
||||
described below in Section 4.10.2 while exposing other policies as
|
||||
configuration options.
|
||||
|
||||
4.10.1. Closest Encloser
|
||||
|
||||
One policy is to choose the trust anchor closest to the QNAME of the
|
||||
response. In our example, that would be the "zone.example." trust
|
||||
anchor.
|
||||
|
||||
This policy has the advantage of allowing the operator to trivially
|
||||
override a parent zone's trust anchor with one that the operator can
|
||||
validate in a stronger way, perhaps because the resolver operator is
|
||||
affiliated with the zone in question. This policy also minimizes the
|
||||
number of public key operations needed, which may be of benefit in
|
||||
resource-constrained environments.
|
||||
|
||||
This policy has the disadvantage of possibly giving the user some
|
||||
unexpected and unnecessary validation failures when sub-zone trust
|
||||
anchors are neglected. As a concrete example, consider a validator
|
||||
that configured a trust anchor for "zone.example." in 2009 and one
|
||||
for "example." in 2011. In 2012, "zone.example." rolls its KSK and
|
||||
updates its DS records, but the validator operator doesn't update its
|
||||
trust anchor. With the "closest encloser" policy, the validator gets
|
||||
validation failures.
|
||||
|
||||
4.10.2. Accept Any Success
|
||||
|
||||
Another policy is to try all applicable trust anchors until one gives
|
||||
a validation result of Secure, in which case the final validation
|
||||
result is Secure. If and only if all applicable trust anchors give a
|
||||
result of Insecure, the final validation result is Insecure. If one
|
||||
or more trust anchors lead to a Bogus result and there is no Secure
|
||||
result, then the final validation result is Bogus.
|
||||
|
||||
This has the advantage of causing the fewer validation failures,
|
||||
which may deliver a better user experience. If one trust anchor is
|
||||
out of date (as in our above example), the user may still be able to
|
||||
get a Secure validation result (and see DNS responses).
|
||||
|
||||
This policy has the disadvantage of making the validator subject to
|
||||
compromise of the weakest of these trust anchors while making its
|
||||
relatively painless to keep old trust anchors configured in
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 9]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
perpetuity.
|
||||
|
||||
4.10.3. Preference Based on Source
|
||||
|
||||
When the trust anchors have come from different sources (e.g.
|
||||
automated updates ([RFC5011]), one or more DLV registries
|
||||
([RFC5074]), and manually configured), a validator may wish to choose
|
||||
between them based on the perceived reliability of those sources.
|
||||
The order of precedence might be exposed as a configuration option.
|
||||
|
||||
For example, a validator might choose to prefer trust anchors found
|
||||
in a DLV registry over those manually configured on the theory that
|
||||
the manually configured ones will not be as aggressively maintained.
|
||||
|
||||
Conversely, a validator might choose to prefer manually configured
|
||||
trust anchors over those obtained from a DLV registry on the theory
|
||||
that the manually configured ones have been more carefully
|
||||
authenticated.
|
||||
|
||||
Or the validator might do something more complicated: prefer a sub-
|
||||
set of manually configured trust anchors (based on a configuration
|
||||
option), then trust anchors that have been updated using the RFC5011
|
||||
mechanism, then trust anchors from one DLV registry, then trust
|
||||
anchors from a different DLV registry, then the rest of the manually
|
||||
configured trust anchors.
|
||||
|
||||
|
||||
5. Minor Corrections and Clarifications
|
||||
|
||||
5.1. Finding Zone Cuts
|
||||
|
||||
Appendix C.8 of [RFC4035] discusses sending DS queries to the servers
|
||||
for a parent zone. To do that, a resolver may first need to apply
|
||||
special rules to discover what those servers are.
|
||||
|
||||
As explained in Section 3.1.4.1 of [RFC4035], security-aware name
|
||||
servers need to apply special processing rules to handle the DS RR,
|
||||
and in some situations the resolver may also need to apply special
|
||||
rules to locate the name servers for the parent zone if the resolver
|
||||
does not already have the parent's NS RRset. Section 4.2 of
|
||||
[RFC4035] specifies a mechanism for doing that.
|
||||
|
||||
5.2. Clarifications on DNSKEY Usage
|
||||
|
||||
Questions of the form "can I use a different DNSKEY for signing this
|
||||
RRset" have occasionally arisen.
|
||||
|
||||
The short answer is "yes, absolutely". You can even use a different
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 10]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
DNSKEY for each RRset in a zone, subject only to practical limits on
|
||||
the size of the DNSKEY RRset. However, be aware that there is no way
|
||||
to tell resolvers what a particularly DNSKEY is supposed to be used
|
||||
for -- any DNSKEY in the zone's signed DNSKEY RRset may be used to
|
||||
authenticate any RRset in the zone. For example, if a weaker or less
|
||||
trusted DNSKEY is being used to authenticate NSEC RRsets or all
|
||||
dynamically updated records, that same DNSKEY can also be used to
|
||||
sign any other RRsets from the zone.
|
||||
|
||||
Furthermore, note that the SEP bit setting has no effect on how a
|
||||
DNSKEY may be used -- the validation process is specifically
|
||||
prohibited from using that bit by [RFC4034] section 2.1.2. It is
|
||||
possible to use a DNSKEY without the SEP bit set as the sole secure
|
||||
entry point to the zone, yet use a DNSKEY with the SEP bit set to
|
||||
sign all RRsets in the zone (other than the DNSKEY RRset). It's also
|
||||
possible to use a single DNSKEY, with or without the SEP bit set, to
|
||||
sign the entire zone, including the DNSKEY RRset itself.
|
||||
|
||||
5.3. Errors in Examples
|
||||
|
||||
The text in [RFC4035] Section C.1 refers to the examples in B.1 as
|
||||
"x.w.example.com" while B.1 uses "x.w.example". This is painfully
|
||||
obvious in the second paragraph where it states that the RRSIG labels
|
||||
field value of 3 indicates that the answer was not the result of
|
||||
wildcard expansion. This is true for "x.w.example" but not for
|
||||
"x.w.example.com", which of course has a label count of 4
|
||||
(antithetically, a label count of 3 would imply the answer was the
|
||||
result of a wildcard expansion).
|
||||
|
||||
The first paragraph of [RFC4035] Section C.6 also has a minor error:
|
||||
the reference to "a.z.w.w.example" should instead be "a.z.w.example",
|
||||
as in the previous line.
|
||||
|
||||
5.4. Errors in RFC 5155
|
||||
|
||||
A NSEC3 record that matches an Empty Non-Terminal effectively has no
|
||||
type associated with it. This NSEC3 record has an empty type bit
|
||||
map. Section 3.2.1 of [RFC5155] contains the statement:
|
||||
|
||||
Blocks with no types present MUST NOT be included.
|
||||
|
||||
However, the same section contains a regular expression:
|
||||
|
||||
Type Bit Maps Field = ( Window Block # | Bitmap Length | Bitmap )+
|
||||
|
||||
The plus sign in the regular expression indicates that there is one
|
||||
or more of the preceding element. This means that there must be at
|
||||
least one window block. If this window block has no types, it
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 11]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
contradicts with the first statement. Therefore, the correct text in
|
||||
RFC 5155 3.2.1 should be:
|
||||
|
||||
Type Bit Maps Field = ( Window Block # | Bitmap Length | Bitmap )*
|
||||
|
||||
|
||||
6. IANA Considerations
|
||||
|
||||
This document specifies no IANA Actions.
|
||||
|
||||
|
||||
7. Security Considerations
|
||||
|
||||
This document adds two cryptographic features to the core DNSSEC
|
||||
protocol. Additionally, it addresses some ambiguities and omissions
|
||||
in the core DNSSEC documents that, if not recognized and addressed in
|
||||
implementations, could lead to security failures. In particular, the
|
||||
validation algorithm clarifications in Section 3 are critical for
|
||||
preserving the security properties DNSSEC offers. Furthermore,
|
||||
failure to address some of the interoperability concerns in Section 4
|
||||
could limit the ability to later change or expand DNSSEC, including
|
||||
adding new algorithms.
|
||||
|
||||
|
||||
8. References
|
||||
|
||||
8.1. Normative References
|
||||
|
||||
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
|
||||
STD 13, RFC 1034, November 1987.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC3225] Conrad, D., "Indicating Resolver Support of DNSSEC",
|
||||
RFC 3225, December 2001.
|
||||
|
||||
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "DNS Security Introduction and Requirements",
|
||||
RFC 4033, March 2005.
|
||||
|
||||
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "Resource Records for the DNS Security Extensions",
|
||||
RFC 4034, March 2005.
|
||||
|
||||
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||||
Rose, "Protocol Modifications for the DNS Security
|
||||
Extensions", RFC 4035, March 2005.
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 12]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
[RFC4509] Hardaker, W., "Use of SHA-256 in DNSSEC Delegation Signer
|
||||
(DS) Resource Records (RRs)", RFC 4509, May 2006.
|
||||
|
||||
[RFC5155] Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
|
||||
Security (DNSSEC) Hashed Authenticated Denial of
|
||||
Existence", RFC 5155, March 2008.
|
||||
|
||||
[RFC5702] Jansen, J., "Use of SHA-2 Algorithms with RSA in DNSKEY
|
||||
and RRSIG Resource Records for DNSSEC", RFC 5702,
|
||||
October 2009.
|
||||
|
||||
8.2. Informative References
|
||||
|
||||
[RFC3755] Weiler, S., "Legacy Resolver Compatibility for Delegation
|
||||
Signer (DS)", RFC 3755, May 2004.
|
||||
|
||||
[RFC4641] Kolkman, O. and R. Gieben, "DNSSEC Operational Practices",
|
||||
RFC 4641, September 2006.
|
||||
|
||||
[RFC4955] Blacka, D., "DNS Security (DNSSEC) Experiments", RFC 4955,
|
||||
July 2007.
|
||||
|
||||
[RFC5011] StJohns, M., "Automated Updates of DNS Security (DNSSEC)
|
||||
Trust Anchors", RFC 5011, September 2007.
|
||||
|
||||
[RFC5074] Weiler, S., "DNSSEC Lookaside Validation (DLV)", RFC 5074,
|
||||
November 2007.
|
||||
|
||||
|
||||
Appendix A. Acknowledgments
|
||||
|
||||
The editors would like the thank Rob Austein for his previous work as
|
||||
an editor of this document.
|
||||
|
||||
The editors are extremely grateful to those who, in addition to
|
||||
finding errors and omissions in the DNSSECbis document set, have
|
||||
provided text suitable for inclusion in this document.
|
||||
|
||||
The lack of specificity about handling private algorithms, as
|
||||
described in Section 4.3, and the lack of specificity in handling ANY
|
||||
queries, as described in Section 3.2, were discovered by David
|
||||
Blacka.
|
||||
|
||||
The error in algorithm 1 key tag calculation, as described in
|
||||
Section 4.5, was found by Abhijit Hayatnagarkar. Donald Eastlake
|
||||
contributed text for Section 4.5.
|
||||
|
||||
The bug relating to delegation NSEC RR's in Section 3.1 was found by
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 13]
|
||||
|
||||
Internet-Draft DNSSECbis Implementation Notes March 2010
|
||||
|
||||
|
||||
Roy Badami. Roy Arends found the related problem with DNAME.
|
||||
|
||||
The errors in the [RFC4035] examples were found by Roy Arends, who
|
||||
also contributed text for Section 5.3 of this document.
|
||||
|
||||
The editors would like to thank Alfred Hoenes, Ed Lewis, Danny Mayer,
|
||||
Olafur Gudmundsson, Suzanne Woolf, and Scott Rose for their
|
||||
substantive comments on the text of this document.
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Samuel Weiler
|
||||
SPARTA, Inc.
|
||||
7110 Samuel Morse Drive
|
||||
Columbia, Maryland 21046
|
||||
US
|
||||
|
||||
Email: weiler@tislabs.com
|
||||
|
||||
|
||||
David Blacka
|
||||
VeriSign, Inc.
|
||||
21345 Ridgetop Circle
|
||||
Dulles, VA 20166
|
||||
US
|
||||
|
||||
Email: davidb@verisign.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Weiler & Blacka Expires September 9, 2010 [Page 14]
|
||||
|
||||
|
||||
448
doc/draft/draft-ietf-dnsext-dnssec-gost-07.txt
Normal file
448
doc/draft/draft-ietf-dnsext-dnssec-gost-07.txt
Normal file
@@ -0,0 +1,448 @@
|
||||
DNS Extensions working group V.Dolmatov, Ed.
|
||||
Internet-Draft Cryptocom Ltd.
|
||||
Intended status: Standards Track March 06, 2010
|
||||
Expires: September 06, 2010
|
||||
|
||||
|
||||
Use of GOST signature algorithms in DNSKEY and RRSIG Resource Records
|
||||
for DNSSEC
|
||||
draft-ietf-dnsext-dnssec-gost-07
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This Internet-Draft is submitted to IETF in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF), its areas, and its working groups. Note that
|
||||
other groups may also distribute working documents as Internet-
|
||||
Drafts.
|
||||
|
||||
Internet-Drafts are draft documents valid for a maximum of six months
|
||||
and may be updated, replaced, or obsoleted by other documents at any
|
||||
time. It is inappropriate to use Internet-Drafts as reference
|
||||
material or to cite them other than as "work in progress."
|
||||
|
||||
The list of current Internet-Drafts can be accessed at
|
||||
http://www.ietf.org/ietf/1id-abstracts.txt.
|
||||
|
||||
The list of Internet-Draft Shadow Directories can be accessed at
|
||||
http://www.ietf.org/shadow.html.
|
||||
|
||||
This Internet-Draft will expire on September 06 2010.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2009 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
|
||||
(http://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.
|
||||
|
||||
Abstract
|
||||
|
||||
This document describes how to produce signature and hash using
|
||||
GOST (R 34.10-2001, R 34.11-94) algorithms foor DNSKEY, RRSIG and DS
|
||||
resource records for use in the Domain Name System Security
|
||||
Extensions (DNSSEC).
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 1]
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||
2. DNSKEY Resource Records . . . . . . . . . . . . . . . . . . . . 3
|
||||
2.1. Using a public key with existing cryptographic libraries. . 3
|
||||
2.2. GOST DNSKEY RR Example . . . . . . . . . . . . . . . . . . 3
|
||||
3. RRSIG Resource Records . . . . . . . . . . . . . . . . . . . . 4
|
||||
3.1 RRSIG RR Example . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
4. DS Resource Records . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
4.1 DS RR Example . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
5. Deployment Considerations . . . . . . . . . . . . . . . . . . . 5
|
||||
5.1. Key Sizes . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
5.2. Signature Sizes . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
5.3. Digest Sizes . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
6. Implementation Considerations . . . . . . . . . . . . . . . . . 5
|
||||
6.1. Support for GOST signatures . . . . . . . . . . . . . . . . 5
|
||||
6.2. Support for NSEC3 Denial of Existence . . . . . . . . . . . 5
|
||||
6.3. Byte order . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
7. Security consideration . . . . . . . . . . . . . . . . . . . . . 5
|
||||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
10.1. Normative References . . . . . . . . . . . . . . . . . . . 6
|
||||
10.2. Informative References . . . . . . . . . . . . . . . . . . 7
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
|
||||
|
||||
1. Introduction
|
||||
|
||||
The Domain Name System (DNS) is the global hierarchical distributed
|
||||
database for Internet Naming. The DNS has been extended to use
|
||||
cryptographic keys and digital signatures for the verification of the
|
||||
authenticity and integrity of its data. RFC 4033 [RFC4033], RFC 4034
|
||||
[RFC4034], and RFC 4035 [RFC4035] describe these DNS Security
|
||||
Extensions, called DNSSEC.
|
||||
|
||||
RFC 4034 describes how to store DNSKEY and RRSIG resource records,
|
||||
and specifies a list of cryptographic algorithms to use. This
|
||||
document extends that list with the signature and hash algorithms
|
||||
GOST [GOST3410, GOST3411],
|
||||
and specifies how to store DNSKEY data and how to produce
|
||||
RRSIG resource records with these hash algorithms.
|
||||
|
||||
Familiarity with DNSSEC and GOST signature and hash
|
||||
algorithms is assumed in this document.
|
||||
|
||||
The term "GOST" is not officially defined, but is usually used to
|
||||
refer to the collection of the Russian cryptographic algorithms
|
||||
GOST R 34.10-2001[DRAFT1], GOST R 34.11-94[DRAFT2],
|
||||
GOST 28147-89[DRAFT3].
|
||||
Since GOST 28147-89 is not used in DNSSEC, "GOST" will only refer to
|
||||
the GOST R 34.10-2001 and GOST R 34.11-94 in this document.
|
||||
|
||||
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 [RFC2119].
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 2]
|
||||
|
||||
2. DNSKEY Resource Records
|
||||
|
||||
The format of the DNSKEY RR can be found in RFC 4034 [RFC4034].
|
||||
|
||||
GOST R 34.10-2001 public keys are stored with the algorithm number
|
||||
{TBA1}.
|
||||
|
||||
The wire format of the public key is compatible with
|
||||
RFC 4491 [RFC4491]:
|
||||
|
||||
According to [GOST3410], a public key is a point on the elliptic
|
||||
curve Q = (x,y).
|
||||
|
||||
The wire representation of a public key MUST contain 64 octets,
|
||||
where the first 32 octets contain the little-endian representation
|
||||
of x and the second 32 octets contain the little-endian
|
||||
representation of y.
|
||||
This corresponds to the binary representation of (<y>256||<x>256)
|
||||
from [GOST3410], ch. 5.3.
|
||||
|
||||
Corresponding public key parameters are those identified by
|
||||
id-GostR3410-2001-CryptoPro-A-ParamSet (1.2.643.2.2.35.1) [RFC4357],
|
||||
and the digest parameters are those identified by
|
||||
id-GostR3411-94-CryptoProParamSet (1.2.643.2.2.30.1) [RFC4357].
|
||||
|
||||
2.1. Using a public key with existing cryptographic libraries
|
||||
|
||||
Existing GOST-aware cryptographic libraries at the time of this
|
||||
document writing are capable to read GOST public keys via a generic
|
||||
X509 API if the key is encoded according to RFC 4491 [RFC4491],
|
||||
section 2.3.2.
|
||||
|
||||
To make this encoding from the wire format of a GOST public key
|
||||
with the parameters used in this document, prepend the 64 octets
|
||||
of key data with the following 37-byte sequence:
|
||||
|
||||
0x30 0x63 0x30 0x1c 0x06 0x06 0x2a 0x85 0x03 0x02 0x02 0x13 0x30
|
||||
0x12 0x06 0x07 0x2a 0x85 0x03 0x02 0x02 0x23 0x01 0x06 0x07 0x2a
|
||||
0x85 0x03 0x02 0x02 0x1e 0x01 0x03 0x43 0x00 0x04 0x40
|
||||
|
||||
2.2. GOST DNSKEY RR Example
|
||||
|
||||
Given a private key with the following value (the value of GostAsn1
|
||||
field is split here into two lines to simplify reading; in the
|
||||
private key file it must be in one line):
|
||||
|
||||
Private-key-format: v1.2
|
||||
Algorithm: {TBA1} (ECC-GOST)
|
||||
GostAsn1: MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgQgp9c
|
||||
t2LQaNS1vMKPLEN9zHYjLPNMIQN6QB9vt3AghZFA=
|
||||
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 3]
|
||||
|
||||
The following DNSKEY RR stores a DNS zone key for example.net
|
||||
|
||||
example.net. 86400 IN DNSKEY 256 3 {TBA1} (
|
||||
GtTJjmZKUXV+lHLG/6crB6RCR+EJR51Islpa
|
||||
6FqfT0MUfKhSn1yAo92+LJ0GDssTiAnj0H0I
|
||||
9Jrfial/yyc5Og==
|
||||
) ; key id = 10805
|
||||
|
||||
3. RRSIG Resource Records
|
||||
|
||||
The value of the signature field in the RRSIG RR follows RFC 4490
|
||||
[RFC4490] and is calculated as follows. The values for the RDATA
|
||||
fields that precede the signature data are specified
|
||||
in RFC 4034 [RFC4034].
|
||||
|
||||
hash = GOSTR3411(data)
|
||||
|
||||
where "data" is the wire format data of the resource record set
|
||||
that is signed, as specified in RFC 4034 [RFC4034].
|
||||
|
||||
Hash MUST be calculated with GOST R 34.11-94 parameters identified
|
||||
by id-GostR3411-94-CryptoProParamSet [RFC4357].
|
||||
|
||||
Signature is calculated from the hash according to the
|
||||
GOST R 34.10-2001 standard and its wire format is compatible with
|
||||
RFC 4490 [RFC4490].
|
||||
|
||||
Quoting RFC 4490:
|
||||
|
||||
"The signature algorithm GOST R 34.10-2001 generates a digital
|
||||
signature in the form of two 256-bit numbers, r and s. Its octet
|
||||
string representation consists of 64 octets, where the first 32
|
||||
octets contain the big-endian representation of s and the second 32
|
||||
octets contain the big-endian representation of r."
|
||||
|
||||
3.1. RRSIG RR Example
|
||||
|
||||
With the private key from section 2.2 sign the following RRSet,
|
||||
consisting of one A record:
|
||||
|
||||
www.example.net. 3600 IN A 192.0.2.1
|
||||
|
||||
Setting the inception date to 2000-01-01 00:00:00 UTC and the
|
||||
expiration date to 2030-01-01 00:00:00 UTC, the following signature
|
||||
should be created (assuming {TBA1}==249 until proper code is
|
||||
assigned by IANA)
|
||||
|
||||
www.example.net. 3600 IN RRSIG A {TBA1} 3 3600 20300101000000 (
|
||||
20000101000000 10805 example.net.
|
||||
k3m0r5bm6kFQmcRlHshY3jIj7KL6KTUsPIAp
|
||||
Vy466khKuWEUoVvSkqI+9tvMQySQgZcEmS0W
|
||||
HRFSm0XS5YST5g== )
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 4]
|
||||
|
||||
Note: Several ECC-GOST signatures calculated for the same message text
|
||||
will differ because of using of a random element is used in signature
|
||||
generation process.
|
||||
|
||||
4. DS Resource Records
|
||||
|
||||
GOST R 34.11-94 digest algorithm is denoted in DS RRs by the digest
|
||||
type {TBA2}.The wire format of a digest value is compatible with
|
||||
RFC4490 [RFC4490], that is digest is in little-endian representation.
|
||||
|
||||
|
||||
The digest MUST always be calculated with GOST R 34.11-94 parameters
|
||||
identified by id-GostR3411-94-CryptoProParamSet [RFC4357].
|
||||
|
||||
4.1. DS RR Example
|
||||
|
||||
For key signing key (assuming {TBA1}==249 until proper code is
|
||||
assigned by IANA)
|
||||
|
||||
example.net. 86400 DNSKEY 257 3 {TBA1} (
|
||||
1aYdqrVz3JJXEURLMdmeI7H1CyTFfPVFBIGA
|
||||
EabZFP+7NT5KPYXzjDkRbPWleEFbBilDNQNi
|
||||
q/q4CwA4WR+ovg==
|
||||
) ; key id = 6204
|
||||
|
||||
The DS RR will be
|
||||
|
||||
example.net. 3600 IN DS 6204 {TBA1} {TBA2} (
|
||||
0E6D6CB303F89DBCF614DA6E21984F7A62D08BDD0A05B3A22CC63D1B
|
||||
553BC61E )
|
||||
|
||||
5. Deployment Considerations
|
||||
|
||||
5.1. Key Sizes
|
||||
|
||||
According to RFC4357 [RFC4357], the key size of GOST public keys
|
||||
MUST be 512 bits.
|
||||
|
||||
5.2. Signature Sizes
|
||||
|
||||
According to the GOST signature algorithm specification [GOST3410],
|
||||
the size of a GOST signature is 512 bits.
|
||||
|
||||
5.3. Digest Sizes
|
||||
|
||||
According to the GOST R 34.11-94 [GOST3411], the size of a GOST
|
||||
digest is 256 bits.
|
||||
|
||||
6. Implementation Considerations
|
||||
|
||||
6.1. Support for GOST signatures
|
||||
|
||||
DNSSEC aware implementations MAY be able to support RRSIG and
|
||||
DNSKEY resource records created with the GOST algorithms as
|
||||
defined in this document.
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 5]
|
||||
|
||||
6.2. Support for NSEC3 Denial of Existence
|
||||
|
||||
Any DNSSEC-GOST implementation MUST support both NSEC[RFC4035] and
|
||||
NSEC3 [RFC5155]
|
||||
|
||||
6.3 Byte order
|
||||
|
||||
Due to the fact that all existing industry implementations of GOST
|
||||
cryptographic libraries are returning GOST blobs without
|
||||
transformation from little-endian format and in order to avoid the
|
||||
necessity for DNSSEC developers to handle different cryptographic
|
||||
algorithms differently, it was chosen to send these blobs on the
|
||||
wire "as is" without transformation of endianness.
|
||||
|
||||
7. Security considerations
|
||||
|
||||
Currently, the cryptographic resistance of the GOST 34.10-2001
|
||||
digital signature algorithm is estimated as 2**128 operations
|
||||
of multiple elliptic curve point computations on prime modulus
|
||||
of order 2**256.
|
||||
|
||||
|
||||
Currently, the cryptographic resistance of GOST 34.11-94 hash
|
||||
algorithm is estimated as 2**128 operations of computations of a
|
||||
step hash function. (There is known method to reduce this
|
||||
estimate to 2**105 operations, but it demands padding the
|
||||
colliding message with 1024 random bit blocks each of 256 bit
|
||||
length, thus it cannot be used in any practical implementation).
|
||||
|
||||
8. IANA Considerations
|
||||
|
||||
This document updates the IANA registry "DNS Security Algorithm
|
||||
Numbers" [RFC4034]
|
||||
(http://www.iana.org/assignments/dns-sec-alg-numbers).
|
||||
The following entries are added to the registry:
|
||||
Zone Trans.
|
||||
Value Algorithm Mnemonic Signing Sec. References Status
|
||||
{TBA1} GOST R 34.10-2001 ECC-GOST Y * (this memo) OPTIONAL
|
||||
|
||||
This document updates the RFC 4034 Digest Types assignment
|
||||
(section A.2)by adding the value and status for the GOST R 34.11-94
|
||||
algorithm:
|
||||
|
||||
Value Algorithm Status
|
||||
{TBA2} GOST R 34.11-94 OPTIONAL
|
||||
|
||||
9. Acknowledgments
|
||||
|
||||
This document is a minor extension to RFC 4034 [RFC4034]. Also, we
|
||||
tried to follow the documents RFC 3110 [RFC3110], RFC 4509 [RFC4509],
|
||||
and RFC 4357 [RFC4357] for consistency. The authors of and
|
||||
contributors to these documents are gratefully acknowledged for
|
||||
their hard work.
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 6]
|
||||
|
||||
The following people provided additional feedback and text: Dmitry
|
||||
Burkov, Jaap Akkerhuis, Olafur Gundmundsson, Jelte Jansen
|
||||
and Wouter Wijngaards.
|
||||
|
||||
|
||||
10. References
|
||||
|
||||
10.1. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", RFC 2119, March 1997.
|
||||
|
||||
[RFC3110] Eastlake D., "RSA/SHA-1 SIGs and RSA KEYs in the Domain
|
||||
Name System (DNS)", RFC 3110, May 2001.
|
||||
|
||||
[RFC4033] Arends R., Austein R., Larson M., Massey D., and S.
|
||||
Rose, "DNS Security Introduction and Requirements",
|
||||
RFC 4033, March 2005.
|
||||
|
||||
[RFC4034] Arends R., Austein R., Larson M., Massey D., and S.
|
||||
Rose, "Resource Records for the DNS Security Extensions",
|
||||
RFC 4034, March 2005.
|
||||
|
||||
[RFC4035] Arends R., Austein R., Larson M., Massey D., and S.
|
||||
Rose, "Protocol Modifications for the DNS Security
|
||||
Extensions", RFC 4035, March 2005.
|
||||
|
||||
[GOST3410] "Information technology. Cryptographic data security.
|
||||
Signature and verification processes of [electronic]
|
||||
digital signature.", GOST R 34.10-2001, Gosudarstvennyi
|
||||
Standard of Russian Federation, Government Committee of
|
||||
the Russia for Standards, 2001. (In Russian)
|
||||
|
||||
[GOST3411] "Information technology. Cryptographic Data Security.
|
||||
Hashing function.", GOST R 34.11-94, Gosudarstvennyi
|
||||
Standard of Russian Federation, Government Committee of
|
||||
the Russia for Standards, 1994. (In Russian)
|
||||
|
||||
[RFC4357] Popov V., Kurepkin I., and S. Leontiev, "Additional
|
||||
Cryptographic Algorithms for Use with GOST 28147-89,
|
||||
GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94
|
||||
Algorithms", RFC 4357, January 2006.
|
||||
|
||||
[RFC4490] S. Leontiev and G. Chudov, "Using the GOST 28147-89,
|
||||
GOST R 34.11-94, GOST R 34.10-94, and GOST R 34.10-2001
|
||||
Algorithms with Cryptographic Message Syntax (CMS)",
|
||||
RFC 4490, May 2006.
|
||||
|
||||
[RFC4491] S. Leontiev and D. Shefanovski, "Using the GOST
|
||||
R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94
|
||||
Algorithms with the Internet X.509 Public Key
|
||||
Infrastructure Certificate and CRL Profile", RFC 4491,
|
||||
May 2006.
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 7]
|
||||
|
||||
[RFC5155] B. Laurie, G. Sisson, R. Arends and D. Blacka, "DNS
|
||||
Security (DNSSEC) Hashed Authenticated Denial of
|
||||
Existence", RFC 5155, February 2008.
|
||||
|
||||
10.2. Informative References
|
||||
|
||||
[RFC4509] Hardaker W., "Use of SHA-256 in DNSSEC Delegation Signer
|
||||
(DS) Resource Records (RRs)", RFC 4509, May 2006.
|
||||
|
||||
[DRAFT1] Dolmatov V., Kabelev D., Ustinov I., Vyshensky S.,
|
||||
"GOST R 34.10-2001 digital signature algorithm"
|
||||
draft-dolmatov-cryptocom-gost34102001-08, 12.12.09
|
||||
work in progress.
|
||||
|
||||
|
||||
[DRAFT2] Dolmatov V., Kabelev D., Ustinov I., Vyshensky S.,
|
||||
"GOST R 34.11-94 Hash function algorithm"
|
||||
draft-dolmatov-cryptocom-gost341194-07, 12.12.09
|
||||
work in progress.
|
||||
|
||||
[DRAFT3] Dolmatov V., Kabelev D., Ustinov I., Emelyanova I.,
|
||||
"GOST 28147-89 encryption, decryption and MAC algorithms"
|
||||
draft-dolmatov-cryptocom-gost2814789-08, 12.12.09
|
||||
work in progress.
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 8]
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
|
||||
Vasily Dolmatov, Ed.
|
||||
Cryptocom Ltd.
|
||||
Kedrova 14, bld.2
|
||||
Moscow, 117218, Russian Federation
|
||||
|
||||
EMail: dol@cryptocom.ru
|
||||
|
||||
Artem Chuprina
|
||||
Cryptocom Ltd.
|
||||
Kedrova 14, bld.2
|
||||
Moscow, 117218, Russian Federation
|
||||
|
||||
EMail: ran@cryptocom.ru
|
||||
|
||||
Igor Ustinov
|
||||
Cryptocom Ltd.
|
||||
Kedrova 14, bld.2
|
||||
Moscow, 117218, Russian Federation
|
||||
|
||||
EMail: igus@cryptocom.ru
|
||||
|
||||
V.Dolmatov Expires September 06, 2010 [Page 9]
|
||||
|
||||
Reference in New Issue
Block a user