DNS – Rekord typu TLSA

  DNS, Rekordy DNS, Teoria DNS

Protokół DANE, który wprowadza rekord DNS typu TLSA, został stworzony w celu zwiększenia bezpieczeństwa podczas weryfikacji pochodzenia certyfikatu dostarczonego przez serwer. Rekord DNS TLSA określa certyfikat usługi dla kombinacji danych – FQDN, protokół i port, które razem tworzą prefiks rekordu. Za pomocą rekordu TLSA można zweryfikować, czy na drodze pomiędzy nadawcą i odbiorcą nie doszło do zmiany certyfikatu.

Użycie rekordu TLSA ma sens tylko w przypadku zabezpieczenia strefy DNS domeny za pomocą protokołu DNSSEC, gdzie gwarantowana jest wiarygodność autorytatywnej odpowiedzi z DNS.

Protokół DANE włącznie z rekordem TLSA jest zdefiniowany w RFC6698.

Format rekordu TLSA

Format nazwy domeny – prefiksu rekordu TLSA

_<port>._<ipprotokol>.<domena>

Nazwa domeny dla zabezpieczonej komunikacji HTTPS na domenie www.domena.tld będzie wyglądać następująco:

_443._tcp.www.domena.tld

Wartość rekordu TLSA

Rekord TLSA zawiera trzy parametry, a następnie dane binarne dla asocjacji certyfikatu:

  • CertificateUsage – 4 możliwości przydzielenia certyfikatu nazwie domeny
    • 0 – dane binarne kodują certyfikat CA, certyfikat serwerowy musi przejść walidację PKIX
    • 1 – dane binarne kodują certyfikat EE (End Entity), certyfikat serwerowy musi odpowiadać temu certyfikatowi EE, certyfikat serwerowy musi przejść walidację PKIX do istniejącego korzenia zaufania
    • 2 – dane binarne kodują dowolny certyfikat CA (który musi znajdować się na liście wiarygodnych certyfikatów klienta weryfikującego), certyfikat ten jest używany jako nowy korzeń zaufania, certyfikat serwerowy musi przejść walidację PKIX do nowego korzenia zaufania
    • 3 – dane binarne kodują certyfikat EE, certyfikat serwerowy musi odpowiadać temu certyfikatowi EE, certyfikat serwerowy musi przejść walidację PKIX
  • Selector – definiuje, która część certyfikatu jest weryfikowana
    • 0 – cały certyfikat
    • 1 – klucz publiczny (SubjectPublicKeyInfo)
  • MatchingType – definiuje, sposób porównania certyfikatu z łańcucha z danymi w rekordzie TLSA
    • 0 – kontrola wybranych części bajt po bajcie
    • 1 – SHA-256 wybrane części
  • 2 – SHA-512 wybrane części
  • ostatnia część rekordu zawiera dane binarne dla porównania z dostarczonym certyfikatem

CertificationUsage = 0/1 służy do wzmocnienia zaufania CA. Użycie wartości 0 wskaże, którs CA może być użyta do zabezpieczonej komunikacji z serwerem. Użycie wartości 1 definiuje, który certyfikat może być w tym celu użyty.

CertificationUsage = 2/3 pozwala usprawnić korzystanie z wewnętrznych urzędów certyfikacji oraz weryfikację certyfikatów self-signed (możliwość 3)

Wynikowy rekord TLSA może wyglądać następująco:

_443._tcp.www.domena.tld. IN TLSA 0 1 1 ef2dbd0fb1785efd174e9072b674b439c1c1b1d2f3afd76c8bcd3c8eb02b56e7

Generowanie rekordów TLSA

Aby wygenerować rekord TLSA, możesz skorzystać np. z  utilitu sweed lub generatora online.