Sobes.tech
Junior

Co je TLS?

sobes.tech AI

Odpověď 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: Overenie identity strán (zvyčajne pomocou certifikátov X.509).
  • 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 implementácie a kontextu). Nahradil SSL (Secure Sockets Layer). Aktuálne verzie sú TLS 1.2 a TLS 1.3.

V kontexte 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("Bezpečný, pozdrav svet!"))
	})

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

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

  1. ClientHello: Klient odošle zoznam podporovaných verzií TLS, súborov šifrovacích sád a ďalších parametrov.
  2. ServerHello: Server vyberie najlepšie parametre z tých, ktoré navrhol klient.
  3. Certificate: Server odošle svoj certifikát.
  4. ServerKeyExchange (voliteľné): Výmena šifrovacích kľúčov.
  5. CertificateRequest (voliteľné): Server môže požadovať certifikát od klienta pre obojstrannú autentifikáciu.
  6. ServerHelloDone: Server oznámi, že svoju časť Handshake ukončil.
  7. Certificate (voliteľné): Klient odošle svoj certifikát.
  8. ClientKeyExchange: Klient odošle zašifrované pre-masterské tajomstvo s verejným kľúčom servera, ktoré sa použije na generovanie reléových kľúčov.
  9. CertificateVerify (voliteľné): Klient overí podpis servera.
  10. ChangeCipherSpec: Klient a server oznámia, že prejdú na použitie dohodnutých reléových kľúčov.
  11. Finished: Finalizácia Handshake s výmenou správ zašifrovaných novými kľúčmi, na overenie úspešnosti procedúry.

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