| ACE Working Group | S. Gerdes |
| Internet-Draft | Universität Bremen TZI |
| Intended status: Informational | September 29, 2015 |
| Expires: April 1, 2016 |
Authorization-Related Tasks in Constrained Environments
draft-gerdes-ace-tasks-00
Constrained nodes are small devices which are limited in terms of processing power, memory, non-volatile storage and transmission capacity. Due to these constraints, commonly used security protocols are not easily applicable. Nevertheless, an authentication and authorization solution is needed to ensure the security of these devices.
Due to the limitations of the constrained nodes it is especially important to develop a light-weight security solution which is adjusted to the relevant security objectives of each participating party in this environment. Necessary security measures must be identified and applied where needed.
In this document, the required security related tasks are identified as guidance for the development of authentication and authorization solutions for constrained environments.
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 April 1, 2016.
Copyright (c) 2015 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.
Constrained nodes are small devices with limited abilities which in many cases are made to fulfill a single simple task. They have limited hardware resources such as processing power, memory, non-volatile storage and transmission capacity and additionally in most cases do not have user interfaces and displays. Due to these constraints, commonly used security protocols are not always easily applicable.
Constrained nodes are expected to be integrated in all aspects of everyday life and thus will be entrusted with vast amounts of data. Without appropriate security mechanisms attackers might gain control over things relevant to our lives. Authentication and authorization mechanisms are therefore prerequisites for a secure Internet of Things.
The limitations of the constrained nodes ask for security mechanisms which take the special characteristics of constrained environments into account. Therefore, it is crucial to identify the tasks which must be performed to meet the security requirements in constrained scenarios.
In this document, the required authorization-related tasks are identified as guidance for the development of authentication and authorization solutions for constrained environments.
Readers are required to be familiar with the terms and concepts defined in [RFC4949] and [I-D.ietf-ace-actors].
The scenario this document addresses can be summarized as follows:
------- -------
| C | -- requests resource ---> | S |
------- <-- provides resource--- -------
Figure 1: Basic Scenario
The security requirements of any specific version of this scenario will include one or more of:
Rq0.1 requires authorization on the server side while Rq0.2 requires authorization on the client side.
This section gives an overview of the tasks which must be performed in the given scenario (see Section 2) to meet any specific security requirements.
Either C or S or both of them are constrained. Therefore tasks which must be conducted by either C or S must be performable by constrained nodes.
This document does not assume a specific transfer protocol. We assume however, that at least the following information is exchanged between the client and the server:
The reason for the communication is that C wants S to process some information. S’ reaction to C’s access request might be processed by C. The reason for using an authorization solution is to validate that the entity that sent the information used for processing is authorized to provide it.
To validate if a sender is authorized to send a received piece of information, the receiver must determine the sender’s authorization. Correspondingly, to validate if a receiver is allowed to receive a message, the sender must determine its authorization. This can only be achieved with the help of an authentication mechanism.
Several steps must be conducted for authenticating certain attributes of an entity and validating the authenticity of an information:
Note: The attribute binding can be conducted using either symmetric or asymmetric cryptography.
Step 1 is addressed in Appendix A.2.5. After the first step is conducted, step 2 and step 3 can be performed when needed. They must be performed together and thus are examined together as well. Tasks for step 2 and 3 are Information authenticity (see Appendix A.2.1) and secure communication (see Appendix A.2.3).
Several steps must be conducted for explicit authorization:
Tasks for step 1 are defined in Appendix A.2.6. Appendix A.2.4 addresses step 2. After step 1 and step 2 are conducted, step 3 and step 4 can be performed when needed. Step 3 and step 4 must be performed together and thus are examined together. Appendix A.2.2 introduces tasks for these steps.
This section describes how the tasks defined in Appendix A are mapped to the various actors in the architecture (see also [I-D.ietf-ace-actors]). An actor consists of a set of tasks and additionally has an security domain (client domain or server domain) and a level (constrained, principal, less-constrained). Tasks are assigned to actors according to their security domain and required level.
Note: Actors are a concept to understand the security requirements for constrained devices. The architecture of an actual solution might differ as long as the security requirements that derive from the relationship between the identified actors are considered. Several actors might share a single device or even be combined in a single piece of software. Interfaces between actors may be realized as protocols or be internal to such a piece of software.
The concept of actors is used to assign the tasks defined in Appendix A to logical functional entities.
As described in the problem statement (see Section 2), either C or S or both of them may be located on a constrained node. We therefore define that C and S must be able to perform their tasks even if they are located on a constrained node. Thus, C and S are considered to be Constrained Level Actors.
C performs the following tasks:
S performs the following tasks:
R is an item of interest such as a sensor or actuator value. R is considered to be part of S and not a separate actor. The device on which S is located might contain several resources of different ROPs. For simplicity of exposition, these resources are described as if they had separate S.
As C and S do not necessarily know each other they might belong to different security domains.
------- -------
| C | -- requests resource ---> | S | Constrained Level
------- <-- provides resource--- -------
Figure 2: Constrained Level Actors
Our objective is that C and S are under control of principals in the physical world, the Client Overseeing Principal (COP) and the Resource Overseeing Principal (ROP) respectively. The principals decide about the security policies of their respective endpoints and belong to the same security domain.
COP is in charge of C, i.e. COP specifies security policies for C, e.g. with whom C is allowed to communicate. By definition, C and COP belong to the same security domain.
COP must fulfill the following task:
ROP is in charge of R and S. ROP specifies authorization policies for R and decides with whom S is allowed to communicate. By definition, R, S and ROP belong to the same security domain.
ROP must fulfill the following task:
------- -------
| COP | | ROP | Principal Level
------- -------
| |
in charge of in charge of
| |
V V
------- -------
| C | -- requests resource ---> | S | Constrained Level
------- <-- provides resource--- -------
Figure 3: Constrained Level Actors and Principal Level Actors
Constrained level actors can only fulfill a limited number of tasks and may not have network connectivity all the time. To relieve them from having to manage keys for numerous endpoints and conducting computationally intensive tasks, another complexity level for actors is introduced. An actor on the less-constrained level belongs to the same security domain as its respective constrained level actor. They also have the same principal.
The Client Authorization Server (CAM) belongs to the same security domain as C and COP. CAM acts on behalf of COP. It assists C in authenticating S and determining if S is an authorized source for R. CAM can do that because for C, CAM is the authority for claims about S.
CAM performs the following tasks:
The Authorization Server (SAM) belongs to the same security domain as R, S and ROP. SAM acts on behalf of ROP. It supports S by authenticating C and determining C’s permissions on R. SAM can do that because for S, SAM is the authority for claims about C.
SAM performs the following tasks:
------- -------
| COP | | ROP | Principal Level
------- -------
| |
in charge of in charge of
| |
V V
---------- ---------
| CAM | <- AuthN and AuthZ -> | SAM | Less-Constrained Level
---------- ---------
| |
authentication authentication
and authorization and authorization
support support
| |
V V
------- -------
| C | -- requests resource ---> | S | Constrained Level
------- <-- provides resource -- -------
Figure 4: Overview of all Complexity Levels
For more detailed graphics please consult the PDF version.
None
This document discusses authorization-related tasks for constrained environments and describes how these tasks can be mapped to actors in the architecture.
The author would like to thank Carsten Bormann, Olaf Bergmann, Robert Cragie and Klaus Hartke for their valuable input and feedback.
| [I-D.ietf-ace-actors] | Gerdes, S., Seitz, L., Selander, G. and C. Bormann, "An architecture for authorization in constrained environments", Internet-Draft draft-ietf-ace-actors-00, August 2015. |
| [RFC4949] | Shirey, R., "Internet Security Glossary, Version 2", FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007. |
This section defines the tasks which must be performed in the given scenario (see Section 2) starting from communication related tasks and then deriving the required security-related tasks. An overview of the tasks can be found in Section 3.
A task has the following structure:
Requirements have to be met while performing the task. They derive directly from the scenario (see Section 2) or from the security requirements defined for the scenario. Preconditions have to be fulfilled before conducting the task. Postconditions are the results of the completed task.
We start our analysis with the processing tasks and define which preconditions need to be fulfilled before these tasks can be conducted. We then determine which tasks therefore need to be performed first (have postconditions which match the respective preconditions).
Note: Regarding the communication, C and S are defined as entities each having their set of attributes and a verifier which is bound to these attributes. Attributes are not necessarily usable to identify an individual C or S. Several entities might have the same attributes.
The intended result of the interaction between C and S is that C has successfully accessed R. C gets to know that its access request was successful by receiving the answer from S.
The transmission of information from C to S comprises two parts: sending the information on one side and receiving and processing it on the other. Security has to be considered at each of these steps.
The purpose of the communication between C and S is C’s intent to access R. To achieve this, S must process the information about the requested access and C must process the information in the response to a requested access. The request and the response might both contain resource values.
The confidentiality and integrity of R require that only authorized entities are able to access R (see Rq0.1). Therefore, C and S must check that the information is authentic and that the source of the information is authorized to provide it, before the information can be processed. C must validate that S is an authorized source for R. S must validate that C is authorized to access R as requested.
If proxies are used, it depends on the type of proxy how they are integrated into the communication and what kind of security relationships need to be established. A future version of this document will provide more details on this topic. At this point we assume that C and S might receive the information either from S or C directly or from a proxy which is authorized to speak for the respective communication partner.
Note: The preconditions PreProcReq.2 and PreProcReq.3 must be conducted together. S must assure that the response is bound to a verifier, the verifier is bound to certain attributes and the authorization information refers to these attributes.
The information needed for processing has to be transmitted at some point. C has to transmit to S which resource it wants to access with which actions and parameters. S has to transmit to C the result of the request. The request and the response might both contain resource values. To fulfill Rq0.1, the confidentiality and integrity of the transmitted data has to be assured.
If proxies are used, it depends on the type of proxy how they need to be handled. A future version of this document will provide more details on this topic. At this point we assume that C and S might transmit the message either to S and C directly or to a proxy which is authorized to speak for the respective communication partner.
Note: The preconditions PreSendReq.1 and PreSendReq.2 must be conducted together. C must assure that the request reaches an entity with certain attributes and that the authorization information refers to these attributes.
This section addresses information authentication, i.e. using the verifier to validate the source of an information. Information authentication must be conducted before processing received information. C must validate that a response to an access request is fresh, really stems from the queried S (or an entity which is authorized to speak for S) and was not modified during transmission. S must validate that the information in the access request is fresh, really stems from C (or an entity which is authorized to speak for C) and was not modified during transmission.
The entity which processes the information must be the entity which is validating the source of the information.
C and S must assure that the authenticated source of the information is authorized to provide the information.
This section addresses the validation of the authorization of an entity. The entity which processes the information must validate that the source of the information is authorized to provide it. The processing entity has to verify that the source of the information has certain attributes which authorize it to provide the information: C must validate that S (or the entity which speaks for S) is in possession of attributes which are necessary for being an authorized source for R. S must validate that C (or the entity which speaks for C) has attributes which are necessary for a permission to access R as requested.
To ensure the confidentiality and integrity of information during transmission means for secure communication have to be negotiated between the communicating parties.
As described in Section 3.4, the authorization of an entity requires several steps. The authorization information must be configured by the principal and provided to the enforcing entity.
As described in Section 3.3, several steps must be conducted for authentication. This section addresses the binding of attributes to a verifier.
For authentication it is necessary to validate if an entity has certain attributes. An example for such an attribute in the physical world is the name of a person or her age. In constrained environments, attributes might be the name of the owner or the type of device. Authorizations are bound to such attributes.
The possession of attributes must be verifiable. For that purpose, attributes must be bound to a verifier. An example for a verifier in the physical world is a passport. In constrained environments, a verifier will likely be the knowledge of a secret.
At some point, an authority has to check if an entity in possession of the verifier really possesses the claimed attributes. In the physical world, government agencies check your name and age before they give you a passport.
The entity that validates the claims has to provide some kind of seal to make its endorsement verifiable for other entities and thus bind the attributes to the verifier. In the physical world passports are stamped by the issuing government agencies (and must only be provided by government agencies anyway).
As stated in Section 3.4, several steps have to be conducted for authorization. This section is about the configuration of authorization information.
The principal of an endpoint or resource wants to be in control of her device and her data. For that purpose, she has to configure authorization information. COP might want to configure which attributes an entity must have to be allowed to represent R. ROP might want to configure which attributes are required for accessing R with a certain action.