Security:Renegotiation: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Removed link to https://ssltls.de/ which is no longer an RFC 5746 test server.)
 
(22 intermediate revisions by 6 users not shown)
Line 1: Line 1:
The purpose of this page is to summarize security issue CVE-2009-3555 that applies to SSL/TLS/https/etc., and to describe what actions are being taken in Mozilla and Firefox products.
The purpose of this document is to summarize security issue [http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3555 CVE-2009-3555] (a man-in-the-middle vulnerability in the TLS/SSL protocol) which applies to [http://en.wikipedia.org/wiki/Transport_Layer_Security SSL/TLS/https/etc.], to describe what action has been taken in Mozilla, and to describe what action other parties should take.


<b>The information on this page is preliminary</b>.
==Background==
 
In 2009, a flaw was discovered in the SSL/TLS protocol which is widely used in Internet applications, for example when accessing web content via an address prefixed with “https”.
 
This flaw could allow a ‘[http://en.wikipedia.org/wiki/Man-in-the-middle_attack man-in-the-middle]’ (MITM), to be able to inject data into a connection between an Internet client and an Internet server, and potentially allow an attacker to execute commands using the credentials of an authorised user, or to even collect authentication credentials of authorised users.
 
This security flaw has been labled <cite>CVE-2009-3555</cite> and is (being) described in more detail:
* [http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 CVE-2009-3555]
* [http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3555 National Vulnerability Database (CVE-2009-3555)].
 
Because the flaw is not limited to any specific software implementation, but is rather a fundamental protocol design flaw, a lot of software using SSL/TLS is vulnerable.
 
==Scope and Discussion==
 
The attack is related to a SSL/TLS protocol feature called <cite>session renegotiation</cite>. The discovered vulnerability could be used to manipulate data received by a client or by a server. For example, a server is vulnerable if it is configured to allow session renegotiation, but is not yet using updated software.


==Background==
One way to protect against the attack is to disable session renegotiation on the server. Hopefully, most Internet servers that do not yet support RFC 5746 have followed the recommendation and disabled the renegotiation feature.


In 2009 a flaw was discovered in the SSL/TLS protocol which is widely used in Internet applications, for example when accessing web pages using the "https" method.
<strong>Unfortunately, when a server is using the vulnerable SSL/TLS protocol version, it is impossible for the browser to know whether a site is protected or vulnerable (i.e whether session renegotiation is enabled or disabled on the server).</strong>


This flaw could allow a MITM (man in the middle) to inject data into a connection between an Internet client and an Internet server, and potentially allow an attacker to execute commands using the credentials of an Internet user, or to even steal authentication credentials.
Because of this uncertainty, when using the existing SSL/TLS protocol versions, Firefox does not know whether a server is vulnerable. Firefox, therefore, is unable to determine whether a connection has been attacked.


This security flaw has been labled CVE-2009-3555 and is being described in more detail at http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 and http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3555
An [http://www.rfc-editor.org/authors/rfc5746.txt enhanced SSL/TLS protocol version] <strong>has been finalized</strong> and is now published as RFC 5746.


Because the flaw is not specific to any specific software product, but rather a fundamental design flaw, a lot of software using SSL/TLS is vulnerable.
In order to protect both browser users and servers from this attack, it is mandatory that both servers and clients update to newer software versions that do support RFC 5746.


==Scope==
Obviously it took some time to finalize the new protocol standard, have programmers write the code, release the updated software versions, ship it to customers and have them upgrade their servers. During that period of time, the only possible protection was to disable the <cite>session renegotiation</cite> feature in servers completely.


In order to allow the attack to work, a SSL/TLS protocol feature must be enabled which is called session renegotiation.
Unfortunately, many months after the new protocol has been standardized in February 2010, and many software vendors have released upgraded packages that do support RFC 5746, we see that many web sites are still running the older software versions, and this includes many major E-Commerce sites.


One way to protect against the attack is to disable this feature. Hopefully most Internet servers have followed the recommendation and turned the feature off.
Hopefully all of them have really disabled the <cite>session renegotiation</cite> feature on their servers. Unfortunately, it's impossible for anyone else to verify.


<b>Unfortunately, using the old SSL/TLS protocol version, it is not possible to know whether a site is protected or vulnerable.</b>
Imagine an administrator at a major E-Commerce site, still running old software versions, installed some older version of a configuration file and at the same time accidentally re-enabled the <cite>session renegotiation</cite>. There wouldn't be any noticeable consequences. They site would still work as before, but suddenly the server and user's information become vulnerable again.


Because of this, when using the old SSL/TLS protocol versions, Firefox does not know whether it talks to a vulnerable server. Firefox does not know whether a connection has been attacked.
Because of this uncertainty and risk associated with running old SSL/TLS software, it is strongly recommended that all servers and clients are upgraded to software that supports RFC 5746 as soon as possible.


An enhanced SSL/TLS protocol version is currently being finalized and is soon to be published as an RFC, currently located at: http://www.rfc-editor.org/authors/rfc5746.txt.
While most modern browser software has been upgraded to support RFC 5746, and upgrading the browsers is a mandatory action, <strong>upgrading the browsers is not sufficient</strong>! A verified protection against the attack requires both browsers and servers to upgrade.


As soon as both parties of an SSL/TLS session (e.g. Firefox and an Internet Server) are using the new protocol version they will be protected against the attack, and Firefox can be sure the connection is protected.
As soon as a critical mass of servers has been upgraded to support RFC 5746, the browsers can start to assist users in discovering questionable servers and potentially vulnerable servers more easily.


==Action==
==Action==


In order to ascertain that SSL/TLS sessions are protected, most Internet installations using this protocol must be upgraded to support the new protocol (currently draft-rescorla-tls-renegotiation).
In order to ascertain that SSL/TLS sessions are protected, Internet deployments using SSL/TLS must be upgraded to support the new protocol enhancement described in RFC 5746.


Firefox has started to support this new protocol version in its experimental version since February 8th, 2010. Mozilla will include support in stable product versions as soon as possible.
Firefox has started to support this new protocol version in its experimental version since February 8th, 2010. By now the stable software versions made available by Mozilla support it, too.


Unfortunately, because of the complexity of the flaw and the need to get most of the world to upgrade their servers, it's a tough decision how Firefox should act.
Unfortunately, because of the complexity of the flaw and the need to get most of the world to upgrade their servers, it's a tough decision how Firefox should act.


As of today (2010-02-08) it would be useless to show a warning indicator to Firefox users in the chrome, because we'd show warnings for 99.9% of the web. It would cause confusion for users and teach them to ignore the warning.
As of February 2010, it would be useless to show a warning indicator to Firefox users in the chrome, because users would be shown warnings for 99·9% of SSL/TLS sites. It would cause confusion among users, and would teach them to ignore this warning, and possibly other similar-looking warnings.
 
We'd like to wait until a significant percentage of the web has been upgraded to the new protocol version, before we start to show warnings for those servers that still haven't upgraded.


We'd like to wait until a significant percentage of the web has been upgraded to the new protocol, before we start to show a warning for those (few) servers that still haven't upgraded.
(<strong>Update</strong>: Unfortunately, as of December 2010, we feel this milestone has still not been reached. Too many servers still haven't upgraded.)


However, while we wait for most of the web to upgrade, software testers need to know whether a site is vulnerable or not, and evangelists want to push server operators to upgrade their systems.
However, while we wait for most of the web to upgrade, software testers need to know whether a site is vulnerable or not, and evangelists want to push server operators to upgrade their systems.


Therefore Firefox (and other Mozilla products) log information about "potentially vulnerable" servers to the Error console.
Therefore Firefox (and other Mozilla products) log information about “potentially vulnerable” servers to the Error console using the message "<site> : server does not support RFC 5746, see CVE-2009-3555".
 
In the beginning you will receive warnings for many servers. The idea to log this information to the console is experimental, we may disable it if there are too many complaints or if it's causing too much distraction.


However, it would be preferable to keep the information, as the world really needs to be made aware and be reminded to upgrade.
You still get this warning for many servers. Please use this information to discover which sites have not yet been upgraded, and who can not be verified by the client to be immune against the attack.
 
A test server that supports the new protocol can be accessed at https://ssltls.de/


==Control==
==Control==
Line 55: Line 67:
When starting a handshake for an SSL 3 or a TLS 1 connection, Mozilla will advertise its support for the new renegotiation extension, so the server can know about it.
When starting a handshake for an SSL 3 or a TLS 1 connection, Mozilla will advertise its support for the new renegotiation extension, so the server can know about it.


Should Mozilla detect that a server asks the Mozilla client to perform a renegotiation on an existing connection, Mozilla may reject or accept this reject, depending on the server software and depending on the configuration of the Mozilla client (e.g. Firefox).
Should Mozilla detect that a server asks the Mozilla client to perform a renegotiation on an existing connection, Mozilla may reject or accept this request, depending on the server software and depending on the configuration of the Mozilla client (e.g. Firefox).


<b>In order to understand the following preferences to control Mozilla's behaviour, it's important to understand and carefully distinguish the terms "negotiation" and "renegotiation".</b>
<strong>In order to understand the following preferences to control Mozilla's behaviour, it's important to understand and carefully distinguish the terms “negotiation” and “renegotiation”.</strong>


Negotiation refers to the initial handshake between client and server.
Negotiation refers to the initial handshake between client and server.
Line 65: Line 77:
In order to clarify why this distinction is relevant, let's repeat one property of the attack scenarios using the old protocol versions:
In order to clarify why this distinction is relevant, let's repeat one property of the attack scenarios using the old protocol versions:


The attack requires a renegotiation. However, a renegotiation may happen between a MITM and a server, while the Mozilla client is under the impression that the connection it is still at the stage of the initial negotiation.
The attack requires a renegotiation. However, a renegotiation may happen between a MITM and a server, while the Mozilla client is under the impression that the connection is still at the stage of the initial negotiation.


Only the use of the new protocol versions on both sides of a connection can clarify this and ascertain to be safe against the attack.
Only the use of the new protocol versions on both sides of a connection can clarify this and ascertain to be safe against the attack.
Line 72: Line 84:


* Mozilla will start the initial negotiation
* Mozilla will start the initial negotiation
* it will advertise support for the new protocol
* it will advertise support for the new protocol version
* it will allow the connection regardless of server protocol support
* it will allow the connection regardless of server protocol support
* should the server (or a MITM) request renegotiation, Mozilla will terminate the connection with an error message
* should the server (or a MITM) request renegotiation, Mozilla will terminate the connection with an error message
Line 82: Line 94:
In order to give such environments a way to keep using Firefox (et.al.) to connect to their vulnerable server infrastructure, the following preferences are available:
In order to give such environments a way to keep using Firefox (et.al.) to connect to their vulnerable server infrastructure, the following preferences are available:


===security.ssl.renego_unrestricted_hosts===
===<code>security.ssl.renego_unrestricted_hosts</code>===


Empty by default.
Empty by default.
Line 88: Line 100:
This string preference is a list oft host names, separated by comma (,) where renegotiation may be performed, even when using the old vulnerable protocol. No wildcards are supported.
This string preference is a list oft host names, separated by comma (,) where renegotiation may be performed, even when using the old vulnerable protocol. No wildcards are supported.


Example: www.dns1.com,mail.dns2.com
Example: <code>www.dns1.com,mail.dns2.com</code>


===security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref===
This preference was removed in Firefox 38. See [https://bugzilla.mozilla.org/show_bug.cgi?id=1123020 bug 1123020].
 
===<code>security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref</code>===


Current default value: DEPENDS, see end of section
Current default value: DEPENDS, see end of section
Line 96: Line 110:
It's not desirable to set this to true, as it completely disables the new protection mechanisms. However, in controlled environments where many old new server must be accessed, this may be used.
It's not desirable to set this to true, as it completely disables the new protection mechanisms. However, in controlled environments where many old new server must be accessed, this may be used.


It's highly recommended to leave this at the default value "false", and instead populate preference security.ssl.renego_unrestricted_hosts with a list of hosts that require the exception.
It's highly recommended to leave this at the default value “false”, and instead populate preference security.ssl.renego_unrestricted_hosts with a list of hosts that require the exception.


The preference carries "temporarily_available_pref" in its name, as it's supposed to go away later.
The preference carries “<code>temporarily_available_pref</code>” in its name, as it's supposed to go away later.


Regarding default values:
Regarding default values:
* The development version of Firefox (3.7-pre) uses "false"
* current development versions (including Firefox 4 beta) use “false”.
* The stable releases 3.5.9 and 3.6.2 use "true"
* The stable releases 3.5.9 and 3.6.2 use “true”.
* As soon as a sufficient amount of servers had a chance to upgrade, the default in stable releases will be switched to "false", too
* It's not yet decided which default value will be used for the stable Firefox 4 release.
* This preference was removed in Firefox 38. See [https://bugzilla.mozilla.org/show_bug.cgi?id=1123020 bug 1123020].


===security.ssl.treat_unsafe_negotiation_as_broken===
===<code>security.ssl.treat_unsafe_negotiation_as_broken</code>===


Current default value: false
Current default value: false


This preference can be used to achieve visual feedback when connecting to a server that still uses old software, not yet supporting the protocols.
This preference can be used to achieve visual feedback when connecting to a server that still utilises the old protocol version, not yet supporting the new, enhanced protocol version(s).


When set to true, when connecting to such a server, Firefox will warn about "broken security" by displaying a red/broken padlock in its status bar.
When set to true, when connecting to such a server, Firefox will warn about “broken security” by displaying a red/broken padlock in its status bar.


It shall be noted that this indicator isn't of much help with regards to state of the shown page. When you see this indicator, it's already "too late", as a connection to that server has already taken place and an attack may have already taken place.
It should be noted that this indicator isn't of much help with regards to state of the connection used to retrieve the content. When you see the indicator, it's already “too late”, as a connection to that server has already been established and an attack may have already occurred.


However, it's still helpful to have this indicator, as it raises awareness of servers that still need to be upgraded. "Evangelists" (for a better web) should ask server operators to perform a server software upgrade in order to protect users and their data.
However, it's still helpful to have this indicator, as it raises awareness of servers that still need to be upgraded. “Evangelists” (for a better web) should ask server operators to perform a server software upgrade in order to protect users and their data.


If you read this page and understand this issue, you are encouraged to switch this pref to true and help with the process to get the web upgraded (by discovering old servers and asking operators to upgrade).
If you read this page and understand this issue, you are encouraged to switch this pref to true and help with the process to upgrade Web servers (by discovering servers using questionable versions, and asking operators to upgrade).


Note: No visual warnings are yet available for other Mozilla software. However, Mozilla clients will produce warnings on the error console for sites that are potentially vulnerable.
Note: No visual warnings are yet available for other Mozilla software. However, Mozilla clients will produce warnings on the error console for sites that are potentially vulnerable.


===security.ssl.require_safe_negotiation===
===<code>security.ssl.require_safe_negotiation</code>===


Current default value: false
Current default value: false
Line 129: Line 144:
If set to true, a Mozilla client will reject all connection attempts to servers that are still using the old SSL/TLS protocol and which might be vulnerable to the attack.
If set to true, a Mozilla client will reject all connection attempts to servers that are still using the old SSL/TLS protocol and which might be vulnerable to the attack.


Setting this preference to "true" is the only way to guarantee full protection against the attack. Unfortunately, as of time of writing, this would break nearly all secure sites on the web.
Setting this preference to “true” is the only way to guarantee full protection against the attack. Unfortunately, as of time of (initial) writing, this would break nearly all secure sites on the web. (Update: As of December 2010, this still applies for a majority of web sites.)
 
Eventually, if enough sites have been upgraded to the new protocol versions, this preference will be set to “true” by default.
 
==Further ideas==


Eventually, if enough sites have been upgraded to the new protocol versions, this preference will be set to "true" by default.
''<code>security.ssl.treat_unsafe_renegotiation_as_broken</code>'' and ''<code>security.ssl.treat_unsafe_renegotiation_as_broken_hosts</code>'' as per [https://bugzilla.mozilla.org/show_bug.cgi?id=554594#c2 Bug 554594 – Alerts on CVE-2009-3555 TLS Renegotiation in Error Log — Comment #2]

Latest revision as of 09:06, 6 January 2020

The purpose of this document is to summarize security issue CVE-2009-3555 (a man-in-the-middle vulnerability in the TLS/SSL protocol) which applies to SSL/TLS/https/etc., to describe what action has been taken in Mozilla, and to describe what action other parties should take.

Background

In 2009, a flaw was discovered in the SSL/TLS protocol which is widely used in Internet applications, for example when accessing web content via an address prefixed with “https”.

This flaw could allow a ‘man-in-the-middle’ (MITM), to be able to inject data into a connection between an Internet client and an Internet server, and potentially allow an attacker to execute commands using the credentials of an authorised user, or to even collect authentication credentials of authorised users.

This security flaw has been labled CVE-2009-3555 and is (being) described in more detail:

Because the flaw is not limited to any specific software implementation, but is rather a fundamental protocol design flaw, a lot of software using SSL/TLS is vulnerable.

Scope and Discussion

The attack is related to a SSL/TLS protocol feature called session renegotiation. The discovered vulnerability could be used to manipulate data received by a client or by a server. For example, a server is vulnerable if it is configured to allow session renegotiation, but is not yet using updated software.

One way to protect against the attack is to disable session renegotiation on the server. Hopefully, most Internet servers that do not yet support RFC 5746 have followed the recommendation and disabled the renegotiation feature.

Unfortunately, when a server is using the vulnerable SSL/TLS protocol version, it is impossible for the browser to know whether a site is protected or vulnerable (i.e whether session renegotiation is enabled or disabled on the server).

Because of this uncertainty, when using the existing SSL/TLS protocol versions, Firefox does not know whether a server is vulnerable. Firefox, therefore, is unable to determine whether a connection has been attacked.

An enhanced SSL/TLS protocol version has been finalized and is now published as RFC 5746.

In order to protect both browser users and servers from this attack, it is mandatory that both servers and clients update to newer software versions that do support RFC 5746.

Obviously it took some time to finalize the new protocol standard, have programmers write the code, release the updated software versions, ship it to customers and have them upgrade their servers. During that period of time, the only possible protection was to disable the session renegotiation feature in servers completely.

Unfortunately, many months after the new protocol has been standardized in February 2010, and many software vendors have released upgraded packages that do support RFC 5746, we see that many web sites are still running the older software versions, and this includes many major E-Commerce sites.

Hopefully all of them have really disabled the session renegotiation feature on their servers. Unfortunately, it's impossible for anyone else to verify.

Imagine an administrator at a major E-Commerce site, still running old software versions, installed some older version of a configuration file and at the same time accidentally re-enabled the session renegotiation. There wouldn't be any noticeable consequences. They site would still work as before, but suddenly the server and user's information become vulnerable again.

Because of this uncertainty and risk associated with running old SSL/TLS software, it is strongly recommended that all servers and clients are upgraded to software that supports RFC 5746 as soon as possible.

While most modern browser software has been upgraded to support RFC 5746, and upgrading the browsers is a mandatory action, upgrading the browsers is not sufficient! A verified protection against the attack requires both browsers and servers to upgrade.

As soon as a critical mass of servers has been upgraded to support RFC 5746, the browsers can start to assist users in discovering questionable servers and potentially vulnerable servers more easily.

Action

In order to ascertain that SSL/TLS sessions are protected, Internet deployments using SSL/TLS must be upgraded to support the new protocol enhancement described in RFC 5746.

Firefox has started to support this new protocol version in its experimental version since February 8th, 2010. By now the stable software versions made available by Mozilla support it, too.

Unfortunately, because of the complexity of the flaw and the need to get most of the world to upgrade their servers, it's a tough decision how Firefox should act.

As of February 2010, it would be useless to show a warning indicator to Firefox users in the chrome, because users would be shown warnings for 99·9% of SSL/TLS sites. It would cause confusion among users, and would teach them to ignore this warning, and possibly other similar-looking warnings.

We'd like to wait until a significant percentage of the web has been upgraded to the new protocol version, before we start to show warnings for those servers that still haven't upgraded.

(Update: Unfortunately, as of December 2010, we feel this milestone has still not been reached. Too many servers still haven't upgraded.)

However, while we wait for most of the web to upgrade, software testers need to know whether a site is vulnerable or not, and evangelists want to push server operators to upgrade their systems.

Therefore Firefox (and other Mozilla products) log information about “potentially vulnerable” servers to the Error console using the message "<site> : server does not support RFC 5746, see CVE-2009-3555".

You still get this warning for many servers. Please use this information to discover which sites have not yet been upgraded, and who can not be verified by the client to be immune against the attack.

Control

This section describes the behaviour of Firefox (and other Mozilla software) when talking to Internet servers, which may or may not (yet) support the new protocol enhancement, and the preferences users can set to control the behaviour of the Mozilla client software.

When starting a handshake for an SSL 3 or a TLS 1 connection, Mozilla will advertise its support for the new renegotiation extension, so the server can know about it.

Should Mozilla detect that a server asks the Mozilla client to perform a renegotiation on an existing connection, Mozilla may reject or accept this request, depending on the server software and depending on the configuration of the Mozilla client (e.g. Firefox).

In order to understand the following preferences to control Mozilla's behaviour, it's important to understand and carefully distinguish the terms “negotiation” and “renegotiation”.

Negotiation refers to the initial handshake between client and server.

Renegotiation refers to an attempt to repeat the negotiation on an existing connection.

In order to clarify why this distinction is relevant, let's repeat one property of the attack scenarios using the old protocol versions:

The attack requires a renegotiation. However, a renegotiation may happen between a MITM and a server, while the Mozilla client is under the impression that the connection is still at the stage of the initial negotiation.

Only the use of the new protocol versions on both sides of a connection can clarify this and ascertain to be safe against the attack.

Now let's describe the new default behaviour that was introduced in experimental mozilla-central nightly versions on 2010-02-08:

  • Mozilla will start the initial negotiation
  • it will advertise support for the new protocol version
  • it will allow the connection regardless of server protocol support
  • should the server (or a MITM) request renegotiation, Mozilla will terminate the connection with an error message

The above defaults may break some client/server environments where a Server is still using old software and requires renegotiation. This is often being used when a server asks a client to present a certificate for authentication or when a different level of encryption strength is being enforced for certain resources.

(When the security flaw became public, it has been recommend to strictly separate all content and servers into separate servers, each using homogeneous authentication and security preferences, but not all deployments may have followed this security recommendation.)

In order to give such environments a way to keep using Firefox (et.al.) to connect to their vulnerable server infrastructure, the following preferences are available:

security.ssl.renego_unrestricted_hosts

Empty by default.

This string preference is a list oft host names, separated by comma (,) where renegotiation may be performed, even when using the old vulnerable protocol. No wildcards are supported.

Example: www.dns1.com,mail.dns2.com

This preference was removed in Firefox 38. See bug 1123020.

security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref

Current default value: DEPENDS, see end of section

It's not desirable to set this to true, as it completely disables the new protection mechanisms. However, in controlled environments where many old new server must be accessed, this may be used.

It's highly recommended to leave this at the default value “false”, and instead populate preference security.ssl.renego_unrestricted_hosts with a list of hosts that require the exception.

The preference carries “temporarily_available_pref” in its name, as it's supposed to go away later.

Regarding default values:

  • current development versions (including Firefox 4 beta) use “false”.
  • The stable releases 3.5.9 and 3.6.2 use “true”.
  • It's not yet decided which default value will be used for the stable Firefox 4 release.
  • This preference was removed in Firefox 38. See bug 1123020.

security.ssl.treat_unsafe_negotiation_as_broken

Current default value: false

This preference can be used to achieve visual feedback when connecting to a server that still utilises the old protocol version, not yet supporting the new, enhanced protocol version(s).

When set to true, when connecting to such a server, Firefox will warn about “broken security” by displaying a red/broken padlock in its status bar.

It should be noted that this indicator isn't of much help with regards to state of the connection used to retrieve the content. When you see the indicator, it's already “too late”, as a connection to that server has already been established and an attack may have already occurred.

However, it's still helpful to have this indicator, as it raises awareness of servers that still need to be upgraded. “Evangelists” (for a better web) should ask server operators to perform a server software upgrade in order to protect users and their data.

If you read this page and understand this issue, you are encouraged to switch this pref to true and help with the process to upgrade Web servers (by discovering servers using questionable versions, and asking operators to upgrade).

Note: No visual warnings are yet available for other Mozilla software. However, Mozilla clients will produce warnings on the error console for sites that are potentially vulnerable.

security.ssl.require_safe_negotiation

Current default value: false

This pref controls the behaviour during the initial negotiation between client and server.

If set to true, a Mozilla client will reject all connection attempts to servers that are still using the old SSL/TLS protocol and which might be vulnerable to the attack.

Setting this preference to “true” is the only way to guarantee full protection against the attack. Unfortunately, as of time of (initial) writing, this would break nearly all secure sites on the web. (Update: As of December 2010, this still applies for a majority of web sites.)

Eventually, if enough sites have been upgraded to the new protocol versions, this preference will be set to “true” by default.

Further ideas

security.ssl.treat_unsafe_renegotiation_as_broken and security.ssl.treat_unsafe_renegotiation_as_broken_hosts as per Bug 554594 – Alerts on CVE-2009-3555 TLS Renegotiation in Error Log — Comment #2