Yubikey: erinevus redaktsioonide vahel
60. rida: | 60. rida: | ||
* tundub, et Yubikey OTP on üsna kitsalt skaleeruv - tavaliselt on seadmel kaks nö Slot'i ja kummagagi saab seostada ühe nö saladuse (erinevalt passkey'ide hulgast (nt 100 tükki)) |
* tundub, et Yubikey OTP on üsna kitsalt skaleeruv - tavaliselt on seadmel kaks nö Slot'i ja kummagagi saab seostada ühe nö saladuse (erinevalt passkey'ide hulgast (nt 100 tükki)) |
||
+ | * ühe Yubikey OTP saladusega saab siduda mitu erinevat api-key artifakti |
||
====Yubico API key signup==== |
====Yubico API key signup==== |
Redaktsioon: 1. juuni 2025, kell 14:33
Sissejuhatus
Mõisted
- TOTP
- HOTP
- PIV
- MFA
- 2FA
- CTAP
- CTAP2
- FIDO (Fast Identity Online)
- FIDO2
- U2F
- OAUTH (Open Authorization)
- OAUTH2
- USB-A
- USB-C
- NFC
- Yubico Authenticator
- YubiCloud
Tööpõhimõte
Tundub, et Yubikey seadmel on mitu erinevat nö töörežiimi
- lihtne TOTP/HOTP parool - kasutuskoht ja yubikey teavad ühist saladust, lisaks kasutatakse kas aja või kasutuskordade põhist ühist parooli/pin'i (sellisel kasutusel mingit suuremat avaliku võtme põhist krüptot ei toimu) - põhimõtteliselt sama loogika, millel põhineb nt Google Authenticator või FortiToken mobile token
- FIDO2 - tundub, et see on kõige naturaalsem ja kaasaegsem yubikey kasutus (nn passwordless lahendus toetub sellele) - asjasse puutub avaliku võtme krüpto
- PIV - yubikey töötab teatud mõttes sarnaselt id kaardile
Väited
- mitmes režiimis paistab yubikey käitumine tavalise füüsilise klaviatuuri käitumisena - yubikey seadme nupu peale vajutamisel tekib kursori asukohta tekst (nt otp parool on iseloomulikul kujuga 'vvlijleuurvtirfckkehdineubgktiijkivnkcncnjet', static password on literally see mis on väärtuseks salvestatud ja ei muutu)
- millises režiimis parasjagu yubikey slot on saabki ehk hõlpsasti hinnata selle alusel, mis kursori asukohta tekib
Riistvara
Tundub, et Yubikey ei ole ainus sarnase lahenduse tootja, aga samuti tundub, et ta on üks tublimaid (riistvara saadavud, riistvara tugi jms), võimalikud alternatiivid on
- Onlykey
- Nitrokey
- Solokey
- Thetis
Yubikey kasutamine VNC põhisel remote desktop arvutil
Väited
- Yubikey saab Proxmox PVE virtuaalsele arvutile ühendada külge Hardware -> USB -> ... abil
- Yubikey kui klaviatuuri sisestused paistavad mitte vnc ekraanil, aga PVE webgui konsoolil
- konsoolile ilmunud sisestused (nt otp kood) saab kopeerida virtuaalse arvuti peal programmiga screendump
Yubico OTP
TODO
Tööpõhimõte
Väited
- tundub, et Yubikey OTP on üsna kitsalt skaleeruv - tavaliselt on seadmel kaks nö Slot'i ja kummagagi saab seostada ühe nö saladuse (erinevalt passkey'ide hulgast (nt 100 tükki))
- ühe Yubikey OTP saladusega saab siduda mitu erinevat api-key artifakti
Yubico API key signup
Yubico OTP key signup on asjakohane juhtumil kui seadmel on juba saladus olemas (nt tegu on vastse ostetud seadmega) ja järgmisena soovitakse seda kasutama asuda (nt Proxmox PVE sisselogimiseks). signup tulemusena saab kasutaja teada
- client id: 112266
- secret key: KfM3kr3oFgcDNMd7k9z9TmgT35U=
Ekraani pildid paistavad sellised, registreerimise dialoog
kus
- Yubikey OTP väärtus saadakse paigutades kursori kuhugi teksti asukohta ja pressides seadmel nuppu
Tulemusena väljastatakse
Yubico OTP key upload
Uue OTP materjali tekitamiseks sobib kasutada programmi Yubico Authenticator
- lülitada sisse OTP Application
- valida Slot
- pressida Yubico OTP
ning paistab sellin vorm
Kui vaikimisi pakutud Public ID väärtus ei sobi, saab ise konstrueerida nt sellise Python skriptiga
imre@moraal:~$ cat otp-pi.py import secrets MODHEX = 'cbdefghijklnrtuv' public_id = ''.join(MODHEX[secrets.randbelow(16)] for _ in range(12)) print(public_id) imre@moraal:~$ python3 otp-pi.py hkcgjvtfhnbk imre@moraal:~$ python3 otp-pi.py jfiiigjgchgt
Uue nö OTP materjali yubicloud süsteemi üleslaadimiseks sobib kasutada sellist vormi, aadressil https://upload.yubico.com/
kus
- Yubico OTP teksti esimesed 12 sümbolit esitavad public id väärtuse
Tulemusena öeldakse õnnestumisel
Nüüd edasi on võimalik kasutada 'Yubico OTP' funktsionaalsust, nt seadistada käima Proxmox PVE sisselogimine 'Yubikey OTP' abil.
Yubikey playground
Yubikey playground kasutamiseks tuleb tekitada sinna kasutaja, edasi paistab sisselogimine nt selline
kus sisselogimisel on neli võimalust
- Yubico OTP - käesoleval juhul kasutatakse seda
WebAuthn
Chrome brauseris on nö virtuaalne webauthn authenticator environment, avada nt veebikoht https://webauthn.io/ ning samas brauseri aknas
Dev tools -> More tools -> WebAuthen
Seejärel pressida veebikohas register jne, peaks paistama sarnane pilt
kus
- TODO
Sarnaseid webauthn testimise veebikohti on teisigi, nt
SSH - FIDO2
Käesolevas punktis kirjeldatakse kasutajakogemust kahe operatsioonisüsteemiga
- Ubuntu + XFCE4 desktop
- OpenBSD + XFCE4 desktop
Ubuntu
Väited
- FIDO2 osakonnas krüptomaterjali salvestamine on üks võimalik viis yubikey ja ssh tarkvara koostööks
- töötab ssh-agent
- töötab ssh-agent forwarding
Krüptomaterjali tekitamine
# ssh-keygen -t ed25519-sk -O resident -O application=ssh:11 -C "ssh kasutamine nr 11" # ssh-keygen -t ed25519-sk -O resident -O application=ssh:12 -C "ssh kasutamine nr 12" # ssh-keygen -t ed25519-sk -O resident -O application=ssh:13 -C "ssh kasutamine nr 13" # ssh-keygen -t ed25519-sk -O resident -O application=ssh:14 -C "ssh kasutamine nr 14"
Krüptomaterjali vaatlemine Yubico Authenticator rakenduse abil
kus
- kui krüptomaterjali tekitamisel mitte näidata '-O application=ssh:...' väärtust, kirjutatakse eelmine sissekanne üle
- '-O resident' tähistab asjaolu, et krüptomaterjal salvestatase yubikey seadmes (non-resident ehk non-discoverably alternatiiv tähendab, et krüptomaterjal ise asub väljaspool yubikey seadet ning on krüptitud fido2 osakonnas oleva salajase võtmega - mingit arvestust yubikey enda peal sellise seotud välise materjali kohta ei peeta)
Järgmises arvutis krüptomaterjali kasutamine, kui eelnevalt ei oleks kasutatud '-O resident' suvandit, siis ei saaks sellist nö eksporti teha
# ssh-add -K Enter PIN for authenticator: Resident identity added: ED25519-SK SHA256:RlJ0IzrO/cqzYrV0AqPYyYnZsfSWsqC2nvW4Tfeu3eA Resident identity added: ED25519-SK SHA256:f/EyfUSv/z37ONcSv7PzvXyYoIuPckHzUWCDvmv3aVk Resident identity added: ED25519-SK SHA256:L+bGluZJcrJ50j+Gwni1Tuc/JfCEey77nH39FmYkgGQ Resident identity added: ED25519-SK SHA256:XCxEb2X/nhOGsZ8MZJA/0w7aYWe5UAmrgg8nf5eQDLY # ls -ld id_ed25519_sk_rk* -rw------- 1 root root 444 May 25 22:25 id_ed25519_sk_rk_11 -rw-r--r-- 1 root root 139 May 25 22:25 id_ed25519_sk_rk_11.pub -rw------- 1 root root 444 May 25 22:25 id_ed25519_sk_rk_12 -rw-r--r-- 1 root root 139 May 25 22:25 id_ed25519_sk_rk_12.pub -rw------- 1 root root 444 May 25 22:25 id_ed25519_sk_rk_13 -rw-r--r-- 1 root root 139 May 25 22:25 id_ed25519_sk_rk_13.pub -rw------- 1 root root 444 May 25 22:25 id_ed25519_sk_rk_14 -rw-r--r-- 1 root root 139 May 25 22:25 id_ed25519_sk_rk_14.pub
kus
- näiliselt salvestatakse ka privaatne materjal, kuid sisuliselt on tegu nö sangadega (ingl. k. handle), mis viitavad reaalselt yubikey seadmes olevale saladusele endale
# ssh-add -l 256 SHA256:RlJ0IzrO/cqzYrV0AqPYyYnZsfSWsqC2nvW4Tfeu3eA (ED25519-SK) 256 SHA256:f/EyfUSv/z37ONcSv7PzvXyYoIuPckHzUWCDvmv3aVk (ED25519-SK) 256 SHA256:L+bGluZJcrJ50j+Gwni1Tuc/JfCEey77nH39FmYkgGQ (ED25519-SK) 256 SHA256:XCxEb2X/nhOGsZ8MZJA/0w7aYWe5UAmrgg8nf5eQDLY (ED25519-SK) # ssh-add -L sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAINJEpXFLOqiKBc4LTqP9vHEJv0EJhWxk1v7lDifp/KQZAAAABnNzaDoxMQ== sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIDKfibpwkf9UCEtSM/bk5V1bZa+TRqNj/a2hLiTvnLTDAAAABnNzaDoxMg== sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIHkCP0bc82uMMMkKMDDLdRA8UXy5TAKKxGc3B8EZiRL3AAAABnNzaDoxMw== sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIAoM5TRQjg6PRuWGHTwwRx52bWxmejBm2MHr0XAf7DGxAAAABnNzaDoxNA==
Võtmete kustutamine ssh-agent juurest
# ssh-add -D
OpenBSD
Väited
- praktiliselt toimub kasutamine sarnaselt Ubuntu juhtumile
- FIDO2 puhul ei ole vaja mitte mingit spetsiaalselt nö yubikey tarkvara paigaldada - tavaline OpenBSD põhiosa sisaldab üldiselt fido draiverit ning ssh tarkvara toetab selle kasutamist
OpenBSD login
TODO
FortiAuthenticator
- https://community.fortinet.com/t5/FortiAuthenticator/Technical-Tip-How-to-import-YubiKey-to-FortiAuthenticator/ta-p/192277
- https://www.fortinet.com/solutions/enterprise-midsize-business/identity-access-management
Dovecot
Proxmox
Webauthn
Väited
- webauthn autentimisel osalevad kaks osapoolt - 1. kliendi brauser (ja yubikey seade samas arvutis) ja 2. teenuse server
Sündmuste voog
- server-side süsteem on webauthn võimeline
- client-side süsteem on webauthn võimeline
- server-side poolel on kirjeldatud kasutaja, kasutaja saab ligi kasutajanime ja parooli abil
- client side poolelt logib kasutaja sisse süsteemi kasutajanime ja parooli abil brauseriga
- kasutaja seadistab oma konto juures webauthn 2FA kasutamise - muu hulgas paigaldab ta server-side'i oma avaliku võtme
- kasutaja logib välja ja uuesti sisse - nüüd küsitakse temalt webauthn saladust - antud juhul Yubikey FIDO2
Praktilised sammud
- Lülitada PVE webgui liideses sisse webauthen - Datacenter -> Options -> WebAuthn Settings -> Auto-fill (täidetakse kaks lahtrit, 'Name:' ja 'ID:' väärtusega 'pve-vr.auul.pri.ee')
- veenduda, et pve realmiga ei ole seotud TFA lahendust - Datacenter -> Permissions -> Realms -> pve -> Edit -> TFA -> none
- tekitada pve realm kasutaja 'imre' - Datacenter -> Permissions -> Users -> Add
- määrata kasutajale privileegid, nt - Datacenter -> Permissions -> Add ...
- lisada kasutajale 2FA - Datacenter -> Permissions -> Two Factor -> Add -> WebAuthn -> ... -> palutakse pressida Yubikey nuppu
- logida välja
- logida tagasi sisse, peale kasutajanime ja parooli sisestamist palutakse pressida Yubikey nuppu
Kasutamine paistab välja nii
Kasulikud lisamaterjalid
Yubico OTP
Väited
- Yubico OTP autentimisel osalevad kolm osapoolt - 1. kliendi brauser (ja yubikey seade samas arvutis), 2. teenuse server ja 3. YubiCloud isand internetis
- Uutel Yubico seadmetel on vaikimisi Yubico OTP saladused juba YubiCloud peale publitseeritud (nn 'cc...' algusega sõned)
TOTP
TODO
Kasulikud lisamaterjalid
QEMU
YubiHSM 2
IAM
TODO
Kasulikud lisamaterjalid
- https://cryptsus.com/blog/how-to-configure-openssh-with-yubikey-security-keys-u2f-otp-authentication-ed25519-sk-ecdsa-sk-on-ubuntu-18.04.html
- https://functionallyparanoid.com/yubikey-all-the-things/
- https://www.youtube.com/watch?v=EREi8u6Ci5I
- https://developers.yubico.com/WebAuthn/
- https://medium.com/web-security/understanding-oauth2-a50f29f0fbf7
- https://www.yubico.com/works-with-yubikey/catalog/?sort=popular
- https://github.com/descope/virtualwebauthn
- https://www.yubico.com/ee/store/compare/?srsltid=AfmBOorJPMsFUlQ9XpOIItt8VmOwDM0bKvFRvpSHw1GHR3MkgLFsu7u5
- https://fidoalliance.org/