Protocolul Ssh Dragoi Diana E214b [613103]

Academia Tehnică Militară

Protocolul SSH

Drăgoi Diana (E-214B)

2017

Protocolul SSH

2
Cuprins

Protocolul SSH ………………………….. ………………………….. ………………………….. ……………………… 3
De ce SSH? ………………………….. ………………………….. ………………………….. ………………………. 3
Definire ………………………….. ………………………….. ………………………….. ………………………….. .. 3
Stabilire conexiune ………………………….. ………………………….. ………………………….. …………… 3
Schimbul de chei ………………………….. ………………………….. ………………………….. ……………….. 4
Autentificarea clientului SSH ………………………….. ………………………….. ………………………….. . 5
Autentificarea prin chei asimetrice ………………………….. ………………………….. ……………….. 5
Componente Secure Shell ………………………….. ………………………….. ………………………….. …… 8
Arhitectura SSH ………………………….. ………………………….. ………………………….. ………………… 8
Versiuni SSH ………………………….. ………………………….. ………………………….. …………………….. 9
SSH- 1 ………………………….. ………………………….. ………………………….. ………………………….. 9
SSH-TRANS ………………………….. ………………………….. ………………………….. …………………. 9
SSH-USERAUTH ………………………….. ………………………….. ………………………….. ………….. 9
SSH-CONNECT ………………………….. ………………………….. ………………………….. ……………. 9
SSH- 2 ………………………….. ………………………….. ………………………….. ………………………… 10
Criptarea datelor ………………………….. ………………………….. ………………………….. ………………. 10
Integritat ea datelor ………………………….. ………………………….. ………………………….. ……………. 10
Formatul pachetelor ………………………….. ………………………….. ………………………….. ………….. 11
Post forwarding ………………………….. ………………………….. ………………………….. ……………….. 13
Atacuri SSH ………………………….. ………………………….. ………………………….. …………………….. 13
Eavesdropping sau password sniffing ………………………….. ………………………….. ………….. 13
Atacul Man -in-the-Middle ………………………….. ………………………….. …………………………. 14
Atacuri de tip „replay” si „insertion” ………………………….. ………………………….. …………… 14
Bibliografie ………………………….. ………………………….. ………………………….. …………………………. 15

Protocolul SSH

3 Protocolul SSH

De ce SSH?

Am ales protocolul SSH deoarece acesta este un protocol indispensabil in zilele de astazi, fara
acesta nu ne -am putea pastra datele confidentiale, Atacatorii au la dispozitie tot mai multe instrumente
cu ajutorul carora pot intercepta si perturba traficul dintr -o anumita retea pentru a a vea acces la
anumite sisteme. Protocolul SSH ne ajuta sa cream o conexiune sigura, astfel ca atacatorii nu mai au
acces la informatii confidentiale.

Definire
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 e ste asigurata prin criptare. Integritatea este asigurata
prin sume de control criptografice. Autentificarea serverului se face prin criptare asimetrica.
Autentificarea clientului se face fie prin criptare asimetrica, ca si in cazul autentificarii
serverulu i, fie cu parola clasica, data de client dupa autentificarea serverului.
Stabilire conexiune
Stabilirea unei conexiuni SSH are loc in felul urmator :
 Clientul si serverul negociaza asupra unei chei de sesiune, folosind algoritmul Diffie –
Helman . Din acest m oment, comunicatia este criptata cu cheia de sesiune.
 Clientul autentifica serverul. Serverul trimite rezultatul semnarii cheii de sesiune cu
cheia sa secreta. Clientul verifica semnatura folosind cheia publica a serverului
(pereche cheii private) .
 Apoi s erverul autentifica clientul. In functie de configuratia serverului, acesta poate
accepta autentificare cu criptografie asimetrica, folosind acelasi protocol, sau poate
cere clientului o parola.
Dupa stabilirea conexiunii, toate datele care circula pe canal sunt impartite in pachete,
transmise in felul urmator:
 Initial se construieste o suma de contr ol, prin aplicarea unei functii de dispersie asupra
rezultatului concatenarii pachetului de date cu numarul sau de ordine si cu cheia de
sesiune.

Protocolul SSH

4  Se formeaza un pachet din lungimea pachelului , datele propriu -zise, suma de control
calculata la pasul anterior, si o completare (padding ) cu biti aleatori pana la un
multiplu al lungimii blocului acc eptat de algoritmul de criptare.
 Pachetul format se cripteaza cu ch eia de sesiune, folosind un algoritm criptografic.

