Security @ Opera

Subscribe to RSS feed

Sticky post

Introducing the Security @ Opera home page

, ,

Welcome to the new home page of the Opera Security Group.

This is where we are going to announce security updates, links to advisories, and occasional articles with information about security topics related to Opera.

You can find out more about Opera's policies for security vulnerabilities at this page. We prefer that security vulnerabilities, like all bugs, are reported via our bug-tracking system, although we do also accept reports via the e-mail address security (at) opera dot com (PGP key can be found in this article).

About Opera 11.60 and new problems with some secure servers

, , , ...

After we released Opera 11.60 earlier this week, a few people reported problems with some secure sites, sites that had worked in Opera 11.52.

The affected servers must be upgraded to versions that are not affected by the observed problem.

These reports are not unexpected, as the problems are caused by one of the security patches introduced by Opera 11.60 for the so-called BEAST issue, reported by researchers Duong and Rizzo, an issue we posted about in September.

Also, the problems observed with these sites are not isolated to Opera, as other browser vendors have either already released versions with the same kind of protocol update or will soon do so. In addition to the browser updates, Oracle released a patched version of Java in October.

The issue that this patch mitigates is that when a server supporting SSL v3 or TLS 1.0 (TLS 1.1 and later are not affected) selects certain encryption methods, specifically Triple-DES or AES in Opera (ARC4/RC4 is not affected), an attacker that is able to both observe the encrypted datastream, and control specific parts of the plain text that is sent in that datastream, was able to discover data sent over that connection that the attacker could not control, such as the cookies used for that site. The attack has been known for a long time, but what Duong and Rizzo discovered was a way to increase the speed of the attack dramatically.

The attack only works when attackers can see the encrypted data sent immediately before the next block of data that they send and that gets encrypted, which offers a way to mitigate the problem.

What Opera and the other browser vendors have decided is that each block of application data (such as a secure HTTP request) will be split into two blocks of data that are encrypted separately. The first encrypted block only contains the first byte of the application data; the second block contains the rest of the data. The method is being called a "1/n-1" record split. This payload splitting prevent the attackers from being able to construct a block of application data that can help them guess the content of the data they did not control (e.g., the cookies).

However, a few secure servers are not standards compliant and do not tolerate that a HTTP request such as "GET / HTTP/1.0" is broken up into two blocks of separately encrypted SSL/TLS records, such as "G" and "ET / HTTP/1.0", and responds in a number of ways -- for example, by just closing the connection, never responding, or responding with a HTTP error messages.

Before releasing this patch we did some research with the TLS Prober to discover the extent of the problem.

The numbers indicate that up to 0.25% of servers may be affected by this issue, although not every one of these servers is affected, as it depends on the specific encryption method selected by the server; however, it is possible that at least 0.16% could be affected, as they either support AES or only support Triple-DES.

As far as we can tell from the recorded information about the affected servers, most of the affected sites seem to be using unidentifiable SSL/TLS front-ends, as there is no specific server software that stands out among the servers.

There is still some uncertainty about the precise numbers, since the automatic detection of problematic servers in the TLS Prober might still incorrectly flag a server as behaving incorrectly, although among the reported servers tested so far, they have all been detected as being non-compliant.

As mentioned above, all browser vendors have either shipped, or will soon be shipping, updates of their browsers that will implement this new countermeasure, so the operators of the affected servers should as soon as possible do one of the following:

  • Upgrade the server to a newer version that is not affected by the problem. This is a good idea in any case, since the affected servers are probably old and thus have other security problems, too.
  • Configure the server to prefer the RC4 encryption method (which does not have the problem), but this will still cause the problem to appear if the client does not support RC4.

About the SVG font manipulation vulnerability that was fixed in 11.52

, ,

Recently, news of a SVG-related vulnerability has been circulating on the net, along with claims that Opera had "decided not to fix it".

At Opera, we take security very seriously, and you can be sure that we would not choose to ignore exploitable security vulnerabilities.

With our release today of Opera 11.52, we now have a fix available for this issue, but we want to shed more light onto what happened, as well as explain why we both ask for - and practice - responsible disclosure.

Read more...

The "BEAST" SSL/TLS issue

