V tem protokolu morajo biti uporabniki overjeni. To lahko storijo z gesli, datotekami, ki vsebujejo zasebne ključe RSA, napravami strojne opreme, kot sta Ledger Nano S in Ledger Nano X itd.
Nekatera sredstva za preverjanje pristnosti so varnejša od drugih: uporaba strojne naprave, zasnovane za shranjevanje zasebnega ključa, ne da bi ga bilo mogoče izvleči, je bolj varna kot shranjevanje zasebnega ključa v datoteko. Na žalost so najvarnejši tudi bolj boleči za uporabo. Uporabniki, ki imajo svoje ključe v napravi, morajo napravo nositi s seboj, morajo vtipkati kodo PIN vsakič, ko sprožijo sejo SSH itd. Zaradi tega je precej težko zagovarjati načine, ki so varnejši od gesel in datotek za primere uporabe, kjer varnost dostopa ni prioriteta.
Vprašanje je torej: ali je mogoče gradivo za preverjanje pristnosti shraniti bolj varno kot v datoteko (ki jo lahko ukrade zlonamerna programska oprema), ne da bi spremenili uporabniško izkušnjo?
In odgovor je: da, z uporabo TPM!
Nekaj zgodovine
Že kar nekaj časa lahko računalniki neposredno vgradijo varnostni čip. Ta čip, imenovan Trusted Platform Module (TPM), ponuja številne funkcije, vključno z možnostjo zaščite zasebnih ključev, ki se uporabljajo v kriptografiji z javnimi ključi.
Ker je vgrajen v računalnike, za uporabo ni treba priključiti naprave na računalnik. To se zato šteje za manj varno kot strojna naprava, ki jo je mogoče shraniti na drugem mestu kot računalnik (to omogoča uveljavljanje načela, da medtem ko naprava ni povezana z računalnikom, nobena zlonamerna programska oprema ne more uporabiti skrivnosti, shranjenih v njej).
Torej TPM ni "najboljša varnost", vendar je še vedno veliko bolj varen kot uporaba datotek, kot je npr $HOME/.ssh/id_rsa
za shranjevanje zasebnih ključev.
Kako se lahko TPM uporablja z OpenSSH v Linuxu? S projektom z imenom tpm2-pkcs11
, po navodilih, ki so že vrsto let na voljo na številnih spletnih mestih, vključno z uradno dokumentacijo iz svojega skladišča kod.
Kakšne so novice? Ta programska oprema je zdaj končno zapakirana v Ubuntu in Debian, zaradi česar je končno na voljo večini uporabnikov Linuxa!
Natančneje, tukaj je časovnica:
- Leta 2014 so bile objavljene glavne specifikacije za TPM 2.0. Za interakcijo s TPM iz programske opreme je prišlo do prizadevanj za standardizacijo in ustvarjena sta bila dva nezdružljiva sklada programske opreme: tisti iz Trusted Computing Group (TCG), imenovan Sklad programske opreme TPM (TSS), oglasil pa se je tudi tisti iz IBM-a Sklad programske opreme TPM.
- V letu 2018 je projekt
tpm2-pkcs11
je bil ustvarjen za zagotavljanje vmesnika PKCS#11 za TPM 2.0 z uporabo TCG-jevega TSS. PKCS#11 je standard, ki definira aplikacijski programski vmesnik (API) imenovan Cryptoki za uporabo žetonov, ki hranijo kriptografske ključe. Ker je OpenSSH podpiral uporabo vmesnika PKCS#11 za izvajanje preverjanja pristnosti uporabnikov, je to omogočilo uporabo TPM za shranjevanje ključev, uporabljenih za preverjanje pristnosti SSH. - Februarja 2019
tpm2-pkcs11
je bil dodan v Fedora 29. - Septembra 2019 je bil s tem paketom izdan CentOS 8.
- Aprila 2020,
tpm2-pkcs11
je bil dodan v Debian sid. Na žalost ni vseboval programatpm2_ptool
ki je potreben za preprosto ustvarjanje ključev. O tej težavi so poročali v Napaka Debian #968310. - Januarja 2021 je bil Debianov paket Všita (in vzdrževalec mi je priznal pomoč!).
- Aprila 2021 je Ubuntu 21.04 Hirsute nilski konj je bil izpuščen z fiksni paket.
- Avgusta 2021 je Debian 11 Bullseye je bil izpuščen z fiksni paket
zdaj tpm2-pkcs11
je na voljo v Debianu, Ubuntuju in številnih drugih distribucijah Linuxa, navedenih na Repologija.
Uporaba tpm2-pkcs11
V Debianu 11 so naslednji koraki za ustvarjanje in uporabo novega ključa SSH, ki ga varno shrani TPM:
- Namesti ukaz
tpm2_ptool
in knjižnicalibtpm2_pkcs11.so.1
, ki jih ponujata dva paketa:
2. Preverite, ali lahko sistem uporablja TPM 2.0. Če eno od naslednjih preverjanj ne uspe, to lahko pomeni, da sistem nima TPM, ima TPM 1.2 ali ima TPM 2.0, ki je onemogočen v nastavitvah BIOS-a:
3. Dodajte trenutnega uporabnika v skupino, ki lahko dostopa do naprave TPM /dev/tpmrm0
. V Debianu in Ubuntuju morajo uporabniki pripadati skupini z imenom tss
(zahvaljujoč konfiguraciji, ki jo zagotavlja tpm-udev
paket). Naslednji ukaz doda trenutnega uporabnika v to skupino:
Inicializirajte uporabniško shrambo, zaščiteno z geslom in a SOPIN in ustvarite ključ, na primer ključ eliptične krivulje na krivulji z imenom »NIST P-256« (znan tudi kot »secp256r1«):
4. Kratica SOPIN pomeni Osebna identifikacijska številka varnostnika in je koncept iz specifikacije PKCS#11. V preprostih primerih uporabe se lahko razume kot »geslo za obnovitev«, ki omogoča spreminjanje gesla, če je na primer izgubljeno.
5. Prikažite javni ključ tega novega ključa:
6. Konfigurirajte nov javni ključ v strežniku, na primer tako, da ga vpišete $HOME/.ssh/authorized_keys
ali v nastavitvah računa GitHub ali na kateri koli drugi lokaciji, kjer se uporabljajo javni ključi SSH.
7. Konfigurirajte odjemalca SSH za uporabo tpm2-pkcs11
za povezavo s strežnikom, na primer tako, da to vpišete $HOME/.ssh/config
(stran odjemalca):
Povežite se s strežnikom (opomba: prejšnji korak lahko preskočite:
Prihodnje delo
V prejšnjem razdelku je bilo predstavljeno, kako ustvariti nov ključ v TPM. Čeprav to omogoča uporabo TPM za zaščito preverjanja pristnosti SSH, sta potrebni dve funkciji, da postane to prava alternativa uporabi datotek za shranjevanje zasebnih ključev:
- Funkcija št. 1: uvoz obstoječih ključev SSH v TPM namesto ustvarjanja novih (kar omogoča gladek prehod v shrambo TPM, varnostno kopiranje ključev, če se računalnik pokvari ali izgubi itd.).
- Funkcija #2: uporaba ključev SSH brez gesla, kot so nezaščitene datoteke z zasebnimi ključi (ta funkcija je bolj varna kot datoteke s ključi, saj zaščitenega ključa ni mogoče ekstrahirati iz TPM).
Obe funkciji sem implementiral v tpm2-pkcs11
in jih oddali v zahtevah za vlečenje #681 in #695. Funkcija št. 1 je bila predstavljena tudi maja med tedenskim spletnim klicem skupnost tpm.dev in posnetek je na voljo na https://developers.tpm.dev/posts/14389750.
Tako bosta obe funkciji verjetno na voljo v prihodnji izdaji tpm2-pkcs11
.
Mimogrede, za radovedne bralce, ki želijo razumeti notranjost tpm2-pkcs11
, sem o njih objavila članek na konferenci SSTIC 2021 z naslovom Zaščita avtentikacije SSH s TPM 2.0 (članek v angleščini, predstavitev v francoščini). Poleg tega bi lahko bralce, ki želijo poskusiti stvari, ne da bi se dotaknili pravega TPM, zanimal razdelek »Emulacija TPM 2.0« tega članka.
(Ilustracija: Rainer Knäpper, Free Art License)
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoAiStream. Podatkovna inteligenca Web3. Razširjeno znanje. Dostopite tukaj.
- Kovanje prihodnosti z Adryenn Ashley. Dostopite tukaj.
- Kupujte in prodajajte delnice podjetij pred IPO s PREIPO®. Dostopite tukaj.
- vir: https://www.ledger.com/blog/ssh-with-tpm
- :ima
- : je
- :ne
- :kje
- $GOR
- 1
- 11
- 13
- 14
- 15%
- 2014
- 2018
- 2019
- 2020
- 2021
- 30
- 8
- 80
- a
- sposobnost
- Sposobna
- O meni
- dostop
- Račun
- priznali
- dodajte
- dodano
- Dodaja
- zagovornik
- Prav tako
- alternativa
- an
- in
- odgovor
- kaj
- API
- uporaba
- april
- SE
- Umetnost
- članek
- AS
- At
- Avgust
- overjena
- Preverjanje pristnosti
- Na voljo
- podloga
- BE
- postanejo
- bilo
- tako
- Broken
- Bug
- vendar
- by
- klic
- CAN
- ne more
- opravlja
- primeru
- primeri
- CGI
- spreminjanje
- preveriti
- Pregledi
- čip
- stranke
- Koda
- računalnik
- računalniki
- računalništvo
- Koncept
- Konferenca
- konfiguracija
- Connect
- povezane
- šteje
- bi
- ustvarjajo
- ustvaril
- Ustvarjanje
- kriptografijo
- kriptografija
- radovedna
- Trenutna
- krivulja
- Določa
- zasnovan
- dev
- naprava
- naprave
- DID
- drugačen
- težko
- neposredno
- onemogočena
- zaslon
- Distribucije
- do
- Dokumentacija
- ne
- med
- enostavno
- prizadevanje
- Elipsasta
- Embed
- vgrajeni
- omogočena
- omogoča
- uveljavljanje
- Angleščina
- itd
- VEDNO
- Tudi vsak
- Primer
- obstoječih
- izkušnje
- ekstrakt
- ne uspe
- Feature
- Lastnosti
- februar
- file
- datoteke
- končno
- Všita
- po
- za
- brezplačno
- francosko
- iz
- Prihodnost
- ustvarjajo
- GitHub
- skupina
- strojna oprema
- strojna naprava
- strojne naprave
- Imajo
- tukaj
- Kako
- Kako
- HTML
- http
- HTTPS
- i
- IBM
- Identifikacija
- if
- izvajali
- uvoz
- in
- Vključno
- nezdružljiva
- sproži
- Namesto
- Navodila
- interakcijo
- zainteresirani
- vmesnik
- v
- vprašanje
- IT
- ITS
- januar
- januar 2021
- jpg
- Ključne
- tipke
- znano
- Ledger
- Ledger Nano
- Ledger Nano S
- Knjiga Nano X
- manj
- kot
- Verjeten
- linux
- Navedeno
- kraj aktivnosti
- izgubil
- Glavne
- Znamka
- IZDELA
- Izdelava
- zlonamerna programska oprema
- več
- Material
- max širine
- Maj ..
- pomeni
- pomeni
- modul
- več
- Poleg tega
- Najbolj
- veliko
- my
- Imenovan
- nano
- potrebno
- Nimate
- potrebna
- Novo
- novice
- št
- zdaj
- of
- Častnik
- on
- ONE
- tiste
- na spletu
- or
- Da
- Ostalo
- drugi
- paket
- pakirani
- pakete
- boleče
- Geslo
- gesla
- opravlja
- Osebni
- Kraj
- platforma
- platon
- Platonova podatkovna inteligenca
- PlatoData
- Vtič
- mogoče
- Ravno
- predstavitev
- predstavljeni
- prejšnja
- Načelo
- prednostna naloga
- zasebna
- zasebni ključ
- Zasebni ključi
- Programiranje
- Projekt
- zaščito
- zaščiteni
- zaščito
- protokol
- zagotavljajo
- če
- zagotavlja
- javnega
- javni ključ
- javni ključi
- objavljeno
- vprašanje
- bralci
- pravo
- Snemanje
- sprostitev
- sprosti
- Prijavljeno
- obvezna
- RSA
- s
- Oddelek
- zavarovanje
- Varno
- varnost
- videl
- september
- Zasedanje
- nastavitve
- več
- strani
- Enostavno
- So
- Software
- nekaj
- specifikacija
- specifikacije
- Skladovnice
- standardna
- Korak
- Koraki
- Še vedno
- ukradeno
- shranjevanje
- trgovina
- shranjeni
- predložen
- taka
- Podprti
- sistem
- kot
- hvala
- da
- O
- Tednik
- njihove
- Njih
- Tukaj.
- zato
- jih
- stvari
- ta
- čas
- časovnica
- do
- Boni
- dotika
- Prehod
- zaupa
- poskusite
- dva
- tip
- Ubuntu
- razumeli
- na žalost
- uporaba
- Rabljeni
- uporabnik
- Uporabniška izkušnja
- Uporabniki
- uporabo
- želeli
- je
- način..
- načini
- spletne strani
- Tedenski
- so bili
- kdaj
- ki
- medtem
- WHO
- z
- brez
- pisanje
- X
- let
- ja
- zefirnet