<aside> 📌 The following document is supposed to give a rough run-through of the JAdES specification as it exists at the time of writing.
It is very possible there are some grammatical and technical errors in the document. In case you find one, please consider contacting me to fix it.
</aside>
The JAdES digital signature is part of a broader effort to standardize the use of PKI and public key certificates in digital communications [ETSI TR 119 000][ETSI TR 119 001][ETSI TR 119 182-1].
Specifically, JAdES, as the name suggests, aims to apply those concepts to JSON objects, utilizing the already formalised JWS (JSON Web Signature) standard as defined in [RFC 7515].
The abstract for RFC 7515 reads as follows:
JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.
Information about JWA can be found in [RFC 7518] and about JWE in [RFC 7516].
The RFC 7515 is referenced extensively in the ETSI document as it is supposed to be an extended version of JWS, which includes additional headers,many of which have the same semantics as the proprieties defined in [CAdES] and [XAdES].
After specifying the mechanisms necessary for incorporating these properties in a JWS, a JAdES signatures are able to fulfill the same requirements as the previously mentioned standards of digital signatures.
Let’s say we want to sign some arbitrary data using this type of signature; the extremely summarized explanation is: the payload will be accompanied by JWS Protected Headers, a signature and, if needed, also some JWS Unprotected Headers in order to protect it’s integrity and autenticity.
The JAdES specification lists a serie of headers, most of which derived directly from the RFC 7515 documents, and some new ones defined to carry additional information about the signer and signing process.
The unprotected headers object can only contain the property etsiU
which will be an array of at least one object, each representing one header. Their content can be directly placed in the headers list, or they can be base64 encoded.