+1

Can we please stop confusing signing and MAC?



On Nov 6, 2012, at 10:54 AM, Jim Schaad <[email protected]> wrote:

> <personal>
> 
> Only if you have a really loose definition of signing - it gives you an
> integrity check but not origination which is usually implied by the term
> signing
> 
> Jim
> 
> 
>> -----Original Message-----
>> From: John Bradley [mailto:[email protected]]
>> Sent: Tuesday, November 06, 2012 10:50 AM
>> To: Dick Hardt
>> Cc: Jim Schaad; 'Mike Jones'; [email protected]
>> Subject: Re: [jose] encrypting AND signing a token
>> 
>> I should also note that with symmetric keys, the alg option of A128KW with
>> an enc of A128CBC+HS256 effectively gives you signing and encryption in a
>> single JWE.
>> 
>> That doesn't solve the asymmetric signing case, but may work for some
>> people .
>> 
>> John B.
>> On 2012-11-06, at 10:37 AM, John Bradley <[email protected]> wrote:
>> 
>>> SAML performs this as separate operations.
>>> 
>>> Now in some cases the assertion is signed then encrypted and then the
>> message signed to deal with the AESCBC padding oracle attack.
>>> 
>>> There is non technical issue around the use of qualified signatures in
> cases
>> where non repudiation is required.
>>> Signing a encrypted object has different connotations than signing a
>> unencrypted one.
>>> 
>>> I don't know what the status of a combined operation would be.   It is
>> probably not relevant to your use case.
>>> 
>>> At IETF #83 I presented including ECDH-SS as an encryption option as it
>> provides sender verification.
>>> I think that would answer your use case, depending on how you feel about
>> EC.
>>> 
>>> The work group rejected adding that algorithm at the time on the grounds
>> that it is not used in places where it is supported.
>>> ECDH-ES is defined and is considered more secure than ECDH-SS mostly
>> because it is harder to get wrong.
>>> 
>>> I am not recommending revisiting the issue, but it would be a way to
>> address the composite use case.
>>> 
>>> Despite being a Canadian I am not shilling for certicom.  Just saying.
>>> 
>>> John B.
>>> On 2012-11-04, at 2:55 PM, Dick Hardt <[email protected]> wrote:
>>> 
>>>> Thanks Jim. An interesting historical reference.
>>>> 
>>>> In my use case, who signed or who the token is for is not a secret. The
>> payload needs to be kept a secret.
>>>> 
>>>> Does no one sign and encrypt SAML tokens?
>>>> Is this not a common use case?
>>>> 
>>>> If it does need to be solved, it would seem to me that a standards body
>> would be the place to have lots of eyes look at how to sign and encrypt a
>> token so that people do not do naive sign and encrypt.
>>>> 
>>>> Q: does anyone else need to sign and encrypt?
>>>> 
>>>> -- Dick
>>>> 
>>>> On Nov 4, 2012, at 10:24 AM, "Jim Schaad" <[email protected]>
>> wrote:
>>>> 
>>>>> <personal>
>>>>> 
>>>>> I would note that the original PKCS#7 specifications had a mode that
>>>>> provided a similar sign and encrypt as a single operation mode.
>>>>> When the
>>>>> PKCS#7 specifications where adopted by the IETF as part of the CMS
>>>>> work, this mode was discussed and very deliberately dropped because
>>>>> of numerous security problems that had been found.  These included
>>>>> (but are not limited
>>>>> to) the fact that it was signed or who signed it was sometimes a
>>>>> security leak.  Also there were attacks where the signed and
>>>>> encrypted mode could be converted to just an encrypted mode.
>>>>> 
>>>>> I would think that there would be a need for a very detailed
>>>>> security analysis that we are not prepared to do in order to support
>>>>> a signed and encrypted mode.
>>>>> 
>>>>> Jim
>>>>> 
>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: [email protected] [mailto:[email protected]] On
>>>>>> Behalf Of Dick Hardt
>>>>>> Sent: Friday, November 02, 2012 12:30 PM
>>>>>> To: Mike Jones
>>>>>> Cc: [email protected]
>>>>>> Subject: Re: [jose] encrypting AND signing a token
>>>>>> 
>>>>>> Not only is my original token increasing in size by 4/3, I am also
>>>>>> adding another header, payload and signature.
>>>>>> 
>>>>>> One of the objectives of JWT was to enabled compact tokens. It
>>>>>> would seem that we should be able to support both signing and
>>>>>> encryption of the same token.
>>>>>> 
>>>>>> All the encryption use cases I can think of involving asymmetric
>>>>>> keys
>>>>> would
>>>>>> also require signing with the senders private key.
>>>>>> 
>>>>>> My suggestion is to be explicit in what the algorithm etc. is used
> for:
>>>>>> 
>>>>>> Rather than "alg" and "enc", we have:
>>>>>> 
>>>>>> "algs" - algorithm for token signing "algk" - algorithm for content
>>>>>> management key encryption "alge" -
>>>>> algorithm
>>>>>> for payload encryption
>>>>>> 
>>>>>> Similiarly,
>>>>>> 
>>>>>> "kids" - key id for signing
>>>>>> "kidk" - key id for content managment key encryption
>>>>>> 
>>>>>> We could probably make these three or even two letter codes if you
>>>>>> want to save a couple bytes.
>>>>>> 
>>>>>> -- Dick
>>>>>> 
>>>>>> On Nov 2, 2012, at 8:46 AM, Mike Jones
>>>>>> <[email protected]>
>>>>>> wrote:
>>>>>> 
>>>>>>> The way you put it brings one straightforward solution to mind.
>>>>>>> Solve
>>>>> 1-3
>>>>>> with a JWE.  Solve 4-5 by signing the JWE as a JWS payload.  Done.
>>>>>>> 
>>>>>>> I do understand that the 4/3 space blowup-of double base64url
>>>>>>> encoding
>>>>>> the JWE motivates your earlier proposal about nested signing.  (See
>>>>>> Dick's
>>>>>> 10/29/12 message "[jose] signing an existing JWT".)  I also
>>>>>> understand
>>>>> that if
>>>>>> you could do integrity with the asymmetric signature then the
>>>>>> integrity provided by the JWE itself may be redundant.  I don't
>>>>>> have a specific
>>>>> proposal
>>>>>> on how to do that.
>>>>>>> 
>>>>>>>                                 -- Mike
>>>>>>> 
>>>>>>> -----Original Message-----
>>>>>>> From: [email protected] [mailto:[email protected]] On
>>>>>>> Behalf Of Dick Hardt
>>>>>>> Sent: Friday, November 02, 2012 8:22 AM
>>>>>>> To: [email protected]
>>>>>>> Subject: [jose] encrypting AND signing a token
>>>>>>> 
>>>>>>> I am trying to figure out how to implement JWT/JWS/JWE to solve a
>>>>>>> real
>>>>>> world problem.
>>>>>>> 
>>>>>>> 1) Bob sends a token to Charlie via Alice. (Alice gets token from
>>>>>>> Bob and then Alice gives token to Charlie)
>>>>>>> 2) Alice must be prevented from reading the token. (token needs to
>>>>>>> be
>>>>>>> encrypted)
>>>>>>> 3) Bob and Charlie can share a symmetric key.
>>>>>>> 
>>>>>>> I can solve this with JWE.
>>>>>>> 
>>>>>>> Now let's add another condition.
>>>>>>> 
>>>>>>> 4) Charlie wants non-repuditation that Bob created the token.
>>>>>>> 5) Bob has a private key and a public key
>>>>>>> 
>>>>>>> I don't see how to do this using JWE. It seems I have to sign the
>>>>>>> same
>>>>> token
>>>>>> I had previously with JWS. This seems inefficient since I should be
>>>>>> able
>>>>> to
>>>>>> replace the JWE integrity computation done with the symmetric key
>>>>>> with the private key -- but the "alg" parameter is the same in both
>>>>>> encrypting and signing.
>>>>>>> 
>>>>>>> Now let's expand this to replacing the symmetric key with a
>>>>> public/private
>>>>>> key pair for encryption. Bob encrypts with Charlies public key and
>>>>>> signs
>>>>> with
>>>>>> Bob's private key (we also need to make sure we are not doing naive
>>>>>> encryption and signing here, would be a really useful to specify
>>>>>> what
>>>>> needs
>>>>>> to be done there). Now we need to have parameters for both
>>>>>> public/private key pairs in the header.
>>>>>>> 
>>>>>>> Am I missing something here?
>>>>>>> 
>>>>>>> Seems like we can do this if we change the header parameters to
>>>>>>> specify
>>>>> if
>>>>>> they ("alg", "kid", et.c) are for token signing, payload encryption
>>>>>> or
>>>>> content
>>>>>> key encryption.
>>>>>>> 
>>>>>>> -- Dick
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> jose mailing list
>>>>>>> [email protected]
>>>>>>> https://www.ietf.org/mailman/listinfo/jose
>>>>>> 
>>>>>> _______________________________________________
>>>>>> jose mailing list
>>>>>> [email protected]
>>>>>> https://www.ietf.org/mailman/listinfo/jose
>>>>> 
>>>> 
>>>> _______________________________________________
>>>> jose mailing list
>>>> [email protected]
>>>> https://www.ietf.org/mailman/listinfo/jose
>>> 
> 
> _______________________________________________
> jose mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/jose

_______________________________________________
jose mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/jose

Reply via email to