HTTPS PROTOKOLAS referatas, Informatikos katedra, ŠIAULIŲ UNIVERSITETAS

ĮVADAS

Šiuo metu Web paslaugos netelpa tik į HTTP protokolo rėmus, todėl sukurta daug patobulintų protokolų, skirtų įvairioms kliento reikmėms tenkinti. Vienas iš populiariausių papildomų servisų yra HTTPS (Secure HTTP) – saugus HTTP protokolas, kurį UNIX sistemoje valdo SSL (Secure Socket Layer).[1]
SSL (Secure Socket Layer) – tai rinkos standartu tapusi technologija, kuri garantuoja saugų duomenų perdavimą Internetu. Tai kriptografinis protokolas skirtas informacijos, sklindančios Internete apsaugojimui šifruojant.
HTTPS technologijos šiuo metu, yra labai plačiai naudojamos elektroninėje komercijoje ir bankinėse sistemose.
Šio referato esmė aprašyti SHTML iš kriptografinės pusės.

BENDRA INFORMACIJA APIE HTTPS

HTTPS – HTTP protokolo praplėtimas, palaikantis šifravimą. Duomenys perduodami HTTP protokolui „įpakuojami“ į SSL arba TLS protokolą, tuo pačiu užtikrinamas duomenų saugumas. Skirtingai nuo HTTP, HTTPS naudoją 433 TCP kanalą. [2]
HTTPS arba S-HTTP – tai Saugus HTTP protokolas (Secure Hypertext Transfer Protocol). Jis orientuotas siųsti saugioms žinutėms ir naudoti kartu su HTTP protokolu. Jis yra sukurtas egsituoti kartu su HTTP žinučių modeliu ir būti lengvai integruojamu HTTP programose.
S-HTTP siūlo galybę saugumo mechanizmų HTTP klientams ir serveriams. S-HTTP siūlo vienodas galimybes ir serveriams ir klientams išsaugant transakcijų modelį ir įgyvendinant HTTP charakteristikas.
Keletas kriptografinių žinučių formatų gali būti integruota į S-HTTP klientus ir serverius. HTTPS (S-HTTP) palaiko veikimą tarp daugybes įgyvendinimų ir yra suderinamas su HTTP. S-HTTP suprantantys klientai gali bendrauti su S-HTTP nesuprantančiais serveriais ir atvirkščiai, tačiau transakcijos jau nebenaudos S-HTTP saugumo savybių.
S-HTTP nereikalauja kliento dalies viešo rakto sertifikatų (ar viešojo rakto), nes jis palaiko simetrinį tik-rakto veikiantį režimą. Tai yra labai svarbu, nes tai reiškia jog gali įvykti spontaniškos privačios transakcijos nereikalaujančios individualiam vartotojui turėti viešą raktą. Nors HTTPS gali pasinaudoti visur išdėstyta sertifikatų infrastruktūra, tačiau jo išsidėstymas nereikalauja to.
S-HTTP palaiko nuo pradžios iki galo saugias transakcijas. Klientai gali būti iš anksto informuojami pradėti apsaugotą transakciją (dažniausiai naudojantis informacija pateikta antraščių eilutėse). Tai gali būti naudojama palaikyti pavyzdžiui užpildomoms formoms. Naudojant S-HTTP galima nesiųsti jokios svarbios informacijos neapsaugotu pavidalu.
S-HTTP suteikia pilną lankstumą naudojant kriptografinius algoritmus, režimus ir parametrus. Pasirinkimo nebuvimas naudojamas leisti klientams ir serveriams sutikti dėl transakcijų režimo kriptografinių algoritmų ir sertifikatų parinkimo.
Taip pat populiarus būdas saugiai perduoti duomenis tinkle yra naudoti HTTP protokolą kitame transporto lygyje, kaip kad TLS arba SSL.
S-HTTP užklausos – atsakymai
S-HTTP užklausos žinutės sintaksiškai tokios pačios kaip ir HTTP, tačiau skiriasi antraščių kiekis bei žinutės turinys yra užkoduotas.
Kad skirtųsi nuo HTTP ir būtų specialiai perduodamos žinutės, užklausos eilutėje turėtų būti nurodytas specialus metodas ”Secure“, užklausos kelias turi būti ”*“ o naudojamo protokolo versija ”Secure-HTTP/1.4“.
S-HTTP atsakymo eilutės taip pat turi turėti naudojamo protokolo versiją ”Secure-HTTP/1.4“ bei visada pateikti būvio kodą 200 ir jo argumentą OK, kas nurodytų jog visos transakcijos praėjo sėkmingai. Vartotojas apie transakcijos sėkmę spręstų pagal gautus duomenis. Tai neleidžia analizuoti užklausų sėkmingumo. [5]

SSL IR TLS

