Při navazování spojení se serverem pomocí SSH protokolu dochází k autentifikaci mezi klientem a serverem tak, že server po zahájení spojení předá klientovi otisk svého veřejného klíče, aby klient mohl ověřit identitu serveru.
Důvěryhodnost a bezpečnost spojení tak závisí na tom, zda uživatel skutečně provede porovnání serverem poskytnutého fingerprintu s očekávaným fingerprintem veřejného klíče serveru.
Zavedením DNS SSHFP záznamu (RFC 4255) vzniká pro SSH klienty nový způsob autentifikace porovnáním fingerprintu poskytnutého serverem oproti fingerprintu, který je uložen v DNS zóně domény pro FQDN serveru. Při porovnávání musí souhlasit všechny parametry SSHFP záznamu – algoritmus použitý pro vygenerování klíče, algoritmus použitý pro vygenerování otisku klíče a konečně samotný otisk klíče.
Využití DNS SSHFP má smysl pouze v případě, že je tento záznam podepsán technoligií DNSSEC a je tak zaručeno, že daný záznam nemůže být podvržen.
Formát SSHFP záznamu
SSHFP záznam sestává ze tří částí:
- Algorithm Number Specification – algoritmus použitý pro vygenerování veřejného klíče
- 0 – rezervovaná hodnota
- 1 – RSA
- 2 – DSA
- 3 – ECDSA
- 4 – ED25519
- Fingerprint Type Specification – message-digest algoritmus použitý pro vygenerování fingerprintu
- 0 – rezervovaná hodnota
- 1 – SHA-1
- 2 – SHA-256
- Fingerprint – fingerprint veřejného klíče serveru
Příklad DNS SSHFP záznamu
Následují příklad demonstruje SSHFP záznam nesoucí fingerprint serveru s FQDN ssh.domena.tld
HOST TTL RR type RR value --------------------------------------------------------------------------------- ssh.domena.tld. 1800 IN SSHFP 2 1 123456789abcdef67890123456789abcdef67890