draft-ietf-secevent-http-push-10.txt   draft-ietf-secevent-http-push-11.txt 
Security Events Working Group A. Backman, Ed. Security Events Working Group A. Backman, Ed.
Internet-Draft Amazon Internet-Draft Amazon
Intended status: Standards Track M. Jones, Ed. Intended status: Standards Track M. Jones, Ed.
Expires: October 29, 2020 Microsoft Expires: December 6, 2020 Microsoft
M. Scurtescu M. Scurtescu
Coinbase Coinbase
M. Ansari M. Ansari
Cisco Cisco
A. Nadalin A. Nadalin
Microsoft Microsoft
April 27, 2020 June 4, 2020
Push-Based Security Event Token (SET) Delivery Using HTTP Push-Based Security Event Token (SET) Delivery Using HTTP
draft-ietf-secevent-http-push-10 draft-ietf-secevent-http-push-11
Abstract Abstract
This specification defines how a Security Event Token (SET) may be This specification defines how a Security Event Token (SET) may be
delivered to an intended recipient using HTTP POST. The SET is delivered to an intended recipient using HTTP POST. The SET is
transmitted in the body of an HTTP POST request to an endpoint transmitted in the body of an HTTP POST request to an endpoint
operated by the recipient, and the recipient indicates successful or operated by the recipient, and the recipient indicates successful or
failed transmission via the HTTP response. failed transmission via the HTTP response.
Status of This Memo Status of This Memo
skipping to change at page 1, line 41 skipping to change at page 1, line 41
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 October 29, 2020. This Internet-Draft will expire on December 6, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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
skipping to change at page 2, line 27 skipping to change at page 2, line 27
2. SET Delivery . . . . . . . . . . . . . . . . . . . . . . . . 3 2. SET Delivery . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Transmitting a SET . . . . . . . . . . . . . . . . . . . 5 2.1. Transmitting a SET . . . . . . . . . . . . . . . . . . . 5
2.2. Success Response . . . . . . . . . . . . . . . . . . . . 5 2.2. Success Response . . . . . . . . . . . . . . . . . . . . 5
2.3. Failure Response . . . . . . . . . . . . . . . . . . . . 6 2.3. Failure Response . . . . . . . . . . . . . . . . . . . . 6
2.4. Security Event Token Delivery Error Codes . . . . . . . . 8 2.4. Security Event Token Delivery Error Codes . . . . . . . . 8
3. Authentication and Authorization . . . . . . . . . . . . . . 8 3. Authentication and Authorization . . . . . . . . . . . . . . 8
4. Delivery Reliability . . . . . . . . . . . . . . . . . . . . 9 4. Delivery Reliability . . . . . . . . . . . . . . . . . . . . 9
5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9
5.1. Authentication Using Signed SETs . . . . . . . . . . . . 9 5.1. Authentication Using Signed SETs . . . . . . . . . . . . 9
5.2. HTTP Considerations . . . . . . . . . . . . . . . . . . . 9 5.2. HTTP Considerations . . . . . . . . . . . . . . . . . . . 9
5.3. Confidentiality of SETs . . . . . . . . . . . . . . . . . 10 5.3. Confidentiality of SETs . . . . . . . . . . . . . . . . . 9
5.4. Denial of Service . . . . . . . . . . . . . . . . . . . . 10 5.4. Denial of Service . . . . . . . . . . . . . . . . . . . . 10
5.5. Authenticating Persisted SETs . . . . . . . . . . . . . . 10 5.5. Authenticating Persisted SETs . . . . . . . . . . . . . . 10
6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 10 6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 10
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
7.1. Security Event Token Delivery Error Codes . . . . . . . . 11 7.1. Security Event Token Delivery Error Codes . . . . . . . . 11
7.1.1. Registration Template . . . . . . . . . . . . . . . . 11 7.1.1. Registration Template . . . . . . . . . . . . . . . . 11
7.1.2. Initial Registry Contents . . . . . . . . . . . . . . 12 7.1.2. Initial Registry Contents . . . . . . . . . . . . . . 12
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1. Normative References . . . . . . . . . . . . . . . . . . 12 8.1. Normative References . . . . . . . . . . . . . . . . . . 12
8.2. Informative References . . . . . . . . . . . . . . . . . 14 8.2. Informative References . . . . . . . . . . . . . . . . . 14
skipping to change at page 4, line 43 skipping to change at page 4, line 43
The SET Recipient SHOULD ensure that the SET is persisted in a way The SET Recipient SHOULD ensure that the SET is persisted in a way
that is sufficient to meet the SET Recipient's own reliability that is sufficient to meet the SET Recipient's own reliability
requirements, and MUST NOT expect or depend on a SET Transmitter to requirements, and MUST NOT expect or depend on a SET Transmitter to
re-transmit or otherwise make available to the SET Recipient a SET re-transmit or otherwise make available to the SET Recipient a SET
once the SET Recipient acknowledges that it was received once the SET Recipient acknowledges that it was received
successfully. successfully.
Once the SET has been validated and persisted, the SET Recipient Once the SET has been validated and persisted, the SET Recipient
SHOULD immediately return a response indicating that the SET was SHOULD immediately return a response indicating that the SET was
successfully delivered. The SET Recipient SHOULD NOT perform successfully delivered. The SET Recipient SHOULD NOT perform
extensive business logic that processes the event expressed by the anything beyond the required validation steps prior to sending this
SET prior to sending this response. Such logic SHOULD be executed response. Any additional steps SHOULD be executed asynchronously
asynchronously from delivery, in order to minimize the expense and from delivery, in order to minimize the expense and impact of SET
impact of SET delivery on the SET Transmitter. delivery on the SET Transmitter.
The SET Transmitter MAY re-transmit a SET if the responses from The SET Transmitter MAY re-transmit a SET if the responses from
previous transmissions timed out or indicated potentially recoverable previous transmissions timed out or indicated potentially recoverable
error (such as server unavailability that may be transient). In all error (such as server unavailability that may be transient). In all
other cases, the SET Transmitter SHOULD NOT re-transmit a SET. The other cases, the SET Transmitter SHOULD NOT re-transmit a SET. The
SET Transmitter SHOULD delay retransmission for an appropriate amount SET Transmitter SHOULD delay retransmission for an appropriate amount
of time to avoid overwhelming the SET Recipient (see Section 4). of time to avoid overwhelming the SET Recipient (see Section 4).
2.1. Transmitting a SET 2.1. Transmitting a SET
skipping to change at page 7, line 30 skipping to change at page 7, line 30
The following is an example non-normative error response indicating The following is an example non-normative error response indicating
that the access token included in the request is expired. that the access token included in the request is expired.
HTTP/1.1 400 Bad Request HTTP/1.1 400 Bad Request
Content-Language: en-US Content-Language: en-US
Content-Type: application/json Content-Type: application/json
{ {
"err": "authentication_failed", "err": "authentication_failed",
"description": "Access token is expired." "description": "Access token has expired."
} }
Figure 4: Example Error Response (authentication_failed) Figure 4: Example Error Response (authentication_failed)
The following is an example non-normative error response indicating The following is an example non-normative error response indicating
that the SET Receiver is not willing to accept SETs issued by the that the SET Receiver is not willing to accept SETs issued by the
specified issuer from this particular SET Transmitter. specified issuer from this particular SET Transmitter.
HTTP/1.1 400 Bad Request HTTP/1.1 400 Bad Request
Content-Language: en-US Content-Language: en-US
skipping to change at page 8, line 21 skipping to change at page 8, line 21
Error Codes" registry established by Section 7.1. Error Codes" registry established by Section 7.1.
The following table presents the initial set of Error Codes that are The following table presents the initial set of Error Codes that are
registered in the IANA "Security Event Token Delivery Error Codes" registered in the IANA "Security Event Token Delivery Error Codes"
registry: registry:
+-----------------------+-------------------------------------------+ +-----------------------+-------------------------------------------+
| Error Code | Description | | Error Code | Description |
+-----------------------+-------------------------------------------+ +-----------------------+-------------------------------------------+
| invalid_request | The request body cannot be parsed as a | | invalid_request | The request body cannot be parsed as a |
| | SET, or the Event | | | SET, or the Event Payload within the SET |
| | Payload within the SET does not conform | | | does not conform to the event's |
| | to the event's definition. | | | definition. |
| invalid_key | One or more keys used to encrypt or sign | | invalid_key | One or more keys used to encrypt or sign |
| | the SET is | | | the SET is invalid or otherwise |
| | invalid or otherwise unacceptable to the | | | unacceptable to the SET Recipient. (e.g., |
| | SET Recipient. (e.g., expired, | | | expired, revoked, failed certificate |
| | revoked, failed certificate validation, | | | validation, etc.) |
| | etc.) |
| authentication_failed | The SET Recipient could not authenticate | | authentication_failed | The SET Recipient could not authenticate |
| | the SET | | | the SET Transmitter. |
| | Transmitter. |
| access_denied | The SET Transmitter is not authorized to | | access_denied | The SET Transmitter is not authorized to |
| | transmit the SET | | | transmit the SET to the SET Recipient. |
| | to the SET Recipient. |
+-----------------------+-------------------------------------------+ +-----------------------+-------------------------------------------+
Table 1: SET Delivery Error Codes Table 1: SET Delivery Error Codes
Implementations SHOULD expect that other Error Codes MAY also be Implementations SHOULD expect that other Error Codes may also be
received, as the set of Error Codes is extensible via the IANA received, as the set of Error Codes is extensible via the IANA
"Security Event Token Delivery Error Codes" registry established in "Security Event Token Delivery Error Codes" registry established in
Section 7.1. Section 7.1.
3. Authentication and Authorization 3. Authentication and Authorization
The SET delivery method described in this specification is based upon The SET delivery method described in this specification is based upon
HTTP and HTTP over TLS [RFC2818] and/or standard HTTP authentication HTTP and HTTP over TLS [RFC2818] and/or standard HTTP authentication
and authorization schemes, as per [RFC7235]. The TLS server and authorization schemes, as per [RFC7235]. The TLS server
certificate MUST be validated, per [RFC6125]. certificate MUST be validated, per [RFC6125].
skipping to change at page 9, line 36 skipping to change at page 9, line 32
Implementers SHOULD evaluate the reliability requirements of their Implementers SHOULD evaluate the reliability requirements of their
use cases and the impact of various retry mechanisms on the use cases and the impact of various retry mechanisms on the
performance of their systems to determine an appropriate strategy for performance of their systems to determine an appropriate strategy for
handling various error conditions. handling various error conditions.
5. Security Considerations 5. Security Considerations
5.1. Authentication Using Signed SETs 5.1. Authentication Using Signed SETs
In scenarios where HTTP authorization or TLS mutual authentication JWS signed SETs can be used (see [RFC7515] and Section 5 of
are not used or are considered weak, JWS signed SETs SHOULD be used [RFC8417]) to enable the SET Recipient to validate that the SET
(see [RFC7515] and Section 5 of [RFC8417]). This enables the SET Issuer is authorized to provide actionable SETs.
Recipient to validate that the SET Transmitter is authorized to
deliver the SET.
5.2. HTTP Considerations 5.2. HTTP Considerations
SET delivery depends on the use of Hypertext Transfer Protocol and is SET delivery depends on the use of Hypertext Transfer Protocol and is
thus subject to the security considerations of HTTP Section 9 of thus subject to the security considerations of HTTP Section 9 of
[RFC7230] and its related specifications. [RFC7230] and its related specifications.
As stated in Section 2.7.1 of [RFC7230], an HTTP requestor MUST NOT
generate the "userinfo" (i.e., username and password) component (and
its "@" delimiter) when an "http" URI reference is generated with a
message, as they are now disallowed in HTTP.
5.3. Confidentiality of SETs 5.3. Confidentiality of SETs
SETs may contain sensitive information that is considered Personally SETs may contain sensitive information that is considered Personally
Identifiable Information (PII). In such cases, SET Transmitters and Identifiable Information (PII). In such cases, SET Transmitters and
SET Recipients MUST protect the confidentiality of the SET contents SET Recipients MUST protect the confidentiality of the SET contents
by encrypting the SET as described in JWE [RFC7516], using a by encrypting the SET as described in JWE [RFC7516], using a
transport-layer security mechanism such as TLS, or both. If an Event transport-layer security mechanism such as TLS, or both. If an Event
delivery endpoint supports TLS, it MUST support at least TLS version delivery endpoint supports TLS, it MUST support at least TLS version
1.2 [RFC5246] and SHOULD support the newest version of TLS that meets 1.2 [RFC5246] and SHOULD support the newest version of TLS that meets
its security requirements, which as of the time of this publication its security requirements, which as of the time of this publication
skipping to change at page 10, line 28 skipping to change at page 10, line 17
Recipient's server certificate against is out of scope for this Recipient's server certificate against is out of scope for this
document. Implementation security considerations for TLS can be document. Implementation security considerations for TLS can be
found in "Recommendations for Secure Use of TLS and DTLS" [RFC7525]. found in "Recommendations for Secure Use of TLS and DTLS" [RFC7525].
5.4. Denial of Service 5.4. Denial of Service
The SET Recipient may be vulnerable to a denial-of-service attack The SET Recipient may be vulnerable to a denial-of-service attack
where a malicious party makes a high volume of requests containing where a malicious party makes a high volume of requests containing
invalid SETs, causing the endpoint to expend significant resources on invalid SETs, causing the endpoint to expend significant resources on
cryptographic operations that are bound to fail. This may be cryptographic operations that are bound to fail. This may be
mitigated by authenticating SET Transmitters with a mechanism with mitigated by authenticating SET Transmitters with a mechanism such as
low runtime overhead, such as mutual TLS. mutual TLS.
5.5. Authenticating Persisted SETs 5.5. Authenticating Persisted SETs
At the time of receipt, the SET Recipient can rely upon transport At the time of receipt, the SET Recipient can rely upon transport
layer mechanisms, HTTP authentication methods, and/or other context layer mechanisms, HTTP authentication methods, and/or other context
from the transmission request to authenticate the SET Transmitter and from the transmission request to authenticate the SET Transmitter and
validate the authenticity of the SET. However, this context is validate the authenticity of the SET. However, this context is
typically unavailable to systems that the SET Recipient forwards the typically unavailable to systems that the SET Recipient forwards the
SET onto, or to systems that retrieve the SET from storage. If the SET onto, or to systems that retrieve the SET from storage. If the
SET Recipient requires the ability to validate SET authenticity SET Recipient requires the ability to validate SET authenticity
outside of the context of the transmission request, then the SET outside of the context of the transmission request, then the SET
Recipient SHOULD ensure that such SETs have been signed in accordance Recipient SHOULD ensure that such SETs have been signed in accordance
with [RFC7515]. with [RFC7515].
6. Privacy Considerations 6. Privacy Considerations
SET Transmistters SHOULD attempt to deliver SETs that are targeted to SET Transmitters SHOULD attempt to deliver SETs that are targeted to
the specific business and protocol needs of subscribers. the specific business and protocol needs of subscribers.
When sharing personally identifiable information or information that When sharing personally identifiable information or information that
is otherwise considered confidential to affected users, SET is otherwise considered confidential to affected users, SET
Transmitters and Recipients MUST have the appropriate legal Transmitters and Recipients MUST have the appropriate legal
agreements and user consent or terms of service in place. agreements and user consent or terms of service in place.
Furthermore, data that needs confidentiality protection MUST be Furthermore, data that needs confidentiality protection MUST be
encrypted, either via TLS or using JSON Web Encryption (JWE) encrypted, either via TLS or using JSON Web Encryption (JWE)
[RFC7516], or both. [RFC7516], or both.
In some cases, subject identifiers themselves may be considered In some cases, subject identifiers themselves may be considered
sensitive information, such that their inclusion within a SET may be sensitive information, such that their inclusion within a SET may be
considered a violation of privacy. SET Transmitters should consider considered a violation of privacy. SET Issuers should consider the
the ramifications of sharing a particular subject identifier with a ramifications of sharing a particular subject identifier with a SET
SET Recipient (e.g., whether doing so could enable correlation and/or Recipient (e.g., whether doing so could enable correlation and/or de-
de-anonymization of data) and choose appropriate subject identifiers anonymization of data) and choose appropriate subject identifiers for
for their use cases. their use cases.
If SETs are transmitted over unencrypted channels, some privacy-
sensitive information about them might leak, even though the SETs
themselves are encrypted. For instance, an attacker may be able to
determine whether or not a SET was accepted and the reason for its
rejection or may be able to derive information from being able to
observe the size of the encrypted SET.
7. IANA Considerations 7. IANA Considerations
7.1. Security Event Token Delivery Error Codes 7.1. Security Event Token Delivery Error Codes
This document defines Security Event Token Delivery Error Codes, for This document defines Security Event Token Delivery Error Codes, for
which IANA is asked to create and maintain a new registry titled which IANA is asked to create and maintain a new registry titled
"Security Event Token Delivery Error Codes". Initial values for the "Security Event Token Delivery Error Codes". Initial values for the
Security Event Token Delivery Error Codes registry are defined in Security Event Token Delivery Error Codes registry are defined in
Table 1 and registered below. Future assignments are to be made Table 1 and registered below. Future assignments are to be made
skipping to change at page 16, line 21 skipping to change at page 16, line 21
o Subscriber Overview - https://cloud.google.com/pubsub/docs/ o Subscriber Overview - https://cloud.google.com/pubsub/docs/
subscriber subscriber
o Subscriber Pull(poll) - https://cloud.google.com/pubsub/docs/pull o Subscriber Pull(poll) - https://cloud.google.com/pubsub/docs/pull
Appendix B. Acknowledgments Appendix B. Acknowledgments
The editors would like to thank the members of the SCIM working The editors would like to thank the members of the SCIM working
group, which began discussions of provisioning events starting with group, which began discussions of provisioning events starting with
draft-hunt-scim-notify-00 in 2015. draft-hunt-scim-notify-00 in 2015. We would like to thank Phil Hunt
and the other authors of draft-ietf-secevent-delivery-02, upon which
The editors would like to thank Phil Hunt and the other authors of this specification is based. We would like to thank the participants
draft-ietf-secevent-delivery-02, on which this draft is based. in the SecEvents working group for their contributions to this
specification.
The editors would like to thank the participants in the SecEvents Additionally, we would like to thank the following individuals for
working group for their contributions to this specification. their reviews of the specification: Joe Clarke, Vijay Gurbani,
Benjamin Kaduk, Yaron Sheffer, and Valery Smyslov.
Appendix C. Change Log Appendix C. Change Log
[[ NOTE TO THE RFC EDITOR: This section to be removed prior to [[ NOTE TO THE RFC EDITOR: This section to be removed prior to
publication ]] publication ]]
Draft 00 - AB - Based on draft-ietf-secevent-delivery-02 with the Draft 00 - AB - Based on draft-ietf-secevent-delivery-02 with the
following changes: following changes:
o Renamed to "Push-Based SET Token Delivery Using HTTP" o Renamed to "Push-Based SET Token Delivery Using HTTP"
skipping to change at page 20, line 47 skipping to change at page 20, line 50
Draft 08 - mbj Draft 08 - mbj
o Addressed area director review comments by Benjamin Kaduk. o Addressed area director review comments by Benjamin Kaduk.
Draft 09 - mbj + AB Draft 09 - mbj + AB
o Corrected editorial nits. o Corrected editorial nits.
Draft 10 - AB Draft 10 - AB
o Addressed area director review comments by Benamin Kaduk: o Addressed area director review comments by Benjamin Kaduk:
* Added reference to 8417 as definition document for SETs. * Added reference to 8417 as definition document for SETs.
* Added text clarifying that determining the SET Recipient's * Added text clarifying that determining the SET Recipient's
service identity is out of scope. service identity is out of scope.
* Added normative recommendation for transmitters to target SETs * Added normative recommendation for transmitters to target SETs
to specific business needs of subscribers. to specific business needs of subscribers.
* Minor editorial corrections. * Minor editorial corrections.
Draft 11 - mbj
o Addressed SecDir review comments by Valery Smyslov.
o Addressed OpsDir review comments by Joe Clarke.
o Addressed GenArt review comments by Vijay Gurbani.
Authors' Addresses Authors' Addresses
Annabelle Backman (editor) Annabelle Backman (editor)
Amazon Amazon
Email: richanna@amazon.com Email: richanna@amazon.com
Michael B. Jones (editor) Michael B. Jones (editor)
Microsoft Microsoft
 End of changes. 22 change blocks. 
49 lines changed or deleted 55 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/