Schimbul de chei
Pentru a putea comunica in mod criptat, transmitatorul si destinatarul trebuie sa
impartaseasca o cheie comuna. In cazul in care acestia nu au mai comunicat in trecut, ei
trebuie sa stab ileasca o cheie partajata pe care o vor utiliza in procesul de criptare –
decriptare.
In cazul nostru, c lientul si serverul negociaza asupra cheii de sesiune cu ajutorului
algortmului Diffie -Hellman . Mecanismul de functionare a acestui protocol arata in felul
urmator:
Alice (A) si Bob (B) doresc sa partajeze o cheie secreta pent ru a-si trimite mesaje
criptate. In primul pas, A si B se decid asupra unui numar prim p arbitrar mare si un
numar intreg g modulo p. Cele doua numere sunt publice.
Apoi A alege un numar intreg a pe care in pastreaza secret. B procedeaza la fel,
alegand un numar b. Cu aceste numere calculeaza:
 𝐴≡𝑔𝑎(𝑚𝑜𝑑 𝑝) – calculat de A
 𝐵≡𝑔𝑏(𝑚𝑜𝑑 𝑝) – calculat de B
In pasul urmator cei doi sch imba intre e i valori le si calculeaza:
 A calculeaza: 𝐴′=𝐵𝑎(𝑚𝑜𝑑 𝑝)
 B calculeaza: 𝐵′=𝐴𝑏(𝑚𝑜𝑑 𝑝)
Observam ca valorile obtinute sunt egale.
𝐴′=𝐵𝑎≡(𝑔𝑏)𝑎≡𝑔𝑎𝑏≡(𝑔𝑎)𝑏≡𝐴𝑏≡𝐵′
Aceasta valoare comuna va fi utilizata pe post de cheie de sesiune intre cei doi
utilizatori.
In figura de mai jos este ilust rat mecanismul acestui algoritm ( Figura 1 ):

Protocolul SSH

5

Figură 1. Mecanismul algoritmului de negociere a cheilor Diffie – Hellman

Autentificarea clientului SSH

Autentificarea client ului se poate face prin parola sau prin criptografie asimetrica. In cazul
criptografiei asimetrice, cheia secreta trebuie memorata pe masina client . Stocarea cheii
secrete pe disc fiind un risc de securitate, SSH ofera posibilitatea stocarii cheii secrete criptat e
folosind ca si cheie o fraza. Pentru ca clientul SSH sa nu ceara fraza -cheie pentru decriptarea
cheii secrete, SSH ofera urmatorul mecanism:
Se lanseaza o aplicatie numita agent de autentificare . Aceasta citeste cheia secreta
criptata, cere fraza -cheie de decriptare si decripteaza cheia secreta , pe care o tine in memoria
RAM.
La lansarea unui client SSH, acesta incearca sa contacteze agentul de autentificare – daca
acesta ruleaza in acel moment. Comunicatia se fa ce local prin primitive sigure oferite de
sistemul de operare al masinii client. Clientul SSH trimite agentului cheia de sesiune, iar
agentul ii returneaza semnatura.
In cazul autentificarii prin parola, desi parola este transmisa printr -un canal criptat, aceasta
va fi decriptata de server pentru a valida autentificarea, iar daca serverul este compromis,
parola va fi aflata. Din aceasta cauza este preferata folosirea autent ificarea prin chei
asimetrice.

Autentificarea prin chei asimetrice

Protocolul SSH

6
Pasul 1 – Sesiunea sigura este stabilita prin algoritmul Diffie -Hellman

Figură 2. Negociere cheie sesiune

Pasul 2 – Clientul cere autentificarea cu user -ul

Figură 3. Autentificare user
Pasul 3 – Serverul trimite un challenge

Figură 4. Trimitere challenge

Protocolul SSH

7 Pasul 4 – Clientul cripteaza challenge -ul cu cheia sa privata

Figură 5. Criptare challenge

Pasul 5 – Serverul foloseste cheia publica a clientului si calculeaza 𝑘+(𝑘−(𝑎𝑠𝑑𝑓𝑔 ℎ))=asdfgh

Figură 6. Decriptare string

Protocolul SSH

8 Componente Secure Shell

 SSHD Server : server care accepta conexiunile clientilor
 Clienti : programe care se conecteaza la serverele SSH si face cereri pentru servicii
 Set de utilitare pentru gestiunea cheilor

Arhitectura SSH

 Utilizatorul, prin clientul SSH, se conectează la portul TCP/22 al serverului
 Daca autentificarea are succes, SSHD de pe s erver creaza un proces SSHD care se va
