12 ms·
In a trusted system, if you don't trust the structure you are working with, why would you trust the signature? I'd want to always work from the signed blob. T
by cbsmith 10y ago
In a trusted system, if you don't trust the structure you are working with, why would you trust the signature?
I'd want to always work from the signed blob.
That said, this is one reason to use flatbuffers/capt'n proto I guess: you don't have to worry about this since you never unpack the blob.
- JoachimSchipper 10y agoThink of a data flow A->B->C, with A e.g. handling incoming message server, B being a spam/virus filter, and C holding the user's mailbox. Spam/virus filters are useful, but are also rather vulnerable - so C is willing to trust B's spam/non-spam judgement, but wants to ensure that B can't alter or make up messages. If protobufs had one canonical encoding, B could unpack the message and re-pack it when done; with the current protobuf implementation, B needs to keep the original blob around. In either case, C needs to check the signature on whatever blob it receives. (Some details have been changed.)
- cbsmith 10y agoSo wouldn't you stick with the original message from A, and just have B sign that? You wouldn't want to have B repack it, because then B has the potential to muck with things.