Sobes.tech
Junior

Vertel me over het HTTPS-protocol.

sobes.tech AI

Antwoord van AI

HTTPS (Hypertext Transfer Protocol Secure) is een uitbreiding van het HTTP-protocol die een veilige gegevensoverdracht tussen de client (browser) en de server mogelijk maakt.

Belangrijkste verschillen en principes van werking van HTTP:

  • Versleuteling: Gebruikt SSL/TLS-protocollen om gegevens te versleutelen, waardoor deze beschermd zijn tegen onderschepping en wijziging.
  • Integriteit: Garandeert dat de door de client verzonden gegevens zonder wijzigingen bij de server aankomen.
  • Authenticatie: Maakt het mogelijk voor de client om de echtheid van de server te verifiëren, zodat deze met de juiste bron communiceert.

Stappen voor het opzetten van een beveiligde verbinding:

  1. Client Hello: De client stuurt een lijst met ondersteunde SSL/TLS-versies, encryptie-algoritmen en andere parameters naar de server.
  2. Server Hello: De server kiest de meest geschikte parameters uit de voorstellen van de client en stuurt deze terug, samen met zijn certificaat.
  3. Certificate Verify: De client verifieert het certificaat van de server (authenticiteit, geldigheid, vertrouwensketen).
  4. Client Key Exchange: De client genereert een sessiesleutel, versleutelt deze met de openbare sleutel van de server (uit het certificaat) en stuurt deze naar de server.
  5. Server Change Cipher Spec, Finished: De server ontsleutelt de sessiesleutel, start de sessieciphering en bevestigt dat hij klaar is voor het uitwisselen van versleutelde gegevens.
  6. Client Change Cipher Spec, Finished: De client start ook de sessieciphering en bevestigt dat hij klaar is.
  7. Veilige gegevensuitwisseling: Het verdere uitwisselen van gegevens gebeurt met symmetrische encryptie op basis van de sessiesleutel.

HTTPS is verplicht voor websites die werken met vertrouwelijke informatie (inloggegevens, wachtwoorden, bankgegevens) en is een belangrijke factor voor SEO. Bij het testen van HTTPS is het belangrijk om te controleren:

  • De geldigheid en correctheid van het SSL-certificaat.
  • Ondersteuning van moderne TLS-versies.
  • Aanwezigheid van kwetsbaarheden (bijvoorbeeld Heartbleed, POODLE).
  • Correcte redirect van HTTP naar HTTPS.
  • Mengt inhoud (wanneer op een HTTPS-pagina resources via HTTP worden geladen).

Voor testen worden tools gebruikt zoals Postman, curl, OpenSSL en de ontwikkelaarstools van browsers.

# SSL-certificaatcontrole met OpenSSL
openssl s_client -connect voorbeeld.com:443
# Voorbeeld van een HTTPS-verzoek met Python requests
import requests

try:
    response = requests.get("https://voorbeeld.com")
    response.raise_for_status()  # Controleer op HTTP-fouten
    print("HTTPS-verbinding succesvol.")
except requests.exceptions.RequestException as e:
    print(f"Fout bij verbinding via HTTPS: {e}")