ocupa de transferul SSH între cele 2 parti.
 procesul -copil SSHD creaza comenzile lansate de catre clien tul SSH si care sunt primite
de catre serve r
 procesul -copil SSHD cripteaza schimbul de mesaje
 clientul SSH decripteaza informa tia si o trimite catre apliatia utilizator

Figură 7. Arhitectura protocolului SSH

Protocolul SSH

9 Versiuni SSH

Caracteristici SSH 1 SSH 2
Verificarea integritatii
mesajelor Integritatea datelor prin
CRC32 (nu e sigura) Integritatea datelor prin HMAC
(encriptie hash)
Criptare Este folosit doar algoritmul
RSA pentru criptarea cu cheie
publica Sunt folositi algoritmii RSA si
DSA
Modificarea cheilor
de sesiune Exista o cheie de sesiune
valabila pentru intreaga
sesiune Cheia de sesiune se reinnoieste pe
parcursul sesiunii
Distributia cheilor
publice Cheia de sesiune transmisa de
client Este folosit algoritmul Diffie –
Hellman pentru distributia cheilor
publice
Suport pentru
certificate NU DA

SSH – 1

Este prima versiune a acestui protocol. Aceasta a fost lansata in anul 1995 si se compune din
trei protocoale majore: SSH -TRANS, SSH -USERAUTH, SSH -CONNECT.

SSH -TRANS
Acesta este un protocol de nivel transport care furnizeaza autentificarea,
confidentialitatea si i ntegritatea serverului .

SSH -USERAUTH
Acesta este protocolul folosit pentru autentificarea la stabilirea conexiunii . Acest
protocol este de asemenea de nível transport.

SSH -CONNECT
SSH-CONNECT este protocolul care multiplexeaza datele criptate in fluxuri logice .
Pentru a initia conexiunea securizata, clientul trimite informatii de autentificare catre
serverul SSH criptate pe 128 biti. Fiecare server gazda are o cheie pentr u a verifica
comunicarea client -server. De asemenea, aces ta are o cheie publica a serverului SSH
corespunzator.
Fiecare pachet de date este criptat cu ajutorul algoritmilor de criptare DES, 3DES,IDEA,
Blowfish.
Protocolul SSH foloseste in mod implicit portul TCP 22 .
Compresia datelor este de asemenea suportata d e SSH. Aceasta este utila pentru
conexiuni lente, poate spori productivitatea. Pe de alta part, in cazul unei conexiuni mai
rapide, co mpresia poate duce la transferuri mai lente, mai ales in functie de tipul de date
transferat.

Protocolul SSH

10
SSH – 2

SSH versiunea 2 a fost introdus in anul 2006, avand multe imbunatatiri semnificative
fata de SSH versiunea 1. Dar desi este o imbunatatire a SSH -1, aceste doua protocoale nu sunt
compatibile.
SSH-2 a fost rescris adaugand mai multe mecanisme pentru evitare a vulnerabilitatilor.
Foloseste un set de algoritmi de criptare si autentificare imbunatatiti, de exemplu DSA
(Digital Signature Algorithm).
SFTP ( SSH File Transfer Protocol , sau Secure File Transfer Protocol ) este un
protocol care asigura transferul de fisiere, precum si gestionarea fisierelor. Acest protocol a
fost adaugat ca o extensie a SSH versiunea 2 pentru a ofer i un transfer securizat al fisierelor.
SSH versiunea 2 permite negocierea tipului de cifrare care va fi utilizat. La conectare,
serverul t rimite clientului lista cu algoritmii de criptare suportati, iar clientul alege primul
algoritm de pe lista pe care il suporta.

Criptarea datelor

Criptografia reprezinta procesul de transformare a unui text clar intr -un text cifrat. Ea
sta la baza mul tor servicii de securitate folosite in Internet, folosind modele matematice pentru
a ascunde continutul datelor.
Una dintre metodele de criptare ale protocolului SSH este bazata pe algoritmul RSA
(Rivert -Shamir -Adleman ), un algoritm de criptare cu chei pub lice.
Criptarea datelor protejeaza importiva atacurilor de tip „ sniffing ” si „ eavesdropping ”.
Criptografia cu chei publice functioneaza dupa urmatorul algoritm: O persoana care
doreste sa primeasca/trimita un mesaj detine doua chei, una publica si una privata. Cheia
publica poate fi vazuta de oricine, cheia privata, in schimb, va fi secreta pe statia locala. Daca
cineva va dori sa trimita un mesaj acestei persoane va lua cheia publica a acesteia si va cripta
mesajul. Cand mesajul va ajunge la destinatie, utilizatorul care detine cheia privata, respectiv
perechea cheii publice cu care a fost criptat, va decripta mesajul cu ajutorul acesteia.

