Wikipedia:WikiProjekti Studenti&Wikipedia/Pamje përgjithshme e SSL

Nga Wikipedia, enciklopedia e lirë
Jump to navigation Jump to search
Merge-arrows.svg
Ndihmoni që kjo pjesë dhe pjesa SSL të bashkohen në një artikull të vetëm. {{{2}}}


Pamje përgjithshme rreth SSL[Redakto nëpërmjet kodit]


  Tabela e Përmbajtjes


1 Abstrake 1.1 Historia e SSL…………………………………………………………………………………………………………………………..1

2 Hyrje 2.1 Pamje përgjithshme rreth SSL….……………………………………………………………………………………………..2

   2.2  Webi dhe SSL…………………………………………………………………………………………………………………………..3
   2.3  Historia e SSL….……………………………………………………………………………………………………………………….4

3 Konceptet e Sigurisë 3.1 Enkriptimi………………………………………………………………………………………………………………………….……6

   3.2  Hash Funksionet………………………………………………………………………………………………………………….….7
   3.3  Kodet per Authentikim te Mesazhit…………….……………………………………………………………………………..….8
   3.4 Kriptografia Celsi Publik dhe Nënshkrimi Digjital…………………………………………………………………………….9
     

4 Bazat e Dizajnit te SSL

   4.1 Protokolli Handshake i SSL ………………………………………………………………………………………………………………9
   4.2 Protokolli ChangeCiperSpec i SSL………………………………………………………………………………………..………….10
   4.3 Protokolli Alert i SSL……………………………………………………………………………………………………..………………..11
   4.4 Protokolli Record i SSL……………………………………………………………………………………………………………..…….12
   4.5 Tipet e konektimit te SSL………………………………………………………………………………………………………………..13

5 Përfundimi

   5.1 Përmbledhje…………………………………………………………………………………………………………………………………..14
   5.2 Prespektiva e SSL……………………………………………………………………………………………………………………………15



1 Abstrake Siguria e rrjetave tani më është shëndrruar në njërën nga ceshtjet më me rëndesi në boten e komunikimt modern. Sa hërë që kemi te bëjmë me transferime te informacioneve personale ,financiale ose biznesore,klientet dëshirojnë të sigurohen se me kënd janë duke komunikuar(authentifikimi),poashtu ata dëshirojnë të jenë të sigurtë për ate se cfarë kanë dërguar dhe atë cfarë kanë pranuar(integriteti),e rëndësishme gjithashtu është që të tjërët mos të arrijnë të pengojnë komunikimin mes paleve (privatësia). Për këtë në punë hyn SSL(Secure Sockets Layer).Për të kuptuar më mirë punën e SSL në fillim kërkohet që të kemi disa njohuri bazike rreth sigurisë së komunikimeve dhe degës së kriptografisë,për këtë fillimisht do të njihemi me disa koncepte të përgjithshme rreth sigurisë në mënyrë që të kuptojmë më mirë mekanizmat e sigurisë të cilat i perdorë protokolli SSL.


