|
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