* Section 2.1 first bullet below first paragraph:

  With unauthenticated opportunistic TLS this is not attainable.

      Confidentiality: all (payload) communication is encrypted
      with the goal that no party should be able to decrypt it
      except the intended receiver.

  Confidentially protection is attained only against passive
  monitoring.  Indeed with a "baseline" security of cleartext,
  opportunistic applications may send cleartext when encryption
  does not appear to be supported by the peer.  So the above applies
  only for peers for which encryption happens to be possible.

* Section 2.1, 3rd bullet below first paragraph:

 Quote:

      Authentication: this means that an end-point of the TLS
      communication is authenticated as the intended entity to
      communicate with.  TLS allows to authenticate one or both end-
      points in the communication.  Some TLS usage scenarios do not
      require authentication, and are further discussed in Section 2.2.

  Not sure whether my comment on the above is in scope for the BCP,
  but the subtler aspects of mutual authentication in TLS are not
  widely understood, and perhaps ought to be more widely disseminated.

  One might think that mutual authentication in TLS is essentially
  agnostic about who authenticates whom and that active attack
  prevention can be attained via authentication of either the server
  or the client.  This naive view is not correct.

  When a server provides a public service open to all (accepting
  email for a domain, a free search service, ...) authentication
  of the server by the client is required and sufficient to provide
  the channel security necessary to assure the client that its
  access to the public service is not subject to active attacks.
  Any authentication of the client by the server in this context
  is no substitute for authentication of the server by the client.
  In fact clients of public services may prefer to remain anonymous.

  Thus, while in some cases (local policy, DANE, ...) a sending
  MTA may elect to authenticate the next-hop MX host, the authentication
  of sending MTAs by MX hosts plays no role in protecting the
  transmission channel and has rather limited potential utility.

  On the other hand, when a server supports the establishment of
  a bi-directional messaging channel (say XMPP) or provides access
  to confidential data available exclusively to a client or set of
  clients, then authentication of the client is needed to assure
  the server that it is initiating new messages or making data
  available to the right client.  In such cases it is not enough
  for the client to authenticate the server, the server needs to
  also authenticate the client (whether through TLS client certs,
  or some application-layer mechanism ideally channel-bound to the
  TLS connection).

  Is discussion of this topic in scope?

* Section 2.1, 3rd paragraph below initial bullet points:

  As before, this seems unclear:

      This document assumes that data integrity protection is
      always one of the goals of a deployment. In cases when
      integrity is not required, it does not make sense to employ
      TLS in the first place.

   Is this talking about integrity in the AEAD sense (protection
   against modification by a party other than one with whom the
   handshake took place), or in the sense of handshake authentication
   to ensure that the key exchange took place with the right party?

* Section 2.2, paragraph 1, please update DANE SMTP draft reference.

      draft-ietf-dane-smtp-with-dane

* Section 2.2, paragraph 2, please reference

      draft-dukhovni-opportunistic-security

* Section 4.1.1, SSL 2.0 "MUST NOT":

  This is fine even for opportunistic TLS.  Clients and servers
  that support only SSL 2.0 are exceedingly rare now.  In Postfix
  SSL 2.0 is disabled in the opportunistic client (no SMTP servers
  are v2 only), but for now still enabled in the opportunistic SMTP
  server (i.e. port 25, but not 587 where TLS is mandatory).  We
  surely would not break any extant SMTP clients by disabling SSL
  2.0 also in servers, though given that the server happily accepts
  cleartext, the case for doing so is not compelling.

  If some auditor pressures users to disable said server support,
  nothing bad happens, no interesting traffic goes in the clear
  instead.

* Section 4.1.1, SSL 3.0 "MUST NOT", TLS 1.0 SHOULD NOT.

  This on the other hand is too strong for opportunistic TLS.  Even
  SSL 3.0 is better than cleartext.  We can say that opportunistic
  TLS clients that would otherwise resort to cleartext transmission
  MUST support at least TLS 1.1, so that older/weaker protocol
  versions are negotiated only with servers that don't support TLS
  1.1.  However they MAY offer to negotiate TLS 1.0 and perhaps
  SSL 3.0.

  It should also be noted the the TLS protocol does not give clients
  the option to advertise arbitrary combinations of protocol versions.
  The set of supported protocol versions must be a contiguous range,
  with the client sending just the minimum and maximum supported versions.

  Thus a client cannot, for example, disable just TLS 1.0, while
  leaving SSL 3.0 and TLS 1.1 enabled.  Users need to be careful
  to make sure that the disabled protocols start with SSL 2.0 and
  continue to some highest disabled protocol version, with all
  remaining protocols enabled.

  OpenSSL, for example, will support the first not-disabled protocol,
  up to, but not including, the first disabled protocol after that.
  Thus disabling SSL 2.0 and TLS 1.0, leaves SSL 3.0 enabled which
  means that TLS 1.1 and TLS 1.2 are also disabled, and the client
  ends up supporting *only* SSL 3.0.  Avoid "holes" in the set
  of disabled protocol versions!

* Section 4.1.1, MUST offer to negotiate TLS 1.2:

  I appreciate the need to move forward to 1.2 and some day to 1.3.

  I am concerned about the manifold issues with TLS 1.2 interoperability.
  Users will continue to disable 1.2 in various cases for some
  time.  Can there be any wiggle-room here to disable TLS 1.2 for
  selected peers where 1.2 is determined to run into problems?

