1842
|
1 % Cipher policy enforcement with application level error reporting
|
|
2
|
|
3 # Introduction
|
|
4
|
|
5 This module arose from discussions at the XMPP Summit about enforcing
|
|
6 better ciphers in TLS. It may seem attractive to disallow some
|
|
7 insecure ciphers or require forward secrecy, but doing this at the TLS
|
|
8 level would the user with an unhelpful "Encryption failed" message.
|
|
9 This module does this enforcing at the application level, allowing
|
|
10 better error messages.
|
|
11
|
|
12 # Configuration
|
|
13
|
|
14 First, download and add the module to `module_enabled`. Then you can
|
|
15 decide on what policy you want to have.
|
|
16
|
|
17 Requiring ciphers with forward secrecy is the most simple to set up.
|
|
18
|
|
19 ``` lua
|
|
20 tls_policy = "FS" -- allow only ciphers that enable forward secrecy
|
|
21 ```
|
|
22
|
|
23 A more complicated example:
|
|
24
|
|
25 ``` lua
|
|
26 tls_policy = {
|
|
27 c2s = {
|
|
28 encryption = "AES"; -- Require AES (or AESGCM) encryption
|
|
29 protocol = "TLSv1.2"; -- and TLSv1.2
|
|
30 bits = 128; -- and at least 128 bits (FIXME: remember what this meant)
|
|
31 }
|
|
32 s2s = {
|
|
33 cipher = "AESGCM"; -- Require AESGCM ciphers
|
|
34 protocol = "TLSv1.[12]"; -- and TLSv1.1 or 1.2
|
|
35 authentication = "RSA"; -- with RSA authentication
|
|
36 };
|
|
37 }
|
|
38 ```
|
|
39
|
|
40 # Compatibility
|
|
41
|
|
42 Requires LuaSec 0.5
|
|
43
|