Security @ Opera

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 surpriseThe "BEAST" SSL/TLS issue

Comments

Thu Winwikipedian Monday, September 5, 2011 2:10:47 PM

Originally posted by Ganiscol:


Originally posted by Ganiscol:


If Opera took care of the DigiNotar issue, why does this page display as trustworthy albeit being certified by DigiNotar? And why does DigiNotars certificate show up in the certfificate manager afterwards?

https://www.polisdirect.nl/

Edit: I used this strange behaviour to set Opera up to display a warning whenever a site uses DigiNotar.


Cause they used a different certificate now...


It took them ~3 days to get rid of the DN certificate - whats your point?



Just saying the page is "trustworthy" cause they are using a different certificate now whistle.

Hans DampfGaniscol Monday, September 5, 2011 5:10:30 PM

And the next chapter in the DigiNotar debacle - it might be the last chapter *for* DigiNotar:

https://www.govcert.nl/english/service-provision/knowledge-and-publications/factsheets/factsheet-fraudulently-issued-security-certificate-discovered.html

Summary: Govcert took over control of DigiNotar.

I'd say not trusting DigiNotar at all was and is justified...

Thu Winwikipedian Monday, September 5, 2011 5:24:22 PM

Originally posted by Ganiscol:

And the next chapter in the DigiNotar debacle - it might be the last chapter *for* DigiNotar:

https://www.govcert.nl/english/service-provision/knowledge-and-publications/factsheets/factsheet-fraudulently-issued-security-certificate-discovered.html

Summary: Govcert took over control of DigiNotar.

I'd say not trusting DigiNotar at all was and is justified...


Looks like DigiNotar would be bye bye. Hope the Dutch government operates DigiNotar better than DigiNotar themselves...

JanGen Tuesday, September 6, 2011 8:19:05 AM

For a preliminary analysis of the DigiNotar hack:
http://www.rijksoverheid.nl/bestanden/documenten-en-publicaties/rapporten/2011/09/05/fox-it-operation-black-tulip/rapport-fox-it-operation-black-tulip-v1-0.pdf

