SSL operacioni

**SSL - Secure Sockets Layer** është teknologji e standardeve të sigurisë për vendosjen e një lidhje të enkriptuar në mes të një  serveri  dhe nje klienti – zakonisht nje web server dhe nje shfletues( browser); Kjo lidhje siguron që të gjitha të dhënat që kalojnë përmes serverit dhe klientit të jenë private dhe të integruara. Për të krijuar lidhjen SSL web serveri kërkon  një SSL çertifikatë. Kur ju të vendosni të aktivizoni SSL-in në web serverin tuaj ju do të duhet të përgjigjeni në disa pyetje rreth identitetit të web faqes dhe kompanisë suaj.
Kompleksiteti i SSL-it mbetet i padukshëm për klientët. Në vend të kësaj shfletuesi i tyre u shfaq shenja me të cilat i njofton se janë të mbrojtur me SSL – ikona e drynit dhe emri i kompanisë me ngjyrë të gjelbër(shihni figurën e mëposhtme).Të gjitha çertifikatat SSL lëshohen ose nga kompanitë ose nga individët e përgjegjshëm ligjërisht. Zakonisht një SSL Certifikatë do të përmbajë emrin e domenit, emrin e kompanisë tuaj, adresën, qytetin, shtetin dhe vendin tuaj. Po ashtu do të përmbajë datën e skadimit të Çertifikatës dhe detajet rreth përgjegjësisë së CA për lëshimin e kësaj Certifikate. 

## SSL Operacioni
Megjithëse SSL protokolli nuk është protokoll ekstrem i komplikuar, ai ofron disa opsione dhe variante. Do të spjegojmë rastin më të thjeshtë: krijimin e një kanali të enkriptuar të komunikimit. SSL protokolli përbëhet nga një strukturë e mesazheve dhe rregullave se kur duhet të dërgohet secili mesazh.

### SSL rolet
SSL protokolli definon dy role të ndryshme për palët komunikuese. Njëri sistem është gjithmonë klienti, përderisa tjetri është server. Dallimi është shumë i rëndësishëm, sepse SSL kërkon që këto dy sisteme të sillen ndryshe nga njëra-tjetra. Në rastin më të shpeshtë të përdorimit të SSL, në sigurimin e Web shfletuesve, klienti(Web shfletuesi) është sistemi që e inicion komunikimin e sigurt; serveri(Web serveri) i  pergjigjet kërkesës së klientit. Kur SSL klientët dhe serverët komunikojnë, atë e bëjnë duke shkëmbyer SSL mesazhet.

### Krijimi i komunikimeve të enkriptuara
Funksioni më bazik të cilin e kryen SSL klienti dhe serveri është krijimi i një kanali për komunikimet e enkriptuara. Më poshtë shpjegohen kërkesat e këtij operacioni rreth shkëmbimit të mesazheve.
* **Klienti dërgon mesazhin ClientHello duke propozuar opsionet e SSL**
Klienti e përdor këtë mesazh për të ftuar serverin të fillojnë bisedimet për shërbimet e sigurta duke përdorur SSL. 
*ClientHello mesazhi ka disa komponente të rëndësishme:
***Versioni* (Identifikon versionin më të lartë të SSL protokollit që klienti e përkrah)
***RandomNumber*(Një numër random 32-bitësh që përdoret për të filluar kalkulimet  kriptografike.)
***SessionID* (Identifikon një seancë specifike të SSL)                                                                                                                                                                                                                                                                                                                       
***CipherSuites* (Një listë e parametrave kriptografikë që klienti përkrah)
***CompressionMethods* (Identifikon metodat e kompresimit të të dhënave që klienti përkrah)

* **Serveri përgjigjet me mesazhin ServerHello duke zgjedhur opsionet e ofruara të SSL**
Përmbajtja e ServerHello është pak a shumë e njëjtë sikur e ClientHello. Këtu janë pak dallime të rëndësishme. Në përgjithësi kur klienti i bën sugjerimet në mesazhin e tij ClientHello, serveri i merr vendimet përfundimtare në ServerHello-n e tij. Pra, vendimin final e bën serveri, por mundësitë e zgjedhjeve janë brenda propozimeve të dërguara nga klienti. 
*Komponentët e këtij mesazhi janë:
***Version* (Vendos versionin e SSL protokollit që do të përdoret për këtë komunikim)
***RandomNumber* (Një numër i rastësishëm 32-bitësh që përdoret për të filluar kalkulimet kriptografike)
***SessionID* (Një vlerë që identifikon seancën specifike të SSL, në mënyrë që të mund t’i referohet seancës së caktuar më vonë)
***CipherSuite* (Përcakton parametrat e saktë kriptografikë, veçanërisht algoritmet dhe gjatesitë e çelësave që do të përdoren për këtë seancë)
***CompressionMethod* (Përcakton metodën për kompresimin e të dhënave që do të përdoret për këtë komunikim)

