| > Note that there is a complex canonicalisation procedure for the JSON object, and that the sender must mutate the signed object; This is a big no-no and actual source of vulnerabilities. If you sign something, the signature goes around what you want to sign.[1] Doing "in-line" signatures is excessively more complex and error-prone. The easiest and most secure scheme is actually "sign a blob of bytes", i.e. signing a packed representation of a message. That way, you get zero ambiguity issues as far as signature-content interactions go [2], and you don't actually need a canonicalized message representation any more (which is not a common feature of serialization formats outside ASN.1 encodings). There might be other reasons to not use UMF, but this one is completely sufficient to avoid it. (Also calling HMAC tags "signatures" is confusing as heck and should be avoided.) (Also the actual method of how the MAC is calculated is not specified; so clearly UMF is not a format, it is a meta-format.) [1] Even JWT got that right. [2] Context ambiguity AKA The Horton Principle remains, because that's not something a format solves. |
Again your point is valid and will likely result in the depreciation of the signature field.
Thanks for taking the time to offer feedback.