Sobes.tech
Junior

Mis on TLS?

sobes.tech AI

Vastus AI-lt

TLS (Transport Layer Security) — see on krüptograafiline protokoll, mis tagab turvalise suhtluse võrgus, näiteks veebibrauseri ja serveri vahel.

Peamised funktsioonid:

  • Autentimine: Osapoolte autentsuse kontroll (tavaliselt X.509 sertifikaatide kasutamine).
  • Konfidentsiaalsus: Edastatavate andmete krüpteerimine, et vältida volitamata juurdepääsu.
  • Terviklikkus: Kontroll, et andmed ei oleks edastamise ajal muudetud.

Protokoll TLS töötab OSI mudeli transpordikihil (või kõrgemal, sõltuvalt rakendusest ja kontekstist). See on asendanud SSL-i (Secure Sockets Layer). Praegused versioonid on TLS 1.2 ja TLS 1.3.

Go programmeerimiskeeles kasutatakse TLS-i standardraamatukogus net/http HTTPS toe jaoks.

package main

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

func main() {
	// Näide TLS-toega HTTP-serveri seadistamisest
	// Vajalikud on sertifikaadi ja privaatvõtme failid
	certFile := "server.crt"
	keyFile := "server.key"

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

	// HTTPS-serveri käivitamine
	log.Fatal(http.ListenAndServeTLS(":8443", certFile, keyFile, nil))
}

Interaktsioon toimub mitmel etapil (Handshake):

  1. ClientHello: Klient saadab nimekirja toetatud TLS-versioonidest, šifrifragmentidest ja muudest parameetritest.
  2. ServerHello: Server valib parimad pakkumised klienti poolt.
  3. Certificate: Server saadab oma sertifikaadi.
  4. ServerKeyExchange (valikuline): Šifrifragmentide vahetamine.
  5. CertificateRequest (valikuline): Server võib nõuda kliendi sertifikaati kahepoolseks autentimiseks.
  6. ServerHelloDone: Server teatab, et on lõpetanud oma Handshake osa.
  7. Certificate (valikuline): Klient saadab oma sertifikaadi.
  8. ClientKeyExchange: Klient saadab eelnevalt jagatud salajase, mis on šifreeitud serveri avaliku võtmega, mida kasutatakse sessiooni võtete genereerimiseks.
  9. CertificateVerify (valikuline): Klient kontrollib serveri allkirja.
  10. ChangeCipherSpec: Klient ja server teatavad, et nad kasutavad nüüd kokkulepitud sessiooni võtmeid.
  11. Finished: Handshake lõpeb, vahetades krüpteeritud sõnumeid uute võtmetega, et kontrollida protsessi edukust.

TLS tagab usaldusväärse turvataseme võrgusideks, olles HTTPS ja teiste protokollide standard, mis nõuavad andmete kaitset.