Penso che un esempio illustri meglio le mie domande. Diciamo che voglio inviare un messaggio JSON.
{ "payload": { "b": 5, "a": 1 }, "signature": "...9oZRsvygw1pTFuRcfXXpFKMRBmkrzdTn6lzS..." }
L'alternativa X sarebbe quella di mettere il carico utile in una stringa, possibilmente codificato in base64, e firmare quella stringa.
L'alternativa Y sarebbe quella di fare una rappresentazione canonica del contenuto semantico del carico utile e firmarlo. Ad esempio, potrei creare e firmare la seguente stringa
{"a":1,"b":5}
Si noti che nella rappresentazione semantica le chiavi sono ordinate in base al nome e non all'ordine iniziale.
Sarebbe meno o più sicuro firmare la rappresentazione semantica?