1.1 Historia e SSL Kompania Netscape Communications ishte e para e cila zhvilloi SSL protokollin. Qëllimi fillimisht ishte që të arrihej të implementohej komunikim i sigurtë mes një browseri dhe webserveri. Nëntor 1994 pas disa tentimeve te shumta ,më në fund u arrit që të lancoheshin në përdorim kredit kartelat e para që shërbenin për transaksione si dhe server authentifikimet duke përdorur certifikatat digjitale dhe enkriptimin. Fillimisht SSL ishe vendosur në browserin Netscape Navigator 1.1. Mirpo versioni SSLv2 i saj shpejt doli se nuk ishte edhe aq i sigurtë sa dukej.Wanger dhe Goldberg tregun se edhe një lidhje e sigurtë komunikuese mund të thyhej brenda një ore. Për ti adresuar këto probleme shumica e firmave qe përdorinin këtë protokoll ,filluan të zhvillojnë një numër të varianteve të pavaruara të këtij protokolli. Më i rëndësishmi ishte ai i Microsoft’s Private Communications Technology (PCT) [10], i lancuar ne Tetor 1995. Keshtu qe Netscape shume shpejt filloi te punsojë këshilltarë të sigurisë të cilët do të punonin për zhvillimin e një versioni të ri dhe më të sigurtë të SSL. Ky projekt morri formën e fundit në fund të vitit 1995 me lancimin e versionit “SSLv3” duke dhuruar kështu një algoritem më të fuqishëm dhe më të edhe një numër të shumë të madh përgjigjjeve në lidhje me problemet e mëparshme që kishin të bënin me sigurinë e SSL. Në Maj 1996 një grup i inxhinierve i njohur si “IETF” u përpoqën që të bënin standardizimin e një protokolli të përbashkët SSL-i të cilin e quajtën “TLS “ (Transport Layer Security). Kjo ishte edhe një shenjë e qartë e tentimit për të arritur një harmoni mes Microsft dhe Netscape.Në po të njetin vit Microsoft erdhi me një përfundim të ri duke e emruar protokollin si “STLP “ (Secure Transport Layer Protocol), i cili nuk kishte ndryshime të mëdha,përveq disa modifikmeve të versionit SSLv3,duke ofruar kështu disa opsione të reja të cilat Microsoft i konsideronte si kritike si psh : Mbështetja për datagrame (UDP) si dhe authentifikimi i klientëve duke perdorur sekrete te dyanshme (shared). Pas takimeve të shumta ,grupi që punonte në TLS vendosi që të riemroje standardin e tyre edhe pse asnjera nga palët nuk ishte plotësisht e kenaqur. Mirpo pa marrë parasysh emrin e protokollit të ri ,ai nuk ishte asgjë më shumë se nje pasqyrim i verisonit SSLv3. Grupi që punonte në TLS përfundoi projektin në Janar 1991 dhe kështu përfundimisht publikoj versionin TLS si RFC 2246 me dy vite vonesë,arsye kryesore për këto vonesa qëndronte në problemin në compatibilitetin me SSLv3 dhe disa mosmarrveshjeve me grupin IESG( Internet Engineering Steering Group ),i cili bënte nënshkrimin e cfardo dokumenti i cili do te publikohej si RFC (Request For Comment). Në fund browseret si Internet Explorer ashtu edhe Netscape/Mozilla përkrahnin TLS dhe SSL.


2 Hyrje 2 .1 Pamje përgjithshme rreth SSL Transferimi i të dhënave në rrjetë gjithmonë rrezikon konfidencialitetin,integritetin apo edhe autenthifikimin ne piken fundore te destinuar të asaj të dhëne. Keto janë tri aspektet krysore të cilat duhet te konsiderohen primare kur flasim për sigurinë e të dhënave. • Konfidencialiteti: Në momentin kur dëshirojmë të sigurohemi se e dhëna jonë është mbajtur sekret nga klient të cilet nuk këne qenë të destinuar për ta pranuar te dhënen apo ndegjues të padëshiruar.

• Integriteti I Mesazhit: Në rastin kur dëshirojmë të sigurohemi se cdo mesazh që kemi pranuar është i njejtë (identike) me atë të dhënën të cilën dërguesi ka derguar.

• Authentifikimi i Pikës Fundore: Në momentin kur dëshirojme të sigurohemi se partneri me të cilin po komunikojmë është po ai me te cilin kemi pasur qëllim te komunikojmë.

SSL është protokoll i sigurisë , i cili prodhon mekanizmat e duhur për ti arritur këto qëllime me ndihmën e përdorimit të kriptografisë ,certifikatave si dhe nënshkrimeve digjitale. SSL mundëson kanale të sigurta mes dy makinave,të cilat si zakonisht i hasim me emrat Klient(Browseri) dhe Server(Web Serveri). Një kanal i sigurtë SSL ofron transparencë që domethënë ,përmes enkriptimit e dhena dërgohet e pa ndryshuar. SSL mund të përfshihet gjithashtu në protokolle më të larta siq janë : HTTP,FTP,NNTP dhe atë me disa modifikime të vogla ,të cilat në shumicën e rasteve janë mjaftë të konvenueshme.


Figure 1:  SSL operon mbi protokollin  TCP/IP si dhe ne protokolle te tjera te aplikacioneve high-level 

