Sobes.tech
Junior

TLS nədir?

sobes.tech Süni İntellekt

AI-dan cavab

TLS (Transport Layer Security) — bu, şəbəkədə təhlükəsiz əlaqəni təmin edən kriptografik protokoldur, məsələn, veb brauzer və server arasında.

Əsas funksiyalar:

  • Təsdiqləmə: Tərəflərin şəxsiyyətinin yoxlanılması (adətən X.509 sertifikatlarından istifadə etməklə).
  • Gizlilik: Göndərilən məlumatların şifrələnməsi, icazəsiz girişin qarşısını almaq üçün.
  • Bütövlük: Məlumatların ötürülmə zamanı dəyişmədiyinin yoxlanılması.

TLS protokolu OSI modelinin daşınma qatında (və ya yuxarıda, tətbiq və kontekstdən asılı olaraq) işləyir. SSL (Secure Sockets Layer) protokolunun yerini tutmuşdur. Mövcud versiyaları TLS 1.2 və TLS 1.3-dür.

Go kontekstində, TLS, HTTPS dəstəyini təmin etmək üçün standart kitabxana net/http daxilində istifadə olunur.

package main

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

func main() {
	// TLS dəstəyi ilə HTTP serverinin qurulması nümunəsi
	// Sertifikat və şəxsi açar faylları tələb olunur
	certFile := "server.crt"
	keyFile := "server.key"

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte("Təhlükəsiz, salam dünya!"))
	})

	// HTTPS serverini işə salmaq
	log.Fatal(http.ListenAndServeTLS(":8443", certFile, keyFile, nil))
}

Əlaqə bir neçə mərhələdə baş verir (Handshake):

  1. ClientHello: Müştəri dəstəklənən TLS versiyalarının, şifrələmə dəstlərinin və digər parametrlərin siyahısını göndərir.
  2. ServerHello: Server, müştərinin təklif etdiyi parametrlər arasından ən uyğun olanını seçir.
  3. Certificate: Server öz sertifikatını göndərir.
  4. ServerKeyExchange (opsional): Şifrləmə açarlarının mübadiləsi.
  5. CertificateRequest (opsional): Server, qarşılıqlı autentifikasiya üçün müştəridən sertifikat tələb edə bilər.
  6. ServerHelloDone: Server, Handshake-in öz hissəsini tamamladığını bildirir.
  7. Certificate (opsional): Müştəri öz sertifikatını göndərir.
  8. ClientKeyExchange: Müştəri, serverin ümumi açarı ilə şifrələnmiş pre-master sirrini göndərir, bu da sessiya açarlarının yaradılmasında istifadə olunur.
  9. CertificateVerify (opsional): Müştəri, serverin imzasını yoxlayır.
  10. ChangeCipherSpec: Müştəri və server, razılaşdırılmış sessiya açarlarından istifadə etməyə keçdiklərini bildirir.
  11. Finished: Handshake-in yekunlaşması, yeni açarlarla şifrələnmiş mesajların mübadiləsi ilə, prosedurun uğurlu olub-olmadığını yoxlamaq.

TLS, şəbəkə əlaqələri üçün etibarlı təhlükəsizlik səviyyəsi təmin edir və HTTPS və digər məlumatların qorunmasını tələb edən protokollar üçün standartdır.