You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Daemon which provides TLS client policy for Postfix via socketmap, according to domain MTA-STS policy. Current support of RFC8461 is limited - daemon lacks some minor features:
6
+
Daemon which provides TLS client policy for Postfix via socketmap, according to domain MTA-STS policy.
7
7
8
-
* Fetch error reporting
9
-
* Fetch ratelimit (but actual fetch rate partially restricted with `cache_grace` config option).
8
+
Current support of [RFC 8461](https://www.rfc-editor.org/rfc/rfc8461) is limited:
9
+
10
+
*[MTA-STS policy overrides DANE TLS authentication](#warning-mta-sts-policy-overrides-dane-tls-authentication) against [RFC 8461, 2](https://www.rfc-editor.org/rfc/rfc8461#section-2).
11
+
12
+
* Daemon lacks some minor features:
13
+
14
+
* Fetch error reporting.
15
+
* Fetch ratelimit (but actual fetch rate partially restricted with `cache_grace` config option).
10
16
11
17
Server has configurable cache backend which allows to store cached STS policies in memory (`internal`), file (`sqlite`) or in Redis database (`redis`).
12
18
@@ -186,6 +192,40 @@ If your configuration already has some TLS policy maps, just add MTA-STS socketm
186
192
Reload Postfix after reconfiguration.
187
193
188
194
195
+
### Warning: MTA-STS policy overrides DANE TLS authentication
196
+
197
+
Due to Postfix's limitations, a resolved MTA-STS policy overrides DANE TLS authentication ([RFC 6698](https://www.rfc-editor.org/rfc/rfc6698)), because DANE is an internal feature of Postfix, and the postfix-mta-sts-resolver always responds with a ([`smtp_tls_policy_maps`](https://www.postfix.org/postconf.5.html#smtp_tls_policy_maps)) lookup result `secure` for [Secure server certificate verification](https://www.postfix.org/TLS_README.html#client_tls_secure).
198
+
199
+
* The resulting behaviour is against [RFC 8461, 2](https://www.rfc-editor.org/rfc/rfc8461#section-2):
200
+
> However, MTA-STS is designed not to interfere with DANE deployments when the two overlap; in particular, senders who implement MTA-STS validation MUST NOT allow MTA-STS Policy validation to override a failing DANE validation.
201
+
202
+
Domains implementing both MTA-STS and DANE probably want DANE to be preferred:
203
+
204
+
* DANE allows strict binding of certificates; the policy can authorize only a certain certificate or certificates from a certain CA. With MTA-STS, a certificate from any trusted CA is automatically trusted; [RFC 8461, 10.1](https://www.rfc-editor.org/rfc/rfc8461#section-10.1):
205
+
206
+
> SMTP MTA-STS relies on certificate validation via PKIX-based TLS identity checking [RFC6125]. Attackers who are able to obtain a
207
+
valid certificate for the targeted recipient mail service (e.g., by compromising a CA) are thus able to circumvent STS authentication.
208
+
209
+
* Based on DNSSEC, DANE not vulnerable to downgrade attack that could prevent policy discovery. MTA-STS security considerations acknowledges this weakness in [RFC 8461, 10.2](https://www.rfc-editor.org/rfc/rfc8461#section-10.2):
210
+
211
+
> Since MTA-STS uses DNS TXT records for policy discovery, an attacker who is able to block DNS responses can suppress the discovery of an
212
+
MTA-STS Policy, making the Policy Domain appear not to have an MTA-STS Policy.
213
+
214
+
> Resistance to downgrade attacks of this nature -- due to the ability to authoritatively determine "lack of a record" even for non-participating recipients -- is a feature of DANE, due to its use of DNSSEC for policy discovery.
215
+
216
+
* The postfix-mta-sts-resolver does not intent to implement policy lookups for DANE, and responses other than `secure` with `match=` would not verify the TLS certificate as required by [RFC 8461, 4,2](https://www.rfc-editor.org/rfc/rfc8461#section-4.2).
217
+
218
+
If you wish to meet this requirement:
219
+
220
+
* List a DANE policy resolver responding with `dane-only` (for [Mandatory DANE](https://www.postfix.org/TLS_README.html#client_tls_dane)) before postfix-mta-sts-resolver in `smtp_tls_policy_maps` lookup table list.
221
+
222
+
* Alternatively, you could use a static lookup table for domains known to implement both MTA-STS & DANE, e.g.,
0 commit comments