1
2
3
4
5
6
7Internet Engineering Task Force (IETF) V. Dolmatov, Ed.
8Request for Comments: 5933 A. Chuprina
9Category: Standards Track I. Ustinov
10ISSN: 2070-1721 Cryptocom Ltd.
11 July 2010
12
13
14 Use of GOST Signature Algorithms in DNSKEY
15 and RRSIG Resource Records for DNSSEC
16
17Abstract
18
19 This document describes how to produce digital signatures and hash
20 functions using the GOST R 34.10-2001 and GOST R 34.11-94 algorithms
21 for DNSKEY, RRSIG, and DS resource records, for use in the Domain
22 Name System Security Extensions (DNSSEC).
23
24Status of This Memo
25
26 This is an Internet Standards Track document.
27
28 This document is a product of the Internet Engineering Task Force
29 (IETF). It represents the consensus of the IETF community. It has
30 received public review and has been approved for publication by the
31 Internet Engineering Steering Group (IESG). Further information on
32 Internet Standards is available in Section 2 of RFC 5741.
33
34 Information about the current status of this document, any errata,
35 and how to provide feedback on it may be obtained at
36 http://www.rfc-editor.org/info/rfc5933.
37
38Copyright Notice
39
40 Copyright (c) 2010 IETF Trust and the persons identified as the
41 document authors. All rights reserved.
42
43 This document is subject to BCP 78 and the IETF Trust's Legal
44 Provisions Relating to IETF Documents
45 (http://trustee.ietf.org/license-info) in effect on the date of
46 publication of this document. Please review these documents
47 carefully, as they describe your rights and restrictions with respect
48 to this document. Code Components extracted from this document must
49 include Simplified BSD License text as described in Section 4.e of
50 the Trust Legal Provisions and are provided without warranty as
51 described in the Simplified BSD License.
52
53
54
55
56
57
58Dolmatov, et al. Standards Track [Page 1]
59
60RFC 5933 Use of GOST Signatures in DNSSEC July 2010
61
62
63Table of Contents
64
65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
66 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
67 2. DNSKEY Resource Records . . . . . . . . . . . . . . . . . . . . 3
68 2.1. Using a Public Key with Existing Cryptographic
69 Libraries . . . . . . . . . . . . . . . . . . . . . . . . . 3
70 2.2. GOST DNSKEY RR Example . . . . . . . . . . . . . . . . . . 4
71 3. RRSIG Resource Records . . . . . . . . . . . . . . . . . . . . 4
72 3.1. RRSIG RR Example . . . . . . . . . . . . . . . . . . . . . 5
73 4. DS Resource Records . . . . . . . . . . . . . . . . . . . . . . 5
74 4.1. DS RR Example . . . . . . . . . . . . . . . . . . . . . . . 5
75 5. Deployment Considerations . . . . . . . . . . . . . . . . . . . 6
76 5.1. Key Sizes . . . . . . . . . . . . . . . . . . . . . . . . . 6
77 5.2. Signature Sizes . . . . . . . . . . . . . . . . . . . . . . 6
78 5.3. Digest Sizes . . . . . . . . . . . . . . . . . . . . . . . 6
79 6. Implementation Considerations . . . . . . . . . . . . . . . . . 6
80 6.1. Support for GOST Signatures . . . . . . . . . . . . . . . . 6
81 6.2. Support for NSEC3 Denial of Existence . . . . . . . . . . . 6
82 7. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
83 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
84 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 7
85 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7
86 10.1. Normative References . . . . . . . . . . . . . . . . . . . 7
87 10.2. Informative References . . . . . . . . . . . . . . . . . . 8
88
891. Introduction
90
91 The Domain Name System (DNS) is the global hierarchical distributed
92 database for Internet Naming. The DNS has been extended to use
93 cryptographic keys and digital signatures for the verification of the
94 authenticity and integrity of its data. RFC 4033 [RFC4033], RFC 4034
95 [RFC4034], and RFC 4035 [RFC4035] describe these DNS Security
96 Extensions, called DNSSEC.
97
98 RFC 4034 describes how to store DNSKEY and RRSIG resource records,
99 and specifies a list of cryptographic algorithms to use. This
100 document extends that list with the signature and hash algorithms
101 GOST R 34.10-2001 ([GOST3410], [RFC5832]) and GOST R 34.11-94
102 ([GOST3411], [RFC5831]), and specifies how to store DNSKEY data and
103 how to produce RRSIG resource records with these algorithms.
104
105 Familiarity with DNSSEC and with GOST signature and hash algorithms
106 is assumed in this document.
107
108 The term "GOST" is not officially defined, but is usually used to
109 refer to the collection of the Russian cryptographic algorithms
110 GOST R 34.10-2001 [RFC5832], GOST R 34.11-94 [RFC5831], and
111
112
113
114Dolmatov, et al. Standards Track [Page 2]
115
116RFC 5933 Use of GOST Signatures in DNSSEC July 2010
117
118
119 GOST 28147-89 [RFC5830]. Since GOST 28147-89 is not used in DNSSEC,
120 "GOST" will only refer to GOST R 34.10-2001 and GOST R 34.11-94 in
121 this document.
122
1231.1. Terminology
124
125 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
126 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
127 document are to be interpreted as described in [RFC2119].
128
1292. DNSKEY Resource Records
130
131 The format of the DNSKEY RR can be found in RFC 4034 [RFC4034].
132
133 GOST R 34.10-2001 public keys are stored with the algorithm
134 number 12.
135
136 The wire format of the public key is compatible with RFC 4491
137 [RFC4491]:
138
139 According to [GOST3410] and [RFC5832], a public key is a point on the
140 elliptic curve Q = (x,y).
141
142 The wire representation of a public key MUST contain 64 octets, where
143 the first 32 octets contain the little-endian representation of x and
144 the second 32 octets contain the little-endian representation of y.
145
146 Corresponding public key parameters are those identified by
147 id-GostR3410-2001-CryptoPro-A-ParamSet (1.2.643.2.2.35.1) [RFC4357],
148 and the digest parameters are those identified by
149 id-GostR3411-94-CryptoProParamSet (1.2.643.2.2.30.1) [RFC4357].
150
1512.1. Using a Public Key with Existing Cryptographic Libraries
152
153 At the time of this writing, existing GOST-aware cryptographic
154 libraries are capable of reading GOST public keys via a generic X509
155 API if the key is encoded according to RFC 4491 [RFC4491],
156 Section 2.3.2.
157
158 To make this encoding from the wire format of a GOST public key with
159 the parameters used in this document, prepend the 64 octets of key
160 data with the following 37-byte sequence:
161
162 0x30 0x63 0x30 0x1c 0x06 0x06 0x2a 0x85 0x03 0x02 0x02 0x13 0x30
163 0x12 0x06 0x07 0x2a 0x85 0x03 0x02 0x02 0x23 0x01 0x06 0x07 0x2a
164 0x85 0x03 0x02 0x02 0x1e 0x01 0x03 0x43 0x00 0x04 0x40
165
166
167
168
169
170Dolmatov, et al. Standards Track [Page 3]
171
172RFC 5933 Use of GOST Signatures in DNSSEC July 2010
173
174
1752.2. GOST DNSKEY RR Example
176
177 Given a private key with the following value (the value of the
178 GostAsn1 field is split here into two lines to simplify reading; in
179 the private key file, it must be in one line):
180
181 Private-key-format: v1.2
182 Algorithm: 12 (ECC-GOST)
183 GostAsn1: MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgQg/9M
184 iXtXKg9FDXDN/R9CmVhJDyuzRAIgh4tPwCu4NHIs=
185
186 The following DNSKEY RR stores a DNS zone key for example.net:
187
188 example.net. 86400 IN DNSKEY 256 3 12 (
189 aRS/DcPWGQj2wVJydT8EcAVoC0kXn5pDVm2I
190 MvDDPXeD32dsSKcmq8KNVzigjL4OXZTV+t/6
191 w4X1gpNrZiC01g==
192 ) ; key id = 59732
193
1943. RRSIG Resource Records
195
196 The value of the signature field in the RRSIG RR follows RFC 4490
197 [RFC4490] and is calculated as follows. The values for the RDATA
198 fields that precede the signature data are specified in RFC 4034
199 [RFC4034].
200
201 hash = GOSTR3411(data)
202
203 where "data" is the wire format data of the resource record set that
204 is signed, as specified in RFC 4034 [RFC4034].
205
206 The hash MUST be calculated with GOST R 34.11-94 parameters
207 identified by id-GostR3411-94-CryptoProParamSet [RFC4357].
208
209 The signature is calculated from the hash according to the
210 GOST R 34.10-2001 standard, and its wire format is compatible with
211 RFC 4490 [RFC4490].
212
213 Quoting RFC 4490:
214
215 "The signature algorithm GOST R 34.10-2001 generates a digital
216 signature in the form of two 256-bit numbers, r and s. Its octet
217 string representation consists of 64 octets, where the first
218 32 octets contain the big-endian representation of s and the second
219 32 octets contain the big-endian representation of r".
220
221
222
223
224
225
226Dolmatov, et al. Standards Track [Page 4]
227
228RFC 5933 Use of GOST Signatures in DNSSEC July 2010
229
230
2313.1. RRSIG RR Example
232
233 With the private key from Section 2.2, sign the following RRSet,
234 consisting of one A record:
235
236 www.example.net. 3600 IN A 192.0.2.1
237
238 Setting the inception date to 2000-01-01 00:00:00 UTC and the
239 expiration date to 2030-01-01 00:00:00 UTC, the following signature
240 RR will be valid:
241
242 www.example.net. 3600 IN RRSIG A 12 3 3600 20300101000000 (
243 20000101000000 59732 example.net.
244 7vzzz6iLOmvtjs5FjVjSHT8XnRKFY15ki6Kp
245 kNPkUnS8iIns0Kv4APT+D9ibmHhGri6Sfbyy
246 zi67+wBbbW/jrA== )
247
248 Note: The ECC-GOST signature algorithm uses random data, so the
249 actual computed signature value will differ between signature
250 calculations.
251
2524. DS Resource Records
253
254 The GOST R 34.11-94 digest algorithm is denoted in DS RRs by the
255 digest type 3. The wire format of a digest value is compatible with
256 RFC 4490 [RFC4490], that is, the digest is in little-endian
257 representation.
258
259 The digest MUST always be calculated with GOST R 34.11-94 parameters
260 identified by id-GostR3411-94-CryptoProParamSet [RFC4357].
261
2624.1. DS RR Example
263
264 For Key Signing Key (KSK):
265
266 example.net. 86400 DNSKEY 257 3 12 (
267 LMgXRHzSbIJGn6i16K+sDjaDf/k1o9DbxScO
268 gEYqYS/rlh2Mf+BRAY3QHPbwoPh2fkDKBroF
269 SRGR7ZYcx+YIQw==
270 ) ; key id = 40692
271
272 The DS RR will be
273
274 example.net. 3600 IN DS 40692 12 3 (
275 22261A8B0E0D799183E35E24E2AD6BB58533CBA7E3B14D659E9CA09B
276 2071398F )
277
278
279
280
281
282Dolmatov, et al. Standards Track [Page 5]
283
284RFC 5933 Use of GOST Signatures in DNSSEC July 2010
285
286
2875. Deployment Considerations
288
2895.1. Key Sizes
290
291 According to RFC 4357 [RFC4357], the key size of GOST public keys
292 MUST be 512 bits.
293
2945.2. Signature Sizes
295
296 According to the GOST R 34.10-2001 digital signature algorithm
297 specification ([GOST3410], [RFC5832]), the size of a GOST signature
298 is 512 bits.
299
3005.3. Digest Sizes
301
302 According to GOST R 34.11-94 ([GOST3411], [RFC5831]), the size of a
303 GOST digest is 256 bits.
304
3056. Implementation Considerations
306
3076.1. Support for GOST Signatures
308
309 DNSSEC-aware implementations MAY be able to support RRSIG and DNSKEY
310 resource records created with the GOST algorithms as defined in this
311 document.
312
3136.2. Support for NSEC3 Denial of Existence
314
315 Any DNSSEC-GOST implementation MUST support both NSEC [RFC4035] and
316 NSEC3 [RFC5155].
317
3187. Security Considerations
319
320 Currently, the cryptographic resistance of the GOST R 34.10-2001
321 digital signature algorithm is estimated as 2**128 operations of
322 multiple elliptic curve point computations on prime modulus of order
323 2**256.
324
325 Currently, the cryptographic resistance of the GOST R 34.11-94 hash
326 algorithm is estimated as 2**128 operations of computations of a step
327 hash function. (There is a known method to reduce this estimate to
328 2**105 operations, but it demands padding the colliding message with
329 1024 random bit blocks each of 256-bit length; thus, it cannot be
330 used in any practical implementation).
331
332
333
334
335
336
337
338Dolmatov, et al. Standards Track [Page 6]
339
340RFC 5933 Use of GOST Signatures in DNSSEC July 2010
341
342
3438. IANA Considerations
344
345 This document updates the IANA registry "DNS Security Algorithm
346 Numbers" [RFC4034]. The following entries have been added to the
347 registry:
348
349 Zone Trans.
350 Value Algorithm Mnemonic Signing Sec. References Status
351 12 GOST R 34.10-2001 ECC-GOST Y * RFC 5933 OPTIONAL
352
353 This document updates the RFC 4034 Digest Types assignment
354 ([RFC4034], Section A.2) by adding the value and status for the
355 GOST R 34.11-94 algorithm:
356
357 Value Algorithm Status
358 3 GOST R 34.11-94 OPTIONAL
359
3609. Acknowledgments
361
362 This document is a minor extension to RFC 4034 [RFC4034]. Also, we
363 tried to follow the documents RFC 3110 [RFC3110], RFC 4509 [RFC4509],
364 and RFC 4357 [RFC4357] for consistency. The authors of and
365 contributors to these documents are gratefully acknowledged for their
366 hard work.
367
368 The following people provided additional feedback, text, and valuable
369 assistance: Dmitry Burkov, Jaap Akkerhuis, Olafur Gundmundsson,
370 Jelte Jansen, and Wouter Wijngaards.
371
37210. References
373
37410.1. Normative References
375
376 [GOST3410] "Information technology. Cryptographic data security.
377 Signature and verification processes of [electronic]
378 digital signature.", GOST R 34.10-2001, Gosudarstvennyi
379 Standard of Russian Federation, Government Committee of
380 Russia for Standards, 2001. (In Russian).
381
382 [GOST3411] "Information technology. Cryptographic data security.
383 Hashing function.", GOST R 34.11-94, Gosudarstvennyi
384 Standard of Russian Federation, Government Committee of
385 Russia for Standards, 1994. (In Russian).
386
387 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
388 Requirement Levels", BCP 14, RFC 2119, March 1997.
389
390
391
392
393
394Dolmatov, et al. Standards Track [Page 7]
395
396RFC 5933 Use of GOST Signatures in DNSSEC July 2010
397
398
399 [RFC3110] Eastlake 3rd, D., "RSA/SHA-1 SIGs and RSA KEYs in the
400 Domain Name System (DNS)", RFC 3110, May 2001.
401
402 [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
403 Rose, "DNS Security Introduction and Requirements",
404 RFC 4033, March 2005.
405
406 [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S.
407 Rose, "Resource Records for the DNS Security Extensions",
408 RFC 4034, March 2005.
409
410 [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S.
411 Rose, "Protocol Modifications for the DNS Security
412 Extensions", RFC 4035, March 2005.
413
414 [RFC4357] Popov, V., Kurepkin, I., and S. Leontiev, "Additional
415 Cryptographic Algorithms for Use with GOST 28147-89,
416 GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94
417 Algorithms", RFC 4357, January 2006.
418
419 [RFC4490] Leontiev, S., Ed. and G. Chudov, Ed., "Using the
420 GOST 28147-89, GOST R 34.11-94, GOST R 34.10-94, and
421 GOST R 34.10-2001 Algorithms with Cryptographic Message
422 Syntax (CMS)", RFC 4490, May 2006.
423
424 [RFC4491] Leontiev, S., Ed. and D. Shefanovski, Ed., "Using the
425 GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94
426 Algorithms with the Internet X.509 Public Key
427 Infrastructure Certificate and CRL Profile", RFC 4491,
428 May 2006.
429
430 [RFC5155] Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
431 Security (DNSSEC) Hashed Authenticated Denial of
432 Existence", RFC 5155, March 2008.
433
43410.2. Informative References
435
436 [RFC4509] Hardaker, W., "Use of SHA-256 in DNSSEC Delegation Signer
437 (DS) Resource Records (RRs)", RFC 4509, May 2006.
438
439 [RFC5830] Dolmatov, V., Ed., "GOST 28147-89: Encryption,
440 Decryption, and Message Authentication Code (MAC)
441 Algorithms", RFC 5830, March 2010.
442
443 [RFC5831] Dolmatov, V., Ed., "GOST R 34.11-94: Hash Function
444 Algorithm", RFC 5831, March 2010.
445
446
447
448
449
450Dolmatov, et al. Standards Track [Page 8]
451
452RFC 5933 Use of GOST Signatures in DNSSEC July 2010
453
454
455 [RFC5832] Dolmatov, V., Ed., "GOST R 34.10-2001: Digital Signature
456 Algorithm", RFC 5832, March 2010.
457
458Authors' Addresses
459
460 Vasily Dolmatov (editor)
461 Cryptocom Ltd.
462 14/2, Kedrova St.
463 Moscow, 117218
464 Russian Federation
465
466 Phone: +7 499 124 6226
467 EMail: dol@cryptocom.ru
468
469
470 Artem Chuprina
471 Cryptocom Ltd.
472 14/2, Kedrova St.
473 Moscow, 117218
474 Russian Federation
475
476 Phone: +7 499 124 6226
477 EMail: ran@cryptocom.ru
478
479
480 Igor Ustinov
481 Cryptocom Ltd.
482 14/2, Kedrova St.
483 Moscow, 117218
484 Russian Federation
485
486 Phone: +7 499 124 6226
487 EMail: igus@cryptocom.ru
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506Dolmatov, et al. Standards Track [Page 9]
507
508