2 .2 Webi dhe SSL Njëra ndër arsyet primare të përdorimit të SSL është për të mbrojtur web trafikun mbi HTTP. Tcp mbështet cdo SSL kërkesë njejtë sic bën edhe me cfardo servisi të cfardo protokolli tjetër. Ky proces është mjaftë i thjeshtë : Me anë të HTTP startohet fillimisht një TCP lidhje dhe pastaj klienti kështu dërgon një kërkesë ,ndërsa serveri i përgjigjet asaj kërkese duke dërgur kështu një dokument.Me hyrjen e kanalit tv SSL në operim ,klienti përsëri krijon një lidhje TCP standarde , krijon një kanal SSL në krye të saj dhe i dërgon të njëjtën HTTP kërkesë vëtëm se këtë herë është duke perdour një kanal të sigurtë SSL. Serveri i kthen përgjigjjen në mënyren e zakonshme por këtë hërë edhe ai përdor një kanal të sigurtë SSL për t’ju përgjigjur klientit në fjalë. Problemi i vëtëm qëndron në faktin se një server i zakonshem HTTP nuk arrin ti kuptojë kërkesat SSL dhe këto kërkesa(të dhëna) i trajton si garbage(hedhurina). Zgjedhja për këtë problem vjen duke përdorur fillimin e URL-së si “HTTPS” dhe jo si një “HTTP” për të treguar kështu serverit se kërkesa duhet të bëhet në kanalin e sigurtë. Ndarja e tyre bëhet gjithashtu edhe sipas porteve , HTTP porti “ 80 “ ndërsa HTTPS porti “443”.

3 Konceptet e Sigurise Një ndër konceptet më të thjeshta të algoritmeve sa i përket sigurisë është enkriptimi. I ndertuar sipas idesë ku nga një e dhënë (text,plaintext) të fitohet një i ashtuquajtur “cipertext”(e dhënë e enkriptuar),duke përdorur një cels të specifikuar,zakonisht një string të gjatë 8 deri në 24 bytes të gjatë.


Figure 2 : Një pamje në nivelin e lartë të Enkriptimit dhe Dekriptimit.

Cipertexti rezultues nuk duket asgjë më shumë se një e dhënë e zakonshme ,vetëm se këtë here ky informacion duket se është plotesisht i paperdorshëm në pamje të parë. E vetmja gjë që mund të nxjerrim nga ky informacion i enkriptuar është gjatësia e plaintexit para se ai të jetë enkriptuar. Gjithsesi është mjaftë veshtirë të detektohet nese cipertexti është mixuar me të. Efektet e mundshme të mixmit të plaintexit me cipertextin varen nga algoritmi i cili kryen dekriptimin. Një algoritëm për kriptim konsiderohet eficient nese arrin ti përmbushë disa nga këto kërkesa sic janë: Siguria e cipertextit plotësisht determinohet nga : numri i celsave të mundshëm,sulmi i sukseshëm do të kërkonte një punë tepër të lodhshme dhe shumë të gjatë,siguria e ciperit do të varej vetëm nga sekreti i celsit dhe jo nga algoritmi ,në fakt algoritmi nuk ka nevojë të jetë sekret. Përdorimi i një celsi të vetëm për Enkriptim si dhe Dekriptim shpesh referohet si Secret Key Cryptography (SKC). Disa nga ciper agloritmet më të popullarizuar në treg janë : DES (Data Encryption Standard),Triple-DES(DES i përsëritur 3 herë),RC2 si dhe RC4.


3.1 Hash Funksionet Funksion i cili merr mesazhin e një gjatësie arbitrare si input dhe gjeneron një string të gjatësisë fixe si output. Ky string është thjeshtë një reprezantim i përmbajtjes së mesazhit inicializues. Hash Funksioni ka dy karakteristika kryesore : 1. Pakthyeshmërinë : për të procesuar një mesazh i cili është dhënë si hash është shumë e vështirë . 2. Rezistenca e Kollizionit : Do të ishte gati e pamundur të prodhoheshin dy mesazhe me hash të njejtë. Një ndër qëllimet kryesore të hash funksioneve është kalkulimi i nënshkrimeve digjitale si dhe kodeve për authentifikime të mesazheve (MAC – Message Authentication Codes). Disa nga Hash Algoritmet më të njohura janë :MD5 (Message Digest 5 ) dhe SHA-1 (Secure Hash Algorithm).

