Ako koristite Google Chrome ili Safari, verovatno ste primetili da neki sajtovi koje posećujete imaju oznaku Not Secure.
U drugim browserima ispred adrese nekih sajtova je ikonica upozorenja.
O čemu se tu radi i zašto neki sajtovi nisu bezbedni?
Od jula 2018, odnosno od Google Chrome verzije 68, svi sajtovi koji koriste HTTP protokol dobili su u ovom browseru oznaku Not Secure. Kasnije su istu praksu počeli da primenjuju i drugi browseri.
Not Secure nije baš dobar znak, iako sajt možda ne predstavlja pretnju po privatnost ili bezbednost. Istraživanja pokazuju da više od 80% Internet korisnika neće nastaviti da koristi sajt koji je obeležen kao Not Secure.
Da ne bi bili označeni kao nebezbedni, sajtovi moraju da koriste HTTPS protokol.
Šta znače HTTP i HTTPS i kako izbeći negativne indikatore?
HTTP, kraće od hypertext transfer protokol, je mrežni protokol – kanal komunikacije između klijenta i servera i dugo je predstavljao osnovni metod prenosa informacija na internetu.
Kako se broj korisnika interneta povećavao i kako je Internet postao sve važniji u poslovanju i svakodnevnom životu, tako su informacije koje se razmenjuju putem interneta postale osetljivije, vrednije. I tu nastaju problemi sa HTTP protokolom.
HTTP protokolom se informacije između klijenta i servera prenose kao otvoren tekst (plain ili clear text), odnosno nisu kriptovane. To znači da ukoliko neko presretne komunikaciju između klijenta i servera može da pročita informacije.
Znači, ne dolazi u obzir da se informacije kao što su brojevi kreditnih kartica, broj računa, log-in podaci, JMBG razmenjuju preko HTTP-a. Kako onda da se razmenjuju?
Preko HTTPS-a!
HTTPS, odnosno HTTP Secure (S je za Secure) dodaje enkripciju u HTTP komunikaciju. Poruka, tj. informacija koju razmenjuju browser i server je kriptovana, tako da ako neko presretne komunikaciju, ne može da pročita informacije, jer poruka izgleda kao nasumičan skup slova i brojeva. Podatke koji se razmenjuje može da pročita samo neko ko ima odgovarajući kriptografski ključ.
Komunikacija se kriptuje preko TLS (Transport Layer Security), odnosno SSL (Secure Socket Layer) kriptografskih protokola. Iako ćete češće čuti SSL, danas se koristi TLS, ali se izraz SSL više odomaćio.
HTTPS obezbeđuje bezbedan kanal komunikacije na NEbezbednoj mreži. Izuzetno važno za javne Wifi mreže.
Ovo je važno da zapamtite:
Iako S u HTTPS znači Secure, HTTPS ne znači da je sajt bezbedan, nego samo da je kanal komunikacije bezbedan, ili preciznije kriptovan! Sajt i dalje nije zaštićen od SQL injection, cross site scripting i drugih napada. Za zaštitu web sajta vam trebaju druga rešenja. HTTPS je dakle jedan korak više ka bezbednosti sajta, ali ne znači da je sajt potpuno bezbedan.
Privatnost i integritet podataka znače da niko ne može da pročita poruke, niti da ih izmeni u toku razmene, jer su kriptovane.
Autentifikacija znači da je server odnosno sajt baš onaj za koji se predstavlja.
Kako browser zna da je HTTPS sajt autentičan? Tako što sajt koji koristi HTTPS mora da ima SSL/TLS sertifikat, nešto kao ličnu kartu ili putnu ispravu, koji garantuje autentičnost.
I enkripcija i autentifikacija se ostvaruju pomoću SSL sertifikata.
SSL sertifikat je digitalni sertifikat koji služi za uspostavljanje bezbedne, kriptovane, HTTPS komunikacije između servera i browsera.
SSL sertifikate izdaju sertifikaciona tela, na zahtev vlasnika sajta.
Zahtev za sertifikat (Certificate Signing Request - CSR) je kriptovani tekst koji se obično generiše na serveru na koji se planira instalacija SSL sertifikata. CSR sadrži podatke o sajtu i vlasniku sajta. U CSR se upisuje domen, odnosno common name (hostname), naziv firme koja je vlasnik sajta, grad i država. Taj deo je bitan za autentifikaciju, odnosno utvrđivanje identiteta.
Drugi deo CSR-a je enkripcija. Prilikom generisanja CSR-a kreira se i par ključeva: privatni i javni. Privatni ostaje na serveru, a javni se šalje sertifikacionom telu.
Ono što je ovde važno je da samo privatni ključ može da otključa poruku koja je kriptovana odgovarajućim javnim ključem.
Znači, javni zaključava – privatni otključava, to je tzv. asimetrična enkripcija.
Sertifikaciono telo proverava podatke iz zahteva za sertifikat i ukoliko utvrdi da su tačni, izdaje SSL sertifikat na određeni vremenski period.
SSL sertifikat se instalira na server i HTTPS kanal komunikacije sa browserom se uspostavlja.
Komunikacija između servera koji ima SSL sertifikat i browsera izgleda ovako:
Dakle SSL sertifikat ima dve funkcije:
Da li svi sajtovi treba da i moraju da imaju SSL sertifikat?
To je diskutabilno, ali je činjenica da browser vendori, pre svega Google, insistiraju na HTTPS-u, tako da ako ne želite da posetiocima sajta izlazi upozorenje da vaš sajt nije bezbedan, moraćete da instalirate SSL sertifikat.