În acest protocol, utilizatorii trebuie să fie autentificați. Ei pot face acest lucru cu parole, fișiere care conțin chei RSA private, dispozitive hardware precum Ledger Nano S și Ledger Nano X etc.
Unele mijloace de autentificare sunt mai sigure decât altele: utilizarea unui dispozitiv hardware conceput pentru a stoca o cheie privată fără a face posibilă extragerea acesteia este mai sigură decât stocarea cheii private într-un fișier. Din păcate, cele mai sigure sunt și mai dureros de utilizat. Utilizatorii care au cheile pe un dispozitiv trebuie să poarte dispozitivul cu ei, trebuie să-și introducă codul PIN de fiecare dată când inițiază o sesiune SSH etc. Acest lucru face destul de dificil să susțină modalități mai sigure decât parolele și fișierele pentru cazurile de utilizare în care securitatea accesului nu este prioritară.
Deci întrebarea este: este posibil să stocați materialul de autentificare mai sigur decât într-un fișier (care poate fi furat de unele programe malware), fără a schimba experiența utilizatorului?
Și răspunsul este: da, folosind un TPM!
Un pic de istorie
De ceva timp, computerele au putut să încorporeze direct un cip de securitate. Acest cip, numit Trusted Platform Module (TPM), oferă multe caracteristici, inclusiv capacitatea de a proteja cheile private utilizate în criptografia cu chei publice.
Deoarece este încorporat în computere, nu este nevoie să conectați un dispozitiv la computer pentru a-l utiliza. Prin urmare, acesta este considerat mai puțin sigur decât un dispozitiv hardware care poate fi stocat într-un loc diferit de computer (acest lucru permite aplicarea principiului conform căruia, deși dispozitivul nu este conectat la computer, niciun program malware nu poate folosi secretele stocate în acesta).
Deci, TPM nu este „cea mai bună securitate”, dar este totuși mult mai sigur decât utilizarea fișierelor precum $HOME/.ssh/id_rsa
pentru a stoca cheile private.
Cum poate fi folosit TPM cu OpenSSH pe Linux? Cu un proiect numit tpm2-pkcs11
, urmând instrucțiunile disponibile pe multe site-uri web de mulți ani, inclusiv pe documentație oficială din depozitul său de coduri.
Acum, care sunt veștile? Acest software este acum în sfârșit împachetat în Ubuntu și Debian, ceea ce îl face în sfârșit disponibil pentru majoritatea utilizatorilor Linux!
Mai precis, aici este o cronologie:
- În 2014, au fost publicate principalele specificații pentru TPM 2.0. Pentru a interacționa cu un TPM din software, a existat un efort de standardizare și au fost create două stive de software incompatibile: cel de la Trusted Computing Group (TCG), numit Stack de software TPM (TSS), iar cel de la IBM, mai sunat Stiva de software TPM.
- În 2018, proiectul
tpm2-pkcs11
a fost creat pentru a oferi o interfață PKCS#11 unui TPM 2.0, folosind TSS-ul TCG. PKCS#11 este un standard care definește o interfață de programare a aplicației (API) numită Cryptoki pentru a utiliza jetoane care stochează chei criptografice. Deoarece OpenSSH a acceptat utilizarea unei interfețe PKCS#11 pentru a efectua autentificarea utilizatorului, aceasta a permis utilizarea TPM pentru a stoca cheile utilizate pentru autentificarea SSH. - În februarie 2019,
tpm2-pkcs11
a fost adăugat la Fedora 29. - În septembrie 2019, CentOS 8 a fost lansat cu acest pachet.
- În aprilie 2020,
tpm2-pkcs11
a fost adăugat la Sid Debian. Din pacate nu continea programultpm2_ptool
care este necesar pentru a crea cu ușurință chei. Această problemă a fost raportată în Eroare Debian #968310. - În ianuarie 2021, pachetul Debian a fost fixată (și întreținătorul mi-a recunoscut ajutorul!).
- În aprilie 2021, Ubuntu 21.04 Hirsute hipopotam a fost eliberat cu pachetul fix.
- În august 2021, Debian 11 Bullseye a fost eliberat cu pachetul fix
Acum tpm2-pkcs11
este disponibil pe Debian, Ubuntu și câteva alte distribuții Linux enumerate pe Repologie.
Folosind tpm2-pkcs11
Pe Debian 11, iată pașii pentru a genera și utiliza o nouă cheie SSH stocată în siguranță de TPM:
- Comanda de instalare
tpm2_ptool
si bibliotecalibtpm2_pkcs11.so.1
, care sunt furnizate de două pachete:
2. Verificați dacă sistemul poate utiliza un TPM 2.0. Dacă una dintre următoarele verificări eșuează, ar putea însemna că sistemul nu are un TPM, sau are un TPM 1.2 sau are un TPM 2.0 care este dezactivat în setările BIOS:
3. Adăugați utilizatorul curent la grupul care poate accesa dispozitivul TPM /dev/tpmrm0
. Pe Debian și Ubuntu, utilizatorii trebuie să aparțină unui grup numit tss
(mulțumită configurației oferite de tpm-udev
pachet). Următoarea comandă adaugă utilizatorul curent la acest grup:
Inițializați un magazin de utilizatori, protejat de o parolă și a SOPIN și creați o cheie, de exemplu o cheie de curbă eliptică pe curba numită „NIST P-256” (cunoscută și ca „secp256r1”):
4. Acronimul SOPIN mijloace Numărul de identificare personal al agentului de securitate și este un concept din specificația PKCS#11. În cazuri simple de utilizare, aceasta poate fi văzută ca o „parolă de recuperare” care permite modificarea parolei atunci când, de exemplu, aceasta a fost pierdută.
5. Afișați cheia publică a acestei noi chei:
6. Configurați noua cheie publică pe un server, de exemplu, scriind-o $HOME/.ssh/authorized_keys
sau în setările contului GitHub sau în orice altă locație în care sunt utilizate cheile publice SSH.
7. Configurați clientul SSH pe care să îl utilizați tpm2-pkcs11
pentru a vă conecta la server, de exemplu, scriind acest lucru $HOME/.ssh/config
(partea clientului):
Conectați-vă la server (NB, pasul anterior poate fi omis:
Muncă viitoare
Secțiunea anterioară a prezentat cum să creați o cheie nouă în TPM. Deși acest lucru permite utilizarea unui TPM pentru a proteja autentificarea SSH, există două caracteristici care sunt necesare pentru a face din aceasta o alternativă reală la utilizarea fișierelor pentru a stoca cheile private:
- Caracteristica #1: importarea cheilor SSH existente într-un TPM în loc de a crea altele noi (ceea ce permite tranziția lină la stocarea TPM, copierea de rezervă a cheilor, în cazul în care computerul este spart sau pierdut etc.).
- Caracteristica #2: utilizarea cheilor SSH fără parolă, cum ar fi fișierele cu chei private neprotejate (această caracteristică este mai sigură decât fișierele cheie, deoarece cheia protejată nu poate fi extrasă din TPM).
Am implementat ambele funcții în tpm2-pkcs11
și le-a transmis în Pull Requests #681 și #695. Caracteristica #1 a fost prezentată și în luna mai în timpul apelului online săptămânal al comunitatea tpm.dev iar înregistrarea este disponibilă pe https://developers.tpm.dev/posts/14389750.
Deci, este posibil ca ambele funcții să devină disponibile într-o versiune viitoare a tpm2-pkcs11
.
Apropo, pentru cititorii curioși care doresc să înțeleagă interiorul tpm2-pkcs11
, am publicat un articol despre ei la conferința SSTIC 2021, numit Protejarea autentificării SSH cu TPM 2.0 (articol în engleză, prezentare în franceză). Mai mult, cititorii care doresc să încerce lucruri fără să atingă un TPM adevărat ar putea fi interesați de secțiunea „Emularea unui TPM 2.0” a acestui articol.
(Ilustrare: Rainer Knäpper, Licență de artă gratuită)
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoAiStream. Web3 Data Intelligence. Cunoștințe amplificate. Accesați Aici.
- Mintând viitorul cu Adryenn Ashley. Accesați Aici.
- Cumpărați și vindeți acțiuni în companii PRE-IPO cu PREIPO®. Accesați Aici.
- Sursa: https://www.ledger.com/blog/ssh-with-tpm
- :are
- :este
- :nu
- :Unde
- $UP
- 1
- 11
- 13
- 14
- 15%
- 2014
- 2018
- 2019
- 2020
- 2021
- 30
- 8
- 80
- a
- capacitate
- Capabil
- Despre Noi
- acces
- Cont
- recunoscut
- adăuga
- adăugat
- Adaugă
- avocat
- de asemenea
- alternativă
- an
- și
- răspunde
- Orice
- api
- aplicație
- Aprilie
- SUNT
- Artă
- articol
- AS
- At
- August
- autentificata
- Autentificare
- disponibil
- sprijin
- BE
- deveni
- fost
- atât
- Spart
- Bug
- dar
- by
- apel
- CAN
- nu poti
- transporta
- caz
- cazuri
- CGI
- schimbarea
- verifica
- Verificări
- cip
- client
- cod
- calculator
- Calculatoare
- tehnica de calcul
- concept
- Conferință
- Configuraţie
- Conectați
- legat
- luate în considerare
- ar putea
- crea
- a creat
- Crearea
- criptografic
- criptografie
- curios
- Curent
- curba
- defineste
- proiectat
- dev
- dispozitiv
- Dispozitive
- FĂCUT
- diferit
- dificil
- direct
- invalid
- Afişa
- distribuții
- do
- documentaţie
- face
- în timpul
- cu ușurință
- efort
- Eliptice
- încastra
- încorporat
- activat
- permite
- aplicarea
- Engleză
- etc
- EVER
- Fiecare
- exemplu
- existent
- experienţă
- extrage
- eșuează
- Caracteristică
- DESCRIERE
- februarie
- Fișier
- Fişiere
- În cele din urmă
- fixată
- următor
- Pentru
- Gratuit
- Franceză
- din
- viitor
- genera
- GitHub
- grup
- Piese metalice
- dispozitiv hardware
- dispozitive hardware
- Avea
- aici
- Cum
- Cum Pentru a
- HTML
- http
- HTTPS
- i
- IBM
- Identificare
- if
- implementat
- importatoare
- in
- Inclusiv
- incompatibil
- iniția
- in schimb
- instrucțiuni
- interacţiona
- interesat
- interfaţă
- în
- problema
- IT
- ESTE
- ianuarie
- ianuarie 2021
- jpg
- Cheie
- chei
- cunoscut
- carte mare
- Ledger Nano
- Ledger Nano S
- Ledger Nano X
- mai puțin
- ca
- Probabil
- linux
- listat
- locaţie
- pierdut
- Principal
- face
- FACE
- Efectuarea
- malware
- multe
- material
- max-width
- Mai..
- însemna
- mijloace
- modul
- mai mult
- În plus
- cele mai multe
- mult
- my
- Numit
- nano
- necesar
- Nevoie
- necesar
- Nou
- ştiri
- Nu.
- acum
- of
- Ofiţer
- on
- ONE
- cele
- on-line
- or
- comandă
- Altele
- Altele
- pachet
- ambalate
- ofertele
- dureros
- Parolă
- Parolele
- efectua
- personal
- Loc
- platformă
- Plato
- Informații despre date Platon
- PlatoData
- ștecher
- posibil
- tocmai
- prezentare
- prezentat
- precedent
- principiu
- prioritate
- privat
- cheie privată
- Cheile private
- Programare
- proiect
- proteja
- protejat
- protectoare
- protocol
- furniza
- prevăzut
- furnizează
- public
- Cheia publică
- chei publice
- publicat
- întrebare
- cititori
- real
- înregistrare
- eliberaţi
- eliberat
- Raportat
- necesar
- rsa
- s
- Secțiune
- sigur
- în siguranță,
- securitate
- văzut
- Septembrie
- sesiune
- setări
- câteva
- parte
- simplu
- So
- Software
- unele
- specificație
- Specificaţii
- Stive
- standard
- Pas
- paşi
- Încă
- furate
- depozitare
- stoca
- stocate
- prezentat
- astfel de
- Suportat
- sistem
- decât
- Mulțumiri
- acea
- Săptămânalul
- lor
- Lor
- Acolo.
- prin urmare
- ei
- lucruri
- acest
- timp
- cronologie
- la
- indicativele
- emoționant
- tranziţie
- de încredere
- încerca
- Două
- tip
- Ubuntu
- înţelege
- din pacate
- utilizare
- utilizat
- Utilizator
- Experiența de utilizare
- utilizatorii
- folosind
- vrea
- a fost
- Cale..
- modalități de
- site-uri web
- săptămânal
- au fost
- cand
- care
- în timp ce
- OMS
- cu
- fără
- scris
- X
- ani
- da
- zephyrnet