On Fri, Oct 24, 2014 at 1:28 PM, Richard Könning <
richard.koenn...@ts.fujitsu.com> wrote:

> Am 24.10.2014 20:47, schrieb David Li:
>
>>
>>
>> On Fri, Oct 24, 2014 at 11:18 AM, Richard Könning
>> <richard.koenn...@ts.fujitsu.com
>> <mailto:richard.koenn...@ts.fujitsu.com>> wrote:
>>
>>     At 24.10.2014 19:03, David Li wrote:
>>
>>         I am still a little unclear by what exactly TLS_FALLBACK_SCSV
>> option
>>         would do.
>>
>>         What if the server only supports SSLv3 + TLSv1 and client only
>>         connects
>>         with SSLv3? Without the patch, both would agree to SSLv3. So
>>         this is a
>>         problem.
>>
>>
>> Well I thought it's the CBC cipher mode used by SSLv3 that has the
>> problem. So we should avoid SSLv3 all together.
>>
>
> Exactly. But when you have a client which speaks only SSLv3 as in your
> example below you have to decide: Don't use the client or enhance it so it
> speaks at least TLSv1 or use SSLv3 despite the problems with SSLv3.
>
>  Maybe this is is my confusion. Will the SSLv3 alone cause the attack? Or
>> will a "downgrade process" from TLS 1.0 or later to the SSLv3 expose the
>> vulnerability?
>>
>
> SSLv3 alone is vulnerable. When you decide that this vulnerability is so
> large that you don't want to use SSLv3 in any case than life is easy:
> deactivate the usage of SSLv3 in all clients and servers and you have not
> to think about fall back to SSLv3.
>
> But when your opinion is, that an SSLv3 connection is better than no
> connection than you may have to fall back to SSLv3 some times. The
> TLS_FALLBACK_SCSV helps you to ensure that the fall back is done only when
> SSLv3 is really the highest SSL/TLS protocol shared by client and server.
>



So is it true that in this case TLS_FALLBACK_SCSV still can't prevent the
attack since this is a totally legitimate honest fallback to SSLv3? In
other words, the MITM attacker doesn't have to message the handshake at
all.




