Standards areabout making*choices* Warning: Some assembly required#EIC2024

Dr. Michael B. Jones
Principal, Self-Issued Consulting#EIC2024

Phillip Hallam-Baker observed
to me at an IETF meeting:Standards make the choicesthat don’t matter.
What an odd thing to say,
but there’s a deep truth there.

#EIC2024

Choicesthat don’tmatter
It doesn’t
matter that...

0x0800 is the
EtherType value
for IPv4 packets

6 is the IP
protocol number
for TCP packets

443 is the TCP
port number for
HTTPS octet
streams“GET” is theidentifier for an
HTTP request
method“HTTP/1.1 200OK” indicatesthat an HTTP
requestsucceeded“application/json” is theContent-Type for
JSON-encoded
messages“{” and “}” delimit
JSON objects“iss” and “sub”
are identifiers inJSON objects for
JWT claims

65 is the number
for the letter “A”
in ASCII andUnicode#EIC2024

Making choices deeply matters!
Interoperability requires
implementations making
the same choices• Text can be input and displayed
because everyone uses 65 for “A”• HTTPS works because everyone
uses TCP port 443

Standards are wherethose choices are
written down

It’s our job asstandards
professionals to makethose choices#EIC2024

When building machines, we take for
granted having standard parts

Standards are
the nuts andbolts ofDigital Identity• Nuts, bolts, wires, light bulbs, andcountless other parts• All conforming to applicable standards• Enables a marketplace of interoperable
parts from multiple suppliers• Without these standards, every part would
be custom machined

The same is true of the identity and security standards we use for Digital Identity#EIC2024

SomeAssemblyRequired

Our identity and security
standards vary wildly in the degree
to which they make choices• Some define one way to do things,
resulting in interoperability• Others leave critical choices unmade,passing them on to implementers• Your mileage may vary!

#EIC2024

Naming
Names &Taking
Prisoners

Next, I’ll critique existing andemerging identity and security
standards through this lensI’ll give each my personal
grade on choices made:ABEST

BCDFWORST#EIC2024

X.509 is a decades-old widely-deployed
digital certificate format
There are interoperable profiles of X.509• Especially for TLS certificates

X.509

But choices have evolved over time
• Domain names used to be in the commonNamefield• Now in Subject Alternate Name (SAN) field

Multiple revocation mechanisms• Certificate Revocation Lists (CRLs)• Online Certificate Status Protocol (OCSP)#EIC2024

SAML is the original single-sign-on protocol
standard
There are interoperable SAML 2.0 ecosystems• Each made many profiling choices to achieve thisSAML 2.0

SAML NameID contents vary
• Can be transient, persistent, unspecified, emailAddress,
X509SubjectName, WindowsQualifiedDomainName, Kerberos,Entity

Multiple protocol flows• Browser profile, Artifact Binding, Enhanced Client Proxy (ECP)

Multiple logout mechanisms
Dependent upon brittle XML Canonicalization#EIC2024

OAuth 2.0 enables limited access toresources in controlled fashion

OAuth 2.0: RFC
6749 & RFC 6750

European Identity
Award Winner

OAuth 2.0 is not interoperable without a profile
Different response_type values with different
security properties• code, token, and others defined by extensions
scope values completely unspecified
Multiple token_type possibilities• Bearer and others
RFC 6750 defines three ways to pass access token• Header, Body Parameter, Query Parameters#EIC2024

OpenID Connect is a widely-used sign-instandard
OpenIDConnect

European Identity
Award WinnerInteroperable ecosystem enabled because ofchoices made:• For instance, chose exact redirect_uri matching• Interoperability evidence: 754 OpenID Connect
certifications to date!

Building on OAuth 2.0 introduced more choices
than ideal• Six response types, each with different security properties

Three IdP-initiated logout mechanisms• Two using browser features, one using server-to-server
communication#EIC2024

JSON Web
Signature (JWS)

JWS is a widely-used JSON-based digital
signature format
Compact serialization is the most used
JSON serialization was added late to satisfy
vocal constituency

European Identity
Award Winner• JSON serialization also includes unprotected
headers

Other than serialization choice, most choices
made by spec“alg” choice is needed to support cryptographicagility#EIC2024

JSON Web
Token (JWT)

European Identity
Award Winner

