Transport Layer Security

S Wikipedije, slobodne enciklopedije
Jump to navigation Jump to search

Transport Layer Security (TLS, ) i njegov sada već zastarjeli prethodnik, Secure Sockets Layer (SSL,[1]) su kriptografski protokoli dizajnirani da osiguraju sigurnost komunikacije preko računarskih mreža.[2] Nekoliko verzija protokola se naširoko koriste na servisima kao što su web, e-mail, instant poruke, i IP telefonija (VoIP). Web-sajtovi mogu koristiti TLS da bi osigurali komunikaciju između svojih servera i internet-preglednika .

TLS protokol ima za cilj pružanje privatnosti i integriteta podataka između dvije ili više računarskih aplikacija.[2] Kada je neka komunikacija osigurana TLS-om, naprimjer između klijenta (internet preglednik) i servera (npr. Wikipedia.rog), onda bi trebala imati neka od sljedećih svojstava:

  • Veza je privatna (ili sigurna) jer se simetrična kriptografija koristi za enkripciju prenesenih podataka. Ključevi za enkripciju se stvaraju jedinstveno za svaku vezu i temelje se na zajedničkoj tajni koja je dogovorena na početku sesije (tzv. TLS handshake - rukovanje). Server i klijent uspostavljaju vezu i određuju koji algoritam enkrpcije i kriptografske ključeve će koristiti prije prijenosa prvog bajta podataka. Pregovaranje te zajedničke tajne je sigurno sa obje strane, i nemoguće je saznati od strane napadača. Nijedan napadač ne može mijenjati komunikaciju u toku dogovaranja komunikacije bez da bude detektovano).
  • Identitet strana koje komuniciraju može se autentifikovati pomoću kriptografije javnog ključa . Ova provjera autentifikacije može se učiniti neobaveznim, ali se obično zahtijeva za barem jednu od strana (obično server).
  • Veza je pouzdana jer svaka prenesena poruka uključuje provjeru integriteta poruke pomoću koda za provjeru autentičnosti poruke kako bi se spriječilo neotkriveno gubljenje ili promjenu podataka tokom prijenosa.[2]

TLS je predloženi Internet Engineering Task Force ( IETF ) standard, prvi put definiran 1999. godine, a trenutna verziju TLS 1.3 je definirano RFC 8446


Digitalni certifikati[uredi | uredi izvor]

Primjer veb-sajta sa digitalnim certifikatom

Digitalni certifikat potvrđuje vlasništvo nad javnim ključem od strane imenovanog subjekta certifikata. Ovo omogućava drugimada se oslone na potpise ili na tvrdnje koje je napravio privatni ključ koji odgovara certifikovanom javnom ključu.

Organi za izdavanje certifikata[uredi | uredi izvor]

TLS se obično oslanja na skup autoriziranih certifikacijskih autoriteta treće strane kako bi utvrdio autentičnost certifikata.

Prema Netcraftu, koji prati aktivne TLS certifikate, vodeći autoritet za certifikate (CA, Certificate authority) bio je Symantec koji trenutno čini nešto manje od trećine svih sertifikata i 44% važećih certifikata koje koristi 1 milion najprometnijih web stranica, što je računato od strane Netcrafta.

Algoritam[uredi | uredi izvor]

Razmjena ključeva[uredi | uredi izvor]

Prije nego što klijent i server mogu početi razmjenjivati informacije zaštićene TLS-om, pro moraju sigurno razmjeniti i dogovoriti ključ za enkripciju i šifru za korištenje kod enkripcije podataka. Među metodama koje se koriste za razmjeni i sporazum ključa su: javni i privatni ključevi generirani sa RSA (označeni kao TLS_RSA u TLS protokolu rukovanja), Diffie – Hellman (TLS_DH), efemerni Diffie – Hellman (TLS_DHE), eliptička krivulja Diffie – Hellman ( TLS_ECDH), efemerna eliptička krivulja Diffie – Hellman (TLS_ECDHE), anonimni Diffie – Hellman (TLS_DH_anon), [2] unaprijed podijeljeni ključ (TLS_PSK) [3] i Secure Remote Password (TLS_SRP).[4]

Integritet podataka[uredi | uredi izvor]

Message authentication code (MAC, prevedeno Kod za autentifikaciju poruke) se koristi za integritet podataka. HMAC se koristi za CBC način rada blokovskih šifara i šifri potoka. AEAD se koristi za autentifikovano šifriranje kao što je GCM način i CCM mod .

SSL i TLS protokoli
Protokol Objavljeno Status
SSL 1.0 Neobjavljen
SSL 2.0 1995 Zastario u 2011. ( RFC 6176 )
SSL 3.0 1996 Zastario u 2015 ( RFC 7568 )
TLS 1.0 1999 Planirano odbacivanje 2020. godine [5]
TLS 1.1 2006 Planirano odbacivanje 2020. godine [5]
TLS 1.2 2008
TLS 1.3 2018

