-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Signed Headers should either mention representation metadata or forbid them #36
Comments
@mnot does it sound reasonable to you? |
All of these headers can affect how a recipient interprets the message. |
@ioggstream @mnot, yes, I agree that doing so would provide a smaller security attack surface. That said, we already have lots of deployed implementations in production (we have no idea exactly how many): #1 Would it be acceptable if we stated that it is recommended that those items are signed as well, but for a base level conforming implementation, they don't need to be? Something to this effect:
Could we generalize the language to something like?
|
Most implementations verify after decoding content... so signing |
Ugh, right... In general, the spec tries not to be super prescriptive about which headers are signed because, in general, when we try to make a particular header mandatory, someone seems to appear with a legitimate reason why it doesn't work for their use case (e.g., proxies, wrong part of the processing pipeline, middle-boxes making it impossible to relay the message, etc.) |
That's clear. The point is:
As banking apis relies on this spec, I'd make it as simpler as possible, but not simpler;
This SHOULD would open the door to broken implementations that hit badly JWT. Let's make different mistakes ;)
Do you mean
There are various non-standard Content-* headers (eg. Content-MD5) which are not representation metadata, so I'd rather reference "all representation metadata referenced in RFC7231". @mnot knows better than me. |
@dlongley afaik as
I understand this position, but afaik "Content-Encoding" is part of the semantics: without content-encoding I cannot know whether I downloaded a "gzipped file" or a gzip-encoded html page object. And when signatures are involved it means you have signed different things, that is:
|
We have used Signature with Instance digests and ended up asking ourselves some similar questions, I posted these to the HTTP mailing list: https://lists.w3.org/Archives/Public/ietf-http-wg/2018AprJun/0192.html One of the salient points of that discussion was from Julien Reschke:
Since then there has been great progress on updating the core HTTP documents, but I think the fundamental concerns still remain. |
@LPardue I had a brief discussion on updating RFC 3230 to reference "Selected Representation" here How did it end with your PS: check your 19jul emails ;) |
@msporny probably the first step is to add all those considerations to the [Security] section. |
We're addressing this in https://datatracker.ietf.org/doc/draft-polli-resource-digests-http/ |
@dlongley in https://ioggstream.github.io/draft-polli-resource-digests-http/draft-polli-resource-digests-http.html#rfc.section.3 we introduce two
Still you should explicitly include Content-Encoding in the signature to protect the recipient from malicious intermediaries removing content-encoding and altering the semantic of the message. This is now nicely explained in https://ioggstream.github.io/draft-polli-resource-digests-http/draft-polli-resource-digests-http.html#rfc.section.2 |
I expect
Representation metadata (Content-Type, Content-Encoding, Content-Language) should be either:
Because: see notes
Instead
There's no clear indication about the relation between Digest and Representation modifier.
Notes
https://tools.ietf.org/html/rfc7231#section-3.1 indicates the following representations metadata
As
Digest
must be calculated on the "selected representation" which is tied to representation metadataWe either should:
Probably, a similar reasoning should be done for Content-Language.
The text was updated successfully, but these errors were encountered: