HTTPS, of HyperText Transfer Protocol Secure, is een protocol dat wordt gebruikt voor veilige communicatie via een computernetwerk, meestal internet. Het combineert de standaard HTTP met SSL/TLS-coderingsprotocollen om ervoor te zorgen dat de gegevens die worden uitgewisseld tussen de client (zoals een webbrowser) en de server (zoals een website) vertrouwelijk en integraal blijven. HTTPS werkt door gegevens te versleutelen met behulp van symmetrische versleutelingsalgoritmen zoals AES (Advanced Encryption Standard) en door de authenticiteit van de server te garanderen via digitale certificaten die zijn uitgegeven door vertrouwde certificeringsinstanties (CA’s). Deze codering voorkomt dat ongeautoriseerde partijen de communicatie tussen de client en server afluisteren of ermee knoeien, waardoor gebruikers een veilige browse-ervaring krijgen.
HTTP, of HyperText Transfer Protocol, is de basis van datacommunicatie op het World Wide Web. Het werkt in een client-servermodel, waarbij de client (meestal een webbrowser) verzoeken naar de server (een webserver die een website host) verzendt om webpagina’s of andere bronnen op te halen. Het proces werkt stap voor stap als volgt:
- Client Request: De client initieert een verbinding met de server en verzendt een HTTP-verzoekbericht. Dit bericht specificeert de bron waartoe het toegang wil hebben, zoals de URL van een webpagina en andere optionele parameters.
- Serverreactie: Na ontvangst van het verzoek verwerkt de server het en stuurt een HTTP-antwoordbericht terug. Dit antwoord bevat de gevraagde bron, samen met statusinformatie, zoals of het verzoek succesvol was of dat er fouten waren.
- Gegevensoverdracht: de client ontvangt het HTTP-antwoord en geeft de gevraagde webpagina of bron weer aan de gebruiker. Als er extra bronnen nodig zijn (bijvoorbeeld afbeeldingen, scripts), kan de client daaropvolgende HTTP-verzoeken verzenden om deze van de server op te halen.
- Verbinding sluiten: zodra de gegevensoverdracht is voltooid, kan de client de verbinding verbreken of open houden voor verdere verzoeken, afhankelijk van de HTTP-versie en serverinstellingen.
HTTPS verzendt gegevens veilig door deze vóór verzending te versleutelen met behulp van symmetrische versleutelingsalgoritmen zoals AES. Het proces omvat:
- Encryptie: Voordat gegevens over het netwerk worden verzonden, codeert HTTPS deze met behulp van symmetrische coderingsalgoritmen zoals AES. Dit zorgt ervoor dat de gegevens, zelfs als ze worden onderschept, onleesbaar blijven zonder de juiste decoderingssleutels.
- Gegevensoverdracht: De gecodeerde gegevens worden via het netwerk verzonden van de client naar de server of omgekeerd. Deze overdracht vindt plaats via de tot stand gebrachte beveiligde verbinding, die tot stand is gebracht tijdens de SSL/TLS-handshake.
- Decryptie: Bij ontvangst van de gecodeerde gegevens decodeert de ontvanger (client of server) deze met behulp van de gedeelde symmetrische coderingssleutels die zijn vastgesteld tijdens de SSL/TLS-handshake. Door deze decodering kan de ontvanger de originele platte tekstgegevens veilig openen en verwerken.
HTTPS maakt doorgaans gebruik van asymmetrische encryptie-algoritmen zoals RSA (Rivest-Shamir-Adleman) tijdens de SSL/TLS-handshake-fase om een veilige verbinding tussen de client en de server tot stand te brengen. Asymmetrische encryptie wordt gebruikt voor sleuteluitwisseling en authenticatiedoeleinden. Zodra een veilige verbinding tot stand is gebracht, gebruikt HTTPS vervolgens symmetrische encryptie-algoritmen zoals AES (Advanced Encryption Standard) voor het coderen van de daadwerkelijke gegevens die tussen de client en de server worden verzonden. Deze combinatie van asymmetrische en symmetrische encryptie garandeert de vertrouwelijkheid, integriteit en authenticiteit van gegevens die via HTTPS-verbindingen worden uitgewisseld.