SSL (angl Secure Socket Layer – apsaugotų sluoksnių protokolas) – kriptografinis protokolas, užtikrinantis saugų domenų perdavimo Interneto tinklais. Šio protokolo naudojimo metu sudaromas saugus sujungimas tarp kliento ir tarnybinės stoties.
Skirtumas tarp TLS ir SSL yra nežymus, todėl toliau plačiau kalbėsiu apie tik apie SSL.
Klientas inicijuoja SSL web jungtį nurodant URL HTTPS: vietoj HTTP:.  Naudojamas sesijos raktas, simetrinis slaptas raktas, skirtas tik vienai tranzakcijai įvykdyti.
SSL vykdo šias funkcijas:
•    Autentifikuoja serverį klientui;
•    Sukuria užkoduotą ryšį tarp abiejų pusių;
SSL yra tarp TCP/IP protokolo ir taikomųjų. programų protokolo.
SSL duomenų šifravimui naudoja tiek simetrinę, tiek ir asimetrinę kriptografiją.
Kadangi simetrinė kriptografija yra žymiai greitesnė už asimetrinę, tai ji naudojama persiunčiant visus duomenis, taip taupant persiuntimo laiką. Tačiau iškyla viena problema: kaip apsaugoti šifro raktą, kuris abiejose susijungimo pusėse bus tas pats? T.y. kaip serveriui ir klientui nustatyti šifro raktą, kad tarpininkas (kuris peržiūri visą tinklo srautą) negalėtų gauti šifro rakto ir tuo pačiu mūsų persiunčiamų duomenų. Taigi simetrinis šifro raktas persiunčiamas pasinaudojus asimetrine kriptografija. Serveris atsiunčia jums savo viešajį raktą, kuriuo jūs užšifruojate sugeneruotą simetrinį šifro raktą, taip jį apsaugodami nuo tarpininko. Kadangi asimetrinės kriptografijos raktai kuriami taip, kad žinant viešąjį raktą būtų neįmanoma sužinoti privataus rakto, su kuriuo informacija dešifruojama, jūsų simetrinis šifro raktas persiunčiamas saugiu kanalu ir galima pradėti sąlyginai saugiai siųsti realius duomenis.
SSL protokolo veikimą supaprastintai galima pavaizduoti taip:[6]
1.    Vartotojas ateina į apsaugotą svetainę.
2.    Serveris patvirtina svetainės tapatybę pasirašydamas sertifikatą ir nusiųsdamas jį klientui. Naršyklė panaudoja sertifikato viešąjį raktą (viešasis raktas gaunamas kartu su sertifikatu) serverio sertifikato savininko tapatybei patikrinti.
3.    Naršyklė patikrina, ar sertifikatas buvo išduotas žinomo sertifikavimo paslaugų teikėjo. Jeigu sertifikatas yra išduotas nežinomo paslaugų teikėjo, naršyklė apie tai informuoja vartotoją.
4.    Vartotojas pats gali patikrinti ar sertifikavimo paslaugų teikėjas išdavė sertifikatą tikrai tai svetainei, į kurią atėjo vartotojas.
5.    Serveris reikalauja vartotojo skaitmeninio sertifikato, kad patikrinti jo tapatybę.
6.    Vartotojas pasirenka, kurį iš jo turimų sertifikatų (žinoma, jeigu jis turi daugiau nei vieną sertifikatą) parodys serveriui.
7.    Serveris sukuria ir užkoduoja seanso raktą bei saugiai nusiunčia jį internetu, ir tokiu būdu sukuriamas saugus virtualus kanalas tarp vartotojo naršyklės ir Web serverio.
SSL seanso metu galima būtu išskirti 3 pagrindines fazes:[3]
•    Dialogas tarp kliento ir tarnybinės stoties kurio metu pasirenkamas šifravimo algoritmas
•    Raktų pasikeitimas pagrystąs atvirojo rakto kriptografija ir identifikavimas pagrįstas sertifikatu.
•    Simetriniais šifravimo algoritmais užšifruotu duomenų perdavimas.
Taigi primoje fazėje klientas ir tarnybinė stotis aparia kriptografinio algoritmo pasirinkimą tolesniam seansui. SSL 3.0 protokolo versijoje galimi šie algoritmai:
•    Asimetriniam šifravimui: RSA, Diffie-Hellman, DSA arba Fortezza;
•    Simetriniam duomenų šifravimui: RC2, RC4, IDEA, DES, Triple DES arba AES;
•    „Sausainiukų“ funkcijom: MD5 arba SHA.

IŠVADOS
HTTPS protokolas paremta SSL technologija puiki priemonė saugiai keistis duomenimis Internete.
Simetrinis šifro raktas persiunčiamas pasinaudojus asimetrine kriptografija. Asimetrinės kriptografijos raktai kuriami taip, kad žinant viešąjį raktą būtų neįmanoma sužinoti privataus rakto.
HTTPS protokolas tinka naudoti:
•    E-versle;
•    Elektroninėje bankininkystei;
•    Visur kur reikalingas saugus duomenų perdavimas.

LITERATŪRA

1. L. Kaklauskas. Kompiuterių tinklai IIdalis 2005 Šiauliai
2. http://ru.wikipedia.org/wiki/HTTPS
3. http://ru.wikipedia.org/wiki/TLS
4. http://ru.wikipedia.org/wiki/SSL
5. http://miraged.ten.lt
6.http://www.webopedia.com/TERM/C/cryptography.html