Software /
code /
prosody-modules
Comparison
mod_s2s_auth_dane/README.md @ 6211:750d64c47ec6 draft default tip
Merge
author | Trần H. Trung <xmpp:trần.h.trung@trung.fun> |
---|---|
date | Tue, 18 Mar 2025 00:31:36 +0700 |
parent | 6003:fe081789f7b5 |
comparison
equal
deleted
inserted
replaced
6210:24316a399978 | 6211:750d64c47ec6 |
---|---|
1 --- | |
2 labels: | |
3 - Stage-Broken | |
4 - Type-S2SAuth | |
5 summary: S2S authentication using DANE | |
6 ... | |
7 | |
8 Introduction | |
9 ============ | |
10 | |
11 This module implements DANE as described in [Using DNS Security | |
12 Extensions (DNSSEC) and DNS-based Authentication of Named Entities | |
13 (DANE) as a Prooftype for XMPP Domain Name | |
14 Associations](http://tools.ietf.org/html/draft-miller-xmpp-dnssec-prooftype). | |
15 | |
16 Dependencies | |
17 ============ | |
18 | |
19 This module requires a DNSSEC aware DNS resolver. Prosodys internal DNS | |
20 module does not support DNSSEC. Therefore, to use this module, a | |
21 replacement is needed, such as [this | |
22 one](https://www.zash.se/luaunbound.html). | |
23 | |
24 LuaSec 0.5 or later is also required. | |
25 | |
26 Configuration | |
27 ============= | |
28 | |
29 After [installing the module][doc:installing\_modules], just add it to | |
30 `modules_enabled`; | |
31 | |
32 modules_enabled = { | |
33 ... | |
34 "s2s_auth_dane"; | |
35 } | |
36 | |
37 DANE Uses | |
38 --------- | |
39 | |
40 By default, only DANE uses are enabled. | |
41 | |
42 dane_uses = { "DANE-EE", "DANE-TA" } | |
43 | |
44 Use flag Description | |
45 ----------- ------------------------------------------------------------------------------------------------------- | |
46 `DANE-EE` Most simple use, usually a fingerprint of the full certificate or public key used the service | |
47 `DANE-TA` Fingerprint of a certificate or public key that has been used to issue the service certificate | |
48 `PKIX-EE` Like `DANE-EE` but the certificate must also pass normal PKIX trust checks (ie standard certificates) | |
49 `PKIX-TA` Like `DANE-TA` but must also pass normal PKIX trust checks (ie standard certificates) | |
50 | |
51 DNS Setup | |
52 ========= | |
53 | |
54 In order for other services to verify your site using using this plugin, | |
55 you need to publish TLSA records (and they need to have this plugin). | |
56 Here's an example using `DANE-EE Cert SHA2-256` for a host named | |
57 `xmpp.example.com` serving the domain `example.com`. | |
58 | |
59 $ORIGIN example.com. | |
60 ; Your standard SRV record | |
61 _xmpp-server._tcp.example.com IN SRV 0 0 5269 xmpp.example.com. | |
62 ; IPv4 and IPv6 addresses | |
63 xmpp.example.com. IN A 192.0.2.68 | |
64 xmpp.example.com. IN AAAA 2001:0db8:0000:0000:4441:4e45:544c:5341 | |
65 | |
66 ; The DANE TLSA records. | |
67 _5269._tcp.xmpp.example.com. 300 IN TLSA 3 0 1 E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855 | |
68 | |
69 ; If your zone file tooling does not support TLSA records, you can try the raw binary format: | |
70 _5269._tcp.xmpp.example.com. 300 IN TYPE52 \# 35 030001E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855 | |
71 | |
72 [List of DNSSEC and DANE | |
73 tools](http://www.internetsociety.org/deploy360/dnssec/tools/) | |
74 | |
75 Further reading | |
76 =============== | |
77 | |
78 - [DANE Operational Guidance][rfc7671] | |
79 | |
80 # Compatibility | |
81 | |
82 version status | |
83 --------- ------------ | |
84 trunk broken[^1] | |
85 0.12 broken | |
86 0.11 works | |
87 0.10 works | |
88 0.9 works | |
89 | |
90 **Broken** since [trunk revision 756b8821007a](https://hg.prosody.im/trunk/rev/756b8821007a). | |
91 | |
92 # Known issues | |
93 | |
94 - A race condition between the DANE lookup and completion of the TLS | |
95 handshake may cause a crash. This does not happen in **trunk** | |
96 thanks to better async support. | |
97 | |
98 [^1]: since [756b8821007a](https://hg.prosody.im/trunk/rev/756b8821007a) |