I2RS working group | S. Hares |
Internet-Draft | Huawei |
Intended status: Standards Track | S. Brim |
Expires: December 19, 2014 | Consultant |
N. Cam-Winget | |
Cisco | |
J. Halpern | |
Ericcson | |
D. Zhang | |
Q. Wu | |
Huawei | |
A. Abro | |
S. Asadullah | |
Cisco | |
J. Halpern | |
Ericcson | |
E. Yu | |
Cisco | |
June 17, 2014 |
I2RS Security Considerations
draft-hares-i2rs-security-01
This presents an expansion of the security architecture found in the i2rs architecture.
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 http://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 December 19, 2014.
Copyright (c) 2014 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 (http://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.
The Interface to the Routing System (I2RS) provides read and write access to the information and state within the routing process and configuration process (as illustrated in the diagram in the architecture document within routing elements. The I2RS client [I-D.ietf-i2rs-architecture] interacts with one or more I2RS agents to collect information from network routing systems. This security architecture expands on the security issues involved in the I2RS protocol's message exchange between the I2RS client and the I2RS agent which are described in [I-D.ietf-i2rs-architecture].
This document utilizes the definitions found in the following drafts: [RFC4949], and [I-D.ietf-i2rs-architecture].
Specifically, this document utilizes the following definitions:
(c) Permission Inheritance Assignments (i.e., Role Hierarchy) [Constraints] +=====+ | | (a) Identity v v (b) Permission +----------+ Assignments +-------+ Assignments +----------+ |Identities|<=============>| Roles |<=============>|Permissions| +----------+ [Constraints] +-------+ [Constraints] +----------+ | | ^ ^ | | +-----------+ | | +---------------------+ | | | +-------+ | | | | Legend | | +====>|Session|=====+ | | | | | +-------+ | | | One-to-One | | | ... | | | =================== | | | +-------+ | | | | +========>|Session|=========+ | One-to-Many | (d) Identity | +-------+ | (e) Role | ==================> | Selections | | Selections | | [Constraints]| Access |[Constraints] | Many-to-Many | | Sessions | | <================> | +-----------+ +---------------------+ Figure 1 - Security definition of Role inheritance
The following diagram is a variation of the [RFC4949] diagram on role-based security, and provides the context for the assumptions of security on the role-based work.
The security for the I2RS protocol utilizes the role based access security for the I2RS clients access to the I2RS agent's data (read/write). The I2RS [I-D.ietf-i2rs-architecture] treats the agent's notification stream or publication stream as a pre-authorized read. This security consideration document examines the major points:
Subsequent sections will look how auditing, tracing and deployment scenarios impact the I2RS protocol.
All I2RS clients and I2RS agents MUST have at least one unique identifier that uniquely identifies each party. The I2RS protocol MUST utilize these identifiers for mutual identification of the client and agent. An I2RS agent, upon receiving an I2RS message from a client, must confirm that the client has a valid identity. The client, upon receiving an I2RS message from an agent, must confirm the I2RS identity.
The distribution of security identity is taken up in the section below. To provide context for that discussion let us look at how I2RS roles are linked to that identity/identifier.
Role = identity + routing tree + Read/Write/R-W
Role security for an agent combines agent identity plus the potential read scope plus the potential write scope. The potential read scope is the routing attributes/variables within a data model (for example BGP peer information) or a set of data models (RIB Data Mode and the BGP peer information) that an agent may potential read. A notification or an event stream is considered a set of read scope data sent via different methodology. A write scope is something the client may write.
Role security exists even if multiple transport connections are being used between the I2RS client and I2RS agent (per [I-D.ietf-i2rs-architecture]). These transport message streams may start/stop without affecting the existence of the client/agent data exchange. TCP supports a single stream of data. SCTP [RFC4960] provides security for multiple streams plus end-to-end transport of data.
(Editor: Additional WG discussion will need to focus on how different deployments impact the transport layers, and the messages sizes (E.g. UDP's limited size). Use case descriptions will guide this discussion.)
Figure 2 show a model of the I2RS role-based access control environment. This model is a variation of the [RFC4949] diagram on role-based security shown in Figure 1. Portions of this model are outside the scope of the I2RS protocol, but are part of the deployment environment of the I2RS protocol. For example, the I2RS identity repository is a logical construct of an entity that keeps all the identities. This logical entity may be implemented in deployments of I2RS in many ways. One simple way is the administrator securely transferring a file with identities and Roles to the client and agent. An automated way may be seen within the security identity distribution protcools in the IETF (AAA, ABFAB, etc). The important point is the Roles (Identity + Rib-portion + Scope (Read, Write, R/W) is passed within the I2RS environment in an manner consistent to the logical constrains in this model.
identity + Role ------- assignments (global)------ | Role assignments | V V +-----------+ +--------------------------+ | I2RS | identity |I2RS Agent Roles | | Agent | assignments |= Potential Read Scope | |identities | (or policy | + Potential Write Scope | +--V--------+ constraints) +--------------------------+ | ^ I2RS | | (not in the I2RS protocol) protocol | +==========+ | | |identity | | ============|repository| | |selection | | +----------+ | Mutual | | authorization | | | | V | +-------------------+ |--| i2rs client | | identities | +-------------------+ Figure 2 - I2RS Role Based Access Model
This document suggests that identity distribution and the loading of these identities into I2RS agent and I2RS Client occur outside the I2RS protocol. The I2RS protocol SHOULD assume some mechanism (IETF or private) will distribute identities and that the I2RS client/agent will load the identities prior to the I2RS protocol establishing a connection between I2RS client and I2RS agent.
Each Identity will be linked (via internal policy) to one or more roles. The context of the I2RS client-agent communication is based on an role which may/may not require message confidentiality, message integrity protection, or replay attack protection.
I2RS clients may be used by multiple applications to configure routing via I2RS agents, receive status reports, turn on the I2RS audit stream, or turn on I2RS traceability. An I2RS client software could arrange to store multiple secure identities and use the identity to insure that the "Status-only" application process only uses the client identity for status notification no matter what role that identity takes on. Multiple identities provide some secondary level support for the application-client, but may grow the number of identities. The multiple identities per client could also be used for multiple levels of security for the data passed between an I2RS client and agent as either: a) confidential, b) authorized with message integrity protection, c) authorized without message integrity protection, and or d) no protection. See the section below for additional discussions on these options.
Editor's note: The WG needs to discuss the scaling properties of the out of band establishment of identities (that is outside the I2RS protocol).
I2RS data security involves determining of the I2RS client to I2RS agent data transfer needs to be confidential, or have message integrity, or support an end-to-end integrity (in the case of stacked clients). This section discuss the consideration of I2RS data security.
It is assumed that all I2RS data security mechanisms used for protecting the I2RS packets needs to be associated with proper key management solutions. A key management solution needs to guarantee that only the entities having sufficient privileges can get the keys to encrypt/decrypt the sensitive data. In addition, the key management mechanisms need to be able to update the keys before they have lost sufficient security strengths, without breaking the connection between the agents and clients.
In a critical infrastructure, certain data within routing elements is sensitive and R/W operations on such data must be controlled in order to protect its confidentiality. For example, most carriers do not want a router's configuration and data flow statistics known by hackers or their competitors. While carriers may share peering information, most carriers do not share configuration and traffic statistics. To achieve this, access control to sensitive data needs to be provided, and the confidentiality protection on such data during transportation needs to be enforced.
It is normal to protect the confidentiality of the sensitive data during transportation by encrypting them. Encryption obscures the data transported on the wire and protects them against eavesdropping attacks. Because the encryption itself cannot guarantee the integrity or fresh of data being transported, in practice, confidentiality protection is normally provided with integrity protection.
An integrity protection mechanism for I2RS should be able to ensure 1) the data being protected are not modified without detection during its transportation and 2) the data is actually from where it is expected t come from 3) the data is not repeated from some earlier interaction of the protocol. That is, when both confidentiality and integrity of data is properly protected, it is possible to ensure that encrypted data are not modified or replayed without detection.
As a part of integrity protection, the replay protection approaches provided for I2RS must consider both online and offline attackers, and have sufficient capability to deal with intra connection and inter-connection attacks. For instance, when using symmetric keys, sequence numbers which increase monotonically could be useful to help in distinguishing the replayed messages, under the assistance of signatures or MACs (dependent on what types of keys are applied). In addition, in the cases where only offline attacker is considered, random nonce could be effective.
The I2RS protocol is concerned with I2RS client-agent exchange. End-to-end confidentiality requires at least transport layer security. In a simple case of a I2RS Client to a single I2RS agent transfer, the I2RS client puts the data in to the secure transport message and the I2RS agent takes it out of the transport message.
In the case of a stacked client where the I2RS-client1 talks to a I2RS-agent1-I2RS-client2, the data that transfers between the I2RS-agent-1 and I2RS-client-2 is outside the scope of the I2RS protocol. However, it is critical if this mechanism is used for fan-out of read/write commands to agents that the end-to-end data has data integrity.
Editor question: Should I2RS have the optional capability to support end-to-end data integrity?
I2RS protocol uses the I2RS Role (Identity + Access (Read, Write, or Read/Write) to control access to the I2RS data. The impact of I2RS role-based security on I2RS data models is that certain portions of an I2RS data models may require:
Therefore, creators of I2RS Information Models (IM) and I2RS Data Models (DM) may want to consider the following factors:
Confidentiality of role implies the following:
Mutual validation of client and agent's identities means that both:
I2RS WG has indicated some I2RS client-agent message exchanges will not need encrypt data to obscure the data. If this is so, then the I2RS designers must understand if their data will be encrypted or sent without encryption. Information Model (IM) and Data Model (DM) creators must discuss determine the following:
The architecture provides the ability to have multiple transport sessions providing protocol and data communication between the I2RS Agent and the I2RS client. The document does not try to specify the protocols for securing I2RS packets, but provides considersations in choosing a transport protocol. These transports can be TCP or secure (SCTP) or a TLS based. If we use TLS based transports, we can use TLS over UDP (DTLS) or SSL with with TLS plus extensions.
The following are questions to address regarding the transport:
This section discusses data streams which have a security audit trail (see definitions) for the I2RS Client to I2RS Agent interactions. The I2RS Discussion group suggested that audit data streams are:
I2RS is not inventing a new audit protocol as many protocols (syslog) are available to be used. Verifying audit stream data is outside the I2RS protocol, but those designing the IM and DMs with audit stream capability need to provide the appropriate hooks such as: on/off action, data selection, and protocol (for example syslog) that the I2RS Agent (or I2RS routing system) sends the audit data upon.
Agent audit trail could be the logging of what variables written by which client (identified by client ID) on behalf of a reported application (identified by the ID of the application). The audit stream turned on by the I2RS Agent may need to pass both the client ID and the application ID to the audit stream.
Out of scope for this work is the ability to audit the application to I2RS-Client interfaces, or the I2RS Agent to I2RS routing system.
Editor: Questions still to be answered:
The draft [I-D.clarke-i2rs-traceability] provides an IM for the following use cases:
The operational guidance in the traceability IM includes creation of an I2RS log that is stored in a temporary storage, rotated, and retrieved via syslog, I2RS "snap-shot" available as one bulk snapshot or subscription, and in a I2RS publish-subscribe stream.
The security issues of the traceability log data sent to syslog are equivalent to the auditable data stream security issues covered in the previous section. The one-bulk snapshot data model and publish/subscription model contain the same issues considered in the basic read functions described above. The traceability log issues beyond this are implementation or transport protocol issues regarding scale.
This section provides consideration for the deployment issues around stacked I2RS clients. This section only has questions for now, and will be added to in future drafts.
The [I-D.ietf-i2rs-architecture] describes a broker function that can be used in the topology server use case. The general concept for such a deployment would allows the following hierarchical scenario:
Broker I 2RSclient1----I2RSagent1=I2RSclient2---I2RSagent2 |-----I2RSagent3 |-----I2RSagent4 |-----I2RSagent5 Figure 3
Editor: The implications of this deployment scenario will be added to this draft. For now we have the following questions:
The authors would like to thank Wes George, Ahmed Abro, Qin Wu, Eric Yu, Alia Atlas, and Jeff Haas for their wonderful contributions to our discussion discussion.
This draft includes no request to IANA.
This is a document about security architecture beyond the consideration for I2RS. Additional security definitions will be added in this section.
[I-D.clarke-i2rs-traceability] | Clarke, J., Salgueiro, G. and C. Pignataro, "Interface to the Routing System (I2RS) Traceability: Framework and Information Model", Internet-Draft draft-clarke-i2rs-traceability-02, June 2014. |
[I-D.hares-i2rs-info-model-policy] | Hares, S. and W. Wu, "An Information Model for Network policy", Internet-Draft draft-hares-i2rs-info-model-policy-01, February 2014. |
[I-D.ietf-i2rs-architecture] | Atlas, A., Halpern, J., Hares, S., Ward, D. and T. Nadeau, "An Architecture for the Interface to the Routing System", Internet-Draft draft-ietf-i2rs-architecture-00, August 2013. |
[I-D.ietf-i2rs-problem-statement] | Atlas, A., Nadeau, T. and D. Ward, "Interface to the Routing System Problem Statement", Internet-Draft draft-ietf-i2rs-problem-statement-00, August 2013. |
[I-D.ietf-i2rs-rib-info-model] | Bahadur, N., Folkes, R., Kini, S. and J. Medved, "Routing Information Base Info Model", Internet-Draft draft-ietf-i2rs-rib-info-model-01, October 2013. |
[I-D.ji-i2rs-usecases-ccne-service] | Ji, X., Zhuang, S. and T. Huang, "I2RS Use Cases for Control of Forwarding Path by Central Control Network Element (CCNE)", Internet-Draft draft-ji-i2rs-usecases-ccne-service-00, October 2013. |
[I-D.keyupate-i2rs-bgp-usecases] | Patel, K., Fernando, R., Gredler, H., Amante, S., White, R. and S. Hares, "Use Cases for an Interface to BGP Protocol", Internet-Draft draft-keyupate-i2rs-bgp-usecases-01, February 2014. |
[I-D.white-i2rs-use-case] | White, R., Hares, S. and R. Fernando, "Use Cases for an Interface to the Routing System", Internet-Draft draft-white-i2rs-use-case-00, February 2013. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC4785] | Blumenthal, U. and P. Goel, "Pre-Shared Key (PSK) Ciphersuites with NULL Encryption for Transport Layer Security (TLS)", RFC 4785, January 2007. |
[RFC4949] | Shirey, R., "Internet Security Glossary, Version 2", RFC 4949, August 2007. |
[RFC4960] | Stewart, R., "Stream Control Transmission Protocol", RFC 4960, September 2007. |