On Tue, Jul 29, 2014 at 07:53:41PM -0400, Wietse Venema wrote:

> I think it would help if someone can explain what an SMTP client
> certificate actually proves, without all the wishful thinking that
> every nugget of "security" is a worthwhile improvement.
> 
> What does the certificate really prove about the SMTP client?
> 
> What does the certificate prove about the connection from that SMTP
> client, and how useful is that really, bearing in mind that this
> SMTP connection is very likely only the last one in a sequence of
> network connections?
> 
> What does it prove about the message envelope and message content
> that was sent over that SMTP connection, bearing in mind that the
> message very likely originated from some other system?

Others may have their views of what a client certificate actually
demonstrates, below is mine:

    * It establishes an identity for the party at the other end of the TLS
      connection be it the "true" client or the MiTM.

    * This identity may or may not be the party attempting to send a
      given message.  To avoid MiTM attacks, the sending systems has
      to authenticate the server.

    * When a given organization (say an email service provider of
      some sort) has non-default access permissions to inject mail
      into a given server's queue, then a client certificate may be
      used as an alternative to SASL authentication to authenticate
      with an identity that is authorized for the desired access.  

    * If we add a feature that makes it possible to authenticate a
      client reference identity (typically the HELO name) via DANE
      or PKIX, then it becomes easier to grant non-default access
      rights based on a more stable identifier than a certificate
      fingerprint (which is difficult to coordinate across
      organizational boundaries).

    * Logging of DANE or PKIX verified HELO names may show positive
      evidence that some messages originated where claimed and were
      not intercepted in transit.  However, in fact what learns is
      the identity of either the "true" client or the "true" MiTM.
      If one can reasonably rule out the possibility that the
      authenticated party is in fact an MiTM attacker on some other
      source, then one may cautiously conclude that the message in
      question was delivered over a secure channel.

    * That said, should an MiTM attack take place, and if the sending
      system is not doing its job of authenticating the receiving server,
      there is nothing the server can do to detect MiTM, rather all that
      happens is that the MiTMed transmission either has no client
      cert at all (along with a forged HELO name and/or source IP address),
      or has a certificate for some untraceable throw-away domain.  The
      transmission will no longer have the authorization of the "real"
      client, provided that client has non-default authorization based
      on its special identity.

An astute administrator may be able to put enhanced functionality
in this space to good use.  It seems likely that many will simply
enjoy a false sense of "security", where none exists.  I am inclined
to add some functionality in this space, with strong disclaimers
in the documentation.

-- 
        Viktor.

Reply via email to