Internet DRAFT - draft-igoe-secsh-suiteb

draft-igoe-secsh-suiteb






Network Working Group                                          K.M. Igoe
Internet Draft                                  National Security Agency
Intended Status: Informational                        September 11, 2008
Expires: March 15, 2009                                                 


              Suite B Cryptographic Suites for Secure Shell             
                       draft-igoe-secsh-suiteb-00                       


Status of this Memo

   By submitting this Internet-Draft, each author represents that
   any applicable patent or other IPR claims of which he or she is
   aware have been or will be disclosed, and any of which he or she
   becomes aware will be disclosed, in accordance with Section 6 of
   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 March 15, 2009.

Copyright Notice

   Copyright (C) The IETF Trust (2008).

   
    












Igoe                       Informational                        [Page 1]

Internet Draft          draft-igoe-secsh-suiteb-00          Sep 11, 2008


Abstract


   This document describes the basic architecture of a Suite B compliant
   implementation of the Secure Shell Transport Layer Protocol.  Suite B
   secure shell makes use of elliptic curve Diffie-Hellmann (ECDH) key
   agreement, the elliptic curve digital signature algorithm (ECDSA),
   the Advanced Encryption Standard running in Galois Counter Mode
   (AES-GCM), two members of the SHA-2 family of hashes (SHA-256 and
   SHA-384), and X.509 certificates. 
 


Table of Contents

   1. Suite B Overview.................................................3
   1.1. Suite B Elliptic Curves........................................3
   2. Suite B SSH Security Mechanisms..................................3
   2.1. Key Agreement..................................................3
   2.2. Authentication.................................................3
   2.2.1. Certificates.................................................4
   2.2.2. Server Authentication........................................4
   2.2.3. User Authentication..........................................4
   2.3. Confidentiality and Data Integrity of SSH Binary Packets.......4
   2.3.1. Galois/Counter Mode..........................................5
   2.3.2. Initialization Vectors.......................................5
   2.3.3. Data Integrity...............................................5
   2.3.4. Confidentiality..............................................6
   3. Rekeying.........................................................6
   4. Security Considerations..........................................6
   5. References.......................................................6
   5.1. Normative References...........................................6
   5.2. Informative References.........................................7























Igoe                       Informational                        [Page 2]

Internet Draft          draft-igoe-secsh-suiteb-00          Sep 11, 2008



1. Suite B Overview

   At the 2005 RSA Conference, Dan Wolf, then Chief of the Information
   Assurance Directorate of the National Security Agency, announced a
   new suite of unclassified cryptographic algorithms which may be used
   to protect both unclassified and classified information.  This suite
   of cryptographic algorithms, known as Suite B, consists of publicly
   known and vetted algorithms. 
 

1.1. Suite B Elliptic Curves

   There are two elliptic curves specified for use in Suite B SSH:
 
   
   Curve        NIST name        SECG name      OID [SEC2]
   ---------------------------------------------------------------
   P-256        nistp256         secp256r1     1.2.840.10045.3.1.7
   P-384        nistp384         secp384r1     1.3.132.0.34
   
   A description of these curves can be found in [NIST] or [SEC2]. 
 

2. Suite B SSH Security Mechanisms


2.1. Key Agreement

   Suite B SSH uses elliptic curve Diffie-Hellmann (ECDH) to establish
   an unauthenticated ephemeral shared secret value (SSV) known to both
   the client and the server.  See [SSH-ECC] and [SSH-Tran]. 
 
   Suite B Basic
         ECDH on P-256 with SHA-256       ecdh-sha2-1.2.840.10045.3.1.7
   Suite B High
         ECDH on P-384 with SHA-384       ecdh-sha2-1.3.132.0.34
   
   The key agreement results in both the server and client having a
   common shared secret value (SSV).  The encryption keys and
   initialization vectors needed by SSH are derived directly from the
   SSV using the specified hash function (SHA-256 for Suite B Basic and
   SHA-384 for Suite B High).  The client to server channel and the
   server to client channel will have independent keys and
   initialization vectors.  These keys will remain constant until a
   rekey results in the formation of a new SSV. 
 

2.2. Authentication

   Suite B authentication uses the elliptic curve digital signature
   algorithm (ECDSA):


Igoe                       Informational                        [Page 3]