Researchers Thai Duong and Juliano Rizzo have come up with a novel way of extending and exploiting a well known issue in standard web encryption, and managed to write code which can guess at user's cookies, and thus steal a user's session to secure sites. Pulling off such an attack is not easy though, and a default installation of Opera cannot be exploited directly.

This weakness is present both in SSL and version 1.0 of TLS, the two most popular cryptographic protocols in use today. TLS versions 1.1 and 1.2 are not affected, but unfortunately only a few browsers support these newer versions, so servers cannot yet take advantage of this. Opera supports this, and this can be enabled in existing Opera versions as soon as other browsers and servers start upgrading.

We developed a fix for SSL and TLS 1.0, and tried shipping it in Opera 11.51. We quickly found that any change we made to how the browser connected to servers, however small, would be incomprehensible to thousands of servers around the world. Deploying this would mean users would be unable to connect to those servers, and we had to rethink our solution. This issue will have to be solved in close cooperation between browser vendors and webmasters. Since this cannot be directly exploited in Opera, we decided to wait until we have an industry agreement on how to move forwards.

We have test systems in place which can connect to millions of secure sites around the world, and detect how these sites will react to changes to the protocol. We will be sharing our results from these test runs with other browser vendors and affected parties, to give us a good basis for finding the best solution to the issue.

How the Attack works - a technical explanation

At its core, this is a chosen plaintext attack on the Cipher-block chaining (CBC) mode of encryption.

In pure CBC mode, the output cipher text from the previous encryption operation is used as "random" input into the next encryption operation. This is done to make sure that two identical blocks of plaintext are not encrypted into identical cipher text blocks.

However this mode opens up the possibility for an attack where the attacker may feed the encryption algorithm with a carefully constructed input, that can reveal other unknown parts of the plain text. Note that the encryption key can not be recovered, only plaintext. BEAST is a proof of concept that exploits this weakness, through what has been termed a "block-wise chosen-plaintext" attack, to attempt to gain access to credential cookies.

If a victim has logged into a site protected by SSL, where the session authentication is handled by cookies, any HTTPS request from the victim's browser to the site will contain this cookie. By serving some evil JavaScript to the victim's browser, the attacker can create a request and send it from the victim's browser to the protected site, and listen into the resulting ciphertext. This information can be used to carefully create plaintext which the attacker can append to the ongoing request via the attacking script. In this plaintext there would be a guess for character of the cookie. Listening again to the resulting ciphertext, the attack can determine if the guess was correct. When the correct character is found, the attacker can adjust the length of the request to attack the next character. Repeating this procedure may reveal the whole cookie.

Attempting to attack users

A few requirements must be met to successfully apply this attack against web browsers.

1) The attacker must be able to eavesdrop on network connections made from the victim's browser.
2) The attack must be able to insert JavaScript into the victim's browser.
3) The attacker must be able to send HTTPS requests at will.
4) After listening in on the request, the attack must be able to append more data to the very same request.

There are several methods for eavesdropping (one example is open wifi networks), thus requirement 1 can be met.
Requirement 2 can be met in several ways. For example, the client may visit an evil site that serves the JavaScript, or the JavaScript can be served in an advertisement.
Requirement 3 is met, as the attacker can create requests via the attack script.

However, requirement 4 is not met in default Opera. In Opera the whole request has to be made up front before sending it. It is not possible for JavaScript to append data to a request after it has been started - this is the case for form submissions, loading files, XMLHttpRequest and most other methods of creating network requests. Thus, the core part of the attack fails, as the attacker needs to send a request, listen to the resulting cipher text, and use that to append more plaintext to the request.

There are a couple of twists though.

WebSockets is a viable attack vector for requirement 4, because scripts using this have more control over what is sent on the connection. Fortunately WebSockets has been turned off by default since its introduction into Opera, as there have been other security concerns with this specification. WebSockets is not widely used yet, so in general there is no pressing need for it to be enabled. There is a new WebSockets specification in progress, without any of these security concerns, which will make it possible to enable this feature without worry. You can check if you have WebSockets enabled here.

