|
19 | 19 |
|
20 | 20 | -- "Modern" cipher list
|
21 | 21 | local modern_cipher_list = cipher_list {
|
22 |
| - "ECDHE-ECDSA-AES256-GCM-SHA384"; |
23 |
| - "ECDHE-RSA-AES256-GCM-SHA384"; |
24 |
| - "ECDHE-ECDSA-CHACHA20-POLY1305"; |
25 |
| - "ECDHE-RSA-CHACHA20-POLY1305"; |
26 |
| - "ECDHE-ECDSA-AES128-GCM-SHA256"; |
27 |
| - "ECDHE-RSA-AES128-GCM-SHA256"; |
28 |
| - "ECDHE-ECDSA-AES256-SHA384"; |
29 |
| - "ECDHE-RSA-AES256-SHA384"; |
30 |
| - "ECDHE-ECDSA-AES128-SHA256"; |
31 |
| - "ECDHE-RSA-AES128-SHA256"; |
| 22 | + "TLS_AES_128_GCM_SHA256"; |
| 23 | + "TLS_AES_256_GCM_SHA384"; |
| 24 | + "TLS_CHACHA20_POLY1305_SHA256"; |
32 | 25 | }
|
33 | 26 |
|
34 | 27 | -- "Intermediate" cipher list
|
35 | 28 | local intermediate_cipher_list = cipher_list {
|
36 |
| - "ECDHE-ECDSA-CHACHA20-POLY1305"; |
37 |
| - "ECDHE-RSA-CHACHA20-POLY1305"; |
38 | 29 | "ECDHE-ECDSA-AES128-GCM-SHA256";
|
39 | 30 | "ECDHE-RSA-AES128-GCM-SHA256";
|
40 | 31 | "ECDHE-ECDSA-AES256-GCM-SHA384";
|
41 | 32 | "ECDHE-RSA-AES256-GCM-SHA384";
|
| 33 | + "ECDHE-ECDSA-CHACHA20-POLY1305"; |
| 34 | + "ECDHE-RSA-CHACHA20-POLY1305"; |
42 | 35 | "DHE-RSA-AES128-GCM-SHA256";
|
43 | 36 | "DHE-RSA-AES256-GCM-SHA384";
|
44 |
| - "ECDHE-ECDSA-AES128-SHA256"; |
45 |
| - "ECDHE-RSA-AES128-SHA256"; |
46 |
| - "ECDHE-ECDSA-AES128-SHA"; |
47 |
| - "ECDHE-RSA-AES256-SHA384"; |
48 |
| - "ECDHE-RSA-AES128-SHA"; |
49 |
| - "ECDHE-ECDSA-AES256-SHA384"; |
50 |
| - "ECDHE-ECDSA-AES256-SHA"; |
51 |
| - "ECDHE-RSA-AES256-SHA"; |
52 |
| - "DHE-RSA-AES128-SHA256"; |
53 |
| - "DHE-RSA-AES128-SHA"; |
54 |
| - "DHE-RSA-AES256-SHA256"; |
55 |
| - "DHE-RSA-AES256-SHA"; |
56 |
| - "ECDHE-ECDSA-DES-CBC3-SHA"; |
57 |
| - "ECDHE-RSA-DES-CBC3-SHA"; |
58 |
| - "EDH-RSA-DES-CBC3-SHA"; |
59 |
| - "AES128-GCM-SHA256"; |
60 |
| - "AES256-GCM-SHA384"; |
61 |
| - "AES128-SHA256"; |
62 |
| - "AES256-SHA256"; |
63 |
| - "AES128-SHA"; |
64 |
| - "AES256-SHA"; |
65 |
| - "DES-CBC3-SHA"; |
66 |
| - "!DSS"; |
| 37 | + "DHE-RSA-CHACHA20-POLY1305"; |
67 | 38 | }
|
68 | 39 |
|
69 | 40 | -- "Old" cipher list
|
70 | 41 | local old_cipher_list = cipher_list {
|
71 |
| - "ECDHE-ECDSA-CHACHA20-POLY1305"; |
72 |
| - "ECDHE-RSA-CHACHA20-POLY1305"; |
73 |
| - "ECDHE-RSA-AES128-GCM-SHA256"; |
74 | 42 | "ECDHE-ECDSA-AES128-GCM-SHA256";
|
75 |
| - "ECDHE-RSA-AES256-GCM-SHA384"; |
| 43 | + "ECDHE-RSA-AES128-GCM-SHA256"; |
76 | 44 | "ECDHE-ECDSA-AES256-GCM-SHA384";
|
| 45 | + "ECDHE-RSA-AES256-GCM-SHA384"; |
| 46 | + "ECDHE-ECDSA-CHACHA20-POLY1305"; |
| 47 | + "ECDHE-RSA-CHACHA20-POLY1305"; |
77 | 48 | "DHE-RSA-AES128-GCM-SHA256";
|
78 |
| - "DHE-DSS-AES128-GCM-SHA256"; |
79 |
| - "kEDH+AESGCM"; |
80 |
| - "ECDHE-RSA-AES128-SHA256"; |
| 49 | + "DHE-RSA-AES256-GCM-SHA384"; |
| 50 | + "DHE-RSA-CHACHA20-POLY1305"; |
81 | 51 | "ECDHE-ECDSA-AES128-SHA256";
|
82 |
| - "ECDHE-RSA-AES128-SHA"; |
| 52 | + "ECDHE-RSA-AES128-SHA256"; |
83 | 53 | "ECDHE-ECDSA-AES128-SHA";
|
84 |
| - "ECDHE-RSA-AES256-SHA384"; |
| 54 | + "ECDHE-RSA-AES128-SHA"; |
85 | 55 | "ECDHE-ECDSA-AES256-SHA384";
|
86 |
| - "ECDHE-RSA-AES256-SHA"; |
| 56 | + "ECDHE-RSA-AES256-SHA384"; |
87 | 57 | "ECDHE-ECDSA-AES256-SHA";
|
| 58 | + "ECDHE-RSA-AES256-SHA"; |
88 | 59 | "DHE-RSA-AES128-SHA256";
|
89 |
| - "DHE-RSA-AES128-SHA"; |
90 |
| - "DHE-DSS-AES128-SHA256"; |
91 | 60 | "DHE-RSA-AES256-SHA256";
|
92 |
| - "DHE-DSS-AES256-SHA"; |
93 |
| - "DHE-RSA-AES256-SHA"; |
94 |
| - "ECDHE-RSA-DES-CBC3-SHA"; |
95 |
| - "ECDHE-ECDSA-DES-CBC3-SHA"; |
96 |
| - "EDH-RSA-DES-CBC3-SHA"; |
97 | 61 | "AES128-GCM-SHA256";
|
98 | 62 | "AES256-GCM-SHA384";
|
99 | 63 | "AES128-SHA256";
|
100 | 64 | "AES256-SHA256";
|
101 | 65 | "AES128-SHA";
|
102 | 66 | "AES256-SHA";
|
103 |
| - "AES"; |
104 | 67 | "DES-CBC3-SHA";
|
105 |
| - "HIGH"; |
106 |
| - "SEED"; |
107 | 68 | "!aNULL";
|
108 | 69 | "!eNULL";
|
109 | 70 | "!EXPORT";
|
@@ -458,6 +419,15 @@ local spec_to_openssl = {
|
458 | 419 | TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = "ECDHE-PSK-CHACHA20-POLY1305";
|
459 | 420 | TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = "DHE-PSK-CHACHA20-POLY1305";
|
460 | 421 | TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 = "RSA-PSK-CHACHA20-POLY1305";
|
| 422 | + |
| 423 | + |
| 424 | + -- TLS v1.3 cipher suites |
| 425 | + |
| 426 | + TLS_AES_128_GCM_SHA256 = "TLS_AES_128_GCM_SHA256"; |
| 427 | + TLS_AES_256_GCM_SHA384 = "TLS_AES_256_GCM_SHA384"; |
| 428 | + TLS_CHACHA20_POLY1305_SHA256 = "TLS_CHACHA20_POLY1305_SHA256"; |
| 429 | + TLS_AES_128_CCM_SHA256 = "TLS_AES_128_CCM_SHA256"; |
| 430 | + TLS_AES_128_CCM_8_SHA256 = "TLS_AES_128_CCM_8_SHA256"; |
461 | 431 | }
|
462 | 432 |
|
463 | 433 | -- Banned ciphers from https://http2.github.io/http2-spec/#BadCipherSuites
|
@@ -750,13 +720,17 @@ local default_tls_options = openssl_ctx.OP_NO_COMPRESSION
|
750 | 720 | + openssl_ctx.OP_SINGLE_ECDH_USE
|
751 | 721 | + openssl_ctx.OP_NO_SSLv2
|
752 | 722 | + openssl_ctx.OP_NO_SSLv3
|
| 723 | + + openssl_ctx.OP_NO_SSLv3 |
| 724 | + + openssl_ctx.OP_NO_TLSv1 |
| 725 | + + openssl_ctx.OP_NO_TLSv1_1 |
| 726 | + + openssl_ctx.OP_NO_TICKET |
753 | 727 |
|
754 | 728 | local function new_client_context()
|
755 | 729 | local ctx = openssl_ctx.new("TLS", false)
|
756 | 730 | ctx:setCipherList(intermediate_cipher_list)
|
757 | 731 | ctx:setOptions(default_tls_options)
|
758 | 732 | if ctx.setGroups then
|
759 |
| - ctx:setGroups("P-521:P-384:P-256") |
| 733 | + ctx:setGroups("P-521:P-384:P-256:X25519") |
760 | 734 | else
|
761 | 735 | ctx:setEphemeralKey(openssl_pkey.new{ type = "EC", curve = "prime256v1" })
|
762 | 736 | end
|
|
0 commit comments