[Standards-JIG] The Great Encryption Debate

Ian Paterson ian.paterson at clientside.co.uk
Thu Aug 4 22:03:20 UTC 2005


> I think Bob should delete the published 
> options as soon as he logs in.
> Restrict offline Esessions to entities 
> that are subscribing to Bob's presence.

> I think it would still be worth mentioning that HMAC is a 
> necessary algorithm. It's nice to have a checklist of all
> the necessary algorithms before you begin coding.
> You should probably list Diffie-Hellman as well.

I've made all those changes in my working copy:

http://www.clientside.co.uk/jeps/jep-0116/jep-0116.html


> 1) xmlenc.  The <encrypted> element from this JEP is doing 
> almost the same thing.  If xmlenc is to be avoided, maybe 
> the authors should share their reasoning.

Yes, the JEP should explain why it avoids xmlenc. Two reasons come to
mind:

1. xmlenc is targeted at encrypting (parts of) XML documents. It is not
very suitable for sessions. (For example, I'm not even sure what the
best way to communicate the MAC would be.)

2. xmlenc's <EncryptedData/> element is too verbose. Here are equivalent
examples of the two elements (the EncryptedData example in incomplete
and probably incorrect):


<encrypted xmlns='http://jabber.org/protocol/esession'>
  <data kid=' ** KID ** '> ** base64 encoded m_final ** </data>
  <mac> ** base64 encoded a_mac ** </mac>
</encrypted>


<EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#'
               Type='http://www.w3.org/2001/04/xmlenc#Content'>
  <ds:KeyInfo xmlns:ds='http://www.w3.org/2000/09/xmldsig#'>
    <ds:KeyName> ** KID ** </ds:KeyName>
  </ds:KeyInfo>
  <CipherData>
    <CipherValue> ** base64 encoded m_final ** </CipherValue>
  </CipherData>
  <EncryptionProperties>
    <EncryptionProperty ... />
  </EncryptionProperties>  
</EncryptedData>




More information about the Standards mailing list