3.2 Kodet për Authentikim te Mesazhit Supozojmë se Alice dhe Bob dëshirojnë të komunikojnë njëri me tjetrin.Ata përdorin të njëjtin cels.Alice dëshiron ti dërgoje një mesazh Bobit.Ajo përdor celsin e saj për të enkriptuar mesazhin,pasi dëshiron që të rrit sigurinë gjatë transmetimit.Por si mundet që Bob të dije se mesazhi i ardhur është vërtetë nga Alice ,si mundet ai të sigurohet se mesazhi nuk ka qenë i kompromentuar dhe i ndryshuar gjatë rrugës së transmetimit. Qka nevojitet këtu është një vegël(tool) e re . Një Kod për authentifikimin e mesazhit është një hash algoritem i cili ndryshimin e vëtëm në krahasim me mesazhin e ka inkorporimin e një celsi gjatë procesimit. Edhe pse një MAC gjithmonë varet nga mesazhi si dhe celsi i cili përdoret për enkriptim. MAC zakonisht konstruktohet duke përdorur hash algoritmet.


3.3 Criptografia Celsi Publik dhe Nenshkrimi Digjital Criptografia me celes public njihet edhe si njëra ndër zgjedhjet më të populluara apo të përdorura në zgjedhjen e problemit të sigurisë. Per ndryshim nga Criptografia me celsin privat ,ky lloj enkriptimi përdorë celsa të ndryshëm për enkriptim dhe dekriptim. Celsi që përdoret për enkriptim është public ndërsa ai për dekriptim është cels privat i njohur vëtëm për pranuesin e të dhënës.Në këtë mënyrë secili mund të dërgojë mesazhe private përmes një kanali të komunikimit pa pasur nevojë të takohet me recipient(marrësin). PKC ofron konfidencialitetin duke zgjidhur kështu edhe problemin e parashkembimit të celsave. Mirpo PKC gjithashtu jep zgjidhje edhe sa i përket aspektit të authentifikimit në mënyren në të cilën një cels privat mund të përdoret gjithashtu në të ashtuquajturën Nënshkrimi Digjital. Lidhja mes Nënshkrimit Digjital si dhe Kodit te Authentifikimit të Mesazhit është e njëjta lidhje që egziston edhe mes PKC me SKC: kemi mundësi të përdorim celsin secret për të nënshkruar një mesazh si dhe pranuesi mund të përdore celsin public për të verifikuar nënshkrimin. Vetëm se sic dihet për dallim nga MAC, nënshkrimi digjital ka një karakteristikë në vete :mos-njohja.Që të dy edhe dërguesi ashtu edhe pranuesi mund të gjenerojne nga një MAC.


4 Bazat e Dizajnit te SSL Një lidhje SSL në gjeneral mund të implikoje dy faza të ndara nga njera tjetra ,të cilat janë : e ashtuquajtur “handshake”(shtrengim duarsh) dhe faza e transferimit të të dhënave. Para se te mund te bëhet cfardo dërgimi i të dhënave mbi një lidhje egzistuese SSL , duhet që fillimisht të kompletohet procesi handshake në mënyrë të suksesshme. E pastaj e dhëna e cila është duke u transferuar mund të ndahet në frame dhe të dërgohet si grup i sekuencave të ruajtura, gjatë fazës se transferimit të te dhenave .


4.1 Protokolli Handshake i SSL Inicializimi i një komunikimi të SSL gjithmonë vjen nga ana e klientit ,normalisht një web-browser në kërkesë të një URL-je. Shembull: https://paypal.com Protokolli Handshake ka tre qëllime kryesore : 1. Klienti dhe server duhet që të dy të pajtohen sa i perket vendosjes së një ciper në mënyrë që të dhenat të shkëmbehen në mënyrë të sigurtë. 2. Klienti dhe serveri duhet që në fillim të bëjnë shkëmbimin e një grupi të celsave të cilat do të përdoren me ciper. 3. Klienti ka mundesin opcionale që të authentifikojë veten në server.



4.2 Protokolli ChangeCiperSpec i SSL ChangeCiperSpec përdor një byte të vetëm me vlerën 1 për të indikuar një tranzicion në metoden ciper e cila përdoret për komunikim. Kjo është edhe njëra nga nën-protokollet më të thjeshta të SSL. Funksionaliteti i këtij protokolli përdoret në fazën përmbyllëse të procesit handshake(pas përfundimit të negociatave për vendosjen e parametrave të përkoshem ) për të sinjalizuar se mesazhi në vazhdim do të enkriptohet me parametrat e ri të sigurisë.