In short: DigiNotar`s Window servers were unpatched, had no anti-virus scanners, their certificate system was not sandboxed, and they used weak passwords. Their admin password was cracked by brute force, and hackers had administrator rights.

Furthermore the hack was EXACERBATED by weak implementations of certificate revocation behaviour of ALL browsers EXCEPT Opera
http://blog.spiderlabs.com/2011/04/certificate-revocation-behavior-in-modern-browsers.html

But DigiNotar's security implementation was lacking here completely:
`If a certificate serial number is presented to the OCSP-responder and no record of this serial is found, the normal OCSP-responder answer would be „good‟.`
which makes Opera's standard OCSP checking worthless, but makes sense to Opera's point of view that there is no need of blacklisting DigiNotar certificates, now DigiNotar's OCSP responder has been corrected.

I followed the issue in mainly Dutch Press, I haven't seen then name of browser vendor Opera anywhere, they only talked about Google, Mozilla and Microsoft.
Is Opera's PR department on holiday?

Thu Winwikipedian Tuesday, September 6, 2011 8:31:24 AM

Originally posted by JanGen:

I followed the issue in mainly Dutch Press, I haven't seen then name of browser vendor Opera anywhere, they only talked about Google, Mozilla and Miocrosoft.
Is Opera's PR department on holiday?


That's because Opera has not done anything drastic as revoke DigiNotar complete like Microsoft (NOT Miocrosoft), Mozilla, and Google have done (read the second last paragraph of my blog post.

JanGen Tuesday, September 6, 2011 8:42:28 AM

Diginotars OCSP url is:
OCSP - URI:http://validation.diginotar.nl

I guess OCSP is always checked securely (encrypted), but the report says:
`Note that advanced methods for misusing the rogue certificates are possible by which a thorough attacker can circumvent our detection method.`
that sounds like their is a way to circumvent OCSP checking.

JanGen Tuesday, September 6, 2011 8:59:18 AM

Yngve Nysæter Pettersenyngve Tuesday, September 6, 2011 9:18:25 AM

Originally posted by JanGen:

I guess OCSP is always checked securely (encrypted), but the report says:
`Note that advanced methods for misusing the rogue certificates are possible by which a thorough attacker can circumvent our detection method.`
that sounds like their is a way to circumvent OCSP checking.



The connection to the OCSP responder can be blocked by the attacker, it is also possible (within a limited time) to replay an unexpired, but Good, OCSP reponse.

OCSP responses are usually unencrypted (using encryption can cause a cascade of OCSP requests, at least at present. And in in the case of a MITM attack like this one, guess what? Getting a cert for the OCSP responder would be high on the list), but Good/revoked responses are digitally signed (error codes aren't).

Hans DampfGaniscol Tuesday, September 6, 2011 9:41:35 AM

Am I misunderstanding something or is Operas concept based on whether or not DigiNotar has revoked all compromised certificates?

How can one rely on this practice if the number of compromised certificates started at *.google.com, increased to 257 and now stands at a (preliminary) grand total of 531? DigiNotar didnt know (or care) what the hell was going on and it lead to the dutch government taking control of DigiNotar. Thats really not a good foundation for trust.

If I'm getting this right, then it appears to me that the approach of completely revoking all DigiNotar certificates was the right choice...

JanGen Tuesday, September 6, 2011 10:34:59 AM

Originally posted by yngve:

And in in the case of a MITM attack like this one, guess what? Getting a cert for the OCSP responder would be high on the list), but Good/revoked responses are digitally signed (error codes aren't)



Do you mean it's quite easy to fake a digitally signed `good` OCSP repsonse for MITM?

Cutting Spoonhellspork Tuesday, September 6, 2011 12:04:41 PM

Originally posted by yngve:

Cutting Spoon: If you install and configure such a Root whose whole purpose is to produce site certificates on the fly for every site you visit, that is, and authorized MITM attack, then the key for that Root had better be created locally, and not be shared with other installations used by other users. Or you have to make very sure that you disable that certificate when you disable the proxy.

Also, when you install such a certificate it becomes the proxy's job to check revocation (OCSP, CRL, blacklists); the client (Opera, FF, MSIE, etc.) cannot do so since it no longer see the real certificate.


These risks are something that I understand, and I am willing to accept. The ESS replaces core Windows network functionality, occupying the same place that a local MITM would attempt to use. Hence, tampering should completely break internet access. Each installed copy has its own master key, generated locally on the host PC. Thereby, all data sent and received through encrypted channels will be scanned for malicious payload before it can even hit the Windows network stack. I'll check it again, but Opera seems to complain a lot when you actually try to use an imported certificate authority.

Yngve Nysæter Pettersenyngve Tuesday, September 6, 2011 3:39:54 PM

Originally posted by JanGen:

Do you mean it's quite easy to fake a digitally signed `good` OCSP repsonse for MITM?



Depends entirely on how good access the attacker gets to the CA, and how separated the two operations, issuing certificates and issuing OCSP responses are. The point, though, was that a HTTPS based OCSP responder is not immune against replay attacks by an attaker that is able to get fraudulent certificates.

Yngve Nysæter Pettersenyngve Tuesday, September 6, 2011 3:42:47 PM

Originally posted by hellspork:

I'll check it again, but Opera seems to complain a lot when you actually try to use an imported certificate authority



You might want to check two things: The settings for the certificate, and what the generated site certificate presented from proxy says, and what Opera says is the problem with the certificate.

K4m1K4tz3 Tuesday, September 6, 2011 3:57:52 PM

I would suggest to kill SSL as we know it nowadays. The concept is to trust into CAs which have no interest into their own security. Because they think: "We are to big to fail".

I would like to see a new concept. A better one - more secure.

Maybe this video helps: http://www.youtube.com/watch?v=Z7Wl2FW2TcA

Yngve Nysæter Pettersenyngve Tuesday, September 6, 2011 4:48:36 PM

Originally posted by K4m1K4tz3:

I would like to see a new concept. A better one - more secure.



Which would have its own share of security problem, and people clamoring for "something more secure" because that system is a "total failure".

BTW: SSL/TLS does NOT require certificate authorities to work, it it just at present the most scalable method that allows people that do not know each other to communicate securely.

There are other alternatives available in the protocol, though they are not supported by many implementations, at present, such as :

PGP: http://www.rfc-editor.org/rfc/rfc6091.txt
Passwords: http://www.rfc-editor.org/rfc/rfc5487.txt

operaJDrissel Tuesday, September 6, 2011 5:47:37 PM

While reading the report about the DigiNotar incident I have become concerned because it appears that it is at least possible, if not likely, that one or more private root keys were compromised.

I say this because of the lack of evidence of deleted entries to match some of the rogue certs found in the wild. Such a lack could be explained by the rogue cert being generated outside of the CA's systems. Generation of a rogue cert outside of the CA’s system would not be practical unless the attacker got the actual root cert.

See section 2.3 in:

http://www.scribd.com/doc/64011372/Operation-Black-Tulip-v1-0

They tip-toe around the possibility that a root cert may have been compromised by speculating

It might be possible that these serial numbers have been temporarily generated by the CA software without being used. Alternatively, these serials were generated as a result of a bug of the software. However, we cannot rule out the possibility that these serial numbers relate to rogue certificates.

In this case they meaning of “rogue certificates” must include the disclosure of a private root CA cert, not just the garden variety rogue cert for a website.

If one or more root certificate has been compromised, whoever has access to them could forge certs with a revocation URL of their choice and run their own server at that address. Then, to the best of my knowledge, nothing in SSL or HTTPS would tell the user that something fishy was going on.

What if the bogus certs generated at COMODO are a smoke-screen for an attack that actually got one of the root certs? Is the whole game over for SSL?

Yngve Nysæter Pettersenyngve Tuesday, September 6, 2011 6:21:00 PM

Private keys for CAs are stored in Hardware based cryptographic modules.

As the proposed CABForum Basic Requirements for CAs (http://cabforum.org/Baseline_Requirements_Draft_35.pdf ) says:

The CA MUST protect its Private Key by housing it in a FIPS 140-1 level 3 (or equivalent or higher) cryptographic module



As for the Root certificate private key, it is usually not just off-line, but using it requires several people physically present to operate.

"Rouge certificates" refer to certificates that have been fraudulently issued, and for which one have no log or archive information that can be used to revoke it or know what they are targeted at.

If somebody had obtained the Private Key of a CA, the term used would be "private key compromise", and is reason for immediate revocation of the affected CA certificate. An example of a Private key compromise was the Debian Weak Keys.

JanGen Wednesday, September 7, 2011 8:03:29 AM

Is OCSP checking slowing down the loading of resources. is their an estimate by how much?

Yngve Nysæter Pettersenyngve Wednesday, September 7, 2011 8:15:55 AM

A normal OCSP check will take less than a second. There are timeouts involved just in case, though, which would normally shut down a waiting request after 10 seconds. OCSP responses are cached for their validity period, usually 4 days.

What can sometimes cause delays are really big (>300KB) CRL files (CRLs are cached for their validity time, usually a week or more), when the user have a slow connection. There are timeouts for this as well, but as long as it does not become idle and there is data streaming, the CRL is allowed 60 seconds.

In both cases slow DNS can cause the the timeout to trigger after 10 seconds.

ClashCityRockerclashcityrocker Wednesday, September 7, 2011 9:38:32 AM

How does this affect Mobile products? (Opera Mobile, Opera Mini)?

Can someone from Opera comment please...

Adrian Dimcevadimcev Wednesday, September 7, 2011 9:25:25 PM

Hello,

Yngve Nysæter Pettersen wrote:
“CRLs and OCSP responses are digitally signed by the issuer of the certificates”
-> not entirely true, the key that signs a certificate's status information is usually not the same key that signed the certificate; the (cert issuing) CA issues a cert for an OCSP signing authority.
This cert is normally not checked for revocation status as it has set a special OCSP no revocation check bit; it may not even contain any revocation links(CRL, OCSP).

Yngve Nysæter Pettersen wrote:
“validity period OCSP for a few days, CRLs for at least a week, usually several”
-> not entirely true; it may be quite normal for CAs(including major ones) to have the same validity periods for CRL and OCSP for end certs.
+
Yngve Nysæter Pettersen wrote:
“intermediate CAs issued by another CA, either an intermediate or a Root, which can be revoked in CRLs by their issuer”
-> for the “regular” interm CAs the validity of CRLs and OCSP responses can be up to an year, usually lasts at least a few months; replay heaven. The situation may differ for EV chains where they may have a shorter lifespan.

Regarding what Opera does:
According to the report issued so far by Fox-it the hackers had admin access including to the root CAs.
This may mean that they were able to issue an intermediate CA cert + an OCSP signer cert.
If that would have been the case, Opera does not have, as writing, any, possibilities to block/detect MITM attempts using DigiNotar trust.
However, the same report also indicates that so far there is no evidence of such certs.
Also, please correct me if I'm wrong, but by default Opera shows the padlock when the cert has no revoc info(OCSP, CRL links); plus works just fine to MITM the Opera update query with such such a cert.

OCSP and CRL are reactive protections, post-attacks ones; and they have limited use in cases when the CA network is so badly compromised as in DigiNotar’s case.

Given the current ambiguous situation and the fact that it seems that all sites using DigiNotar certs have been contacted:
https://docs.google.com/spreadsheet/ccc?pli=1&key=0AtLNtYDDyKsudG1lc2xmRDZRNTBkdXR1M0gzelZ3MkE&hl=en_GB#gid=21
and that all the DigiNotar CAs have been identified, it’s unclear what stops Opera to blacklist DigiNotar from the CA business as it rather exposes its users to an unnecessary theoretical threat.
Perhaps waiting as MS in Netherlands due to a Ducth gov request:
http://blogs.microsoft.nl/blogs/windows/archive/2011/09/06/software-update-vanwege-onbetrouwbare-certificaten-diginotar.aspx

Thanks,
Adrian

Yngve Nysæter Pettersenyngve Wednesday, September 7, 2011 10:00:51 PM

Originally posted by adimcev:

According to the report issued so far by Fox-it the hackers had admin access including to the root CAs.



As far as I know the Root could not be used, since it require multiple people to enable it, and is according to my information "strictly offline". The mentioned serial numbers in the document may have been generated as an attempt to get a certificate, but does not necessarily indicate that the certificates were issued.

Policies regarding revocation requirements are being discussed. However, getting too strict might break sites using certificates generated by local CAs that have not implemented a revocation scheme.

Originally posted by adimcev:

it’s unclear what stops Opera to blacklist DigiNotar from the CA business as it rather exposes its users to an unnecessary theoretical threat.



Read http://my.opera.com/rootstore/blog/2011/09/06/diginotar-first-step-disabling-the-root yet?

Cutting Spoonhellspork Wednesday, September 7, 2011 11:53:03 PM

Originally posted by yngve:

You might want to check two things: The settings for the certificate, and what the generated site certificate presented from proxy says, and what Opera says is the problem with the certificate.


http://www.wilderssecurity.com/showthread.php?t=287101
http://www.wilderssecurity.com/showthread.php?t=284908
Looks like the issue apparently is now complicated by TWO warnings. Or something.

I'll play with it anyway, there may be something I can do to prevent Opera from continually panicking on each new domain. The big thing I encountered previously was that importing the certificate root did not stop Opera from panicking on each new domain, which had to be approved and remembered manually. Further, the various cloud services built into Opera did not honor the certificate and did not display any error messages - they simply didn't work because they didn't like the unexpected CA. I guess it is good if Link is hardened to expect specific certificate behavior, but that also presents a specific target for outsiders to compromise.

It would be nice if ESET and Opera could reach an agreement to establish the proper trust chain in Opera's root store.

Yngve Nysæter Pettersenyngve Thursday, September 8, 2011 4:44:39 AM

Originally posted by hellspork:

The big thing I encountered previously was that importing the certificate root did not stop Opera from panicking on each new domain, which had to be approved and remembered manually.



Make sure that was actually a Root, and not an Intermediate CA certificate. You can tell by which tab it is stored in. Also make sure the "Warn" flag is disabled.

AFAICT the warning mentioned in the referenced thread was for a configuration where the Root had not been installed in the browser.

It might be helpful if I could see the entire XML source of the report from the Certificate display linked from the Info panel (via the TLS 1.x security link). The related Root would also be needed.

Originally posted by hellspork:

Further, the various cloud services built into Opera did not honor the certificate and did not display any error messages



At least some of those, e.g. the Rootstore update, are intentionally designed to refuse connections that does not establish a secure connection that would show "Secure", and they are also designed to discard connections that would have displayed dialogs, whatever the reason to avoid annoying the user (we know that we do not want to connect to a site that is producing warnings, because these are not supposed to trigger warnings).

JanGen Friday, September 9, 2011 9:43:01 AM

Originally posted by yngve:

as.digid:Shouldn't Opera make a difference between not encrypted and not properly encrypted

No, because the security of an improperly secured channel cannot be assured, it is better to treat it as a completely unsecure channel.



I don't agree. A self issued certificate brings protection to MITM, it's more secure then sending passwords in plain text.
Google`s way of thinking makes more sense to me:
http://www.google.com/support/chrome/bin/answer.py?answer=95617