Internet Draft          draft-igoe-secsh-suiteb-00          Sep 11, 2008


 
   Suite B Basic
        ECDSA on P-256 with SHA-256      secg-ecc-1.2.840.10045.3.1.7
   Suite B High
         ECDSA on P-384 with SHA-384     secg-ecc-1.3.132.0.34
   

2.2.1. Certificates

   All ECDSA signing keys MUST be authenticated using X.509
   certificates.  Details upon the use of such certificates can be found
   in [X.509]. 
 
   In order to make certificate management easier, a Suite B High
   certificate MAY be used for authentication in Suite B Basic.  However
   a Suite B Basic certificate MUST NOT be used for authentication with
   Suite B High.  All implementations of Suite B SSH MUST support
   verification of both Suite B High and Suite B Basic signatures. 
 

2.2.2. Server Authentication

   SSH server authentication is based upon the SSH_MSG_KEX_ECDH_REPLY
   message sent from the server to the client.  This message MUST
   contain the server's ECDSA X.509 certificate. 
 
   One small point needs to clarified here.  SSH server authentication
   requires the server to sign a value EH (the Exchange Hash) formed by
   hashing the shared secret value together with data exchanged during
   the KEX protocol and in the initial handshake.  The hash used to form
   EH is SHA-256 for Suite B Basic and SHA-384 for Suite B High.  The
   ECDSA signature process begins by appropriately padding the EH and
   running through a hash function.  This hash function is determined by
   the signer's certificate, not by the SSH key establishment protocol. 
 

2.2.3. User Authentication

   As described in [SSH-Auth], user authentication does not occur until
   the KEX protocol has been successfully completed and a secure tunnel
   has been established between the client and the server.  The public
   key blob sent from the client to the server in the
   SSH_MSG_USERAUTH_REQUEST message MUST contain an X.509 certificate
   containing the user's ECDSA signing key.  Additional authentications
   MAY be requested once the certificate based authentication has been
   successfully completed. 
 

2.3. Confidentiality and Data Integrity of SSH Binary Packets

   Secure shell transfers data between the client and the server using
   its own binary packet structure.  The SSH binary packet structure is


Igoe                       Informational                        [Page 4]

Internet Draft          draft-igoe-secsh-suiteb-00          Sep 11, 2008


   independent of any packet structure on the underlying data channel. 
   Each binary packet is encrypted and carries its own message
   authentication code. 
 

2.3.1. Galois/Counter Mode

   As defined in [SSH-GCM], Suite B SSH uses AES Galois/Counter Mode
   (GCM) to provide confidentiality and ensure data integrity. 
 
   Suite B Basic
         AES-128 Galois/Counter Mode      aead-aes-128-gcm-ssh
   Suite B High
         AES-256 Galois/Counter Mode      aead-aes-256-gcm-ssh
   
   These algorithms rely on two counters:
 
      Invocation Counter: A 64-bit integer, incremented after each call
      to AES-GCM to process an SSH binary packet.  The initial value of
      the invocation counter is determined by the SSH initialization
      vector. 
 
      Block Counter: A 32-bit integer, set to one at the start of each
      new SSH binary packet and incremented as each 16-octet block of
      data is processed. 
 
   Insuring that these counters are properly implemented is crucial to
   the security of the system. 
 

2.3.2. Initialization Vectors

   The SSH key establishment process provides both client and server
   with initialization vectors derived from the SSV, one IV for client
   to server traffic and a separate IV for server to client traffic. 
   The size of the SSH-IV is determined by the size of the hash used,
   (32 octets for Suite B Basic and 48 for Suite B High).  AES-GCM
   requires a 12-octet AES-IV, broken into a 4-octet (the fixed field)
   and a 64-bit integer (the initial value of the invocation counter). 
   The first 4-octets of the SSH-IV are used to set the fixed field and
   the next 8-octets initialize the invocation counter (using network
   order in the conversion of the octet string to an integer). 
 
   Each binary packet requires a distinct AES-IV.  This is achieved by
   incrementing the invocation counter (modulo 2^64) after each binary
   packet has been processed.  In theory one should ensure that no more
   than 2^64 binary packets are processed before the SSH connection is
   rekeyed, but is practice this will not be a problem. 
 

2.3.3. Data Integrity



Igoe                       Informational                        [Page 5]

