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):
- 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).
- 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.
- 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).
- Premaster Secret: Prehliadač vygeneruje náhodné číslo (premaster secret), zašifruje ho verejným kľúčom servera (z certifikátu) a odošle serveru.
- 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).
- 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.
- 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.
- Change Cipher Spec: Server odošle prehliadaču správu o prechode na šifrované spojenie.
- 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.