Junior
Mi az a TLS?
sobes.tech MI
Válasz az MI-től
TLS (Transport Layer Security) — ez egy kriptográfiai protokoll, amely biztonságos kommunikációt biztosít a hálózaton, például egy webböngésző és egy szerver között.
Fő funkciók:
- Hitelesítés: A felek személyazonosságának ellenőrzése (általában X.509 tanúsítványok segítségével).
- Bizalmasság: Az átvitt adatok titkosítása a jogosulatlan hozzáférés megakadályozása érdekében.
- Integritás: Az ellenőrzés, hogy az adatok nem változtak a továbbítás során.
A TLS protokoll az OSI modell szállítási rétegén (vagy magasabb szinten, az implementációtól és a kontextustól függően) működik. Az SSL (Secure Sockets Layer) protokollt váltotta fel. A jelenlegi verziók TLS 1.2 és TLS 1.3.
A Go környezetben a TLS a net/http szabványos könyvtárban van használatban az HTTPS támogatására.
package main
import (
"crypto/tls"
"net/http"
"log"
)
func main() {
// Példa egy TLS támogatással rendelkező HTTP szerver beállítására
// Tanúsítvány- és privát kulcsfájlokra van szükség
certFile := "server.crt"
keyFile := "server.key"
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Biztonságos, üdvözlő világ!"))
})
// HTTPS szerver indítása
log.Fatal(http.ListenAndServeTLS(":8443", certFile, keyFile, nil))
}
Az interakció több szakaszban történik (Handshake):
- ClientHello: A kliens elküldi a támogatott TLS verziók listáját, titkosítási készleteket és más paramétereket.
- ServerHello: A szerver kiválasztja a legjobb paramétereket a kliens által javasoltak közül.
- Certificate: A szerver elküldi a tanúsítványát.
- ServerKeyExchange (opcionális): A titkosítási kulcsok cseréje.
- CertificateRequest (opcionális): A szerver kérhet tanúsítványt a klienstől a kölcsönös hitelesítéshez.
- ServerHelloDone: A szerver jelzi, hogy befejezte a Handshake részét.
- Certificate (opcionális): A kliens elküldi a tanúsítványát.
- ClientKeyExchange: A kliens elküldi a szerver nyilvános kulcsával titkosított pre-master titkot, amely a munkamenet kulcsainak generálásához szükséges.
- CertificateVerify (opcionális): A kliens ellenőrzi a szerver aláírását.
- ChangeCipherSpec: A kliens és a szerver jelzi, hogy a megállapodott munkamenet kulcsokat fogják használni.
- Finished: A Handshake véglegesítése a titkosított üzenetek cseréjével az új kulcsokkal, a folyamat sikerességének ellenőrzése érdekében.
A TLS megbízható biztonsági szintet nyújt a hálózati kommunikációhoz, és az HTTPS, valamint más adatvédelmet igénylő protokollok alapértelmezett szabványa.