Sobes.tech
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):

  1. ClientHello: A kliens elküldi a támogatott TLS verziók listáját, titkosítási készleteket és más paramétereket.
  2. ServerHello: A szerver kiválasztja a legjobb paramétereket a kliens által javasoltak közül.
  3. Certificate: A szerver elküldi a tanúsítványát.
  4. ServerKeyExchange (opcionális): A titkosítási kulcsok cseréje.
  5. CertificateRequest (opcionális): A szerver kérhet tanúsítványt a klienstől a kölcsönös hitelesítéshez.
  6. ServerHelloDone: A szerver jelzi, hogy befejezte a Handshake részét.
  7. Certificate (opcionális): A kliens elküldi a tanúsítványát.
  8. 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.
  9. CertificateVerify (opcionális): A kliens ellenőrzi a szerver aláírását.
  10. ChangeCipherSpec: A kliens és a szerver jelzi, hogy a megállapodott munkamenet kulcsokat fogják használni.
  11. 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.