draft-ietf-stir-passport-rcd-11.txt   draft-ietf-stir-passport-rcd-12.txt 
Network Working Group C. Wendt Network Working Group C. Wendt
Internet-Draft Comcast Internet-Draft Comcast
Intended status: Standards Track J. Peterson Intended status: Standards Track J. Peterson
Expires: September 30, 2021 Neustar Inc. Expires: January 13, 2022 Neustar Inc.
March 29, 2021 July 12, 2021
PASSporT Extension for Rich Call Data PASSporT Extension for Rich Call Data
draft-ietf-stir-passport-rcd-11 draft-ietf-stir-passport-rcd-12
Abstract Abstract
This document extends PASSporT, a token for conveying This document extends PASSporT, a token for conveying
cryptographically-signed call information about personal cryptographically-signed call information about personal
communications, to include rich meta-data about a call and caller communications, to include rich meta-data about a call and caller
that can be signed and integrity protected, transmitted, and that can be signed and integrity protected, transmitted, and
subsequently rendered to users. This framework is intended to extend subsequently rendered to the intended called party. This framework
caller and call specific information beyond human-readable display is intended to include and extend caller and call specific
name comparable to the "Caller ID" function common on the telephone information beyond human-readable display name comparable to the
network. The JSON element defined for this purpose, Rich Call Data "Caller ID" function common on the telephone network. The JSON
(RCD), is an extensible object defined to either be used as part of element defined for this purpose, Rich Call Data (RCD), is an
STIR or with SIP Call-Info to include related information about calls extensible object defined to either be used as part of STIR or with
that helps people decide whether to pick up the phone. This signing SIP Call-Info to include related information about calls that helps
of the RCD information is also enhanced with a integrity mechanism people decide whether to pick up the phone. This signing of the RCD
that is designed to protect the authoring and transport of this information is also enhanced with a integrity mechanism that is
information between authoritative and non-authoritative parties designed to protect the authoring and transport of this information
generating and signing the Rich Call Data for support of different between authoritative and non-authoritative parties generating and
usage and content policies. signing the Rich Call Data for support of different usage and content
policies.
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 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 September 30, 2021. This Internet-Draft will expire on January 13, 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 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 49 skipping to change at page 2, line 49
10. Compact form of "rcd" PASSporT . . . . . . . . . . . . . . . 16 10. Compact form of "rcd" PASSporT . . . . . . . . . . . . . . . 16
10.1. Compact form of the "rcd" PASSporT claim . . . . . . . . 16 10.1. Compact form of the "rcd" PASSporT claim . . . . . . . . 16
10.2. Compact form of the "rcdi" PASSporT claim . . . . . . . 16 10.2. Compact form of the "rcdi" PASSporT claim . . . . . . . 16
10.3. Compact form of the "crn" PASSporT claim . . . . . . . . 16 10.3. Compact form of the "crn" PASSporT claim . . . . . . . . 16
11. Further Information Associated with Callers . . . . . . . . . 16 11. Further Information Associated with Callers . . . . . . . . . 16
12. Third-Party Uses . . . . . . . . . . . . . . . . . . . . . . 17 12. Third-Party Uses . . . . . . . . . . . . . . . . . . . . . . 17
12.1. Signing as a Third Party . . . . . . . . . . . . . . . . 19 12.1. Signing as a Third Party . . . . . . . . . . . . . . . . 19
13. Levels of Assurance . . . . . . . . . . . . . . . . . . . . . 19 13. Levels of Assurance . . . . . . . . . . . . . . . . . . . . . 19
14. Using "rcd" in SIP . . . . . . . . . . . . . . . . . . . . . 20 14. Using "rcd" in SIP . . . . . . . . . . . . . . . . . . . . . 20
14.1. Authentication Service Behavior . . . . . . . . . . . . 20 14.1. Authentication Service Behavior . . . . . . . . . . . . 20
14.2. Verification Service Behavior . . . . . . . . . . . . . 20 14.2. Verification Service Behavior . . . . . . . . . . . . . 21
15. Using "rcd" as additional claims to other PASSporT extensions 22 15. Using "rcd" as additional claims to other PASSporT extensions 22
15.1. Procedures for applying "rcd" as claims only . . . . . . 22 15.1. Procedures for applying "rcd" as claims only . . . . . . 22
15.2. Example for applying "rcd" as claims only . . . . . . . 22 15.2. Example for applying "rcd" as claims only . . . . . . . 23
16. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 16. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23
17. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 17. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24
17.1. JSON Web Token Claim . . . . . . . . . . . . . . . . . . 23 17.1. JSON Web Token Claim . . . . . . . . . . . . . . . . . . 24
17.2. PASSporT Types . . . . . . . . . . . . . . . . . . . . . 24 17.2. PASSporT Types . . . . . . . . . . . . . . . . . . . . . 24
17.3. PASSporT RCD Types . . . . . . . . . . . . . . . . . . . 24 17.3. PASSporT RCD Types . . . . . . . . . . . . . . . . . . . 24
18. Security Considerations . . . . . . . . . . . . . . . . . . . 24 18. Security Considerations . . . . . . . . . . . . . . . . . . . 25
18.1. The use of JWT Claim Constraints in delegate 18.1. The use of JWT Claim Constraints in delegate
certificates to exclude unauthorized Claims . . . . . . 25 certificates to exclude unauthorized claims . . . . . . 25
19. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 19. References . . . . . . . . . . . . . . . . . . . . . . . . . 25
19.1. Normative References . . . . . . . . . . . . . . . . . . 25 19.1. Normative References . . . . . . . . . . . . . . . . . . 25
19.2. Informative References . . . . . . . . . . . . . . . . . 27 19.2. Informative References . . . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27
1. Introduction 1. Introduction
PASSporT [RFC8225] is a token format based on JWT [RFC7519] for PASSporT [RFC8225] is a token format based on JWT [RFC7519] for
conveying cryptographically-signed information about the parties conveying cryptographically-signed information about the parties
involved in personal communications; it is used to convey a signed involved in personal communications; it is used to convey a signed
assertion of the identity of the participants in real-time assertion of the identity of the participants in real-time
communications established via a protocol like SIP [RFC8224]. The communications established via a protocol like SIP [RFC8224]. The
STIR problem statement [RFC7340] declared securing the display name STIR problem statement [RFC7340] declared securing the display name
of callers outside of STIR's initial scope, so baseline STIR provides of callers outside of STIR's initial scope, so baseline STIR provides
no features for caller name. This specification documents an no features for caller name. This specification documents an
optional mechanism for PASSporT and the associated STIR procedures optional mechanism for PASSporT and the associated STIR procedures
which extend PASSporT objects to protect additional elements which extend PASSporT objects to protect additional elements
conveying richer information: information that is intended to be conveying richer information: information that is intended to be
rendered to an end user to assist a called party in determining rendered to assist a called party in determining whether to accept or
whether to accept or trust incoming communications. This includes trust incoming communications. This includes the name of the person
the name of the person on one side of a communications session, the on one side of a communications session, the traditional "Caller ID"
traditional "Caller ID" of the telephone network, along with related of the telephone network, along with related display information that
display information that would be rendered to the called party during would be rendered to the called party during alerting, or potentially
alerting, or potentially used by an automaton to determine whether used by an automaton to determine whether and how to alert a called
and how to alert a called party. party.
Traditional telephone network signaling protocols have long supported Traditional telephone network signaling protocols have long supported
delivering a 'calling name' from the originating side, though in delivering a 'calling name' from the originating side, though in
practice, the terminating side is often left to derive a name from practice, the terminating side is often left to derive a name from
the calling party number by consulting a local address book or an the calling party number by consulting a local address book or an
external database. SIP similarly can carry this information in a external database. SIP similarly can carry this information in a
'display-name' in the From header field value from the originating to 'display-name' in the From header field value from the originating to
terminating side, or alternatively in the Call-Info header field. terminating side, or alternatively in the Call-Info header field.
However, both are unsecured fields that really cannot be trusted in However, both are unsecured fields that really cannot be trusted in
most interconnected SIP deployments, and therefore is a good starting most interconnected SIP deployments, and therefore is a good starting
skipping to change at page 5, line 43 skipping to change at page 5, line 43
Constraints specifically guide the verifier within the certificate Constraints specifically guide the verifier within the certificate
used to sign the PASSporT for the inclusion (or exclusion) of used to sign the PASSporT for the inclusion (or exclusion) of
specific claims and their values, so that the content intended by the specific claims and their values, so that the content intended by the
signer can be verified to be accurate. signer can be verified to be accurate.
Both of these mechanisms, integrity digests and JWT Claims Both of these mechanisms, integrity digests and JWT Claims
Constraints, can be used together or separately depending on the Constraints, can be used together or separately depending on the
intended purpose. The first category of purpose is whether the rich intended purpose. The first category of purpose is whether the rich
call data conveyed by the RCD passport is pass-by-value or passed-by- call data conveyed by the RCD passport is pass-by-value or passed-by-
reference; i.e., is the information contained in the passport claims reference; i.e., is the information contained in the passport claims
and therefor integrity protected by the passport signature, or is the and therefore integrity protected by the passport signature, or is
information contained in an external resource referenced by a URI in the information contained in an external resource referenced by a URI
the RCD PASSporT. The second category of purpose is whether the in the RCD PASSporT. The second category of purpose is whether the
signer is authoritative or has responsibility for the accuracy of the signer is authoritative or has responsibility for the accuracy of the
RCD based on the policies of the eco-system the RCD PASSporTs are RCD based on the policies of the eco-system the RCD PASSporTs are
being used. being used.
The following table provides an overview of the framework for how The following table provides an overview of the framework for how
integrity should be used with RCD. (Auth represents authoritative in integrity should be used with RCD. (Auth represents authoritative in
this table) this table)
+----------+---------------------+--------------------------------+ +----------+---------------------+--------------------------------+
| Modes | No external URIs | Includes URI refs | | Modes | No external URIs | Includes URI refs |
+----------+---------------------+--------------------------------+ +----------+---------------------+--------------------------------+
| Auth | 1: No integrity req | 2: RDC Integrity | | Auth | 1: No integrity req | 2: RDC Integrity |
+----------+---------------------+--------------------------------+ +----------+---------------------+--------------------------------+
| Non-Auth | 3: JWT Claim Const. | 4: RCD Integ./JWT Claim Const. | | Non-Auth | 3: JWT Claim Const. | 4: RCD Integ./JWT Claim Const. |
+----------+---------------------+--------------------------------+ +----------+---------------------+--------------------------------+
The first and simplest mode is exclusively for when all RCD content The first and simplest mode is exclusively for when all RCD content
is directly included as part of the claims (i.e. no external is directly included as part of the claims (i.e. no external
reference URIs are included in the content, for example, "photo" or reference URIs are included in the content) and when the signer is
"logo" properties that aren't directly encoded into the JSON of the authoritative over the content. In this mode, integrity protection
jCard) and when the signer is authoritative over the content. In is not required and the set of claims is simply protected by the
this mode, integrity protection is not required and the set of claims signature of the standard PASSporT [RFC8225] and SIP identity header
is simply protected by the signature of the standard PASSporT [RFC8224] procedures. The second mode is an extension of the first
[RFC8225] and SIP identity header [RFC8224] procedures. The second where the signer is authoritative and a "rcd" claim contents include
mode is an extension of the first where the signer is authoritative a URI identifying external resources. In this mode, an RCD Integrity
and a "rcd" claim contents include a URI identifying external or "rcdi" claim MUST be included. This integrity claim is defined
resources. In this mode, an RCD Integrity or "rcdi" claim MUST be later in this document and provides a digest of the "rcd" claim
included. This integrity claim is defined later in this document and content so that, particularly for the case where there are URI
provides a digest of the "rcd" claim content so that, particularly references in the RCD, the content of that RCD can be comprehensively
for the case where there are URI references in the RCD, the content validated that it was received as intended by the signer of the
of that RCD can be comprehensively validated that it was received as PASSporT.
intended by the signer of the PASSporT.
The third and fourth mode cover cases where there is a different The third and fourth mode cover cases where there is a different
authoritative entity responsible for the content of the RCD, separate authoritative entity responsible for the content of the RCD, separate
from the signer of the PASSporT itself, allowing the ability to have from the signer of the PASSporT itself, allowing the ability to have
forward control at the time of the creation of the certificate of the forward control at the time of the creation of the certificate of the
allowed or vetted content included in or referenced by the RCD claim allowed or vetted content included in or referenced by the RCD claim
contents. The primary framework for allowing the separation of contents. The primary framework for allowing the separation of
authority and the signing of PASSporTs by non-authorized entities is authority and the signing of PASSporTs by non-authorized entities is
detailed in [I-D.ietf-stir-cert-delegation] although other cases may detailed in [I-D.ietf-stir-cert-delegation] although other cases may
apply. As with the first and second modes, the third and fourth apply. As with the first and second modes, the third and fourth
skipping to change at page 10, line 48 skipping to change at page 10, line 48
included to avoid any possibility of substitution or insertion included to avoid any possibility of substitution or insertion
attacks that may be possible to avoid integrity detection, even attacks that may be possible to avoid integrity detection, even
though unlikely. Each URI referenced in the jCard array string MUST though unlikely. Each URI referenced in the jCard array string MUST
have a corresponding JSON pointer string key and digest value. have a corresponding JSON pointer string key and digest value.
In the case of the use of a "jcl" URI reference to an external jCard, In the case of the use of a "jcl" URI reference to an external jCard,
the procedures are similar to "jcd" with the exception and the minor the procedures are similar to "jcd" with the exception and the minor
modification to JSON pointer, where "/jcl" is used to refer to the modification to JSON pointer, where "/jcl" is used to refer to the
external jCard array string and any following numeric array indexes external jCard array string and any following numeric array indexes
added to the "jcl" (e.g. "/jcl/1/2/3") are treated as if the added to the "jcl" (e.g. "/jcl/1/2/3") are treated as if the
externally referenced jCard was part of the overall "rcd" claim JSON externally referenced jCard was directly part of the overall "rcd"
object. The following example illustrates a "jcl" version of the claim JSON object. The following example illustrates a "jcl" version
above "jcd" example. of the above "jcd" example.
"rcd": { "rcd": {
"nam": "Q Branch Spy Gadgets", "nam": "Q Branch Spy Gadgets",
"jcl": "https://example.com/qbranch.json" "jcl": "https://example.com/qbranch.json"
}, },
"rcdi": { "rcdi": {
"/jcl": "sha256-30SFLGHL40498527", "/jcl": "sha256-30SFLGHL40498527",
"/jcl/1/3/3": "sha256-12938918VNJDSNCJ", "/jcl/1/3/3": "sha256-12938918VNJDSNCJ",
"/jcl/1/4/3": "sha256-VNJDSNCJ12938918", "/jcl/1/4/3": "sha256-VNJDSNCJ12938918",
"/jcl/1/5/3": "sha256-4049852730SFLGHL" "/jcl/1/5/3": "sha256-4049852730SFLGHL"
skipping to change at page 12, line 17 skipping to change at page 12, line 17
3. For any URI referenced content, the content can either be a 3. For any URI referenced content, the content can either be a
string as in jCard JSON objects or binary content. For example, string as in jCard JSON objects or binary content. For example,
image and audio files contain binary content. If the content is image and audio files contain binary content. If the content is
binary format it should be Base64 encoded to create a string, binary format it should be Base64 encoded to create a string,
otherwise the direct string content of the file is used to create otherwise the direct string content of the file is used to create
the digest. the digest.
6.2. JWT Claim Constraint for "rcd" claims only 6.2. JWT Claim Constraint for "rcd" claims only
For the third mode described in the integrity overview section of For the third mode described in the integrity overview section of
this document, where only JWT Claim Constraint for "rcd" claims, this document, where only JWT Claim Constraint for "rcd" claims
without an "rcdi" claim, is required, the procedure should be, when without an "rcdi" claim is required, the procedure should be, when
creating the certificate to include a constraint on inclusion of the creating the certificate, to include a JWT Claim Constraint on
"rcd" claim as well as the contents of that claim. inclusion of an "rcd" claim as well as the contents of the certified
"rcd" claim.
The certificate JWT Claims Constraint MUST include the following: The certificate JWT Claims Constraint MUST include the following:
o a "mustInclude" for the "rcd" claim and a "permittedValues" equal o a "mustInclude" for the "rcd" claim and a "permittedValues" equal
to the created "rcd" claim value string. to the created "rcd" claim value string.
The "permitedValues" for the "rcd" claim may contain multiple The "permitedValues" for the "rcd" claim may optionally contain
entries, to support the case where the certificate holder is multiple entries, to support the case where the certificate holder is
authorized to use different sets of rich call data. authorized to use different sets of rich call data.
7. JWT Claim Constraint usage for "rcd" and "rcdi" claims 7. JWT Claim Constraint usage for "rcd" and "rcdi" claims
The integrity overview section of this document describes a fourth The integrity overview section of this document describes a fourth
mode where both "rcdi" and JWT Claim Constraints is used. The use of mode where both "rcdi" and JWT Claim Constraints is used. The use of
this mode implies the signing of an "rcdi" claim is required to be this mode implies the signing of an "rcdi" claim is required to be
protected by the authoritative certificate creator using JWT Claims protected by the authoritative certificate creator using JWT Claims
Constraints in the certificate. The intension of the use of both of Constraints in the certificate. The intension of the use of both of
these mechanisms is to constrain the signer to construct the "rcd" these mechanisms is to constrain the signer to construct the "rcd"
and "rcdi" claims with the "rcd" jCard object including reference and "rcdi" claims with the "rcd" jCard object including reference
external content via URI. Once both the contents of the "rcd" claim external content via URI. Once both the contents of the "rcd" claim
and any linked content is certified by the party that is and any linked content is certified by the party that is
authoritative for the certificate being created and the construction authoritative for the certificate being created and the construction
of the "rcdi" claim is complete, the "rcdi" claim is linked to the of the "rcdi" claim is complete, the "rcdi" claim is linked to the
STIR certificate associated with the signature in the PASSporT via STIR certificate associated with the signature in the PASSporT via
JWT Claim Constraints as defined in [RFC8226] Section 8. It should JWT Claim Constraints as defined in [RFC8226] Section 8. It should
be recognized that the "rcdi" set of digests is intended to be unique be recognized that the "rcdi" set of digests is intended to be unique
for only a specific combination of "rcd" content and URI referenced for only a specific combination of "rcd" content and URI referenced
external content, and therefore provides the integrity mechanism for external content, and therefore provides a robust integrity mechanism
an authentication service being performed by a non-authoritative for an authentication service being performed by a non-authoritative
party. party. This would often be associated with the use of delegate
certificates [I-D.ietf-stir-cert-delegation] for the signing of calls
by the calling party directly as an example, even though they aren't
considered an "authorized party" in the STIR certificate eco-system.
The certificate JWT Claims Constraint MUST include both of the The certificate JWT Claims Constraint MUST include both of the
following: following:
o a "mustInclude" for the "rcd" claim, which simply constrains the o a "mustInclude" for the "rcd" claim, which simply constrains the
fact that an "rcd" should be included if there is a "rcdi" fact that an "rcd" should be included if there is a "rcdi"
o a "mustInclude" for the "rcdi" claim and a "permittedValues" equal o a "mustInclude" for the "rcdi" claim and a "permittedValues" equal
to the created "rcdi" claim value string. to the created "rcdi" claim value string.
skipping to change at page 16, line 37 skipping to change at page 16, line 37
Compact form of an "rcd" PASSporT claim has some restrictions but Compact form of an "rcd" PASSporT claim has some restrictions but
mainly follows standard PASSporT compact form procedures. For re- mainly follows standard PASSporT compact form procedures. For re-
construction of the "nam" claim the string for the display-name in construction of the "nam" claim the string for the display-name in
the From header field. For re-construction of the "jcl", the Call- the From header field. For re-construction of the "jcl", the Call-
Info header as with purpose "jcard" defined in Info header as with purpose "jcard" defined in
[I-D.ietf-sipcore-callinfo-rcd] MUST be used. "jcd" claim MAY NOT be [I-D.ietf-sipcore-callinfo-rcd] MUST be used. "jcd" claim MAY NOT be
used as part of compact form. used as part of compact form.
10.2. Compact form of the "rcdi" PASSporT claim 10.2. Compact form of the "rcdi" PASSporT claim
Compact form of an "rcdi" PASSPorT claim is not supported, so if Compact form of an "rcdi" PASSporT claim is not supported, so if
"rcdi" is required compact form should not be used. "rcdi" is required compact form should not be used.
10.3. Compact form of the "crn" PASSporT claim 10.3. Compact form of the "crn" PASSporT claim
Compact form of a "crn" PASSporT claim shall be re-constructed using Compact form of a "crn" PASSporT claim shall be re-constructed using
the "call-reason" parameter of a Call-Info header as defined by the "call-reason" parameter of a Call-Info header as defined by
[I-D.ietf-sipcore-callinfo-rcd]. [I-D.ietf-sipcore-callinfo-rcd].
11. Further Information Associated with Callers 11. Further Information Associated with Callers
skipping to change at page 19, line 20 skipping to change at page 19, line 20
A third-party PASSporT contains an "iss" element to distinguish its A third-party PASSporT contains an "iss" element to distinguish its
PASSporTs from first-party PASSporTs. Third-party "rcd" PASSporTs PASSporTs from first-party PASSporTs. Third-party "rcd" PASSporTs
are signed with credentials that do not have authority over the are signed with credentials that do not have authority over the
identity that appears in the "orig" element of the PASSporT claims. identity that appears in the "orig" element of the PASSporT claims.
The presence of "iss" signifies that a different category of The presence of "iss" signifies that a different category of
credential is being used to sign a PASSporT than the [RFC8226] credential is being used to sign a PASSporT than the [RFC8226]
certificates used to sign STIR calls; it is instead a certificate certificates used to sign STIR calls; it is instead a certificate
that identifies the source of the "rcd" data. How those credentials that identifies the source of the "rcd" data. How those credentials
are issued and managed is outside the scope of this specification; are issued and managed is outside the scope of this specification;
the value of "iss" however MUST reflect the Subject Name field of the the value of "iss" however MUST reflect the Subject Name field of the
certificate used to sign a third-party PASSporT. Relying parties in certificate used to sign a third-party PASSporT. The explicit
STIR have always been left to make their own authorization decisions mechanism for reflecting the Subject Name field of the certificate is
about whether to trust the signers of PASSporTs, and in the third- out of scope of this document and left to the certificate governance
party case, where an entity has explicitly queried a service to policies that define how to map the "iss" value in the PASSporT to
acquire the PASSporT object, it may be some external trust or the Subject Name field in the certificate. Relying parties in STIR
business relationship that induces the relying party to trust a have always been left to make their own authorization decisions about
PASSporT. whether to trust the signers of PASSporTs, and in the third-party
case, where an entity has explicitly queried a service to acquire the
PASSporT object, it may be some external trust or business
relationship that induces the relying party to trust a PASSporT.
An example of a Third Party issued PASSporT claims object is as An example of a Third Party issued PASSporT claims object is as
follows. follows.
{ "orig":{"tn":"12025551000"}, { "orig":{"tn":"12025551000"},
"dest":{"tn":["12025551001"]}, "dest":{"tn":["12025551001"]},
"iat":1443208345, "iat":1443208345,
"iss":"Zorin Industries", "iss":"Zorin Industries",
"rcd":{"nam":"James St. John Smythe"} } "rcd":{"nam":"James St. John Smythe"} }
skipping to change at page 20, line 4 skipping to change at page 20, line 7
party cases, this admits of some complexity: the Communications party cases, this admits of some complexity: the Communications
Service Provider (CSP) to which a number was assigned might in turn Service Provider (CSP) to which a number was assigned might in turn
delegate the number to a reseller, who would then sell the number to delegate the number to a reseller, who would then sell the number to
an enterprise, in which case the CSP might have little insight into an enterprise, in which case the CSP might have little insight into
the caller's name. In third party cases, a caller's name could the caller's name. In third party cases, a caller's name could
derive from any number of data sources, on a spectrum between public derive from any number of data sources, on a spectrum between public
data scraped from web searches to a direct business relationship to data scraped from web searches to a direct business relationship to
the caller. As multiple PASSporTs can be associated with the same the caller. As multiple PASSporTs can be associated with the same
call, potentially a verification service could receive attestations call, potentially a verification service could receive attestations
of the caller name from multiple sources, which have different levels of the caller name from multiple sources, which have different levels
of granularity or accuracy. Therefore, PASSporTs that carry "rcd" of granularity or accuracy. Therefore, third-party PASSporTs that
data MUST also carry an indication of the relationship of the carry "rcd" data MUST also carry an indication of the relationship of
generator of the PASSporT to the caller in the form of the "iss" the generator of the PASSporT to the caller in the form of the "iss"
claim. As stated in the previous section, the use of "iss" MUST claim. As stated in the previous section, the use of "iss" MUST
reflect the Subject Name of the certificate used to sign a third- reflect the Subject Name of the certificate used to sign a third-
party PASSporT to represent that relationship. party PASSporT to represent that relationship.
14. Using "rcd" in SIP 14. Using "rcd" in SIP
This section specifies SIP-specific usage for the "rcd" claim in This section specifies SIP-specific usage for the "rcd" claim in
PASSporT, and in the SIP Identity header field value. Other using PASSporT, and in the SIP Identity header field value. Other using
protocols of PASSporT may define their own usages for the "rcd" protocols of PASSporT may define their own usages for the "rcd"
claim. claim.
skipping to change at page 20, line 30 skipping to change at page 20, line 33
An authentication service creating a PASSporT containing a "rcd" An authentication service creating a PASSporT containing a "rcd"
claim MAY include a "ppt" for "rcd" or not. Third-party claim MAY include a "ppt" for "rcd" or not. Third-party
authentication services following the behavior in Section 12.1 MUST authentication services following the behavior in Section 12.1 MUST
include a "ppt" of "rcd". If "ppt" does contain a "rcd", then any include a "ppt" of "rcd". If "ppt" does contain a "rcd", then any
SIP authentication services MUST add a "ppt" parameter to the SIP authentication services MUST add a "ppt" parameter to the
Identity header containing that PASSporT with a value of "rcd". The Identity header containing that PASSporT with a value of "rcd". The
resulting Identity header might look as follows: resulting Identity header might look as follows:
Identity: sv5CTo05KqpSmtHt3dcEiO/1CWTSZtnG3iV+1nmurLXV/HmtyNS7Ltrg9 Identity: sv5CTo05KqpSmtHt3dcEiO/1CWTSZtnG3iV+1nmurLXV/HmtyNS7Ltrg9
dlxkWzoeU7d7OV8HweTTDobV3itTmgPwCFjaEmMyEI3d7SyN21yNDo2ER/Ovgt dlxkWzoeU7d7OV8HweTTDobV3itTmgPwCFjaEmMyEI3d7SyN21yNDo2ER/Ovgt
w0Lu5csIppPqOg1uXndzHbG7mR6Rl9BnUhHufVRbp51Mn3w0gfUs=; \ w0Lu5csIppPqOg1uXndzHbG7mR6Rl9BnUhHufVRbp51Mn3w0gfUs=;
info=<https://biloxi.example.org/biloxi.cer>;alg=ES256;ppt=rcd info=<https://biloxi.example.org/biloxi.cer>;alg=ES256;
ppt="rcd"
This specification assumes that by default, a SIP authentication This specification assumes that by default, a SIP authentication
service derives the value of "rcd", specifically only for the "nam" service derives the value of "rcd", specifically only for the "nam"
key value, from the display-name component of the From header field key value, from the display-name component of the From header field
value of the request, alternatively for some calls this may come from value of the request, alternatively for some calls this may come from
the P-Asserted-ID header. It is however a matter of authentication the P-Asserted-ID header. It is however a matter of authentication
service policy to decide how it populates the value of "nam" key, service policy to decide how it populates the value of "nam" key,
which MAY also derive from other fields in the request, from customer which MAY also derive from other fields in the request, from customer
profile data, or from access to external services. If the profile data, or from access to external services. If the
authentication service generates a "rcd" claim containing "nam" with authentication service generates a "rcd" claim containing "nam" with
skipping to change at page 25, line 11 skipping to change at page 25, line 25
Since computation of "rcdi" digests for URIs requires the loading of Since computation of "rcdi" digests for URIs requires the loading of
referenced content, it would be best practice to validate that referenced content, it would be best practice to validate that
content at the creation of the "rcdi" or corresponding JWT claim content at the creation of the "rcdi" or corresponding JWT claim
constraint value by checking for content that may cause issues for constraint value by checking for content that may cause issues for
verification services or that doesn't follow the behavior defined in verification services or that doesn't follow the behavior defined in
this document, e.g. unreasonably sized data, the inclusion of this document, e.g. unreasonably sized data, the inclusion of
recursive URI references, etc. recursive URI references, etc.
18.1. The use of JWT Claim Constraints in delegate certificates to 18.1. The use of JWT Claim Constraints in delegate certificates to
exclude unauthorized Claims exclude unauthorized claims
While this can apply to any PASSporT that is signed with a STIR While this can apply to any PASSporT that is signed with a STIR
Delegate Certificates [I-D.ietf-stir-cert-delegation], it is Delegate Certificates [I-D.ietf-stir-cert-delegation], it is
important to note that when constraining PASSporTs to include important to note that when constraining PASSporTs to include
specific claims or contents of claims, it is also important to specific claims or contents of claims, it is also important to
consider potential attacks by non-authorized signers that may include consider potential attacks by non-authorized signers that may include
other potential PASSporT claims that weren't originally vetted by the other potential PASSporT claims that weren't originally vetted by the
authorized entity providing the delegate certificate. The use of JWT authorized entity providing the delegate certificate. The use of JWT
claims constraints as defined in [I-D.housley-stir-enhance-rfc8226] claims constraints as defined in [I-D.housley-stir-enhance-rfc8226]
for preventing the ability to include claims beyond the claims for preventing the ability to include claims beyond the claims
skipping to change at page 25, line 39 skipping to change at page 26, line 7
19.1. Normative References 19.1. Normative References
[I-D.housley-stir-enhance-rfc8226] [I-D.housley-stir-enhance-rfc8226]
Housley, R., "Enhanced JWT Claim Constraints for STIR Housley, R., "Enhanced JWT Claim Constraints for STIR
Certificates", draft-housley-stir-enhance-rfc8226-00 (work Certificates", draft-housley-stir-enhance-rfc8226-00 (work
in progress), January 2021. in progress), January 2021.
[I-D.ietf-sipcore-callinfo-rcd] [I-D.ietf-sipcore-callinfo-rcd]
Wendt, C. and J. Peterson, "SIP Call-Info Parameters for Wendt, C. and J. Peterson, "SIP Call-Info Parameters for
Rich Call Data", draft-ietf-sipcore-callinfo-rcd-01 (work Rich Call Data", draft-ietf-sipcore-callinfo-rcd-02 (work
in progress), November 2020. in progress), February 2021.
[I-D.ietf-stir-cert-delegation] [I-D.ietf-stir-cert-delegation]
Peterson, J., "STIR Certificate Delegation", draft-ietf- Peterson, J., "STIR Certificate Delegation", draft-ietf-
stir-cert-delegation-03 (work in progress), July 2020. stir-cert-delegation-04 (work in progress), February 2021.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
DOI 10.17487/RFC3261, June 2002, DOI 10.17487/RFC3261, June 2002,
<https://www.rfc-editor.org/info/rfc3261>. <https://www.rfc-editor.org/info/rfc3261>.
[RFC4627] Crockford, D., "The application/json Media Type for [RFC4627] Crockford, D., "The application/json Media Type for
JavaScript Object Notation (JSON)", RFC 4627, JavaScript Object Notation (JSON)", RFC 4627,
DOI 10.17487/RFC4627, July 2006, DOI 10.17487/RFC4627, July 2006,
skipping to change at page 27, line 14 skipping to change at page 27, line 29
19.2. Informative References 19.2. Informative References
[ATIS-1000074] [ATIS-1000074]
ATIS/SIP Forum NNI Task Group, "Signature-based Handling ATIS/SIP Forum NNI Task Group, "Signature-based Handling
of Asserted information using toKENs (SHAKEN) of Asserted information using toKENs (SHAKEN)
<https://access.atis.org/apps/group_public/ <https://access.atis.org/apps/group_public/
download.php/32237/ATIS-1000074.pdf>", January 2017. download.php/32237/ATIS-1000074.pdf>", January 2017.
[I-D.ietf-stir-oob] [I-D.ietf-stir-oob]
Rescorla, E. and J. Peterson, "STIR Out-of-Band Rescorla, E. and J. Peterson, "Secure Telephone Identity
Architecture and Use Cases", draft-ietf-stir-oob-07 (work Revisited (STIR) Out-of-Band Architecture and Use Cases",
in progress), March 2020. draft-ietf-stir-oob-07 (work in progress), March 2020.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
Authors' Addresses Authors' Addresses
Chris Wendt Chris Wendt
Comcast Comcast
 End of changes. 24 change blocks. 
78 lines changed or deleted 86 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/