<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
  <title>Blog: Ivan Ristić / SSL</title>
  <link type="application/atom+xml" rel="self" href="http://blog.ivanristic.com//atom.xml" />
  <link type="text/html" rel="alternate" href="http://blog.ivanristic.com//" />
  <updated>2013-03-25T19:45:56+00:00</updated>
  <id>http://blog.ivanristic.com//</id>
  <author>
    <name>Ivan Ristić</name>
  </author>

  
  <entry>
    <id>http://blog.ivanristic.com/2013/03/rc4-in-tls-is-broken-now-what</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2013/03/rc4-in-tls-is-broken-now-what.html"/>
    <title>RC4 in TLS is broken: Now what?</title>
    <published>2013-03-09T14:38:47+00:00</published>
    <updated>2013-03-09T14:38:47+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;RC4 has long been considered problematic, but until very recently
there was no known way to exploit the weaknesses. After the BEAST attack was
disclosed in 2011, we&amp;mdash;grudgingly&amp;mdash;started using RC4 in order to
avoid the vulnerable CBC suites in TLS 1.0 and earlier. This caused the
usage of RC4 to increase, and some say that it now accounts for about 50% of
all TLS traffic.&lt;/p&gt;

&lt;p&gt;Last week, a group of
researchers (Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram
Poettering and Jacob Schuldt) &lt;a href=&quot;http://www.isg.rhul.ac.uk/tls/&quot;&gt;announced
significant advancements in the attacks against
RC4&lt;/a&gt;, unveiling new weaknesses as well as new methods to exploit them.
Matthew Green has a &lt;a
href=&quot;http://blog.cryptographyengineering.com/2013/03/attack-of-week-rc4-is-kind-of-broken-in.html&quot;&gt;great overview&lt;/a&gt;
on his blog, and here are the &lt;a
href=&quot;http://cr.yp.to/talks/2013.03.12/slides.pdf&quot;&gt;slides&lt;/a&gt; from the talk where the new issues were
announced.
&lt;/p&gt;

&lt;p&gt;At the
moment, the attack is not yet practical because it requires access to
millions and possibly billions of copies of the same data encrypted using
different keys. A browser would have to make that many connections to a
server to give the attacker enough data. A possible exploitation path is to
somehow instrument the browser to make a large number of connections, while
a man in the middle is observing and recording the traffic.&lt;/p&gt;

&lt;p&gt;We are still safe at the moment, but there is a tremendous incentive for
researchers to improve the attacks on RC4, which means that we need to act
swiftly.&lt;/p&gt;

&lt;h2&gt;What We (SSL Labs) Will Do&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Start warning our users about RC4
weaknesses.&lt;/strong&gt; RC4 is demonstrably broken and unsafe to use in TLS as
currently implemented. The difficulty is that, for public web sites that
need to support a wide user base, there is practically nothing 100% secure
they can use to replace RC4. We now have no choice but to accept that, no
matter what settings we use, some segment of the user base will be at
risk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If Apple were to implement 1/n-1
record splitting&lt;/strong&gt; in their stacks (the only major browser vendor
that hasn&amp;rsquo;t done that yet*), we&amp;rsquo;d likely consider BEAST
sufficiently mitigated client-side, and that would allow us to start
recommending CBC suites over RC4.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Start recommending the use of GCM
suites.&lt;/strong&gt; Browsers will no doubt provide better support for TLS 1.2
and GCM suites at an accelerated schedule, and site operators should be
ready to take advantage of that.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update SSL/TLS Deployment Best
Practices&lt;/strong&gt; with new information.&lt;/li&gt;
&lt;li&gt;At some point in the near future,
&lt;strong&gt;update the rating algorithm to take the RC4 weaknesses into
account&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Recommendations&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SSL/TLS library developers&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Harden the stack against the Lucky 13
attack.&lt;/li&gt;
&lt;li&gt;Support TLS 1.2 and GCM suites as soon as
possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Browser vendors&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support TLS 1.2 and GCM suites as soon as possible.&lt;/li&gt;
&lt;li&gt;Implement 1/n-1 record splitting to make
CBC suites safe in TLS 1.0 and earlier. As far as we are aware, Apple is the
only remaining vendor that has not patched their browsers, either on OSX or
iOS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;System administrators&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;	
&lt;li&gt;Disable TLS compression. This attack is
similar in nature to the recent RC4 attacks, but practical.&lt;/li&gt;
&lt;li&gt;Support TLS 1.2 and GCM as soon as
possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;TLS Working Group&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restore algorithm agility and diversity
in TLS. AES GCM suites are now the only truly secure option in TLS, but we
shouldn&amp;rsquo;t count on them to stay like that forever.&lt;/li&gt;
&lt;li&gt;Consider introducing other stream ciphers
to the standard. Algorithm agility, which TLS already provides, is not
sufficient if there is only one choice for a component.&lt;/li&gt;
&lt;li&gt;Consider changing how CBC is implemented
in order to address the timing issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Application developers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Harden session management to support
reliable and frequent rotation of session cookies, triggered by elapsed time
or the number of requests observed. Recent years have seen a rise in attacks
that require attackers to control the client end of a TLS connection in some
fashion. Most such attacks focus on extracting small bits of information,
typically credentials. Session cookies are now the most popular target.
Given how many requests are needed for the best attacks to succeed, rotating
session cookies frequently is a good defense in depth measure.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;(*) Apple appears to have shipped the
1/n-1 split in Mountain Lion, but it is disabled by default. I was also
unable to observe any splitting after the functionality had been manually
enabled. iOS devices should support TLS 1.2, which means that they might be
secure provided TLS 1.2 is available server-side.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2013/02/ssl-labs-update-increases-security-requirements</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2013/02/ssl-labs-update-increases-security-requirements.html"/>
    <title>SSL Labs update increases security requirements</title>
    <published>2013-02-07T12:38:47+00:00</published>
    <updated>2013-02-07T12:38:47+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;The SSL threat landscape has changed significantly since the rating guide was first published, back in 2009. The original text is thus no longer entirely adequate to deal with the threats of today. In addition, we now have several years of experience using the criteria in real life, and we know what works well and what not so much.&lt;/p&gt;
&lt;p&gt;Our plan is to update the rating criteria to take all this new knowledge into account. However, because that process will take several months to complete and because an update to the guide is long overdue, we have decided to release a &lt;a href=&quot;https://www.ssllabs.com/projects/rating-guide/&quot; target=&quot;_self&quot;&gt;small patch release, labelling it 2009c&lt;/a&gt;. The year in the version number indicates that this is conceptually the same guide as previously published, with improvements.&lt;/p&gt;
&lt;p&gt;Essentially, the purpose of this release is to keep the rating criteria relevant for a little while longer, until the next major version is ready. The text of the original document remains as is, but the following changes apply:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSL 2.0 is not allowed (F).&lt;/li&gt;
&lt;li&gt;Insecure renegotiation is not allowed (F).&lt;/li&gt;
&lt;li&gt;Vulnerability to the BEAST attack caps the grade to B.&lt;/li&gt;
&lt;li&gt;Vulnerability to the CRIME attack caps the grade to B.&lt;/li&gt;
&lt;li&gt;The score (0-100) is not shown any more, in order to focus on the grade, which is more useful. Future versions of the guide will probably remove the score altogether.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, we&amp;#39;ve taken the opportunity to remove the old configuration advice, directing the readers to our &lt;a href=&quot;https://www.ssllabs.com/projects/best-practices/&quot; target=&quot;_self&quot;&gt;SSL/TLS Deployment Best Practices&lt;/a&gt; document instead.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/11/large-scale-passive-ssl-monitoring-at-icsi</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/11/large-scale-passive-ssl-monitoring-at-icsi.html"/>
    <title>Large-scale passive SSL monitoring at ICSI</title>
    <published>2012-11-12T14:43:03+00:00</published>
    <updated>2012-11-12T14:43:03+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;The &lt;a href=&quot;http://www.icsi.berkeley.edu/&quot; target=&quot;_self&quot;&gt;International Computer Science Institute&lt;/a&gt; (ICSI) recently announced a &lt;a href=&quot;http://notary.icsi.berkeley.edu/&quot; target=&quot;_self&quot;&gt;new certificate notary project&lt;/a&gt;. Although I find the notary aspect of the project interesting, I think that their work is much more important because of the potential of their approach, which is based on large-scale passive monitoring of SSL connections. In the last couple of years I spent a lot of time looking at the server-side aspect of SSL (most recently, in the &lt;a href=&quot;https://www.trustworthyinternet.org/ssl-pulse/&quot; target=&quot;_self&quot;&gt;SSL Pulse&lt;/a&gt; project), but there&amp;#39;s a large gap in our understanding when it comes to client-side capabilities, and actual real-life usage. The gap can be explained by ICSI&amp;#39;s data.&lt;/p&gt;
&lt;p&gt;Sadly, ICSI is unable to share their data because of various privacy concerns. However, they can still mine the data themselves. I decided to put together a list of unanswered SSL usage questions, as a way of contributing to the effort.&lt;/p&gt;
&lt;p&gt;Focusing on client capabilities is a good way to start. Some of the most interesting attributes to track might be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Highest TLS version&lt;/li&gt;
&lt;li&gt;Cipher suites (and their order)&lt;/li&gt;
&lt;li&gt;TLS extensions&lt;/li&gt;
&lt;li&gt;Compression methods&lt;/li&gt;
&lt;li&gt;BEAST mitigation&lt;/li&gt;
&lt;li&gt;SNI (virtual SSL hosting)&lt;/li&gt;
&lt;li&gt;Secure renegotiation (via extension or SCSV)&lt;/li&gt;
&lt;li&gt;Session ticket support&lt;/li&gt;
&lt;li&gt;Request for OCSP stapling&lt;/li&gt;
&lt;li&gt;SPDY support (via the NPN extension)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The most exciting aspect of the project is that it might be able to finally give us the answer to the effective security of SSL. Some key data points include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Negotiated protocol version&lt;/li&gt;
&lt;li&gt;Negotiated cipher suite/strength&lt;/li&gt;
&lt;li&gt;Was the suite actively selected by the server&lt;/li&gt;
&lt;li&gt;Authentication strength (certificate key size)&lt;/li&gt;
&lt;li&gt;DH params/strength (for applicable cipher suites)&lt;/li&gt;
&lt;li&gt;Compression usage&lt;/li&gt;
&lt;li&gt;Session resumption status (tracked via either mechanism)&lt;/li&gt;
&lt;li&gt;Seen stapled OCSP response&lt;/li&gt;
&lt;li&gt;Server certificate information
&lt;ul&gt;
&lt;li&gt;Key size&lt;/li&gt;
&lt;li&gt;Signature algorithm&lt;/li&gt;
&lt;li&gt;Is it expired?&lt;/li&gt;
&lt;li&gt;Is it self-signed?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Certificate chain correctness&lt;/li&gt;
&lt;li&gt;Is the trust root a well-known CA?&lt;/li&gt;
&lt;li&gt;Vulnerabilities:
&lt;ul&gt;
&lt;li&gt;Renegotiation (do both sides support secure renegotiation)&lt;/li&gt;
&lt;li&gt;BEAST (no browser mitigation and a CBC suite using TLS 1.0 or earlier)&lt;/li&gt;
&lt;li&gt;CRIME (use of TLS compression for the connection)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/10/improved-passive-ssl-fingerprinting-in-sslhaf</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/10/improved-passive-ssl-fingerprinting-in-sslhaf.html"/>
    <title>Improved passive SSL fingerprinting in sslhaf</title>
    <published>2012-10-18T11:12:54+01:00</published>
    <updated>2012-10-18T11:12:54+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I've had some available time recently to work on &lt;a href=&quot;https://www.ssllabs.com/projects/client-fingerprinting/&quot; target=&quot;_self&quot;&gt;sslhaf&lt;/a&gt;, my passive SSL fingerprinting tool. I made the following improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Detect browser BEAST mitigation (1/n-1 splitting)&lt;/li&gt;
&lt;li&gt;Extract compression support&lt;/li&gt;
&lt;li&gt;Extract TLS extensions&lt;/li&gt;
&lt;li&gt;Change licence from GPLv2 to BSD&lt;/li&gt;
&lt;li&gt;Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think that the detection of BEAST mitigation measures is particularly useful, because it will help understand the risk coming from this attack. Most, but not all, major browsers have mitigations in place. In addition, we don't know how many vulnerable older clients there are. I hope to publish some measurements soon.&lt;/p&gt;
&lt;p&gt;The tool is stable but technically still experimental, so use at your own risk. I'd be willing to make it production ready if there's anyone interested in deploying it in a large web site.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/09/crime-information-leakage-attack-against-ssl-tls</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/09/crime-information-leakage-attack-against-ssl-tls.html"/>
    <title>CRIME: Information leakage attack against SSL/TLS</title>
    <published>2012-09-14T12:01:00+01:00</published>
    <updated>2012-09-14T12:01:00+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;It seems that it is that time of year again, when Juliano and Thai present their most recent attack against crypto system. Last year, it was &lt;a
href=&quot;/2011/10/mitigating-the-beast-attack-on-tls.html&quot;&gt;BEAST&lt;/a&gt;. This year, it's CRIME, a practical attack against how TLS is used in browsers. In a wider sense, the same attack conceptually applies to any encrypted protocol where the attacker controls what is being communicated.&lt;/p&gt;

&lt;p&gt;Initially, it was only known that the attack builds on top of an information leakage weakness, and the full results were going to be revealed at the talk at &lt;a href=&quot;http://www.ekoparty.org/eng/2012/thai-duong.php&quot;&gt;Ekoparty on September 21&lt;/a&gt;. Funnily enough, the details that were revealed themselves &quot;leaked&quot; and were sufficient for the experts to understand what is going on: On StackExchange, &lt;a href=&quot;http://security.stackexchange.com/questions/19911/crime-how-to-beat-the-beast-successor&quot;&gt;Thomas Pornin speculated that it was about compression&lt;/a&gt;. An &lt;a href=&quot;http://www.iacr.org/cryptodb/archive/2002/FSE/3091/3091.pdf&quot; target=&quot;_self&quot;&gt;academic paper from 2002&lt;/a&gt; (PDF) was revealed. A &lt;a href=&quot;http://pastebin.com/qZdNYgfr&quot; target=&quot;_self&quot;&gt;proof of concept was submitted by xorninja&lt;/a&gt;, and &lt;a href=&quot;https://gist.github.com/3696912&quot; target=&quot;_self&quot;&gt;improved by Krzysztof Kotowicz&lt;/a&gt;. &lt;a href=&quot;http://arstechnica.com/security/2012/09/crime-hijacks-https-sessions/&quot; target=&quot;_self&quot;&gt;Dan Goodin wrote a great summary&lt;/a&gt; of what was known at the time, and included a video of the demonstration. Finally, &lt;a href=&quot;http://threatpost.com/en_us/blogs/crime-attack-uses-compression-ratio-tls-requests-side-channel-hijack-secure-sessions-091312&quot; target=&quot;_self&quot;&gt;Threat Post published a confirmation&lt;/a&gt; from Juliano and Thai that was indeed compression.&lt;/p&gt;

