7 Internet Draft Grigorij Chudov, CRYPTO-PRO
8 Serguei Leontiev, CRYPTO-PRO
9 Expires March 8, 2006 September 8, 2005
10 Intended Category: Informational
12 GOST Cipher Suites for Transport Layer Security
14 <draft-chudov-cryptopro-cptls-02.txt>
18 By submitting this Internet-Draft, each author represents that any
19 applicable patent or other IPR claims of which he or she is aware
20 have been or will be disclosed, and any of which he or she becomes
21 aware will be disclosed, in accordance with Section 6 of BCP 79.
23 Internet-Drafts are working documents of the Internet Engineering
24 Task Force (IETF), its areas, and its working groups. Note that
25 other groups may also distribute working documents as Internet-
28 Internet-Drafts are draft documents valid for a maximum of six months
29 and may be updated, replaced, or obsoleted by other documents at any
30 time. It is inappropriate to use Internet-Drafts as reference
31 material or to cite them other than a "work in progress."
33 The list of current Internet-Drafts can be accessed at
34 http://www.ietf.org/1id-abstracts.html.
36 The list of Internet-Draft Shadow Directories can be accessed at
37 http://www.ietf.org/shadow.html.
39 This Internet-Draft will expire on March 8, 2006.
43 Copyright (C) The Internet Society (2005).
48 This document is intended to register new cipher suites for the
49 Transport Layer Security (TLS) protocol, according to the procedure
50 specified in section A.5 of [TLS]. These cipher suites are based on
51 Russian national cryptographic standards - GOST R 34.10-94 and GOST R
52 34.10-2001 public keys, GOST 28147-89 encryption algorithm and GOST R
53 34.11-94 digest algorithm.
58 Chudov, Leontiev Informational [Page 1]
60 Internet-Draft GOST Cipher Suites for TLS September 2005
65 1 Introduction. . . . . . . . . . . . . . . . . . . . . . . 2
66 2 Proposed Ciphersuites . . . . . . . . . . . . . . . . . . 3
67 3 CipherSuite Definitions . . . . . . . . . . . . . . . . . 3
68 3.1 Key Exchange. . . . . . . . . . . . . . . . . . . . . . . 3
69 3.2 PRF, Signature and Hash . . . . . . . . . . . . . . . . . 3
70 3.3 Cipher and MAC. . . . . . . . . . . . . . . . . . . . . . 4
71 4 Data Structures and Computations. . . . . . . . . . . . . 4
72 4.1 Algorithms. . . . . . . . . . . . . . . . . . . . . . . . 4
73 4.2 Keys Calculation. . . . . . . . . . . . . . . . . . . . . 5
74 4.3 Server Certificate. . . . . . . . . . . . . . . . . . . . 5
75 4.4 Server Key Exchange . . . . . . . . . . . . . . . . . . . 5
76 4.5 Certificate Request . . . . . . . . . . . . . . . . . . . 5
77 4.6 Client Key Exchange Message . . . . . . . . . . . . . . . 5
78 4.7 Certificate Verify. . . . . . . . . . . . . . . . . . . . 7
79 4.8 Finished. . . . . . . . . . . . . . . . . . . . . . . . . 8
80 5 Security Considerations . . . . . . . . . . . . . . . . . 8
81 6 Appendix ASN.1 Modules. . . . . . . . . . . . . . . . . . 8
82 7 References. . . . . . . . . . . . . . . . . . . . . . . . 10
83 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 11
84 Author's Addresses. . . . . . . . . . . . . . . . . . . . . . . 12
85 Full Copyright Statement. . . . . . . . . . . . . . . . . . . . 13
90 This document proposes the addition of new cipher suites to the
91 Transport Layer Security (TLS) protocol to support GOST R 34.11-94
92 digest, GOST 28147-89 encryption and VKO GOST R 34.10-94/2001 key
93 exchange algorithms. The cipher suites defined here were proposed by
94 CRYPTO-PRO Company for the "Russian Cryptographic Software
95 Compatibility Agreement" community.
97 Algorithms GOST R 34.10-94, GOST R 34.10-2001, GOST 28147-89 and GOST
98 R 34.11-94 have been developed by Russian Federal Agency of
99 Governmental Communication and Information (FAGCI) and "All-Russian
100 Scientific and Research Institute of Standardization". They are
101 described in [GOSTR341094], [GOSTR341001], [GOSTR3411] and
102 [GOST28147]. Algorithms VKO GOST R 34.10-94/2001 and PRF_GOSTR3411
103 are described in [CPALGS].
105 This document defines two configurations:
106 anonymous client - authenticated server (only server provides a
108 authenticated client - authenticated server (client and server
109 exchange certificates).
114 Chudov, Leontiev Informational [Page 2]
116 Internet-Draft GOST Cipher Suites for TLS September 2005
119 The presentation language used here is the same as in [TLS]. Since
120 this specification extends TLS, these descriptions should be merged
121 with those in the TLS specification and any others that extend TLS.
122 This means, that enum types may not specify all possible values and
123 structures with multiple formats chosen with a select() clause may
124 not indicate all possible cases.
126 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
127 NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
128 this document are to be interpreted as described in [RFC 2119].
130 2 Proposed CipherSuites
132 The new cipher suites proposed here have the following definitions:
134 CipherSuite TLS_GOST341094_WITH_GOST28147_OFB_GOST28147 = {0x00,0x80}
135 CipherSuite TLS_GOST34102001_WITH_GOST28147_OFB_GOST28147= {0x00,0x81}
136 CipherSuite TLS_GOST341094_WITH_NULL_GOSTR3411 = {0x00,0x82}
137 CipherSuite TLS_GOST34102001_WITH_NULL_GOSTR3411 = {0x00,0x83}
139 Note: The above numeric definitions for CipherSuites have not yet
142 3 CipherSuite Definitions
146 The cipher suites defined here use the following key exchange
149 CipherSuite Key Exchange Algorithm
150 TLS_GOST341094_WITH_GOST28147_OFB_GOST28147 VKO GOST R 34.10-94
151 TLS_GOST34102001_WITH_GOST28147_OFB_GOST28147 VKO GOST R 34.10-2001
152 TLS_GOST341094_WITH_NULL_GOSTR3411 VKO GOST R 34.10-94
153 TLS_GOST34102001_WITH_NULL_GOSTR3411 VKO GOST R 34.10-2001
155 Key derivation algorithms based on GOST R 3410-94 and GOST R
156 3410-2001 public keys (VKO GOST R 34.10-94, VKO GOST R 34.10-2001)
157 are described in [CPALGS].
159 3.2 PRF, Signature and Hash
161 For a PRF, described in section 5 of [TLS], the cipher suites
162 described here use PRF_GOSTR3411 (refer to section 4.1). The same PRF
163 MUST be used for all dependent protocols, such as [EAP-TLS].
165 GOST R 3410-94/2001 signature is used for CertificateVerify message.
170 Chudov, Leontiev Informational [Page 3]
172 Internet-Draft GOST Cipher Suites for TLS September 2005
175 GOST R 34.11 digest algorithm ([GOSTR341194]) is used for
176 CertificateVerify.signature.gostR3411_hash and Finished.verify_data
177 (see sections 7.4.8 and 7.4.9 of [TLS])
181 The following cipher algorithm and MAC functions are used (for
182 details refer to section 4.1):
184 CipherSuite Cipher MAC
185 TLS_GOST341094_WITH_GOST28147_OFB_GOST28147 GOST28147 IMIT_GOST28147
186 TLS_GOST34102001_WITH_GOST28147_OFB_GOST28147 GOST28147 IMIT_GOST28147
187 TLS_GOST341094_WITH_NULL_GOSTR3411 - HMAC_GOSTR3411
188 TLS_GOST34102001_WITH_NULL_GOSTR3411 - HMAC_GOSTR3411
190 For all four cipher suites, the use of MAC is slighttly different
191 from the one, described in section 6.2.3.1 of [TLS]. In [TLS], MAC
192 is calculated from the following data:
194 MACed_data[seq_num] = seq_num +
196 TLSCompressed.version +
197 TLSCompressed.length +
198 TLSCompressed.fragment;
200 These cipher suites use the same input for first record, but for each
201 next record the input from all previous records is concatenated:
203 MACed_data[0] + ... + MACed_data[n]
205 4 Data Structures and Computations
209 GOST 28147-89 [GOST28147] uses 256-bit key size and 8-byte IV.
210 Cipher suites, defined here, use GOST 28147-89 as a stream cipher in
211 OFB mode with S-box from id-Gost28147-89-CryptoPro-A-ParamSet (see
212 [CPALGS]) and CryptoPro key meshing algorithm.
214 IMIT_GOST28147 is GOST 28147-89 [GOST28147] in "IMITOVSTAVKA" mode (4
217 HMAC_GOSTR3411(secret, data) is based on GOST R 34.11 digest and
218 described in [CPALGS].
220 PRF_GOSTR3411(secret, label, seed) is based on HMAC_GOSTR3411 and
221 described in [CPALGS].
226 Chudov, Leontiev Informational [Page 4]
228 Internet-Draft GOST Cipher Suites for TLS September 2005
233 Key calculation is done according to section 6.3 of [TLS], with
234 PRF_GOSTR3411 function used instead of PRF. The parameters are as
236 SecurityParameters.hash_size = 32
237 SecurityParameters.key_material_length = 32
238 SecurityParameters.IV_size = 8
239 Length of necessary key material is 144 bytes.
241 4.3 Server Certificate
243 For these cipher suites this message is required and it MUST contain
244 a certificate, with a public key algorithm matching
245 ServerHello.cipher_suite.
247 4.4 Server Key Exchange
249 This message MUST NOT be used in these cipher suites, because all the
250 parameters necessary are present in server certificate (see [CPPK]).
252 4.3 Certificate Request
254 This message is used as described in section 7.4.4 of [TLS], and
258 gost341094(21), gost34102001(22),(255)
259 } ClientCertificateType;
261 gost341094 and gost34102001 certificate types identify that the
262 server accepts GOST R 34.10-94 and GOST R 34.10-2001 public key
265 Note: The above numeric definitions for ClientCertificateType have
266 not yet been registered.
268 4.6 Client Key Exchange Message
270 This message is used as described in section 7.4.7 of [TLS], it is
271 required for these suites, and contains DER-encoded
272 TLSGostKeyTransportBlob structure.
274 enum { vko_gost } KeyExchangeAlgorithm;
277 select (KeyExchangeAlgorithm) {
278 case vko_gost: TLSGostKeyTransportBlob;
282 Chudov, Leontiev Informational [Page 5]
284 Internet-Draft GOST Cipher Suites for TLS September 2005
290 ASN1-syntax for this structure is:
292 TLSGostKeyTransportBlob ::= SEQUENCE {
293 keyBlob GostR3410-KeyTransport,
294 proxyKeyBlobs SEQUENCE OF TLSProxyKeyTransportBlob OPTIONAL
297 TLSProxyKeyTransportBlob ::= SEQUENCE {
298 keyBlob GostR3410-KeyTransport,
302 GostR3410-KeyTransport is defined in [CPCMS].
304 keyBlob.transportParameters MUST be present.
306 keyBlob.transportParameters.ephemeralPublicKey MUST be present if the
307 server didn't request client certificate or client's public key
308 algorithm and parameters do not match those of the recipient. Else it
311 proxyKeyBlobs - (optional) contains key exchange for secondary
312 recipients (for example, for the firewall, which audits
314 cert - contains secondary recipient's certificate.
318 First, the client generates a random 32-byte premaster_secret.
320 Then shared_ukm is calculated as first 8 bytes of digest of
321 concatenated client random and server random: shared_ukm =
322 GOSTR3411(client_random|server_random)[0..7]
324 Then client chooses a sender key. If
325 keyBlob.transportParameters.ephemeralPublicKey is present, the
326 corresponding secret key MUST be used as a sender key. If it is
327 missing, the secret key, corresponding to the client certificate MUST
330 Using the sender key and recipient's public key, algorithm VKO GOST R
331 34.10-94 or VKO GOST R 34.10-2001 (described in [CPALGS]) is applied
332 to produce KEK. VKO GOST R 34.10-2001 is used with shared_ukm as
338 Chudov, Leontiev Informational [Page 6]
340 Internet-Draft GOST Cipher Suites for TLS September 2005
343 Then CryptoPro Key Wrap algorithm is applied to encrypt
344 premaster_secret and produce CEK_ENC and CEK_MAC. Again, shared_ukm
345 is used as UKM. keyBlob.transportParameters.encryptionParamSet is
346 used for all encryption operations.
348 The resulting encrypted key (CEK_ENC) is placed in
349 keyBlob.sessionEncryptedKey.encryptedKey field, it's mac (CEK_MAC) is
350 placed in keyBlob.sessionEncryptedKey.macKey field, and shared_ukm
351 (UKM) is placed in keyBlob.transportParameters.ukm field.
355 Server MUST verify, that keyBlob.transportParameters.ukm is equal to
356 GOSTR3411(client_random|server_random)[0..7], before decrypting the
359 Server applies VKO GOST R 34.10-94 or VKO GOST R 34.10-2001,
360 (depending on the client public key type), and CryptoPro Key Unwrap
361 algorithm in the simillar manner to decrypt the premaster_secret.
363 Server MUST verify keyBlob.sessionEncryptedKey.macKey after
364 decrypting the premaster_secret.
366 4.7 Certificate Verify
368 This message is used as described in section 7.4.8 of [TLS]. If the
369 client have sent both a client certificate and an ephemeral public
370 key, it MUST send a certificate verify message, as a proof of
371 possession of the private key for provided certificate.
373 The TLS structures are extended as follows:
375 enum { gost341094, gost34102001 }
378 select (SignatureAlgorithm) {
380 digitally-signed struct {
381 opaque gost341194_hash[32];
384 digitally-signed struct {
385 opaque gost341194_hash[32];
389 CertificateVerify.signature.gostR3411_hash =
390 GOSTR3411(handshake_messages)
394 Chudov, Leontiev Informational [Page 7]
396 Internet-Draft GOST Cipher Suites for TLS September 2005
401 This message is used as described in section 7.4.9 of [TLS].
403 Finished.verify_data = PRF_GOSTR3411(master_secret, finished_label +
404 GOSTR3411(handshake_messages)) [0..11]
406 5 Security Considerations
408 It is RECOMMENDED that software applications verify signature values,
409 subject public keys and algorithm parameters to conform to
410 [GOSTR341001], [GOSTR341094] standards prior to their use.
412 Use of the same key for signature and key derivation is NOT
415 It is RECOMMENDED for both client and server to verify the private
416 key usage period, if this extension is present in the certificate.
418 The cipher suites TLS_GOST341094_WITH_GOST28147_OFB_GOST28147 and
419 TLS_GOST34102001_WITH_GOST28147_OFB_GOST28147 proposed hereby, have
420 been analyzed by special certification laboratory of Scientific and
421 Technical Centre "ATLAS" in appropriate levels of
422 target_of_evaluation (TOE).
424 It is RECOMMENDED to subject the implementations of these cipher
425 suites to examination by an authorized agency with approved methods
426 of cryptographic analysis.
428 6 Appendix ASN.1 Modules
430 Additional ASN.1 modules, referenced here, can be found in [CPALGS]
434 6.1 Gost-CryptoPro-TLS
437 { iso(1) member-body(2) ru(643) rans(2)
438 cryptopro(2) other(1) modules(1) gost-CryptoPro-TLS(16) 1 }
442 -- The types and values defined in this module are exported for
443 -- use in the other ASN.1 modules contained within the Russian
444 -- Cryptography "GOST" & "GOST R" Specifications, and for the use
445 -- of other applications which will use them to access Russian
446 -- Cryptography services. Other applications may use them for
450 Chudov, Leontiev Informational [Page 8]
452 Internet-Draft GOST Cipher Suites for TLS September 2005
455 -- their own purposes, but this will not constrain extensions and
456 -- modifications needed to maintain or improve the Russian
457 -- Cryptography service.
461 FROM PKIX1Explicit88 {iso(1) identified-organization(3)
462 dod(6) internet(1) security(5) mechanisms(5) pkix(7)
463 id-mod(0) id-pkix1-explicit-88(1)}
464 id-CryptoPro-algorithms, gostR3410-EncryptionSyntax
465 FROM Cryptographic-Gost-Useful-Definitions
466 { iso(1) member-body(2) ru(643) rans(2)
467 cryptopro(2) other(1) modules(1)
468 cryptographic-Gost-Useful-Definitions(0) 1 }
469 GostR3410-KeyTransport
470 FROM GostR3410-EncryptionSyntax
471 gostR3410-EncryptionSyntax
473 id-PRF-GostR3411-94 OBJECT IDENTIFIER ::=
474 { id-CryptoPro-algorithms prf-gostr3411-94(23) }
475 TLSProxyKeyTransportBlob ::=
477 keyBlob GostR3410-KeyTransport,
480 TLSGostKeyTransportBlob ::=
482 keyBlob GostR3410-KeyTransport,
483 proxyKeyBlobs SEQUENCE OF
484 TLSProxyKeyTransportBlob OPTIONAL
486 TLSGostSrvKeyExchange ::=
488 OCTET STRING (CONSTRAINED BY {Certificate})
489 TLSGostExtensionHashHMACSelect ::=
491 hashAlgorithm AlgorithmIdentifier,
492 hmacAlgorithm AlgorithmIdentifier,
493 prfAlgorithm AlgorithmIdentifier
495 TLSGostExtensionHashHMACSelectClient ::=
497 TLSGostExtensionHashHMACSelect
498 TLSGostExtensionHashHMACSelectServer ::=
499 TLSGostExtensionHashHMACSelect
501 END -- Gost-CryptoPro-TLS
506 Chudov, Leontiev Informational [Page 9]
508 Internet-Draft GOST Cipher Suites for TLS September 2005
513 Normative references:
516 [CPALGS] V. Popov, I. Kurepkin, S. Leontiev, "Additional crypto-
517 graphic algorithms for use with GOST 28147-89, GOST R
518 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 algo-
519 rithms.", September 2005, draft-popov-cryptopro-
522 [CPPK] S. Leontiev, D. Shefanovskij, "Algorithms and Identi-
523 fiers for the Internet X.509 Public Key Infrastructure
524 Certificates and Certificate Revocation List (CRL),
525 corresponding to the algorithms GOST R 34.10-94, GOST R
526 34.10-2001, GOST R 34.11-94", September 2005, draft-
527 ietf-pkix-gost-cppk-03.txt
529 [CPCMS] S. Leontiev, G. Chudov, "Using the GOST 28147-89, GOST
530 R 34.11-94, GOST R 34.10-94 and GOST R 34.10-2001 algo-
531 rithms with the Cryptographic Message Syntax (CMS)",
532 September 2005, draft-ietf-smime-gost-05.txt
534 [GOST28147] "Cryptographic Protection for Data Processing System",
535 GOST 28147-89, Gosudarstvennyi Standard of USSR, Gov-
536 ernment Committee of the USSR for Standards, 1989. (In
539 [GOSTR341094] "Information technology. Cryptographic Data Security.
540 Produce and check procedures of Electronic Digital Sig-
541 natures based on Asymmetric Cryptographic Algorithm.",
542 GOST R 34.10-94, Gosudarstvennyi Standard of Russian
543 Federation, Government Committee of the Russia for
544 Standards, 1994. (In Russian);
546 [GOSTR341001] "Information technology. Cryptographic Data Secu-
547 rity.Signature and verification processes of [elec-
548 tronic] digital signature.", GOST R 34.10-2001, Gosu-
549 darstvennyi Standard of Russian Federation, Government
550 Committee of the Russia for Standards, 2001. (In Rus-
553 [GOSTR341194] "Information technology. Cryptographic Data Security.
554 Hashing function.", GOST R 34.10-94, Gosudarstvennyi
555 Standard of Russian Federation, Government Committee of
556 the Russia for Standards, 1994. (In Russian);
562 Chudov, Leontiev Informational [Page 10]
564 Internet-Draft GOST Cipher Suites for TLS September 2005
567 [TLS] The TLS Protocol Version 1.0. T. Dierks, C. Allen.
568 January 1999, RFC 2246.
570 Informative references:
573 [RFC 2119] Bradner, S., "Key Words for Use in RFCs to Indicate
574 Requirement Levels", BCP 14, RFC 2119, March 1997.
576 [Schneier95] B. Schneier, Applied cryptography, second edition,
577 John Wiley & Sons, Inc., 1995;
579 [TLSEXT] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen,
580 J. and T. Wright, "Transport Layer Security (TLS)
581 Extensions", RFC 3546, June 2003.
583 [X.660] ITU-T Recommendation X.660 Information Technology -
584 ASN.1 encoding rules: Specification of Basic Encoding
585 Rules (BER), Canonical Encoding Rules (CER) and Distin-
586 guished Encoding Rules (DER), 1997.
588 [EAP-TLS] B. Aboba, D. Simon, "PPP EAP TLS Authentication Proto-
589 col", RFC 2716, October 1999.
594 This document was created in accordance with "Russian Cryptographic
595 Software Compatibility Agreement", signed by FGUE STC "Atlas",
596 CRYPTO-PRO, Factor-TS, MD PREI, Infotecs GmbH, SPRCIS (SPbRCZI),
597 Cryptocom, R-Alpha. The aim of this agreement is to achieve mutual
598 compatibility of the products and solutions.
600 The authors wish to thank:
602 Microsoft Corporation Russia for provided information about
603 company products and solutions, and also for technical consulting
606 RSA Security Russia and Demos Co Ltd for active colaboration and
607 critical help in creation of this document.
609 NIP Informzachita for compatibility testing of the proposed data
610 formats while incorporating them into company products.
612 Citrix Inc for help in compatibility testing Citrix products for
618 Chudov, Leontiev Informational [Page 11]
620 Internet-Draft GOST Cipher Suites for TLS September 2005
623 Russ Hously (Vigil Security, LLC, housley@vigilsec.com) and
624 Vasilij Sakharov (DEMOS Co Ltd, svp@dol.ru) for initiative,
625 creating this document.
627 This document is based on a contribution of CRYPTO-PRO company. Any
628 substantial use of the text from this document must acknowledge
629 CRYPTO-PRO. CRYPTO-PRO requests that all material mentioning or
630 referencing this document identify this as "CRYPTO-PRO CPTLS".
637 Moscow, 127018, Russian Federation
638 EMail: chudov@cryptopro.ru
643 Moscow, 127018, Russian Federation
644 EMail: lse@cryptopro.ru
648 office 711, 14, Presnenskij val,
649 Moscow, 123557, Russian Federation
650 EMail: afa1@factor-ts.ru
654 p/b 35, 80-5, Leningradskij prospekt,
655 Moscow, 125315, Russian Federation
656 EMail: nikishin@infotecs.ru
661 Moscow, 127018, Russian Federation
662 EMail: izotov@nii.voskhod.ru
666 build 3, 6A, Vtoroj Troitskij per.,
667 Moscow, Russian Federation
668 EMail: evminaeva@mail.ru
674 Chudov, Leontiev Informational [Page 12]
676 Internet-Draft GOST Cipher Suites for TLS September 2005
681 Moscow, 123060, Russian Federation
682 EMail: msm@top-cross.ru
686 office 239, 51, Leninskij prospekt,
687 Moscow, 119991, Russian Federation
688 EMail: igus@cryptocom.ru
693 St.Petersburg, 195220, Russian Federation
694 EMail: erkin@nevsky.net
697 Disclaimer of Validity
699 This document and the information contained herein are provided on an
700 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
701 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
702 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
703 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
704 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
705 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
707 Full Copyright Statement
709 Copyright (C) The Internet Society (2005). This document is subject
710 to the rights, licenses and restrictions contained in BCP 78, and
711 except as set forth therein, the authors retain all their rights.
715 Funding for the RFC Editor function is currently provided by the
730 Chudov, Leontiev Informational [Page 13]