Junior
Mesélj az HTTPS protokollról.
sobes.tech MI
Válasz az MI-től
A HTTPS (Hypertext Transfer Protocol Secure) a HTTP protokoll kiterjesztése, amely biztonságos adatátvitelt biztosít a kliens ( böngésző) és a szerver között.
A HTTP főbb különbségei és működési elvei:
- Titkosítás: Az SSL/TLS protokollokat használja az adatok titkosítására, megvédve azokat az elfogás és módosítás ellen.
- Integritás: Biztosítja, hogy a kliens által küldött adatok változatlanul érkezzenek a szerverhez.
- Hitelesítés: Lehetővé teszi a kliens számára, hogy ellenőrizze a szerver hitelességét, biztosítva, hogy a megfelelő erőforrással kommunikál.
A biztonságos kapcsolat felépítésének lépései:
- Client Hello: A kliens elküldi a szervernek az által támogatott SSL/TLS verziók, titkosítási algoritmusok és egyéb paraméterek listáját.
- Server Hello: A szerver kiválasztja a legmegfelelőbb paramétereket a kliendől kapott javaslatok közül, és visszaküldi azokat, valamint a saját tanúsítványát.
- Certificate Verify: A kliens ellenőrzi a szerver tanúsítványát (hitelesség, érvényesség, bizalmi lánc).
- Client Key Exchange: A kliens generál egy titkos kulcsot, azt a szerver nyilvános kulcsával (a tanúsítványból) titkosítja, és elküldi.
- Server Change Cipher Spec, Finished: A szerver dekódolja a titkos kulcsot, elindítja a szekció titkosítását, és megerősíti, hogy készen áll a titkosított adatok cseréjére.
- Client Change Cipher Spec, Finished: A kliens szintén elindítja a szekció titkosítását, és megerősíti, hogy készen áll.
- Biztonságos adatcsere: A további adatok a szekció titkos kulcsán alapuló szimmetrikus titkosítással történnek.
A HTTPS kötelező azoknak a webhelyeknek, amelyek bizalmas információkkal (bejelentkezések, jelszavak, banki adatok) dolgoznak, és fontos SEO tényező. A HTTPS tesztelésekor fontos ellenőrizni:
- Az SSL tanúsítvány érvényességét és helyességét.
- A modern TLS verziók támogatását.
- A sebezhetőségek (pl. Heartbleed, POODLE) jelenlétét.
- A HTTP-ről HTTPS-re történő helyes átirányítást.
- A kevert tartalmat (amikor HTTPS oldalról HTTP erőforrásokat töltenek be).
A teszteléshez eszközök használhatók: Postman, curl, OpenSSL, böngésző fejlesztői eszközök.
# SSL tanúsítvány ellenőrzése OpenSSL-lel
openssl s_client -connect example.com:443
# HTTPS kérés példája Python requests-sel
import requests
try:
response = requests.get("https://example.com")
response.raise_for_status() # HTTP hibák ellenőrzése
print("HTTPS kapcsolat sikeres.")
except requests.exceptions.RequestException as e:
print(f"Hiba HTTPS kapcsolódásban: {e}")