&lt;h3&gt;What is the problem?&lt;/h3&gt;
&lt;p&gt;
The root cause of the problem is information leakage that occurs when data is compressed prior to encryption. If someone can repeatedly inject and mix arbitrary content with some sensitive and relatively predictable data, and observe the resulting encrypted stream, then she will be able to extract the unknown data from it.
&lt;/p&gt;
&lt;p&gt;
In practice, the attack works best against session cookies. If a man-in-the-middle (MITM) attacker 1) can observe network traffic, and 2) manipulate the victim's browser to submit requests to the target site, she can, as a result, steal the site's cookies, and thus hijack the victim's session. In the current form, the exploit uses JavaScript and needs 6 requests to extract one byte of data. The use of JavaScript is desired, but not required: simple &amp;lt;img&amp;gt; tags can do the job just as well, although with a performance penalty.&lt;/p&gt;
&lt;h3&gt;How bad is it?&lt;/h3&gt;
&lt;p&gt;
Several aspects need to come together for CRIME to be widely exploited.
First of all, there has to be server-side support for compression of request data before encryption. TLS supports DEFLATE compression (not to be confused with HTTP response compression, which is very popular, but not vulnerable to CRIME), but not all servers implement it. SSL Labs tests across the &lt;a href=&quot;https://www.trustworthyinternet.org/ssl-pulse/&quot; target=&quot;_self&quot;&gt;SSL Pulse data set &lt;/a&gt;indicate that about &lt;strong&gt;42% of the servers support TLS compression&lt;/strong&gt;. The servers include some of the most popular sites in the world.
&lt;/p&gt;
&lt;p&gt;
Another possibility is that the newer protocol, SPDY, is also vulnerable, because it has a separate mechanism for request header compression. In that case, all servers that support SPDY would be potentially vulnerable. SPDY is a young protocol and not very widely supported, but the sites that do support it are typically larger properties. SSL Labs is currently half way in measuring the support for SPDY across the SSL Pulse data set, but we're currently seeing &lt;strong&gt;SPDY support at &lt;strike&gt;0.8&lt;/strike&gt;2%&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
The second requirement is that client-side also supports compression, and here we will find that the situation is much better. The only browser to properly support TLS compression is Chrome. As for SPDY, both Chrome and Firefox support it. However, it is understood that both Chrome and Firefox have removed support for TLS compression in their most recent updates. (For Firefox, it's even not clear if it was ever enabled.) SSL Labs runs a passive SSL fingerprinting tool called sslhaf. Using it we were able to estimate that &lt;strong&gt;only about 7% of browsers support compression at this point&lt;/strong&gt;. This is on our site, which gets a higher portion of the traffic from Chrome and Firefox users. Analysing the logs, we could see traces of Chrome, and, it seems, some mobile browsers. It is not clear if there were any changes to the SPDY implementation in Chrome and Firefox, but it is reasonable to expect that there will be.
&lt;/p&gt;
&lt;p&gt;
The third requirement for wide exploitation is an easy to use exploitation tool. Unlike BEAST, CRIME seems much easier to exploit; we've already seen a simple proof of concept, and so it's likely that we will see a complete tool soon, maybe as a fork of &lt;a href=&quot;http://www.thoughtcrime.org/software/sslstrip/&quot; target=&quot;_self&quot;&gt;sslstrip&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Taking all of the above in the account, CRIME will be easy to exploit, but it will be harder to find vulnerable clients. Internet Explorer, Safari, and Opera do not seem to be affected. Chrome and Firefox seem to be, but they use automatic updates, so I expect that the majority of the user base will upgrade to the patched versions. The vulnerable clients will thus be restricted to those using older clients.
&lt;/p&gt;
&lt;p&gt;
Further, unlike BEAST, which requires a manual intervention to mitigate, CRIME will be easier to patch. I expect most vendors will simply disable TLS compression.
&lt;/p&gt;
&lt;h3&gt;What to do?&lt;/h3&gt;
&lt;p&gt;
First of all, if you're using an older Chrome or Firefox, upgrade to the most recent version. If you're operating a web site, use the &lt;a href=&quot;https://www.ssllabs.com/ssltest/&quot; target=&quot;_self&quot;&gt;SSL Labs assessment tool&lt;/a&gt; to determine if your site supports TLS compression and SPDY (look for &lt;strong&gt;Compression&lt;/strong&gt; and &lt;strong&gt;Next Protocol Support&lt;/strong&gt; on the results page, towards the bottom). If you think the risk is too high, disable compression if your web software allows you to do it. (If they don't today, they will soon.)
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update (15 Sep 2012)&lt;/strong&gt; In &lt;a href=&quot;http://isecpartners.com/blog/2012/9/14/details-on-the-crime-attack.html&quot; target=&quot;_self&quot;&gt;Details on the &quot;CRIME&quot; attack&lt;/a&gt;, iSec Partners give a very good overview of which browsers are vulnerable, and how to disable compression server side. &lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/07/how-good-is-client-side-support-for-rc4</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/07/how-good-is-client-side-support-for-rc4.html"/>
    <title>How good is client-side support for RC4?</title>
    <published>2012-07-17T20:40:01+01:00</published>
    <updated>2012-07-17T20:40:01+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;When it comes to the mitigation of the BEAST attack against SSL/TLS, the usual advice is to &lt;a href=&quot;https://community.qualys.com/blogs/securitylabs/2011/10/17/mitigating-the-beast-attack-on-tls&quot;&gt;prioritize RC4 cipher suites&lt;/a&gt; in order to avoid CBC suites, which are vulnerable. In some cases, companies may even have to use RC4 suites exclusively. For example, I've recently heard of a case where a company was failed on its PCI compliance test because they had non-RC4 cipher suites enabled in their configuration.&lt;/p&gt;

&lt;p&gt;When RC4 prioritization is discussed, people often seek assurance that RC4 is widely supported. Obviously, if you are going to disable a large number of cipher suites, you start to worry if the remaining suites are going to be sufficient for your user base. Until recently, I had no answer to those questions. Even though all major browsers support RC4 by default, there was no way to quantify the support. Further, some browsers allow users to turn off certain cipher suites, and we just didn't know what the situation on the ground was.&lt;/p&gt;

&lt;p&gt;About two months ago I re-enabled &lt;a href=&quot;https://www.ssllabs.com/projects/client-fingerprinting/index.html&quot;&gt;mod_sslhaf &lt;/a&gt;on the SSL Labs web server. This Apache module, a project of &lt;a href=&quot;https://www.ssllabs.com/&quot;&gt;SSL Labs&lt;/a&gt;, records all cipher suites offered by clients. Today I looked at the results, curious to find out exactly how many of the SSL Labs clients supported RC4. I choose to compare the total number of unique IP addresses against the number of IP addresses that did not support TLS_RSA_WITH_RC4_128_MD5 (0x04) or TLS_RSA_WITH_RC4_128_SHA (0x05).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In about two months, SSL Labs saw 48,481 unique IP addresses. Only 45 of those -- or 0.09% -- did not support RC4.&lt;/strong&gt; Looking at the user agent information, the clients not supporting RC4 seem to be largely those whose users decided to explicitly disable RC4 for one reason or another.&lt;/p&gt;

&lt;p&gt;The usual disclaimer applies here: the sample is taken from the SSL Labs web site and may not apply to other sites. However, if the assumption that the only non RC4 clients are those where this cipher suite was disabled by their owners, you could argue that an average site will see an even smaller number of non-compatible clients.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/05/my-infosecurity-london-2012-ssl-panel-notes</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/05/my-infosecurity-london-2012-ssl-panel-notes.html"/>
    <title>My Infosecurity London 2012 SSL Panel Notes</title>
    <published>2012-05-23T11:19:20+01:00</published>
    <updated>2012-05-23T11:19:20+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;&lt;em&gt;Last month, &lt;a href=&quot;https://www.globalsign.com&quot;&gt;GlobalSign&lt;/a&gt; invited me to participate on an SSL Panel at Infosecurity London. Other participants were David Holmes (F5), Ryan Hurst (GlobalSign), and Steve Roylance (GlobalSign, moderator). These are my rough notes. I hope you will find them interesting.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Can you tell us about yourself and why you’re here?&lt;/h3&gt;
&lt;p&gt;In 2009 I quit my job (because I had become bored), and I decided to work on something I can be passionate about. As it happens, that something was SSL. I had discovered SSL a few years before, while working on my book Apache Security, and always wanted to go back to it, to research it in more detail. To my dismay, I discovered that SSL, arguably the most important security protocol on the planet, is poorly documented, difficult to configure correctly, and that there are no tools to test SSL configurations. That&amp;#39;s when SSL Labs was born. Today, SSL Labs offers the best assessment platform and for free. In the past 2 years we&amp;#39;ve conducted several large-scale surveys of public SSL implementation in an effort to understand exactly where we are, when it comes to the security of the Web.&lt;/p&gt;
&lt;h3&gt;Talk to us about your perspective on the last two years and the breaches at third-party trust providers?&lt;/h3&gt;
&lt;p&gt;I think that, in the last 2 years we learned that security is not static. It&amp;#39;s not something you work on, and then leave it behind. You know, SSL was designed in 1994, and, today, in 2012, remains essentially the same, conceptually. In the meantime, we saw the Web evolve, and evolve around SSL. The threat model of today is vastly different to the threat model of 1994. Eighteen years! So we dropped the ball. But I think that&amp;#39;s actually how things work, for us humans. We don&amp;#39;t think about security while it&amp;#39;s not a problem. As a result of that, security it becomes a real problem eventually, and &lt;em&gt;then&lt;/em&gt; we start to think about it. It&amp;#39;s a cycle; a never-ending cycle.&lt;/p&gt;
&lt;h3&gt;How would you describe the current situation of Public Trust on the Internet?&lt;/h3&gt;
&lt;p&gt;It&amp;#39;s not as bad as it seems. I think that, practically speaking, our biggest problem is not that we have too many CAs, but that we cannot yet build secure systems. The events from the last two years made us realise that any system can be broken into, and -- surprise, surprise -- even the CAs. Once you accept that, the obvious problem with Public Trust is that any one CA can create a certificate for any web site. Site owner&amp;#39;s permission is not even required. I am hopeful that that will be fixed with a new standard&amp;#0160; supporting public key pinning. Then, site owners will be able to say which CAs can issue certificates for their web sites.&lt;/p&gt;
&lt;h3&gt;Why aren’t Extended Validation certificates saving us now?&lt;/h3&gt;
&lt;p&gt;You know, back in the day, all certificates used to be &amp;quot;EV&amp;quot;. I remember very well jumping through many hoops to get a certificate -- so long ago I don&amp;#39;t even remember what year it was. I don&amp;#39;t think that many people realise that, prior to EV certs, there wasn&amp;#39;t a standard for certificate issuance. Today, there isn&amp;#39;t a standard for non-EV certificae issuance [we may get one officially any time now]. So I welcome EV certificates, because they connect your online presence to your off-line identity. That&amp;#39;s great, if you need it or if you want it. At the same time, DV certificates are getting cheaper, which is how it should be. The basic security of the communication channel should be available to everyone.&lt;/p&gt;
&lt;h3&gt;What is your take on the recent advances in cryptographic and protocol focused attacks?&lt;/h3&gt;
&lt;p&gt;The recent attacks against SSL are a sign of protocol maturity. The reality is that we are not smart enough to foresee all problems when we&amp;#39;re designing protocols. So the only way to arrive at something that is secure, is to give it our best shot, start to use it, and fix it as problems are discovered. The recent attacks against SSL demonstrate that people are looking at SSL, and that&amp;#39;s a great thing. That means that we&amp;#39;re improving. The sky is not falling; but please don&amp;#39;t tell everyone. I don&amp;#39;t mind the sensational headlines, because they get people&amp;#39;s attention. Without the headlines -- without fear -- we wouldn&amp;#39;t be able to improve security in the same way. For example, about 75% of all SSL sites are vulnerable to the BEAST attack. I wouldn&amp;#39;t mind seeing a sensationalist headline scaring everyone to improve their configuration. The reality is that we need more headlines and more working exploits. How CISO’s should approach trust providers and risk?  Choose a CA that you can trust, and a company for which certificate issuance is a significant business (revenue stream). Most of the risk is in-house, in which how you manage your certificates, configure your SSL servers, and implement your applications.&lt;/p&gt;
&lt;h3&gt;If you were to sit down with an IT manager today and talk to them about his biggest risks relating to SSL what would you tell them?&lt;/h3&gt;
&lt;p&gt;The biggest SSL-related risk is at the application layer. Your SSL server may be misconfigured today, but you can fix that very quickly. We have people testing themselves using our online assessment tool, getting a bad grade, improving their configuration and even getting a new certificate, just an hour later. And, to be honest, no one is attacking SSL directly. The real risk lies in the application layer, when applications use features that completely subvert SSL. It&amp;#39;s like SSL isn&amp;#39;t there. We conducted a deep survey of these issues last yar (in the most popular web sites), and the conclusion was that most sites are vulnerable, and SSL effectively useless. I have a lot of hope for declarative security measures. For example, HTTP Strict Transport Security is an emerging standard where you can declare that your application/site uses only SSL (never plain-text HTTP). That means that, even if your application contains implementation errors, you remain secure. I also have a lot of hope for new protocols, which will include SSL as a mandatory component. Eventually, we will migrate to an Internet that is 100% encrypted. I hope.&lt;/p&gt;
&lt;h3&gt;What do you think is the future of Public Trust?&lt;/h3&gt;
&lt;p&gt;Realistically speaking, I think we will stay pretty much where we are. Public Key Pinning will remove the most obvious problem. To change anything else -- that&amp;#39;s too much work for anyone&amp;#39;s taste. I would very much like to see browsers incorporate some elements of crowd-source (Covergence-style) trust for those who understand it. Password-based SSL authentication could be interesting.&lt;/p&gt;
&lt;h3&gt;What changes are being proposed to augment existing security technologies and how these changes may affect the industry?&lt;/h3&gt;
&lt;p&gt;We&amp;#39;ve seen many proposals, but not all of them are equally easy to implement. For example, there&amp;#39;s DNSSEC that implements a secure DNS, and DANE, which is a bridge between secure DNS and PKI. Because there is no doubt that we need a secure DNS, I have no doubt that DNSSEC will be widely deployed, eventually (it will take a few years). In the meantime, low-effort proposals, such as HSTS and Public Key Pinning, are likely to become practical. Technically speaking, other proposals can become reality, too, but they require a lot of lobbying and involve a lot of politics.&lt;/p&gt;
&lt;h3&gt;What do you think about DNSSEC and DANE?&lt;/h3&gt;
&lt;p&gt;There&amp;#39;s one aspect of DANE that I am not sure about, and that&amp;#39;s the ability to have valid certificates without CAs. It&amp;#39;s not that I like CAs very much, but we forget that the PKI infrastructure was designed to be independent of DNS. And, with DNSSEC, we will revert to only one trust root -- that in the DNS. On the other hand, everyone deserves basic security, and that&amp;#39;s something DNSSEC will most certainly achieve. The biggest problem is that with current CA-based ecosystem or with DNSSEC, site owners have no say.&lt;/p&gt;
&lt;h3&gt;What are the biggest problems of the security industry?&lt;/h3&gt;
&lt;p&gt;Our biggest problem is in having the security industry in the first place. Security is the business of the developers (used here in a wider sense, to mean those who implement things.) We have the security industry today only because those who are implementing our systems are not building security in. And that&amp;#39;s our biggest problem. It&amp;#39;s only when the economics of secure development improve that we are going to see substantial improvement in security. Apart from that, our biggest problem is complacency. For example, the CAs, who were (and are) getting serious money from issuing certificates, could have stayed on top of things. The could have tracked the threat model and reacted to new threats. (I don&amp;#39;t actually blame CAs for that. I mean, I do, but, ultimately, a wider community should take the responsibility.) Browser vendors could have fixed usability issues (rather than putting the burden of security on the shoulders of end users). And so on... We need our incentives aligned, so that it is in everyone&amp;#39;s interest to have better security.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/04/announcing-ssl-pulse</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/04/announcing-ssl-pulse.html"/>
    <title>Announcing SSL Pulse</title>
    <published>2012-04-30T16:36:44+01:00</published>
    <updated>2012-04-30T16:36:44+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;&lt;img align=&quot;right&quot; alt=&quot;&quot; border=&quot;0&quot; hspace=&quot;20&quot;
src=&quot;/images/pulse-announcement-screenshot-fragment.png&quot; /&gt;Last week we announced &lt;a href=&quot;https://www.trustworthyinternet.org/ssl-pulse/&quot; target=&quot;_self&quot;&gt;SSL Pulse&lt;/a&gt;, a continuously updated dashboard that is designed to show the state of the SSL ecosystem at a glance. While it is possible today to deploy SSL and to deploy it well, the process is difficult: the default settings are wrong, the documentation is lacking, and the diagnostic tools are inadequate. For these reasons, we cannot say that the Web is yet secure, but we hope that someday it will be. The purpose of SSL Pulse is to bring visibility to SSL implementation issues on the Web, and while businesses are starting to fix these issues we can keep track of progress made towards making SSL more robust and widely adopted on the Internet.&lt;/p&gt;
&lt;p&gt;SSL Pulse is based on the assessment technology and testing conducted by &lt;a href=&quot;https://www.ssllabs.com/&quot; target=&quot;_self&quot;&gt;SSL Labs&lt;/a&gt;. The underlying data set draws from the information on about 200,000 SSL web sites that represent the most popular web sites in the world. We cherry-picked only the most important data points, focusing especially on those aspects where improvements are needed. We have so far conducted only one round of testing, but, when the next month’s results become available, we will start to show historic values and hopefully see improvements for each data point.&lt;/p&gt;
&lt;p&gt;So what do the results tell us? Looking at the SSL Labs grades, which are designed to sum up the quality of SSL configuration, we can see that about 50% (99,903 sites) got an A, which is a good result. Previous global SSL Labs surveys reported about 33% well-configured sites, which means that more popular sites are better configured. Unfortunately, many of these A-grade sites (still) support insecure renegotiation (8,522 sites, or 8.5% of the well-configured ones) or are vulnerable to the BEAST attack (72,357 sites, or 72.4% of the well-configured ones). This leaves us with only 19,024 sites (or 9.59% of all sites) that are genuinely secure at this level of analysis.&lt;/p&gt;
&lt;p&gt;The number of sites vulnerable to insecure renegotiation is decreasing at a steady pace, as patches are applied or servers get replaced. The very high number of sites vulnerable to the BEAST attack is worrying, because this problem needs to be addressed in configuration, and that requires awareness, time, and knowledge. Plus, freshly installed systems are equally likely to be vulnerable because of the insecure defaults.&lt;/p&gt;
&lt;p&gt;Among other interesting data points, we found only 19 weak private keys in our data. There are also 9 keys that trigger our black list of weak Debian keys. The support for HTTP Strict Transport Security, which is the state of the art configuration for SSL, is at 0.85% (1,697 sites).&lt;/p&gt;
&lt;p&gt;As part of this effort, we also published an &lt;a href=&quot;https://www.ssllabs.com/projects/best-practices/index.html&quot; target=&quot;_self&quot;&gt;SSL/TLS Deployment Best Practices&lt;/a&gt; guide with clear and concise instructions to help overworked administrators and programmers spend the minimum time possible to deploy a secure site or web application.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/03/qualys-supports-reform-at-ca-browser-forum</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/03/qualys-supports-reform-at-ca-browser-forum.html"/>
    <title>Qualys supports reform at CA/Browser Forum</title>
    <published>2012-03-30T10:08:16+01:00</published>
    <updated>2012-03-30T10:08:16+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Last month, the &lt;a href=&quot;http://www.cabforum.org/&quot;&gt;CA/Browser Forum&lt;/a&gt; announced the creation of a working group that will focus on organizational reform. We welcome the announcement with open arms; the public PKI infrastructure needs more structure, collaboration, and visibility, and the CA/Browser Forum is in the best position to advance the robustness of the infrastructure in the short term.&lt;/p&gt;
&lt;p&gt;The PKI infrastructure has been evolving organically for too long, and, because of that, we are today faced with many of its structural cracks. The challenge now for the security community (not just the CA/Browser Forum) is to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;understand the complexities of the public PKI infrastructure, &lt;/li&gt;
&lt;li&gt;bring all the key stakeholders together, &lt;/li&gt;
&lt;li&gt;establish a system of governance that serves the collective interests, &lt;/li&gt;
&lt;li&gt;realign stakeholders&amp;#39; incentives to make the ecosystem stronger, &lt;/li&gt;
&lt;li&gt;in the short-term, resolve key structural and technical issues, &lt;/li&gt;
&lt;li&gt;maintain an up-to-date threat model and address weaknesses proactively, and, &lt;/li&gt;
&lt;li&gt;in the long-term, evolve the ecosystem to adequately address the real threats. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is no doubt that a reform is needed; what is not clear is how it will take place. To facilitate the change, the CA/Browser Forum will need to transform substantially, inviting a wide participation as well as embracing openness and transparency. There is already a large number of organizations and individuals working on improving the security of the PKI infrastructure; those efforts need to be streamlined, and the changes orchestrated.&lt;/p&gt;
&lt;p&gt;Some of the pressing issues that need to be addressed include the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The large attack surface stemming from a compromise of any one Certificate Authority &lt;/li&gt;
&lt;li&gt;Not enough visibility into the operation of Certificate Authorities &lt;/li&gt;
&lt;li&gt;Insufficiently defined operational requirements and auditing standards &lt;/li&gt;
&lt;li&gt;Lack of reliable control mechanisms and ability to deal with failures &lt;/li&gt;
&lt;li&gt;Low adoption rate of SSL/TLS across all web sites &lt;/li&gt;
&lt;li&gt;Numerous configuration and implementation issues that subvert security in those sites that did adopt SSL/TLS &lt;/li&gt;
&lt;li&gt;Inadequate browser SSL/TLS implementations that do not make security seamless and easy (instead pushing the burden of security onto the shoulders of the end users, who are not in the position to make informed decisions), but still make it difficult for advanced users (who are in the position to make informed decisions) to pursue alternative approaches &lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/03/ssl-and-browsers-the-pillars-of-broken-security</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/03/ssl-and-browsers-the-pillars-of-broken-security.html"/>
    <title>SSL and Browsers: The Pillars of Broken Security</title>
    <published>2012-03-07T18:31:36+00:00</published>
    <updated>2012-03-07T18:31:36+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Last week at the RSA Conference, Wolfgang and I gave a talk called &lt;em&gt;SSL and Browsers: The Pillars of Broken Security&lt;/em&gt;. We could have easily called it a &lt;em&gt;State of SSL&lt;/em&gt;, because we went through the most relevant SSL issues today, demonstrated the problems using the data from SSL Labs surveys, and discuss how the issues can be overcome. Here&amp;#39;s the talk summary:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;em&gt;Recent attacks on browsers and certificate authorities for SSL have shown how fragile these systems are, yet we all depend on them while using the Internet on daily basis. This talk will explore the implementation flaws in the SSL protocol and the browsers that support it. The speakers will showcase extensive research collected from millions of websites that reveal the state of SSL and Browse Security on the Internet. The session will then explore the mitigation options for the problems we are experiencing today, and provide a framework in which we can solve future SSL security issues.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Get this slides here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://community.qualys.com/servlet/JiveServlet/download/38-9096/SSL_and_Browsers-The_Pillars_of_Broken_Security.pdf&quot; target=&quot;_self&quot;&gt;SSL and Browsers: The Pillars of Broken Security&lt;/a&gt; (PDF, 4 MB)&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2012/02/announcing-the-ssl-tls-deployment-best-practices-guide</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2012/02/announcing-the-ssl-tls-deployment-best-practices-guide.html"/>
    <title>Announcing the SSL/TLS Deployment Best Practices guide</title>
    <published>2012-02-23T11:12:47+00:00</published>
    <updated>2012-02-23T11:12:47+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;SSL/TLS is a deceptively simple technology. It is easy to deploy, and it just works . . . except that it does not, really. The first part is true—SSL is easy to deploy—but it turns out that it is not easy to deploy correctly. To ensure that SSL provides the necessary security, users must put more effort into properly configuring their servers.&lt;/p&gt;
&lt;p&gt;In 2009, we began our work on SSL Labs because we wanted to understand how SSL was used and to remedy the lack of easy-to-use SSL tools and documentation. We have achieved some of our goals through our global surveys of SSL usage, as well as the online assessment tool, but the lack of documentation is still evident. This document is a first step toward addressing that problem.&lt;/p&gt;
&lt;p&gt;Our aim here is to provide clear and concise instructions to help overworked administrators and programmers spend the minimum time possible to obtain a secure site or web application. In pursue of clarity, we sacrifice completeness, foregoing certain advanced topics. The focus is on advice that is practical and easy to understand. For those interested in advanced topics, we provide references at the end of the guide.&lt;/p&gt;
&lt;p&gt;Download the guide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best_Practices_1.0.pdf&quot;&gt;SSL/TLS Deployment Best Practices&lt;/a&gt; (PDF, 500 KB) &lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/10/tls-renegotiation-and-denial-of-service-attacks</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/10/tls-renegotiation-and-denial-of-service-attacks.html"/>
    <title>TLS Renegotiation and Denial of Service Attacks</title>
    <published>2011-10-31T18:48:52+00:00</published>
    <updated>2011-10-31T18:48:52+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;A group of hackers known as THC (The Hacker&amp;#39;s Choice) last week &lt;a href=&quot;http://www.thc.org/thc-ssl-dos/&quot;&gt;released an interesting DoS tool&lt;/a&gt; that works at the SSL/TLS layer. The tool is exploiting the fact that, when a new SSL connection is being negotiated, the server will typically spend significantly more CPU resources than the client. Thus, if you are requesting many new SSL connections per second, you may end up using all of the server&amp;#39;s CPU.&lt;/p&gt;
&lt;p&gt;The issue abused by the tool is not new, but what is new is that we now have a well publicised working exploit, and that always makes you pay attention. In addition, the tool uses the renegotiation feature, which means that it can force a server to perform many expensive cryptographic operations over a single TCP connection. It&amp;#39;s not clear if the relying on renegotiation helps with the DoS attack (there&amp;#39;s a &lt;a href=&quot;http://www.educatedguesswork.org/2011/10/ssltls_and_computational_dos.html&quot;&gt;very good analysis of the trade-offs on Eric Rescorla&amp;#39;s blog&lt;/a&gt;), however the fact that external DoS mitigation tools (e.g., rate limiting setups) are only seeing one TCP connection certainly helps with avoiding detection.&lt;/p&gt;
&lt;p&gt;But that&amp;#39;s only if your server supports client-initiated renegotiation. If it does not, anyone wishing to perform a DoS attack against the SSL layer will have to fall back to using one TCP connection for one SSL connection. IIS, for example, does not support client-initiated renegotiation. Apache used to, but changed its behaviour when implementing RFC 5746 (which fixed the &lt;a href=&quot;http://blog.ivanristic.com/2009/11/ssl-and-tls-authentication-gap-vulnerability-discovered.html&quot;&gt;TLS Authentication Gap problem&lt;/a&gt;). Even if you depend on a product that does support client-initiated renegotiation, chances are you can easily disable that feature. And, when you do, you are not going to miss it (unlike server-initiated renegotiation, which some sites that require client certificates might need).&lt;/p&gt;
&lt;p&gt;&lt;span&gt;To help you with assessing your systems for this weakness, we have updated the &lt;/span&gt;&lt;span&gt;&lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot;&gt;SSL Labs assessment tool&lt;/a&gt; to test not only if secure renegotiation is supported (which we&amp;#39;ve been testing for some time now), but also to check if secure client-initiated renegotiation is &lt;em&gt;enabled&lt;/em&gt;. Previously we only tested for insecure client-initiated renegotiation.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The sensible thing to do is to check for client-initiated renegotiation support in your servers, and disable it where possible. Although that won&amp;#39;t substantially help you overall (defending against DoS attacks is notoriously difficult and expensive), it will harden your defences against this particular technique. &lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/10/mitigating-the-beast-attack-on-tls</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/10/mitigating-the-beast-attack-on-tls.html"/>
    <title>Mitigating the BEAST attack on TLS</title>
    <published>2011-10-17T19:36:47+01:00</published>
    <updated>2011-10-17T19:36:47+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;
&lt;span style=&quot;background-color: #ffffbf&quot;&gt;&lt;b&gt;Update (19 March 2013):&lt;/b&gt; This blog post advises to use RC4 to migitate the
BEAST attack, but RC4 has recently been discovered to be weaker than
previously known. At this point the attacks against RC4 are still not
practical. The only fully safe choice at the moment is the AES-GCM suites
supported only in TLS 1.2. You can &lt;a
href=&quot;http://blog.ivanristic.com/2013/03/rc4-in-tls-is-broken-now-what.html&quot;&gt;find out more in this new blog
post&lt;/a&gt;&lt;/span&gt;.
&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;During the summer rumours about a new attack against SSL started circulating. Then Opera released a patch, but made no comment about what it was patching. Eventually enough information leaked out that some &lt;a href=&quot;http://www.ietf.org/mail-archive/web/tls/current/msg08032.html&quot; target=&quot;_self&quot;&gt;smart people figured what the attack was about&lt;/a&gt;. What remained unknown was the exact technique used in the proof of concept, and that was eventually explained in &lt;a href=&quot;http://vnhacker.blogspot.com/2011/09/beast.html&quot; target=&quot;_self&quot;&gt;Thai&amp;#39;s blog post&lt;/a&gt;. For a comprehensive overview of related links, go to &lt;a href=&quot;http://blog.zoller.lu/2011/09/beast-summary-tls-cbc-countermeasures.html&quot; target=&quot;_self&quot;&gt;Thierry Zoller&amp;#39;s blog post on BEAST&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As it turns out, the attack itself was conceived years ago, deemed impractical, but it was nevertheless fixed in TLS 1.1. The new attack technique introduced a few optimizations to make it practical.&lt;/p&gt;
&lt;p&gt;In terms of mitigation, I expect this problem will be largely addressed on the client side, despite a potential compatibility problem that may cause some TLS sites to stop working. The only reliable way to defend against BEAST is to prioritise RC4 cipher suites, as &lt;a href=&quot;http://www.phonefactor.com/blog/slaying-beast-mitigating-the-latest-ssltls-vulnerability.php&quot; target=&quot;_self&quot;&gt;proposed by PhoneFactor&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Just as an example, here&amp;#39;s one way to do the above in Apache:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SSLHonorCipherOrder On&lt;br /&gt;SSLCipherSuite RC4-SHA:HIGH:!ADH&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Not everyone likes RC4, even though there is &lt;a href=&quot;http://blog.ivanristic.com/2009/08/is-rc4-safe-for-use-in-ssl.html&quot; target=&quot;_self&quot;&gt;little to no evidence&lt;/a&gt; that it is insecure in the context of SSL/TLS. If your server supports TLS 1.2+ you can try the approach recommended by Steve Caligo:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SSLHonorCipherOrder On&lt;br /&gt;SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The idea is that you put a few TLS 1.2 cipher suites first so that they can be picked up by TLS 1.2 clients, which are not vulnerable, followed by RC4 for TLS 1.0 clients.&lt;/p&gt;
&lt;p&gt;Now that I&amp;#39;ve discussed what works as mitigation, let&amp;#39;s look at a few approaches that do not work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supporting TLS 1.1+ server-side is a good start, but does not amount to much because very few clients support newer versions of the protocol at this time. And even with TLS 1.1+ support client-side, there&amp;#39;s nothing preventing the MITM to force a protocol downgrade back to TLS 1.0. (For a discussion on defense techniques against downgrade attacks, see &lt;a href=&quot;http://www.ietf.org/mail-archive/web/tls/current/msg08099.html&quot; target=&quot;_self&quot;&gt;this thread on the TLS WG mailing list&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Enabling the empty fragment technique server-side (&lt;a href=&quot;http://www.openssl.org/~bodo/tls-cbc.txt&quot; target=&quot;_self&quot;&gt;details for OpenSSL here&lt;/a&gt;) does not work either. TLS 1.0 uses two initialisation vectors (IVs), one each for client- and server-side of the communication channel. The vulnerability exploited by BEAST is on the client-side and cannot be addressed by making server-side changes to how data is sent.&lt;/li&gt;
&lt;li&gt;Compression is said to make the attack impossible, but, as with TLS 1.1+, the support for it client-side is inconsistent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Update (20 Jan 2012)&lt;/strong&gt;: In testing OpenSSL 1.0.1-beta2, which came out yesterday, I realised that it will happily negotiate &lt;code&gt;AES-CBC-SHA256&lt;/code&gt; even on a TLSv1.0 connection. So I removed it from the recommendation, replacing it with two other TLSv1.2 cipher suites.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/09/ssl-labs-announcing-launch-of-two-convergence-notaries</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/09/ssl-labs-announcing-launch-of-two-convergence-notaries.html"/>
    <title>SSL Labs: Announcing launch of two Convergence notaries</title>
    <published>2011-09-29T23:50:00+01:00</published>
    <updated>2011-09-29T23:50:00+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;&lt;img src=&quot;/images/convergence-site-corner.png&quot; border=&quot;1&quot; hspace=&quot;20&quot; align=&quot;right&quot; /&gt;&lt;a href=&quot;http://convergence.io&quot; target=&quot;_self&quot;&gt;Convergence&lt;/a&gt; is &lt;a href=&quot;http://www.thoughtcrime.org&quot; target=&quot;_self&quot;&gt;Moxie Marlinspike&lt;/a&gt;'s attempt to introduce fresh thinking into the debate about PKI, certificate authorities, and trust. A hint of what was in the works was in a blog post published in April (&lt;a href=&quot;http://blog.thoughtcrime.org/ssl-and-the-future-of-authenticity&quot; target=&quot;_self&quot;&gt;SSL And The Future Of Authenticity&lt;/a&gt;); the project was launched at Black Hat US in August. Moxie's talk (here's the &lt;a href=&quot;http://www.youtube.com/watch?v=Z7Wl2FW2TcA&quot; target=&quot;_self&quot;&gt;video on YouTube&lt;/a&gt;) was entertaining and insightful.&lt;/p&gt;
&lt;p&gt;Moxie advertises the project as a way of dispensing with certificate authorities (&quot;An agile, distributed, and secure strategy for replacing Certificate Authorities&quot;). At the first glance that's true. You get a browser add-on (only Firefox for the time being) that, once activated, completely replaces the existing CA infrastructure. Whenever you visit an SSL site your browser will talk to two or more remote parties (notaries) and ask them to check the site's certificate for you. If they both see the same certificate you decide to trust the site.&lt;/p&gt;
&lt;p&gt;But when you dig deeper into the project, you realise that it consists of two parts. The first, and more important, part is the ability to delegate trust decisions from your browser to another party that's remote to you. That means that you are no longer forced to accept the decisions of the browser vendors, but you can make your own. That ability is, for me, the most thrilling aspect of the project.&lt;/p&gt;
&lt;p&gt;The second part of the project is the current backend implementation that makes trust decisions. The approach is great in its simplicity: if you can see the same certificate from several different locations you conclude that it must be the correct certificate. We mustn't rush, however. We've just been given the ability to choose whom to trust, and it's too soon to settle on any one implementation. I am far more interested in experimenting with different approaches, to see what works and what does not.&lt;/p&gt;
&lt;p&gt;To that end, it makes me very happy to announce that we (Qualys) have decided to support Convergence by financing and running two notary servers. While it's not yet clear if Convergence can succeed (there are many technological and adoption challenges to conquer), we want to play a part in it and help it succeed.&lt;/p&gt;
&lt;p&gt;Finally, here are the links to the notary servers (one of which is in the US and the other in Europe):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ssllabs.com/convergence/notary-eu.convergence.qualys.com.notary&quot; target=&quot;_self&quot;&gt;https://www.ssllabs.com/convergence/notary-eu.convergence.qualys.com.notary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ssllabs.com/convergence/notary-us.convergence.qualys.com.notary&quot; target=&quot;_self&quot;&gt;https://www.ssllabs.com/convergence/notary-us.convergence.qualys.com.notary&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; To use the above links, you have to have the Convergence plugin installed. After that, all you need to do is click on the links and the notaries will become part of your configuration. Please report any problems to convergence-notary@qualys domain name.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/09/key-ssl-tls-mailing-lists-to-follow</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/09/key-ssl-tls-mailing-lists-to-follow.html"/>
    <title>Key SSL/TLS mailing lists to follow</title>
    <published>2011-09-26T16:05:35+01:00</published>
    <updated>2011-09-26T16:05:35+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;The best way to really learn about SSL/TLS and related topics is to follow the discussions on the key technology mailing lists. These lists are always interesting, but especially so in turbulent times, when the value of participation simply goes through the roof.&lt;/p&gt;
&lt;p&gt;The key mailing lists are the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://datatracker.ietf.org/wg/tls/charter/&quot; target=&quot;_self&quot;&gt;Transport Layer Security Working Group&lt;/a&gt; (core protocols); &lt;a href=&quot;http://www.ietf.org/mail-archive/web/tls/current/maillist.html&quot; target=&quot;_self&quot;&gt;list archive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tools.ietf.org/wg/websec/&quot; target=&quot;_self&quot;&gt;Web Security Working Group&lt;/a&gt; (HSTS); &lt;a href=&quot;http://www.ietf.org/mail-archive/web/websec/current/maillist.html&quot; target=&quot;_self&quot;&gt;list archive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.eff.org/observatory&quot; target=&quot;_self&quot;&gt;SSL Observatory&lt;/a&gt; (trust ecosystem); &lt;a href=&quot;https://mail1.eff.org/pipermail/observatory/&quot; target=&quot;_self&quot;&gt;list archive&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The list archives are publicly available, so there&amp;#39;s not even a need to subscribe.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/09/ssl-survey-protocol-support</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/09/ssl-survey-protocol-support.html"/>
    <title>SSL Survey: How many sites support TLS 1.1 and better?</title>
    <published>2011-09-23T10:15:00+01:00</published>
    <updated>2011-09-23T10:15:00+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;In the last two weeks there's been a lot of chatter about a new attack against SSL and a tool called BEAST. You can find some coverage &lt;a href=&quot;http://www.h-online.com/security/news/item/Tool-cracks-SSL-cookies-in-just-ten-minutes-1346387.html&quot; target=&quot;_self&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/&quot; target=&quot;_self&quot;&gt;here&lt;/a&gt;, and &lt;a href=&quot;http://threatpost.com/en_us/blogs/new-attack-breaks-confidentiality-model-ssl-allows-theft-encrypted-cookies-091911&quot; target=&quot;_self&quot;&gt;here&lt;/a&gt;. The public has not seen any details of the attack yet (they are expected to be released at the &lt;a href=&quot;http://www.ekoparty.org/2011/juliano-rizzo.php&quot; target=&quot;_self&quot;&gt;ekoparty security conference&lt;/a&gt;), but crypto experts have &lt;a href=&quot;http://www.ietf.org/mail-archive/web/tls/current/msg08032.html&quot; target=&quot;_self&quot;&gt;a good idea what it is&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As it appears that the attack wouldn't work against TLS 1.1 and better, suddenly everyone is interested in how many web sites support the newer protocol versions. &lt;em&gt;Virtually none&lt;/em&gt;. To illustrate, I am including a slide from my recent Black Hat presentation, where you will see that, even though TLS 1.1 is a 5-year old protocol, there is virtually no support for it.&lt;/p&gt;
&lt;p&gt;If you're interested in what exactly is supported in various products, Thierry Zoller has &lt;a href=&quot;http://blog.zoller.lu/2011/09/tlsssl-hardening-and-compatibility.html&quot; target=&quot;_self&quot;&gt;a very good overview&lt;/a&gt;. If you want to know more about how SSL is deployed in practice, read our &lt;a href=&quot;http://blog.ivanristic.com/2011/05/a-study-of-what-really-breaks-ssl.html&quot; target=&quot;_self&quot;&gt;full survey results&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/SSL-Survey-April-2011_Protocol-Support.png&quot; border=&quot;1&quot; alt=&quot;&quot; width=&quot;707&quot; height=&quot;527&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: The above slides shows results from an analysis of about 300,000 SSL sites from Alexa's top 1m most popular list. In a separate analysis we also looked at all SSL sites (1.2 million of them), and the numbers are practically identical.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/08/so-what-really-breaks-ssl</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/08/so-what-really-breaks-ssl.html"/>
    <title>So, what really breaks SSL?</title>
    <published>2011-08-09T12:22:54+01:00</published>
    <updated>2011-08-09T12:22:54+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;After years of being ignored -- which is an unusual situation for the protocol that secures the Web -- SSL became the focus of the interests of the security community at some point in 2008 or thereabout. From then on, a couple of months wouldn&amp;#39;t pass between discoveries of one flaw or another. Most problems were with the way SSL is implemented, with one notable exception (the SSL/TLS renegotiation gap) in the protocol itself. As a result of this attention, the effective security of SSL has been continuously improving.&lt;/p&gt;
&lt;p&gt;However, for an average web site, the security of the communication channel is rarely compromised by attackers using advanced exploitation techniques. On the contrary, the compromises virtually always come from the flaws in the way SSL is deployed. These problems are created by those implementing and maintaining web sites. And, in most cases, they can relatively easily be fixed.&lt;/p&gt;
&lt;p&gt;In the most recent round of our SSL research, &lt;a href=&quot;https://www.ssllabs.com&quot; target=&quot;_self&quot;&gt;SSL Labs&lt;/a&gt; focused on programming and deployment errors that compromise SSL security even when SSL is properly configured, with strong cryptographic primitives and up-to-date libraries. None of these issues are new: &lt;strong&gt;failure to use SSL&lt;/strong&gt; (when there is something worth protecting), &lt;strong&gt;mixing of encrypted and non-encrypted areas&lt;/strong&gt; in the same site, &lt;strong&gt;mixed page content&lt;/strong&gt;, &lt;strong&gt;insecure session cookies&lt;/strong&gt;, &lt;strong&gt;login forms delivered or submitted over HTTP&lt;/strong&gt;, and so on.&lt;/p&gt;
&lt;p&gt;Although we initially started with the idea to discover how many sites have weaknesses, we discovered that the situation is so bad that we ended up looking for sites that do not have weaknesses. And the number of such sites is very, very small. (You can find the details if you download our &lt;a href=&quot;http://blog.ivanristic.com/2011/05/a-study-of-what-really-breaks-ssl.html&quot; target=&quot;_self&quot;&gt;presentation slides&lt;/a&gt;.) Sites with support for &lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security&quot; target=&quot;_self&quot;&gt;Strict Transport Security&lt;/a&gt; are preciously rare.&lt;/p&gt;
&lt;p&gt;Why are the weaknesses so prevalent?&lt;/p&gt;
&lt;p&gt;On one level, problems come from the way web &amp;quot;standards&amp;quot; have evolved. Slowly, over many years, and without a coherent security strategy. The truth is, it is very easy to break SSL with mistakes that occur on the HTTP level. Thus, our challenge here, short term, is that of education -- making developers aware of these issues.&lt;/p&gt;
&lt;p&gt;Businesses are not exactly rushing to secure their sites, either, because there is often little incentive for them to do that. Their money (of which there is never enough), is almost always &amp;quot;better&amp;quot; spent doing other things. As a result, companies today spend on security only when they can&amp;#39;t avoid it.&lt;/p&gt;
&lt;p&gt;Long term, our only option is to incrementally improve our technology stack to build communication channel security in. Once the option to communicate via plain-text is taken away, there will be no way to subvert SSL. This is a tough goal to achieve, but the journey has already started. A security conscientious site operator can today deploy state of the art SSL configuration (which isn&amp;#39;t that difficult, by the way), and achieve pretty good SSL security. Over time, the hope is that we will migrate to better communication protocol that embed SSL in, and that, once communication security becomes invisible, we won&amp;#39;t have to worry about it any more.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/05/a-study-of-what-really-breaks-ssl</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/05/a-study-of-what-really-breaks-ssl.html"/>
    <title>A study of what really breaks SSL</title>
    <published>2011-05-25T15:20:32+01:00</published>
    <updated>2011-05-25T15:20:32+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Earlier this year, we at SSL Labs conducted a second, much deeper survey of SSL usage. (I can now say &quot;we&quot; and really mean it, because most of the work on the survey was done by my Qualys coleague, Michael Small.) I presented the results last week at &lt;a href=&quot;http://conference.hackinthebox.org/hitbsecconf2011ams/&quot; target=&quot;_self&quot;&gt;Hack In the Box Amsterdam&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;em&gt;
&lt;p&gt;We love security metrics because they tell us what really goes on out there. Last year we conducted an analysis of millions of SSL servers, showing, for the first time, how SSL is really used. This year we are pushing our study further by deepening and expending our efforts in several key areas. We will be looking at the problems that really break SSL — insecure session cookies, mixed content, incorrect site configuration, and distribution of trust to third-party sites. The best crypto in the world is not going to help a site that has flaws in these critical areas.&lt;/p&gt;
&lt;p&gt;To discover these flaws we are building a custom site crawler, which we are then going to run against the world’s 1 million most used web sites. In addition to all that, we are expanding the scope of the study to include protocols other than HTTP, as well as basing our assessment on an updated version of the rating guide. The end result? We are finally going to find out how useful SSL really is.&lt;/p&gt;
&lt;/em&gt;&lt;/blockquote&gt;
&lt;p&gt;Get the slides here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.ivanristic.com/Qualys_SSL_Labs-A_Study_of_Really_Breaks_SSL-HITB_Amsterdam_2011.pdf&quot; target=&quot;_self&quot;&gt;A study of what really breaks SSL&lt;/a&gt; (PDF)&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/04/fresh-internet-ssl-survey-results-april-2011-available</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/04/fresh-internet-ssl-survey-results-april-2011-available.html"/>
    <title>Fresh Internet SSL Survey results (April 2011) available</title>
    <published>2011-04-27T17:41:04+01:00</published>
    <updated>2011-04-27T17:41:04+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Last week I attended InfoSec World and presented an update to our global survey of SSL configuration. I present the slides for your enjoyment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/downloads/Qualys_SSL_Labs-State_of_SSL_InfoSec_World_April_2011.pdf&quot; target=&quot;_self&quot;&gt;Qualys SSL Labs State of SSL InfoSec World April 2011&lt;/a&gt; (PDF)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An analysis will follow shortly.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2011/01/unfortunate-current-practices-for-http-over-tls</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2011/01/unfortunate-current-practices-for-http-over-tls.html"/>
    <title>Unfortunate current practices for HTTP over TLS</title>
    <published>2011-01-19T10:47:23+00:00</published>
    <updated>2011-01-19T10:47:23+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;This is such a good summary of the current state of SSL in web servers from Adam Langley, that I couldn&amp;#39;t resist preserving it here in full. Enjoy.&lt;/p&gt;
&lt;p&gt;&amp;#0160;&lt;/p&gt;
&lt;pre&gt;Network Working Group                                         A. Langley&lt;br /&gt;Internet-Draft                                                Google Inc&lt;br /&gt;Expires: July 5, 2011                                           Jan 2011&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Unfortunate current practices for HTTP over TLS&lt;br /&gt;                      draft-agl-tls-oppractices-00&lt;br /&gt;&lt;br /&gt;Abstract&lt;br /&gt;&lt;br /&gt;   This document describes some of the unfortunate current practices&lt;br /&gt;   which are needed in order to transport HTTP over TLS on the public&lt;br /&gt;   Internet.&lt;br /&gt;&lt;br /&gt;Status of this Memo&lt;br /&gt;&lt;br /&gt;   This Internet-Draft is submitted to IETF in full conformance with the&lt;br /&gt;   provisions of BCP 78 and BCP 79.&lt;br /&gt;&lt;br /&gt;   Internet-Drafts are working documents of the Internet Engineering&lt;br /&gt;   Task Force (IETF), its areas, and its working groups.  Note that&lt;br /&gt;   other groups may also distribute working documents as Internet-&lt;br /&gt;   Drafts.&lt;br /&gt;&lt;br /&gt;   Internet-Drafts are draft documents valid for a maximum of six months&lt;br /&gt;   and may be updated, replaced, or obsoleted by other documents at any&lt;br /&gt;   time.  It is inappropriate to use Internet-Drafts as reference&lt;br /&gt;   material or to cite them other than as &amp;quot;work in progress.&amp;quot;&lt;br /&gt;&lt;br /&gt;   The list of current Internet-Drafts can be accessed at&lt;br /&gt;   http://www.ietf.org/ietf/1id-abstracts.txt.&lt;br /&gt;&lt;br /&gt;   The list of Internet-Draft Shadow Directories can be accessed at&lt;br /&gt;   http://www.ietf.org/shadow.html.&lt;br /&gt;&lt;br /&gt;   This Internet-Draft will expire on July 5, 2011.&lt;br /&gt;&lt;br /&gt;Copyright Notice&lt;br /&gt;&lt;br /&gt;   Copyright (c) 2011 IETF Trust and the persons identified as the&lt;br /&gt;   document authors.  All rights reserved.&lt;br /&gt;&lt;br /&gt;   This document is subject to BCP 78 and the IETF Trust&amp;#39;s Legal&lt;br /&gt;   Provisions Relating to IETF Documents&lt;br /&gt;   (http://trustee.ietf.org/license-info) in effect on the date of&lt;br /&gt;   publication of this document.  Please review these documents&lt;br /&gt;   carefully, as they describe your rights and restrictions with respect&lt;br /&gt;   to this document.  Code Components extracted from this document must&lt;br /&gt;   include Simplified BSD License text as described in Section 4.e of&lt;br /&gt;   the Trust Legal Provisions and are provided without warranty as&lt;br /&gt;   described in the BSD License.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table of Contents&lt;br /&gt;&lt;br /&gt;   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3&lt;br /&gt;   2.  Handshake message fragmentation  . . . . . . . . . . . . . . .  4&lt;br /&gt;   3.  Protocol Fallback  . . . . . . . . . . . . . . . . . . . . . .  5&lt;br /&gt;   4.  More implementation mistakes . . . . . . . . . . . . . . . . .  6&lt;br /&gt;   5.  Certificate Chains . . . . . . . . . . . . . . . . . . . . . .  7&lt;br /&gt;   6.  Insufficient Security  . . . . . . . . . . . . . . . . . . . .  8&lt;br /&gt;   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  9&lt;br /&gt;   8.  Normative References . . . . . . . . . . . . . . . . . . . . . 10&lt;br /&gt;   Appendix A.  Changes . . . . . . . . . . . . . . . . . . . . . . . 11&lt;br /&gt;   Author&amp;#39;s Address . . . . . . . . . . . . . . . . . . . . . . . . . 12&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.  Introduction&lt;br /&gt;&lt;br /&gt;   HTTP [RFC2616] is one of the most common application level protocols&lt;br /&gt;   transported over TLS [RFC5246].  (This combination is commonly known&lt;br /&gt;   as HTTPS based on the URL scheme used to indicate it.)  HTTPS clients&lt;br /&gt;   have to function with a huge range of TLS implementations, some of&lt;br /&gt;   higher quality than others.  This text aims to document some of the&lt;br /&gt;   behaviours of existing HTTPS clients that are designed to ensure&lt;br /&gt;   maximum interoperability.&lt;br /&gt;&lt;br /&gt;   This text should not be taken as a recommendation that future HTTPS&lt;br /&gt;   clients adopt these behaviours.  The security implications of each&lt;br /&gt;   need to be carefully considered by each implementation.  However,&lt;br /&gt;   these behaviours are common and the authors consider it better to&lt;br /&gt;   document the state of practice than to simply wish it were otherwise.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.  Handshake message fragmentation&lt;br /&gt;&lt;br /&gt;   Many servers will fail to process a handshake message that spans more&lt;br /&gt;   than one record.  These servers will close the connection when they&lt;br /&gt;   encounter such a handshake message.  HTTPS clients will commonly&lt;br /&gt;   ensure against that by either packing all handshake messages in a&lt;br /&gt;   flow into a single record, or by creating a single record for each&lt;br /&gt;   handshake message.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.  Protocol Fallback&lt;br /&gt;&lt;br /&gt;   Despite it being nearly twelve years since the publication of TLS 1.0&lt;br /&gt;   [RFC2246], around 3% of HTTPS servers will reject a valid TLS&lt;br /&gt;   &amp;quot;ClientHello&amp;quot;.  These rejections can take the form of immediately&lt;br /&gt;   closing the connection or a fatal alert.  Intolerance to the&lt;br /&gt;   following has been observed:&lt;br /&gt;&lt;br /&gt;      Advertising version TLS 1.0.&lt;br /&gt;&lt;br /&gt;      Advertising a TLS version greater than TLS 1.0 (around 2% for 1.1&lt;br /&gt;      or 1.2, around 3% for greater than 1.2).&lt;br /&gt;&lt;br /&gt;      Advertising a version greater than 0x03ff (around 65% of servers)&lt;br /&gt;&lt;br /&gt;      The presence of any extensions (around 7% of servers)&lt;br /&gt;&lt;br /&gt;      The presence of specific extensions (&amp;quot;server_name&amp;quot; and&lt;br /&gt;      &amp;quot;status_request&amp;quot; intolerance has been observed, although in very&lt;br /&gt;      low numbers).&lt;br /&gt;&lt;br /&gt;      The presence of any advertised compression algorithms&lt;br /&gt;&lt;br /&gt;   Next, some servers will misbehave after processing the &amp;quot;ClientHello&amp;quot;&lt;br /&gt;   message.  Negotiating the use of &amp;quot;DEFLATE&amp;quot; compression can result in&lt;br /&gt;   fatal &amp;quot;bad_record_mac&amp;quot;, &amp;quot;decompression_failure&amp;quot; or&lt;br /&gt;   &amp;quot;decryption_failed&amp;quot; alerts.  Notably, OpenSSL prior to version 0.9.8c&lt;br /&gt;   will intermittently fail to process compressed finished messages due&lt;br /&gt;   to a work around of a previous padding bug.&lt;br /&gt;&lt;br /&gt;   Lastly, some servers will negotiate the use of SSLv3 but select a&lt;br /&gt;   TLS-only cipher suite.&lt;br /&gt;&lt;br /&gt;   In all these cases, HTTPS clients will often enter a fallback mode.&lt;br /&gt;   The connection is retried using only SSLv3 and without advertising&lt;br /&gt;   any compression algorithms.  (This is obviously an easy downgrade&lt;br /&gt;   attack.)  Also, the fallback can be triggered by transient network&lt;br /&gt;   problems, which often manifest as an abruptly closed connection.&lt;br /&gt;   Since SSLv3 does not provide any means of Server Name Indication&lt;br /&gt;   [RFC3546], the fallback connection can use the wrong certificate&lt;br /&gt;   chain, resulting in a very surprising certificate error.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.  More implementation mistakes&lt;br /&gt;&lt;br /&gt;   Non-fatal errors in version negotiation also occur.  Some 0.2% of&lt;br /&gt;   servers use the version from the record header.  Around 0.6% of&lt;br /&gt;   servers require that the version in the &amp;quot;ClientHello&amp;quot; and record&lt;br /&gt;   header match in order to respect the version in the &amp;quot;ClientHello&amp;quot;.  A&lt;br /&gt;   very low number of servers echo whatever version the client&lt;br /&gt;   advertises.&lt;br /&gt;&lt;br /&gt;   In the event that the client supports a higher protocol version than&lt;br /&gt;   the server, about 0.4% of servers require that the RSA&lt;br /&gt;   &amp;quot;ClientKeyExchange&amp;quot; message include the server&amp;#39;s protocol version.&lt;br /&gt;&lt;br /&gt;   Some 30% of servers don&amp;#39;t check the version in an RSA&lt;br /&gt;   &amp;quot;ClientKeyExchange&amp;quot; at all.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.  Certificate Chains&lt;br /&gt;&lt;br /&gt;   Certificate chains presented by servers will commonly be missing&lt;br /&gt;   intermediate certificates, have certificates in the wrong order and&lt;br /&gt;   will include unrelated, superfluous certificates.  Servers have been&lt;br /&gt;   observed presenting more than ten certificates in what we assume is a&lt;br /&gt;   drive-by shooting approach to including the correct intermediate&lt;br /&gt;   certificate.&lt;br /&gt;&lt;br /&gt;   In order to validate chains which are missing certificates, some&lt;br /&gt;   HTTPS clients will collect intermediate certificates from other&lt;br /&gt;   servers.  Clients will commonly put all the presented certificates&lt;br /&gt;   into a set and try to validate a chain assuming only that the first&lt;br /&gt;   certificate is the leaf.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6.  Insufficient Security&lt;br /&gt;&lt;br /&gt;   Some 65% of servers support SSLv2 (beyond just supporting the&lt;br /&gt;   handshake in order to upgrade to SSLv3 or TLS).  HTTPS clients will&lt;br /&gt;   typically not support SSLv2, nor send SSLv2 handshakes by default.&lt;br /&gt;   Of those servers, 80% support the export ciphersuites.  (Although&lt;br /&gt;   about 3% of those servers negotiate weak ciphersuites only to show a&lt;br /&gt;   warning.)&lt;br /&gt;&lt;br /&gt;   Some servers will choose very small multiplicative group sizes for&lt;br /&gt;   their ephemeral Diffie-Hellman exchange (for example, 256-bits).&lt;br /&gt;   Some HTTPS clients will reject all multiplicative group sizes smaller&lt;br /&gt;   than 512-bits while others will retry after demoting DHE ciphersuites&lt;br /&gt;   in their &amp;quot;ClientHello&amp;quot;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7.  Acknowledgements&lt;br /&gt;&lt;br /&gt;   Yngve Pettersen made significant contributions and many of the&lt;br /&gt;   numbers in this document come from his scanning work.  Other numbers&lt;br /&gt;   were taken from Ivan Ristic&amp;#39;s SSL Survey.&lt;br /&gt;&lt;br /&gt;   Thanks to Wan Teh Chang for reviewing early drafts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8.  Normative References&lt;br /&gt;&lt;br /&gt;   [RFC2246]  Dierks, T. and C. Allen, &amp;quot;The TLS Protocol Version 1.0&amp;quot;,&lt;br /&gt;              RFC 2246, January 1999.&lt;br /&gt;&lt;br /&gt;   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,&lt;br /&gt;              Masinter, L., Leach, P., and T. Berners-Lee, &amp;quot;Hypertext&lt;br /&gt;              Transfer Protocol -- HTTP/1.1&amp;quot;, RFC 2616, June 1999.&lt;br /&gt;&lt;br /&gt;   [RFC3546]  Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J.,&lt;br /&gt;              and T. Wright, &amp;quot;Transport Layer Security (TLS)&lt;br /&gt;              Extensions&amp;quot;, RFC 3546, June 2003.&lt;br /&gt;&lt;br /&gt;   [RFC5246]  Dierks, T. and E. Rescorla, &amp;quot;The Transport Layer Security&lt;br /&gt;              (TLS) Protocol Version 1.2&amp;quot;, RFC 5246, August 2008.&lt;br /&gt;&lt;/pre&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/12/ssl-labs-added-test-for-ephemeral-dh-parameters</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/12/ssl-labs-added-test-for-ephemeral-dh-parameters.html"/>
    <title>SSL Labs: Added test for ephemeral DH parameters</title>
    <published>2010-12-23T17:44:06+00:00</published>
    <updated>2010-12-23T17:44:06+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Ephemeral Diffie-Hellman key exchange (EDH or DHE, depending on where you look) allows two parties with no prior knowledge of each other to establish a shared secret. In SSL, DHE is used together with some method of authentication (most commonly RSA) in the handshake phase. Ephemeral DH is valued because it provides &lt;em&gt;perfect forward secrecy&lt;/em&gt; -- the session keys cannot be recovered if the authentication method is broken (e.g., someone retrieves the server&amp;#39;s private key).&lt;/p&gt;
&lt;p&gt;DH parameters are typically generated at runtime. Because of that they are not very visible and are often forgotten during the testing. As of 1.0.69, the &lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot; target=&quot;_self&quot;&gt;SSL Labs online test&lt;/a&gt; will examine the DH parameters and warn if they are too weak. The scoring system has been modified to take into account the strength of the DH parameters when they are used for key exchange.&lt;/p&gt;
&lt;p&gt;Thanks to Adrian Dimcev and Brian Smith for their help with the research of DH parameter evaluation.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/11/detection-of-certificate-chain-issues-in-ssl-labs</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/11/detection-of-certificate-chain-issues-in-ssl-labs.html"/>
    <title>Detection of certificate chain issues in SSL Labs</title>
    <published>2010-11-30T19:57:31+00:00</published>
    <updated>2010-11-30T19:57:31+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;div&gt;
&lt;p&gt;One of the recent additions to the  SSL Labs test was the detection of various chain issues. The feature is  still marked as experimental, and it will remain so until we conclude  that the advice we give there is safe.&lt;/p&gt;
&lt;p&gt;Certificate  chains are a PKI feature that allows root certificate authorities to  delegate the work of certificate signing. Roughly one half of all sites  have certificates that are signed by a trusted CA. Such sites need only  provide the server&amp;#39;s certificate in the handshake. The remaining half  (of the sites) uses intermediate certificates (usually only one; it is  rare to see a site with more than one such certificate). Such sites need  to provide all the intermediate certificates in addition to the  server&amp;#39;s certificate.&lt;/p&gt;
&lt;p&gt;In our tests, we detect the following chain issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Missing intermediate certificates;&lt;/strong&gt; When a site does not provide the necessary intermediate certificates, a  trust path cannot be established. Generally speaking, we cannot  distinguish that case from a certificate signed by a custom CA. However,  some server certificates include the information on which intermediate  certificates are required, and also where to obtain them. SSL Labs will  attempt to fetch missing certificates. If the intermediate certificates  are found, then it&amp;#39;s very likely that a trust path will be established.  In such cases, the test will issue a warning. If you site receives the  warning you should reconfigure the server to add the missing  certificates. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificate chains that are too long;&lt;/strong&gt; Sites often include more certificates in the handshake than necessary.  Of those, most include one extra certificate, and that is the actual  trusted root certificate (which browsers already have in their storage).  This last certificate is not needed for the validation process. Having  an additional certificate in the chain wastes bandwidth and decreases  overal performance slightly. A small number of sites will include a very  large number of certificates as a result of misconfiguration. Such  sites will typically suffer significant performance issues and need to  be reconfigured.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificates given in incorrect order&lt;/strong&gt;;  According to the standard, certificates must be presented in the order  in which they are needed. The main, server, certificate must come first,  followed by the certificate that signed it, followed by the next  certificate in the chain, and so on. A small number of sites does not  get this order right. Most SSL clients will deal with this problem  silently, but there is a small number of platforms that will give up. &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/11/debian-stable-lenny-will-support-secure-renegotiation</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/11/debian-stable-lenny-will-support-secure-renegotiation.html"/>
    <title>Debian stable (Lenny) will support secure renegotiation</title>
    <published>2010-11-17T12:14:56+00:00</published>
    <updated>2010-11-17T12:14:56+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Thijs Kinkhorst from the Debian Security Team wrote to me in response to my recent blog post &lt;a href=&quot;http://blog.ivanristic.com/2010/10/disabling-ssl-renegotiation-is-a-crutch-not-a-fix.html&quot; target=&quot;_self&quot;&gt;Disabling SSL renegotiation is a crutch, not a fix&lt;/a&gt;. I am publishing his entire comment (with permission):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;It&amp;#39;s true that Debian stable still doesn&amp;#39;t have an openssl which supports the&lt;/em&gt;&lt;br /&gt;&lt;em&gt; new protocol enhancement, but it&amp;#39;s definately not a refusal to fix it. First&lt;/em&gt;&lt;br /&gt;&lt;em&gt; let me note that the fix is already in the upcoming release of Debian,&lt;/em&gt;&lt;br /&gt;&lt;em&gt; codename Squeeze. The current stable release, Lenny, does not have the fix&lt;/em&gt;&lt;br /&gt;&lt;em&gt; yet, but it is being worked on; an updated openssl is ready but the blocker&lt;/em&gt;&lt;br /&gt;&lt;em&gt; currently is that we may need to implement changes in some of the packages&lt;/em&gt;&lt;br /&gt;&lt;em&gt; using it. As usual Debian is very cautious with respect to updating its stable&lt;/em&gt;&lt;br /&gt;&lt;em&gt; release. It takes a while, and it would have been nice if the fix was out&lt;/em&gt;&lt;br /&gt;&lt;em&gt; sooner, but the combination of impacted software takes quite some time and&lt;/em&gt;&lt;br /&gt;&lt;em&gt; time is one of the most sought after resources in a volunteer project.&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;em&gt; So just so you know that the issue has not been forgotten or ignored; it only&lt;/em&gt;&lt;br /&gt;&lt;em&gt; takes &amp;quot;a while&amp;quot; to get everything in order.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The fix was &lt;a href=&quot;http://www.debian.org/security/2011/dsa-2141&quot; target=&quot;_self&quot;&gt;released&lt;/a&gt; on January 6, 2011.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/10/private-assessment-option-added-to-the-ssl-server-test</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/10/private-assessment-option-added-to-the-ssl-server-test.html"/>
    <title>Private assessment option added to the SSL server test</title>
    <published>2010-10-07T14:58:40+01:00</published>
    <updated>2010-10-07T14:58:40+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Everyone I know likes the &lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot;&gt;SSL assessment tool&lt;/a&gt; on the &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs web site&lt;/a&gt;, but many dislike the fact that their domain name may end up on one of the boards that display recent test history. I am assuming most wouldn&amp;#39;t mind being on the &amp;quot;Recent Best-Rated&amp;quot; one, but you never know before the test how it&amp;#39;s going to turn out.&lt;/p&gt;&lt;p&gt;That&amp;#39;s why we now support the private assessment option. If you tick the checkbox underneath the domain name field, the test results will not be publicly revealed. Not only that, but the results will remain hidden for as long as the results remain cached.&lt;/p&gt;&lt;p&gt;If you intend to send links to hidden assessment results, make sure the URL contains the &amp;quot;hiddenResults=on&amp;quot; bit, which is needed to ensure that a new public test is run after the earlier results expire from the cache.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/10/disabling-ssl-renegotiation-is-a-crutch-not-a-fix</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/10/disabling-ssl-renegotiation-is-a-crutch-not-a-fix.html"/>
    <title>Disabling SSL renegotiation is a crutch, not a fix</title>
    <published>2010-10-06T12:51:08+01:00</published>
    <updated>2010-10-06T12:51:08+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;In the days that followed the discovery of &lt;a href=&quot;http://blog.ivanristic.com/2009/11/ssl-and-tls-authentication-gap-vulnerability-discovered.html&quot;&gt;SSL/TLS Authentication Gap&lt;/a&gt;, some sites (those that did not need renegotiation) were able to deal with the problem by disabling renegotiation in server code. With no support for renegotiation, gone was the danger of exploitation. Good for them.&lt;/p&gt;

&lt;p&gt;The sites that did need renegotiation had to wait, first for the TLS working group &lt;a href=&quot;http://blog.ivanristic.com/2010/05/secure-renegotiation-test-added-to-ssl-labs.html&quot;&gt;to solve the issue&lt;/a&gt; on the protocol level, and then for their SSL library (or web server) vendors to support the enhancement. The TLS working group did a great job negotiating the fix. As for the vendors, some implemented the new feature quickly, some dragged their feet a little, and some (Debian) seem to refuse to fix the problem, leaving their users vulnerable.&lt;/p&gt;

&lt;p&gt;To sum it up, today, almost a year after the initial public discovery, we have some servers that are still vulnerable, some that refuse to support renegotiation, and some that support the new standard for secure renegotiation.&lt;/p&gt;

&lt;p&gt;So where is the problem, you might ask? If disabling renegotiation prevents exploitation, that&amp;#39;s surely a good thing? Well, it depends on how you look at things. Try to look at the problem through the eyes of a browser developer. I was actually prompted to write about this problem by &lt;span class=&quot;poster&quot;&gt;Yngve Nysæter Pettersen, who&amp;#39;s part of &lt;a href=&quot;http://my.opera.com/securitygroup/blog/&quot;&gt;Opera&amp;#39;s security group&lt;/a&gt;. Opera wants to protect its users, and for that to be possible they need to know if a particular server supports secure renegotiation. If a server does, Opera can happily renegotiate whenever necessary. But if a server does not support secure renegotiation, you can make an argument that Opera should refuse any renegotiation attempts.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;poster&quot;&gt;The servers that support secure renegotiation indicate so during the SSL handshake phase, and everyone&amp;#39;s happy and secure. The issue is with the servers that disable renegotiation, because they provide no indication of their security status. Some are insecure, while some aren&amp;#39;t. Without knowing, browsers can&amp;#39;t do anything. They can perhaps only inconvenience users and force them to manually configure protection levels.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;poster&quot;&gt;While it is possible to test for insecure renegotiation (&lt;a href=&quot;https://www.ssllabs.com/&quot;&gt;SSL Labs does it&lt;/a&gt;), the test is indicative but not conclusive -- there is no way to test for server-initiated renegotiation. Besides, it&amp;#39;s not reasonable to expect browsers to test every SSL site they encounter.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;poster&quot;&gt;My point is those that disabled SSL renegotiation must nevertheless implement the proper fix as soon as it becomes available for their platform. Patching is slow enough as it is, and we don&amp;#39;t need any further distractions to slow us down.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/10/ssl-labs-releases-raw-data-from-the-internet-ssl-survey</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/10/ssl-labs-releases-raw-data-from-the-internet-ssl-survey.html"/>
    <title>Qualys SSL Labs releases raw data from the Internet SSL survey</title>
    <published>2010-10-05T12:29:04+01:00</published>
    <updated>2010-10-05T12:29:04+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;About two months ago, Qualys SSL Labs published the &lt;a href=&quot;http://blog.ivanristic.com/2010/07/internet-ssl-survey-2010-is-here.html&quot;&gt;results of an Internet-wide SSL survey&lt;/a&gt;. We said that we would make the raw data available, and today we are following up on that promise. (By the way, we realize that two months is a long time, but we couldn&amp;#39;t complete the process faster on this occasion. We hope to make future releases pretty much as soon as we obtain the data. As you may remember, our plan it to make our survey a quarterly event from 2011.)&lt;/p&gt;&lt;p&gt;The raw data contains the SSL assessment results of about 850,000 domain names (out of about 120M we inspected). The main file (&lt;span style=&quot;text-decoration: line-through;&quot;&gt;1.2 GB&lt;/span&gt; 120 MB compressed, &lt;span style=&quot;text-decoration: line-through;&quot;&gt;3.5 GB&lt;/span&gt; 800 MB uncompressed) is a dump of our PostgreSQL database in CSV format. We include in the download a simple PHP script that iterates through all the rows, which means that you can consume the data directly. Alternatively, you can put the data back into the database and use SQL to run ad-hoc queries (we provide the schema along with the import instructions).&lt;/p&gt;&lt;p&gt;The &lt;a href=&quot;http://blog.ivanristic.com/survey-201007.sql.txt&quot;&gt;database schema&lt;/a&gt; contains 63 fields that generally parallel the information you would obtain from the &lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot;&gt;SSL Labs online test&lt;/a&gt;. &lt;span style=&quot;text-decoration: line-through;&quot;&gt;The complete original certificate chain is included, which is handy if you want to look into the aspects we didn&amp;#39;t.&lt;/span&gt; We chose not to release certain sensitive data: the information on the low entropy private keys, renegotiation support, and HTTP server signatures was removed.&lt;/p&gt;&lt;p&gt;This is what you need to do to obtain the data:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;First, make sure that &lt;a href=&quot;http://blog.ivanristic.com/SURVEY_DATA-LICENSE.txt&quot;&gt;our terms and conditions&lt;/a&gt; are acceptable to you. At the core, we use the &lt;a href=&quot;http://creativecommons.org/licenses/by-nc-sa/3.0/&quot;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported&lt;/a&gt; licence, but there are a few additional requirements. For example, we ask the obvious -- that you don&amp;#39;t use the data for illegal activities. The other requirements are just common sense. (Please do read the entire file, however.)&lt;/li&gt;
&lt;li&gt;Second, send us an email (username &amp;quot;ivanr&amp;quot;; domain name &amp;quot;webkreator.com&amp;quot;), introduce yourself,&amp;#0160; and tell us how you intend to use the data. We will then send you back the download instructions. We need this second step to give us an idea if the data is used, and how.&lt;/li&gt;
&lt;/ol&gt;
&lt;strong&gt;Update:&lt;/strong&gt; We are removing the certificate chain data from the database until we confirm that we are legally allowed to redistribute it. If you need such data in the meantime, retrieve it directly from the servers.&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/07/internet-ssl-survey-2010-is-here</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/07/internet-ssl-survey-2010-is-here.html"/>
    <title>Internet SSL Survey 2010 is here!</title>
    <published>2010-07-29T16:23:00+01:00</published>
    <updated>2010-07-29T16:23:00+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Since joining &lt;a href=&quot;http://www.qualys.com&quot;&gt;Qualys&lt;/a&gt; in May, I spent virtually all my time perfecting the &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; assessment engine and looking at how SSL is used on the Internet (HTTP servers only this time). I wrote about this work on a couple of occasions already:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.ivanristic.com/2010/07/internet-ssl-server-survey-at-black-hat-usa-2010.html&quot;&gt;Internet SSL Server Survey at Black Hat USA 2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.ivanristic.com/2010/07/ssl-server-survey-what-data-are-we-collecting.html&quot;&gt;SSL Server Survey: what data are we collecting?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now, after a couple of months of hard work, the slides are finally ready. Here they are, without further ado:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/downloads/Qualys_SSL_Labs-State_of_SSL_2010-v1.6.pdf&quot;&gt;Qualys Internet SSL Survey 2010 v1.6&lt;/a&gt; (PDF, 3.2 MB)&lt;/li&gt;
&lt;/ul&gt;
I will present the results at Black Hat later today (10am PDT). Looking forward to seeing you there.

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/07/ssl-labs-1063-detection-and-reporting-of-certificate-chain-issues</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/07/ssl-labs-1063-detection-and-reporting-of-certificate-chain-issues.html"/>
    <title>SSL Labs 1.0.63: Detection and reporting of certificate chain issues</title>
    <published>2010-07-13T10:34:53+01:00</published>
    <updated>2010-07-13T10:34:53+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;The latest revision of the SSL Labs assessment engine (v1.0.63) adds several improvements in the area of certificate chains:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The engine will now try to download missing intermediate certificates.&lt;/strong&gt; Although sites are supposed to configure complete certificate chains, many forget to do that, and their sites fail to work properly as a result.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chain size and length&lt;/strong&gt; are reported in the user interface, which makes it easy to spot ridiculously long chains.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incomplete chain certificates are reported.&lt;/strong&gt; This is the case where the engine was able to locate missing intermediate certificates elsewhere and establish trust.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificate chains that are too long are reported.&lt;/strong&gt; It turns out that quite a few sites have chains that are longer than necessary. Such setups not only waste bandwidth, they make the overall site performance worse too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incorrectly ordered chains are reported too.&lt;/strong&gt; Although most browsers will deal with this problem, some SSL clients are sensitive to the issue.&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/07/ssl-server-survey-so-whats-with-the-22m-invalid-certificates-claim</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/07/ssl-server-survey-so-whats-with-the-22m-invalid-certificates-claim.html"/>
    <title>SSL Server Survey: So what's with the 22M invalid certificates claim?</title>
    <published>2010-07-02T12:28:23+01:00</published>
    <updated>2010-07-02T12:28:23+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;After I talked about my research in a Black Hat Preview webcast last week, a number of people rushed to tell me that there can&amp;#39;t be 22M invalid certificates in the world. Some got in touch directly, some just talked about it, and, in one instance, a company managed to issue a press release (!) to urge me to clarify my statements. &lt;/p&gt;&lt;p&gt;&amp;quot;Surely I was mistaken&amp;quot;, they said, because &amp;quot;there&amp;#39;s only about 2M certificates sold by commercial certificate authorities? Something does not add up.&amp;quot; Of course it doesn&amp;#39;t.&lt;/p&gt;&lt;p&gt;The short answer is that they&amp;#39;ve generally focused on the wrong aspect of the study and that, in fact, I made no such sensational claims. So what is the real story?&lt;/p&gt;&lt;p&gt;The goal of the &lt;a href=&quot;http://blog.ivanristic.com/2010/07/internet-ssl-server-survey-at-black-hat-usa-2010.html&quot;&gt;SSL Survey&lt;/a&gt; is to understand how SSL is used in real life. We generally know what is the right way to configure and deploy SSL, but are the best practices followed, and by how many sites? This sort of analysis is difficult to pull off because you have to know what to test. (The testing itself is not so difficult for us, because we already have a &lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot;&gt;robust assessment engine&lt;/a&gt; running on SSL Labs.)&lt;/p&gt;&lt;p&gt;Here are the possible approaches to discover publicly-available SSL servers:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scan all IPv4 address space.&lt;/strong&gt; This is only possible because of the still-prevalent deficiency of most SSL deployments that they require a dedicated IP address to operate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Crawl the Internet&lt;/strong&gt; to discover the SSL servers that appear in all the hyperlinks in the world. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyse the domain name space.&lt;/strong&gt; One option is to obtain the lists of all domain names registered under a specific TLD, which is slow and cumbersome, but possible. Another option is to use a list such as &lt;a href=&quot;http://www.alexa.com/topsites&quot;&gt;Alexa&amp;#39;s top 1M most popular sites&lt;/a&gt;, which is a much more palatable approach.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use a browser toolbar&lt;/strong&gt; (or a similar service) to collect the hostnames the users are visiting. This is the only approach that will reveal internal SSL servers, although I doubt that would be very useful.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For my study I opted to analyse the domain name space. The other approaches were either not feasible, would take years, or simply cost too much. We&amp;#39;d love to collaborate with the organisations that have the data that we need, but that hasn&amp;#39;t happened yet.&lt;/p&gt;&lt;p&gt;From &lt;a href=&quot;http://www.verisign.com/domain-name-services/domain-information-center/industry-brief/&quot;&gt;VeriSign&amp;#39;s reports&lt;/a&gt; we know that there&amp;#39;s about 193M registered domain names in the world, and I managed to obtain a list of about 119M to start with (all .com, .org, .net, .biz, .us, and .info domain names). The idea was to first perform a series of lightweight tests (there are so many domain names!) to give us an idea which domain names are worth looking at in depth. Here are the results:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;92M domains are active on port 80 or port 443&lt;/li&gt;
&lt;li&gt;33M domains have port 443 open&lt;/li&gt;
&lt;li&gt;22.65M domain names run SSL on port 443&lt;/li&gt;
&lt;li&gt;On 0.72M domain names certificates match the domain name&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now it becomes clear where the 22M invalid certificates number comes from. If you take the number of domain names that responded on port 443 and subtract the number of certificates that matched the domain name on which they reside (0.72M), you get about 21.93M domain names that do not have valid certificates on port 443. This number is not very important and certainly not ground-breaking. It&amp;#39;s a by-product of the methodology whose end-goal is to find something else.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The important number is the 720,000 certificates whose names &lt;em&gt;do&lt;/em&gt; match the domain names on which they reside. For each of those, someone made an effort to match the names, and those are the servers that are worth investigating further.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Sadly, some people chose to focus on the numbers that help make an interesting headline, but which aren&amp;#39;t very interesting from the research point of view. The reason we have so many domain names that do not have proper SSL certificates installed is that most of them are not _intended_ to have them. &lt;strong&gt;Multiple domain names will point to the same IP address and, thus, to the same SSL server.&lt;/strong&gt; (Remember, virtual SSL hosting is not yet mainstream.) The difference in numbers is because of the widespread use of virtual web hosting, which is available for non-SSL sites, but not yet for SSL sites. You can host a million plain-text web sites on a single IP address, but if you want a million secure sites, you&amp;#39;d need a million IP addresses.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/07/ssl-server-survey-what-data-are-we-collecting</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/07/ssl-server-survey-what-data-are-we-collecting.html"/>
    <title>SSL Server Survey: what data are we collecting?</title>
    <published>2010-07-02T10:53:36+01:00</published>
    <updated>2010-07-02T10:53:36+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;As you may have heard by now, &lt;a href=&quot;http://www.qualys.com&quot;&gt;Qualys&lt;/a&gt; &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; is conducting a &lt;a href=&quot;http://blog.ivanristic.com/2010/07/internet-ssl-server-survey-at-black-hat-usa-2010.html&quot;&gt;large-scale survey of SSL servers&lt;/a&gt;. Naturally, the focus of such survey is to collect as much data as possible, then mine it to obtain useful information.&lt;/p&gt;&lt;p&gt;This is the data we are currently looking at collecting:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Certificate information&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Common name&lt;/li&gt;
&lt;li&gt;Is the common name a wildcard?&lt;/li&gt;
&lt;li&gt;Alternative names&lt;/li&gt;
&lt;li&gt;Validity period (not before and not after)&lt;/li&gt;
&lt;li&gt;Revocation information (CRL and OCSP)&lt;/li&gt;
&lt;li&gt;Public key algorithm and size&lt;/li&gt;
&lt;li&gt;Signature algorithm&lt;/li&gt;
&lt;li&gt;Certificate chain: how many certificates are there in the chain?&lt;/li&gt;
&lt;li&gt;Certificate chain: Are the chains complete and well formed?&lt;/li&gt;
&lt;li&gt;Certificate chain: How long is the certificate chain?&lt;/li&gt;
&lt;li&gt;Certificate chain: keep complete raw data for subsequent deeper analysis&lt;/li&gt;
&lt;li&gt;Is there support for Server Gated Cryptography (both Netscape and Microsoft flavours)?&lt;/li&gt;
&lt;li&gt;Validation type (DV, IV/OV, EV)&lt;/li&gt;
&lt;li&gt;Issuer information&lt;/li&gt;
&lt;li&gt;Is certificate trusted (and why not if it isn&amp;#39;t)?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Protocol support&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;SSL v2&lt;/li&gt;
&lt;li&gt;SSL v3&lt;/li&gt;
&lt;li&gt;TLS v1.0&lt;/li&gt;
&lt;li&gt;TLS v1.1&lt;/li&gt;
&lt;li&gt;TLS v1.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cipher suite support&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Test for all known cipher suites (200+ of them)&lt;/li&gt;
&lt;li&gt;Cipher suite order preference test&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Other&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Test support for both Insecure and secure renegotiation&lt;/li&gt;
&lt;li&gt;SSL session resumption support&lt;/li&gt;
&lt;li&gt;Debian weak RNG weakness&lt;/li&gt;
&lt;li&gt;Retrieve HTTP server signature&lt;/li&gt;
&lt;li&gt;Presence of the Strict Transport Security response header&lt;/li&gt;
&lt;li&gt;TLS version intolerance tests&lt;/li&gt;
&lt;li&gt;Grade, according to the &lt;a href=&quot;https://www.ssllabs.com/projects/rating-guide/index.html&quot;&gt;SSL Rating Guide 2009&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/07/internet-ssl-server-survey-at-black-hat-usa-2010</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/07/internet-ssl-server-survey-at-black-hat-usa-2010.html"/>
    <title>Internet SSL Server Survey at Black Hat USA 2010</title>
    <published>2010-07-02T10:34:47+01:00</published>
    <updated>2010-07-02T10:34:47+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Ever since starting &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; I wanted to know and understand how SSL was deployed in real life. The only way to find out is to perform an assessment of many (most?) public SSL servers. That&amp;#39;s a lot of work, but, as with everything else, if you persist and make continuous progress you eventually get there. This survey has been in the making for about a year and a half now.&lt;/p&gt;&lt;p&gt;The survey consists of three major pieces:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;The first piece is assessment methodology, which is covered by the &lt;a href=&quot;https://www.ssllabs.com/projects/rating-guide/&quot;&gt;SSL Rating Guide&lt;/a&gt;. My goals for the guide were two-fold: provide a comprehensive SSL server analysis, but also make the end result easy to understand. I didn&amp;#39;t want only SSL experts to find the guide useful.&lt;/li&gt;
&lt;li&gt;The second piece is the assessment tool, which implements the methodology. That&amp;#39;s the SSL Labs &lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot;&gt;online assessment&lt;/a&gt; tool, which has been running for a year now. The good aspect of doing things slowly is that it makes the end result better. This is especially true in this case, because it&amp;#39;s one thing to read the RFCs -- making something work as expected in real life and interoperate with other implementations is much more difficult. &lt;/li&gt;
&lt;li&gt;The third and final piece is the scan of as many public SSL servers we can find, which is what we are focusing on right now.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first results of our study will be published at &lt;a href=&quot;http://www.blackhat.com/html/bh-us-10/bh-us-10-briefings.html#Ristic&quot;&gt;my talk
 at Black Hat USA 2010&lt;/a&gt; later this month. The good news is that all our work will be publicly available, and that we intend to continue to run the survey in regular intervals.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/06/ssl-labs-assessment-engine-v1059-improvements</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/06/ssl-labs-assessment-engine-v1059-improvements.html"/>
    <title>SSL Labs assessment engine v1.0.59 improvements</title>
    <published>2010-06-17T15:10:49+01:00</published>
    <updated>2010-06-17T15:10:49+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;The latest version of the &lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot;&gt;SSL Labs assessment software&lt;/a&gt; (1.0.59) is now online, and it includes the following improvements:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cipher suite preference test&lt;/strong&gt;, which tells you if servers pay attention to which cipher suites they use (or merely use the first suite offered by a client)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clear cache feature&lt;/strong&gt;, which clears cache and allows for a quick &lt;em&gt;check-fix-check&lt;/em&gt; cycle&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Detect Strict-Transport-Security header&lt;/strong&gt; in response, which indicates &lt;a href=&quot;http://en.wikipedia.org/wiki/Strict_Transport_Security&quot;&gt;STS&lt;/a&gt; support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Session resumption test&lt;/strong&gt;, which checks for the performance optimization after the initial full handshake&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TLS version intolerance test&lt;/strong&gt;, which tests how servers react to not-yet-released versions of TLS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prefix handling changes&lt;/strong&gt;; this test will now take into account if the tested domain name (with and without prefix) points to a particular server. It will also relax the check for 2nd-level domain names (e.g., secure.example.com)&lt;/li&gt;
&lt;/ul&gt;
Enjoy!

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/06/qualys-acquires-ssl-labs</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/06/qualys-acquires-ssl-labs.html"/>
    <title>Qualys acquires SSL Labs</title>
    <published>2010-06-15T17:05:31+01:00</published>
    <updated>2010-06-15T17:05:31+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I am late in writing about this, but &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; is now part of &lt;a href=&quot;http://www.qualys.com&quot;&gt;Qualys&lt;/a&gt;. If you came to this blog entry through the SSL Labs home page, then you already know the news -- it&amp;#39;s obvious from the change to the logo. If not, you can visit the site now to see the logo and the new colours.&lt;/p&gt;&lt;p&gt;Apart from the visual changes, there are no plans to change the concept of the site. The idea -- to research SSL -- remains. I do expect that I will have far more time to spend on my SSL-related research in the following months. In fact, I spent the best part of the last month and a half working on a big related project. It&amp;#39;s something I&amp;#39;ve wanted to do for a long time.&lt;/p&gt;&lt;p&gt;But now is not the time to talk about that. I will share my progress with you in the days that follow.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/05/secure-renegotiation-test-added-to-ssl-labs</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/05/secure-renegotiation-test-added-to-ssl-labs.html"/>
    <title>Secure renegotiation test added to SSL Labs</title>
    <published>2010-05-25T15:55:35+01:00</published>
    <updated>2010-05-25T15:55:35+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;When the &lt;a href=&quot;http://blog.ivanristic.com/2009/11/ssl-and-tls-authentication-gap-vulnerability-discovered.html&quot;&gt;SSL and TLS authentication gap&lt;/a&gt; problem was initially discovered (in November 2009), there wasn't much anyone could do about the vulnerability. You could disable renegotiation altogether, which only worked if your site did not depend on the feature. Thus my initial test focused on testing whether renegotiation was allowed.&lt;/p&gt;

&lt;p&gt;A couple of months ago, in February, the &lt;a href=&quot;http://datatracker.ietf.org/wg/tls/charter/&quot;&gt;TLS Working Group&lt;/a&gt; published RFC 5746, &lt;a href=&quot;http://tools.ietf.org/html/rfc5746&quot;&gt;Transport Layer Security (TLS) Renegotiation Indication Extension&lt;/a&gt;, to address the authentication gap. The RFC adds a secure renegotiation mechanism to both SSL and TLS. With a couple of parties supporting the RFC now (you can follow the status of the various patches and updates at &lt;a href=&quot;http://www.phonefactor.com/sslgap/ssl-tls-authentication-patches&quot;&gt;this page at PhoneFactor&lt;/a&gt;), I thought it would be a good time to update my SSL Labs code so that the tests accurately report server configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; will now not only correctly discover if secure renegotiation is supported, but it will give a nice green cheer every time it sees it on a site.&lt;/p&gt;

&lt;p&gt;
&lt;img  style=&quot;border: 1px solid #bbbbbb; padding: 10px;&quot; src=&quot;/images/google-secure-renegotiation-2.png&quot; border=&quot;0&quot; height=&quot;470&quot; width=&quot;634&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special offer:&lt;/strong&gt; 25% off &lt;a href=&quot;https://www.feistyduck.com/books/modsecurity-handbook/&quot;&gt;ModSecurity Handbook&lt;/a&gt; until May 31st. Enter discount code &lt;code&gt;MSHBIRY671XHL1V&lt;/code&gt; at checkout.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/05/breaking-ssl-why-leave-to-others-what-you-can-do-yourself</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/05/breaking-ssl-why-leave-to-others-what-you-can-do-yourself.html"/>
    <title>Breaking SSL: Why leave to others what you can do yourself</title>
    <published>2010-05-21T07:55:39+01:00</published>
    <updated>2010-05-21T07:55:39+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I will be giving my SSL talk at the &lt;a href=&quot;http://www.issdconference.com/&quot;&gt;ISSD conference&lt;/a&gt;
later today (ISSD stands for &lt;em&gt;International Secure Systems Development&lt;/em&gt;). Here&amp;#39;s the
presentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/downloads/ivan_ristic-breaking_ssl-may_2010.pdf&quot;&gt;Breaking SSL: Why leave to others what you can do yourself&lt;/a&gt; (PDF, 400 KB)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
It&amp;#39;s virtually the same talk as my &lt;em&gt;Rendering SSL Useless&lt;/em&gt; one from a couple of months ago,
with slight reorganisation and some slides nicer.
&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/05/deep-protocol-and-cipher-suite-testing-in-ssl-labs</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/05/deep-protocol-and-cipher-suite-testing-in-ssl-labs.html"/>
    <title>Deep protocol and cipher suite testing in SSL Labs</title>
    <published>2010-05-14T10:22:32+01:00</published>
    <updated>2010-05-14T10:22:32+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;SSL has a usability problem when the negotiation of a secure communication channel fails: the user is left with a cryptic error message and his head to scratch. Let&amp;#39;s say that you are someone whose browser is not particularly equipped in the cryptography department and that you want to connect to a high-security site. Your browser fails to negotiate a SSL session and tells you that &amp;quot;SSL peer was unable to negotiate an acceptable set of security parameters&amp;quot; (Firefox). The problem is that there is no way for the site to communicate the problem to you and explain how you can fix it.&lt;/p&gt;

&lt;p&gt;It&amp;#39;s a hard problem to solve. SSL could be extended to allow a custom redirection URL to be dispatched to the user who is unable to negotiate good-quality encryption, leading him to a non-SSL page with more information. But such a page could be intercepted and modified (think MITM and &lt;a href=&quot;http://www.thoughtcrime.org/software/sslstrip/&quot;&gt;sslstrip&lt;/a&gt;), allowing an attacker to take control over the user&amp;#39;s session. Even the redirection URL itself might be intercepted and modified in transit. The same could happen with a custom text message.&lt;/p&gt;

&lt;p&gt;Although the failure to negotiate a secure connection is very rare, there are some sites that find it unacceptable. They will thus accept weak protocols and cipher suites on the SSL level, reporting the problem via HTTP. I think this approach is more secure because in many cases using a weaker protocol is better than no communication security at all.&lt;/p&gt;

&lt;p&gt;It is inconvenience for me, though, because there is no standard way in HTTP say that you are, in effect, politely refusing to talk to someone. To detect the situation, I have to look for clues in HTTP responses. Here&amp;#39;s what NetScaler responds with:&lt;/p&gt;

&lt;code&gt;HTTP/1.1 500 Internal Server Error&lt;br /&gt;Connection: close&lt;br /&gt;Content-Length: 510&lt;br /&gt;Content-Type: text/html&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;b&amp;gt;SSL Alert&amp;lt;/b&amp;gt;&amp;lt;p&amp;gt;The browser and the web-site cannot communicate securely because there are no common encryption algorithms.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Please try the following:&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;- Check the SSL protocol settings on the browser for SSLv3/TLSv1 protocol support.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;- The secure web-site may be using high-strength encryption algorithms(128 bit).&amp;lt;br&amp;gt;&amp;#0160; Check the SSL settings on your browser, if it supports high-strength encryption algorithms.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;- Upgrade your browser to latest version.&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/code&gt;

&lt;p&gt;I already did that last year for &lt;a href=&quot;http://blog.ivanristic.com/2009/08/improved-sslv2-detection-in-ssl-labs.html&quot;&gt;SSLv2 protocol detection&lt;/a&gt;, but a couple of days ago I further improved the assessment engine adding support for deep cipher suite testing. SSL Labs now detects the default NetScaler error response delivered for both weak protocols and weak cipher suites. If you want to see an example, have a look at the &lt;a href=&quot;https://www.ssllabs.com/ssldb/analyze.html?d=amazon.com&quot;&gt;Amazon.com results&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/04/speaking-on-ssl-at-owasp-appsec-research-in-sweden</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/04/speaking-on-ssl-at-owasp-appsec-research-in-sweden.html"/>
    <title>Speaking on SSL at OWASP AppSec Research in Sweden</title>
    <published>2010-04-27T11:22:30+01:00</published>
    <updated>2010-04-27T11:22:30+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I will be speaking at the &lt;a href=&quot;http://www.owasp.org/index.php?title=OWASP_AppSec_Research_2010_-_Stockholm,_Sweden&quot;&gt;OWASP AppSec European conference in Stockholm, Sweden&lt;/a&gt;. I am really looking forward to attending, too. I had a self-imposed year-free-of-security, and I miss it. My talk will be about SSL -- an improved version of the &lt;a href=&quot;http://blog.ivanristic.com/2010/01/how-to-render-ssl-useless.html&quot;&gt;talk I gave to OWASP London earlier this year&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.owasp.org/index.php?title=OWASP_AppSec_Research_2010_-_Stockholm,_Sweden&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;60&quot; src=&quot;http://blog.ivanristic.com/appsec_eu_2010.gif&quot; width=&quot;468&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/02/firefox-extension-installation-process-vulnerable-to-mitm-attack</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/02/firefox-extension-installation-process-vulnerable-to-mitm-attack.html"/>
    <title>Firefox extension installation process vulnerable to MITM attack </title>
    <published>2010-02-09T16:41:39+00:00</published>
    <updated>2010-02-09T16:41:39+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Adrian Dimcev made an important discovery the other day: &lt;a href=&quot;http://www.carbonwind.net/blog/post/Firefox-Extension-download-process-and-the-mess-within.aspx&quot;&gt;the Firefox installation process is vulnerable to MITM attack&lt;/a&gt;. If a man in the middle is able to intercept the traffic of someone installing an extension, he will be able to get the user to install something else. Firefox is supposed to check the integrity of the extensions before it installs them, but it seems something somewhere broke, and the check is no longer in place.&lt;/p&gt;&lt;p&gt;This problem will be fixed in the next release (&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=544660&quot;&gt;it has been fixed in the repository&lt;/a&gt;, it seems), but the fact remains that the installation process is seriously misleading. Looking at the user interface alone, the impression is that the entire installation process is carried out ever SSL. Even worse, the main domain name where the extensions are &amp;quot;stored&amp;quot; uses an EV certificate, so you are made to feel super-safe. In truth, the extensions are downloaded over HTTP from who-knows-where.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/01/ssl-labs-using-firefox-36-ca-certs</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/01/ssl-labs-using-firefox-36-ca-certs.html"/>
    <title>SSL Labs using Firefox 3.6 CA certs</title>
    <published>2010-01-25T16:27:35+00:00</published>
    <updated>2010-01-25T16:27:35+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;With Firefox 3.6 out, I took the opportunity to upgrade the CA root database. Up until earlier today &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; used the Firefox 3.5.1 list, which has 142 certificate authorities on it. The new version of Firefox supports 155 certificate authorities and, now, SSL Labs does too.&lt;/p&gt;&lt;p&gt;After being prompted by &lt;a href=&quot;http://www.carbonwind.net/blog/&quot;&gt;Adrian Dimcev&lt;/a&gt;, I also added the support for a couple of obscure EXPORT 1024 cipher suites. Thanks Adrian!&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2010/01/how-to-render-ssl-useless</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2010/01/how-to-render-ssl-useless.html"/>
    <title>How to render SSL useless</title>
    <published>2010-01-14T14:01:35+00:00</published>
    <updated>2010-01-14T14:01:35+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Later today I will be presenting at the &lt;a href=&quot;http://www.owasp.org/index.php/London&quot;&gt;OWASP London&lt;/a&gt; meeting.
The title of my presentation is &lt;em&gt;How to Render SSL Useless&lt;/em&gt;, and I will be talking about the recent issues with SSL/TLS, my work at &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt;, as well as listing Top 11 SSL deployment mistakes that render SSL useless.&lt;/p&gt;&lt;p&gt;Here&amp;#39;s the presentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/downloads/ivan_ristic-how_to_render_ssl_useless.pdf&quot;&gt;ivan_ristic-how_to_render_ssl_useless.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/12/testing-for-ssl-renegotiation</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/12/testing-for-ssl-renegotiation.html"/>
    <title>Testing for SSL renegotiation</title>
    <published>2009-12-15T13:02:03+00:00</published>
    <updated>2009-12-15T13:02:03+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;&lt;span style=&quot;background-color: #ffffbf;&quot;&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Please note that the test described here works only with OpenSSL version that was not patched to deal with insecure renegotiation. I recommend that you download version 0.9.8k directly from the OpenSSL web site and compile a special binary to use for testing.&lt;/span&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Someone asked me how to test for SSL connection renegotiation, so I thought I would also write here for the benefit of everyone. Testing is easy provided you have access to an un-patched version of OpenSSL. To test, you will use the &lt;code&gt;s_client&lt;/code&gt; tool (you&amp;#39;ll type the bits in blue):&lt;/p&gt;
&lt;pre&gt;$ &lt;span style=&quot;color: blue;&quot;&gt;openssl s_client -connect www.ssllabs.com:443&lt;/span&gt;&lt;br /&gt;[snip... a lot of openssl output]&lt;br /&gt;---&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;HEAD / HTTP/1.0&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;R&lt;/span&gt;&lt;br /&gt;RENEGOTIATING&lt;br /&gt;28874:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:530:&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;The idea is that you connect to an SSL server and start by typing the first line of a request. You then type a single uppercase letter R on a single line, which tells OpenSSL to ask for renegotiation. I am aware of the following outcomes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your HTTP request completes, which means that renegotiation is enabled&lt;/li&gt;
&lt;li&gt;You get an error (one such possible error is shown in the example above), which means that renegotiation did not work&lt;/li&gt;
&lt;li&gt;The connection blocks and timeouts after a while, which is how OpenSSL 0.9.8l deals with renegotiation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course, a &lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot;&gt;SSL Labs report&lt;/a&gt; will tell you whether a particular server supports renegotiation.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/11/clientless-ssl-vpn-products-break-the-web</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/11/clientless-ssl-vpn-products-break-the-web.html"/>
    <title>Clientless SSL VPN products break the Web</title>
    <published>2009-11-30T23:24:09+00:00</published>
    <updated>2009-11-30T23:24:09+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Dan Goodin, of The Register, pointed me to a very interesting advisory issued today that again confirms that convenience trumps security, every single time. This particular problem concerns the so-called clientless SSL VPN products, which basically work like a reverse proxies on steroids. When you&amp;#39;re on the road, you log into one of these devices and they provide you with a &amp;quot;window&amp;quot; through which you can access the sites you&amp;#39;d normally only see on your own network. Now, I&amp;#39;ve known about these products for a long time but, never having actually used one, I didn&amp;#39;t think much about how they work. Now that I know, I am terrified. They basically map all the sites you&amp;#39;re accessing into a single super-site, rewriting everything behind the scenes to maintain the illusion of a browser within a browser.&lt;/p&gt;&lt;p&gt;For example, if your internal&amp;#39;s site address is internal.example.com and your clientless SSL VPN&amp;#39;s address is vpn.example.com, while you&amp;#39;re on the road you access your internal site through https://vpn.example.com/internal.example.com/.&lt;/p&gt;&lt;p&gt;It&amp;#39;s pretty slick in how it&amp;#39;s very convenient and works with any browser, but it kills the same-origin policy. A single rogue web site that you access through this VPN window is able to take over all your sessions, interact with all your sites and monitor whatever is that you&amp;#39;re doing.&lt;/p&gt;&lt;p&gt;And the best part? The problem has been &lt;a href=&quot;http://seclists.org/fulldisclosure/2006/Jun/238&quot;&gt;known since at least 2006&lt;/a&gt;. You can get more information from &lt;a href=&quot;http://www.theregister.co.uk/2009/11/30/vpn_authentication_weakness/&quot;&gt;Dan&amp;#39;s article&lt;/a&gt; or from &lt;a href=&quot;http://www.kb.cert.org/vuls/id/261869&quot;&gt;the advisory&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Shameless self-promotion:&lt;/strong&gt; ModSecurity Handbook, the guide to the world&amp;#39;s most popular web application firewall, is &lt;a href=&quot;https://www.feistyduck.com&quot;&gt;now available for instant download&lt;/a&gt;.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/11/initial-test-for-ssl-renegotiation-added-to-ssl-labs</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/11/initial-test-for-ssl-renegotiation-added-to-ssl-labs.html"/>
    <title>Initial test for SSL renegotiation added to SSL Labs</title>
    <published>2009-11-17T19:55:26+00:00</published>
    <updated>2009-11-17T19:55:26+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I&amp;#39;ve added an initial implementation of the test that determines if an SSL server is vulnerable to the &lt;a href=&quot;http://blog.ivanristic.com/2009/11/not-just-csrf-ssl-authentication-gap-used-for-credentials-theft.html&quot;&gt;Authentication Gap MITM attack&lt;/a&gt;. At this point the assumption is that no server supports the safe renegotiation TLS extension, which means that a warning is displayed if renegotiation is found to be supported.&lt;/p&gt;&lt;p&gt;In the following days, as the implementations of the safe renegotiation TLS extension start to arrive, I will improve the test to take that into account.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/11/not-just-csrf-ssl-authentication-gap-used-for-credentials-theft</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/11/not-just-csrf-ssl-authentication-gap-used-for-credentials-theft.html"/>
    <title>Not just CSRF: SSL Authentication Gap used for credentials theft</title>
    <published>2009-11-14T10:37:54+00:00</published>
    <updated>2009-11-14T10:37:54+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Most people associate the &lt;a href=&quot;http://blog.ivanristic.com/2009/11/ssl-and-tls-authentication-gap-vulnerability-discovered.html&quot;&gt;recent SSL Authentication Gap vulnerability&lt;/a&gt; with mild CSRF, but a couple of days ago Anil Kurmus published an improved attack technique that enabled him to access victims&amp;#39; encrypted data streams. He wrote a &lt;a href=&quot;http://www.securegoose.org/2009/11/tls-renegotiation-vulnerability-cve.html&quot;&gt;proof of concept that could have been used to retrieve someone&amp;#39;s Twitter credentials&lt;/a&gt;. Twitter&amp;#39;s SSL servers no longer support renegotiation so the attack no longer works, but the same principle will still work with other sites. Anil&amp;#39;s attack technique was &lt;a href=&quot;http://seclists.org/fulldisclosure/2009/Nov/139&quot;&gt;posted to Full Disclosure&lt;/a&gt; last Wednesday, but it was ignored. It was subsequently picked up by &lt;a href=&quot;http://www.theregister.co.uk/2009/11/14/ssl_renegotiation_bug_exploited/&quot;&gt;Dan Goodin from The Register&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In researching the possible attack vectors made possible with the SSL authentication gap problem, most focused on trying to use the credentials included with hijacked requests (i.e., session cookies or Basic Authentication credentials). Anil realised that, although he was not able to decrypt the hijacked requests he was still able to include them as payload in arbitrary requests of his own. So all he needed was a site that has some sort of publishing functionality that can be used to reveal data. With the Twitter attack, he simply published the hijacked data as his Twitter status message.&lt;/p&gt;

&lt;p&gt;The attack works because the hijacked information is used in a parameter of the attacker&amp;#39;s request. Below is a partial attack example to describe the concept:&lt;/p&gt;

&lt;pre&gt;&lt;font color=&quot;red&quot;&gt;&lt;/font&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;POST /statuses/update.xml HTTP/1.0&lt;br /&gt;Authorization: Basic [attacker&amp;#39;s credentials]&lt;br /&gt;&lt;br /&gt;status=&lt;/font&gt;&lt;font color=&quot;blue&quot;&gt;POST /statuses/update.xml HTTP/1.1&lt;br /&gt;Authorization: Basic &lt;strong&gt;[victim&amp;#39;s credentials]&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;

&lt;p&gt;This attack technique is best suited to exploit APIs protected using Basic Authentication. It will work equally well for session hijacking, but hijacking the credentials in the case of sites that use form-based authentication may be more difficult due to the presence of the ampersand characters in victims&amp;#39; data streams.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://extendedsubset.com/&quot;&gt;Marsh Ray&lt;/a&gt; (who discovered the SSL authentication gap issue), hinted that information theft might be possible in a comment to &lt;a href=&quot;http://www.educatedguesswork.org/2009/11/understanding_the_tls_renegoti.html&quot;&gt;Eric Rescorla&amp;#39;s blog post&lt;/a&gt;, but he said he was more interested in fixing the problem rather than seeking interesting ways to abuse it.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/11/ssl-and-tls-authentication-gap-vulnerability-discovered</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/11/ssl-and-tls-authentication-gap-vulnerability-discovered.html"/>
    <title>SSL and TLS Authentication Gap vulnerability discovered</title>
    <published>2009-11-05T10:37:45+00:00</published>
    <updated>2009-11-05T10:37:45+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;A serious vulnerability has been discovered in the way web servers utilise SSL (and TLS, up to the most recent version, 1.2), &lt;strong&gt;effectively allowing an active man-in-the-middle attacker to inject arbitrary content into an encrypted data stream&lt;/strong&gt;. Both the Apache web server and the IIS have been found to be vulnerable.&lt;/p&gt;

&lt;p&gt;The problem is with the renegotiation feature, which allows one part of an encrypted connection (the one taking place before renegotiation) to be controlled by one party with the other part (the one taking place after renegotiation) to be controlled by another. A MITM attacker can open a connection to an SSL server, send some data, request renegotiation and, from that point on, continue to forward to the SSL server the data coming from a genuine user. One could argue that this is not a fault in the protocols, but it is certainly a severe usability issue. &lt;strong&gt;The protocols do not ensure continuity before and after negotiation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To make things worse, web servers will combine the data they receive prior to renegotiation (which is coming from an attacker) with the data they receive after renegotiation (which is coming from a victim). This issue is the one affecting the majority of SSL users.&lt;/p&gt;

&lt;p&gt;The following example demonstrates how the flaw can be exploited by an attacker to &lt;strong&gt;send an arbitrary request using the authentication credentials of a victim&lt;/strong&gt;. The red parts are sent by the attacker and the blue parts are sent by the victim.&lt;/p&gt;

&lt;pre&gt;&lt;font color=&quot;red&quot;&gt;GET /path/to/resource.jsp HTTP/1.0&lt;br /&gt;Dummy-Header:&lt;/font&gt;&lt;font color=&quot;blue&quot;&gt; GET /index.jsp HTTP/1.0&lt;br /&gt;Cookie: sessionCookie=Token&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;The good news is that, although the attacker can execute an arbitrary request, he will not be able to retrieve the corresponding response. On the negative side, the client will see something different from that what she requested.&lt;/p&gt;&lt;p&gt;You can see that GET attacks are essentially trivial to execute. To date, no one has claimed a successful execution of a POST request using this flaw. Until someone does, that means that an application that only makes changes in response to POST requests will probably not be vulnerable. Further, an application not vulnerable to CSRF attacks will probably be safe too, because the attacker won&amp;#39;t be able to generate or predict the token required for the request to go through.&lt;/p&gt;&lt;p&gt;Mitigation options:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;If you can, disable renegotiation. There isn&amp;#39;t normally a configuration option to do this, but &lt;a href=&quot;http://www.links.org/?p=780&quot;&gt;patches are being developed&lt;/a&gt; and will be available soon. The majority of web sites do not use renegotiation so disabling it won&amp;#39;t be a problem. Those that do will need to make changes to their sites to make them work without it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use a web application firewall to monitor the contents of all request headers to spot what seems like an embedded HTTP request line. &lt;/strong&gt;The good news is that the embedded request line will not be obfuscated, making it easier to detect. I do not believe that this advice can help the bypass of the client certificate authentication, though.&lt;/li&gt;
&lt;li&gt;If you can, monitor all connections that make use of the renegotiation feature. That won&amp;#39;t help you if renegotiation is an integral feature of your web site, but it may do if it is rarely used.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Further information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://extendedsubset.com/?p=8&quot;&gt;Marsh Ray&amp;#39;s blog post&lt;/a&gt; (Marsh discovered the problem a couple of months ago) contains a detailed description of the problems in the attachment.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ietf.org/mail-archive/web/tls/current/msg03928.html&quot;&gt;The post by Martin Rex to the TLS mailing list&lt;/a&gt; that prompted public disclosure.&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/10/entropy-on-a-usb-stick</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/10/entropy-on-a-usb-stick.html"/>
    <title>Entropy on a USB stick</title>
    <published>2009-10-01T13:18:00+01:00</published>
    <updated>2009-10-01T13:18:00+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;
If you care about security then you care about encryption. If you care about encryption then you know how important it is to have access to a good entropy source. (Or you should know. Not many people talk about entropy. I guess that it&amp;#39;s something not very exciting to talk about.) Perhaps there are other similar devices and this is old news to some, but I was pleasantly surprised to learn that entropy is now available for little money, on a humble USB key:
&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;The Entropy Key is a small, unobtrusive and easily installed
 USB stick that generates high-quality random numbers, or entropy, which
 can improve the performance, security and reliability of servers.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Get it from &lt;a href=&quot;http://www.entropykey.co.uk&quot;&gt;Simtec Electronics&lt;/a&gt;.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/09/analysis-of-elliptic-curve-support-in-current-browsers</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/09/analysis-of-elliptic-curve-support-in-current-browsers.html"/>
    <title>Analysis of Elliptic Curve support in current browsers</title>
    <published>2009-09-29T13:42:00+01:00</published>
    <updated>2009-09-29T13:42:00+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;In &lt;a href=&quot;http://blog.ivanristic.com/2009/09/ssl-labs-improved-ec-and-tls-12-detection.html&quot;&gt;my previous post&lt;/a&gt; I mentioned &lt;a href=&quot;http://www.carbonwind.net/blog/&quot;&gt;Adrian Dimcev&lt;/a&gt;, who helped me get Elliptic Curve detection right, in &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt;. He has now posted a detailed analysis of the current support of elliptic curve cryptography across browsers:&lt;/p&gt;&lt;ul style=&quot;font-family: inherit;&quot;&gt;
&lt;li style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;http://www.carbonwind.net/blog/post/2009/09/27/tlswoodgrovebankcom-meets-the-browsers.aspx&quot;&gt;tls.woodgrovebank.com meets the browsers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend that you read this highly informational post if you have even a slight interest in TLS.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/09/ssl-labs-improved-ec-and-tls-12-detection</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/09/ssl-labs-improved-ec-and-tls-12-detection.html"/>
    <title>SSL Labs: Improved Elliptic Curve and TLS 1.2 detection</title>
    <published>2009-09-22T10:33:15+01:00</published>
    <updated>2009-09-22T10:33:15+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;&lt;img width=&quot;325&quot; height=&quot;213&quot; src=&quot;/images/ssl-labs-all-protocols-enabled.png&quot; style=&quot;border: 1px solid gray;&quot; align=&quot;right&quot; hspace=&quot;15&quot; vspace=&quot;10&quot;&gt;
The latest version of the SSL assessment software running on &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; features much better detection of the SSL servers that use Elliptic Curve cryptography, TLS 1.1 and TLS 1.2. Windows Server 2008 leads when it comes to these technologies and Microsoft's test server (&lt;a href=&quot;https://www.ssllabs.com/ssldb/analyze.html?d=tls.woodgrovebank.com&quot;&gt;tls.woodgrovebank.com&lt;/a&gt;) demonstrates that very well. Sadly, there's currently no browser that can talk to the Windows Server 2008 in a way that uses all the capabilities that are on offer. Even IE8 has some of the high-end features disabled and gets some others wrong.&lt;/p&gt;
&lt;p&gt;I must mention &lt;a href=&quot;http://www.carbonwind.net/blog&quot;&gt;Adrian Dimcev&lt;/a&gt;, who pushed me to get this work done. He worked relentlessly to figure out the exact combinations of handshake bits (literally) that produce desired results. I've urged Adrian to describe his findings for everyone to read, and let's hope that he'll do that. In the meantime, his &lt;a href=&quot;http://www.carbonwind.net/blog/post/2009/09/18/Forefront-TMG-Beta-3-on-Windows-Server-2008-R2%28RC%29-TLS-11-and-TLS-12.aspx&quot;&gt;recent blog post&lt;/a&gt; provides a bunch of useful information on TLS 1.2.
&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/09/ssl-threat-model</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/09/ssl-threat-model.html"/>
    <title>SSL Threat Model</title>
    <published>2009-09-09T12:18:29+01:00</published>
    <updated>2009-09-09T12:18:29+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;
SSL is easy to use but also very easy to use incorrectly. The ecosystem, which is built of the specifications, the implementations, the CAs and the PKI, is full of traps, each of which is very easy to fall into. Once I started to spend significant time thinking about SSL I set out to build a model of the ecosystem, for my own education and to ensure that I understand it all. That&amp;#39;s how I arrived to the SSL Threat Model. The image is too big to include here, but just click on the link below to get it:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/downloads/SSL_Threat_Model.png&quot;&gt;SSL Threat Model&lt;/a&gt; (PNG, 65 KB)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I do understand that many of the elements in the model need explanations, but the diagram is all I have at the moment. As a matter of fact, the diagram has been sitting in my virtual drawer for months in the hope that I would eventually accompany it with some documentation. But seeing that the documentation is not going to happen any time soon, I decided to go ahead and publish the diagram alone.&lt;/p&gt;&lt;p&gt;Feel free to post comments here, though!&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/09/two-bugs-in-mod_sslhaf-fixed</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/09/two-bugs-in-mod_sslhaf-fixed.html"/>
    <title>Two bugs in mod_sslhaf fixed</title>
    <published>2009-09-04T10:50:57+01:00</published>
    <updated>2009-09-04T10:50:57+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I fixed two bugs in &lt;a href=&quot;https://www.ssllabs.com/projects/client-fingerprinting/&quot;&gt;mod_sslhaf&lt;/a&gt; (my passive SSL fingerprinting module for Apache; see my &lt;a href=&quot;http://blog.ivanristic.com/2009/07/examples-of-the-information-collected-from-ssl-handshakes.html&quot;&gt;previous blog post&lt;/a&gt; for details), which means that you need to upgrade if you&amp;#39;re using it:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;Pure SSLv2 access was ignored due to a badly interpreted version number (SSLv2 uses a different byte order).&lt;/li&gt;
&lt;li&gt;There was a problem with sites that do not use SSL, which would cause Apache to stall.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Everything seems to be in order now.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/09/ssl-labs-a-batch-of-small-improvements</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/09/ssl-labs-a-batch-of-small-improvements.html"/>
    <title>SSL Labs: a batch of small improvements</title>
    <published>2009-09-03T13:17:35+01:00</published>
    <updated>2009-09-03T13:17:35+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I love when a project enters the phase where you&amp;#39;re mainly concerned with improving upon what already works! I had some time yesterday and today to spend on &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; so I used the opportunity to tweak the software a bit. The changes are as follows:&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Successful assessments are now cached for 24 hours.&lt;/li&gt;
&lt;li&gt;Unsuccessful assessments are now cached for 15 minutes.&lt;/li&gt;
&lt;li&gt;Display complete certificate chains, and make clear which certificates are trusted.&lt;/li&gt;
&lt;li&gt;Do more to detect SSLv2 error responses (a polite way for a site to say that it does not support SSLv2).&lt;/li&gt;
&lt;li&gt;Use colours and tags (&amp;quot;weak&amp;quot;, &amp;quot;insecure&amp;quot;, &amp;quot;confusing&amp;quot;) to point to the bits in a configuration that are bad or can be improved.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also fixed a bug or two, but that&amp;#39;s not very important.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/08/is-rc4-safe-for-use-in-ssl</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/08/is-rc4-safe-for-use-in-ssl.html"/>
    <title>Is RC4 safe for use in SSL?</title>
    <published>2009-08-28T12:07:40+01:00</published>
    <updated>2009-08-28T12:07:40+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I received a rather interesting and informative couple of emails last week from &lt;a href=&quot;http://ipsec.pl&quot;&gt;Paweł Krawczyk&lt;/a&gt;, who wanted to make a point how RC4 is still safe to use in SSL. I thought that his comments would be of interest to a wider audience, so here they are (with permission):&lt;/p&gt;
&lt;blockquote&gt;&lt;em&gt;&lt;p&gt;[...] TLS_RSA_WITH_RC4_128_MD5 [...] is extremely
widespread among commercial servers. Main reasons are 1) it's default
preferred cipher in most versions of IIS, 2) these two algorithms are
absolutely fastest and least CPU-intensive.
&lt;/p&gt;&lt;p&gt;
However, because there are known cryptoanalytic attacks against both RC4
and MD5, this ciphersuite is notoriously reported as &quot;weak&quot; by some
pentesting tools and teams.
&lt;/p&gt;&lt;p&gt;
This is not true or at least not accurate, as the specific usage of RC4
and MD5 - in SSLv3 with 128 bit key - has no known and working attacks.
That's one reason why PCI-DSS v1.2 now doesn't list any specific
algorithms for SSL but instead just says you should use &quot;strong&quot; ones.
And widespread usage of TLS_RSA_WITH_RC4_128_MD5 among financial
organisations seems to confirm the interpretation that it's still
considered a strong ciphersuite.
&lt;/p&gt;&lt;p&gt;
On the other hand NIST SP 800-52 doesn't allow neither RC4 or MD5
because they're not FIPS-approved algorithms, with one exception -
connecting in client mode to external, commercial systems with this
specific ciphersuite enabled. Which seems to set the balance quite even,
because SP is only binding for US federal agencies.
&lt;/p&gt;&lt;/em&gt;&lt;/blockquote&gt;
&lt;p&gt;And...&lt;/p&gt;
&lt;blockquote&gt;&lt;em&gt;&lt;p&gt;
There are two reasons why the new attacks do not apply to RC4-based 
SSL. First, SSL generates the encryption keys it uses for RC4 by 
hashing (using both MD5 and SHA1), so that different sessions have 
unrelated keys. Second, SSL does not re-key RC4 for each packet, 
but uses the RC4 algorithm state from the end of one packet to 
begin encryption with the next packet. The recent techniques of 
Fluhrer, Mantis and Shamir thus do not apply to SSL.
&lt;/p&gt;&lt;/em&gt;&lt;/blockquote&gt;
&lt;p&gt;Further resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://www.rsa.com/rsalabs/node.asp?id=2009&quot;&gt;RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;http://csrc.nist.gov/groups/ST/hash/documents/YIN_NIST2ndHashWorshop
-ContiniYin-Aug25-2006.pdf&quot;&gt;Forgery and Partial Key Recovery attacks on HMAC and NMAC using Hash Collisions&lt;/a&gt; (PDF; concludes &lt;em&gt;HMAC-MD5, HMAC-SHA1 - No immediate practical threats&lt;/em&gt;)
&lt;/ul&gt;



</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/08/black-hat-2009-ssl-review-breaking-the-myths-of-extended-validation-ssl-certificates-alexander-sotir</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/08/black-hat-2009-ssl-review-breaking-the-myths-of-extended-validation-ssl-certificates-alexander-sotir.html"/>
    <title>Black Hat 2009 SSL Review: Breaking the Myths of Extended Validation SSL Certificates (Alexander Sotirov and Mike Zusman)</title>
    <published>2009-08-07T12:04:13+01:00</published>
    <updated>2009-08-07T12:04:13+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Sotirov's and Zusman's talk (&lt;a href=&quot;http://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html#Sotirov&quot;&gt;the paper and the slides available for download&lt;/a&gt;) is a practical exercise in breaking the assurance provided by EV certificates, building on the discovery Collin Jackson and Adam Barth made in their paper &lt;a href=&quot;http://seclab.stanford.edu/websec/origins/&quot;&gt;&lt;i&gt;Beware of Finer-Grained Origins&lt;/i&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;
&lt;strong&gt;Extended Validation.&lt;/strong&gt; The browser’s scripting policy
does not distinguish between HTTPS connections
that use an Extended Validation (EV) certificates from
those that use non-EV certificates. For example, Pay-
Pal serves https://www.paypal.com/ using an
EV certificate, but a principal who has a non-EV certificate
for www.paypal.com can inject script into
the PayPal login page without disrupting the browser’s
Extended Validation security indicators...
&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The above has the following implications:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;EV sites generally use components that are delivered from other non-EV SSL places. Thus, if you have a valid non-EV certificate in the name of the server used for the component delivery, you can subvert the EV site.&lt;/li&gt;
&lt;li&gt;Sotirov and Zusman also point out that browsers don't perform SSL certificate pinning, happily accepting a request from a site with an EV certificate, followed by a request from the same site using another certificate. That allows for what they call SSL Rebinding. Through the same-origin policy, a subverted document delivered with a non-EV certificate can assume control of an EV site.&lt;/li&gt;
&lt;li&gt;They further point that it is possible to perform SSL cache poisoning, which is a side-effect of the caching subsystem in browsers being separate from the security system. For browsers, a file from a non-EV site is the same as a file from a EV site:
&lt;ol&gt;
&lt;li&gt;A user is somehow lead into requesting a file supposedly from an EV site (e.g., a script file), but the file is delivered by an attacker performing a MITM attack and using a valid non-EV certificate.&lt;/li&gt;
&lt;li&gt;The user goes to the real EV site, at which point his browser will attempt to refresh the previously cached script file.&lt;/li&gt;
&lt;li&gt;If the EV site responds with an 304 (Not Modified) response, the browser will continue to use the subverted version of the script.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sotirov and Zusman offer a number of suggestions to fix the above problems, but admit that most of them are not likely to happen. The problem here is that it is the browser vendors who should be pushing the security envelope (no one else is in a position to do it), but doing so would break sites and the vendors, who are primarily focused on winning market share, won't risk breakage. The only realistic solution seems to be to make it possible for sites to elect to be more secure so that, in time, we can upgrade to a more secure Internet.&lt;/p&gt;&lt;p&gt;I still maintain that a comprehensive solution (in a way similar to that I proposed in the &lt;a href=&quot;http://www.modsecurity.org/blog/archives/2006/06/secure_browsing.html&quot;&gt;Secure Browsing Mode document&lt;/a&gt;) is the best way forward. Band aids can only do so much and, for once, we need to do a job properly.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/08/black-hat-2009-ssl-review-more-tricks-for-defeating-ssl-in-practice-moxie-marlinspike</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/08/black-hat-2009-ssl-review-more-tricks-for-defeating-ssl-in-practice-moxie-marlinspike.html"/>
    <title>Black Hat 2009 SSL Review: More Tricks For Defeating SSL In Practice (Moxie Marlinspike)</title>
    <published>2009-08-05T15:53:12+01:00</published>
    <updated>2009-08-05T15:53:12+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.thoughtcrime.org&quot;&gt;Moxie Marlinspike&lt;/a&gt; has a story to tell, and it&amp;#39;s a story about SSL implementation flaws. His talk at Black Hat 2009 (get &lt;a href=&quot;http://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html#Marlinspike&quot;&gt;the slides and the movie from Black Hat Archives&lt;/a&gt;) is a continuation of his previous activities, which go way back, as early as 2002 (or something). I liked this talk, because it was delivered in a low key, here-is-what-I-discovered, way.&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;You first learn about the chained certificate validation flaws from the past, which were possible basically because X.509 is complex and programmers don&amp;#39;t understand it. It was possible to exploit such flaws with the use of any valid certificate.&lt;/li&gt;
&lt;li&gt;Moxie wrote and published his first SSL tool, &lt;code&gt;sslsniff&lt;/code&gt;, because Microsoft claimed the chained certificate validation flaws could not be exploited. This tool automates the exploitation and makes MITM attacks really simple (as most Moxie&amp;#39;s SSL tools do).&lt;/li&gt;
&lt;li&gt;Next comes &lt;code&gt;sslstrip&lt;/code&gt;, again a MITM tool, which relies on the fact that most people first browse using plain-text and let sites guide them to SSL. The tool strips away the links to SSL, leaving the user to communicate via plain-text.&lt;/li&gt;
&lt;li&gt;The new stuff is about the same problem Dan Kaminsky pointed out in his talk (but independently discovered), which is that most SSL implementations are vulnerable to NUL-byte attacks. As a result, it is possible to get a CA to sign a certificate that effectively allows you to impersonate a web site you do not own. Combining this attack with a wildcard certificate, you get a certificate that can be used to impersonate any web site.&lt;/li&gt;
&lt;li&gt;Moxie further discovered that it was possible to interfere (from a MITM position) with OCSP certificate validation to prolong a life of a revoked certificate.&amp;#0160;&lt;/li&gt;
&lt;li&gt;Even worse, he discovered that it was possible to use a NUL-enriched wildcard certificate to subvert the Firefox and Thunderbird update mechanism.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The good thing about implementation flaws is that they are reasonably quick and easy to fix. The first issue is old news, so it&amp;#39;s not a problem any more. The new flaws (#4, #5 and #6) are either fixed (I know they were fixed in Firefox) or will be fixed soon. You can make sure you&amp;#39;re using a version of the browser that is not vulnerable. There&amp;#39;s going to be a lot of people using older browsers, who are going to remain vulnerable. To help them, it is the CAs who are going to have to make sure they don&amp;#39;t issue any more rogue certificates.&lt;/p&gt;&lt;p&gt;Although &lt;code&gt;sslstrip&lt;/code&gt; is old news, I am worried about the fact that people can&amp;#39;t recognise when a connection (to a web site) is insecure. No, scratch that. Why should people need to recognise that? I know how to and I do, but that&amp;#39;s only out of necessity. I am really more worried about the fact that it&amp;#39;s necessary to think about such things at all. Web sites should just be secure, period.&lt;/p&gt;&lt;p&gt;Short term, EV certificates help. That really means that they help me and you, but I don&amp;#39;t believe they help normal (i.e., non-security) people. Can we do anything to help them? A solution comes to mind, and it consists from two parts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;Use only SSL and make plain-text connections impossible.&lt;/li&gt;
&lt;li&gt;Refuse to connect to web sites that do not have valid certificates.&lt;/li&gt;
&lt;/ol&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/08/black-hat-2009-ssl-review-black-ops-of-pki-dan-kaminsky</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/08/black-hat-2009-ssl-review-black-ops-of-pki-dan-kaminsky.html"/>
    <title>Black Hat 2009 SSL Review: Black Ops of PKI (Dan Kaminsky)</title>
    <published>2009-08-04T11:23:51+01:00</published>
    <updated>2009-08-04T11:23:51+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;SSL was again in the centre of attention at Black Hat USA this year (2009). I say SSL, as do many others, but most of the discussion wasn&amp;#39;t about SSL but, rather, about the technologies on which it relies. I will cover the Black Hat SSL talks in a series of blog posts, the first of which I publish today.&lt;/p&gt;&lt;p&gt;Dan Kaminsky&amp;#39;s talk (get it &lt;a href=&quot;http://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html#Kaminsky&quot;&gt;here&lt;/a&gt; as a QuickTime movie) has several very interesting points, but it fails on delivery. When you take the interesting bits out, the rest is a strange mixture of ranting, sarcasm, irrelevant detours and unproductive technology bashing, which I didn&amp;#39;t enjoy. Here&amp;#39;s my summary of what Dan said:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;Humans are imperfect.&lt;/li&gt;
&lt;li&gt;We generally care first about getting things done, with security always an afterthought (if we&amp;#39;re lucky).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you want to be more specific, that translates to:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;We don&amp;#39;t know how to write secure code.&lt;/li&gt;
&lt;li&gt;We are using tools and languages that are inherently insecure (e.g., the C programming language, with its buffer overflows and NUL-terminated strings).&lt;/li&gt;
&lt;li&gt;Specifications are often ambiguous.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It&amp;#39;s hardly news. My biggest complaint to Dan&amp;#39;s talk (his attitude aside) is that he doesn&amp;#39;t tell us how to improve things. He mentions DNSSEC as a possible improvement, but how do we guarantee that DNSSEC and its implementations do not suffer from the same problems that plague our software today?&lt;/p&gt;&lt;p&gt;The very interesting new points (what Dan really said), are as follows:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;MD2 is insecure, yet we are slow in retiring it. There&amp;#39;s even one commonly deployed root certificate signed with it. This one MD2 signature could be abused through an preimage attack. Such an attack is not practical today, but it may become practical soon enough for us to be worried. Dan apparently orchestrated a synchronised removal of MD2 from the popular programs and libraries, which is great.&lt;/li&gt;
&lt;li&gt;CAs, programs and libraries all have issues with input validation, the result of which is that it&amp;#39;s possible to get a certificate with a NUL byte in the common name. This is the issue that was independently discovered by Moxie Marlinspike, who &lt;a href=&quot;http://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html#Marlinspike&quot;&gt;also spoke at Black Hat&lt;/a&gt;. (I will discuss his talk in a subsequent post.) The differences in the interpretation of such common names allow such certificates to be abused so that you get a certificate that works for the domains you do not own. It&amp;#39;s even possible to get a wildcard certificate that works for all domain names (in some browsers). This problem is being fixed. (As an aside, Dan doesn&amp;#39;t mention the alternative names field, so we don&amp;#39;t know if it&amp;#39;s vulnerable too. It would be very ironic if everyone would fix the problems in the common name field, yet leave the alternative names vulnerable. Perhaps that&amp;#39;s an opportunity for a talk next year.)&lt;/li&gt;
&lt;li&gt;It is possible for certificates to have more than one common name (e.g., the domain name, in the context of SSL servers), but its implementation-specific which one will be used.&lt;/li&gt;
&lt;li&gt;Ambiguities in ASN.1 (which is used to encode certificates) and flaws in ASN.1 implementations can be used to insert OIDs that some consumers interpret as common names, but others don&amp;#39;t.&lt;/li&gt;
&lt;/ol&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/08/improved-sslv2-detection-in-ssl-labs</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/08/improved-sslv2-detection-in-ssl-labs.html"/>
    <title>Improved SSLv2 detection in SSL Labs</title>
    <published>2009-08-03T13:12:22+01:00</published>
    <updated>2009-08-03T13:12:22+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update (5 Sep 2012)&lt;/strong&gt; Someone wrote to me recently to point out that accepting SSL v2 connection requests is insecure, even if the intention is to only display an error message. This is, of course, correct. I come to the same conclusion long time ago, but I had forgotten that I had left behind a written trail in favour of this technique.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
One of the benefits of public testing is that you get exposed to, well, real life. I love that phase of development because you generally get to polish your code until it is perfect. Thus, after my &lt;a href=&quot;https://www.ssllabs.com/ssldb/&quot;&gt;SSL server assessment service&lt;/a&gt; went online, I monitored its performance closely, expecting to encounter a number of unforeseen cases, or cases that I didn&amp;#39;t handle well.&lt;/p&gt;
&lt;p&gt;One such area was SSLv2 detection. My first approach was to simply detect the cases where servers accept to negotiate a SSLv2 connection, but I soon discovered two edge cases:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
Some servers have SSLv2 enabled, but all of the SSLv2 cipher suites disabled. Technically, although they support SSLv2, it is impossible for the handshake to complete, which has the same end result as protocol disablement.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Some servers accept SSLv2, but they always respond with a special error message to all requests. This is actually a very good idea from the usability point of view. An SSLv2 user connecting to a server that does not support SSLv2 is only likely to get a cryptic error message from their browser, which may leave him wondering what to do. Accepting a connection, only to deliver a user-friendly error message is a very good idea.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now, dealing with the first case is easy: you just keep a would-be SSLv2 connection open for a bit longer. A failure to negotiate a cipher suite means SSLv2 connections are effectively impossible.&lt;/p&gt;
&lt;p&gt;Handling the second case is difficult because there is no standard way to deliver user-friendly protocol errors. For example, this is what Amazon gives you (I suspect the error page is delivered by the load balancer, although it&amp;#39;s perfectly possible to implement it on the application level):&lt;/p&gt;
&lt;pre&gt;HTTP/1.1 500 Internal Server Error&lt;br /&gt;Connection: close&lt;br /&gt;Content-Length: 309&lt;br /&gt;Content-Type: text/html&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;b&amp;gt;SSL Protocol Alert&amp;lt;/b&amp;gt;&amp;lt;p&amp;gt;The SSL protocol version that your&lt;br /&gt;browser uses is SSLv2 and it is not compatible with the server settings.&lt;br /&gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Please try the following:&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;- Check the SSL protocol settings&lt;br /&gt;on your browser for SSLv3/TLSv1 protocol support and enable the same.&lt;br /&gt;&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;p&gt;Amazon is kind enough to indicate that there is a problem by setting the response code to 500, which is easy to detect. Adding a check for this special case was easy. In a general case, however, I can&amp;#39;t just assume that everyone is going to do the right thing. I &lt;em&gt;know&lt;/em&gt; they won&amp;#39;t. So, for the time being, I am logging all unusual responses to requests over SSLv2 connections. In time I plan to automate the detection by observing if the tested site &amp;quot;looks&amp;quot; substantially different over SSLv2 (not sure what exactly that means, but I will figure it out).&lt;/p&gt;
&lt;p&gt;Thanks to Bo and Brandon, who emailed me to discuss the above two issues.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/07/tls-server-name-indication-now-in-apache</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/07/tls-server-name-indication-now-in-apache.html"/>
    <title>TLS Server Name Indication now in Apache</title>
    <published>2009-07-29T09:10:09+01:00</published>
    <updated>2009-07-29T09:10:09+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;
&lt;a href=&quot;http://httpd.apache.org&quot;&gt;Apache 2.2.12&lt;/a&gt;, which was released yesterday
(see &lt;a href=&quot;http://archive.apache.org/dist/httpd/CHANGES_2.2.12&quot;&gt;the changes&lt;/a&gt;), now supports &lt;a href=&quot;http://en.wikipedia.org/wiki/Server_Name_Indication&quot;&gt;TLS Server Name Indication&lt;/a&gt; (SNI), which is an extension to TLS that makes virtual SSL hosting possible. At the moment, every SSL web site requires a separate IP address and that makes SSL deployment more difficult than it could and should be.&lt;/p&gt;&lt;p&gt;Don't get your hopes up, though. Although the extension was defined in 2003, the support for it is still very limited. For example, Apache's adoption means that, for the first time, SNI is supported in a major web server. (For the record, you could have used SNI previously with &lt;code&gt;mod_gnutls&lt;/code&gt;, but &lt;code&gt;mod_gnutls&lt;/code&gt; is not widely used yet.) It is only now that the extension &lt;em&gt;begins&lt;/em&gt; to have a fighting chance.&lt;/p&gt;&lt;p&gt;However, the server-side support is not the main problem, although we are yet going to see it IIS. The lack of client-side SNI support holds it back. Although Internet Explorer supports SNI since 7.0, the fact that it does so only on Vista and more recent versions, means that we will have to wait many years for SNI to become practical.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/07/can-you-have-too-much-ssl</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/07/can-you-have-too-much-ssl.html"/>
    <title>Can you have too much SSL?</title>
    <published>2009-07-24T12:33:04+01:00</published>
    <updated>2009-07-24T12:33:04+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;In response to my &lt;a href=&quot;http://blog.ivanristic.com/2009/07/announcing-the-ssl-server-rating-guide-and-the-public-ssl-server-database.html&quot;&gt;announcement&lt;/a&gt; of the &lt;a href=&quot;https://www.ssllabs.com/projects/rating-guide/index.html&quot;&gt;SSL Rating Guide&lt;/a&gt;, &lt;a href=&quot;http://www.clerkendweller.com/&quot;&gt;Colin Watson&lt;/a&gt; left an interesting comment, which I thought would be better answered here.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;p&gt;Perhaps getting away from the issue of SSL configuration, and more
onto application design, there&amp;#39;s a couple of areas where I feel
OVER-use of SSL might be a problem:&lt;/p&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Overuse of SSL? Having previously stated (in my &lt;a href=&quot;http://www.modsecurity.org/blog/archives/2006/06/secure_browsing.html&quot;&gt;Secure Browsing Mode proposal&lt;/a&gt;) that I&amp;#39;d like to see the Web become a SSL-only place, I don&amp;#39;t think overuse is likely. In fact, given my ongoing struggle to find a hosted blog or wiki service that uses SSL properly, I&amp;#39;d rather see overuse than what we have now — no security at all.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;p&gt;1. sites that ONLY operate under SSL, and are not available without
SSL, even though most of the content is public and not in any way
sensitive (does this over-use undermine confidence or increase distrust
is other non-SSL sites?)&lt;/p&gt;
&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Even with web sites that do not contain sensitive content (no need for confidentiality), you&amp;#39;d still want SSL to provide authentication (are you seeing the correct web site?) and integrity (has anyone modified content in transit?). &lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&lt;p&gt;2. sites that are generally not SSL, but allow content to be
accessed using SSL by unauthenticated users (authenticated users always
being forced to use SSL)&lt;/p&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Actually, allowing non-SSL access anywhere on a site that requires authentication at some point is very dangerous. When you access a non-SSL site you have no way of telling if you are seeing the genuine site. A MITM attacker could have intercepted your DNS queries to redirect your HTTP requests elsewhere. He could have easily modified the site&amp;#39;s content in transit. Either way, he&amp;#39;s in charge of what you see. Links to an SSL-enabled portion of the web site could be rewritten to plain-text access. Similarly, such links could lead to an SSL-enabled site under the attacker&amp;#39;s control. Granted, some advanced users would detect such an attack, most most users wouldn&amp;#39;t.&lt;/p&gt;&lt;p&gt;Can you have too much SSL? I don&amp;#39;t think so.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/07/announcing-the-ssl-server-rating-guide-and-the-public-ssl-server-database</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/07/announcing-the-ssl-server-rating-guide-and-the-public-ssl-server-database.html"/>
    <title>Announcing the SSL Server Rating Guide and the Public SSL Server Database</title>
    <published>2009-07-22T16:58:58+01:00</published>
    <updated>2009-07-22T16:58:58+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;It is my great pleasure to announce two new &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; projects today. Although I launched SSL Labs a month ago using &lt;a href=&quot;https://www.ssllabs.com/projects/client-fingerprinting/index.html&quot;&gt;something else&lt;/a&gt; as an excuse, the two projects I am announcing today are the real reason SSL Labs exists. After several months of hard work, my two projects are finally ready for the public.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.ssllabs.com/projects/rating-guide/index.html&quot;&gt;SSL Server Rating Guide&lt;/a&gt; is a no-nonsense SSL server assessment guide. From the introduction:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;The Secure Sockets Layer (SSL) protocol is a standard for encrypted network communication. We feel that there is surprisingly little attention paid to how SSL is configured, given its widespread usage. SSL is relatively easy to use, but it does have its traps. This guide aims to establish a straightforward assessment methodology, allowing administrators to assess SSL server configuration confidently without the need to become SSL experts.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The general idea is to give people something concise to work with, something they can pick up and use in a very short period of time. The guide not only makes SSL server assessment very easy, it also gives clear guidelines on what good configuration looks like.&lt;/p&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;But what good is a rating guide if you don&amp;#39;t have tools that will do the hard work for you? Noticing a lack of good SSL assessment tools, I built one and made it into a free online service. The &lt;a href=&quot;https://www.ssllabs.com/ssldb/index.html&quot;&gt;Public SSL Server Database&lt;/a&gt; was born.&lt;/p&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope you will find the projects useful!&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/07/firefox-ssl-extensions</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/07/firefox-ssl-extensions.html"/>
    <title>Firefox SSL extensions</title>
    <published>2009-07-16T16:14:57+01:00</published>
    <updated>2009-07-16T16:14:57+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;When I saw the &lt;a href=&quot;http://www.webappsec.org/lists/websecurity/archive/2009-06/msg00022.html&quot;&gt;email Adam Muntner sent to the webappsec mailing list&lt;/a&gt;, in which he advertises his webappsec collection of Firefox extensions, I immediately realised I wanted to do something similar, but for SSL. There are a few interesting SSL extensions for Firefox, but people generally don&amp;#39;t know about them.&lt;/p&gt;
&lt;p&gt;I ended up creating two collections: one for the extensions that work with the most recent version of Firefox, and another for the older ones:&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://www.ssllabs.com/projects/firefox-addons/&quot;&gt;Firefox SSL Add-on Collections&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/07/examples-of-the-information-collected-from-ssl-handshakes</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/07/examples-of-the-information-collected-from-ssl-handshakes.html"/>
    <title>Examples of the information collected from SSL handshakes</title>
    <published>2009-07-09T15:45:57+01:00</published>
    <updated>2009-07-09T15:45:57+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;
I&amp;#39;ve received an email or two asking me about the information I collected using &lt;a href=&quot;https://www.ssllabs.com/projects/client-fingerprinting/&quot;&gt;mod_sslhaf&lt;/a&gt;, so I decided to make it available for everyone. Here it is:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/downloads/sslhaf-20090709-2.txt.gz&quot;&gt;sslhaf-20090709-2.txt.gz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The file contains a list of unique user agents seen on &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt;, each with information on the handshake they used and the protocols and cipher suites they offered to use. For example:&lt;/p&gt;
&lt;pre&gt;Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 \&lt;br /&gt;(KHTML, like Gecko) Version/3.1.1 Mobile/5H11 Safari/525.20&lt;br /&gt; Handshake: h3&lt;br /&gt; Protocol: 03.01&lt;br /&gt;&lt;br /&gt; TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)&lt;br /&gt; TLS_RSA_WITH_RC4_128_SHA (0x05)&lt;br /&gt; TLS_RSA_WITH_RC4_128_MD5 (0x04)&lt;br /&gt; TLS_RSA_WITH_AES_256_CBC_SHA (0x35)&lt;br /&gt; TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x0a)&lt;br /&gt; TLS_RSA_WITH_DES_CBC_SHA (0x09)&lt;br /&gt; TLS_RSA_EXPORT_WITH_RC4_40_MD5 (0x03)&lt;br /&gt; TLS_RSA_EXPORT_WITH_DES40_CBC_SHA (0x08)&lt;br /&gt; TLS_RSA_WITH_NULL_MD5 (0x01)&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;The information gives insight into how SSL is used in real-life, but it&amp;#39;s not reliable enough to support any conclusions about individual clients. There are several problems I need to solve:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;Parse User-Agent fields to group related clients.&lt;/li&gt;
&lt;li&gt;Record request IP addresses in order to be able to verify the search engine clients are who they say they are.&lt;/li&gt;
&lt;li&gt;Record request IP addresses to use them as a mechanism to determine forged User-Agent fields.&lt;/li&gt;
&lt;li&gt;Deploy mod_sslhaf to multiple high-traffic sensors, in order to further minimise the possibility of using forged User-Agent fields.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Update (10 July):&lt;/strong&gt; Now with no unknown cipher suites in the output.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/07/analysis-of-googlebots-frugal-cipher-suite-list</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/07/analysis-of-googlebots-frugal-cipher-suite-list.html"/>
    <title>Analysis of Googlebot's frugal cipher suite list</title>
    <published>2009-07-02T09:21:10+01:00</published>
    <updated>2009-07-02T09:21:10+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Two weeks ago, I announced &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; and my technique
for &lt;a href=&quot;https://www.ssllabs.com/projects/client-fingerprinting/&quot;&gt;passive SSL cipher suite
analysis&lt;/a&gt;. It won&amp;#39;t surprise you to learn that I&amp;#39;ve been carefully observing the cipher
suites used in the requests that came to the web site since. (In fact, I announced the site
slightly earlier than I had planned because I wanted to get my hands on some real-life data.)
One client&amp;#39;s SSL fingerprint immediately caught my attention, because it supported only 4 cipher
suites. It was Googlebot.&lt;/p&gt;

&lt;p&gt;There were 115 visits from Googlebot in the two-week period, using 5 different
user agent strings (although Googlebot will sometimes send a request without User-Agent set):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Googlebot-Image/1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; feed-id=9430846974815548184)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first one is by far the most common, although the other ones appear on regular basis.
I used reverse DNS to verify that the IP addresses belong to Google, with the exception of one Feedfetcher request, for which I had to use &lt;a href=&quot;https://ws.arin.net/whois/&quot;&gt;ARIN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As I’ve already mentioned, Googlebot&amp;#39;s SSL fingerprint is quite short:&lt;/p&gt;

&lt;p class=&quot;blockquote&quot; style=&quot;margin-left: 40px;&quot;&gt;&lt;code&gt;h2,03.01,010080,04,05,0a&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The first token indicates the version of the SSL handshake used. In this case it’s &lt;code&gt;h2&lt;/code&gt;,
which is a code for the SSL v2 handshake. The second token indicates the highest SSL version a client
is willing to support. Googlebot’s choice, &lt;code&gt;03.01&lt;/code&gt;, indicates that is willing to go as far
as TLS v1.0. Modern browsers do not support SSL v2.0 so it&amp;#39;s generally rare to see a browser use
a SSL v2 handshake. Search engines don’t care about security but they do care about accessing as many
servers as possible: they’ll compromise and support the weaker protocols.&lt;/p&gt;&lt;p&gt;What follows is the most interesting part: the codes for only 4 cipher suites. They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SSL_CK_RC4_128_WITH_MD5 (0x010080)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SSL_RSA_WITH_RC4_128_MD5 (0x04)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SSL_RSA_WITH_RC4_128_SHA (0x05)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SSL_RSA_WITH_3DES_EDE_CBC_SHA (0x0a)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first suite is only valid with SSL v2.0, while the three remaining ones work in SSL v3.0 or TLS v1.0. It&amp;#39;s obvious that, unlike with most other SSL clients, the cipher suites on this list were hand-picked. If I would have to guess, I would say that the motivation was to save on bandwidth and increase performance. It’s likely that all SSL v2.0 servers support the one SSL v2.0 cipher suite, while 3 suites are needed to support the rest of the Internet.&lt;/p&gt;

&lt;p&gt;Assuming the reason for such a short list of cipher suites is frugality, I am surprised it doesn’t contain suites with weaker ciphers. A search bot doesn’t really care about security so it could afford to negotiate a weaker cipher and perhaps save some CPU cycles. Similarly, 3DES is significantly slower (than, for example, RC4) so it would be my first candidate for removal if I am concerned with performance. Thus, I am guessing 3DES is there for interoperability.&lt;/p&gt;

&lt;p&gt;It would be interesting to get someone from Google to comment.&lt;/p&gt;

&lt;p&gt;Interestingly, my net caught one search engine imposter, who claimed he was Googlebot, but wasn&amp;#39;t. While I could have also used a reverse DNS lookup to determine what the imposter wasn’t, in this case I was also able to identify what it was—someone browsing the Internet using a Firefox 2.x browser with and altered User-Agent field. Nice!&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/07/improved-handling-of-ssl-warnings-in-firefox-35</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/07/improved-handling-of-ssl-warnings-in-firefox-35.html"/>
    <title>Improved handling of SSL warnings in Firefox 3.5</title>
    <published>2009-07-01T17:56:00+01:00</published>
    <updated>2009-07-01T17:56:00+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Slightly over a year ago &lt;a href=&quot;http://blog.ivanristic.com/2008/04/firefox-3-ssl-i.html&quot;&gt;I discussed
the SSL certificate error handling in Firefox&lt;/a&gt;. Where Firefox 2.x allows users to simply click through a warning about an invalid SSL connection, Firefox 3.0.x improves the handling and makes it difficult to access the invalid web site.
&lt;/p&gt;
&lt;p&gt;My blog post turned out to be quite popular, sparking a lively discussion, which spilled onto the Mozilla&amp;#39;s Bugzilla when I filed two bug reports for Firefox:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=431827&quot;&gt;Exceptions for invalid SSL certificates are too easy to add&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=431826&quot;&gt;Handling of invalid SSL certificates lacks in usability&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first bug report was rejected after a short discussion (still, I was happy to have been heard), but the second lingered on and, one year later, resulted in the change in how Firefox handles invalid SSL certificates. In Firefox 3.5, when you encounter an invalid SSL web site, you get a screen similar to this one:

&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://blog.ivanristic.com/images/ff3.5-ssl-warning-1.png&quot;&gt;&lt;/p&gt;

&lt;p&gt;Notice the improved language. The message now ways &amp;quot;&lt;em&gt;[...] we can&amp;#39;t confirm that your connection is secure&lt;/em&gt;&amp;quot;, instead of &amp;quot;&lt;em&gt;[a site] uses an invalid security certificate&lt;/em&gt;&amp;quot; (followed by technical mumbo-jumbo). Clicking the two headings at the bottom uncovers the hidden areas, which contain more information and the button to create an exception:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://blog.ivanristic.com/images/ff3.5-ssl-warning-2.png&quot;&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/06/http-client-fingerprinting-using-ssl-handshake-analysis</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/06/http-client-fingerprinting-using-ssl-handshake-analysis.html"/>
    <title>HTTP client fingerprinting using SSL handshake analysis</title>
    <published>2009-06-17T16:22:47+01:00</published>
    <updated>2009-06-17T16:22:47+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;My first &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt; project is about &lt;a href=&quot;https://www.ssllabs.com/projects/client-fingerprinting/&quot;&gt;HTTP client fingerprinting when SSL is used&lt;/a&gt;. A cipher suite, in SSL, is a collection of cryptographic techniques
that defines a secure communication channel. There are hundreds of
cipher suites, and they are all built out of a dozen or so basic
building blocks: key exchange, encryption and integrity validation
algorithms. Different programs often use different cipher suites. By
observing the list of supported cipher suites one can determine the
maximal communication strength, and often even guess the make of the
SSL client on the other side. 
  
  &lt;/p&gt;&lt;p&gt;Possible uses:&lt;/p&gt;
  
  &lt;ul&gt;
&lt;li&gt;System
administrators can make informed decisions about which cipher suites to
enable in the SSL servers they maintain. The general goal is disable as
many of the weak(er) cipher suites, while leaving enough to still make
it possible for users to connect. &lt;/li&gt;
&lt;li&gt;Cross-checking the supported cipher suites with the
HTTP client identity offered in the User-Agent header may help uncover
some automated attack tools that masquarade themselves as browsers.
Although the cipher suites used by an SSL client is completely under
its control, such evasive actions require a new layer of SSL expertise.
(Whereas it is trivial to spoof the contents of the User-Agent header.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The proof of concept is an Apache module, which monitors SSL handshakes to extract the supported cipher suites. This approach is quite handy, because you can add the fingerprinting facility to your existing installation and suffer negligible overhead.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/06/security-researchers-ask-google-to-enable-ssl-encryption-by-default</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/06/security-researchers-ask-google-to-enable-ssl-encryption-by-default.html"/>
    <title>Security researchers ask Google to enable SSL encryption by default</title>
    <published>2009-06-16T18:15:27+01:00</published>
    <updated>2009-06-16T18:15:27+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;A group of 38 researchers and privacy advocates sent a &lt;a href=&quot;http://www.cloudprivacy.net/letter/&quot;&gt;letter&lt;/a&gt; to Google asking it to enable SSL encryption by default in all its applications. Google has had the always-use-SSL option for a while but, since the feature is disabled by default, only a small number of users is taking advantage of it. &lt;a href=&quot;http://googleonlinesecurity.blogspot.com/2009/06/https-security-for-web-applications.html&quot;&gt;Google's response&lt;/a&gt; was somewhere along the lines of &quot;we'll give the users security... eventually... if we must&quot;.&lt;/p&gt;&lt;p&gt;Although the performance overhead of SSL is negligible for most web sites, the price of security is likely to be significant in Google's case, considering the size of its user base.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/06/ssl-labs-launches</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/06/ssl-labs-launches.html"/>
    <title>SSL Labs launches</title>
    <published>2009-06-15T19:52:42+01:00</published>
    <updated>2009-06-15T19:52:42+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;
Recently I've found myself spending more and more time not only thinking about SSL, but also working on several SSL-related projects. SSL is a remarkable technology that is not given nearly as much credit as it deserves. I think this is at least partially because SSL is so commonplace today that people take it for granted. Compared to other security technologies, it is also reasonably easy to configure. But therein lies the danger: SSL is so easy to use that most people have stopped thinking about SSL.&lt;/p&gt;
&lt;p&gt;I think there's a large gap between how SSL is used today and how it should be used. Actually, I think we first need to make an effort to understand how SSL is actually used today in order to build on that knowledge. With that, in mind, I decided to start a new web site and use it as a launching point for my SSL-related projects. Fast-forward several months; today, I am happy to announce &lt;a href=&quot;https://www.ssllabs.com&quot;&gt;SSL Labs&lt;/a&gt;, which has just launched.&lt;/p&gt;
&lt;p&gt;My initial work on &lt;a href=&quot;https://www.ssllabs.com/projects/client-fingerprinting/index.html&quot;&gt;HTTP client fingerprinting using SSL handshake analysis&lt;/a&gt; is already there (I will write more about it in subsequent posts), but I have several other projects, which I will publish in the following weeks.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2009/01/the-worst-idea-ever-let-s-break-ssl-for-mobile-users</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2009/01/the-worst-idea-ever-let-s-break-ssl-for-mobile-users.html"/>
    <title>The worst idea ever: Let's break SSL for mobile users</title>
    <published>2009-01-31T14:59:04+00:00</published>
    <updated>2009-01-31T14:59:04+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;This is definitely the scariest and stupidest idea I have heard in a very long time: some people on the W3C &lt;a href=&quot;http://www.w3.org/2005/MWI/BPWG/&quot;&gt;Mobile Web Best Practices Working Group&lt;/a&gt; think that is acceptable to break SSL—the security backbone of the Internet—in order to help transcoding proxies reformat content for mobile users:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://weblog.cenriqueortiz.com/mobility/2009/01/29/the-wap-gap-all-over-again-w3c-https-and-transcoding/&quot;&gt;The “WAP Gap” All Over Again - W3C, HTTPS and Transcoding&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This just demonstrates one of the reasons we suck at security: small groups of people who do not really know what they are doing wield significant power and affect millions. It&amp;#39;s like year 2000 all over again. We are lucky when in some cases (such as in this one) there are informed people willing to stand for what&amp;#39;s right.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2008/12/will-the-real-john-viega-please-stand-up</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2008/12/will-the-real-john-viega-please-stand-up.html"/>
    <title>Will the real John Viega please stand up?</title>
    <published>2008-12-31T17:44:34+00:00</published>
    <updated>2008-12-31T17:44:34+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I thought this was very funny. Yesterday I came across &lt;a href=&quot;http://broadcast.oreilly.com/2008/12/an-attack-on-public-key-infras.html&quot;&gt;this post from John Viega&lt;/a&gt; where he discusses the certificate trust model, ending the post with:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;That leaves the Internet fundamentally broken.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Then, today, in a &lt;a href=&quot;http://blogs.zdnet.com/security/?p=2343&quot;&gt;guest post on the Zero Day blog&lt;/a&gt;, he states:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;People are declaring the entire Internet is broken, and that it will be hard to fix. This is simply not true.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2008/12/howto-create-a-rogue-ca-certificate-for-2000</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2008/12/howto-create-a-rogue-ca-certificate-for-2000.html"/>
    <title>HOWTO: Create a rogue CA certificate for $2000</title>
    <published>2008-12-30T16:22:20+00:00</published>
    <updated>2008-12-30T16:22:20+00:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;An international group of researchers—speaking at the &lt;a href=&quot;http://events.ccc.de/congress/2008/&quot;&gt;25th
Chaos Communication Club conference&lt;/a&gt;—published details on how they had managed to construct a rogue
Certificate Authority (CA) certificate (!) using a weakness in the MD5 hashing algorithm. They estimate
the attack costs $20,000 to execute today, but that the cost can be reduced to as little as $2000.
With a rogue CA certificate in hand they are able to impersonate any SSL-enabled web site and conduct
MITM attacks undetected (no browser warnings!).&lt;/p&gt;

&lt;p&gt;The presentation is now available for
&lt;a href=&quot;http://events.ccc.de/congress/2008/Fahrplan/attachments/1251_md5-collisions-1.0.pdf&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update (30 Dec):&lt;/strong&gt; And so is the &lt;a href=&quot;http://www.win.tue.nl/hashclash/rogue-ca/&quot;&gt;paper&lt;/a&gt;,
along with &lt;a href=&quot;http://www.phreedom.org/research/rogue-ca/&quot;&gt;more information&lt;/a&gt; and a
&lt;a href=&quot;https://i.broke.the.internet.and.all.i.got.was.this.t-shirt.phreedom.org/&quot;&gt;demonstration site&lt;/a&gt;
(the CA&amp;#0160; certificate was purposefully constructed to expire in 2004, which essentially makes it
harmless).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update (31 Dec): &lt;/strong&gt;
&lt;a href=&quot;https://blogs.verisign.com/ssl-blog/2008/12/on_md5_vulnerabilities_and_mit.php&quot;&gt;Verisign fixes
the problem&lt;/a&gt;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot;
src=&quot;/images/rogue-ca-cert.png&quot; style=&quot;width: 516px;&quot; title=&quot;Badca&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2008/07/self-signed-certificates-in-production-point-to-a-failure-of-ssl</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2008/07/self-signed-certificates-in-production-point-to-a-failure-of-ssl.html"/>
    <title>Self-signed certificates in production point to a failure of SSL</title>
    <published>2008-07-17T13:04:00+01:00</published>
    <updated>2008-07-17T13:04:00+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I am realising that, although the problem that many Firefox users have with self-signed certificates points to a failure in software design (this is not a stab at Firefox, rather a testament to how difficult it is to design software to suit a diverse user base), it really points to a failure of SSL. Why do we have such large numbers of self-signed certificates in the first place? Why isn't everyone using valid certificates?&lt;/p&gt;
&lt;p&gt;SSL is a great security protocol and a great success overall. Consider the following:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Hybrid protocol that, when properly implemented, offers security and performance at the same time.&lt;/li&gt;

&lt;li&gt;Future-friendly design that allows ciphers and hashing techniques to be replaced as they begin to age&lt;/li&gt;

&lt;li&gt;Can be applied to any communication protocol (well, &lt;a href=&quot;http://technology.newscientist.com/article/dn14124-compressed-web-phone-calls-are-easy-to-bug.html&quot;&gt;almost any&lt;/a&gt;; and the problem will eventually be fixed).&lt;/li&gt;

&lt;li&gt;Free.&lt;/li&gt;

&lt;li&gt;Rock solid, as the designs are in the public and they have been thoroughly reviewed.&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;The catch is in the &amp;quot;properly implemented&amp;quot; part. SSL can give you security but only if you can build on top of an existing trust relationship. Most people don't really think about the underlying trust foundation because this is something normally handled by browser vendors when they accept to trust the root certificates of the established certificate authorities. By the time you open a browser you already trust a few dozen entities. They, in turn, extend their trust to cover the web sites you are visiting and everything seems great. Except that there are a few rough edges:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Using valid certificates is an optional step in the configuration of any web server. It requires knowledge, time and effort, and many people can't be bothered. There's also the overhead of required regular maintenance.&lt;/li&gt;

&lt;li&gt;The cost model falls apart for very small entities, mostly because of the administrative overhead, but also also because of the additional cost of the certificate itself.&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;At first I thought the best thing to do would be to relax handling of invalid SSL certificates in browsers. After all—I thought—we don't really trust; most people don't check certificates anyway. We really care about transport security and not having our credit card details snapped while in transit. My idea was to simply ignore the fact that a certificate is self-signed. Perhaps use different colours to show the difference. I felt pretty good about that until I realised that would allow for unrestricted exploitation through man-in-the-middle (MITM) attacks. You see, the problem is that it is impossible to differentiate between a self-signed certificate and a MITM attack. It's not a problem of SSL or even the implementation. Oh, well, back to the drawing board. (Bruce Schneier recently wrote about MITM attacks: &lt;a href=&quot;http://www.schneier.com/blog/archives/2008/07/maninthemiddle_1.html&quot;&gt;his post&lt;/a&gt; has a couple of very interesting stories and workarounds.)&lt;/p&gt;

&lt;p&gt;The only thing I can think of that would help is raising awareness, and browser vendors seem to be doing that at the moment. Yes, there's a number of angry people, but I trust all the vendors will do the right thing—eventually. We should just be patient and wait for it to happen, while continuing to remind the vendors that security matters.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2008/07/firefox-versus-ssl-is-really-about-security-versus-usability</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2008/07/firefox-versus-ssl-is-really-about-security-versus-usability.html"/>
    <title>Firefox versus SSL is really about security versus usability</title>
    <published>2008-07-15T11:12:41+01:00</published>
    <updated>2008-07-15T11:12:41+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;My blog post &lt;a href=&quot;http://blog.ivanristic.com/2008/04/firefox-3-ssl-i.html&quot;&gt;Firefox 3 improves handling of invalid SSL certificates&lt;/a&gt; is proving to be very popular. It touched a nerve, and the comments of unhappy Firefox users keep piling on. Although I suspect a large part of the problem stems from bugs (if you read the comments you will find the reports of clearly unintended behaviour), there is a bigger problem between Firefox and its user base: it is one of security versus usability.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Who knows better: developers, or users?&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;It's not a problem specific to Firefox, nor a problem that only exists in the security sphere. In fact, once you become aware of the existence of the problem and start looking around, you will find it in virtually every aspect of technology. &lt;a href=&quot;http://www.gnome.org&quot;&gt;GNOME&lt;/a&gt;, for example, is famous for dumbing down the user interface and forcing its users to behave in a certain way.&lt;/p&gt;

&lt;p&gt;It's not surprising that, with two opposing sides, there are two schools of thought. Implementing either approach is easy&amp;#8212;and that's what many applications do&amp;#8212;but that only results in unhappy users. Finding a way to make products usable, yet secure (or feature-full, outside security) is the real challenge. How do we educate the innocent yet enable the proficient?&lt;/p&gt;

&lt;p&gt;Speaking of implementation, the answer may be in making applications capable of adapting to user needs. A system-wide setting could tell applications whether a user prefers to have decisions made for him. Alternatively, an application-specific flag could be set during installation. Having just two settings is probably not feasible, but there should be an easy way for advanced users to ask applications to show them everything.&lt;/p&gt;

&lt;p&gt;But it may be that, in order to really solve the problem, we need to make a further step back and examine the way we develop applications. I think the majority of applications are still built by technical people, pushed by business people with features (not security or usability) in mind. Happy users are productive users, but very few companies seem to recognise this fact.&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2008/06/eliminating-session-hijacking-forever</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2008/06/eliminating-session-hijacking-forever.html"/>
    <title>Eliminating session hijacking... forever</title>
    <published>2008-06-04T12:42:51+01:00</published>
    <updated>2008-06-04T12:42:51+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;Jim Manico, over at &lt;a href=&quot;http://manicode.blogspot.com&quot;&gt;Manicode&lt;/a&gt;, is doing an interesting thing: he is trying to convince the maintainers of every web application stack component everywhere (e.g. browsers, web servers, libraries) to implement the HttpOnly mechanism&amp;nbsp; (read more on HttpOnly in &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms533046.aspx&quot;&gt;Mitigating Cross-site Scripting With HTTP-only Cookies&lt;/a&gt;). Actually, he is doing more than that—in many cases he is fixing things himself and submitting the patches. It's his &lt;a href=&quot;http://manicode.blogspot.com/2008/05/httponly-crusade-update.html&quot;&gt;&lt;em&gt;HttpOnly Crusade&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The general idea behind HttpOnly is to prevent the disclosure of session tokens to JavaScript, which would, in turn, reduce the likelihood of session hijacking attacks. It's a noble idea, but one which is very difficult to succeed. The problem is that we are dealing with a leaky bucket. HttpOnly deals with one of the leaks, but it doesn't do anything about the others. And there are many leaks to take care of. If you go through Jim's blog posts, you will find that AJAX requests will also need tweaking (to hide the cookies marked with HttpOnly), and there is not even mention of session tokens embedded in request URIs, or embedded in request parameters. There is no doubt that an implementation of HttpOnly in all software components would raise the bar and make us more secure, but it won't solve the problem. In this particular case I would prefer to &lt;em&gt;replace the entire bucket&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Our real problem is that session management is not standardised, forcing every application platform (and many applications) to provide its own implementation. Why is this bad?&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Implementing session management correctly is not trivial. First versions of many implementations have been found to be incorrect and, thus, insecure.&lt;/li&gt;

&lt;li&gt;It's a waste of time. Session management is best abstracted and handled by the underlying platform or library.&lt;/li&gt;

&lt;li&gt;Application-level implementations of session management (all implementations today) are inherently vulnerable to session hijacking. We must move session management to a different layer in order to be able to implement it securely (see below).&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;Why is session hijacking possible in the first place? The HTTP authentication model, as originally envisioned, is not vulnerable to session hijacking because it requires authentication on every request. Session tokens are still needed to identify which requests are part of a session, but since authentication always take place there can be no hijacking. The HTTP authentication model was lacking in many other respects (e.g. there were no provisions to log people out, expire sessions, and so on), so most people simply decided not to use it. In the currently dominant session management model authentication is done only once per session, which turns session tokens into time-limited password surrogates, and thus valuable. Anyone who knows a session token can resume the session it refers to.&lt;/p&gt;

&lt;p&gt;There are two ways to solve the session hijacking problem cleanly:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Perform authentication on every request, thus making session tokens worthless (as far as hijacking is concerned). You can do this today in certain circumstances, for example if you are willing to use any of the HTTP authentication methods (Basic or Digest), or if your application uses client SSL certificates (in this case all you need to do is to attach the client's SSL certificate to the session, and check that it is the same on every subsequent request).&lt;/li&gt;

&lt;li&gt;Start a new RFC effort to define session management, and then implement it in a layer other than HTTP. We already have the ideal candidate for this function—SSL. SSL actually already understands sessions (they were added to version 3 to increase performance) so only a few tweaks would be needed to make the mechanism suitable for web applications.&lt;/li&gt;&lt;/ol&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2008/04/firefox-3-improves-handling-of-invalid-ssl-certificates</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2008/04/firefox-3-improves-handling-of-invalid-ssl-certificates.html"/>
    <title>Firefox 3 improves handling of invalid SSL certificates</title>
    <published>2008-04-29T11:45:51+01:00</published>
    <updated>2008-04-29T11:45:51+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;I have downloaded the beta of Firefox 3 to check out the improvements related to SSL. First, there's the added support for Extended Validation SSL certificates, but I am not very excited about that (I wrote about this previously in &lt;a href=&quot;http://blog.ivanristic.com/2008/02/extended-valida.html&quot;&gt;&lt;em&gt;Extended Validation SSL certificates not going anywhere, as predicted&lt;/em&gt;&lt;/a&gt;). It's a nice feature, but it's not going to bring much good overall. On the other hand, I am &lt;em&gt;very&lt;/em&gt; happy with the improvements to the handling of invalid SSL certificates.&lt;/p&gt;

&lt;p&gt;Firefox 2.x allows users to simply click-through their way to a site that uses an invalid certificate.&amp;nbsp; There is a warning of some sort, but who reads warnings anyway? (Internet Explorer is not much better in this respect, although at least its warning is very clear about not recommending the user to proceed.) &lt;/p&gt;

&lt;p&gt;With Firefox 3.x, the situation is much better. First you get the same style of error response as you would for any other network problem:&lt;/p&gt;

&lt;p&gt;&lt;img border=&quot;0&quot; src=&quot;/images/ff-invalid-certs-1.png&quot; title=&quot;Firefox_3_ssl_warning&quot; alt=&quot;Firefox_3_ssl_warning&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;The beauty of this page is that it does not allow you to proceed to the site. To go through you have to create an exception, which is a multi-step process that you can start by clicking on that link at the bottom. You then get the following:

&lt;/p&gt;

&lt;p&gt;&lt;img border=&quot;0&quot; src=&quot;/images/ff-invalid-certs-2.png&quot;&gt;&lt;/p&gt;

&lt;p&gt;Another warning; very good. Clicking the &lt;em&gt;Add Exception...&lt;/em&gt; button gives you the form that is used to actually create exceptions. There's a nice final warning on the top of the form, which will hopefully deter those who will be attempting to create an exception for the wrong reasons:&lt;/p&gt;

&lt;p&gt;&lt;img border=&quot;0&quot; src=&quot;/images/ff-invalid-certs-3.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The changes represent a great step forward, and significantly reduce the likelihood of successful man-in-the-middle attacks. Still, I wouldn't mention exceptions at all on the error page: advanced users will find a way to do what they must, but normal users are better-off not knowing anything about exceptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update (7 May 2008):&lt;/strong&gt; My &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=431827&quot;&gt;request to make hide the functionality to create exceptions from the error page&lt;/a&gt; was rejected. It's good to know that the issue was considered, even if the decision is not the one I would have made. Daniel Veditz pointed me to Johnath's blog post, which &lt;a href=&quot;http://blog.johnath.com/index.php/2007/10/11/todo-break-internet/&quot;&gt;describes the history behind the new SSL error page&lt;/a&gt;. Very interesting.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://blog.ivanristic.com/2007/06/extended-validation-certificates-a-change-for-the-better-but-not-enough</id>
    <link type="text/html" rel="alternate" href="http://blog.ivanristic.com/2007/06/extended-validation-certificates-a-change-for-the-better-but-not-enough.html"/>
    <title>Extended Validation Certificates: A change for the better (but not enough)</title>
    <published>2007-06-15T12:38:47+01:00</published>
    <updated>2007-06-15T12:38:47+01:00</updated>
    <author>
      <name>Ivan Ristić</name>
    </author>
    <category term="SSL" />
    <content type="html">&lt;p&gt;On June 12th, 2007, the &lt;a href=&quot;http://www.cabforum.org&quot;&gt;CA/Browser Forum&lt;/a&gt; (a group that consists of leading certificate authorities and browser vendors) ratified the first version of the &lt;a href=&quot;http://www.cabforum.org/EV_Certificate_Guidelines.pdf&quot;&gt;Extended Validation (EV) SSL Guidelines&lt;/a&gt;. The goal of the guidelines is to introduce a new type of certificate, Extended Validation Certificate, with intent to standardise the certificate issuance process.&lt;/p&gt;

&lt;p&gt;Those of you that remember the early days of SSL certificates will find that the &quot;new&quot; process is pretty much identical to the one we had to undergo years ago. Things such as verifying legal existence, identity, registration number, right to use the domain name--are all there. There is one crucial difference, though. This time the process is mandatory whereas before, it turns out, it was merely a matter of choice. No wonder the quality of the vetting had deteriorated over the years as companies fought for the market by lowering prices.&lt;/p&gt;

&lt;p&gt;There are many who do not like the new Extended Validation Certificates. They usually say the new type of certificate will not solve our problems. And that they are merely a way for the certificate authorities to extract more money from their customer base. While I agree with the former, I do not necessarily agree with the latter (but this is not to say the CAs will not be happy to collect the extra funds). &lt;/p&gt;

&lt;p&gt;The point is that a solid vetting process should have been a mandatory requirement from the start. The fact that we missed the opportunity to do the right thing then does not mean we have to continue living with the mistake. It is true--the new certificate does fall short of solving our problems. But, guess what, that was never the intention. Citing from the EV Certificate Guidelines (page 13):&lt;/p&gt;

&lt;blockquote&gt;&lt;i&gt;
(c) &lt;b&gt;Excluded&lt;/b&gt; Purposes EV Certificates focus only on the identity of the Subject named in the Certificate, and not on the behavior of the Subject. As such, an EV Certificate is not intended to provide any assurances, or otherwise represent or warrant:
&lt;ol&gt;
&lt;li&gt;That the Subject named in the EV Certificate is actively engaged in doing business;
&lt;li&gt;That the Subject named in the EV Certificate complies with applicable laws;
&lt;li&gt;That the Subject named in the EV Certificate is trustworthy, honest, or reputable in its business dealings; or
&lt;li&gt;That it is &quot;safe&quot; to do business with the Subject named in the EV Certificate.
&lt;/i&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;SSL certificates have nothing to do with trust.&lt;/i&gt;&lt;/b&gt; (Admittedly, it's a fact we didn't fully appreciate when they were introduced.) Their purpose is simply to identify the party on the other side of the communication channel. For trust we need to turn to other methods. Actually, we developed perfectly good methods to do this in real life. For example, most people take into account the brand name of the store or that of the manufacturer. You are going to be very comfortable buying from Amazon because you &lt;i&gt;know&lt;/i&gt; the company. By the same token, you are probably going to think twice before buying from a badly-designed, badly-built web site you've just run across.&lt;/p&gt;

&lt;p&gt;There is one aspect where Extended Validation Certificates fall short, and that's the implementation and the changes in the browser user interfaces. To accommodate the new type of certificate browsers have resorted to displaying the sites protected with such certificates in a slightly different way. There are two problems with this. One is that a normal user stands to gain very little from the change. The other is that, even for the small gain that can be achieved, a huge marketing effort is going to be required to explain the difference. This effort is not only going to be expensive but also take time--a lot of time. It something we can successfully do maybe once or twice in a decade. The EV Certificates are simply not worth it.&lt;/p&gt;

&lt;p&gt;A far better solution would have been to, slowly and quietly, reform the certificate issuance process. Let the old certificates expire and start issuing better ones &lt;i&gt;today&lt;/i&gt;. While that is happening figure out a way to deal with our real problems and inform the normal Internet users only once we are happy we've done the right thing.&lt;/p&gt;
		
</content>
  </entry>
  
 
</feed>
