On Fri, 11 Jul 2014 12:53:36 -0400 (EDT)
wie...@porcupine.org (Wietse Venema) wrote:

>BlueStar88:
>> for quite some while. I can see successful chain walks on inbound
>> connections resulting in "Trusted TLS connection established from".
>
>"Trusted" verifies the CA chain, not the client DNS name. 

Just half the way, but better than no checks at all. But I can't make any 
domain or host specific use of it yet.

>With HTTP clients, the certificate name check confirms that the
>client has a TLS connection to the server with a specific DNS name.
>
>An SMTP server rarely needs confirmation that it has a TLS connection
>from a client with a specific DNS name. This is so rare that it is
>not implemented in Postfix.

It is a difference to talk about MUA-MTA or MTA-MTA connections (client-server 
role or server-server role). It's quite easy for MTAs, to have proper client 
certificates, to show perfect host integrity to other MTAs. Maybe it is time to 
make progress into that direction. Especially since most of the large email 
providers serve client certificates with correct CN to FQDN match on MTA-MTA 
connections already.

>Instead, we recommend that the server looks whether the client
>certificate is issued by a trusted CA (permit_tls_clientcerts), or
>whether the certificate or public key has a particular fingerprint
>(check_ccert_access).

I'd like to do CA chain walk by domain or host, but "check_ccert_access" does 
only allow fingerprint pinning. "permit_tls_clientcerts" does work only for all 
TLS based connections together. That does only makes sense on special intranet 
hosts (MTA-MTA and where you're in control of all nodes) or SMTP hosts (MUA-MTA 
as client/user authentication for making a PERMIT decision).

Is there a way to have a host/domain specific chain walk decision, like in 
"smtp_tls_policy_maps"? For example: Let Google's MTA proceed on an inbound 
connection only if a previous chain walk was successful. If, at some time, a 
MITM breaks the chain walk, the connections must be rejected. I think that is 
not possible yet and that is the thing, which is quite stupid.

>> I think the server checks, if the peer hostname fits the CN.
>
>It does not.

It should. Since strictness to a given security level is a) a decision of each 
MX node itself and b) must cover both directions in my opinion. Having only 
inbound connections covered, is a weak point of relying on security levels at 
all. You see, I can't tell Google, to proceed in my direction only if my 
certificate chain was walked by them successfully. It's a sort of chicken-egg 
problem.

To solve this and if we really want to harden public MTA-MTA links, we should 
allow Postfix operators to set a better security level (Verify or DANE for 
example) on well known links independently. That means both directions without 
any cooperation of the remote node.

>       Wietse

BlueStar88

Attachment: signature.asc
Description: PGP signature

Reply via email to