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):
- ClientHello: Klient odošle zoznam podporovaných verzií TLS, súborov šifrovacích sád a ďalších parametrov.
- ServerHello: Server vyberie najlepšie parametre z tých, ktoré navrhol klient.
- Certificate: Server odošle svoj certifikát.
- ServerKeyExchange (voliteľné): Výmena šifrovacích kľúčov.
- CertificateRequest (voliteľné): Server môže požadovať certifikát od klienta pre obojstrannú autentifikáciu.
- ServerHelloDone: Server oznámi, že svoju časť Handshake ukončil.
- Certificate (voliteľné): Klient odošle svoj certifikát.
- 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.
- CertificateVerify (voliteľné): Klient overí podpis servera.
- ChangeCipherSpec: Klient a server oznámia, že prejdú na použitie dohodnutých reléových kľúčov.
- 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.