| < draft-ietf-rtgwg-yang-key-chain-07.txt | draft-ietf-rtgwg-yang-key-chain-08.txt > | |||
|---|---|---|---|---|
| Network Working Group A. Lindem, Ed. | Network Working Group A. Lindem, Ed. | |||
| Internet-Draft Y. Qu | Internet-Draft Y. Qu | |||
| Intended status: Standards Track D. Yeung | Intended status: Standards Track D. Yeung | |||
| Expires: February 18, 2017 Cisco Systems | Expires: March 3, 2017 Cisco Systems | |||
| I. Chen | I. Chen | |||
| Ericsson | Ericsson | |||
| J. Zhang | J. Zhang | |||
| Juniper Networks | Juniper Networks | |||
| Y. Yang | Y. Yang | |||
| Cisco Systems | Cisco Systems | |||
| August 17, 2016 | August 30, 2016 | |||
| Routing Key Chain YANG Data Model | Routing Key Chain YANG Data Model | |||
| draft-ietf-rtgwg-yang-key-chain-07.txt | draft-ietf-rtgwg-yang-key-chain-08.txt | |||
| Abstract | Abstract | |||
| This document describes the key chain YANG data model. A key chain | This document describes the key chain YANG data model. A key chain | |||
| is a list of elements each containing a key, send lifetime, accept | is a list of elements each containing a key, send lifetime, accept | |||
| lifetime, and algorithm. By properly overlapping the send and accept | lifetime, and algorithm (authentication or encryption). By properly | |||
| lifetimes of multiple key chain elements, keys and algorithms may be | overlapping the send and accept lifetimes of multiple key chain | |||
| gracefully updated. By representing them in a YANG data model, key | elements, keys and algorithms may be gracefully updated. By | |||
| distribution can be automated. Key chains are commonly used for | representing them in a YANG data model, key distribution can be | |||
| routing protocol authentication and other applications. In some | automated. Key chains are commonly used for routing protocol | |||
| applications, the protocols do not use the key chain element key | authentication and other applications. In some applications, the | |||
| directly, but rather a key derivation function is used to derive a | protocols do not use the key chain element key directly, but rather a | |||
| short-lived key from the key chain element key. | key derivation function is used to derive a short-lived key from the | |||
| key chain element key (e.g., the Master Keys used in the TCP | ||||
| Authentication Option. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on February 18, 2017. | This Internet-Draft will expire on March 3, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Requirements Notation . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Notation . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | ||||
| 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Problem Statement . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Graceful Key Rollover using Key Chains . . . . . . . . . 3 | 2.1. Applicability . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Design of the Key Chain Model . . . . . . . . . . . . . . . . 4 | 2.2. Graceful Key Rollover using Key Chains . . . . . . . . . 4 | |||
| 3. Design of the Key Chain Model . . . . . . . . . . . . . . . . 5 | ||||
| 3.1. Key Chain Operational State . . . . . . . . . . . . . . . 5 | 3.1. Key Chain Operational State . . . . . . . . . . . . . . . 5 | |||
| 3.2. Key Chain Model Features . . . . . . . . . . . . . . . . 5 | 3.2. Key Chain Model Features . . . . . . . . . . . . . . . . 6 | |||
| 3.3. Key Chain Model Tree . . . . . . . . . . . . . . . . . . 5 | 3.3. Key Chain Model Tree . . . . . . . . . . . . . . . . . . 6 | |||
| 4. Key Chain YANG Model . . . . . . . . . . . . . . . . . . . . 8 | 4. Key Chain YANG Model . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5. Relationship to other Work . . . . . . . . . . . . . . . . . 18 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 19 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 7.2. Informative References . . . . . . . . . . . . . . . . . 20 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 19 | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 21 | |||
| Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 20 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
| 1. Introduction | 1. Introduction | |||
| This document describes the key chain YANG data model. A key chain | This document describes the key chain YANG data model. A key chain | |||
| is a list of elements each containing a key, send lifetime, accept | is a list of elements each containing a key, send lifetime, accept | |||
| lifetime, and algorithm. By properly overlapping the send and accept | lifetime, and algorithm (authentication or encryption). By properly | |||
| lifetimes of multiple key chain elements, keys and algorithms may be | overlapping the send and accept lifetimes of multiple key chain | |||
| gracefully updated. By representing them in a YANG data model, key | elements, keys and algorithms may be gracefully updated. By | |||
| distribution can be automated. Key chains are commonly used for | representing them in a YANG data model, key distribution can be | |||
| routing protocol authentication and other applications. In some | automated. Key chains are commonly used for routing protocol | |||
| applications, the protocols do not use the key chain element key | authentication and other applications. In some applications, the | |||
| directly, but rather a key derivation function is used to derive a | protocols do not use the key chain element key directly, but rather a | |||
| short-lived key from the key chain element key. | key derivation function is used to derive a short-lived key from the | |||
| key chain element key (e.g., the Master Keys used in [TCP-AO]). | ||||
| 1.1. Requirements Notation | 1.1. Requirements Notation | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC-KEYWORDS]. | document are to be interpreted as described in [RFC-KEYWORDS]. | |||
| 1.2. Tree Diagrams | ||||
| A simplified graphical representation of the complete data tree is | ||||
| presented in Section 3.3. The following tree notation is used. | ||||
| o Brackets "[" and "]" enclose list keys. | ||||
| o Curly braces "{" and "}" contain names of optional features that | ||||
| make the corresponding node conditional. | ||||
| o Abbreviations before data node names: "rw" means configuration | ||||
| (read-write), "ro" state data (read-only), "-x" RPC operations, | ||||
| and "-n" notifications. | ||||
| o Symbols after data node names: "?" means an optional node, "!" a | ||||
| container with presence, and "*" denotes a "list" or "leaf-list". | ||||
| o Parentheses enclose choice and case nodes, and case nodes are also | ||||
| marked with a colon (":"). | ||||
| o Ellipsis ("...") stands for contents of subtrees that are not | ||||
| shown. | ||||
| 2. Problem Statement | 2. Problem Statement | |||
| This document describes a YANG [YANG] data model for key chains. Key | This document describes a YANG [YANG] data model for key chains. Key | |||
| chains have been implemented and deployed by a large percentage of | chains have been implemented and deployed by a large percentage of | |||
| network equipment vendors. Providing a standard YANG model will | network equipment vendors. Providing a standard YANG model will | |||
| facilitate automated key distribution and non-disruptive key | facilitate automated key distribution and non-disruptive key | |||
| rollover. This will aid in tightening the security of the core | rollover. This will aid in tightening the security of the core | |||
| routing infrastructure as recommended in [IAB-REPORT]. | routing infrastructure as recommended in [IAB-REPORT]. | |||
| A key chain is a list containing one or more elements containing a | A key chain is a list containing one or more elements containing a | |||
| skipping to change at page 3, line 45 ¶ | skipping to change at page 4, line 22 ¶ | |||
| as their corresponding lifetimes and algorithms. Additionally, the | as their corresponding lifetimes and algorithms. Additionally, the | |||
| key table includes key selection criteria and envisions a deployment | key table includes key selection criteria and envisions a deployment | |||
| model where the details of the applications or services requiring | model where the details of the applications or services requiring | |||
| authentication or encryption permeate into the key database. The | authentication or encryption permeate into the key database. The | |||
| YANG key-chain model described herein doesn't include key selection | YANG key-chain model described herein doesn't include key selection | |||
| criteria or support this deployment model. At the same time, it does | criteria or support this deployment model. At the same time, it does | |||
| not preclude it. The draft [YANG-CRYPTO-KEYTABLE] describes | not preclude it. The draft [YANG-CRYPTO-KEYTABLE] describes | |||
| augmentations to the key chain YANG model in support of key selection | augmentations to the key chain YANG model in support of key selection | |||
| criteria. | criteria. | |||
| 2.1. Graceful Key Rollover using Key Chains | 2.1. Applicability | |||
| Other YANG modules may reference ietf-key-chain YANG module key-chain | ||||
| names for authentication and encryption applications. A YANG type | ||||
| has been provided to facilate reference to the key-chain name without | ||||
| having to specify the complete YANG XML Path Language (XPath) | ||||
| selector. | ||||
| 2.2. Graceful Key Rollover using Key Chains | ||||
| Key chains may be used to gracefully update the key and/or algorithm | Key chains may be used to gracefully update the key and/or algorithm | |||
| used by an application for authentication or encryption. This MAY be | used by an application for authentication or encryption. This MAY be | |||
| accomplished by accepting all the keys that have a valid accept | accomplished by accepting all the keys that have a valid accept | |||
| lifetime and sending the key with the most recent send lifetime. One | lifetime and sending the key with the most recent send lifetime. One | |||
| scenario for facilitating key rollover is to: | scenario for facilitating key rollover is to: | |||
| 1. Distribute a key chain with a new key to all the routers or other | 1. Distribute a key chain with a new key to all the routers or other | |||
| network devices in the domain of that key chain. The new key's | network devices in the domain of that key chain. The new key's | |||
| accept lifetime should be such that it is accepted during the key | accept lifetime should be such that it is accepted during the key | |||
| skipping to change at page 18, line 5 ¶ | skipping to change at page 18, line 36 ¶ | |||
| type boolean; | type boolean; | |||
| description "AES Key Wrap state."; | description "AES Key Wrap state."; | |||
| } | } | |||
| description "Status of AES Key Wrap."; | description "Status of AES Key Wrap."; | |||
| } | } | |||
| description "All configured key-chains for the device."; | description "All configured key-chains for the device."; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 5. Relationship to other Work | 5. Security Considerations | |||
| 6. Security Considerations | ||||
| This document enables the automated distribution of industry standard | This document enables the automated distribution of industry standard | |||
| key chains using the NETCONF [NETCONF] protocol. As such, the | key chains using the NETCONF [NETCONF] protocol. As such, the | |||
| security considerations for the NETCONF protocol are applicable. | security considerations for the NETCONF protocol are applicable. | |||
| Given that the key chains themselves are sensitive data, it is | Given that the key chains themselves are sensitive data, it is | |||
| RECOMMENDED that the NETCONF communication channel be encrypted. One | RECOMMENDED that the NETCONF communication channel be encrypted. One | |||
| way to do accomplish this would be to invoke and run NETCONF over SSH | way to do accomplish this would be to invoke and run NETCONF over SSH | |||
| as described in [NETCONF-SSH]. | as described in [NETCONF-SSH]. | |||
| When configured, the key-strings can be encrypted using the AES Key | When configured, the key-strings can be encrypted using the AES Key | |||
| skipping to change at page 18, line 34 ¶ | skipping to change at page 19, line 17 ¶ | |||
| further discussion. | further discussion. | |||
| The clear-text algorithm is included as a YANG feature. Usage is NOT | The clear-text algorithm is included as a YANG feature. Usage is NOT | |||
| RECOMMENDED except in cases where the application and device have no | RECOMMENDED except in cases where the application and device have no | |||
| other alternative (e.g., a legacy network device that must | other alternative (e.g., a legacy network device that must | |||
| authenticate packets at intervals of 10 milliseconds or less for many | authenticate packets at intervals of 10 milliseconds or less for many | |||
| peers using Bidirectional Forwarding Detection [BFD]). Keys used | peers using Bidirectional Forwarding Detection [BFD]). Keys used | |||
| with the clear-text algorithm are considered insecure and SHOULD NOT | with the clear-text algorithm are considered insecure and SHOULD NOT | |||
| be reused with more secure algorithms. | be reused with more secure algorithms. | |||
| 7. IANA Considerations | 6. IANA Considerations | |||
| This document registers a URI in the IETF XML registry | This document registers a URI in the IETF XML registry | |||
| [XML-REGISTRY]. Following the format in RFC 3688, the following | [XML-REGISTRY]. Following the format in [XML-REGISTRY], the | |||
| registration is requested to be made: | following registration is requested to be made: | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-key-chain | URI: urn:ietf:params:xml:ns:yang:ietf-key-chain | |||
| Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
| This document registers a YANG module in the YANG Module Names | This document registers a YANG module in the YANG Module Names | |||
| registry [YANG]. | registry [YANG]. | |||
| name: ietf-acl namespace: urn:ietf:params:xml:ns:yang:ietf-key- | name: ietf-key-chain namespace: urn:ietf:params:xml:ns:yang:ietf- | |||
| chain prefix: ietf-key-chain reference: RFC XXXX | key-chain prefix: ietf-key-chain reference: RFC XXXX | |||
| 8. References | 7. References | |||
| 8.1. Normative References | 7.1. Normative References | |||
| [NETCONF] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. | [NETCONF] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. | |||
| Bierman, "Network Configuration Protocol (NETCONF)", RFC | Bierman, "Network Configuration Protocol (NETCONF)", RFC | |||
| 6241, June 2011. | 6241, June 2011. | |||
| [NETCONF-SSH] | [NETCONF-SSH] | |||
| Wasserman, M., "Using NETCONF Protocol over Secure Shell | Wasserman, M., "Using NETCONF Protocol over Secure Shell | |||
| (SSH)", RFC 6242, June 2011. | (SSH)", RFC 6242, June 2011. | |||
| [RFC-KEYWORDS] | [RFC-KEYWORDS] | |||
| skipping to change at page 19, line 29 ¶ | skipping to change at page 20, line 13 ¶ | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [XML-REGISTRY] | [XML-REGISTRY] | |||
| Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| January 2004. | January 2004. | |||
| [YANG] Bjorklund, M., "YANG - A Data Modeling Language for the | [YANG] Bjorklund, M., "YANG - A Data Modeling Language for the | |||
| Network Configuration Protocol (NETCONF)", RFC 6020, | Network Configuration Protocol (NETCONF)", RFC 6020, | |||
| October 2010. | October 2010. | |||
| 8.2. Informative References | 7.2. Informative References | |||
| [AES-KEY-WRAP] | [AES-KEY-WRAP] | |||
| Housley, R. and M. Dworkin, "Advanced Encryption Standard | Housley, R. and M. Dworkin, "Advanced Encryption Standard | |||
| (AES) Key Wrap with Padding Algorithm", RFC 5649, August | (AES) Key Wrap with Padding Algorithm", RFC 5649, August | |||
| 2009. | 2009. | |||
| [BFD] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [BFD] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD)", RFC 5880, June 2010. | (BFD)", RFC 5880, June 2010. | |||
| [CRYPTO-KEYTABLE] | [CRYPTO-KEYTABLE] | |||
| skipping to change at page 20, line 14 ¶ | skipping to change at page 20, line 46 ¶ | |||
| [NTP-PROTO] | [NTP-PROTO] | |||
| Mills, D., Martin, J., Burbank, J., and W. Kasch, "Network | Mills, D., Martin, J., Burbank, J., and W. Kasch, "Network | |||
| Time Protocol Version 4: Protocol and Algorithms | Time Protocol Version 4: Protocol and Algorithms | |||
| Specification", RFC 5905, June 2010. | Specification", RFC 5905, June 2010. | |||
| [OSPFV3-AUTH] | [OSPFV3-AUTH] | |||
| Bhatia, M., Manral, V., and A. Lindem, "Supporting | Bhatia, M., Manral, V., and A. Lindem, "Supporting | |||
| Authentication Trailer for OSPFv3", RFC 7166, March 2014. | Authentication Trailer for OSPFv3", RFC 7166, March 2014. | |||
| [TCP-AO] Touch, J., Mankin, A., and R. Bonica, "The TCP | ||||
| Authentication Option", RFC 5925, June 2010. | ||||
| [TCP-AO-ALGORITHMS] | [TCP-AO-ALGORITHMS] | |||
| Lebovitz, G. and E. Rescorla, "Cryptographic Algorithms | Lebovitz, G. and E. Rescorla, "Cryptographic Algorithms | |||
| for the TCP Authentication Option (TCP-AO)", RFC 5926, | for the TCP Authentication Option (TCP-AO)", RFC 5926, | |||
| June 2010. | June 2010. | |||
| [YANG-CRYPTO-KEYTABLE] | [YANG-CRYPTO-KEYTABLE] | |||
| Chen, I., "YANG Data Model for RFC 7210 Key Table", draft- | Chen, I., "YANG Data Model for RFC 7210 Key Table", draft- | |||
| chen-rtg-key-table-yang-02.txt (work in progress), | chen-rtg-key-table-yang-02.txt (work in progress), | |||
| November 2015. | November 2015. | |||
| Appendix A. Acknowledgments | Appendix A. Acknowledgments | |||
| The RFC text was produced using Marshall Rose's xml2rfc tool. | The RFC text was produced using Marshall Rose's xml2rfc tool. | |||
| Thanks to Brian Weis for fruitful discussions on security | Thanks to Brian Weis for fruitful discussions on security | |||
| requirements. | requirements. | |||
| Thanks to Ines Robles for Routing Directorate QA review comments. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Acee Lindem (editor) | Acee Lindem (editor) | |||
| Cisco Systems | Cisco Systems | |||
| 301 Midenhall Way | 301 Midenhall Way | |||
| Cary, NC 27513 | Cary, NC 27513 | |||
| USA | USA | |||
| Email: acee@cisco.com | Email: acee@cisco.com | |||
| End of changes. 20 change blocks. | ||||
| 45 lines changed or deleted | 83 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||