Til OpenSSH-kodebasen
For å samhandle med enheter som bekrefter brukerens tilstedeværelse, har en ny type nøkler blitt lagt til OpenSSH "[e-postbeskyttet]” (“ecdsa-sk”), som bruker ECDSA (Elliptic Curve Digital Signature Algorithm) digital signaturalgoritme med NIST P-256 elliptisk kurve og SHA-256 hash. Prosedyrer for samhandling med tokens plasseres i et mellombibliotek, som lastes på lignende måte som biblioteket for PKCS#11-støtte og er en innpakning på toppen av biblioteket
For å aktivere U2F kan du bruke en ny del av kodebasen fra
Libfido2 støtter OpenBSD, Linux, macOS og Windows.
For å autentisere og generere en nøkkel, må du sette SSH_SK_PROVIDER miljøvariabelen, og angi banen til libsk-libfido2.so (eksporter SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), eller definere biblioteket gjennom SecurityKeyProvider innstilling, og kjør deretter "ssh-keygen -t ecdsa-sk" eller, hvis nøklene allerede er opprettet og konfigurert, koble til serveren med "ssh". Når du kjører ssh-keygen, vil det genererte nøkkelparet bli lagret i "~/.ssh/id_ecdsa_sk" og kan brukes på samme måte som andre nøkler.
Den offentlige nøkkelen (id_ecdsa_sk.pub) skal kopieres til serveren i filen authorized_keys. På serversiden er kun den digitale signaturen verifisert, og interaksjon med tokens utføres på klientsiden (du trenger ikke installere libsk-libfido2 på serveren, men serveren må støtte nøkkeltypen "ecdsa-sk") . Den genererte private nøkkelen (id_ecdsa_sk) er i hovedsak et nøkkelhåndtak, og danner en ekte nøkkel bare i kombinasjon med den hemmelige sekvensen som er lagret på U2F-tokensiden.
Hvis id_ecdsa_sk-nøkkelen faller i hendene på en angriper, vil han for å bestå autentisering også måtte få tilgang til maskinvaretokenet, uten hvilket den private nøkkelen som er lagret i id_ecdsa_sk-filen er ubrukelig. I tillegg, som standard, når du utfører operasjoner med nøkler (både under generering og under autentisering), kreves lokal bekreftelse av brukerens fysiske tilstedeværelse, for eksempel foreslås det å berøre sensoren på tokenet, noe som gjør det vanskelig å utføre eksterne angrep på systemer med tilkoblet token. Som en annen forsvarslinje kan et passord også spesifiseres under oppstartsfasen av ssh-keygen for å få tilgang til nøkkelfilen.
U2F-nøkkelen kan legges til ssh-agent via "ssh-add ~/.ssh/id_ecdsa_sk", men ssh-agent må bygges med støtte for "ecdsa-sk"-nøkler, libsk-libfido2-laget må være tilstede og agent må kjøres på systemet som tokenet er koblet til.
En ny nøkkeltype "ecdsa-sk" er lagt til siden formatet til OpenSSH ecdsa-nøkler er forskjellig fra U2F-formatet for ECDSA digitale signaturer i nærvær av tilleggsfelt.
Kilde: opennet.ru