Loading vLEI.wiki
Fetching knowledge base...
Fetching knowledge base...
This comprehensive explanation has been generated from 30 GitHub source documents. All source documents are searchable here.
Last updated: October 7, 2025
This content is meant to be consumed by AI agents via MCP. Click here to get the MCP configuration.
Note: In rare cases it may contain LLM hallucinations.
For authoritative documentation, please consult the official GLEIF vLEI trainings and the ToIP Glossary.
JOSE (JavaScript Object Signing and Encryption) is a framework providing standardized methods for securely transferring claims between parties through a collection of specifications including JWK (JSON Web Key) and JWT (JSON Web Token).
JOSE (JavaScript Object Signing and Encryption) is a cryptographic framework that provides standardized methods for securely transferring claims (such as authorization information) between parties in distributed systems. The framework consists of a collection of specifications that work together to provide signing capabilities for data integrity and authentication, encryption capabilities for confidentiality, and standardized formats for interoperability across web applications.
The JOSE framework is built upon several interconnected specifications that form a complete cryptographic toolkit:
JSON Web Key (JWK): Provides a standardized representation for cryptographic keys in JSON format. JWK enables the exchange of public keys and key metadata between systems using human-readable JSON structures. The specification defines how to represent various key types (RSA, elliptic curve, symmetric keys) along with their cryptographic parameters in a consistent format.
JSON Web Token (JWT): Defines a compact, URL-safe means of representing claims to be transferred between two parties. JWTs consist of three parts: a header specifying the cryptographic algorithm, a payload containing the claims (assertions about an entity), and a signature or message authentication code. The token format uses Base64 URL encoding to create portable, self-contained claim packages.
JSON Web Signature (JWS): Specifies the mechanisms for digitally signing or creating a message authentication code (MAC) for content expressed as a JSON object. JWS defines how to create detached, compact, or JSON serialization formats for signatures, enabling verification of content integrity and authentication of the signing party.
JSON Web Encryption (JWE): Provides specifications for encrypting content using JSON-based data structures. JWE defines how to represent encrypted content along with the cryptographic metadata needed for decryption, supporting both symmetric and asymmetric encryption schemes.
When evaluating JOSE versus KERI/ACDC for identity systems:
JOSE is appropriate when:
KERI/ACDC is appropriate when:
The KERI ecosystem does not natively support JOSE formats. Systems requiring both approaches must implement transformation layers, though this may compromise KERI's security properties around key rotation and provenance verification.
JOSE utilizes Base64 URL encoding as its primary serialization mechanism. This encoding approach:
The framework supports multiple serialization formats:
Compact Serialization: Creates a single string representation using dot-separated Base64-encoded segments, optimized for space efficiency and URL transmission.
JSON Serialization: Provides a more verbose but flexible representation using standard JSON structures, enabling multiple signatures or recipients within a single object.
JOSE operates within traditional PKI frameworks where:
This contrasts fundamentally with KERI's self-certifying identifiers where trust is established cryptographically without external dependencies.
JOSE and KERI represent divergent approaches to cryptographic identity and secure data transfer:
Trust Establishment: JOSE depends on external trust infrastructure (certificate authorities, key servers, federated identity providers), while KERI establishes cryptographic roots-of-trust through autonomic identifiers that are inherently self-certifying. KERI's approach eliminates dependency on centralized authorities by binding identifiers directly to cryptographic key pairs through inception events.
Key Management: JOSE typically treats keys as static credentials requiring reissuance when compromised. KERI implements pre-rotation and key event logs that enable key rotation without credential reissuance. This fundamental difference means KERI credentials maintain their identifiers across key changes, while JOSE-based credentials must be replaced when keys rotate.
Provenance: JOSE tokens are self-contained but lack verifiable history. KERI maintains complete verifiable provenance through cryptographically linked event logs. Every establishment event in KERI creates an immutable record anchored to previous events, forming a verifiable data structure that enables end-to-end verifiable authority chains.
Credential Lifecycle: JOSE JWTs are typically short-lived bearer credentials designed for immediate consumption and expiration. KERI's ACDCs maintain long-term verifiable provenance chains through transaction event logs that track credential state changes (issuance, revocation) while preserving the complete audit trail.
The KERI ecosystem uses CESR (Composable Event Streaming Representation) rather than JOSE's Base64-encoded JSON structures. This difference reflects fundamentally different design priorities:
CESR Design Principles:
JOSE Encoding Characteristics:
The CESR approach enables cryptographically heavy protocols to remain both performant (through efficient binary representation) and debuggable (through text representation), while JOSE accepts performance costs in exchange for immediate JSON compatibility.
JOSE excels in scenarios requiring:
Immediate Interoperability: JOSE's JSON-based structures integrate seamlessly with existing web infrastructure, REST APIs, and OAuth/OIDC ecosystems. Applications can leverage extensive library support across programming languages and platforms.
Short-Lived Authorization: The JWT model suits scenarios where authorization decisions are made immediately upon token presentation, such as API authentication, single sign-on sessions, and time-limited access grants.
Federated Identity: JOSE aligns naturally with federated identity models where trust is established through identity provider relationships and token exchange protocols.
KERI targets fundamentally different requirements:
Long-Term Verifiable Provenance: Applications requiring cryptographically verifiable audit trails of authority delegation, such as vLEI credentials issued through GLEIF's Qualified vLEI Issuers.
Decentralized Trust: Scenarios where dependence on certificate authorities or identity providers is unacceptable, enabling truly self-sovereign identity architectures.
Key Rotation Without Reissuance: Use cases requiring credentials that survive key compromises through rotation events, maintaining identifier continuity while updating cryptographic material.
Ambient Verifiability: Applications requiring ambient verifiability where any party, anywhere, anytime can verify credential authenticity without requiring online access to issuers or certificate authorities.
While JOSE and KERI represent different architectural paradigms, they can coexist in hybrid systems:
JOSE for Access Control: Organizations might use JOSE JWTs for short-lived API authentication and authorization decisions while using KERI ACDCs for long-term credential provenance and authority establishment.
Translation Layers: Systems could implement translation between JOSE tokens and KERI credentials at architectural boundaries, leveraging each framework's strengths for appropriate use cases.
Progressive Enhancement: Applications might begin with JOSE for immediate web compatibility, then progressively adopt KERI for specific high-assurance requirements like Legal Entity credentials or official organizational role attestations.
JOSE provides one possible encoding format for W3C Verifiable Credentials, though the VC Data Model is format-agnostic. The W3C specification allows credentials to be expressed using:
This flexibility reflects the credential ecosystem's recognition that different use cases require different trade-offs between semantic expressiveness, cryptographic properties, and implementation complexity.
JOSE forms the cryptographic foundation for modern OAuth 2.0 and OpenID Connect (OIDC) protocols:
ID Tokens: OIDC uses JWTs as ID tokens to convey authenticated user information from identity providers to relying parties.
Access Tokens: OAuth 2.0 implementations frequently use JWTs as self-contained access tokens, enabling stateless authorization decisions without database lookups.
Client Authentication: JOSE mechanisms provide client authentication through signed JWTs (JWT Bearer tokens) for machine-to-machine authorization.
This deep integration with OAuth/OIDC represents JOSE's primary strength: ubiquitous support in web authentication infrastructure. Organizations leveraging existing OAuth/OIDC deployments gain immediate compatibility with JOSE-based credentials.
JOSE implementations must address several security challenges:
Algorithm Confusion: The framework's support for multiple cryptographic algorithms creates risks if implementations don't properly validate algorithm specifications in headers. Attackers might manipulate algorithm fields to downgrade security.
Key Management: JOSE's reliance on external key management introduces all the challenges of traditional PKI: secure key generation, distribution, storage, and revocation.
Bearer Token Risks: JWT bearer tokens are vulnerable to theft and replay attacks if not properly protected through transport security and token lifetime management.
Signature Verification: Proper JOSE implementations require careful validation of signatures, timestamps, audience claims, and issuer identity to prevent various attack vectors.
KERI addresses many of these concerns through different architectural choices: key pre-rotation enables recovery from key compromise, witness networks provide duplicity detection, and verifiable data structures eliminate many classes of replay attacks.
JOSE benefits from mature implementation libraries across programming languages:
JavaScript/TypeScript: Libraries like jose provide comprehensive JWT/JWS/JWE support for Node.js and browser environments, enabling rapid web application development.
Python: Multiple implementations including python-jose and pyjwt offer JOSE functionality for backend services and API development.
Java: Enterprise frameworks include extensive JOSE support through libraries like Nimbus JOSE+JWT and integration with Java EE security frameworks.
Go, Rust, C#: Major languages include production-quality JOSE libraries, reflecting the framework's widespread adoption.
This extensive library support contrasts with KERI's more focused implementation ecosystem centered on KERIpy, KERIA, and emerging implementations like keri-ox in Rust. KERI's relative youth means fewer implementation options but potentially greater architectural consistency.
JOSE's performance profile reflects its JSON-centric design:
Signing Operations: JOSE signing performance depends primarily on the underlying cryptographic algorithm (RSA, ECDSA) rather than encoding overhead. The Base64 encoding adds modest computational cost.
Verification: JWT verification requires Base64 decoding, JSON parsing, and cryptographic signature verification. Modern implementations optimize these operations but cannot eliminate JSON parsing overhead.
Size Overhead: JSON's verbosity and Base64 encoding (33% expansion) create larger payload sizes compared to binary formats. This impacts network bandwidth and storage requirements.
CESR's design addresses performance differently through text-binary composability and self-framing, enabling efficient binary streaming when performance matters while maintaining text representation for debugging.
JOSE represents a mature, widely-adopted framework for securing JSON-based claim transfer in web applications. Its strengths lie in immediate interoperability with existing web infrastructure, extensive library support, and alignment with OAuth/OIDC authentication patterns. However, JOSE's dependence on external trust infrastructure and lack of built-in key rotation mechanisms limit its suitability for use cases requiring long-term verifiable provenance and decentralized trust.
KERI and ACDC address fundamentally different requirements through self-certifying identifiers, verifiable data structures, and ambient duplicity detection. Organizations implementing high-assurance credentials like vLEI choose KERI specifically because it provides cryptographically verifiable authority chains independent of certificate authorities.
Understanding JOSE helps KERI developers appreciate the architectural trade-offs between immediate web compatibility and long-term cryptographic verifiability, informing decisions about when each framework best serves specific use case requirements.