]> git.pld-linux.org Git - packages/perl-IO-Socket-SSL.git/blob - IO-Socket-SSL-2.068-use-system-default-cipher-list.patch
800ab647181660b79030c30d5c5a05d0008d5c33
[packages/perl-IO-Socket-SSL.git] / IO-Socket-SSL-2.068-use-system-default-cipher-list.patch
1 --- lib/IO/Socket/SSL.pm
2 +++ lib/IO/Socket/SSL.pm
3 @@ -202,77 +202,17 @@ my %DEFAULT_SSL_ARGS = (
4      SSL_npn_protocols => undef,    # meaning depends whether on server or client side
5      SSL_alpn_protocols => undef,   # list of protocols we'll accept/send, for example ['http/1.1','spdy/3.1']
6  
7 -    # https://wiki.mozilla.org/Security/Server_Side_TLS, 2019/03/05
8 -    # "Old backward compatibility" for best compatibility
9 -    # .. "Most ciphers that are not clearly broken and dangerous to use are supported"
10 -    # slightly reordered to prefer AES since it is cheaper when hardware accelerated
11 -    SSL_cipher_list => 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP',
12 +    # Use system-wide default cipher list to support use of system-wide
13 +    # crypto policy (#1076390, #1127577, CPAN RT#97816)
14 +    # https://fedoraproject.org/wiki/Changes/CryptoPolicy
15 +    SSL_cipher_list => 'PROFILE=SYSTEM',
16  );
17  
18  my %DEFAULT_SSL_CLIENT_ARGS = (
19      %DEFAULT_SSL_ARGS,
20      SSL_verify_mode => SSL_VERIFY_PEER,
21 -
22      SSL_ca_file => undef,
23      SSL_ca_path => undef,
24 -
25 -    # older versions of F5 BIG-IP hang when getting SSL client hello >255 bytes
26 -    # http://support.f5.com/kb/en-us/solutions/public/13000/000/sol13037.html
27 -    # http://guest:guest@rt.openssl.org/Ticket/Display.html?id=2771
28 -    # Ubuntu worked around this by disabling TLSv1_2 on the client side for
29 -    # a while. Later a padding extension was added to OpenSSL to work around
30 -    # broken F5 but then IronPort croaked because it did not understand this
31 -    # extension so it was disabled again :(
32 -    # Firefox, Chrome and IE11 use TLSv1_2 but use only a few ciphers, so
33 -    # that packet stays small enough. We try the same here.
34 -
35 -    SSL_cipher_list => join(" ",
36 -
37 -       # SSLabs report for Chrome 48/OSX.
38 -       # This also includes the fewer ciphers Firefox uses.
39 -       'ECDHE-ECDSA-AES128-GCM-SHA256',
40 -       'ECDHE-RSA-AES128-GCM-SHA256',
41 -       'DHE-RSA-AES128-GCM-SHA256',
42 -       'ECDHE-ECDSA-CHACHA20-POLY1305',
43 -       'ECDHE-RSA-CHACHA20-POLY1305',
44 -       'ECDHE-ECDSA-AES256-SHA',
45 -       'ECDHE-RSA-AES256-SHA',
46 -       'DHE-RSA-AES256-SHA',
47 -       'ECDHE-ECDSA-AES128-SHA',
48 -       'ECDHE-RSA-AES128-SHA',
49 -       'DHE-RSA-AES128-SHA',
50 -       'AES128-GCM-SHA256',
51 -       'AES256-SHA',
52 -       'AES128-SHA',
53 -       'DES-CBC3-SHA',
54 -
55 -       # IE11/Edge has some more ciphers, notably SHA384 and DSS
56 -       # we don't offer the *-AES128-SHA256 and *-AES256-SHA384 non-GCM
57 -       # ciphers IE/Edge offers because they look like a large mismatch
58 -       # between a very strong HMAC and a comparably weak (but sufficient)
59 -       # encryption. Similar all browsers which do SHA384 can do ECDHE
60 -       # so skip the DHE*SHA384 ciphers.
61 -       'ECDHE-RSA-AES256-GCM-SHA384',
62 -       'ECDHE-ECDSA-AES256-GCM-SHA384',
63 -       # 'ECDHE-RSA-AES256-SHA384',
64 -       # 'ECDHE-ECDSA-AES256-SHA384',
65 -       # 'ECDHE-RSA-AES128-SHA256',
66 -       # 'ECDHE-ECDSA-AES128-SHA256',
67 -       # 'DHE-RSA-AES256-GCM-SHA384',
68 -       # 'AES256-GCM-SHA384',
69 -       'AES256-SHA256',
70 -       # 'AES128-SHA256',
71 -       'DHE-DSS-AES256-SHA256',
72 -       # 'DHE-DSS-AES128-SHA256',
73 -       'DHE-DSS-AES256-SHA',
74 -       'DHE-DSS-AES128-SHA',
75 -       'EDH-DSS-DES-CBC3-SHA',
76 -
77 -       # Just to make sure, that we don't accidentally add bad ciphers above.
78 -       # This includes dropping RC4 which is no longer supported by modern
79 -       # browsers and also excluded in the SSL libraries of Python and Ruby.
80 -       "!EXP !MEDIUM !LOW !eNULL !aNULL !RC4 !DES !MD5 !PSK !SRP"
81 -    )
82  );
83  
84  # set values inside _init to work with perlcc, RT#95452
85 --- lib/IO/Socket/SSL.pod
86 +++ lib/IO/Socket/SSL.pod
87 @@ -1069,12 +1069,8 @@ documentation (L<https://www.openssl.org
88  for more details.
89  
90  Unless you fail to contact your peer because of no shared ciphers it is
91 -recommended to leave this option at the default setting. The default setting
92 -prefers ciphers with forward secrecy, disables anonymous authentication and
93 -disables known insecure ciphers like MD5, DES etc. This gives a grade A result
94 -at the tests of SSL Labs.
95 -To use the less secure OpenSSL builtin default (whatever this is) set
96 -SSL_cipher_list to ''.
97 +recommended to leave this option at the default setting, which honors the
98 +system-wide PROFILE=SYSTEM cipher list.
99  
100  In case different cipher lists are needed for different SNI hosts a hash can be
101  given with the host as key and the cipher suite as value, similar to
This page took 0.045691 seconds and 2 git commands to generate.