<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>140013</bug_id>
          
          <creation_ts>2014-12-31 08:36:27 -0800</creation_ts>
          <short_desc>[SOUP] Disable insecure TLS version negotiation</short_desc>
          <delta_ts>2015-02-10 11:55:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>danw</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1058248</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2014-12-31 08:36:27 -0800</bug_when>
    <thetext>Currenly, libsoup performs insecure TLS version fallback, as do major web browsers. This is performed to preserve compatibility with broken servers.

Firefox recently removed this behavior [1], so we should as well. This probably requires changes in libsoup.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1084025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058411</commentid>
    <comment_count>1</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2015-01-02 06:43:19 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; This probably requires changes in libsoup.

libsoup essentially only implements this behavior for WebKitGTK/EFL&apos;s benefit, so if WebKit isn&apos;t going to use it then it might as well just be removed/disabled-by-default at the libsoup level.

Note also that disabling fallback means we would no longer work with %LATEST_RECORD_VERSION-intolerant sites as well. (I guess an alternate possibility would be to have a fallback mode that is more/differently compatible, but not less secure. Eg, ensure %COMPAT and not %LATEST_RECORD_VERSION, and maybe add %NO_EXTENSIONS, but don&apos;t change the set of offered TLS versions.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058416</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-01-02 08:08:09 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; This probably requires changes in libsoup.
&gt; 
&gt; libsoup essentially only implements this behavior for WebKitGTK/EFL&apos;s
&gt; benefit, so if WebKit isn&apos;t going to use it then it might as well just be
&gt; removed/disabled-by-default at the libsoup level.

There&apos;s also value in maintaining a whitelist of broken hosts for which to perform insecure fallback. If Mozilla makes one, and if we&apos;re lucky enough to have compatibility issues with the same set of sites (ha...), then we&apos;ll want to use theirs.

&gt; Note also that disabling fallback means we would no longer work with
&gt; %LATEST_RECORD_VERSION-intolerant sites as well. (I guess an alternate
&gt; possibility would be to have a fallback mode that is more/differently
&gt; compatible, but not less secure. Eg, ensure %COMPAT and not
&gt; %LATEST_RECORD_VERSION, and maybe add %NO_EXTENSIONS, but don&apos;t change the
&gt; set of offered TLS versions.)

There are so many possibilities here, the best I can say without further research (i.e. actually crawling a ton of sites) is that our goal should be to only break sites that are already broken in a major browser, and that it looks like Firefox is going to be the one to start breaking sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061008</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-01-13 17:25:03 -0800</bug_when>
    <thetext>We also need to chat (perhaps with Nikos) about how this will interact with the new Fedora crypto policy. My reading of the policy is that using anything except the default priority string is prohibited unless configured by the user. If that&apos;s right, it&apos;s not really flexible enough for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068108</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-10 11:55:35 -0800</bug_when>
    <thetext>Mozilla has opted to go for a whitelist, so I think we&apos;ll be stuck doing a fallback attempt forever. That&apos;s not a big deal. I do want new API so that we can display the connection as insecure if fallback (or a host of other issues that weaken the security of the connection) kicks in, but we can track that in another bug.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>