rfc-8225

PASSporT: Personal Assertion Token

C. Wendt, J. Peterson
date2018-02 streamIETF areaart wgstir statusPROPOSED STANDARD pages25 canonicalhttps://www.rfc-editor.org/rfc/rfc8225 doi10.17487/RFC8225 errataview
This document defines a method for creating and validating a token that cryptographically verifies an originating identity or, more generally, a URI or telephone number representing the originator of personal communications. The Personal Assertion Token, PASSporT, is cryptographically signed to protect the integrity of the identity of the originator and to verify the assertion of the identity information at the destination. The cryptographic signature is defined with the intention that it can confidently verify the originating persona even when the signature is sent to the destination party over an insecure channel. PASSporT is particularly useful for many personal-communications applications over IP networks and other multi-hop interconnection scenarios where the originating and destination parties may not have a direct trusted relationship.

Extracted elements (27)

design-rationale §9

Deterministic JSON serialization is required because JSON is inherently non-deterministic (arbitrary key ordering and whitespace). PASSporT adopts rules based on JWK Thumbprint (RFC 7638, Section 3 Step 1) to ensure digital signature verification works consistently across implementations.

jose, json, crypto

design-rationale §1

PASSporT is intentionally decoupled from any specific signaling protocol (e.g., SIP) so that identity assertion can be implemented flexibly across different application protocols and multi-hop interconnection scenarios. Protocol-specific usage guidance is delegated to separate documents such as RFC 8224.

sip, realtime

design-rationale §8.1

Using protocols that carry the compact form of PASSporT MUST use only mandatory extensions signaled with "ppt" because optional claims in compact form cannot be reconstructed by relying parties, making the token unverifiable.

jose, sip

normative-requirement §5.2.1 MUST

A PASSporT object MUST contain exactly one "orig" claim with exactly one identity claim object, and a "dest" claim with at least one identity claim object. Both claims represent identities as either "tn" (telephone number) or "uri" types.

jose, sip, realtime

normative-requirement §7 MUST

A using protocol that carries the compact form of PASSporT MUST be accompanied by a specification describing how the header and claims objects can be reconstructed from the signaling protocol.

jose, sip

normative-requirement §5.2.1 MUST

If the "dest" claim value array contains both "tn" and "uri" claim names, the "tn" array MUST be listed first and "uri" second. Within each array, identity strings SHOULD be in lexicographical order.

jose

normative-requirement §4.2 MUST

Implementations MUST support ES256 (ECDSA using P-256 and SHA-256) for creation and verification of PASSporT digital signatures. Implementations MAY support other algorithms from the "JSON Web Signature and Encryption Algorithms" registry.

jose, crypto

normative-requirement §4.2 SHOULD

Implementations of PASSporT digital signatures using ES256 SHOULD use the deterministic ECDSA as defined in RFC 6979 to avoid risks associated with weak random number generation during signing.

crypto, jose

normative-requirement §8.3 MUST

PASSporT extension specifications MUST explicitly specify what claims they include beyond the base set, the order they appear, and any further information needed to implement the extension. Claims may only be appended, never removed or reordered.

jose

normative-requirement §6 MUST

PASSporT MUST use the JWS Protected Header. The lexicographic ordering, whitespace rules, and deterministic JSON serialization defined in this document MUST be followed for the JWS Payload and JWS Protected Header.

jose, crypto

normative-requirement §8.1 MUST

Relying parties MUST fail to validate PASSporT objects containing an unsupported "ppt" value. Implementations MUST support the baseline claims defined in Section 5.2 and MAY support extended claims.

jose, security

normative-requirement §9 MUST

The JSON representation of the JWS Protected Header and JWS Payload MUST follow deterministic serialization rules: no whitespace, keys in lexicographic Unicode order, literal values lowercase, numbers encoded as integers, rules applied recursively.

jose, json

normative-requirement §5.2.2 MUST

The "mky" claim array MUST be constructed by sorting the SDP fingerprint lines based on UTF-8 encoding of the concatenation of "alg" and "dig" values, then encoding each as a JSON object with "alg" first and "dig" second.

jose, realtime

normative-requirement §5.1.1 MUST

The PASSporT payload MUST include the "iat" (Issued At) JWT claim set to the date and time of origination of the personal communications. This is required for protecting against replay and cut-and-paste attacks.

jose, security

normative-requirement §4.1 MUST

The "typ" (Type) JOSE Header Parameter in a PASSporT MUST be the string "passport", signifying that the encoded token is a JWT of type passport.

jose

normative-requirement §5.2.1.1 MUST

When the originating or destination identity is a telephone number, the claim name MUST be "tn" and the value MUST be canonicalized according to the procedures in RFC 8224, Section 8.3.

sip, realtime

protocol-element §3

PASSporT is a JSON Web Token (JWT) signed as a JSON Web Signature (JWS) that cryptographically asserts the originating and destination identities of a personal communications session. It uses X.509-based certificates for signing authority and is designed to be transported over insecure channels while remaining verifiable at the destination.

jose, crypto, sip, realtime, pkix

protocol-element §5.2.2

The optional "mky" (Media Key) claim binds SDP media security key fingerprints (from "a=fingerprint" attributes) to the PASSporT identity assertions. It is a JSON array of objects each containing "alg" and "dig" fields, where "dig" is the hexadecimal hash value without colons.

jose, realtime, crypto

protocol-element §8.1

The "ppt" (PASSporT) JOSE Header Parameter signals a mandatory PASSporT extension, associating a named extension type with required claims and behaviors. All values of "ppt" must be defined in a specification linking the value to required claims.

jose, registry

protocol-element §4.3

The "x5u" JOSE Header Parameter MUST contain a URI referencing the X.509 public key certificate or certificate chain corresponding to the key used to sign the PASSporT. This is typically an HTTPS or DNSSEC resource with integrity protection.

pkix, jose, crypto

registry §11.4

RFC 8225 creates a new "PASSporT Extensions" IANA registry for "ppt" parameter values with Specification Required policy. Each entry must contain the "ppt" value name and the specification in which it is described.

registry, jose

registry §11.1

RFC 8225 registers the "application/passport" media type in the IANA Media Types registry. Values are encoded as base64url-encoded values separated by period characters, indicating content is a PASSporT-defined JWT.

registry, jose

registry §11.3

RFC 8225 registers the "ppt" header parameter in the "JSON Web Signature and Encryption Header Parameters" IANA registry, with usage location JWS, to serve as the PASSporT extension identifier.

registry, jose

registry §11.2

RFC 8225 registers three new JWT claims in the "JSON Web Token Claims" IANA registry: "orig" (Originating Identity String), "dest" (Destination Identity String), and "mky" (Media Key Fingerprint String).

registry, jose

security-consideration §10.2 MUST

PASSporT alone does not constitute full non-repudiation of the asserted identity. When a service provider signs on behalf of a user, the provider MUST have an authenticated and secure relationship with the end user or device. Verifiers must check that the signer is authoritative via application-specific trust anchors.

security, pkix, crypto

security-consideration §10.1

PASSporTs SHOULD only be sent with application-level protocol information corresponding to the required token fields. The "iat" claim mitigates replay attacks by binding the token to the origination time, and the "dest" claim restricts reuse to the intended recipient only.

security, jose

wire-format §7

The compact form of PASSporT omits the header and payload, consisting of two periods followed by the BASE64URL-encoded JWS Signature: ".." || BASE64URL(JWS Signature). The receiving party must reconstruct the header and claims from signaling protocol context to verify the signature.

jose, sip, realtime