draft-ietf-stir-passport-rcd-02.txt   draft-ietf-stir-passport-rcd-03.txt 
Network Working Group J. Peterson Network Working Group J. Peterson
Internet-Draft Neustar Inc. Internet-Draft Neustar Inc.
Intended status: Standards Track C. Wendt Intended status: Standards Track C. Wendt
Expires: August 22, 2019 Comcast Expires: September 12, 2019 Comcast
February 18, 2019 March 11, 2019
PASSporT Extension for Rich Call Data PASSporT Extension for Rich Call Data
draft-ietf-stir-passport-rcd-02 draft-ietf-stir-passport-rcd-03
Abstract Abstract
This document extends PASSporT, a token for conveying This document extends PASSporT, a token for conveying
cryptographically-signed information about personal communications, cryptographically-signed information about personal communications,
to include rich data that can be rendered to users, such as a human- to include rich data that can be rendered to users, such as a human-
readable display name comparable to the "Caller ID" function common readable display name comparable to the "Caller ID" function common
on the telephone network. The element defined for this purpose is on the telephone network. The element defined for this purpose is
extensible to include related information about calls that helps extensible to include related information about calls that helps
people decide whether to pick up the phone. people decide whether to pick up the phone.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
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 August 22, 2019. This Internet-Draft will expire on September 12, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. PASSporT 'rcd' Claim . . . . . . . . . . . . . . . . . . . . 3 3. PASSporT "rcd" Claim . . . . . . . . . . . . . . . . . . . . 3
3.1. 'nam' key . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. "nam" key . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. 'jcd' key . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2. "jcd" key . . . . . . . . . . . . . . . . . . . . . . . . 4
3.3. 'jcl' key . . . . . . . . . . . . . . . . . . . . . . . . 4 3.3. "jcl" key . . . . . . . . . . . . . . . . . . . . . . . . 4
3.4. 'rcd' Usage . . . . . . . . . . . . . . . . . . . . . . . 4 3.4. "rcd" Usage . . . . . . . . . . . . . . . . . . . . . . . 4
3.5. Example 'rcd' PASSporTs . . . . . . . . . . . . . . . . . 5 3.5. Example "rcd" PASSporTs . . . . . . . . . . . . . . . . . 5
4. Further Information Associated with Callers . . . . . . . . . 6 4. Further Information Associated with Callers . . . . . . . . . 6
5. Third-Party Uses . . . . . . . . . . . . . . . . . . . . . . 7 5. Third-Party Uses . . . . . . . . . . . . . . . . . . . . . . 7
5.1. Signing as a Third Party . . . . . . . . . . . . . . . . 8 5.1. Signing as a Third Party . . . . . . . . . . . . . . . . 8
6. Levels of Assurance . . . . . . . . . . . . . . . . . . . . . 9 6. Levels of Assurance . . . . . . . . . . . . . . . . . . . . . 9
7. Using 'rcd' in SIP . . . . . . . . . . . . . . . . . . . . . 9 7. Using "rcd" in SIP . . . . . . . . . . . . . . . . . . . . . 9
7.1. Authentication Service Behavior . . . . . . . . . . . . . 9 7.1. Authentication Service Behavior . . . . . . . . . . . . . 9
7.2. Verification Service Behavior . . . . . . . . . . . . . . 10 7.2. Verification Service Behavior . . . . . . . . . . . . . . 10
8. Using 'rcd' as additional claims to other PASSporT extensions 11 8. Using "rcd" as additional claims to other PASSporT extensions 11
8.1. Procedures for applying 'rcd' as claims only . . . . . . 11 8.1. Procedures for applying "rcd" as claims only . . . . . . 11
8.2. Example for applying 'rcd' as claims only . . . . . . . . 11 8.2. Example for applying "rcd" as claims only . . . . . . . . 11
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
10.1. JSON Web Token Claim . . . . . . . . . . . . . . . . . . 12 10.1. JSON Web Token Claim . . . . . . . . . . . . . . . . . . 12
10.2. PASSporT Types . . . . . . . . . . . . . . . . . . . . . 13 10.2. PASSporT Types . . . . . . . . . . . . . . . . . . . . . 13
10.3. PASSporT RCD Types . . . . . . . . . . . . . . . . . . . 13 10.3. PASSporT RCD Types . . . . . . . . . . . . . . . . . . . 13
11. Security Considerations . . . . . . . . . . . . . . . . . . . 13 11. Security Considerations . . . . . . . . . . . . . . . . . . . 13
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
12.1. Normative References . . . . . . . . . . . . . . . . . . 13 12.1. Normative References . . . . . . . . . . . . . . . . . . 13
12.2. Informative References . . . . . . . . . . . . . . . . . 14 12.2. Informative References . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
skipping to change at page 3, line 40 skipping to change at page 3, line 40
various ways that a display name for a calling party could be various ways that a display name for a calling party could be
determined at the terminating side in a secure fashion. determined at the terminating side in a secure fashion.
2. Terminology 2. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED", In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in [RFC2119] and [RFC6919]. described in [RFC2119] and [RFC6919].
3. PASSporT 'rcd' Claim 3. PASSporT "rcd" Claim
This specification defines a new JSON Web Token claim for 'rcd', Rich This specification defines a new JSON Web Token claim for "rcd", Rich
Call Data, the value of which is a JSON object that can contain one Call Data, the value of which is a JSON object that can contain one
or more key value pairs. This document defines a default set of or more key value pairs. This document defines a default set of
three key values one being mandatory, the others are optional. three key values one being mandatory, the others are optional.
3.1. 'nam' key 3.1. "nam" key
The 'nam' key value is a display name, associated with the originator The "nam" key value is a display name, associated with the originator
of personal communications, which may for example derive from the of personal communications, which may for example derive from the
display-name component of the From header field value of a SIP display-name component of the From header field value of a SIP
request, or a similar field in other PASSporT using protocols. This request, or a similar field in other PASSporT using protocols. This
key is mandatory and MUST be included as as part of the 'rcd' claim key MUST be included once and MUST be included as as part of the
value JSON object. "rcd" claim value JSON object. If there is no string associated with
a display name, the claim value SHOULD then be an empty string.
3.2. 'jcd' key 3.2. "jcd" key
The 'jcd' key value is defined to contain a value of a jCard The "jcd" key value is defined to contain a value of a jCard
[RFC7095] JSON object. This jCard object is intended to be an [RFC7095] JSON object. This jCard object is intended to be an
extensible object that the calling party of personal communications extensible object that the calling party of personal communications
can provide both the types of information defined in jCard or can use can provide both the types of information defined in jCard or can use
the built in extensibility of the jCard specification to add the built in extensibility of the jCard specification to add
additional information. The 'jcd' is optional. If included, this additional information. The "jcd" is optional. If included, this
key MUST only be included once in the 'rcd' JSON object and SHOULD key MUST only be included once in the "rcd" JSON object and SHOULD
NOT be included if there is a 'jcl' key included. The 'jcd' and NOT be included if there is a "jcl" key included. The "jcd" and
'jcl' keys should be mutually exclusive. "jcl" keys should be mutually exclusive.
3.3. 'jcl' key 3.3. "jcl" key
The 'jcl' key value is defined to contain a HTTPS URL that refers the The "jcl" key value is defined to contain a HTTPS URL that refers the
recipient to a jCard [RFC7095] JSON object hosted on a HTTPS enabled recipient to a jCard [RFC7095] JSON object hosted on a HTTPS enabled
web server. This link is intended to be an external reference to a web server. This link is intended to be an external reference to a
JSON file with the same intended use of the 'jcd' jCard object and JSON file with the same intended use of the "jcd" jCard object and
has the same intended properties. The 'jcl' key is optional. If has the same intended properties. The "jcl" key is optional. If
included, this key MUST only be included once in the 'rcd' JSON included, this key MUST only be included once in the "rcd" JSON
object and SHOULD NOT be included if there is a 'jcd' key included. object and SHOULD NOT be included if there is a "jcd" key included.
The 'jcd' and 'jcl' keys should be mutually exclusive. The "jcd" and "jcl" keys should be mutually exclusive.
3.4. 'rcd' Usage 3.4. "rcd" Usage
The 'rcd' claim may appear in any PASSporT claims object as an The "rcd" claim may appear in any PASSporT claims object as an
optional element. The creator of a PASSporT MAY however add a 'ppt' optional element. The creator of a PASSporT MAY however add a "ppt"
value of 'rcd' to the header of a PASSporT as well, in which case the value of "rcd" to the header of a PASSporT as well, in which case the
PASSporT claims MUST contain a 'rcd' claim, and any entities PASSporT claims MUST contain a "rcd" claim, and any entities
verifying the PASSporT object will be required to understand the verifying the PASSporT object will be required to understand the
'ppt' extension in order to process the PASSporT in question. A "ppt" extension in order to process the PASSporT in question. A
PASSporT header with the 'ppt' included will look as follows: PASSporT header with the "ppt" included will look as follows:
{ "typ":"passport", { "typ":"passport",
"ppt":"rcd", "ppt":"rcd",
"alg":"ES256", "alg":"ES256",
"x5u":"https://www.example.com/cert.cer" } "x5u":"https://www.example.com/cert.cer" }
The PASSporT claims object will then contain the "rcd" key with its The PASSporT claims object will then contain the "rcd" key with its
corresponding value. The value of "rcd" is an array of JSON objects, corresponding value. The value of "rcd" is an array of JSON objects,
of which one, the "nam" object, is mandatory. The key syntax of of which one, the "nam" object, is mandatory. The key syntax of
"nam" follows the display-name ABNF given in [RFC3261]. "nam" follows the display-name ABNF given in [RFC3261].
After the header and claims PASSporT objects have been constructed, After the header and claims PASSporT objects have been constructed,
their signature is generated normally per the guidance in [RFC8225]. their signature is generated normally per the guidance in [RFC8225].
3.5. Example 'rcd' PASSporTs 3.5. Example "rcd" PASSporTs
An example of a 'nam' only PASSporT claims obejct is shown next (with An example of a "nam" only PASSporT claims obejct is shown next (with
line breaks for readability only). line breaks for readability only).
{ "orig":{"tn":"12025551000"}, { "orig":{"tn":"12025551000"},
"dest":{"tn":"12025551001"}, "dest":{"tn":"12025551001"},
"iat":1443208345, "iat":1443208345,
"rcd":{"nam":"James Bond"} } "rcd":{"nam":"James Bond"} }
An example of a PASSporT claims object that includes the "jcd" which An example of a PASSporT claims object that includes the "jcd" which
is optional, but will also include the mandatory "nam" object is is optional, but will also include the mandatory "nam" object is
shown next (with line breaks for readability only). shown next (with line breaks for readability only).
skipping to change at page 5, line 41 skipping to change at page 5, line 41
["email",{},"text","007@mi6-hq.com"], ["email",{},"text","007@mi6-hq.com"],
["tel",{"type":["voice","text","cell"],"pref":"1"},"uri", ["tel",{"type":["voice","text","cell"],"pref":"1"},"uri",
"tel:+1-202-555-1000"], "tel:+1-202-555-1000"],
["tel",{"type":["fax"]},"uri","tel:+1-202-555-1001"], ["tel",{"type":["fax"]},"uri","tel:+1-202-555-1001"],
["bday",{},"date","19241116"], ["bday",{},"date","19241116"],
["logo",{},"uri", ["logo",{},"uri",
"https://upload.wikimedia.org/wikipedia/en/c/c5/Fleming007impression.jpg" "https://upload.wikimedia.org/wikipedia/en/c/c5/Fleming007impression.jpg"
]]]}} ]]]}}
In an example PASSporT where a jCard is linked via HTTPS URL and In an example PASSporT where a jCard is linked via HTTPS URL and
'jcl' a jCard file served at a particular URL will be created. "jcl" a jCard file served at a particular URL will be created.
An example jCard JSON file is shown as follows: An example jCard JSON file is shown as follows:
["vcard", ["vcard",
[ [
["version", {}, "text", "4.0"], ["version", {}, "text", "4.0"],
["fn", {}, "text", "James Bond"], ["fn", {}, "text", "James Bond"],
["n", {}, "text", ["Bond", "James", "", "", "Mr."]], ["n", {}, "text", ["Bond", "James", "", "", "Mr."]],
["adr", {"type":"work"}, "text", ["adr", {"type":"work"}, "text",
["", "", "3100 Massachusetts Avenue NW", "Washington", "DC", "20008", ["", "", "3100 Massachusetts Avenue NW", "Washington", "DC", "20008",
skipping to change at page 6, line 25 skipping to change at page 6, line 25
["tel", { "type": ["voice", "text", "cell"], "pref": "1" }, "uri", ["tel", { "type": ["voice", "text", "cell"], "pref": "1" }, "uri",
"tel:+1-202-555-1000"], "tel:+1-202-555-1000"],
["tel", { "type": ["fax"] }, "uri", "tel:+1-202-555-1001"], ["tel", { "type": ["fax"] }, "uri", "tel:+1-202-555-1001"],
["bday", {}, "date", "19241116"] ["bday", {}, "date", "19241116"]
["logo", {}, "uri", ["logo", {}, "uri",
"https://upload.wikimedia.org/wikipedia/en/c/c5/Fleming007impression.jpg"] "https://upload.wikimedia.org/wikipedia/en/c/c5/Fleming007impression.jpg"]
] ]
] ]
If that jCard is hosted at the example address of If that jCard is hosted at the example address of
"https://example.org/james_bond.json", the cooresponding PASSporT "https://example.org/james_bond.json", the corresponding PASSporT
claims object would be as follows (with line breaks for readability claims object would be as follows (with line breaks for readability
only): only):
{ "orig":{"tn":"12025551000"}, { "orig":{"tn":"12025551000"},
"dest":{"tn":"12155551001"}, "dest":{"tn":"12155551001"},
"iat":1443208345, "iat":1443208345,
"rcd":{"nam":"James Bond","jcl":"https://example.org/james_bond.json"} "rcd":{"nam":"James Bond","jcl":"https://example.org/james_bond.json"}
} }
4. Further Information Associated with Callers 4. Further Information Associated with Callers
skipping to change at page 6, line 47 skipping to change at page 6, line 47
Beyond naming information and the information that can be contained Beyond naming information and the information that can be contained
in a jCard [RFC7095] object, there may be additional human-readable in a jCard [RFC7095] object, there may be additional human-readable
information about the calling party that should be rendered to the information about the calling party that should be rendered to the
end user in order to help the called party decide whether or not to end user in order to help the called party decide whether or not to
pick up the phone. This is not limited to information about the pick up the phone. This is not limited to information about the
caller, but includes information about the call itself, which may caller, but includes information about the call itself, which may
derive from analytics that determine based on call patterns or derive from analytics that determine based on call patterns or
similar data if the call is likely to be one the called party wants similar data if the call is likely to be one the called party wants
to receive. Such data could include: to receive. Such data could include:
information related to the location of the caller, or o information related to the location of the caller, or
any organizations or institutions that the caller is associated o any organizations or institutions that the caller is associated
with, or even categories of institutions (is this a government with, or even categories of institutions (is this a government
agency, or a bank, or what have you), or agency, or a bank, or what have you), or
hyperlinks to images, such as logos or pictures of faces, or to
o hyperlinks to images, such as logos or pictures of faces, or to
similar external profile information, or similar external profile information, or
information that will be processed by an application before o information that will be processed by an application before
rendering it to a user, like social networking data that shows rendering it to a user, like social networking data that shows
that an unknown caller is a friend-of-a-friend, or reputation that an unknown caller is a friend-of-a-friend, or reputation
scores derived from crowdsourcing, or confidence scores based on scores derived from crowdsourcing, or confidence scores based on
broader analytics about the caller and callee. broader analytics about the caller and callee.
All of these data elements would benefit from the secure attestations All of these data elements would benefit from the secure attestations
provided by the STIR and PASSporT frameworks. A new IANA registry provided by the STIR and PASSporT frameworks. A new IANA registry
has been defined to hold potential values of the "rcd" array; see has been defined to hold potential values of the "rcd" array; see
Section 10.3. Specific extensions to the "rcd" PASSporT claim are Section 10.3. Specific extensions to the "rcd" PASSporT claim are
left for future specification. left for future specification.
skipping to change at page 7, line 39 skipping to change at page 7, line 40
authentication service, the terminating side or an intermediary in authentication service, the terminating side or an intermediary in
the call path could also acquire rich call data by querying a third- the call path could also acquire rich call data by querying a third-
party service. In telephone operations today, a third-party party service. In telephone operations today, a third-party
information service is commonly queried with the calling party's information service is commonly queried with the calling party's
number in order to learn the name of the calling party, and number in order to learn the name of the calling party, and
potentially other helpful information could also be passed over that potentially other helpful information could also be passed over that
interface. The value of using a PASSporT to convey this information interface. The value of using a PASSporT to convey this information
from third parties lies largely in the preservation of the original from third parties lies largely in the preservation of the original
authority's signature over the data, and the potential for the authority's signature over the data, and the potential for the
PASSporT to be conveyed from intermediaries to endpoint devices. PASSporT to be conveyed from intermediaries to endpoint devices.
Effectively, these use cases form of subcase of out-of-band Effectively, these use cases form a sub-case of out-of-band
[I-D.ietf-stir-oob] use cases. The manner in which third-party [I-D.ietf-stir-oob] use cases. The manner in which third-party
services are discovered is outside the scope of this document. services are discovered is outside the scope of this document.
An intermediary use case might look as follows: a SIP INVITE carries An intermediary use case might look as follows: a SIP INVITE carries
a display name in its From header field value and an initial PASSporT a display name in its From header field value and an initial PASSporT
object without the "rcd" claim. When the a terminating verification object without the "rcd" claim. When the a terminating verification
service implemented at a SIP proxy server receives this request, and service implemented at a SIP proxy server receives this request, and
determines that the signature is valid, it might query a third-party determines that the signature is valid, it might query a third-party
service that maps telephone numbers to calling party names. Upon service that maps telephone numbers to calling party names. Upon
receiving the PASSport in a response from that third-party service, receiving the PASSport in a response from that third-party service,
skipping to change at page 9, line 26 skipping to change at page 9, line 26
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. of granularity or accuracy.
Therefore PASSporTs that carry "rcd" data SHOULD also carry an Therefore PASSporTs that carry "rcd" data SHOULD also carry an
indication of the relationship of the generator of the PASSporT to indication of the relationship of the generator of the PASSporT to
the caller. [TBD claim - take from SHAKEN?] the caller. [TBD claim - take from SHAKEN?]
7. Using 'rcd' in SIP 7. 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.
7.1. Authentication Service Behavior 7.1. Authentication Service Behavior
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
skipping to change at page 9, line 50 skipping to change at page 9, line 50
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/HmtyNS7Ltrg9dlxkWzo Identity: "sv5CTo05KqpSmtHt3dcEiO/1CWTSZtnG3iV+1nmurLXV/HmtyNS7Ltrg9dlxkWzo
eU7d7OV8HweTTDobV3itTmgPwCFjaEmMyEI3d7SyN21yNDo2ER/Ovgtw0Lu5csIp eU7d7OV8HweTTDobV3itTmgPwCFjaEmMyEI3d7SyN21yNDo2ER/Ovgtw0Lu5csIp
pPqOg1uXndzHbG7mR6Rl9BnUhHufVRbp51Mn3w0gfUs="; \ pPqOg1uXndzHbG7mR6Rl9BnUhHufVRbp51Mn3w0gfUs="; \
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 will derive the value of "rcd", specifically only for the service will derive the value of "rcd", specifically only for the
'nam' key value, from the display-name component of the From header "nam" key value, from the display-name component of the From header
field value of the request, alternatively for some calls this may field value of the request, alternatively for some calls this may
come from the P-Asserted-ID header. It is however a matter of come from the P-Asserted-ID header. It is however a matter of
authentication service policy to decide how it populates the value of authentication service policy to decide how it populates the value of
"rcd" and 'nam' key, which MAY also derive from other fields in the "rcd" and "nam" key, which MAY also derive from other fields in the
request, from customer profile data, or from access to external request, from customer profile data, or from access to external
services. If the authentication service generates a PASSporT object services. If the authentication service generates a PASSporT object
containing "rcd" with a value that is not equivalent to the From containing "rcd" with a value that is not equivalent to the From
header field display-name value, it MUST use the full form of the header field display-name value, it MUST use the full form of the
PASSporT object in SIP. PASSporT object in SIP.
7.2. Verification Service Behavior 7.2. Verification Service Behavior
[RFC8224] Section 6.2 Step 5 requires that specifications defining [RFC8224] Section 6.2 Step 5 requires that specifications defining
"ppt" values describe any additional verifier behavior. The behavior "ppt" values describe any additional verifier behavior. The behavior
skipping to change at page 11, line 17 skipping to change at page 11, line 17
has some other reason to trust the signer. No further guidance on has some other reason to trust the signer. No further guidance on
verification service authorization policy is given here. verification service authorization policy is given here.
The behavior of a SIP UAS upon receiving an INVITE containing a The behavior of a SIP UAS upon receiving an INVITE containing a
PASSporT object with a "rcd" claim will largely remain a matter of PASSporT object with a "rcd" claim will largely remain a matter of
implementation policy. In most cases, implementations would render implementation policy. In most cases, implementations would render
this calling party name information to the user while alerting. Any this calling party name information to the user while alerting. Any
user interface additions to express confidence in the veracity of user interface additions to express confidence in the veracity of
this information are outside the scope of this specification. this information are outside the scope of this specification.
8. Using 'rcd' as additional claims to other PASSporT extensions 8. Using "rcd" as additional claims to other PASSporT extensions
Rich Call Data, including, for example, calling name information, is Rich Call Data, including, for example, calling name information, is
often data that is additive data to the personal communications often data that is additive data to the personal communications
information defined in the core PASSporT data required to support the information defined in the core PASSporT data required to support the
security properties defined in [RFC8225]. For cases where the entity security properties defined in [RFC8225]. For cases where the entity
that is originating the personal communications and additionally is that is originating the personal communications and additionally is
supporting the authentication service and also is the authority of supporting the authentication service and also is the authority of
the Rich Call Data, rather than creating multiple identity headers the Rich Call Data, rather than creating multiple identity headers
with multiple PASSporT extensions or defining multiple combinations with multiple PASSporT extensions or defining multiple combinations
and permutations of PASSporT extension definitions, the and permutations of PASSporT extension definitions, the
authentication service can alternatively directly add the 'rcd' authentication service can alternatively directly add the "rcd"
claims to the PASSporT it is creating, whether it is constructed with claims to the PASSporT it is creating, whether it is constructed with
a PASSporT extension or not. a PASSporT extension or not.
8.1. Procedures for applying 'rcd' as claims only 8.1. Procedures for applying "rcd" as claims only
For a given PASSporT using some other extension than 'rcd,' the For a given PASSporT using some other extension than "rcd", the
Authentication Service MAY additionally include the 'rcd' claim as Authentication Service MAY additionally include the "rcd" claim as
defined in this document. This would result in a set of claims that defined in this document. This would result in a set of claims that
correspond to the original intended extension with the addition of correspond to the original intended extension with the addition of
the 'rcd' claim. the "rcd" claim.
The Verification service that receives the PASSporT, if it supports The Verification service that receives the PASSporT, if it supports
this specification and chooses to, should interpret the 'rcd' claim this specification and chooses to, should interpret the "rcd" claim
as simply just an additional claim intended to deliver and/or as simply just an additional claim intended to deliver and/or
validate delivered Rich Call Data. validate delivered Rich Call Data.
8.2. Example for applying 'rcd' as claims only 8.2. Example for applying "rcd" as claims only
In the case of [I-D.ietf-stir-passport-shaken] which is the PASSporT In the case of [I-D.ietf-stir-passport-shaken] which is the PASSporT
extension supporting the SHAKEN specification [ATIS-1000074], a extension supporting the SHAKEN specification [ATIS-1000074], a
common case for an Authentication service to co-exist in a CSP common case for an Authentication service to co-exist in a CSP
network along with the authority over the calling name used for the network along with the authority over the calling name used for the
call. Rather than require two identity headers, the CSP call. Rather than require two identity headers, the CSP
Authentication Service can apply both the SHAKEN PASSporT claims and Authentication Service can apply both the SHAKEN PASSporT claims and
extension and simply add the 'rcd' required claims defined in this extension and simply add the "rcd" required claims defined in this
document. document.
For example, the PASSporT claims for the 'shaken' PASSporT with 'rcd' For example, the PASSporT claims for the "shaken" PASSporT with "rcd"
claims would be as follows: claims would be as follows:
Protected Header Protected Header
{ {
"alg":"ES256", "alg":"ES256",
"typ":"passport", "typ":"passport",
"ppt":"shaken", "ppt":"shaken",
"x5u":"https://cert.example.org/passport.cer" "x5u":"https://cert.example.org/passport.cer"
} }
Payload Payload
{ {
"attest":"A", "attest":"A",
"dest":{"tn":["12025551001"]}, "dest":{"tn":["12025551001"]},
"iat":1443208345, "iat":1443208345,
"orig":{"tn":"12025551000"}, "orig":{"tn":"12025551000"},
"origid":"123e4567-e89b-12d3-a456-426655440000", "origid":"123e4567-e89b-12d3-a456-426655440000",
"rcd":{"nam":"James Bond"} "rcd":{"nam":"James Bond"}
} }
A Verification Service that supports 'rcd' and 'shaken' PASSporT A Verification Service that supports "rcd" and "shaken" PASSporT
extensions will be able to receive the above PASSporT and interpret extensions will be able to receive the above PASSporT and interpret
both the 'shaken' claims as well as the 'rcd' defined claim. both the "shaken" claims as well as the "rcd" defined claim.
If the Verification Service only understands the 'shaken' extension If the Verification Service only understands the "shaken" extension
claims but doesn't support 'rcd', the 'rcd' can simply be ignored and claims but doesn't support "rcd", the "rcd" can simply be ignored and
disregarded. disregarded.
9. Acknowledgements 9. Acknowledgements
We would like to thank Robert Sparks for helpful suggestions. We would like to thank Robert Sparks and Russ Housley for helpful
suggestions.
10. IANA Considerations 10. IANA Considerations
10.1. JSON Web Token Claim 10.1. JSON Web Token Claim
This specification requests that the IANA add a new claim to the JSON This specification requests that the IANA add a new claim to the JSON
Web Token Claims registry as defined in [RFC7519]. Web Token Claims registry as defined in [RFC7519].
Claim Name: "rcd" Claim Name: "rcd"
skipping to change at page 13, line 18 skipping to change at page 13, line 20
This specification requests that the IANA add a new entry to the This specification requests that the IANA add a new entry to the
PASSporT Types registry for the type "rcd" which is specified in PASSporT Types registry for the type "rcd" which is specified in
[RFCThis]. [RFCThis].
10.3. PASSporT RCD Types 10.3. PASSporT RCD Types
This document requests that the IANA create a new registry for This document requests that the IANA create a new registry for
PASSporT RCD types. Registration of new PASSporT RCD types shall be PASSporT RCD types. Registration of new PASSporT RCD types shall be
under the Specification Required policy. under the Specification Required policy.
This registry is to be initially populated with a single value for This registry is to be initially populated with three values, "nam",
"nam" which is specified in [RFCThis]. "jcd", and "jcl", which are specified in [RFCThis].
11. Security Considerations 11. Security Considerations
Revealing information such as the name, location, and affiliation of Revealing information such as the name, location, and affiliation of
a person necessarily entails certain privacy risks. Baseline a person necessarily entails certain privacy risks. Baseline
PASSporT has no particular confidentiality requirement, as the PASSporT has no particular confidentiality requirement, as the
information it signs over in a using protocol like SIP is all information it signs over in a using protocol like SIP is all
information that SIP carries in the clear anyway. Transport-level information that SIP carries in the clear anyway. Transport-level
security can hide those SIP fields from eavesdroppers, and the same security can hide those SIP fields from eavesdroppers, and the same
confidentiality mechanisms would protect any PASSporT(s) carried in confidentiality mechanisms would protect any PASSporT(s) carried in
SIP. SIP.
More TBD. More TBD.
12. References 12. References
12.1. Normative References 12.1. Normative References
[I-D.ietf-stir-oob] [I-D.ietf-stir-oob]
Rescorla, E. and J. Peterson, "STIR Out-of-Band Rescorla, E. and J. Peterson, "STIR Out-of-Band
Architecture and Use Cases", draft-ietf-stir-oob-03 (work Architecture and Use Cases", draft-ietf-stir-oob-04 (work
in progress), July 2018. in progress), March 2019.
[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>.
[RFC6919] Barnes, R., Kent, S., and E. Rescorla, "Further Key Words [RFC6919] Barnes, R., Kent, S., and E. Rescorla, "Further Key Words
for Use in RFCs to Indicate Requirement Levels", RFC 6919, for Use in RFCs to Indicate Requirement Levels", RFC 6919,
DOI 10.17487/RFC6919, April 2013, DOI 10.17487/RFC6919, April 2013,
skipping to change at page 14, line 43 skipping to change at page 14, line 43
12.2. Informative References 12.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-passport-shaken] [I-D.ietf-stir-passport-shaken]
Wendt, C. and M. Barnes, "PASSporT SHAKEN Extension Wendt, C. and M. Barnes, "PASSporT SHAKEN Extension
(SHAKEN)", draft-ietf-stir-passport-shaken-07 (work in (SHAKEN)", draft-ietf-stir-passport-shaken-08 (work in
progress), January 2019. progress), March 2019.
[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
Jon Peterson Jon Peterson
Neustar Inc. Neustar Inc.
 End of changes. 48 change blocks. 
73 lines changed or deleted 76 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/