Hi George,

JSON-LD still requires c14n. I opened the particular spec and the c14n
job with JSON-LD appears quite complex. The structure of the linked data
must also be brought into some particular form.

https://json-ld.github.io/normalization/spec/

C10n of plain JSON should be a simpler job. There should also be more
and better software support for that. I don't think we can get around
JSON c10n, if we want to keep the message content in clear text.

Vladimir

On 03/09/18 15:27, George Fletcher wrote:
> I'm not a big fan of canonicalization for signatures. In the past it
> has been brittle, the libraries subject to bugs, and hard for
> developers to adopt. That said, if no canonicalization is not a
> requirement, have you checked out JSON-LD? It has embedded signature
> support. https://json-ld.org/spec/latest/
>
> On 9/3/18 6:23 AM, Dave Tonge wrote:
>> Hi Phil
>>
>> Thanks again for the helpful reply.
>> I 100% agree with you about the problem of false negatives with RFC3230.
>> I am not in favour of the its use and will do my best to highlight
>> these issues with those who are proposing its use with the draft
>> cavage spec.
>>
>> I also share your worry about the potential for things to move back
>> to a SOAP style of API.
>>
>> Having a look at the
>> https://tools.ietf.org/html/draft-ietf-oauth-signed-http-request-03
>> spec it is quite general purpose, whereas I'm in favour of something
>> that is explicitly designed for JSON requests and responses. If there
>> was confidence in the JSON canonicalisation described in
>> https://tools.ietf.org/html/draft-erdtman-jose-cleartext-jws-00 then
>> this seems to enable APIs to stay REStful but with the support for
>> self-contained signatures. For many applications I agree that there
>> will need to be some repetition of values in the JSON payload that
>> are already in the header, e.g. audience, issuer and time. But if
>> general purpose HTTP signing is a lost cause, then "Cleartext JSON
>> Web Signatures" seem the next best thing.
>>
>> Dave
>>
>>
>>
>>
>>
>>
>> On Sat, 1 Sep 2018 at 01:06, Phil Hunt <phil.h...@oracle.com
>> <mailto:phil.h...@oracle.com>> wrote:
>>
>>     Dave,
>>
>>     I’m not sure this is as useful as one might think - from RFC3230…
>>>
>>>
>>>         7 <https://tools.ietf.org/html/rfc3230#section-7> Security
>>>         Considerations
>>>
>>>
>>>
>>>         This document specifies a data integrity mechanism that
>>> protects HTTP
>>>         instance data, but not HTTP entity headers, from certain
>>> kinds of
>>>         accidental corruption.  It is also useful in detecting at
>>> least one
>>>         spoofing attack [9
>>> <https://tools.ietf.org/html/rfc3230#ref-9>].  However, it is not
>>> intended as general
>>>         protection against malicious tampering with HTTP messages.
>>>
>>>         The HTTP Digest Access Authentication mechanism [5
>>> <https://tools.ietf.org/html/rfc3230#ref-5>] provides some
>>>         protection against malicious tampering.
>>
>>     For example, if you have a corporate web proxy or ISP that decides
>>     to help out by doing content compression as an example, all your
>>     requests will start failing (so-called accidental corruption).  We
>>     learned from XML that consistent canonicalization of the request
>>     data is important.
>>
>>     IOW…RFC3230 is valid when it works, but what about all the times
>>     it fails for no apparent reason? (false negatives)
>>
>>     In my humble experience with REST, the HTTP body is only a small
>>     part of the transaction. The headers, method, and URL parameters
>>     contain all of the semantics to an application transaction. Sure
>>     there are some requests that are just built on HTTP POST. But you
>>     have to be sure, there are no parameters that matter in the
>>     headers or URL.
>>
>>     The OAuth WG took a big ambitious stab at this (thanks Justin),
>>     but we weren’t convinced implementations would be stable..
>>     https://tools.ietf.org/html/draft-ietf-oauth-signed-http-request-03
>>
>>     I can’t help but worry we are headed back to RPC style SOAP like
>>     containers based on JSON tokens that can be signed and that
>>     contain all the semantics and data of a transaction to be signed. 
>>     Now that I said that, I’m going to go wash my mouth out. Ugh.
>>
>>     Phil
>>
>>
>>
>>>     On Aug 31, 2018, at 3:05 PM, Dave Tonge
>>>     <dave.to...@momentumft.co.uk
>>>     <mailto:dave.to...@momentumft.co.uk>> wrote:
>>>
>>>     Thanks for the replies.
>>>     You're absolutely right Phil and George - apologies I omitted the
>>>     digest step from the first email.
>>>     Both the STET and Berlin Group specs require the use of SHA-256
>>>     or SHA-512 digest header as per RFC3230
>>>     (https://tools.ietf.org/html/rfc3230
>>>    
>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__tools.ietf.org_html_rfc3230&d=DwMFaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=na5FVzBTWmanqWNy4DpctyXPpuYqPkAI1aLcLN4KZNA&m=_ipDvDLnPDvRc4f-nizqhqic-6zojUcwkws7Fel97CU&s=y5Rg_ik_9mvP1Whrv68p0G885X7gRo32oxxeEeA08Ys&e=>)
>>>     They then use the draft cavage spec to sign a defined set of
>>>     headers which includes the date and digest headers..
>>>
>>>     > If you want attestation, better to use SET or plain JWT.
>>>
>>>     The pushback on this has been that to use JWTs for all API
>>>     request bodies and responses would make the APIs harder to
>>>     develop against and debug.
>>>     However I do think it is a better option than having signatures
>>>     in headers. I like the idea of using content negotiation to allow
>>>     clients to request either application/json or application/jwt
>>>     from an API endpoint.
>>>
>>>     I'd be interested if there is any interest in the working group
>>>     for this draft though:
>>>     https://tools.ietf.org/html/draft-erdtman-jose-cleartext-jws-00
>>>    
>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__tools.ietf..org_html_draft-2Derdtman-2Djose-2Dcleartext-2Djws-2D00&d=DwMFaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=na5FVzBTWmanqWNy4DpctyXPpuYqPkAI1aLcLN4KZNA&m=_ipDvDLnPDvRc4f-nizqhqic-6zojUcwkws7Fel97CU&s=0G1ikcDnNzvZqp7w6xlLnfhtq6GZGc0HlswqLcp4OK4&e=>.
>>>     As Ben mentioned, does the issue of JSON canonicalization make
>>>     this a non-starter?
>>>
>>>     Thanks
>>>
>>>     Dave
>>
>>
>>
>> -- 
>> Dave Tonge
>> CTO
>> Moneyhub Enterprise
>> <http://www.google.com/url?q=http%3A%2F%2Fmoneyhubenterprise.com%2F&sa=D&sntz=1&usg=AFQjCNGUnR5opJv5S1uZOVg8aISwPKAv3A>
>> Moneyhub Financial Technology, 5th Floor, 10 Temple Back, Bristol,
>> BS1 6FL
>> t: +44 (0)117 280 5120
>>
>> Moneyhub Enterprise is a trading style of Moneyhub Financial
>> Technology Limited which is authorised and regulated by the Financial
>> Conduct Authority ("FCA"). Moneyhub Financial Technology is entered
>> on the Financial Services Register (FRN 809360) at
>> fca.org.uk/register <http://fca.org.uk/register>. Moneyhub Financial
>> Technology is registered in England & Wales, company registration
>> number 06909772 .
>> Moneyhub Financial Technology Limited 2018 ©
>>
>> DISCLAIMER: This email (including any attachments) is subject to
>> copyright, and the information in it is confidential. Use of this
>> email or of any information in it other than by the addressee is
>> unauthorised and unlawful. Whilst reasonable efforts are made to
>> ensure that any attachments are virus-free, it is the recipient's
>> sole responsibility to scan all attachments for viruses. All calls
>> and emails to and from this company may be monitored and recorded for
>> legitimate purposes relating to this company's business. Any opinions
>> expressed in this email (or in any attachments) are those of the
>> author and do not necessarily represent the opinions of Moneyhub
>> Financial Technology Limited or of any other group company.
>
>
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to