OpenSSH sett med applikasjoner som tillater kryptert kommunikasjon over et nettverk ved hjelp av SSH-protokollen har lagt til eksperimentell støtte for tofaktorautentisering til kodebasen, ved hjelp av enheter som støtter U2F-protokollen utviklet av FIDO-alliansen.
For de som ikke er klar over U2F, det burde de vite, dette er en åpen standard for å lage billige maskinvaresikkerhetspoletter. Dette er lett den billigste måten for brukere å få et maskinvarestøttet nøkkelpar og det er et godt utvalg av produsenter som selger dem, inkluderts Yubico, Feitian, Thetis og Kensington.
Maskinvarestøttede nøkler gir fordelen av å være betydelig vanskeligere å stjele: en angriper må generelt stjele det fysiske tokenet (eller i det minste vedvarende tilgang til det) for å stjele nøkkelen.
Siden det er flere måter å snakke med U2F-enheter på, inkludert USB, Bluetooth og NFC, ønsket vi ikke å laste OpenSSH med en rekke avhengigheter. I stedet har vi delegert oppgaven med å kommunisere med tokens til et lite bibliotek med mellomvare som lastes inn på en måte som ligner på eksisterende PKCS # 11-støtte.
OpenSSH har nå eksperimentell U2F / FIDO-støtte, med U2F blir den lagt til som en ny nøkkeltype sk-ecdsa-sha2-nistp256@openssh.com eller «ecdsa-sk"For kort (" sk "står for" sikkerhetsnøkkel ").
Prosedyrer for samhandling med tokens er flyttet til et mellomliggende bibliotek, som er lastet analogt med biblioteket for PKCS # 11-støtte og er en lenke på libfido2-biblioteket, som gir midler til å kommunisere med tokens via USB (FIDO U2F / CTAP 1 og FIDO 2.0 / CTAP 2).
Bibliotek Intermedia libsk-libfido2 utarbeidet av OpenSSH-utviklere er inkludert i libfido2-kjernen, samt HID-driveren for OpenBSD.
For å aktivere U2F, en ny del av kodebasen fra OpenSSH-depotet kan brukes og HEAD-grenen til libfido2-biblioteket, som allerede inneholder det nødvendige laget for OpenSSH. Libfido2 støtter arbeid på OpenBSD, Linux, macOS og Windows.
Vi har skrevet en grunnleggende mellomvare for Yubicos libfido2 som er i stand til å snakke med alle standard USB HID U2F- eller FIDO2-token. Mellomvare. Kilden er vert i libfido2-treet, så å bygge det og OpenSSH HEAD er nok til å komme i gang
Den offentlige nøkkelen (id_ecdsa_sk.pub) må kopieres til serveren i filen autoriserte_taster. På serversiden er kun en digital signatur verifisert og interaksjon med tokens gjøres på klientsiden (libsk-libfido2 trenger ikke installeres på serveren, men serveren må støtte nøkkeltypen "ecdsa-sk»).
Den genererte private nøkkelen (ecdsa_sk_id) er egentlig en nøkkelbeskrivelse som bare danner en ekte nøkkel i kombinasjon med en hemmelig sekvens lagret på U2F-tokensiden.
Hvis nøkkelen ecdsa_sk_id faller i hendene på angriperen, for godkjenning, vil han også trenge å få tilgang til maskinvaretokenet, uten hvilken den private nøkkelen som er lagret i id_ecdsa_sk-filen, er ubrukelig.
Videre som standard når nøkkeloperasjoner utføres (både under generering og autentisering), lokal bekreftelse av brukerens fysiske tilstedeværelse krevesFor eksempel anbefales det å berøre sensoren på tokenet, noe som gjør det vanskelig å utføre eksterne angrep på systemer med et tilkoblet token.
I begynnelsen av ssh-keygen, kan andre passord også angis for å få tilgang til filen med nøkkelen.
U2F-nøkkelen kan legges til ssh agent via "ssh-legg til ~ / .ssh / id_ecdsa_sk", men ssh agent må kompileres med nøkkelstøtte ecdsa-sk, må libsk-libfido2-laget være til stede og agenten må kjøre på systemet som tokenet er festet til.
En ny type nøkkel er lagt til ecdsa-sk siden nøkkelformatet ecdsa OpenSSH skiller seg fra U2F-formatet for digitale signaturer ECDSA ved tilstedeværelsen av flere felt.
Hvis du vil vite mer om det du kan konsultere følgende lenke.