* Section 4.1.3, protocol fallback.

  While I'm not aware of any opportunistic TLS implementations that
  do protocol fallback (rather than just fallback to cleartext when
  handshakes fail), perhaps some exist.  For consistency, banning
  SSL 3.0 seems too strong if the alternative is cleartext.  Ideally,
  they should try fallback with a range of 3.0--3.2 (TLS 1.1) if
  1.2 fails.  I am not aware of significant interop issues with 1.1.
  They will then use 3.0 only when nothing else is an option.

*  Section 4.2 "Strict TLS":

   Quote:

      In many application protocols, clients can be configured to
      use TLS even if the server has not advertised that TLS is
      mandatory or even supported (e.g., this is often the
      case in messaging protocols such as IMAP and XMPP).
      Application clients SHOULD use TLS by default, and disable
      this default only through explicit configuration by the user.

    Some user-agent applications contact a small fixed set of peers
    (often just one submission, IMAP or XMPP server).  For these,
    defaulting to TLS and requiring user action to use cleartext
    is reasonable.

    Other applications (MTAs, XMPP infrastructure servers, ...)
    potentially contact similar servers in any domain on the
    Internet.  They cannot default to TLS on, until TLS adoption
    by peers is universal.  They MUST operate opportunistically,
    and determine peer by peer which peers support TLS and which
    do not.  The above advice is based on familiarity with just
    the first class of applications.

    Is the "SHOULD" meant to provide sufficient wiggle-room to
    allow SMTP and XMPP relays to be out of scope?  Or should the
    advice be a bit more specific?

*  Section 4.4 Resumption:

   Quote:

       If TLS session resumption is used, care ought to be taken
       to do so safely.  In particular, when using session tickets
       [RFC5077], the resumption information MUST be authenticated
       and encrypted to prevent modification or eavesdropping by
       an attacker.  Further recommendations apply to session
       tickets:

   Not sure what "authenticated" is intended to mean here.  RFC
   5077 recommends an encrypt + MAC ticket encoding.  Why does this
   BCP need to comment on ticket encoding security?  This is rarely
   an application issue, I would expect ticket encoding/decoding
   support to be provided by TLS toolkits, not application code.

   The chief interaction between applications and session tickets
   is key management, when the same session needs to work with a
   cluster of hosts.  So I thin the BCP should restrict its attention
   to the key management issues, which are not IIRC addressed in
   5077.

   For example, Postfix has code to provide OpenSSL with the relevant
   session ticket encryption/decryption keys (which Postfix rotates
   by default hourly), but the underlying encoding details are
   handled by the OpenSSL library.

* Section 4.6 SNI.

  Consensus: Clients that do know a primary DNS reference identifier
  for a server, and will use it to authenticate that server, MUST
  send SNI.  This includes, for example, "opportunistic DANE TLS"
  clients that are expected to use the TLSA base domain in this
  capacity.  [ If "opportunistic DANE TLS" is too bleeding edge a
  notion for this draft, the example can be safely skipped. ]

  However: As I posted previously.  Not all clients know what to send in
  SNI and SNI could lead to server connection drops if servers
  react poorly to names for which don't have explicitly configured
  certificates.  With unauthenticated TLS, the client ignores the
  server certificate anyway, so there is nothing to be gained by
  sending SNI (in fact this avoids a data leakage in the clear).

  So I would so far as to say that SNI is NOT RECOMMENDED for
  unauthenticated TLS.

  On the server side, there is simply no requirement to support
  SNI when the server is not doing any "virtual hosting".  So server
  side SNI support is optional.

  Servers supporting opportunistic clients SHOULD tolerate SNI
  requests that don't corresponding to any particular server
  certificate, and just respond with some appropriate choice of
  "default" or "closest match" certificate.

* Section, 5.1, MUST NOT RC4.

  Compromise: OK as MUST NOT for mandatory TLS.

  No surprise to anyone, I think this is too strong for opportunistic
  TLS where cleartext might otherwise result if RC4 is excluded.
  RC4 has been the most performant (absent hardware AES support
  which is relatively new still) cipher for many applications until
  very recently.  Also with some of the CBC attacks even more users
  moved to RC4.

  Thus RC4 is widely used, preferred, and is the sole working
  cipher suite on a non-negligible if small fraction of servers.
  Thus for opportunistic TLS it is (for now) premature IMHO to ban
  RC4.  I'd like to see it substantially fade from use (like export
  ciphers) before it is made MUST NOT.

* Section 5.1 (<128 bit text):

  See comment upstream.

* Section 5.5 (DH cipher suites) ranking:

  Quote:

    * Elliptic Curve DHE with negotiated parameters
    * TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, with 2048-bit Diffie-Hellman 
parameters
    * TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, with 1024-bit parameters.

  It should be made more clear that the choice between the last
  two is entirely based on server support for either or both.  No
  information is (as noted) available from the client.  Thus servers
  than can send DH 2048-bit parameters SHOULD do so, unless it is
  known that this will cause interoperability issues with a
  non-negligible fraction of clients.

* Section 7.1:

  Update obsolete references as previously noted.  Note that when
  TLS is unauthenticated, the entire question is out of scope.

  Further rules for establishing reference identities may appear
  in application-protocol-specific documents that refine 6125.

  This implies that authentication cannot take place when no secure
  reference identity is known, but does not say it outright.
  Applications where this is an issue must either employ unauthenticated
  TLS or must employ some identifier other than the peer hostname
  (e.g. the MX or SRV input domain used to locate the target host)
  or any explicitly configured identifier that is part of the
  mandatory TLS configuration for the destination.  The right choice
  to be specified in relevant application-specific standards.

* Section 7.5 (Revocation):

  See upstream comment re "forward looking" statements.

-- 
        Viktor.

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

Reply via email to