HTTPS | |
---|---|
Név | Biztonságos hiperszöveg átviteli protokoll |
Szint ( az OSI modell szerint ) | Alkalmazott |
Család | TCP/IP |
Létrehozva: | 2000 |
Port/ID | 443/ TCP |
A protokoll célja | Biztonságos kapcsolat a szerverrel |
Leírás | RFC 2818 |
Főbb megvalósítások (kliensek) | webböngészők |
Alapvető megvalósítások ( szerverek ) | Apache , nginx , IIS |
Médiafájlok a Wikimedia Commons oldalon |
A HTTPS (rövidítés az angol HyperText Transfer Protocol Secure szóból ) a HTTP protokoll kiterjesztése , amely támogatja a titkosítást a biztonság növelése érdekében. A HTTPS protokollban lévő adatok továbbítása a 2015-ben elavult TLS vagy SSL kriptográfiai protokollokon keresztül történik [1] . A 80 - as TCP - porttal rendelkező HTTP-vel ellentétben a HTTPS alapértelmezés szerint a 443-as TCP-portot használja [2] .
A protokollt a Netscape Communications fejlesztette ki a Netscape Navigator böngészőhöz 1994-ben [3] .
A HTTPS nem különálló protokoll. Ez egy egyszerű HTTP, amely az SSL és TLS titkosított átviteli mechanizmusain fut [4] . Védelmet nyújt a szippantó támadások és a köztes támadások ellen , feltéve, hogy titkosítási eszközöket használnak, és a szervertanúsítvány érvényes és megbízható [5] .
Alapértelmezés szerint a HTTPS URL a 443-as TCP - portot használja (a nem biztonságos HTTP-80-hoz) [ 2] . Ahhoz, hogy egy webszervert felkészítsen a https-kapcsolatok kezelésére, a rendszergazdának be kell szereznie és telepítenie kell egy nyilvános és privát kulcsú tanúsítványt az adott webszerverhez a rendszeren. A TLS aszimmetrikus titkosítási sémát (megosztott titkos kulcs létrehozására) és szimmetrikus titkosítási sémát (megosztott kulccsal titkosított adatok cseréjére) egyaránt használ. A nyilvános kulcs tanúsítványa megerősíti, hogy az adott nyilvános kulcs a webhely tulajdonosához tartozik. A nyilvános kulcs tanúsítványát és magát a nyilvános kulcsot a rendszer elküldi az ügyfélnek, amikor a kapcsolat létrejön; a privát kulcs a klienstől érkező üzenetek visszafejtésére szolgál [6] .
Létrehozhat ilyen tanúsítványt anélkül, hogy kapcsolatba lépne a tanúsító hatósággal . Az ilyen tanúsítványokat ugyanaz a tanúsítvány írja alá, és önaláírtnak ( self -signed ) nevezzük. A tanúsítvány más módon történő ellenőrzése nélkül (például a tulajdonos felhívása és a tanúsítvány ellenőrző összegének ellenőrzése) ez a HTTPS-használat érzékeny a középső támadásra [7] .
Ez a rendszer kliens hitelesítésre is használható, hogy csak az arra jogosult felhasználók férhessenek hozzá a szerverhez . Ehhez az adminisztrátor általában minden felhasználó számára létrehoz egy tanúsítványt, és feltölti azokat minden felhasználó böngészőjébe. Minden olyan tanúsítványt is elfogadunk, amelyet olyan szervezetek írnak alá, amelyekben a szerver megbízik. Az ilyen tanúsítványok jellemzően a jogosult felhasználó nevét és e-mail címét tartalmazzák, amelyeket minden csatlakozáskor ellenőrzi a felhasználó személyazonosságának ellenőrzése jelszó megadása nélkül [8] .
A HTTPS 40, 56, 128 vagy 256 bites kulcshosszt használ a titkosításhoz. A böngészők egyes régebbi verziói 40 bites kulcshosszt használnak (példa erre az IE 4.0 előtti verziói), az Egyesült Államokban érvényes exportkorlátozások miatt. A 40 bites kulcs nem biztonságos. Sok modern webhely megköveteli a 128 bites titkosítást támogató böngészők új verzióinak használatát a megfelelő szintű biztonság érdekében. A 128 bites kulcshosszúságú titkosítás sokkal nehezebbé teszi a jelszavak kitalálását és a személyes adatok elérését [6] .
Hagyományosan csak egy HTTPS-webhely futhat egy IP-címen. Több különböző tanúsítvánnyal rendelkező HTTPS-webhely a Server Name Indication (SNI) nevű TLS-bővítményt használja [9] .
2017. július 17-én az Alexa top 1 000 000 webhelyének 22,67%-a alapértelmezés szerint HTTPS-t használ [10] . A HTTPS-t az összes regisztrált orosz domain 4,04%-a használja [11] .
A HTTP/ TLS kérések az URI hivatkozásának megszüntetésével jönnek létre, így a gazdanevet ismeri az ügyfél. A kommunikáció kezdetén a szerver elküldi a tanúsítványát a kliensnek, hogy a kliens azonosítani tudja. Ez megakadályozza a „man-in-the-middle” támadást. A tanúsítvány a kiszolgáló URI-jét határozza meg. A hosztnév és a tanúsítványban megadott adatok egyeztetése az RFC2459 [12] protokoll szerint történik .
Ha a kiszolgáló neve nem egyezik a tanúsítványban megadottal, akkor a felhasználói programok, például a böngészők jelentik ezt a felhasználónak. Alapvetően a böngészők választási lehetőséget adnak a felhasználónak, hogy folytatja-e a nem biztonságos kapcsolatot, vagy megszakítja azt [13] .
A szerver általában nem rendelkezik elegendő információval a kliensről az azonosításhoz. A kapcsolat fokozott biztonsága érdekében azonban az úgynevezett kétirányú hitelesítést alkalmazzák. Ebben az esetben a szerver, miután a kliens visszaigazolta a tanúsítványát, szintén tanúsítványt kér. Így a kliens hitelesítési séma hasonló a szerver hitelesítéshez [14] .
Ha a webhelyek HTTP és HTTPS vegyes funkcionalitását használják, az információs fenyegetést jelenthet a felhasználó számára. Például, ha egy webhely fő oldalai HTTPS-sel, a CSS és a JavaScript pedig HTTP-n keresztül töltődnek be, akkor a támadó az utóbbi betöltésekor betöltheti a kódját, és megkaphatja a HTML-oldal adatait. Sok webhely az ilyen sérülékenységek ellenére olyan harmadik féltől származó szolgáltatásokon keresztül tölt le tartalmat, amelyek nem támogatják a HTTPS-t. A HSTS- mechanizmus megakadályozza az ilyen sérülékenységeket azáltal, hogy kényszeríti a HTTPS-kapcsolat használatát még akkor is, ha alapértelmezés szerint a HTTP-t használják [15] .
A HTTPS-ben forgalomelemzéssel kapcsolatos sebezhetőségeket fedeztek fel. A forgalomszimuláló támadás egy olyan támadás, amely a forgalom méretének és az üzenetküldéshez szükséges idő mérésével következtet a csatorna biztonságos adatainak tulajdonságaira. A forgalomelemzés azért lehetséges, mert az SSL/TLS titkosítás megváltoztatja a forgalom tartalmát, de minimális hatással van a forgalom méretére és átviteli idejére. 2010 májusában a Microsoft Research és az Indiana Egyetem kutatói felfedezték, hogy részletes, érzékeny felhasználói adatok származhatnak másodlagos adatokból, például csomagméretekből. A forgalomelemző képes volt leolvasni a felhasználó kórtörténetét, a felhasználó által használt gyógyszereket és végrehajtott tranzakciókat, a családi jövedelmi adatokat stb. Mindez annak ellenére történt, hogy számos modern webalkalmazásban HTTPS-t használnak az egészségügy, adózás területén és mások [16] .
A "közepes támadás" azt használja ki, hogy a HTTPS-kiszolgáló nyilvános kulcsú tanúsítványt küld a böngészőnek . Ha ez a tanúsítvány nem megbízható, akkor az átviteli csatorna sebezhető lesz a támadó támadásaival szemben. Ez a támadás a HTTPS-kiszolgálót hitelesítő eredeti tanúsítványt egy módosított tanúsítvánnyal helyettesíti. A támadás akkor sikeres, ha a felhasználó figyelmen kívül hagyja a tanúsítvány kétszeri ellenőrzését, amikor a böngésző elküldi a figyelmeztetést. Ez különösen gyakori a felhasználók körében, akik gyakran találkoznak önaláírt tanúsítványokkal , amikor hozzáférnek egy magánszervezet hálózatán belüli webhelyekhez [17] .
ábrán. Az 1. ábra egy olyan helyzetet mutat be, amikor a támadó átjáró a biztonságos tranzakciót végrehajtó kliens és a szerver között. Így az összes ügyfélforgalom áthalad a támadón, és azt saját belátása szerint átirányíthatja. Itt a következő lépéseket hajtják végre:
Egy ilyen támadás eredményeként a kliens és a szerver azt hiszi, hogy biztonságos kapcsolatot létesítenek, de a támadó már rendelkezik a privát kulccsal is, és a csatornán lévő bármely üzenetet vissza tudja fejteni [17] .
![]() |
---|
URI- sémák | |
---|---|
Hivatalos | |
nem hivatalos |
TCP / IP protokollok az OSI modell rétegei szerint | Alapvető|
---|---|
Fizikai | |
csatornázott | |
hálózat | |
Szállítás | |
ülés | |
Reprezentáció | |
Alkalmazott | |
Egyéb alkalmazva | |
A TCP és UDP portok listája |
http | |
---|---|
Általános fogalmak |
|
Mód | |
Címek |
|
Állapotkódok |