DNS – Rekord typu SSHFP

  DNS, Domeny i DNS, Teoria DNS

Przy nawiązywaniu połączenia z serwerem za pomocą protokołu SSH dochodzi do uwierzytelnienia pomiędzy klientem i serwerem, w taki sposób, że serwer po zainicjowaniu połączenia udostępni klientowi swoje odciski klucza publicznego, aby klient mógł zweryfikować tożsamość serwera.

Wiarygodność i bezpieczeństwo połączenia zależy więc od tego, czy użytkownik faktycznie dokona porównania udostępnionych przez serwer odcisków palców z oczekiwanymi odciskami palców publicznego klucza serwera.

Wprowadzeniem rekordu DNS SSHFP (RFC 4255) dla klientów SSH powstaje nowy sposób uwierzytelniania polegający na porównaniu fingerprinta udostępnionego przez serwer z fingerprintem zapisanym w strefie DNS domeny dla serwera FQDN. Przy porównaniu muszą być zgodne wszystkie parametry rekordu SSHFP – algorytm użyty do wygenerowania klucza, algorytm użyty do wygenerowania odcisków klucza i wreszcie sam odcisk klucza.

Korzystanie z DNS SSHFP ma sens tylko w przypadku, że rekord ten jest podpisany technologią DNSSEC, która gwarantuje, że dany rekord nie może być sfałszowany.

Format rekordu SSHFP

Rekord SSHFP składa się z trzech części:

  1. Algorithm Number Specification – algorytm używany do generowania klucza publicznego
    • 0 – wartość zarezerwowana
    • 1 – RSA
    • 2 – DSA
    • 3 – ECDSA
    • 4 – ED25519
  2. Fingerprint Type Specification – message-digest algorytm użyty do wygenerowania fingerprinta
  3. 0 – wartość zarezerwowana
  1. 1 – SHA-1
  2. 2 – SHA-256
  3. Fingerprint – fingerprint publicznego klucza serwera

Przykład rekordu DNS SSHFP

Poniższy przykład ilustruje rekord SSHFP niosący fingerprint serwera z FQDN ssh.domena.tld

HOST             TTL      RR type    RR value
---------------------------------------------------------------------------------
ssh.domena.tld. 1800 IN SSHFP 2 1 123456789abcdef67890123456789abcdef67890