Yngve Nysæter Pettersenyngve Friday, September 9, 2011 9:58:04 AM

Originally posted by JanGen:

A self issued certificate brings protection to MITM, it's more secure then sending passwords in plain text.



Assuming that the user actually checks that the certificate is the correct one, by phoning the system administrator (using a properly verified phone number) to verify the SHA-1 or SHA-256 fingerprint of the certificate, and does not immediately click OK. As far as I know most users just click OK, which means they are NOT protected against a MITM, because they do not (really) know who they are talking to.

The best way to avoid that hassle is to install a (properly verified) Root certificate in the browser and issue site certificates from it. In which case there will be a "secure" indication.

JanGen Friday, September 9, 2011 11:03:07 AM

Originally posted by yngve:

The best way to avoid that hassle is to install a (properly verified) Root certificate in the browser and issue site certificates from it. In which case there will be a "secure" indication.


Thx Yngve,
In this case I'm the system admin, and it's true, according to my wife, sometimes I can't be trusted.

Is there a simple howto somewhere for adding Courier generated IMAPS certificates to my Opera-browser?

Yngve Nysæter Pettersenyngve Friday, September 9, 2011 11:50:58 AM

Originally posted by JanGen:

Is there a simple howto somewhere for adding Courier generated IMAPS certificates to my Opera-browser?