Then there is Java. While applets do not have direct access to cookies from the browser, Java can request cookies, and add them to outgoing network requests, for authentication purposes. This is normally subject to a same-origin check in Java, so cookies are only added when sending requests back to the domain the applet was loaded from. However, due to a bug in Java's same-origin check, this can be bypassed, but requires an attacker to control your Internet connection. If you believe you are better safe than sorry, you may consider disabling Java, or avoiding untrusted Internet connections, until there is a Java update available.

Edit 2011-10-19: Java has released a patch to address this issue. Users are advised to upgrade their Java version for safe browsing with Java enabled.

When Certificate Authorities are Hacked

Certificate Authorities (CAs) have a lot of responsibility, they are in charge of ensuring who can present their site as secure and verified, which they do by issuing certificates to trusted site owners. There are hundreds of CAs around the world, and it will inevitably happen that some of them issue a certificate incorrectly, either by mistake or by hacking. The certificate system is built to tackle this, by having a built-in revocation system. CAs add a revocation URL1 to all certificates, and when a browser encounters such a certificate, the browser will check with that URL if the certificate is still valid. This allows CAs to immediately cancel any misissued or fraudulent certificates.

If a browser gets a negative response when checking the revocation URL, the browser will warn the user, and refuse to load the page. However, in most cases where an attacker is trying to spoof another server, the attacker is in full control of the network, so as to direct users to his own server. It is then easy for the attacker to additionally block the revocation URL. Some browsers will present a site as secure if the revocation URL is blocked,
Opera's address bar
which allows for abusing even a revoked certificate. Opera will downgrade the security level of the site to the same as any other regular web page in such unverified cases, which means that once a certificate is revoked by the issuer, it cannot be abused in Opera, even if the revocation URL is blocked. The most an attacker can do, is the same as he could without a certificate.

Browsers that do not have protection against blocked revocation lists will need to rapidly issue an update to fix any new certificate abuse. In Opera, users are protected automatically when the certificate is revoked. If the CA has a general problem, or a CA is no longer being used, we can remove it from our list of trusted CAs behind the scenes, and the user will also be secure, without needing to change anything in her browser.

You may well encounter reports in the media about fraudulent certificates. But rest assured that Opera takes care of these for you. Our advice is that as long as you are using Opera, pay attention to the address bar badge, and you will still be secure.

1 Edit: Technically there are two such URLs, but this post treats them both as one.

Edit 2: Regarding specific incidents with DigiNotar, please see this blogpost on rootstore.

Edit 3: Further actions regarding DigiNotar have been deployed, please see the announcement on the rootstore home page.

TLS Prober: Email surprise

, , , ...

Some of those who follow our TLS Prober articles may have noticed that in our article last week, describing the tests performed by the TLS Prober, we mentioned several email protocols among the protocols tested by the TLS Prober and perhaps wondered why we had never posted any results about that.

Well, the email test functionality was actually only added two weeks ago, and, at the time the above article was published, we were still running the first full scale tests (which also was part of the reason for publishing that article at that time).

Last week, the TLS Prober tested 1.4 million email servers, from a scanned set of 9 million names generated using common hostname prefixes in combination with domain names from several Alexa Top Million site lists from the past 18 months. While this set is dominated by popular domains, there were so very few mail servers tested in the Alexa top 10,000 segment that I cannot consider that segment of the data to be useful; therefore it is not used below. Another bias is that very few SMTP servers on the standardized port 25 were tested, due to access to these ports being blocked (by our network) at the time the test set was generated, 126,000 SMTP servers hosted on the non-standard port used to bypass such blocking was tested, though.

The results of this test was something I looked forward to with some trepidation. The reason is two-fold: first, the main focus of patching the Renego issue until now has been on HTTPS servers, not mail servers, and second, the email protocols are, supposedly, not affected by the Renego issue when properly implemented, due to requirements in their specifications for how they should handle a renegotiation (require re-authentication of the client).

Therefore, I expected that patch coverage for email servers should be markedly lower than the HTTPS webserver patch coverage.

This expectation turned out to be mistaken.

