Middle
Kā tiek veikta ziņojumu šifrēšana starp pārlūkprogrammu un serveri?
sobes.tech AI
Atbilde no AI
Šifrēšana starp pārlūkprogrammu un serveri tiek veikta, izmantojot HTTPS protokolu, kas ir virs HTTP, izmantojot SSL/TLS protokolus (Secure Sockets Layer / Transport Layer Security).
Drošas savienojuma (Handshake) procesa gaitā:
- Client Hello: Pārlūkprogramma nosūta serverim ziņojumu, kurā norāda atbalstītās SSL/TLS versijas, šifrēšanas algoritmu sarakstu (cipher suites), saspiešanas algoritmus un nejaušu skaitli (no klienta).
- Server Hello: Serveris izvēlas labāko protokola versiju, šifrēšanas komplektu un saspiešanas algoritmu no pārlūkprogrammas piedāvātajiem, kā arī ģenerē savu nejaušo skaitli (no servera) un nosūta tos pārlūkprogrammai kopā ar savu SSL/TLS sertifikātu.
- Authentication: Pārlūkprogramma pārbauda servera sertifikātu:
- Sakņu sertifikāta autoritātes uzticamība (Root CA).
- Sertifikāta derīguma termiņš.
- Domēna vārda atbilstība sertifikātā ar vietnes adresi.
- Sertifikāta neesamība atcelto sertifikātu sarakstā (CRL vai OCSP).
- Premaster Secret: Pārlūkprogramma ģenerē nejaušu skaitli (premaster secret), to šifrē ar servera publisko atslēgu (no sertifikāta) un nosūta serverim.
- Session Key Generation: Abi, pārlūkprogramma un serveris, izmanto klienta (Client Random), servera (Server Random) nejaušos skaitļus un premaster secret, lai ģenerētu simetrisko sesijas atslēgu (session key).
- Change Cipher Spec: Pārlūkprogramma nosūta serverim ziņojumu, kas informē par pāreju uz ģenerētās sesijas atslēgas izmantošanu turpmākai komunikācijai.
- Finished: Pārlūkprogramma nosūta serverim visu iepriekšējo ziņojumu hash, šifrētu ar sesijas atslēgu. Šis ziņojums pārbauda rokas nospieduma pareizību.
- Change Cipher Spec: Serveris nosūta pārlūkprogrammai ziņojumu par pāreju uz šifrētu savienojumu.
- Finished: Serveris nosūta pārlūkprogrammai visu iepriekšējo ziņojumu hash, šifrētu ar sesijas atslēgu.
Pēc veiksmīgas rokas nospieduma, visa turpmākā datu pārraide starp pārlūkprogrammu un serveri notiek, izmantojot simetrisko šifrēšanu, balstoties uz ģenerēto sesijas atslēgu. Simetriskā šifrēšana ir daudz efektīvāka nekā asimetriskā, padarot to piemērotu lielu datu apjomu šifrēšanai.
Piemērojamie algoritmi (piemērs):
- Asimetriskā šifrēšana (sesijas atslēgas apmaiņai): RSA, Diffie-Hellman (DH), Elliptic Curve Diffie-Hellman (ECDH).
- Simetriskā šifrēšana (datu šifrēšanai): AES, 3DES, ChaCha20.
- Hash'ēšana (ziņojumu integritātes pārbaudei): SHA-256, SHA-384.