www/content/2024-01-15-tls-mitm-protection.md

33 lines
1.5 KiB
Markdown
Raw Normal View History

2024-01-15 11:54:00 -06:00
+++
title = "Protecting TLS services from MITM attacks"
description = """\
A public service announcement about how to use CAA records to protect services
you host against MITM attacks. \
"""
date = 2024-01-15
[taxonomies]
tags = [ "selfhosting", "privacy", "security", "networks" ]
2025-01-15 13:50:07 -06:00
[extra]
show_only_description = true
2024-01-15 11:54:00 -06:00
+++
A few months ago, a Russian XMPP server had their TLS connections with users
successfully [attacked via a man-in-the-middle][0] (in particular, their ISP and
government appeared to have coluded to attack their routing and issue new
certificates to a server in the middle). These kinds of attacks can be
prevented even if your ISP or government are misbehaving by leveraging DNSSEC
and CAA records (as well as vigilantly monitoring certificate transparency logs
for your domain).
If you have a domain you host TLS services on, you should setup restrictive CAA
records (if you use Lets Encrypt, that means tied to an `accountid` and/or
`dns01` validation method), and you should setup DNSSEC. Without these, anyone
who controls the routing of your IP address (your ISP, hosting provider,
misbehaving BGP operators, etc.) can be compelled to obtain a certificate for
your domain.
There are also upcoming technologies like DANE (TLSA records) that allow pinning
of expected public keys for a domain in DNS, so that browsers can cross-check
the expected certificates with what they received in the chain from the server.
[0]: https://notes.valdikss.org.ru/jabber.ru-mitm/