4.3 Protokolli Alert i SSL Protokolli Alert prodhon një exception handling për lidhjet e sigurta SSL.Mesazhet alert konsistojnë në dy lloje të bajtave ,bajti i parë indikon severity të një alerti(paralajmrimi),ndërsa bajti i dytë përmban kodin e alertit. Vlera e bajtit të parë ose është 1 ose 2 , ku 1 ka domethenje se mesazhi është një paralajmrim me vlerë 2,që domethënë se është një alert me pasoja fatale. Mesazhet alert në shumicën e rasteve janë të enkriptuara dhe opcionalisht të kompresuara.


4.4 Protokolli Record i SSL Tani më që serveri është authentifikuar dhe materiali kriptografik i nevojshëm është shkembyer mes serverit dhe klientit,kanali i sigurt SSL është vendosur më në fund dhe është i gatshem për të bërë transmetimin e mbrojtur të të dhënave. Në SSL transferimi i të dhënave bëhet duke përdorur protokollin “ Record “, i cili së pari fragmenton të dhënen në sëri të rekordeve të mbrojtura dhe pastaj dërgon atë në mënyre të pavarur nëper kanal. Dy konceptet baze të cilat kanë rëndësi në kontekstin SSL janë: SSL sesionet dhe SSL lidhjet Një SSL session është një set i parametrave të sigurisë të cilët definojnë ambientin operues të protokollit rekord. Ky ambient operues definohet gjatë procesit handshake të SSL-it. Në një sesion të SSL ,një numër i madh i lidhjeve SSL të cilat shkëmbejnë parametrat e sigurisë të definuara në sesion mund të themelohen mes të dy pikave. Në gjenerale, krijohet vetëm një sesion dhe disa lidhje të cilat bejnë pjesë në atë sesion,përdoren për komunikim të sigurtë përmes SSL. Ky koncepti përdoret për të shmangur përsëritjen e procesit të negocimit të parametrave të sigurisë sa herë një lidhje e re formohet. Cdo fragment i te dhenes mbrohet nga e ashtuquajtura MAC , e cila procesohet përmes të dhënes duke prodhuar kështu një integritet mbi të dhënen. MAC i cili i bashkangjitet fragmentit te te dhenes si dhe eshte e lidhur(ngjitur) me paketen e re e cila eshte duke u enkriptuar ne bazen enkriptuese. Ne hapin tjeter pastaj behet edhe verifikimi i MAC nga ana e pranuesit mbi hapsiren dekriptuese(decryption of the payload). Eventualisht nje heder i thjesht i bashkohet paylodit per te formuar ate qe shpesh i referohemi si record.


Figure 3 : Fragmentimi i te dhenes

Hederi i Rekordit Hederi i një SSL përmban në vete informacionin e nevojshëm ashtu që pranuesi të interpretojë të dhënën në mënyren e duhur. Janë tre parametra relevante ,te emruar sipas permbajtjes se tyre ,gjatesise dhe versionit te SSL. Implementimi i pranuar perdorë gjatësinë e fushës për të determinuar se sa bajta te tjere duhet te largohen perpara se te jete ne gjendje ta procesoje mesazhin.Edhe sa i perket versionit te fushes,ajo perdorët vetëm sa per tu siguruar se palet pajtohen sa i përket versionit te njejtë të SSL. Fusha e tipit përmbajtje , identifikon natyren e mesazhit i cili ose mund të jetë: e dhene e një aplikacioni standard ose informacion për kontrollë , si per shembull një mbyllës i lidhjes ose error mesazhi. SSL ofron mundësinë e dërgimit të të dhënave të ndryshme përmes kanalit të njejtë të mbrojtur e që është mjaftë e konvenueshme. Teksti ne vazhdim përshkruan disa nga tipet e ndryshme të përmbajtjes të cilat mbështet SSL: • Application Data: Të gjitha të dhënat të cilat transferohen mes njera tjetres përmes SSL (e.g. Mozilla). Ndërsa tipet e tjera te permbajtjeve perdoren per menagjim te trafikut:

• Alert: Mesazhe të ndryshme të errorave ,si errora në handshake ,dekriptim ose authentifikim në rekorda ose edhe sinjale të cilat tregojnë se një lidhje egzistuese është pranë perfundimit(mbylljes).

