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):
- ClientHello: Klient saadab nimekirja toetatud TLS-versioonidest, šifrifragmentidest ja muudest parameetritest.
- ServerHello: Server valib parimad pakkumised klienti poolt.
- Certificate: Server saadab oma sertifikaadi.
- ServerKeyExchange (valikuline): Šifrifragmentide vahetamine.
- CertificateRequest (valikuline): Server võib nõuda kliendi sertifikaati kahepoolseks autentimiseks.
- ServerHelloDone: Server teatab, et on lõpetanud oma Handshake osa.
- Certificate (valikuline): Klient saadab oma sertifikaadi.
- ClientKeyExchange: Klient saadab eelnevalt jagatud salajase, mis on šifreeitud serveri avaliku võtmega, mida kasutatakse sessiooni võtete genereerimiseks.
- CertificateVerify (valikuline): Klient kontrollib serveri allkirja.
- ChangeCipherSpec: Klient ja server teatavad, et nad kasutavad nüüd kokkulepitud sessiooni võtmeid.
- 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.