Integritatea datelor

Integritatea nu e sinonima cu criptarea.
Integritatea datelor garanteaza ca datele trimise ajung nealterate la destinatar. Chiar si
cu criptarea SSH datele trimise prin retea ar putea deveni vulnerabile datorita atacurilor care
pot interveni (de tip „ insertion ” sau „ replay ”). SSH versiunea 2 util izeaza algoritmi pentru
calcularea codului MAC (Message Authentication Code ) pentru a imbunatati metoda de
verificare a integritatii folosita de SSH versiunea 1 ( CRC pe 32 biti ).
Punerea in aplicare a acestor algoritmi de calculare a codului MAC previne atacurile
de tip „ insertion ” si „ replay ”. In aceste tipuri de atacuri, atacatorul nu doar monitorizeaza
sesiunea SSH, ci si observa intrarile de la tastatura. Comparand ceea ce tasteaza utilizatorul cu
traficul din sesiunea SSH, atacatorul poate deduce car e este pachetul care contine o anumita

Protocolul SSH

11 comanda, de exemplu de stergere a tuturor fisierelor. Apoi acesta poate „retasta” (de aici
„replay ”) aceasta comanda in timpul sesiunii.
Protoculul SSH -2 foloseste verificarea integritatii, verificand daca datele nu a u fost
alterate de -a lungul canalului de transmisie si in acelasi timp daca informatia a fost transmisa
intr-adevar de la celalalt capat al canalului ci nu de o a treia persoana (atacator). SSH -2
utilizeaza algoritmi hash cu chei bazate pe MD5 si SHA -1, algoritmi de incredere si cunoscuti
pe scara larga. Pe de alta parte, SSH -1 foloseste, comparativ cu succesorul sau, o metoda
relativ mai slaba, si anume calcularea unui CRC pe 32 de biti ( cyclic redundancy check )
pentru datele necriptate din fiecare pachet. Aceasta metoda se bazeaza pe teoria polinoamelor
de lungime maxima si desi este mai sigura decat o simpla suma de control, nu ofera o
adevarata securitate criptografica.

Formatul pachetelor

Dupa ce se stabileste conexiunea dintre client si server, acestia isi trimit date unul
celuilalt, denumite pachete. Fiecare pachet are urmatorul format ( Figura 8 ):

Figură 8. Formatul pachetelor

Lungimea pachetului: lungimea in octeti a pachetului, dar care nu include
urmatoarele campuri: lungimea pachetului si codul MAC ( Message Authenti cation Code ).

Protocolul SSH

12 Payload: Acest camp constituie continutul pachetului.
Padding: Acesta contine biti de umplutura aleatori, astfel incat lungimea totala a
pachetului (excluzand campul MAC) este multi plu de lungimea blocului in cazul cifrurilor pe
blocuri sau de 8 bytes in cazul cifrurilor pe flux.
MAC (Message Authenti cation Code): Valoarea MAC este calculata peste intregul
pachet plus un numar de secventa , care este o secventa implicita de 32 biti (i nitial zero,
incrementandu -se pentru fiecare pachet) .
In figurile urmatoare (Figura si Figura) sunt ilustrate capturi ale traficului criptat SSH:

Figură 9. Observam algoritmul de criptare folosit si algoritmul de negociere a cheii de sesiune

Figură 10. Observam ca traficul in sesiunea SSH este criptat

Protocolul SSH

13 Post forwarding

Port forwarding (redirectionarea portului) este un instrument care asigura
confidentialitatea si integtitatea aplicatiilor TCP/IP (e-mail, vanzari, aplicatii cu baze de date,
etc.). SSH permite redirectionarea traficului de la program (de obicei client) , trafic care este
transmis in mod criptat si directionat catre celalalt capat al tunelului (de obicei server).

In alte cuvinte, aceasta redirectionare consta in incapsularea unui alt serviciu bazat pe
TCP, cum ar fi telnet sau IMAP intr -o sesiune SSH. Acest lucru introduce avantajele de
securitate ale SSH -ului acestor servicii. De exemplu, o conexiune Telnet obisnuita transmite in
clar numele de utilizator, parola si restul sesunii de autentificare. Prin redirectionarea Telnet –
ului prin SSH, aceste date sunt in mod automat criptate si verifica te pentru integritate .

Figură 11. Port forwarding permite mai multor aplicatii TCP/IP sa partajeze o conexiune SSH securizata.

