Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:laboratoare:new:10-sec:concepts [2018/12/09 00:26]
liza_elena.babu
uso:laboratoare:new:10-sec:concepts [2019/12/18 19:15] (current)
octavian.guzu [Prezentarea și securizarea datelor (encodare, criptare, hashing)]
Line 33: Line 33:
 </​note> ​ </​note> ​
  
-{{ :​uso:​laboratoare:​new:​10-sec:​image_md5.jpg?500 |}} +{{ :​uso:​laboratoare:​new:​10-sec:​lab10_hash1.png?500 |}} 
-==== SSH și chile publice/​private ==== +==== SSH și cheile ​publice/​private ==== 
  
-În laboratoarele trecute, când foloseam SSH, era mereu nevoie să introducem parola utilizatorului pe care ne conectăm. Pentru a evită acest lucru (și a și securiza mașina virtuală de Linux) putem folosi o **pereche de chei** publice și private. Aceste chei sunt folosite de un algoritm de criptare asimetric (folosește 2 chei). Numim **E(m, ​k)** encriptarea ​unui mesaj cu cheia p și **D(m, ​k)** decriptarea unui mesaj cu cheia k, p = cheia publică, iar s = cheia secretă. Nu intrăm în concepte de matematică,​ ci doar vom explica simbolic cum funcționează un algoritm de criptare asimetric: ​+În laboratoarele trecute, când foloseam SSH, era mereu nevoie să introducem parola utilizatorului pe care ne conectăm. Pentru a evită acest lucru (și a și securiza mașina virtuală de Linux) putem folosi o **pereche de chei** publice și private. Aceste chei sunt folosite de un algoritm de criptare asimetric (folosește 2 chei). Numim **E(m, ​p)** criptarea ​unui mesaj cu cheia p și **D(m, ​s)** decriptarea unui mesaj cu cheia s, p = cheia publică, iar s = cheia secretă. Nu intrăm în concepte de matematică,​ ci doar vom explica simbolic cum funcționează un algoritm de criptare asimetric: ​
  
 1. Orice mesaj criptat cu cheia **publică** poate fi decriptat doar cu cheia **privată**:​ **D(E(m, p), s) = m**  1. Orice mesaj criptat cu cheia **publică** poate fi decriptat doar cu cheia **privată**:​ **D(E(m, p), s) = m** 
Line 42: Line 42:
 2. Orice mesaj criptat cu cheia **privată** poate fi decriptat doar cu cheia **publică**. **D(E(m, s), p) = m**  2. Orice mesaj criptat cu cheia **privată** poate fi decriptat doar cu cheia **publică**. **D(E(m, s), p) = m** 
  
-Revenind la **SSH**, userul **student** își generează o pereche de chei publice/​private pe mașina sa locală și copiază **cheia publică** pe mașina virtuală. Când se autentifică pe aceasta cu userul student, primește un **challenge**:​ criptează-mi cu cheia privată a userului student mesajul ''​Salut sunt student!''​. Mașina locală criptează mesajul cu cheia privată și o trimite la server. Serverul decriptează mesajul și obține un mesaj valid. Trudy nu poate encripta ​același mesaj deoarece nu cunoaște cheia privată, și deci serverul va obține o decriptare invalida și nu îi va permite accesul. ​+Revenind la **SSH**, userul **student** își generează o pereche de chei publice/​private pe mașina sa locală și copiază **cheia publică** pe mașina virtuală. Când se autentifică pe aceasta cu userul student, primește un **challenge**:​ criptează-mi cu cheia privată a userului student mesajul ''​Salut sunt student!''​. Mașina locală criptează mesajul cu cheia privată și o trimite la server. Serverul decriptează mesajul și obține un mesaj valid. Trudy nu poate cripta ​același mesaj deoarece nu cunoaște cheia privată, și deci serverul va obține o decriptare invalida și nu îi va permite accesul. ​
   ​   ​
  
Line 67: Line 67:
 Pentru baza de date de mai sus, parola lui Mihai a putut fi spartă, dar cea a lui Andrei nu. Andrei a avut o parola mai lungă, dar acest lucru nu asigură neapărat siguranța ei.  Pentru baza de date de mai sus, parola lui Mihai a putut fi spartă, dar cea a lui Andrei nu. Andrei a avut o parola mai lungă, dar acest lucru nu asigură neapărat siguranța ei. 
  
