3.1.5.12. TLSA
Важливі моменти:
- Перед додаванням запису обов’язково має бути увімкнений DNSSEC.
- У разі будь-якої зміни сервера або сертифікатів необхідне негайне оновлення запису TLSA, інакше клієнти можуть виявити невідповідність і відхилятимуть з’єднання. Перед виконанням таких дій спочатку додайте новий запис TLSA, не видаляючи старий, дочекайтеся оновлення кешу DNS, проведіть роботи на сервері, перевірте роботу нового запису і лише після цього видаляйте старий.
Загальна інформація
Запис TLSA (Transport Layer Security Authentication) — це спеціальний DNS-запис, який пов’язує TLS/SSL-сертифікат сервера або відкритий ключ із доменом, у якому міститься цей запис. Він є частиною протоколу безпеки DANE (DNS-based Authentication of Named Entities), який дозволяє власникам доменів вказувати, яким сертифікатам слід довіряти під час TLS-з'єднання з серверами, що обслуговують ці домени. Детальніше див. RFC 6698.
Коли клієнт підключається до сервера через безпечне з’єднання TLS, сервер надає клієнту ланцюжок сертифікатів. Щоб перевірити їхню автентичність, клієнт порівнює отриманий ланцюжок сертифікатів із даними з запису TLSA відповідно до правил, заданих у цьому записі. Якщо дані збігаються — з’єднання продовжується, якщо сертифікат не відповідає запису TLSA — з’єднання відхиляється. Якщо запис TLSA опубліковано, але DNSSEC не працює або запис недоступний, клієнт може не довіряти такому з’єднанню. Таким чином, TLSA допомагає запобігти атаці «людина посередині» та підміні сертифіката, а для SMTP допомагає заборонити незашифровану доставку при спробі переходу сервера на незахищене з’єднання.
TLSA можна використовувати для протоколів HTTPS, SMTP, XMPP, LDAP, SIP та інших сервісів, які використовують TLS. Браузери зазвичай не перевіряють TLSA для HTTPS, тому на практиці TLSA найчастіше використовується для захисту поштових серверів та передачі пошти по SMTP.
Вимоги
Вимоги до роботи TLSA:
- Увімкнено DNSSEC.
- У назві запису правильно вказано хост, порт і протокол.
- У даних запису вказано дані чинного сертифіката або ключа.
- Для з'єднання використовується TLS.
- Клієнт підтримує технологію DANE.
Формат запису
Кожен запис TLSA складається з піддомену та даних.
Піддомен
Формат назви піддомену:
_<порт>._<протокол>.<хост>
Назва піддомену містить інформацію про те, куди та як підключається клієнт:
- Номер порту (наприклад,
25). - Назва протоколу (наприклад,
_tcp). - Назва хосту без основного домену (наприклад,
mailабоwww).
Для SMTP зазвичай використовується порт 25, а запис TLSA додається для хосту, зазначеного в MX-записі домену.
Приклади:
_25._tcp.mail.example.com
_443._tcp.www.example.com
Дані
Формат даних:
<Usage> <Selector> <Matching type> <Certificate association data>
Перше число (Usage) — як перевіряти сертифікат:
0— сертифікат має бути пов’язаний із довіреним публічним центром сертифікації.1— перевіряється сертифікат самого сервісу, але також потрібна звичайна перевірка через CA.2— вказується довірений центр сертифікації або кореневий сертифікат.3— перевіряється безпосередньо сертифікат сервера або його відкритий ключ.
Друге число (Selector) — що використовувати для перевірки:
0— повний сертифікат.1— тільки відкритий ключ.
Третє число (Matching type) — як зберігаються дані:
0— повний сертифікат або ключ без хешування.1— хеш SHA-256.2— хеш SHA-512.
Останнє поле (Certificate association data) — відбиток або сертифікат, який потрібно зіставити з тим, що надано сервером. Зазвичай це довгий рядок із літер і цифр.
Найпоширеніший варіант запису виглядає так:
3 1 1 <SHA-256 хеш відкритого ключа>
Приклад:
3 1 1 1306c288896771534a5b60744a535e1025f79b0b64e1bbc89278ba4d413cb9f1