Curs 5 - Protocoale securizate; ssh

1. Protocolul SSH

SSH = Secure SHell

SSH este un protocol care permite crearea unei sesiuni de lucru la distanta, transferul de fisiere si crearea unor canale de comunicatie pentru alte aplicatii, toata transmisia fiind sigura impotriva atacurilor intrusilor.

Confidentialitatea transmisiei este asigurata prin criptare. Integritatea este asigurata prin trimiterea unor sume de control criptografice. Autentificarea serverului se face prin criptografie asimetrica, serverul avand o cheie secreta si clientii dispunand de cheia publica corespunzatoare. Autentificarea clientului se face fie prin criptografie asimetrica, ca si in cazul autentificarii serverului (dar bineinteles folosind alta pereche de chei), fie cu parola clasica, data de client dupa autentificarea serverului.

1.1. Stabilirea conexiunii

Stabilirea unei conexiuni SSH decurge in urmatoarele etape:

  1. Clientul si serverul se inteleg asupra unei chei de sesiune, folosind in acest scop protocolul Diffie-Helman. In continuare, intreaga comunicatie este criptata cu cheia de sesiune.
  2. Clientul autentifica serverul. In acest scop, serverul trimite rezultatul semnarii cheii de sesiune cu cheia sa secreta. Clientul verifica semnatura folosind in acest scop cheia publica a serverului.

    Pentru usurarea utilizarii sistemului, serverul isi trimite si cheia publica. Daca clientul nu are cheia publica a serverului, o poate folosi pe cea trimisa de server - evident optiunea este nesigura, deoarece serverul inca nu a fost autentificat si deci s-ar putea sa fie un intrus. Utilizatorul este avertizat asupra acestui risc, si cheia publica a serverului este inregistrata in baza de date a clientului, la urmatoarea conectare la acelasi server cheia publica urmand sa fie luata din baza de date.

  3. Serverul autentifica clientul. In functie de configuratia serverului, poate accepta autentificare cu criptografie asimetrica, folosind acelasi protocol (dar bineinteles fara posibilitatea trimiterii de catre client a cheii sale publice), sau poate cere clientului o parola.

Dupa stabilirea conexiunii, toate datele care circula pe conexiune sunt impartite in pachete, transmise in modul urmator:

  1. mai intai, se construieste o suma de control, prin aplicarea unei functii de dispersie criptografica asupra rezultatului juxtapunetrii pachetului de date cu numarul sau de ordine si cu cheia de sesiune.
  2. se formeaza un pachet din lungimea datelor, datele propriu-zise, suma de control calculata la pasul anterior, si o completare cu biti aleatori pana la un multiplu al lungimii blocului acceptat de algoritmul de criptare
  3. pachetul format anterior se cripteaza cu cheia de sesiune, folosind un algoritm simetric pe bloc in modul CBC

1.2. Servicii SSH

SSH nu permite numai sesiuni de lucru prin retea, ci si alte aplicatii. Astfel, o data deschis un canal securizat, pachetele vehiculate pot fi destinate mai multor aplicatii, lista celor mai importante fiind:

1.3. Autentificarea clientului SSH

Autentificarea clientrului se poate face prin parola sau prin criptografie asimetrica. In cazul criptografiei asimetrice, cheia secreta trebuie memorata pe discul masinii client (o cheie pentru criptografie asimetrica nu poate fi memorata rezonabil de om). Stocarea cheii secrete pe disc fiind un risc de securitate, SSH ofera posibilitatea stocarii cheii secrete criptate folosind ca si cheie o fraza (memorabila de om). Pentru ca clientul SSH sa nu ceara fraza-cheie pentru decriptarea cheii secrete, SSH ofera urmatorul mecanism:


Retele de calculatoare
5 Ian 2004
Radu-Lucian LUPSA