>
> Best regards,
> Richard
>
>
>>
>>     Where is the problem? When the client only supports SSLv3 and
>>     therefore right away starts with SSLv3, then you get an SSLv3
>>     connection as wanted. When you don't want any SSLv3 connections,
>>     remove the SSLv3 support in the server and enhance the client so it
>>     speaks also TLSv1 or better.
>>
>>         What happens with the patch only on the server? And what happens
>>         with
>>         the both server and client patched?
>>
>>
>>     First question: nothing, because the client can't say to the server
>>     that the second handshake with SSLv3 is a fallback of a previous
>>     handshake announcing the availability of TLSv1 or better.
>>
>>     Second question: When the client starts due to a MITM attack a
>>     second handshake announcing SSLv3 and setting TLS_FALLBACK_SCSV
>>     option than the server knows that the client supports something
>>     better than SSLv3 and quits the handshake.
>>
>>     Best regards,
>>     Richard
>>
>>
>>
>>
>>         On Fri, Oct 24, 2014 at 9:30 AM, Jakob Bohm
>>         <jb-open...@wisemo.com <mailto:jb-open...@wisemo.com>
>>         <mailto:jb-open...@wisemo.com <mailto:jb-open...@wisemo.com>>__>
>>
>>         wrote:
>>
>>              On 24/10/2014 18:19, Aditya Kumar wrote:
>>
>>                  Thanks Jakob for correcting my understanding. In short,
>>             can I
>>                  conclude the following about FALLBACK flag.
>>
>>                  1. Whenever client is sending the FALLBACK flag in its
>>             request, an
>>                  updated Server will interpret it that this client
>>             supports a
>>                  higher version but since that higher version protocol
>>             request was
>>                  refused, its trying to connect using a lower version
>>             protocol.
>>                  2. The FALLBACK flag should only be set to communicate
>>             to those
>>                  extremely rare old SSLv3 servers which completely fail
>>             to accept a
>>                  request for (SSLv3 or TLSv1+, the best client have). In
>>             that case,
>>                  first client should attempt to connect with
>>             SSLAUTONEGOTIATE and
>>                  if it fails, then connect with SSLV3 FALLBACK enabled.
>>
>>              Much simpler: The FALLBACK flag should be set only to
>>         communicate that
>>              the client has activated its manual fall back code (if
>>         any).  If the
>>              client doesn't contain manual fallback code, it doesn't
>>         need to do
>>              anything.
>>
>>                  3. Points 2 holds true even for the cases where clients
>>             connecting
>>                  using TLS 1.2 fail and then client need to connect
>>             using TLS 1.1,
>>                  TLS1.0 or SSLV3.0. Then client should attempt the next
>>             connections
>>                  using FALLBACK flag set.
>>
>>              Yes, SSLv3 is just an example, which happens to be
>>         important right now
>>              because of poodle.
>>
>>
>>                  Hope this will clear all the confusions.
>>
>>                  -Aditya
>>
>>                  On Fri, Oct 24, 2014 at 5:35 PM, Jakob Bohm
>>             <jb-open...@wisemo.com <mailto:jb-open...@wisemo.com>
>>                  <mailto:jb-open...@wisemo.com
>>             <mailto:jb-open...@wisemo.com>>__>wrote:
>>
>>
>>
>>                      On 24/10/2014 13:33, Aditya Kumar wrote:
>>
>>                          Hi All,
>>
>>                          Thanks for your detailed responses, specially
>>             Florian
>>                          Weimer and Matt Caswell. For the benefit of
>>             everyone and
>>                          me, I am summarizing the thoughts which I have
>>             understood
>>                          through all your replies. Please correct me
>>             wherever I am
>>                          wrong.
>>
>>                          To summarize:
>>                                 1.  Best way to prevent POODLE attack is
>>             to disable
>>                          SSLV3 on both client and server side.
>>                          2.  If for some reason, you cannot disable
>>             SSLv3 on server
>>                          side even if Server support TLS 1.0 or
>>             higher(e.g server
>>                          having SSLV23 set), Server definitely need to
>>             be patched
>>                          to prevent fallback. Once server is patched, it
>>             will
>>                          prevent updated clients from fallback attack.
>>                          3.  After server is patched with OpenSSL
>>             FALLBACK flag
>>                          fix, Server’s behavior will not change for the
>>             clients
>>                          which do not send FALLBACK flag in their
>>             clienthello
>>                          request. Server will continue to work with
>>             older client as
>>                          usual. Only if an updated client sends FALLBACK
>>             flag into
>>                          its clienthello request, server will be able to
>>             prevent
>>                          fallback.
>>                          4.  If for some reason, client has to keep
>>             SSLV3 enable
>>                          even if it supports TLS 1.0 or higher version,
>>             client need
>>                          to patch itself and set FALLBACK flag so that
>>             it does not
>>                          come under fallback attack.
>>
>>                      WRONG, See below
>>
>>                          5.  Clients should never set protocol as SSLV23
>>             to support
>>                          both SSL3.0 and TLS Servers. Clients should
>> always
>>                          explicitly first try to connect using its highest
>>                          supported version(TLS1.0 or higher) and if the
>>             server
>>                          rejects the connection, then clients should
>>             explicitly try
>>                          to connect using next supported lower version
>>             protocol.
>>
>>                      WRONG, If client simply calls the SSL23_ (aka
>>                      SSLAUTONEGOTIATE_) with
>>                      options to allow both SSLv3 and higher TLSvX.XX, it
>>             is already
>>                      secure
>>                      and will never need to send the fallback flag.
>>
>>                          6.  While connecting to server using higher
>>             protocol like
>>                          TLS1 or higher, client should set FALLBACK flag
>>             so that
>>                          server do not allow automatically downgrade to
>>             a lower
>>                          version protocol.
>>
>>                      WRONG, Client should always try its full range of
>>             enabled SSL/TLS
>>                      versions in one attempt, in which case the
>>             protocols themselves
>>                      (even without the latest patch) will automatically
>>             detect and
>>                      prevent a fallback MiTM attack.
>>
>>                      However if client needs to work around some
>>             (extremely rare) old
>>                      SSLv3 servers which completely fail to accept a
>>             request for (SSLv3
>>                      r TLSv1+, the best you have), that client may use a
>>             workaround of:
>>
>>                      Step 6.1: Attempt to connect with
>>             SSLAUTONEGOTIATE_(SSLv3 up to
>>                      TLSv1.2).  Do not set/send FALLBACK flag.
>>
>>                      Step 6.2: If Step 6.1 fails (either because of old
>>             broken
>>                      server or
>>                      because of new fallback MiTM attack), try again
>>             with SSLV3ONLY_(),
>>                      and set the FALLBACK flag to tell the server that
>>             the maximum
>>                      version specified in this call is not the true
>>             maximum version of
>>                      the client (in case it is not an old server, but a
>>             MiTM attack
>>                      trying to trick this fallback code).
>>
>>                      Step 6.3: Step 6.2 could be extended to do retries
>>             with TLSv1.1,
>>                      then TLSv1.0, then SSLv3 etc. all of which would
>>             need the FALLBACK
>>                      flag because the client would actually have wanted
>>             TLSv1.2 if it
>>                      could get it.
>>                      **
>>
>>                          Few questions which still remains in my mind are:
>>                          As part of my question’s reply, Florian replied
>>             that
>>                          following:
>>                          *Unconditionally setting
>>             SSL_MODE_SEND_FALLBACK_SCSV (if
>>                          by default or after user configuration) is a time
>>                          bomb—your client application will break once
>>             the server
>>                          implements TLS 1.3 (or any newer TLS version
>>             than what is
>>                          supported by the OpenSSL version you use).
>>             Extremely few
>>                          applications have to deal with
>>             SSL_MODE_SEND_FALLBACK_SCSV.*
>>                          Why client application will break if FALLBACK
>>             flag is set
>>                          and the server is upgrade to TLS 1.3 or higher
>>             version?
>>                          Isn’t that the server should take care of this
>>             flag  when
>>                          it is updated with higher version protocol?
>>
>>                      Note: If client calls with SSLAUTONEGOTIATE_(SSLvX
>>             up to TLSv1.1)
>>                      and sets the FALLBACK flag, then a server which
>>             understands
>>                      TLSv1.2 will read this as "I know this call says I
>>             only understand
>>                      up to TLSv1.1, but that is only because I think you
>>             refused my
>>                      attempt to use TLSv1.2 or higher", and therefore
>>             the server will
>>                      REJECT the connection as if a MiTM attack in
>> progress.
>>
>>                      Note 2: If a client calls with
>>             SSLAUTONEGOTIATE_(SSLvX up to
>>                      TLSv1.2) and sets the FALLBACK flag, then a server
>>             which
>>                      understands
>>                      TLSv1.3 will read this as "I know this call says I
>>             only understand
>>                      up to TLSv1.2, but that is only because I think you
>>             refused my
>>                      attempt to use TLSv1.3 or higher", and therefore
>>             the server will
>>                      REJECT the connection as if a MiTM attack is in
>>             progress.
>>
>>                          Please let me know your opinion on this.
>>                          Once again thanks everyone for your response.
>>                          -Aditya
>>
>>
>>
>>
>>              Enjoy
>>
>>              Jakob
>>              --
>>              Jakob Bohm, CIO, Partner, WiseMo A/S.http://www.wisemo.com
>>              Transformervej 29, 2860 Søborg, Denmark.  Direct+45 31 13
>>         16 10 <tel:%2B45%2031%2013%2016%2010>
>>         <tel:%2B45%2031%2013%2016%__2010>
>>              This public discussion message is non-binding and may
>>         contain errors.
>>              WiseMo - Remote Service Management for PCs, Phones and
>> Embedded
>>
>>
>>
>>     ____________________________________________________________
>> ______________
>>     OpenSSL Project http://www.openssl.org
>>     User Support Mailing List openssl-users@openssl.org
>>     <mailto:openssl-users@openssl.org>
>>     Automated List Manager majord...@openssl.org
>>     <mailto:majord...@openssl.org>
>>
>>
>>
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           majord...@openssl.org
>

Reply via email to