Junior
Kas yra TLS?
sobes.tech AI
Atsakymas iš AI
TLS (Transport Layer Security) — tai kriptografinis protokolas, užtikrinantis saugią ryšio būdą tinkle, pavyzdžiui, tarp žiniatinklio naršyklės ir serverio.
Pagrindinės funkcijos:
- Autentifikacija: Šalių autentiškumo patikrinimas (dažniausiai naudojant X.509 sertifikatus).
- Konfidencialumas: Duomenų šifravimas perduodant, siekiant išvengti neteisėto prieigos.
- Visiškumas: Patikrinimas, ar duomenys nebuvo pakeisti perdavimo metu.
Protokolas TLS veikia OSI modelio transporto sluoksnyje (arba aukštesniame, priklausomai nuo įgyvendinimo ir konteksto). Jis pakeitė SSL (Secure Sockets Layer). Dabartinės versijos: TLS 1.2 ir TLS 1.3.
Go programavimo kalboje TLS naudojamas standartinėje net/http bibliotekos HTTPS palaikymui.
package main
import (
"crypto/tls"
"net/http"
"log"
)
func main() {
// Pavyzdys, kaip sukonfigūruoti HTTP serverį su TLS
// Reikės sertifikato ir privačiojo rakto failų
certFile := "server.crt"
keyFile := "server.key"
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, secure world!"))
})
// Paleisti HTTPS serverį
log.Fatal(http.ListenAndServeTLS(":8443", certFile, keyFile, nil))
}
Ryšys vyksta keliais etapais (Handshake):
- ClientHello: Klientas siunčia sąrašą palaikomų TLS versijų, šifravimo rinkinių ir kitų parametrų.
- ServerHello: Serveris pasirenka geriausius pasiūlytus parametrus.
- Certificate: Serveris siunčia savo sertifikatą.
- ServerKeyExchange (pasirinktinai): Šifravimo raktų keitimasis.
- CertificateRequest (pasirinktinai): Serveris gali paprašyti kliento sertifikato dvipusiam autentifikavimui.
- ServerHelloDone: Serveris praneša, kad baigė savo Handshake dalį.
- Certificate (pasirinktinai): Klientas siunčia savo sertifikatą.
- ClientKeyExchange: Klientas siunčia iš anksto pasidalintą slaptažodį, šifruotą viešojo rakto, naudojamą sesijos raktų generavimui.
- CertificateVerify (pasirinktinai): Klientas patikrina serverio parašą.
- ChangeCipherSpec: Klientas ir serveris praneša, kad pereina prie naudoti suderintų sesijos raktų.
- Finished: Handshake pabaiga, keitimasis šifruotomis žinutėmis su naujais raktais, patvirtinant sėkmingą procesą.
TLS užtikrina patikimą saugumo lygį tinklo komunikacijoms, yra standartas HTTPS ir kitų protokolų, reikalaujančių duomenų apsaugos.