----- Original Message -----
> From: "Brian Smith" <[email protected]>
> To: "mozilla's crypto code discussion list"
> <[email protected]>
> Sent: Monday, 30 June, 2014 12:23:41 AM
> Subject: Re: Road to RC4-free web (the case for YouTube without RC4)
>
> On Sun, Jun 29, 2014 at 11:18 AM, Hubert Kario <[email protected]> wrote:
>
> > Because of that, disabling RC4 should be possible for many users. The big
> > exception for that was YouTube video servers[4] which only recently gained
> > support for TLS_RSA_WITH_AES_128_GCM_SHA256.
> >
>
> Hi,
>
> I read your blog post at
> http://securitypitfalls.wordpress.com/2014/06/29/is-rc4-less, which is
> interesting. The blog post compares how enabling/disabling various cipher
> suites affects the percentage of sites that end up negotiating RC4.
> However, I noticed that you didn't measure how enabling/disabling various
> cipher suites affects how often Firefox uses ECDHE, DHE with a strong
> (>=1280 bit, at least), DHE with weak, or RSA key exchange.
If the question is, "does removing RC4 with adding extra ciphers gives up
PFS?", the answer is likely* yes, by 2%. But adding or removing ciphers
has small impact on PFS compared to the 20% elephant in the room.
* - those are simulated handshakes using OpenSSL
cipher order, so while AES to RC4 relation is
maintained, the relation between AES128 and
AES256 is not as well as relation between
DHE-AES128 and AES256, so in reality connection
using Firefox would likely end up with AES128
cipher while the below order shows AES256 ciphers.
Next month's data will include information
if the server appears to use server cipher
order or not so the simulations will match
reality more closely.
If we use following cipher order:
'ECDHE-ECDSA-AES128-GCM-SHA256',
'ECDHE-RSA-AES128-GCM-SHA256',
'ECDHE-ECDSA-AES256-SHA',
'ECDHE-ECDSA-AES128-SHA',
'ECDHE-RSA-AES128-SHA',
'ECDHE-RSA-AES256-SHA',
'ECDHE-RSA-DES-CBC3-SHA',
'ECDHE-ECDSA-RC4-SHA',
'ECDHE-RSA-RC4-SHA',
'DHE-RSA-AES128-SHA',
'DHE-DSS-AES128-SHA',
'DHE-RSA-CAMELLIA128-SHA',
'DHE-RSA-AES256-SHA',
'DHE-DSS-AES256-SHA',
'DHE-RSA-CAMELLIA256-SHA',
'EDH-RSA-DES-CBC3-SHA',
'AES128-SHA',
'CAMELLIA128-SHA',
'AES256-SHA',
'CAMELLIA256-SHA',
'DES-CBC3-SHA',
'RC4-SHA',
'RC4-MD5'
Then simulated handshakes end with:
Selected ciphers Count Percent
-----------------------------+---------+------
AES128-SHA 23354 6.6545
AES256-SHA 48262 13.7519
CAMELLIA128-SHA 2 0.0006
CAMELLIA256-SHA 188 0.0536
DES-CBC3-SHA 996 0.2838
DHE-RSA-AES128-SHA 704 0.2006
DHE-RSA-AES256-SHA 105819 30.1522
DHE-RSA-CAMELLIA256-SHA 336 0.0957
ECDHE-ECDSA-AES128-GCM-SHA256 9192 2.6192
ECDHE-ECDSA-AES128-SHA 12 0.0034
ECDHE-ECDSA-RC4-SHA 1 0.0003
ECDHE-RSA-AES128-GCM-SHA256 40876 11.6473
ECDHE-RSA-AES128-SHA 172 0.049
ECDHE-RSA-AES256-SHA 45331 12.9167
ECDHE-RSA-DES-CBC3-SHA 252 0.0718
ECDHE-RSA-RC4-SHA 27726 7.9003
EDH-RSA-DES-CBC3-SHA 652 0.1858
RC4-MD5 9344 2.6625
RC4-SHA 37699 10.742
x:DHE 107511 30.6344
x:ECDHE 123562 35.208
x:kRSA 119845 34.1488
Removing
'ECDHE-ECDSA-RC4-SHA',
'ECDHE-RSA-RC4-SHA',
Doesn't change the compatibility:
x:FF 29 incompatible 39 0.0111
causes the servers to select following ciphers:
Selected ciphers Count Percent
-----------------------------+---------+------
AES128-SHA 23354 6.6545
AES256-SHA 48262 13.7519
CAMELLIA128-SHA 2 0.0006
CAMELLIA256-SHA 188 0.0536
DES-CBC3-SHA 996 0.2838
DHE-RSA-AES128-SHA 704 0.2006
DHE-RSA-AES256-SHA 105821 30.1528
DHE-RSA-CAMELLIA256-SHA 336 0.0957
ECDHE-ECDSA-AES128-GCM-SHA256 9192 2.6192
ECDHE-ECDSA-AES128-SHA 13 0.0037
ECDHE-RSA-AES128-GCM-SHA256 40878 11.6478
ECDHE-RSA-AES128-SHA 200 0.057
ECDHE-RSA-AES256-SHA 46972 13.3843
ECDHE-RSA-DES-CBC3-SHA 252 0.0718
EDH-RSA-DES-CBC3-SHA 652 0.1858
RC4-MD5 9344 2.6625
RC4-SHA 63744 18.1633
x:DHE 107513 30.6349
x:ECDHE 97507 27.7838
x:kRSA 145890 41.5701
So about 0.5% servers did select better cipher,
mostly ECDHE-RSA-AES256-SHA*. But at the "cost"
of selecting non PFS suites (by 7.4%)
leaving RC4 in place but adding ECDHE-RSA-AES128-SHA256
causes the negotiated ciphers to look like this:
Selected ciphers Count Percent
-----------------------------+---------+------
AES128-SHA 23347 6.6525
AES256-SHA 48261 13.7516
CAMELLIA128-SHA 2 0.0006
CAMELLIA256-SHA 188 0.0536
DES-CBC3-SHA 996 0.2838
DHE-RSA-AES128-SHA 703 0.2003
DHE-RSA-AES256-SHA 105815 30.1511
DHE-RSA-CAMELLIA256-SHA 336 0.0957
ECDHE-ECDSA-AES128-GCM-SHA256 9192 2.6192
ECDHE-ECDSA-AES128-SHA 12 0.0034
ECDHE-ECDSA-RC4-SHA 1 0.0003
ECDHE-RSA-AES128-GCM-SHA256 40839 11.6367
ECDHE-RSA-AES128-SHA 117 0.0333
ECDHE-RSA-AES128-SHA256 7456 2.1245
ECDHE-RSA-AES256-SHA 44696 12.7358
ECDHE-RSA-DES-CBC3-SHA 252 0.0718
ECDHE-RSA-RC4-SHA 21407 6.0997
EDH-RSA-DES-CBC3-SHA 652 0.1858
RC4-MD5 9344 2.6625
RC4-SHA 37302 10.6289
x:DHE 107506 30.6329
x:ECDHE 123972 35.3248
x:kRSA 119440 34.0334
That not only makes the servers select more secure
cipher, it also decreases the number of non-PFS
connections by small amount.
If we add the rest of SHA256 ciphers we get the
following listing:
Selected ciphers Count Percent
-----------------------------+---------+------
AES128-GCM-SHA256 1540 0.4388
AES128-SHA 18898 5.3848
AES128-SHA256 4436 1.264
AES256-SHA 42657 12.1548
AES256-SHA256 10724 3.0557
CAMELLIA128-SHA 1 0.0003
CAMELLIA256-SHA 173 0.0493
DES-CBC3-SHA 988 0.2815
DHE-RSA-AES128-GCM-SHA256 1482 0.4223
DHE-RSA-AES128-SHA 314 0.0895
DHE-RSA-AES128-SHA256 3 0.0009
DHE-RSA-AES256-SHA 75470 21.5045
DHE-RSA-AES256-SHA256 30620 8.7249
DHE-RSA-CAMELLIA256-SHA 295 0.0841
ECDHE-ECDSA-AES128-GCM-SHA256 9192 2.6192
ECDHE-ECDSA-AES128-SHA 12 0.0034
ECDHE-ECDSA-RC4-SHA 1 0.0003
ECDHE-RSA-AES128-GCM-SHA256 36095 10.285
ECDHE-RSA-AES128-SHA 117 0.0333
ECDHE-RSA-AES128-SHA256 6795 1.9362
ECDHE-RSA-AES256-SHA 44608 12.7107
ECDHE-RSA-DES-CBC3-SHA 252 0.0718
ECDHE-RSA-RC4-SHA 21109 6.0148
EDH-RSA-DES-CBC3-SHA 651 0.1855
RC4-MD5 8890 2.5331
RC4-SHA 35597 10.1431
x:DHE 108835 31.0116
x:ECDHE 118181 33.6747
x:kRSA 123904 35.3054
So while we don't gain on PFS front, we gain on RC4.
Disabling ECDHE+RC4 with SHA256 enabled paints
following picture:
Selected ciphers Count Percent
-----------------------------+---------+------
AES128-GCM-SHA256 1540 0.4388
AES128-SHA 18898 5.3848
AES128-SHA256 4436 1.264
AES256-SHA 42657 12.1548
AES256-SHA256 10724 3.0557
CAMELLIA128-SHA 1 0.0003
CAMELLIA256-SHA 173 0.0493
DES-CBC3-SHA 988 0.2815
DHE-RSA-AES128-GCM-SHA256 1482 0.4223
DHE-RSA-AES128-SHA 314 0.0895
DHE-RSA-AES128-SHA256 3 0.0009
DHE-RSA-AES256-SHA 75472 21.5051
DHE-RSA-AES256-SHA256 30620 8.7249
DHE-RSA-CAMELLIA256-SHA 295 0.0841
ECDHE-ECDSA-AES128-GCM-SHA256 9192 2.6192
ECDHE-ECDSA-AES128-SHA 13 0.0037
ECDHE-RSA-AES128-GCM-SHA256 36097 10.2855
ECDHE-RSA-AES128-SHA 140 0.0399
ECDHE-RSA-AES128-SHA256 6797 1.9367
ECDHE-RSA-AES256-SHA 46247 13.1777
ECDHE-RSA-DES-CBC3-SHA 252 0.0718
EDH-RSA-DES-CBC3-SHA 651 0.1855
RC4-MD5 8890 2.5331
RC4-SHA 55031 15.6806
x:DHE 108837 31.0122
x:ECDHE 98738 28.1346
x:kRSA 143338 40.843
Disabling RC4 completely with SHA256 enabled gives
following statistics:
Selected ciphers Count Percent
-----------------------------+---------+------
AES128-GCM-SHA256 1549 0.4414
AES128-SHA 37431 10.6657
AES128-SHA256 6244 1.7792
AES256-SHA 47065 13.4108
AES256-SHA256 12504 3.5629
CAMELLIA128-SHA 2 0.0006
CAMELLIA256-SHA 14917 4.2505
DES-CBC3-SHA 8558 2.4385
DHE-RSA-AES128-GCM-SHA256 1482 0.4223
DHE-RSA-AES128-SHA 329 0.0937
DHE-RSA-AES128-SHA256 3 0.0009
DHE-RSA-AES256-SHA 79680 22.7042
DHE-RSA-AES256-SHA256 31581 8.9987
DHE-RSA-CAMELLIA256-SHA 726 0.2069
ECDHE-ECDSA-AES128-GCM-SHA256 9192 2.6192
ECDHE-ECDSA-AES128-SHA 13 0.0037
ECDHE-RSA-AES128-GCM-SHA256 36099 10.2861
ECDHE-RSA-AES128-SHA 219 0.0624
ECDHE-RSA-AES128-SHA256 6811 1.9407
ECDHE-RSA-AES256-SHA 51919 14.7939
ECDHE-RSA-DES-CBC3-SHA 312 0.0889
EDH-RSA-DES-CBC3-SHA 668 0.1903
x:DHE 114469 32.617
x:ECDHE 104565 29.7949
x:kRSA 128270 36.5495
So we give up about 2% of PFS and gain 2% of DHE
for those 20% of RC4.
--
Regards,
Hubert Kario
--
dev-tech-crypto mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-crypto