JWT is a widely-used JSON-based
digital token format in which securedclaims are made about a subject
Requires JWS compact serialization be used
Yes, all claims are optional at the JWT level• Leaves room for profiles such as ID Token tospecify claims usedJWT BCP [RFC 8725] further tightens choices
madeMany interoperable implementations in different
languages#EIC2024

COSE is a widely-used binary signingand encryption format

CBOR Object
Signing andEncryption(COSE)COSE makes similar degree of choices
as JOSE (JWS, etc.)

Includes both protected and unprotectedheaders
Has some bells and whistles that JOSE doesn’t• Such as countersignatures

Enough choices made to enable interoperability#EIC2024

CWT is a widely-used binary digitaltoken format in which secured claims
are made about a subject
CWT makes largely parallel choices to JWTCBOR Web
Token (CWT)

But does not narrow COSE features used(unlike JWT)
• Does not mandate using COSE_Sign1 over
COSE_Sign• Does not mandate that only protected headers beused

Same claims extensibility model as JWT#EIC2024

WebCrypto defines Web API for inbrowser cryptographic operations
Only one way to perform any operation
Limited number of key formats using existing
standards

WebCrypto• enum KeyFormat { "raw", "spki","pkcs8", "jwk" };Intentionally excludes functionality somepeople wanted• Use of platform keys
• Has led to non-standard extensions#EIC2024

WebAuthn/
FIDO 2

WebAuthn/FIDO 2 is deployedunphishable login infrastructure
supported by all modern browsers
Evolved from and replaces U2F/CTAP 1• Resulted in multiple signature formats, someX.509-based, some bareEuropean Identity
Award WinnerMultiple and evolving attestation formats
Numerous extensions with varying degree ofimplementation• Which extensions will be ubiquitously
supported is still TBD#EIC2024

VCs represent cryptographically secured
claims by an issuer about a subject
VC 1.0, 1.1, and 2.0 made different choices

W3C Verifiable
Credentials• VC 2.0 not backwards compatible with previousversions

Two ways of signing VCs, each with sub-variants• VC-JOSE-COSE supports JWS, COSE, and SD-JWT
signatures over JSON-LD payload• VC-DATA-INTEGRITY canonicalizes JSON-LDpayload, converts it to RDF N-Quads, and signs overthe RDF (or can use JCS [RFC 8785])#EIC2024

DIDs are a framework for identifiers about
subjects not dependent upon centralauthorities
Each kind of DID has its own DID method andalgorithms

Decentralized
Identifiers(DIDs)

DID spec defines operations that DID Methods
must implement

As of this writing, there are 193 registered
DID Methods!
• None are mandatory to implement, giving no interop
guarantee• DID Methods are out of scope for the newly
rechartered DID WG!
#EIC2024

Defines multiplicity of encodings for binarydata
The Multibase spec defines 23 equivalent and noninteroperable representations for the same data!

Multiformats• base64*, base58*, base36*, base32* , hex*, decimal,base8, base2, binary• Interop requires either implementing them all or profiles
choosing someMultiformats institutionalize the failure to make achoice!
Warning: Multiformats are used by VC-DATAINTEGRITY and DIDs
So bad, I wrote “Multiformats Considered Harmful”
post!
#EIC2024

ClosingRemarks onChoices#EIC2024

Protocol layering examples

Enabling
layeredprotocols
is a choice• Ethernet packet types are identified by
EtherType• IPv4 protocols are identified by protocol
number• TCP protocols are identified by port number• JWT types are identified by the “typ” header
parameter

These all enable higher-level protocols
to be layered over them
#EIC2024

Sometimes it’s necessary for choices tochange over time

Planningfor evolution
is a choice• Particularly as the security threat
landscape evolves

For instance, enabling cryptographic
agility is a must
• Which algorithms are secure changes
over time

Only supporting a fixed algorithm would
be a bad choice!
#EIC2024

All the specifications I’ve discussed haveextensibility points

Extensibility
is a choice• Extensibility enables new features to be added• Such as adding DPoP to OAuth 2.0• Extensibility enables new layered applications
and protocols• Such as adding an ID Token to OAuth 2.0 for
OpenID Connect

Use extension methods that don’t breakexisting deployments• For instance, the “If you don’t understand it, you
MUST ignore it” logic for OAuth 2.0 request
parameters and JWT claims has served us well#EIC2024

Standards are about
making choices,
so make good ones!
#EIC2024

Thank you
This presentation andmore are available at:https://self-issued.info#EIC2024