Primjena i usvajanje[uredi | uredi izvor]

U dizajnu aplikacija, TLS se obično implementira na protokolima Transportnog sloja, tako da su svi podaci enkriptovani na protokolima kao što su HTTP, FTP, SMTP, NNTP i XMPP .

Historijski gledano, TLS je se primatno koristio za pouzdane protokole, kao što je Transmission Control Protocol (TCP). Međutim, on je implementiran i na protokolima kao što su UDP i DCCP.

Web stranice[uredi | uredi izvor]

Primarna upotreba TLS-a je da osigura World Wide Web promet između web sajta i korisničkog internet preglednika koji je enkodiran HTTP protokolom. Kada se TLS koristi, taj protokol je ondaHTTPS. [6]

Internet preglednici[uredi | uredi izvor]

Najnovije verzije svih glavnih web pretraživača podržavaju TLS 1.0, 1.1 i 1.2 i omogućeni su odmah po instalaciji. Jedini koji ima probleme sa novim sigurnosnim standardima je Internet Explorer kojeg će zamijeniti Microsoft Edge.

Biblioteke[uredi | uredi izvor]

Većina SSL i TLS programskih biblioteka su besplatni i izdani kao otvoreni kod. Najkorišteniji je OpenSSL.

  • BoringSSL, fork OpenSSL za Chrome/Chromium i Android kao i druge Google aplikacije.
  • Botan, kriptografska biblioteka licencirana BSD-om napisana na C++.
  • cryptlib: prenosiva kriptografska biblioteka otvorenog koda (uključuje TLS/SSL implementaciju)
  • Delphi programeri mogu koristiti biblioteku Indy koja koristi OpenSSL ili ICS koji sada podržava TLS 1.3.
  • GnuTLS: besplatna implementacija (LGPL licenca)
  • Java Secure Socket Extension : Java implementacija uključena u Java Runtime Environment podržava TLS 1.1 i 1.2 počevši od Java 7. (TLS 1.1/1.2 je po defaultu bio onemogućen za klijenta na Java 7, ali su bili omogućeni u siječnju 2017. [7] ) Java 11 podržava TLS 1.3. [8]
  • LibreSSL: fork OpenSSL-a od strane OpenBSD projekta.
  • MatrixSSL: dualna licencirana implementacija
  • mbed TLS (prethodno PolarSSL): Mala SSL implementacija biblioteke za ugrađene uređaje dizajnirane za jednostavnu upotrebu
  • Network Security Services: FIPS 140 validirana otvorena biblioteka
  • OpenSSL: besplatna implementacija (BSD licenca sa nekim proširenjima)
  • SChannel : implementacija SSL-a i TLS-a Microsoft Windows kao dio paketa.
  • Secure Transport: implementacija SSL-a i TLS-a koji se koriste u OS X i iOS-u kao dio njihovih paketa.
  • wolfSSL (prethodno CyaSSL): Ugrađena SSL / TLS biblioteka sa snažnim fokusom na brzinu i veličinu.

Reference[uredi | uredi izvor]

  1. ^ R. Barnes; M. Thomson; A. Pironti; A. Langley (June 2015). "Deprecating Secure Sockets Layer Version 3.0". Arhivirano s originala, 2018-03-28. 
  2. ^ a b c d T. Dierks; E. Rescorla (August 2008). "The Transport Layer Security (TLS) Protocol, Version 1.2". Arhivirano s originala, 2017-12-24. 
  3. ^ P. Eronen, Ed. "Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)". Internet Engineering Task Force. RFC 4279. Arhivirano s originala, 5 September 2013. Pristupljeno 9 September 2013. 
  4. ^ D. Taylor, Ed. "Using the Secure Remote Password (SRP) Protocol for TLS Authentication". Internet Engineering Task Force. RFC 5054. Arhivirano s originala, December 7, 2014. Pristupljeno December 21, 2014. 
  5. ^ a b Bright, Peter (17 October 2018). "Apple, Google, Microsoft, and Mozilla come together to end TLS 1.0". Pristupljeno 17 October 2018. 
  6. ^ "Http vs https". Arhivirano s originala, 2015-02-12. Pristupljeno 2015-02-12. 
  7. ^ Oracle. "7093640: Enable client-side TLS 1.2 by default". Pristupljeno 2018-08-30. 
  8. ^ Oracle. "JEP 332: Transport Layer Security (TLS) 1.3". Pristupljeno 2018-08-30. 

Dalje čitanje[uredi | uredi izvor]

Vanjski linkovi[uredi | uredi izvor]

Netolerancija TLS verzija
Ostalo