Transport Layer Security

**Transport Layer Security** (**TLS**) i njegov sada već zastarjeli prethodnik, **Secure Sockets Layer** (**SSL**) kriptografski su protokoli dizajnirani da osiguraju sigurnost komunikacije preko računarskih mreža. 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. Kako TLS samo osigurava neki transportni protokol (kao što je TCP) može se smatrati da se pokreće preko transportnog sloja. Također, pruža enkripciju za neke više slojeve što bi obično trebala biti funkcija prezentacijskog sloja. Većina aplikacija ipak koristi TLS kao da je transportni sloj,

## Digitalni certifikati 
mini|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 
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.

## Algoritam 
### Razmjena ključeva 
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), i Secure Remote Password (TLS_SRP).

### Integritet podataka 
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 .

## Primjena i usvajanje 
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 
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 onda HTTPS. Dodatak slova S je za englesku riječ *secure*, što znači siguran. 

### Internet preglednici 
Najnovije verzije svih glavnih web pretraživača podržavaju TLS verzije 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 koji bi trebao biti u potpunosti zamijenjen sa Microsoft Edgeom.

### Biblioteke 
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. ) Java 11 podržava TLS 1.3.
* 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 
## Dalje čitanje 
* 
* 
* 
* 
* 
* Creating VPNs with IPsec and SSL/TLS Linux Journal article by Rami Rosen
* 
* 

## Vanjski linkovi 
;
**Specifikacije** 
;* The Transport Layer Security (TLS) Protokol verzija 1.2 
;* IETF (Internet Engineering Task Force) TLS Radna Grupa
;Netolerancija TLS verzija

* Netolerancija TLS verzija
* TLS 1.3 i netolerancija verzija

; Ostalo

*  
* Razgovor o SSL/TLS koji pokušava objasniti stvari u terminima koje ljudi mogu razumjeti.  
* SSL: Foundation for Web Security  
* TLS Ranegotiation Vulnerability - IETF alati 
* Trustworthy Internet Movement- SSL Pulse - Pregled TLS / SSL implementacije najpopularnijih web stranica 
* Kako generisati CSR za SSL  
* Kako funkcionira TLS Handshake u pregledniku

Kategorija:Internetski standardi
Kategorija:Internetski protokoli