Re: comments on draft-miller-xmpp-e2e-06

Carl Wallace <[email protected]>
Newsgroups gmane.ietf.xmpp
Message-ID <CF486882.139FE%[email protected]>
On 3/7/14, 6:23 AM, "Matt Miller" <[email protected]> wrote:

><snip>
>> - It would be nice to have a summary of new state information the
>> sender and recipient are required to manage (like SMKs) and
>> significant new operations (like authorization of key requests
>> where a given recipient may use a number of different public keys)
>
>That is a very good suggestion.  Do you think you could provide some
>text to get it started?

Here¹s some text as a starting point:

Existing XMPP clients will need to maintain additional state information
and incorporate new user interfaces to support end-to-end encryption and
authentication.  Changes for sending clients include:

- Generate session master keys (SMKs)
- Store SMKs for use during active sessions
- Store SMKs to provide to peers and to support reading of saved messages
(may require use of storage key)
- Accept requests for SMKs
- Release SMKs to authorized requestors (where SMK may be requested from
multiple resources each using different means to authenticate)
- Generate content encryption keys (CEK)
- Use SMK and CEK values to encrypt XMPP stanzas
- Generate signing key (optional)
- Use signing key to sign XMPP stanzas

Changes for receiving clients include:

- Send request for SMK to peers
- Store SMK for use during active session
- Use SMK to decrypt CEK used to decrypt XMPP stanzas
- Store session master keys retrieved from peers to support reading of
saved messages (may require use of storage key)
- Provide indication to users when encryption is in use
- Retrieve keys required to verify signatures on signed XMPP stanzas
- Verify signatures and display indication of success/failure to user
- Store keys required to verify signature to support reading of saved
messages (may require use of storage key)


>><snip>
>>- Include some guidance on SMK lifetime.
>
>There is *some* guidance in section 11.2, but I admit it is rather
>vague.  Could you provide more specific suggestions?

I did not generate any text for this yet because the use of SMKs still
seems unsettled to me.  Some issues:

- including a CEK encrypted for each known end point key plus under an SMK
potentially exceeds size threshold used by some servers
- having each end-point request SMKs from the sender generates additional
traffic
- a sender that communicates with a large number of peers must maintain a
large SMK database for an undetermined period of time
- the sender must be available for a recipient to decrypt messages sent
under an SMK that has not previously been retrieved (this is possibly not
acceptable for all cases where XMPP may be used)
- SMK usage complicates storage of encrypted messages (recipients could
re-encrypt the CEK under a storage key or maintain a database of encrypted
SMKs)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.