Yubikey: erinevus redaktsioonide vahel

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
254. rida: 254. rida:
 
Kasutamine paistab välja nii
 
Kasutamine paistab välja nii
   
[[Fail:20250601-yubikey-webauth-01.png]]
+
[[Fail:20250601-yubikey-webauth-01.png|900px]]
   
 
Kasulikud lisamaterjalid
 
Kasulikud lisamaterjalid

Redaktsioon: 1. juuni 2025, kell 13:40

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

TODO

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

202500525-yubico-otp-upload-00.png

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/

202500525-yubico-otp-upload-01.png

kus

  • Yubico OTP teksti esimesed 12 sümbolit esitavad public id väärtuse

Tulemusena öeldakse õnnestumisel

202500525-yubico-otp-upload-02.png

Yubikey playground

Yubikey playground kasutamiseks tuleb tekitada sinna kasutaja, edasi paistab sisselogimine nt selline

202500525-yubikey-playground-01.png

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

20250519-chrome-virtual-webauthn-01.png

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

202500525-yubikey-ssh-fido2-01.png

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

Dovecot

Proxmox

Webauthn

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
  • veenduda, et pve realmiga ei ole seotud TFA lahendust
  • 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 Yubiey nuppu

Kasutamine paistab välja nii

20250601-yubikey-webauth-01.png

Kasulikud lisamaterjalid

Yubico OTP

TODO

TOTP

TODO

Kasulikud lisamaterjalid

QEMU

YubiHSM 2

IAM

TODO

Kasulikud lisamaterjalid