Internet Draft          draft-igoe-secsh-suiteb-00          Sep 11, 2008


   AES-GCM produces a 16-octet data integrity tag.  Suite B requires
   that all 16-octets be used as the SSH data integrity value of the SSH
   binary packet. 
 
   The AES-GCM authentication tag is formed using a 128-bit hash sub-key
   (HSK) formed by encrypting the all-zero block using the current
   encryption key.  Since SSH uses different keys for the client to
   server and the server to client communications, each of these will
   have its own HSK.  However these HSK's remain constant until the SSH
   connection is rekeyed. 
 

2.3.4. Confidentiality

   AES requires a 16-octet input each time a 16-octet block of data is
   encrypted or decrypted.  The 16-octet input consists of three fields:
 
      uint32  fixed;                  // 4 octets
      uint64  invocation_counter;     // 8 octets
      uint32  block_counter;          // 4 octets
      
   The fixed field is the first 4 octets of the SSH-IV derived from the
   SSV in the KEX procedure.  The invocation_counter is initially set be
   the next 8 octets of the SSH-IV and is incremented modulo 2^64
   whenever an SSH binary packet has been processed.  The block_counter
   is set to one at the start of each SSH binary packet and incremented
   after each block of has been data in processed.  (Setting the
   block_counter to zero is reserved for use in forming the
   authentication tag (GMAC) of the data.)
 

3. Rekeying

   Secure Shell allows either the server or client to request that the
   secure shell connection be rekeyed.  Suite B places no constraints on
   how frequently or infrequently this is to be done, but it does
   require that the cipher suite being employed must not be changed when
   a rekey occurs. 
 

4. Security Considerations

   The security considerations of [SSH-Arch] apply. 
 

5. References


5.1. Normative References


   [AEAD]      McGrew, D., "An Interface and algorithms for


Igoe                       Informational                        [Page 6]

Internet Draft          draft-igoe-secsh-suiteb-00          Sep 11, 2008


               Authenticated Encryption", RFC 5116, January 2006.

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4250]   Lehtinen, S. and C. Lonvick, Ed., "The Secure Shell (SSH)
               Protocol Assigned Numbers", RFC 4250, January 2006.

   [SSH-Arch]  Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH)
               Protocol Architecture", RFC 4251, January 2006.

   [SSH-Auth]  Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH)
               Authentication Protocol", RFC 4252, January 2006.

   [SSH-Mode]   Bellare, M., Kohno, T., and C. Namprempre, "The Secure
                Shell (SSH) Transport Layer Encryption Modes", RFC 4344,
                January 2006.

   [SSH-Tran]  Ylonen, T. and C. Lonvick, "The Secure Shell (SSH)
               Transport Layer Protocol", RFC 4253, January 2006.

   [X.509]      Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
                Housley, R., and W. Polk, "Internet X.509 Public Key
                Infrastructure Certificate and Certificate Revocation
                List (CRL) Profile", RFC 3280bis, April 2008.


5.2. Informative References


   [GCM]       Dworkin, M, "Recommendation for Block Cipher Modes of
               Operation: Galois/Counter Mode (GCM) and GMAC", NIST
               Special Publication 800-30D, November 2007.

   [NIST]      National Institute of Standards and Technology,
               "Recommendation for Key Management - Part 1", NIST
               Special Publication 800-57.

   [SEC2]      Standards for Efficient Cryptography Group, "Recommended
               Elliptic Curve Domain Parameters", SEC 2 v1.0, September
               2000.

   [SSH-ECC]   Green, J. and D.Stebila, Ed., "Elliptic-Curve Algorithm
               Integration in the Secure Shell Transport Layer",
               draft-green-secsh-ecc-02, January 2008.

   [SSH-GCM]   Igoe, K. and J. Solinas, "AES Galois Counter Mode for
               the Secure Shell Transport Layer Protocol",
               draft-igoe-ssh-aes-gcm, April 2008.





Igoe                       Informational                        [Page 7]

Internet Draft          draft-igoe-secsh-suiteb-00          Sep 11, 2008


Author's Addresses

   Kevin M. Igoe
   NSA/CSS Commercial Solutions Center
   National Security Agency
   EMail: kmigoe@nsa.gov



Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is provided by the IETF


Igoe                       Informational                        [Page 8]

Internet Draft          draft-igoe-secsh-suiteb-00          Sep 11, 2008


   Administrative Support Activity (IASA).





















































Igoe                       Informational                        [Page 9]