----- Original Message -----
> From: "Brian Smith" <br...@briansmith.org>
> To: "mozilla's crypto code discussion list" 
> <dev-tech-crypto@lists.mozilla.org>
> 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 <hka...@redhat.com> 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
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to