-3. O abordare finală ar fi să folosim un salt pentru hash-uirea parolei. Salt-ul este un string random de câteva caractere random ce se folosește în felul următor la construirea unui hash: Hash(salt | parolă), unde "​|"​ înseamnă concatenare. Astfel, salt-ul previne atacul cu dicționar de mai sus deoarece este foarte puțin probabil ca hash-ul respectiv să existe într-un dicționar. Salt-ul se stochează în clar   ​de date. +3. O abordare finală ar fi să folosim un salt pentru hash-uirea parolei. Salt-ul este un string random de câteva caractere random ce se folosește în felul următor la construirea unui hash: Hash(salt | parolă), unde "​|"​ înseamnă concatenare. Astfel, salt-ul previne atacul cu dicționar de mai sus deoarece este foarte puțin probabil ca hash-ul respectiv să existe într-un dicționar. Salt-ul se stochează în clar în baza de date. 
  
 ^  ^ Salt ^ Password ^  ^  ^ Salt ^ Password ^ 
-| Mihai | 3*6as0':​+ ​| f98ad20d2f42dcd4e53a4d1f40f9c1a5 | +| Mihai | dfd454ddf ​| f98ad20d2f42dcd4e53a4d1f40f9c1a5 | 
  
-Pentru Mihai, ​  este: Hash(3*6as0':​+mereverzi). +Pentru Mihai, ​  este: Hash(dfd454ddfmereverzi). 
  
 {{ :​uso:​laboratoare:​new:​10-sec:​image_crack_2.png?​900 |}} {{ :​uso:​laboratoare:​new:​10-sec:​image_crack_2.png?​900 |}}
Line 78: Line 78:
 ==== Password manager ====  ==== Password manager ==== 
  
-tot este recomandat ​ avem parole ​  ​lungi ​ complexeDiferite ​   ​parole ​diferite ​ tot așa. Pentru ​  ​folosirea de parole sigure ​ diferite este  folosirea unui password manager precum [[https://​www.lastpass.com/​business-password-manager|acesta]]. Un password manager aduce următoarele avantaje: ​+Oriunde ne-am crea un nou cont, ne este recomandat ​să ne setăm o parolă cât mai lungă și mai complexă. Totodată este bine să avem câte o parolă diferită pentru fiecare cont pe care îl avem. Refolosirea unei parole ​nu înseamnă decât creșterea riscului de ni se fura datele. Pentru folosirea de parole sigure ​și diferite este recomandată ​folosirea unui password manager precum [[https://​www.lastpass.com/​business-password-manager|acesta]]. Un password manager aduce următoarele avantaje: ​
  
--Stochează el parolele pentru fiecare ​site, astfel ​ nu vor trebui memorate ​ vor  fi folosite ​parole ​complexe ​ +  ​- Stochează el parolele pentru fiecare ​website, astfel ​utilizatorul ​nu trebuie să mai rețină ​parole ​complicate 
--Se  ​share-ui ​anumite parole cu  utilizatori ​+  - Se pot partaja ​anumite parole cu alți utilizatori ​
  
 ==== HTTP vs HTTPS ====  ==== HTTP vs HTTPS ==== 
  
-Protocolul de rețea **HTTP** aduce beneficii din multe puncte de vedere. Unul din dezavantajele lui este faptul că toate datele sunt trimise în clar. Astfel, un atacator precum Trudy va putea intercepta și înțelege un pachet HTTP. +Protocolul de rețea **HTTP** aduce beneficii din multe puncte de vedere. Unul dintre ​dezavantajele lui este faptul că toate datele sunt trimise în clar. Astfel, un atacator precum Trudy va putea intercepta și înțelege un pachet HTTP. 
  
-Acest start suplimentar necesar de criptare este aduc de **HTTPS**, detaliat mai pe larg [[https://​ro.wikipedia.org/​wiki/​HTTPS|aici]]. Funcționarea lui este asemănătoare cu ce am descris mai sus la SSH. +Acest start suplimentar necesar de criptare este adus de **HTTPS**, detaliat mai pe larg [[https://​ro.wikipedia.org/​wiki/​HTTPS|aici]]. Funcționarea lui este asemănătoare cu ce am descris mai sus la SSH. 
  
-{{:​uso:​laboratoare:​new:​10-sec:​image_https.png?​nolink&500|}}+{{ :​uso:​laboratoare:​new:​10-sec:​image_https.png?​500 |}}
  
uso/laboratoare/new/10-sec/concepts.1544307962.txt.gz · Last modified: 2018/12/09 00:26 by liza_elena.babu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0