Import button in the Authorities panel of the Certificate manager (require the certificate to be Selfsigned)

JanGen Friday, September 16, 2011 10:07:00 AM

Originally posted by yngve:

Import button


smile
Would be nice if we could limit (self-signed) certificates to certain domains.

Charles SchlossChas4 Monday, September 19, 2011 9:45:09 PM

Matt McCutchenmattmccutchen Friday, September 23, 2011 4:39:50 AM

@Yngve (http://my.opera.com/securitygroup/blog/show.dml/34693632#comment69203312):
> Downgraded sites are treated just the same as unencrypted HTTP pages: no indication that they are secure.

Again, you aren't protecting anyone by doing this. Under the same-origin policy, you would have to turn off the badge at the first downgraded connection until all browser state pertaining to the site is cleared, and even then, irrevocable harm may occur before the user has a chance to stop it.

> The only real alternative would be to refuse to display the page.

Yep, that's what you have to do if you want to claim better security.

Cutting Spoonhellspork Friday, September 23, 2011 6:15:31 PM

"So safe, 90% of all https domains won't work!"

There are upper boundaries to the pressure that one company may exert against the system, especially when its market share is not monopolistic.

Charles SchlossChas4 Friday, September 23, 2011 9:10:28 PM

I have not seen many tls 1.1 or 1.2

Cutting Spoonhellspork Friday, September 23, 2011 9:38:26 PM

Righto, didn't Opera turn 1.2 off again because many servers lied about their support level? (Protocol check, 1.2 supported; use 1.2->garbage output->full stop->page broken->blame Opera)

Would be nice if there were some graceful way to back off and retry with lower version TLS.

Write a comment

New comments have been disabled for this post.