Internet DRAFT - draft-gerdes-ace-dcaf-sitr
draft-gerdes-ace-dcaf-sitr
ACE Working Group S. Gerdes
Internet-Draft Universitaet Bremen TZI
Intended status: Standards Track October 19, 2015
Expires: April 21, 2016
Server-Initiated Ticket Request
draft-gerdes-ace-dcaf-sitr-00
Abstract
The Delegated CoAP Authorization Framework (DCAF) defines how
constrained devices can securely obtain security associations and
authorization information from their respective less constrained
devices, the Authorization Managers. In DCAF a constrained client
requests an authorization ticket from the Server Authorization
Manager (SAM) by contacting its own Client Authorization Manager
(CAM). However, there may be cases where this approach is not
applicable, e.g., because the client is not able to reach
Authorization Managers in the Internet.
Specifically for these situations, this document defines the Server-
Initiated Ticket Request (SITR) that specifies how a constrained
server can request authorization tokens and securely obtain security
associations and authorization information for mutual authenticated
authorization with the client.
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 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 21, 2016.
Gerdes Expires April 21, 2016 [Page 1]
Internet-Draft ace-sitr October 2015
Copyright Notice
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2
2. Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. CAM Information Message . . . . . . . . . . . . . . . . . 4
2.3. Server-Initiated Access Request Message . . . . . . . . . 5
2.4. Server-Initiated Ticket Request Message . . . . . . . . . 5
2.5. SI Ticket Grant Message . . . . . . . . . . . . . . . . . 6
2.6. SI Ticket Transfer Message . . . . . . . . . . . . . . . 7
2.7. CAM Information Response . . . . . . . . . . . . . . . . 7
3. Payload Format . . . . . . . . . . . . . . . . . . . . . . . 8
4. Content Types . . . . . . . . . . . . . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . 8
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. Normative References . . . . . . . . . . . . . . . . . . 9
8.2. Informative References . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction
See abstract.
1.1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Gerdes Expires April 21, 2016 [Page 2]
Internet-Draft ace-sitr October 2015
Readers are required to be familiar with the terms and concepts
defined in [I-D.ietf-ace-actors] and [I-D.gerdes-ace-dcaf-authorize].
2. Protocol
2.1. Overview
The figure Figure 1 depicts the Sitr protocol flow:
CAM C S SAM
| | CAM Info. ----> | |
| | | |
| | | SI Acc. Req. --> |
| | | |
| | | |
| <=== (CAM/SAM Mutual Authentication and Authorization) ====> |
| | | |
| <--------------------------------------------- SIT Request |
| | | |
| SIT Grant -----------------------------------------------> |
| | | |
| | | <----- SIT Transf. |
| | | |
| | <-- CAM Inf. Resp. | |
| | | |
| | <= Authn Authz => | |
| | Auth. Res. Req. -> | |
Figure 1: Protocol Overview
The authorization flow will then look as follows: C will send a CAM
info message (maybe after first sending an unauthorized request to S
that is denied) that contains its CAM address together with the
request to this URI.
S will send a Server Initiated (SI) Access Request to SAM which
includes the request and URI. SAM will contact CAM and determine if
CAM has the respective permissions. The details of the communication
between CAM and SAM are not in scope for this document, but CAM and
SAM will mutually authenticate each other and then initiate a secure
communication. Then SAM sends a SIT Request to CAM which contains
the information from the Resource Request.
CAM checks if SAM is authorized according to COP's authorization
policies (mutual authorization). If this is the case, CAM creates a
SI ticket. The ticket contains keying material for the secure
communication between C and S and, if necessary, authorization
Gerdes Expires April 21, 2016 [Page 3]
Internet-Draft ace-sitr October 2015
information that reflect COP's security policies for C. CAM sends
this ticket to SAM, SAM includes server authorization information to
the SI ticket if necessary and sends the ticket to S. S keeps one
part of the ticket and sends the other part to C as a reply to C's
CAM Information message. With their respective part of the ticket, C
and S can communicate securely.
2.2. CAM Information Message
C sends a CAM Information message to S to stimulate S to request a
ticket for C. The message is constructed as follows:
1. The request method is FETCH (see [I-D.bormann-core-coap-fetch]).
2. The request URI is set to the URI of the requested resource.
3. The message payload contains a data structure that describes the
action and resource for which C requests an access ticket as well
as the CAM URI.
The data structure in the payload MUST contain:
1. The contact information for the CAM to use: a URI that specifies
the CAM in charge of C.
2. A URI of the resource that C wants to access.
3. The actions that C wants to perform on the resource.
Figure 2 shows an example for a CAM Information message. (Refer to
Section 3 for a detailed description of the available attributes and
their semantics.)
FETCH /s/tempC
Content-Format: application/dcaf+cbor
{
CAM: "coaps://sam.example.com/authorize",
SAI: ["coaps://temp451.example.com/s/tempC", 5],
TS: 168537
}
Figure 2: CAM Info Message Example
Note: if used with object security, the FETCH request contains CBOR
encoded message syntax structure (COSE), that conveys the
application/dcaf+cbor payload.
Gerdes Expires April 21, 2016 [Page 4]
Internet-Draft ace-sitr October 2015
The example shows a CAM information message payload for the resource
"/s/tempC" on the Server "temp451.example.com". Requested operations
in attribute SAI are GET and PUT.
The response to a CAM Information message is delivered by S back to C
in a CAM Information Response message.
2.3. Server-Initiated Access Request Message
A server that receives a CAM Information message MAY use the
information in the payload of the message to request a Server-
Initiated (SI) Ticket for C. To do so, it contacts its own SAM. The
SI Access Request is constructed as follows:
1. The request method is POST.
2. The request URI is set as described below.
3. The message payload contains a data structure that describes the
action and resource for which C requests an access ticket as well
as the CAM URI.
The request URI identifies a resource at SAM for handling
authorization requests from C. The URI SHOULD be announced by SAM in
its resource directory as described in section 9 of
[I-D.gerdes-ace-dcaf-authorize].
The message payload is constructed from the information that C has
sent in its CAM Information message (see Section 2.2). The request
MUST contain the attributes described in Section 2.2.
2.4. Server-Initiated Ticket Request Message
When SAM receives a Server-Initiated Access Request message from S
and ROP specified authorization policies for S, SAM MUST check if the
requested actions are allowed according to these policies. If all
requested actions are forbidden, SAM MUST send a 4.03 response.
If no authorization policies were specified or some or all of the
requested actions are allowed according to the authorization
policies, SAM either returns a cached response or attempts to create
a SI Ticket Request message. The SI Ticket Request message MAY
contain all actions requested by C since SAM will add SAI in the
Ticket Transfer Message if ROP specified authorization policies (see
Section 2.6).
Gerdes Expires April 21, 2016 [Page 5]
Internet-Draft ace-sitr October 2015
SAM MAY return a cached response if it is known to be fresh according
to Max-Age. SAM SHOULD NOT return a cached response if it expires in
less than a minute.
If CAM does not send a cached response, it checks the content type of
the request payload and validates that the payload contains at least
the fields CAM and SAI. SAM MUST respond with 4.00 (Bad Request) if
the type does not belong to the allowed content-types and if any of
these fields is missing or does not conform to the format described
in Section 3.
If the payload is correct, SAM creates a SIT Request message from the
SI Access Request received from S as follows:
1. The destination of the Ticket Request message is derived from the
"CAM" field that is specified in the Access Request message
payload (for example, if the SI Access Request contained 'CAM:
"coaps://cam.example.com/authz"', the destination of the Ticket
Request message is cam.example.com).
2. The request method is POST.
3. The request URI is constructed from the CAM field received in the
Access Request message payload.
4. The payload is copied from the SI Access Request sent by S.
CAM and SAM MUST be able to mutually authenticate each other, e.g.
based on a public key infrastructure and MUST be able to communicate
securely.
2.5. SI Ticket Grant Message
When CAM has received a SI Ticket Request message it has to evaluate
the access request information contained therein. First, it checks
whether the request payload is of a supported content type (see
Section 4) and contains at least the fields CAM and SAI. CAM MUST
respond with 4.00 (Bad Request) for CoAP (or 400 for HTTP) if any of
these fields are missing or do not conform to the format described in
Section 3.
CAM decides whether or not access is granted to the requested
resource and then creates a SI Ticket Grant message that reflects the
result. CAM initializes the access ticket comprised of a Face and
the Client Information (CI).
The CI contains:
Gerdes Expires April 21, 2016 [Page 6]
Internet-Draft ace-sitr October 2015
o the Client authorization information (CAI)
o a nonce
CI MAY additionally contain:
o a lifetime
o a CAI identifier (for revocation)
o keying material for C (if no key derivation method is used to
generate the verifier in Face)
The Face at this point only comprises the verifier. CAM MAY generate
the verifier using the method described in section 6.2 of
[I-D.gerdes-ace-dcaf-authorize]. CAM MUST NOT include Server
Authorization information (SAI) in the ticket Face.
The CI MUST be integrity-protected on the way to C. CAM MAY
additionally protect the confidentiality of CI. If the CI contains
keying material, CAM MUST ensure the confidentiality of CI.
The confidentiality of Face MUST be ensured on the way to SAM.
The SI Ticket Grant messages is then constructed as a success
response (2.05 for CoAP, 200 for HTTP) with the ticket as content.
2.6. SI Ticket Transfer Message
The SI Ticket Transfer message is the response to the SI access
request and delivers the ticket to S.
The CAI provided by CAM in the SI Ticket Grant message provide only
the client-side permissions. If ROP defined access permissions for
S, SAM MUST add server authorization information (SAI) to Face that
reflect those policies. SAM MUST NOT include SAI that were provided
by CAM.
SAM MUST provide for the confidentiality and integrity of Face when
transmitting it to S. SAM MAY encrypt the CI.
2.7. CAM Information Response
When S receives a SI Ticket Transfer message, it MUST make sure that
it contains the Face and the CI. If Face contains SAI, S MUST
validate its authenticity and integrity. S keeps the ticket Face and
sends the CI to C. S MAY transmit the answer to C's initial request
provided in the CAM Info message together with the CI.
Gerdes Expires April 21, 2016 [Page 7]
Internet-Draft ace-sitr October 2015
When C receives the CAM Information Response, it MUST validate that
the CI was generated by CAM and not modified. With the information
in the CI, C can start a secure communication with S.
C MAY establish a security context with S using the verifier provided
in the CI, e.g., by initiating a DTLS session with the verifier as
the Pre-shared Key.
3. Payload Format
SITR uses the CBOR representation defined in DCAF (see section 5 of
[I-D.gerdes-ace-dcaf-authorize]) and additionally defines a CBOR
value for CAM:
+---------------+-----+
| Encoded Value | Key |
+---------------+-----+
| 13 | CAM |
+---------------+-----+
Table 1: SITR field identifiers encoded in CBOR
4. Content Types
The supported content types are:
o "application/dcaf+cbor"
o "application/cose+cbor"
5. IANA Considerations
None
6. Security Considerations
For solutions where the server requests the ticket for the client,
most of the workload (send a message to the authorization manager,
wait for the answer, keep state in the meantime) is on the server
which makes it susceptible to DOS attacks. Therefore, as with all
solutions state based on client requests, these solutions MUST NOT be
used except in conjunction with appropriate mitigation. Where
applicable, it is recommended to use DCAF instead, where the client
has to request the ticket.
Gerdes Expires April 21, 2016 [Page 8]
Internet-Draft ace-sitr October 2015
7. Acknowledgments
The author would like to thank Bert Greevenbosch, Olaf Bergmann and
Carsten Bormann for their valuable input and feedback.
8. References
8.1. Normative References
[I-D.bormann-core-coap-fetch]
Bormann, C., "CoAP FETCH Method", draft-bormann-core-coap-
fetch-00 (work in progress), October 2015.
[I-D.gerdes-ace-dcaf-authorize]
Gerdes, S., Bergmann, O., and C. Bormann, "Delegated CoAP
Authentication and Authorization Framework (DCAF)", draft-
gerdes-ace-dcaf-authorize-03 (work in progress), September
2015.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
8.2. Informative References
[I-D.ietf-ace-actors]
Gerdes, S., Seitz, L., Selander, G., and C. Bormann, "An
architecture for authorization in constrained
environments", draft-ietf-ace-actors-02 (work in
progress), October 2015.
Author's Address
Stefanie Gerdes
Universitaet Bremen TZI
Postfach 330440
Bremen D-28359
Germany
Phone: +49-421-218-63906
Email: gerdes@tzi.org
Gerdes Expires April 21, 2016 [Page 9]