Skip to content

Commit b2c6a22

Browse files
committed
Better explain why not JWS.
1 parent 2c320df commit b2c6a22

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ Out of scope (for now at least):
2727
## Why not...?
2828

2929
* Why not raw signatures? Too fragile.
30-
* Why not [JOSE/JWS/JWT](https://jwt.io)? JSON-specific, too complicated, too
31-
easy to mess up.
30+
* Why not [JWS](https://tools.ietf.org/html/rfc7515)? Too many insecure
31+
implementations and features.
3232
* Why not [PASETO](https://paseto.io)? JSON-specific, too opinionated.
3333
* Why not the legacy TUF/in-toto signature scheme? JSON-specific, relies on
3434
canonicalization.

background.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ There is no other simple, foolproof signature scheme that we are aware of.
2020
JSON-specific and relies on [canonicalization](motivation.md), which is an
2121
unnecessarily large attack surface.
2222

23-
* [JWS] is JSON-specific, complicated, and error-prone.
23+
* [JWS], though popular, has a history of
24+
[vulnerable implementations](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/)
25+
due to the complexity and lack of specificity in the RFC, such as not
26+
verifying that `alg` matches the public key type or not verifying the root
27+
CA for `x5c`. It also requires a JSON library even if the payload is not
28+
JSON, though this is a minor issue.
2429

2530
* [PASETO] is JSON-specific and too opinionated. For example, it mandates
2631
ed25519 signatures, which may not be useful in all cases.

0 commit comments

Comments
 (0)