-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Address some 2023 review questions (#93)
* Address some 2023 review questions * Applied DW's suggestion Co-authored-by: David Waite <[email protected]> --------- Co-authored-by: David Waite <[email protected]>
- Loading branch information
1 parent
df9397e
commit 63f0198
Showing
3 changed files
with
14 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -46,7 +46,7 @@ organization = "Self-Issued Consulting" | |
|
||
The JOSE set of standards established JSON-based container formats for Keys, Signatures, and Encryption. They also established IANA registries to enable the algorithms and representations used for them to be extended. Since those were created, newer cryptographic algorithms that support selective disclosure and unlinkability have matured and started seeing early market adoption. | ||
|
||
This document defines a new container format similar in purpose and design to JSON Web Signature (JWS) called a _JSON Web Proof (JWP)_. Unlike JWS, which integrity-protects only a single payload, JWP can integrity-protect multiple payloads in one message. It also specifies a new presentation form that supports selective disclosure of individual payloads, enables additional proof computation, and adds a protected header to prevent replay and support binding mechanisms. | ||
This document defines a new container format similar in purpose and design to JSON Web Signature (JWS) called a _JSON Web Proof (JWP)_. Unlike JWS, which integrity-protects only a single payload, JWP can integrity-protect multiple payloads in one message. It also specifies a new presentation form that supports selective disclosure of individual payloads, enables additional proof computation, and adds a protected header to prevent replay. | ||
|
||
{mainmatter} | ||
|
||
|
@@ -119,6 +119,7 @@ The issued form can only be confirmed by a holder as being correctly formed and | |
### Issuer Protected Header | ||
|
||
The issuer protected header applies to all of the payloads equally. It is recommended that any payload-specific information not be included in this header and instead be handled outside of the cryptographic envelope. This is to minimize any correlatable signals in the metadata, to reduce a verifier's ability to group different presentations based on small header variations from the same issuer. | ||
The protected header is always disclosed, whereas payloads can be selectively disclosed. | ||
|
||
Every issuer protected header MUST have an `alg` value that identifies a valid JSON Proof Algorithm (JPA). | ||
|
||
|
@@ -164,6 +165,7 @@ Any one or more payloads may be non-disclosed in a presented JWP. When a payloa | |
The disclosed payloads will always be in the same array positions to preserve any index-based references by the application between the issued and presented forms of the JWP. How the sparse array is represented is specific to the serialization used. | ||
|
||
Algorithms MAY support including a proof about a payload in the presentation. Applications then treat that proven payload the same as any other non-disclosed payload and do not include it in the presented array of payloads. | ||
Rather, proofs about payloads, such as "age >= 21", are included in the presentation proof. | ||
|
||
### Presentation Proof | ||
|
||
|
@@ -379,13 +381,13 @@ Figure: jwp-issuer-header-base64 | |
|
||
Each payload must also be individually encoded: | ||
|
||
The first payload is the string `"Doe"` with the octet sequence of `[ 34, 68, 111, 101, 34 ]` and base64url-encoded as `IkRvZSI`. | ||
The first payload is the JSON string `"Doe"` with the octet sequence of `[ 34, 68, 111, 101, 34 ]` and base64url-encoded as `IkRvZSI`. | ||
|
||
The second payload is the string `"Jay"` with the octet sequence of `[ 34, 74, 97, 121, 34 ]` and base64url-encoded as `IkpheSI`. | ||
The second payload is the JSON string `"Jay"` with the octet sequence of `[ 34, 74, 97, 121, 34 ]` and base64url-encoded as `IkpheSI`. | ||
|
||
The third payload is the string `"[email protected]"` with the octet sequence of `[ 34, 106, 97, 121, 100, 111, 101, 64, 101, 120, 97, 109, 112, 108, 101, 46, 111, 114, 103, 34 ]` and base64url-encoded as `ImpheWRvZUBleGFtcGxlLm9yZyI`. | ||
The third payload is the JSON string `"[email protected]"` with the octet sequence of `[ 34, 106, 97, 121, 100, 111, 101, 64, 101, 120, 97, 109, 112, 108, 101, 46, 111, 114, 103, 34 ]` and base64url-encoded as `ImpheWRvZUBleGFtcGxlLm9yZyI`. | ||
|
||
The fourth payload is the string `42` with the octet sequence of `[52, 50]` and base64url-encoded as `NDI`. | ||
The fourth payload is the JSON number `42` with the octet sequence of `[52, 50]` and base64url-encoded as `NDI`. | ||
|
||
The Single Use algorithm utilizes multiple individual JWS Signatures. Each signature value is generated by creating a JWS with a single Protected Header with the associated `alg` value. In this example, the fixed header used for each JWS is the serialized JSON Object `{"alg":"ES256"}`. The JWS payload for each varies and the resulting signature value is used in its unencoded form (the octet string, not the base64url-encoded form). | ||
|
||
|