Junior
Jak funguje HTTPS?
sobes.tech AI
Odpověď od AI
HTTPS (Hypertext Transfer Protocol Secure) je protokol, který zajišťuje bezpečný přenos dat mezi klientem (například prohlížečem) a serverem. Je založen na HTTP, ale používá šifrování k ochraně přenášených informací.
Fungování HTTPS je založeno na použití protokolu TLS (Transport Layer Security), který dříve nesl název SSL (Secure Sockets Layer). TLS/SSL zajišťuje tři klíčové aspekty bezpečnosti:
- Šifrování: Data mezi klientem a serverem jsou zašifrována, což je činí nečitelnými pro třetí strany.
- Integrita dat: Kontroluje se, že data nebyla během přenosu změněna.
- Autentizace: Server potvrzuje svou pravost klientovi.
Proces navázání spojení HTTPS zahrnuje několik etap, nazývaných "TLS/SSL Handshake":
- Client Hello: Klient pošle serveru "Client Hello" obsahující:
- Podporovanou verzi TLS.
- Seznam podporovaných šifrovacích algoritmů (cipher suites).
- Náhodné číslo.
- Server Hello: Server odpoví "Server Hello" a vybere z nabízených možností:
- Verzi TLS.
- Jeden z podporovaných šifrovacích algoritmů.
- Náhodné číslo.
- Certifikát serveru.
- Certificate: Klient obdrží a ověří pravost certifikátu serveru:
- Ověří digitální podpis certifikátu pomocí veřejného klíče certifikační autority (CA).
- Zkontroluje platnost certifikátu.
- Ověří, že doménové jméno v certifikátu odpovídá požadovanému.
- Client Key Exchange: Klient vygeneruje pre-mistr tajný klíč, zašifruje ho veřejným klíčem certifikátu serveru a odešle ho serveru.
- Change Cipher Spec (Client): Klient informuje server, že je připraven začít vyměňovat zašifrovaná data.
- Finished (Client): Klient odešle zašifrovanou zprávu s hash hodnotou všech předchozích zpráv Handshake pro ověření integrity.
- Change Cipher Spec (Server): Server dešifruje pre-mistr tajný klíč pomocí svého soukromého klíče a vygeneruje symetrické klíče pro šifrování relace. Poté informuje klienta, že je připraven začít vyměňovat zašifrovaná data.
- Finished (Server): Server odešle zašifrovanou zprávu s hash hodnotou všech předchozích zpráv Handshake.
- Šifrovaný přenos dat: Po úspěšném dokončení Handshake používají klient a server vygenerované symetrické klíče k šifrování všech následujících dat.
Tímto způsobem HTTPS zajišťuje zabezpečený komunikační kanál, což činí webové prohlížení bezpečnějším.