Sobes.tech
Junior

Čo je TLS?

sobes.tech AI

Odpoveď od AI

TLS (Transport Layer Security) — je kryptografický protokol, ktorý zabezpečuje bezpečnú komunikáciu v sieti, napríklad medzi webovým prehliadačom a serverom.

Kľúčové funkcie:

  • Autentifikácia: Kontrola pravosti strán (zvyčajne pomocou X.509 certifikátov).
  • Dôvernosť: Šifrovanie prenášaných dát na zabránenie neoprávneného prístupu.
  • Integrita: Kontrola, že dáta neboli počas prenosu zmenené.

Protokol TLS pracuje na transportnej vrstve modelu OSI (alebo vyššej, v závislosti od konkrétnej implementácie a kontextu). Nahradil SSL (Secure Sockets Layer). Aktuálne verzie sú TLS 1.2 a TLS 1.3.

V kontexte jazyka Go sa TLS používa v štandardnej knižnici net/http na podporu HTTPS.

package main

import (
	"crypto/tls"
	"net/http"
	"log"
)

func main() {
	// Príklad nastavenia HTTP servera s podporou TLS
	// Sú potrebné súbory certifikátu a súkromného kľúča
	certFile := "server.crt"
	keyFile := "server.key"

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte("Hello, secure world!"))
	})

	// Spustenie HTTPS servera
	log.Fatal(http.ListenAndServeTLS(":8443", certFile, keyFile, nil))
}

Interakcia prebieha v niekoľkých etapách (Handshake):

  1. ClientHello: Klient odosiela zoznam podporovaných verzií TLS, súborov šifrovania a ďalších parametrov.
  2. ServerHello: Server vyberá optimálne parametre z navrhnutých klientom.
  3. Certificate: Server odosiela svoj certifikát.
  4. ServerKeyExchange (voliteľné): Výmena šifrovacích kľúčov.
  5. CertificateRequest (voliteľné): Server môže požiadať o certifikát klienta na obojstrannú autentifikáciu.
  6. ServerHelloDone: Server oznamuje ukončenie svojej časti Handshake.
  7. Certificate (voliteľné): Klient odosiela svoj certifikát.
  8. ClientKeyExchange: Klient odosiela predbežne zdieľaný tajný kľúč, šifrovaný verejným kľúčom servera, ktorý sa používa na generovanie relančných kľúčov.
  9. CertificateVerify (voliteľné): Klient overuje podpis servera.
  10. ChangeCipherSpec: Klient a server oznamujú prechod na používanie dohodnutých relančných kľúčov.
  11. Finished: Finalizácia Handshake s výmenou správ, šifrovaných novými kľúčmi, na overenie úspešnosti procedúry.

TLS zabezpečuje spoľahlivú úroveň bezpečnosti pre sieťové komunikácie, ako štandard pre HTTPS a ďalšie protokoly vyžadujúce ochranu dát.