Sobes.tech
Middle

Ako sa zabezpečuje šifrovanie správ medzi prehliadačom a serverom?

sobes.tech AI

Odpoveď od AI

Šifrovanie medzi prehliadačom a serverom sa vykonáva pomocou protokolu HTTPS, ktorý je nadstavbou nad HTTP s použitím protokolov SSL/TLS (Secure Sockets Layer / Transport Layer Security).

Proces naviazania zabezpečeného spojenia (Handshake):

  1. Client Hello: Prehliadač odošle serveru správu obsahujúcu podporované verzie SSL/TLS, zoznam šifrovacích algoritmov (cipher suites), algoritmy kompresie a náhodné číslo (od klienta).
  2. Server Hello: Server vyberie najlepšiu verziu protokolu, šifrovací set a algoritmus kompresie z navrhnutých prehliadačom, a tiež vygeneruje vlastné náhodné číslo (zo servera) a odošle ich prehliadaču spolu so svojím SSL/TLS certifikátom.
  3. Authentication: Prehliadač overí certifikát servera:
    • Dôveryhodnosť koreňového certifikačného centra (Root CA).
    • Platnosť certifikátu.
    • Zhodu doménového mena v certifikáte s adresou webovej stránky.
    • Neexistenciu certifikátu v zozname odvolaných (CRL alebo OCSP).
  4. Premaster Secret: Prehliadač vygeneruje náhodné číslo (premaster secret), zašifruje ho verejným kľúčom servera (z certifikátu) a odošle serveru.
  5. Session Key Generation: Obaja, prehliadač a server, používajú klientské (Client Random), serverové (Server Random) náhodné čísla a premaster secret na generovanie symetrického relácie kľúča (session key).
  6. Change Cipher Spec: Prehliadač odošle serveru správu, ktorá informuje o prechode na použitie vygenerovaného relácie kľúča pre ďalšiu komunikáciu.
  7. Finished: Prehliadač odošle serveru hash všetkých predchádzajúcich správ rúk, zašifrovaný relácie kľúčom. Táto správa overuje správnosť rúk.
  8. Change Cipher Spec: Server odošle prehliadaču správu o prechode na šifrované spojenie.
  9. Finished: Server odošle prehliadaču hash všetkých predchádzajúcich správ rúk, zašifrovaný relácie kľúčom.

Po úspešnom rúkovaní sa všetka následná prenos dát medzi prehliadačom a serverom deje pomocou symetrického šifrovania na základe vygenerovaného relácie kľúča. Symetrické šifrovanie je oveľa efektívnejšie ako asymetrické, čo ho robí vhodným pre šifrovanie veľkých objemov dát.

Príklady algoritmov:

  • Asymetrické šifrovanie (pre výmenu relácie kľúča): RSA, Diffie-Hellman (DH), Elliptic Curve Diffie-Hellman (ECDH).
  • Symetrické šifrovanie (pre šifrovanie dát): AES, 3DES, ChaCha20.
  • Hashovanie (pre kontrolu integrity správ): SHA-256, SHA-384.