It turns out that, among the email servers scanned in this sample (which is biased towards popular sites), the overall patch coverage is 74.4%, as compared to the 58% HTTPS coverage in our normal test set (the big set's result is probably a bit higher, but not by much).

There was little variance in Renego patch coverage between the various email protocol variants, the largest being normal SMTP at 67.6% coverage (but this set may have been affected by the above mentioned bias, and also had only 40% as many tested servers as the other protocols, the rest of the tested protocol variants kept inside 74.7-75.5% coverage).


What is the reason for this difference between what was expected and the reality?

After discussing this with a few people, it probably comes down to the fact that email servers are relatively simple installations and can easily be updated by pulling in patches from the OS vendor. Web server installations, on the other hand, are more complex, and upgrading them has a much higher potential for running into trouble due to updates of some component, requiring much more testing.

This finding, if it also applies to mail servers in general, indicates that mail servers will be ready for a transition to strict mode for handling the Renego issue earlier than the secure websites will be.

What about other application protocols? The only other protocol that can be used over TLS and that is supported by Opera is IRC, but there may be others supported by other clients. In the case of IRC, my limited information indicates that many of these servers, particularly the secure ones, are located on non-standard ports, although there seems to be a certain convention, but it probably means they will be difficult to discover using anything short of a full portscan.

At present, I am therefore not planning to do any survey of secure IRC servers.

TLS Session resumption

Another interesting thing the prober detected was that very few of the mail servers, just 22.8%, resume TLS sessions (just in case somebody wonders: there is no correlation between this number and the number of Renego unpatched servers; they are just similar). Again, SMTP servers stood out, with just 8.15% that would resume sessions.

As I pointed out in another article, not resuming sessions significantly increases load on the server, something that will particularly be an issue for POP servers, but also IMAP servers, since all clients use multiple connections, and at least one *major* client opens one for each IMAP folder that is checked. SMTP will still be affected by clients, but this depends on how many emails the users send.

What is the reason for this low number of servers that resume sessions? At this time, that would be guessing, but given that the couple of mail server administrators I have been talking to have been unable to find out how to enable it, it could be that this has been left out of email servers, for some reason. What I do know is that the applications based on OpenSSL apparently need to provide a TLS Session cache for the server. Perhaps the email server implementors could post some information about how to enable it?

[Update: Had been using a wrong port for SMTP directly over TLS, removed reference to that port]

TLS Prober: What is tls-testing.opera.com and what does it do?

, , , ...

We have written several articles1,2,3,4 about the results provided by the TLS Prober, and occasionally provided information about specific tests it performs. In this article we will provide more details about what tests are performed.

For new readers, the TLS Prober was created to monitor the patching of the TLS Renego Security Vulnerability, CVE-2009-3555, possibly the most severe vulnerability to affect the SSL/TLS protocol. It allows a Man In the Middle attacker to, for example, inject HTTP requests into the beginning of a user's connection with a vulnerable server and have them performed with the user's credentials (A Proof of Concept demonstration in November 2009 posted the victim's Twitter username and password to their Twitter stream).

To fix this problem, all SSL/TLS clients and servers must be updated to support a new TLS Extension, the Renegotiation Information Extension, documented in RFC 5746. However, before clients can start to become strict about this extension, and thus protect our mutual users against this attack, as many servers as possible need to be patched.

The TLS Prober is one of the projects that is used to monitor this situation. Another project is Ivan Ristic's SSLLabs project, and it is possible that Netcraft has added such testing to their survey.

In addition to monitoring the "Renego" issue, the Prober also tests servers for a number of other capabilities and problems, which can aid the SSL/TLS client vendors in deciding which functionality to support, or which problems to be aware of when maintaining their implementations.

The TLS Prober consists of a group of computers that connect to the Internet via the hostname "tls-testing.opera.opera.com" (213.236.208.19, formerly known as "probes.opera.com").

When running a test these computers run many scripts in parallel, each testing a different secure server, then registering the results in a database.

As mentioned previously, the TLS Prober is based on TLSLite, a Python-based TLS implementation, which has been updated with extra TLS functionality and instrumented to test a number of variants that we have observed in clients and servers.

The weekly run of the TLS Prober is normally performed Monday and Tuesday each week, although the TLS Prober might be configured to run special tests at other times as well.

When probing a server (a single IP address and port is only tested once, even if it has several names), the following tests are performed:

Capability checks:

  • SSL v2
  • SSL v3
  • TLS 1.0
  • TLS 1.1
  • TLS 1.2
  • General support for TLS Extensions (such as Server Name Indication,
    Certificate Status)
  • Support for the TLS Renegotiation Indication Extension
  • Support for the TLS Session Ticket Extensions
  • TLS Session Resumption? (Not having this enabled can cause performance issues for the server)
  • Trigger TLS connection renegotiation? (Might indicate a security vulnerability)
  • Accept TLS connection renegotiation triggered by the client? (Might indicate a security vulnerability)
  • Support of various encryption methods, some of which are weak, and
    therefore could be a security problem.


Checks for correct handling

  • Tolerates TLS 1.3? (This is a, currently, non-existent version of TLS, version code 3.4, but next on the list. Not accepting this is astandards violation)
  • Tolerates TLS NG.1? (non-existent version, with version code 4.1, not accepting this is a standards violation)
  • Uses correct version field in the Client Hello message (some servers
    use the wrong field)
  • Does not require one version field in the Client Hello to contain
    specific values before accepting the other.
  • Does the server handle the version field in the RSA Client Key exchange correctly?
  • Does the server accept that the client sends extra long padding
    in the block cipher modes? The encrypted record must be a multiple of 8 or 16 (depending on encryption method), so it must be padded with anything from 0 to 255 bytes, as long as the total length is a multiple of the block length (8 or 16 bytes).
  • Correct handling of bad data in the Renego extension?


A number of these are tested in various combinations, some enabled, others not.

In most cases, once the TLS connection has been successfully established, the Prober will shut it down; only in a few tests will it send a limited request to the server. Some tests use functionality that is not supported by TLSLite, such as the large number of encryption methods it tests for, and in such cases the Prober will shut down the connection as soon as it has all the necessary information, since it cannot complete the full handshake.

The number of tests can range from about 60 to upwards of a couple of hundred, performed one at a time, depending on the capabilities of the server, and how many problems are encountered. If a connection fails, the Prober will retry a couple of times to make sure it was a test failure,
and not something unrelated that caused the connection to be closed. The whole process can take a few minutes depending on network speed and response times.

Additionally the Prober collects data about:

  • Name and version of server software, if provided. For a HTTPS site
    this is done by sending a HTTP HEAD request for https://www.example.com/, an action that limits the load on the server, and avoids sending unnecessary data to the Prober since the response is only the HTTP headers, not content. For mail servers the first "hello" line from the server is registered, although it is not a reliable indication of vendor and version.
  • Certificates presented by the server
  • OCSP Certificate status from extension
  • Length of temporary Diffie-Hellman key (DHE-key)


At present the TLS Prober supports the following application protocols:

  • HTTPS
  • IMAP
  • POP
  • SMTP


In addition to the Prober, the system also has a scanning functionality that can check various domains (either by name or IP address range) for servers on specific hostnames and ports. This scanner will only do a quick test to see if there is something that looks like a SSL/TLS server on the tested port, and if so, registers it for a full test with the Prober once the scanner has completed its run.

A few system administrators have asked about what tls-testing.opera.com/probes.opera.com does, and we hope the above description satisfies those who wonder about what goes on, and that they have been assured that the Prober is only testing legitimate, or almost legitimate, variations of the TLS protocol, and is not trying to break into, or damage, their servers.

If your server is among those being tested, thank you for your participation (and another thank you if you have patched the Renego issue).

Renego: Popular, unpatched and vulnerable, an update

, , , ...

Three weeks ago, I posted an article about how results from the TLS Prober indicates that popular websites (as measured by Alexa) are less likely to be patched for the Renego problem and more likely to be vulnerable to it.

The week after we tested a much larger sample of servers, ending with 1.66 million tested servers (compared to the 590,000 the previous article was based on), after the list of servers was updated with names from the EFF SSL Observatory's "Valid names" list and more names from the Alexa list.

The result is a much better impression of what the current state of affairs of the Renego problem.

Below is a graph of how the Renego patch coverage varies between the various Alexa groups, for two sets of site, the 375,000 sites that was part of the tests since we started we see these numbers, and the large run we did two weeks ago:



As you can see, the difference between the Alexa site and non-Alexa sites was fairly big in the old set, but it is even larger when using the bigger test-set -- 9.3 precentage points, an 18% relative difference.

However, the larger set did improve the statics for the Alexa Top 100, probably due to the general increase in the number of hostnames.

The reason for the difference is most likely the relatively limited number of hostnames and name variations (7) used in the original list. The new list includes a lot of new name variations (150, or more) of the Alexa list, as well as a lot of new hosts from the EFF list.

Among the unpatched sites, the vulnerability rates varied from 56% for Non-Alexa sites, to 62% for the Alexa top-100.

All of this, unfortunately, only serves to further indicate that the popular sites, with some exceptions such as Google, has avoided not just patching this problem, but also any attempt to mitigate it, while less popular sites are much more on the ball when it comes to patching.

Renego: Popular, unpatched and vulnerable sites

, , , ...

In the year or so we have been running the TLS Prober we have steadily expanded which tests are performed1, in addition to the checks for support of the TLS Renego patch. Thus, we have added tests for various standard compliance problems, for example.

Most recently, we added tests for TLS connection renegotiation, a test that has been delayed due to the significant changes that were needed in the TLS client implementation source. Renegotiation is used to change the encryption keys for the connection in midflight. This is the functionality that had the error that caused the Rengo Indication Extension patch to be necessary. Renegotiation can be used to add more confidentiality to the handshake, and many use this functionality when requesting Client Certificate authentication, in part to protect the user's identity.

Last week, we also added a lot of new hostnames to the list of servers (and more are being planned), by testing about 200 different hostnames for each domain in the Alexa top million list. The result was a 10-fold increase in number of names (from 2 million to 23 million, though it only resulted in a 50% increase in the number of unique servers (~380000 to ~590000), due to the number of IP addresses having multiple names assigned to them. Given the size of the list, I am considering running it only every month or so.

The current numbers indicate the following:

  • 28.1% of probed servers perform renegotiation.
  • 0.2% of servers requested renegotiation during the simple tests we perform.
  • This means that 27.9% of servers accept client-initiated renegotiation.


On their own, these numbers might not look that bad, but it gets worse once you look at these numbers in association with other information about these servers.

That 27.9% of servers accept renegotiation indicate a significant problem, since most of these sites do not need renegotiation, particularly not the client-initiated variant (no major browser client actually supports it). Part of the reason for the number of servers is that accepting renegotiation has been enabled in OpenSSL, and probably other SSL/TLS implementations, by default until the Renego problem was discovered, and Apache servers make up about 70% of the affected servers, but Microsoft IIS is registered for about 10% of the sites (but for both a front-end server may be handling the actual SSL/TLS connections).

Looking specifically at which of these servers are Renego patched, and which aren't, a really problematic pattern emerges: Only 0.5% of the sites allowing client-initiated renegotiation are Renego patched, 99.5% are NOT patched (for server-initiated renegotiation 71% of the servers are patched).

This is bad news, because it means that these 27.9% of all the tested servers are vulnerable to the full HTTP injection Renego attack, meaning that somebody could be manipulating what requests are sent to the unpatched "secure" website server you are visiting, and there is no direct way to tell if it is happening.

When you combine this with the fact that 45.7% of all servers are unpatched, you get an even more problematic number: Of the unpatched servers, 61% are vulnerable to the Renego attack. That is, roughly, only 2 of 5 (a bit more than 1 of every 3) unpatched sites are *apparently* safe from the attack. However, since the site could still perform renegotiation under very specific preconditions we are not able to use, we have no way to know for certain.

I do not know whether anyone has actually used this attack mode, short of the first Proof of Concept announcements, I have noticed no reports about it being used. While it is relatively easy to execute, it does require a bit of preparations, particularly being able to intercept the client's connection. My guess is that, if such attacks have been performed, they have been mistakenly been thought to be the result of phishing, rather than an injection attack. If the attack isn't used, it is probably because standard phishing and malware tactics work equally well, or better.

However, that an attack vector is (apparently) not used, does not mean that it is safe to leave it in place, particularly when the problem is so easy to detect, and to fix.

Then, there is what Ivan Ristic noticed about a month ago when he was running a new survey: there were fewer patched websites when their Alexa rank was higher, than when it was further down on the list. A check of our own numbers confirmed this: in parts of the Alexa top 1000 as few as 20% of the servers are Renego patched, and, in fact, even including the whole list of Alexa ranked sites we are testing, the coverage never exceeds the overall patch coverage in the set. This means that less popular sites must have a significantly higher patch coverage than popular sites, since the non-Alexa sites in the list are about 25% of the test set. If there should have been a difference between these groups, the percentages should, by rights, be the other way around; popular sites should have a much higher patch rate than less popular sites.

When checking this, and correlating to the servers accepting renegotiation, in parts of the Alexa list as many as 80% of the unpatched, high ranking servers accepts renegotiation and are vulnerable to the injection attack!

Lastly, there are the sites with Extended Validation certificates. Those ought to have their server properly patched, right? Wrong! Unfortunately. While 54% of all tested servers have been patched, only 50% of tested EV sites have been patched; that is, the patch coverage is about 90% of the general coverage. For the most part we see the same pattern for high-ranking sites as mentioned above, except that among the top 100 sites, the patch coverage is significantly higher than the general coverage in that segment, although far below the overall patch coverage.



While some high-ranking sites, most notably Google, have patched their servers, a large number have not, Facebook, Yahoo!, and Amazon are foremost among those that haven't patched.

Among the unpatched sites, Facebook and Amazon are playing it (relatively) safe, but we can unfortunately currently count Yahoo and many other popular sites as vulnerable. Although at least one major site has protected its main entry sites against the vulnerability, they haven't patched the problem, and other servers on the site were vulnerable.



These numbers definitely make me consider whether browsers should remove the EV indication, disable the padlock for Renego unpatched sites, or turn on the security warning, despite the fact that doing so would cause trouble for almost half the most popular websites. Unfortunately, at present, this is something that probably require coordinating with the other browsers.

A problem with this is that I believe a number of SSL accelerator companies still haven't released fixes; the latest news from one is that the patch will be released in June, which is not a moment too soon, if you ask me.

However, if you as a user want to get more visible indications about unpatched sites than the one in the Security Information dialog available from the security indicator, in Opera you can get this by updating the opera:config#SecurityPrefs|CryptoMethodOverrides preference with a sum of your selection of the following:

  • 128: Disable EV for unpatched sites
  • 1024: Disable padlock/secure indication for unpatched sites (implies Disable EV)
  • 256: Warn about unpatched sites (implies disable EV)
  • 2048: Disable support for server initiated renegotiation if the server is not renego patched. This protect against attacks that target the client (which is not that different from other MITM attacks), but may cause connections to hang or end with an error on unpatched sites that apparently require this functionality (about 0.1% of probed sites).


Keep in mind that this preference will get overwritten once the browsers start taking broader action against theses sites.

At present, I am not planning to publish the list of servers, but we have shared the current list of 193000 unpatched servers (of 267000) with the CAs that are members of the CA/Browser forum, including whether the site in question is vulnerable to the injection attack.

As for the websites: Facebook, Yahoo!, Amazon, and the rest, it is time to get down from the patch fence!

Secure browsing like it's 1995

, , , ...

As those who follow us might know, we started our "TLS prober", which probes the TLS/SSL capabilities of servers around the world, about a year ago party . For background, the TLS/SSL protocol is the protocol behind secure connections, mostly known by the "Secure" indicator in the address field, and this protocol ensures that no one can listen in on whatever you're doing online. This is especially important if you're using, for instance, banking sites. About a year and a half ago, a hole in this protocol was discovered, which means that the protocol is no longer completely secure. It has been demonstrated that this hole could be used to steal Twitter log-in information, even though the user was on a secure connection. Similar methods *could* be used to eavesdrop and steal information from, for instance, your online bank account. Fortunately, a fix has already been made, but it needs to be installed on all servers (that offer the TLS/SSL protocol) worldwide. A daunting task for sure! We created the "TLS prober" mainly to monitor how many of the servers have implemented the fix (AKA the "Renegotiation Indication Extension") so far. This has also enabled us to check for other issues around specific configurations of the secure servers, such as version support, standards compliance, ciphersuites and more. Up until recently, we didn't check for SSL 2.0 – the oldest, outdated, and insecure version of the protocol, since we didn't really assume that support for this was a big problem anymore. To our dismay, however, the amount of servers still having SSL 2.0 enabled was *pretty big*.

Read more...