• Handshake: Transmeton mesazhe te handshake-it duke perfshire ketu edhe handshakin inicues ,mesazhet te cilat formojne lidhjen dhe endu nuk ja enkriptuar pasi nuk eshte iniciuar asnje cels deri ne kete pike.

• Change Cipher Spec: Indikon një ndryshim në ekriptim dhe authentifikim të rekordave në SSL posa një handshake të krijojë një set të ri të celsave.

Kemi pare se SSL është i llojit layer protokoll.Ky lloj protokolli konsiston në një rekord layer që perfshinë një numër mesazhesh të tipeve të nryshme të cilat operojne në krye të rekord layerit. Ndersa vet layeri rekord operon ne kry te nje protokolli te besueshem per transport ,shumicen e rasteve TCP.


Figure 4: Struktura e protokollit te SSL

4.5 Tipet e konektimit te SSL Me anë të SSL mund të krijohen lloje të ndryshme të lidhjeve. Kto mundësi të ndryshme rezultojnë nga fakti se authentifikimi i dy pikave (duke perdorur certifikatat ) gjatë procesit handshake është opcional. Në një lidhje anonime ,asnjera nga dy pikat nuk authentifikohet dhe ne kete rast mekanizmi i vetem per enkriptim i cili perdoret eshte ai SSL. Pikat jane te mbrojtura nga sulmet passive te Man-in-the-Middle,por jo nga sulmet active të tij,ku mesazhat mund te interceptohen dhe mund te behet dërgim i falso i mesazhave tek pranuesi. Pra kto lloje të lidhje duhet të shmangen në shumicën e rasteve. Një lloj tjetër i lidhjeve është i njohur si : Server i Authentifikuar dhe Klient Anonim . Në këtë rast vëtëm server është ai që authentifikohet mirpo nga ana e klientit nuk kërkohet kurfare kërkese për certificatë nga serveri. Kjo njëherit është edhe metoda default e lidhjeve në përgjithesi.Krahasuar me ato anonime,kjo jep mbrojtje ndaj sulmeve aktive nga Man-in-the- Middle. Mundësia e tretë është ajo e krijimit të një lidhje SSL e cila pershkruhet si Authentifkim i te dy Pikave.Kjo domethenë së kërkesa për certifikatë e serverit derguar klientit vjen edhe me një pjesë tjetër ku serveri bën verifikimin e vërtetetsisë së atij klienti. Edhe pse kjo është njëra nga metodat që jep më se shumti siguri nuk është metoda të cilën zakonisht e perdorim(sic cekem edhe me lartë ,në gjenerale vëtëm server është ai i cili athentifikohet). SSL jep një siguri në nivelin e lartë mirpo kjo varet shumë edhe se si protokolli është përdorur në raste të veqanta.Deri në këtë pikë duhet të theksohet se certifikatat janë pjesë themelore e sigurisë të cilën e mundëson SSL.

5 Përfundimi

5.1 Përmbledhje SSL është pjesë vitale sa i përket sigurisë së Web.SSL dhuron një sens të fuqishëm sa i përket konfidencialitetit ,integritetit të mesazheve si dhe authentifikimit te klienteve në server. Në ditët e sotit bizneset shumica e të cilave përdorin e-Commerce ,janë të lidhura ngushtë me besimin e klientit sa i përket operimit të SSL përgjatë internetit.

5.2 Prespektiva e SSL Në të ardhmen ,paisjet terminale të cilat përdorin SSL do të jenë në gjendje të mbështesin me shumë transaksione dhe atë në një shkallë shumë më të shpejtë. Gjatësia e celsit i cili përdoret për enkriptim si dhe vetë ciper do të vazhdojë të evoluoje në mënyrë që të sigurojë një sensivitet shumë më të lartë të informacioneve në Web. Në këtë mënyrë e-commerce do të jetë në gjendje të vazhdojë rritjen në popullaritet dhe me të gjithashtu edhe besimi i klienteve per te blerë dhe per te bere online banking ,sigurisht që rritje të interesimit do të ketë edhe në zhvillimin e aplikacione të reja të cilat operojnë online.



Referimet :

B. Kantor and P. Lapsley. RFC977, Network News Transfer Protocol. Network Working Group. R. Fielding J. Gettys J. Mogul H. Frystyk L. Masinter P. Leach and T. Berners- Lee. RFC2616, Hyper Text Transfer Protocol, HTTP 1.1. Network Working Group