Delay-Tolerant Networking E. Birrane Internet-Draft JHU/APL Intended status: Standards Track July 2, 2018 Expires: January 3, 2019 BPSec Interoperability Cipher Suites draft-birrane-dtn-bpsec-interop-cs-02 Abstract This document defines a set of integrity and confidentiality cipher suites suitable for testing the interoperability of Bundle Protocol Security (BPSec) implementations. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire on January 3, 2019. Copyright Notice Copyright (c) 2018 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 (https://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. Birrane Expires January 3, 2019 [Page 1] Internet-Draft BPSec Interoperability Cipher Suites July 2018 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 3. Cipher Suite BIB-HMAC256-SHA256 . . . . . . . . . . . . . . . 3 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 3.2. Key Considerations . . . . . . . . . . . . . . . . . . . 3 3.3. Canonicalization Algorithms . . . . . . . . . . . . . . . 3 3.4. Cipher Suite Parameter Definitions . . . . . . . . . . . 3 3.5. Security Result Definitions . . . . . . . . . . . . . . . 4 4. Cipher Suite BCB-AES-GCM-256 . . . . . . . . . . . . . . . . 4 4.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 4 4.2. Key Considerations . . . . . . . . . . . . . . . . . . . 4 4.3. Canonicalization Algorithms . . . . . . . . . . . . . . . 5 4.4. Processing . . . . . . . . . . . . . . . . . . . . . . . 5 4.4.1. Encryption . . . . . . . . . . . . . . . . . . . . . 5 4.4.2. Decryption . . . . . . . . . . . . . . . . . . . . . 5 4.5. Cipher Suite Parameter Definitions . . . . . . . . . . . 6 4.6. Security Result Definitions . . . . . . . . . . . . . . . 6 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 5.1. Bundle Block Types . . . . . . . . . . . . . . . . . . . 7 6. Normative References . . . . . . . . . . . . . . . . . . . . 7 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 8 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 1. Introduction The Bundle Protocol Security (BPSec) [I-D.ietf-dtn-bpsec] specification provides inter-bundle integrity and confidentiality features for networks deploying the Bundle Protocol (BP) [I-D.ietf-dtn-bpbis]. BPSec defines a set of BP extension blocks to carry cipher suite results and associated meta-data, but does not define a common set of supported cipher suites. This document extends BPSec and defines an integrity cipher suite and a confidentiality cipher suite suitable for populating BPSec Block Integrity Blocks (BIBs) and Block Confidentiality Blocks (BCBs), respectively. This purpose of the cipher suites described in this document is twofold. First, these suites should be used to test the interoperability of BPSec implementations. Second, this specification can serve as a template to be followed by other BPSec cipher suite authors. The intent of these cipher suite definitions is to provide a mechanism for interoperability testing. There is no claim that these cipher suites are suitable for operational deployment in any particular networking scenario. Further, there is no requirement Birrane Expires January 3, 2019 [Page 2] Internet-Draft BPSec Interoperability Cipher Suites July 2018 that these cipher suites be used in any operational network deployments. These cipher suites generate information that MUST be encoded using the CBOR specification documented in [RFC7049]. 2. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 3. Cipher Suite BIB-HMAC256-SHA256 3.1. Overview This integrity cipher suite provides a signed hash over the security target based on the use of the SHA-256 message digest algorithm [RFC4634] combined with HMAC [RFC2104] with a 256 bit truncation length. This formulation is based on the HMAC 256/256 algorithm defined in [RFC8152] Table 7: HMAC Algorithm Values. The BIB-HMAC256-SHA256 cipher suite has a Cipher Suite ID of 0x1. 3.2. Key Considerations Keys used with this specification MUST be symmetric and 256 bits in length. This cipher suite provides no requirements on the configuration or management of keys. 3.3. Canonicalization Algorithms BIB-HMAC256-SHA256 uses the standard canonicalization algorithms defined in [I-D.ietf-dtn-bpsec] and operates over all of the block- type-specific data fields for the security target. This cipher suite does not include hashing over other parts of the target block header, such as the block type code, block number, block processing control flags, or any CRC information. 3.4. Cipher Suite Parameter Definitions BIB-HMAC256-SHA256 defines the following cipher suite parameters. Birrane Expires January 3, 2019 [Page 3] Internet-Draft BPSec Interoperability Cipher Suites July 2018 BIB-HMAC256-SHA256 Parameters +------+------+--------+--------------------------------------------+ | Parm | Parm | CBOR | Description | | Id | Name | Type | | +------+------+--------+--------------------------------------------+ | 1 | Key | byte | Material encoded or protected by the key | | | | string | management system and used to transport an | | | | | ephemeral key protected by a long-term | | | | | key. | +------+------+--------+--------------------------------------------+ Table 1 3.5. Security Result Definitions BIB-HMAC256-SHA256 defines the following security results. BIB-HMAC256-SHA256 Security Results +-----------+-------------+-------------+---------------------------+ | Result Id | Result Name | CBOR Type | Description | +-----------+-------------+-------------+---------------------------+ | 1 | Tag | byte string | The tag produced by HMAC. | +-----------+-------------+-------------+---------------------------+ Table 2 4. Cipher Suite BCB-AES-GCM-256 4.1. Overview This confidentiality cipher suite provides cipher-text to replace the plain-text block-type-specific data fields of its target block. BCB- AES-GCM-256 uses the Advanced Encryption Standard (AES) cipher operating in Galois/Counter Mode (GCM) [AES-GCM]. This formulation is based on the A256GCM algorithm defined in [RFC8152] Table 9: Algorithm Value for AES-GCM. The BCB-AES-GCM-256 cipher suite has a Cipher Suite ID of 0x02. This cipher suite does modify the size of the target block. 4.2. Key Considerations Keys used with this specification MUST be symmetric and 256 bits in length. Birrane Expires January 3, 2019 [Page 4] Internet-Draft BPSec Interoperability Cipher Suites July 2018 This cipher suite provides no requirements on the configuration or management of keys. 4.3. Canonicalization Algorithms BCB-AES-GCM-256 uses the standard canonicalization algorithms defined in [I-D.ietf-dtn-bpsec] and operates over all of the block-type- specific data fields for the security target. This cipher suite does not include hashing over other parts of the target block header, such as the block type code, block number, block processing control flags, or any CRC information. 4.4. Processing 4.4.1. Encryption When encrypting, the BCB-AES-GCM-256 cipher treats the catenation of the target block's block-type-specific data fields as a single set of plain-text. Cipher-text, once calculated, is stored as a CBOR byte string replacing the value of the target block's block-type-specific data. Even though the generated cipher-text will have the same number of bytes as the input plain-text, the CBOR encoding of the cipher-text might not have the same size as the CBOR encoding of the plain-text. This is because block-type-specific data in [I-D.ietf-dtn-bpbis] can be represented in multiple ways, as specified by individual block types. 4.4.2. Decryption When decrypting, the target block's block-type-specific field is verified to be only a CBOR byte string. If this is not the case the decryption treated as failed and processed in accordance with local security policy. Otherwise, the byte string and key information is passed to the cipher for decryption. If the cipher-text fails to authenticate, or if there are other problems in the decryption (such as the creation of invalid CBOR plain-text) then the decryption MUST be treated as failed and processed in accordance with local security policy. If the decryption succeeds, the resultant plain-text MUST replace the cipher-text in the target-block. Birrane Expires January 3, 2019 [Page 5] Internet-Draft BPSec Interoperability Cipher Suites July 2018 4.5. Cipher Suite Parameter Definitions BCB-AES-GCM-256 defines the following cipher suite parameters. It should be noted in this specification there is no additional authenticated data passed in to the AES-GCM cipher. The plain-text is the only data input and MUST be the entire data contents of the target block. Because replaying an IV in counter mode voids the confidentiality of all messages encryption with said IV, this cipher suite also requires a unique IV for every encryption performed with the same key. This means the same key and IV combination must never be used more than once. BCB-AES-GCM-256 Parameters +------+----------------+--------+----------------------------------+ | Parm | Parm Name | CBOR | Description | | Id | | Type | | +------+----------------+--------+----------------------------------+ | 1 | Key | byte | Material encoded or protected by | | | | string | the key management system and | | | | | used to transport an ephemeral | | | | | key protected by a long-term | | | | | key. | | 2 | Initialization | byte | The initialization vector. A | | | Vector | string | random value between 8-16 bytes. | | | | | 12 bytes is recommended. | +------+----------------+--------+----------------------------------+ Table 3 4.6. Security Result Definitions BCB-AES-GCM-256 defines the following security results. It should be noted that cipher text is not a security result as the resultant cipher text is stored in the target block. When operating in GCM mode, AES produces cipher text of the same size as its plain text and, therefore, no security results are necessary to capture padding information. Birrane Expires January 3, 2019 [Page 6] Internet-Draft BPSec Interoperability Cipher Suites July 2018 BCB-AES-GCM-256 Security Results +--------+----------------+--------+--------------------------------+ | Result | Result Name | CBOR | Description | | Id | | Type | | +--------+----------------+--------+--------------------------------+ | 1 | Authentication | byte | Output from the AES-GCM | | | Tag | string | cipher. This value (prior to | | | | | CBOR encoding) MUST be 16 | | | | | bytes long. | +--------+----------------+--------+--------------------------------+ Table 4 5. IANA Considerations 5.1. Bundle Block Types This specification allocates two block types from the "BPSec Cipher Suite IDs" registry defined in [I-D.ietf-dtn-bpsec]. Additional BPSec Cipher Suite IDs: +-------+--------------------+---------------+ | Value | Description | Reference | +-------+--------------------+---------------+ | 1 | BIB-HMAC256-SHA256 | This document | | 2 | BCB-AES-GCM-256 | This document | +-------+--------------------+---------------+ Table 5 6. Normative References [AES-GCM] Dworkin, M., "NIST Special Publication 800-38D: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC.", November 2007. [I-D.ietf-dtn-bpbis] Burleigh, S., Fall, K., and E. Birrane, "Bundle Protocol Version 7", draft-ietf-dtn-bpbis-10 (work in progress), November 2017. [I-D.ietf-dtn-bpsec] Birrane, E. and K. McKeever, "Bundle Protocol Security Specification", draft-ietf-dtn-bpsec-06 (work in progress), October 2017. Birrane Expires January 3, 2019 [Page 7] Internet-Draft BPSec Interoperability Cipher Suites July 2018 [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- Hashing for Message Authentication", RFC 2104, DOI 10.17487/RFC2104, February 1997, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC4634] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms (SHA and HMAC-SHA)", RFC 4634, DOI 10.17487/RFC4634, July 2006, . [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, October 2013, . [RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)", RFC 8152, DOI 10.17487/RFC8152, July 2017, . Appendix A. Acknowledgements The following participants contributed useful analysis of this specification: Prathibha Rama of the Johns Hopkins University Applied Physics Laboratory. Author's Address Edward J. Birrane, III The Johns Hopkins University Applied Physics Laboratory 11100 Johns Hopkins Rd. Laurel, MD 20723 US Phone: +1 443 778 7423 Email: Edward.Birrane@jhuapl.edu Birrane Expires January 3, 2019 [Page 8]