Atacuri SSH

Protocolul SSH protejeaza sistemul importiva urmatoarelor atacuri:

Eavesdropping sau password sniffing

Un eavesdropper (rom. spion ) este un dispozitiv de retea, cunoscut si sub numele de
„sniffer”. Acsta intercepteaza informatiile transmise de -a lungul canalului de comunicatie.
Acest lucru are loc fara ca atat clientul cat si serv er-ul sa fie constienti si se numeste
monitorizare pas iva. In acest mod, datele utilizatorului, precum parola, pot fi descoperite daca
sunt folosite protocoale nesigure de comunicatie, precum telnet si FTP.
Pentru ca datele din sesiunea SSH sunt criptate, acestea nu sunt vulnerabile la acest tip
de atac si nu pot fi decriptate de catre atacatori.

Protocolul SSH

14 Atacul Man -in-the-Middle

In cazul in care conexiunea si schimbul de chei intre un client si o gazda au fost
comprimise , atacatorul „ Man-in-the-Middle ” pacaleste atat clientul cat si serverul sa creada ca
acestia comunica direct unul cu altul, pe cand, de fapt, acesta intercepteaza tot traficul dintre
acestia doi, precum este ilus trat in figura de mai jos ( Figura 1 2):

Figură 12. In atacul „Man -in-the-Middle” Eve poate citi toate datele in clar trimise intre Bob si Alice.
SSH previne acest atac.

Clientul (Bob) initiaza o conexiune cu serverul (Alice). Un atacator (Eve) asteapta sa
intercepteza datele din negocierea conexiunii acestora.
Eve a primit cererea lui Bob pentru conexiune si se autentifica in locul lui Alice. Eve
apoi initiaza o conexiune cu Alice dandu -se drept Bob. In momentul de fata Eve are acces la
toate datele care sunt trimise intre Bob si Alice in text clar.
Protocolul SSH ofera protectie importiva atacurilor de tip „ Man-in-the-Middle ” prin
autentificarea serverului gazda. Cu exceptia cazului in care gazda a fost compromisa,
atacatorul nu are acces la cheia privata a serverului si deci nu poate juca rolul lui Alice.

Atacuri de tip „replay” si „insertion”

In aceste tipuri de atacuri, atacatorul monitorizeaza sesiunea SSH si de asemenea
monitorizeaza intrarile de la tastatura ale utilizatorului. Comparand ceea ce a tastat utilizatorul
cu traficul de date din fluxul SSH, acesta poate deduce ce pachet contine o anumita comanda
(de exemplu comanda de stergere a tuturor fisierelor) si mai apoi acesta poate „relua” aceasta
comanda („ replay ”) in orice moment in timpul sesiunii.
Prin punerea in aplicare a algoritmil or de calculare a codului MAC ( Message
Authent ication Code ) se previne amenintarea atacurilor de tip „ replay ” si „ insertion ”.

Protocolul SSH

15 Bibliografie
Cusack, F. a. (2006). Generic Message Exchange Authentication for the Secure Shell Protocol
(SSH) – RFC 4256.
Difference Between SSH1 and SSH2. (2012). Preluat de pe differencebetween.com:
http://www.differencebetween.com/difference -between -ssh1-and-vs-ssh2/
Lehtinen, S. a. (2006). The Secure Shell (SSH) Protocol Assigned Numbers – RFC 4250.
LUPSA, R. -L. (2004, ianuarie 5). Protocoale securizate. Preluat de pe
http://www.cs.ubbcluj.ro/~rlupsa/edu/retele -2003/c5.html
Razvan Rughinis, R. D. (2008). Retele locale. PRINTECH.
Stallings, W. (fără an). Protocol Basics: Secure Shell Protocol . Preluat de pe Cisco.com:
http://www.cisco.com/c/en/us/about/press/internet -protocol -journal/back -issues/table –
contents -46/124 -ssh.html
VanDyke Software . (fără an). An Overview of the Secure Shell (SSH). White Paper.
Ylonen, T. (1996). SSH – Secure Login Connecti ons over the Internet.
Ylonen, T. a. (2006). The Secure Shell (SSH) Authentication Protocol – RFC 4252.
Ylonen, T. a. (2006). The Secure Shell (SSH) Connection Protocol – RFC 4254.
Ylonen, T. a. (2006). The Secure Shell (SSH) Protocol Architecture – RFC 4251.
Ylonen, T. a. (2006). The Secure Shell (SSH) Transport Layer Protocol – RFC 4253.

Similar Posts