Al la kodbazo OpenSSH
Por interagi kun aparatoj, kiuj konfirmas la ĉeeston de la uzanto, nova speco de ŝlosiloj estis aldonita al OpenSSH "[retpoŝte protektita]” (“ecdsa-sk”), kiu uzas la ciferecan subskriban algoritmon ECDSA (Elliptic Curve Digital Signature Algorithm) kun NIST P-256 elipsa kurbo kaj SHA-256 hash. Proceduroj por interagado kun ĵetonoj estas metitaj en mezan bibliotekon, kiu estas ŝarĝita en simila maniero al la biblioteko por PKCS#11-subteno kaj estas envolvaĵo supre de la biblioteko.
Por ebligi U2F, vi povas uzi freŝan tranĉaĵon de la kodbazo de
Libfido2 subtenas OpenBSD, Linukso, macOS kaj Vindozo.
Por aŭtentikigi kaj generi ŝlosilon, vi devas agordi la mediovariablon SSH_SK_PROVIDER, indikante en ĝi la vojon al libsk-libfido2.so (eksportu SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), aŭ difini la bibliotekon per la SecurityKeyProvider agordo, kaj poste rulu "ssh-keygen -t ecdsa-sk" aŭ, se la ŝlosiloj jam estas kreitaj kaj agordis, konekti al la servilo per "ssh". Kiam vi rulas ssh-keygen, la generita ŝlosilparo estos konservita en "~/.ssh/id_ecdsa_sk" kaj povas esti uzata simile al aliaj ŝlosiloj.
La publika ŝlosilo (id_ecdsa_sk.pub) estu kopiita al la servilo en la dosiero authorized_keys. Ĉe la servilo, nur la cifereca subskribo estas kontrolita, kaj interago kun ĵetonoj estas farita ĉe la klienta flanko (vi ne bezonas instali libsk-libfido2 sur la servilo, sed la servilo devas subteni la "ecdsa-sk" ŝlosiltipo) . La generita privata ŝlosilo (id_ecdsa_sk) estas esence ŝlosila tenilo, formante realan ŝlosilon nur en kombinaĵo kun la sekreta sekvenco stokita sur la U2F-ĵetonflanko.
Se la id_ecdsa_sk-ŝlosilo falas en la manojn de atakanto, por pasigi aŭtentikigon li ankaŭ bezonos akiri aliron al la aparatara ĵetono, sen kiu la privata ŝlosilo konservita en la id_ecdsa_sk-dosiero estas senutila. Krome, defaŭlte, kiam oni faras ajnajn operaciojn per klavoj (kaj dum generacio kaj dum aŭtentigo), loka konfirmo de la fizika ĉeesto de la uzanto necesas, ekzemple, oni proponas tuŝi la sensilon sur la ĵetono, kio malfaciligas fari forajn atakojn sur sistemoj kun konektita ĵetono. Kiel alia defendlinio, pasvorto ankaŭ povas esti specifita dum la ekfazo de ssh-keygen por aliri la ŝlosilan dosieron.
La U2F-ŝlosilo povas esti aldonita al ssh-agent per "ssh-add ~/.ssh/id_ecdsa_sk", sed ssh-agent devas esti konstruita kun subteno por "ecdsa-sk" ŝlosiloj, la libsk-libfido2 tavolo devas ĉeesti kaj la agento devas funkcii en la sistemo , al kiu la ĵetono estas konektita.
Nova ŝlosilspeco "ecdsa-sk" estis aldonita ĉar la formato de OpenSSH ecdsa ŝlosiloj diferencas de la U2F-formato por ECDSA ciferecaj subskriboj en la ĉeesto de kromaj kampoj.
fonto: opennet.ru