[Telepathy] Spec meeting about SSL and E2E Encryption

Sjoerd Simons sjoerd.simons at collabora.co.uk
Tue Feb 2 03:18:22 PST 2010


Hey,

  Yesterday Simon, Will, Cosicmo, Eitan and myself had a telepathy spec
  meeting about the Encryption and SSL verification spec as proposed by
  respectively Cosicmo and Eitan. Brief notes are below :)

  The two interfaces discussed are available at:
   * http://people.collabora.co.uk/~cosimoc/encryption-spec/spec/org.freedesktop.Telepathy.Channel.Interface.Encryption.DRAFT.html
   * http://people.collabora.co.uk/~cosimoc/encryption-spec/spec/org.freedesktop.Telepathy.Verification.RemoteCertificate.html

  We had the following notes on the encryption spec:
    * Encryption spec needs to tell the client which information it should
      provide (what kind of certificates, which identity etc)..
    * Wjt mentions that this interface requires both the channel handler
      and the verification handler needs the certificates. Which seems
      unnecesarily complex and would require interaction between them
      (accessing the same certificate store etc).
    * Smcv suggest splitting the intention and the process. Which would mean
      that the encryption interface on the channel would just indicate the
      encryption state/level and the verification interface would handle
      fingerprints/passwords/certificates as needed. This means that if a
      clients wants to have an encrypted channel it's not required to
      reimplement a lot of the verification.
    * There is an open question about what kind of information should be
      available from the Encryption channel. A handler for a channel should be
      able to show the user how its channel is secured and why (used
      certificate X to verify identity Y etc). Given that with the split this
      is now part of the verification channel this isn't entirely obvious.
      Current concensus seems to be that we could have an EncryptionDetails
      property with contains this kind of information.
    * Open Question is what to do while still verifying/encrypting.. IOTW
      should the channel delay message delivery, not start an FT etc while the
      channel is still insecure. General consensus seems to be that we should
      be able to request a channel to be secure in which case it should indeed
      queue/fail/whatever anything before the channel is secured. If we're
      doing oppurtunistic encryption it's up to the CM to decide what to do, in
      general given that it's oppurtunistic it shouldn't be required to
      encryption everything as possible (there are no guarantees for the user
      in the oppurtunistic case, but they should still be able to know when
      encryption got turned on)

  On the SSL certificate validation
  * Question what to do when verifying a certificate at connect time and the
    handler disappears (crashes or whatever). A very rough proposal is to
    clarify things with the following ration.
    => If the SSL certificate channel gets closed unexpectedly (before either
      Accept or Reject is called) then the CM should treat it as a Reject if
      and only if the ContactCapabilities of clients show that there was in
      theory a handler for certificate verification. If there was no such
      handler in the ContactCapabilities then for backwards compatibility the
      CM should treat closing the channel as an Accept and fall back to its
      current behaviour wrt. certificates.

      This ensures that we're both backwards compatible and that we have a way
      of telling the CM that it should threat the verification channel as
      completely authoritive and thus closing the loophole where a certificate
      can cause itself to be accepted by causing the handler to crash.

  Sjoerd
-- 
You can never tell which way the train went by looking at the tracks.


More information about the telepathy mailing list