* **Serveri dërgon çelësin e tij publik përmes mesazhit ServerKeyExchange**
*Ky mesazh e plotëson fushën CipherSuite të ServerHello mesazhit. Përderisa fusha CipherSuite përcakton algoritmet kriptografike dhe gjatësitë e çelësave, ky mesazh përmban informacionet e çelësit publik të tij. Vëreni që mesazhi ServerKeyExchange transmetohet pa u enkriptuar, kështu që vetëm infomacionet e çelësit publik mund të përfshihen të sigurta brenda tij. Klienti do të përdor çelësin publik të serverit për të enkriptuar çelësin për këtë seancë, të cilin të dy palët do ta përdorin për t’i enkriptuar të dhënat gjatë kësaj seance.

* **Serveri perfundon pjesen e tij te bisedes me mesazhin ServerHello-Done**
*Ky mesazh i tregon klientit që serveri ka përfunduar me mesazhet inicuese të bisedës. Mesazhi nuk përmban tjetër informacion, por ka rëndësi për klientin sepse në këtë mënyrë e din që mund të kalojë në fazat tjera të krijimit të kanalit të sigurt të komunikimit.

* **Klienti dërgon informacionet e çelësit për këtë seancë (të enkriptuar me çelësin publik të serverit) perms mesazhit ClientKeyExchange**
*Sikur që ServerKeyExchange siguron informacionet e çelësit të serverit, ClientKeyExchange i tregon serverit informacionet e çelësit të klientit. Në këtë rast, informacionet e çelësit janë të algoritmit kriptografik simetrik të cilin do ta përdorin të dy palët komunikuese. Veç kësaj, informacionet në mesazhin e klientit janë të enkriptuara duke përdorur çelësin publik të serverit. Ky enkriptim mbron informacionet e çelësit gjatë transmetimit nëpër rrjet, dhe i mundëson klientit të verifikoj që serveri me të vërtetë posedon çelësin privat që korrespondon me çelësin e tij publik. Përndryshe, serveri nuk do të mund ta dekriptoj këtë mesazh. Ky operacion është një mbrojtje e  rëndësishme kundër sulmuesit që ndërpret mesazhin. Pasi ky sulmues nuk e din çelësin privat të serverit të vërtetë, nuk do të mund të dekriptoj mesazhin e dërguar nga klienti.

* **Klienti dërgon mesazhin ChangeCipherSpec qe të aktivizoj opsionet e negociuara për mesazhet e ardhshme që do të dërgohen**
*Në këtë pikë, palët janë të gatshme të fillojnë të përdorin shërbimet e sigurta të cilat i kanë negociuar. SSL protokolli definon një mesazh special – ChangeCipherSpec- qe të tregojë në mënyrë të qartë që shërbimet e sigurta tani duhet të fillojnë.

* **Klienti dërgon mesazhin Finished që të lejoj serverin t’i kontrolloj opsionet e reja të aktivizuara**

* **Serveri dërgon mesazhin ChangeCipherSpec që të aktivizoj opsionet e negociuara për të gjitha mesazhet e ardhshme që do t’i dërgoj**

* **Serveri dërgon mesazhin Finished që të lejoj klientin të kontrolloj opsionet e reja të aktivizuara**
*Menjëherë pasi që të dërgohen mesazhet ChangeCipherSpec, secili sistem po ashtu dërgon mesazhet Finished. Këto mesazhe iu mundësojnë të dy sistemeve të verifikojnë që negociatat kanë qenë të suksesshme dhe që siguria tash është arritur. Dy aspekte të këtij mesazhi kontribuojnë për këtë siguri . Së pari, vetë mesazhi është subjekt i përcjelljes të enkriptuar që u negociua. Kjo do të thotë që ka arritur të dekriptohet dhe të autentifikohet me rregull. Përmbajtja e këtij mesazhi po ashtu shërben të mbron sigurinë e SSL marrëveshjes. Secili Finished mesazh përmban një hash të enkriptuar të informacioneve të negociatës të sapo përfunduar. Informacionet që autentifikon një Finished mesazh janë : informacionet e çelësit, përmbajtjet e të gjitha handshake mesazheve të SSL  të shkembyera më përpara nga sistemet, një vlerë speciale që përcakton nëse dërguesi është klient apo server.
## Referime