SSL protokoll

A Secure Sockets Layer (SSL) technológia egy biztonsági protokoll. Segítségével biztonságos adatátviteli csatornát alakíthatunk ki két fél között.
A protokoll egy harmadik felet is bevon annak érdekében, hogy az egyik vagy mindkét felet azonosítsa. Ez a Certificate Authority (CA). A felhasználók biztosak lehetnek abban, hogy azokkal kommunikálnak akikkel valóban szeretnének.

HTTPS

A https nem különálló protokoll, hanem egy jelölés arra, hogy SSL vagy TLS kapcsolat feletti a HTTP kommunikáció. A https:// kezdetű URL-ben megadható TCP port is, de ha nem adunk meg, akkor az alapértelmezett port értéke 443.

Ahhoz, hogy egy webszerver https típusú kéréseket tudjon fogadni, nyilvános kulcs igazolást (angolul public key certificate) kell felmutatniuk a böngészőnek.
Ezeket az igazolásokat valamilyen igazoló hatóságnak alá kell írnia, hogy tanúsítsa, hogy az illető szerver tényleg az, akinek állítja magát.

Az SSL kapcsolat létesítése egy aszimmetrikus titkosítás alapelvén működik. Minden kommunikáló fél rendelkezik egy titkosítási kulcs párral - egy nyilvános és egy privát kulccsal. A nyilvános kulcsot közzé kell tenni és biztosítani annak megfelelő átvitelét mindenki számára aki használni szeretné. Ha valaki titkosítja az üzenetet ezzel a kulccsal, csak a használt nyilvános kulcs tulajdonosa által, a megfelelő privát kulcs segítségével fejthető vissza.

Az SSL alapú kapcsolat működési elve

Amint eldőlt, hogy a szerver és a kliens TLS-t használnak, kapcsolódnak egy úgynevezett handshake folymaat segítségével:

  • böngésző kér egy biztonságos oldalt, és egy listát biztosít a szerver számára a felhasználható titkosítási módszerekről és hash függvényekről
  • szerver ebből a listából a számára legerősebbeket kiválasztja, és elküldi a digitális aláírását, ami a szerver nevéből, egy tanúsítványból és a szerver nyilvános kulcsából áll (szerver alatt weboldal, domain is érthető)
  • böngésző ellenőrzi, hogy a tanúsítványt kiállító fél illetve annak birtokosa megbízható - ha minden rendben, tovább folytatja a kapcsolódást
  • böngésző elkészít egy munkafolyamat-azonosító kulcsot (session key). Előállításához böngésző vesz egy véletlen számot, amit titkosít a szerver nyilvános kulcsával együtt és ennek eredményét küldi vissza a szervernek. Ezt kizárólag a szerver képes dekódolni a titkos kulcsa segítségével
  • böngésző az átküldött nyilvános kulcs segítségével titkosítja az automatán generálódott szimmetrikus kulcsot, amellyel majd a titkosított kapcsolat, adatáramlás megvalósul. A titkosított szimmetrikus kulcsot szintén elküldi a szervernek
  • szerver a magánkulcsával dekódolja a titkosított szimmetrikus kulcsot és használja, hogy dekódolja a http adatokat
  • szerver visszaküldi a kért html dokumentumot és a http adatot a szimmetrikus kulccsal titkosítva
  • böngésző dekódolja a http adatokat és html dokumentumot a szimmetrikus kulccsal és megjeleníti az információkat

Ha a fenti folyamat valamely lépése nem sikeres, úgy a kézfogás sikertelen lesz és a kapcsolat nem jön létre.

TLS handshake részletesebben

A TLS protokoll egységbezárt adatok, úgynevezett rekordok segítségével kommunikál. Minden egyes rekord tömöríthető, kiegészíthető ún. üzenet azonosító kóddal (MAC - Message Authentication Code), vagy akár titkosítható is, mindez a kapcsolat aktuális állapotától függ. Minden rekord tartalmaz egy tartalom típus, hossz és TLS verzió mezőket. Amikor a kapcsolódás megtörténik, a rekord egységbezár egy másik protokollt (a handshake üzenetküldési protokollt), aminek a tartalomtípusa a 22-es számmal van ellátva.

Egy egyszerűbb handshake folyamat több fázisból áll:

1. Tárgyalási fázis

A kliens egy ClientHello üzenetet küld a szerver számára, néhány plusz kéréssel együtt, amit a szervertől vár válaszként: a legnagyobb támogatott TLS verziót, egy véletlen számot, egy titkosítási módszert, és egy ajánlott tömörítési eljárást.
A szerver egy ServerHello üzenettel válaszol a kliensnek és továbbítja az előbbiekben felsorolt kéréseket. A választott protokoll a kliens és a szerver által egyaránt támogatott legújabb verziójú protokoll. Például: Ha a kliens a TLS 1.1-et támogatja, a szerver a TLS 1.2-t is, akkor az 1.1-es verzió lesz kiválasztva. SSL 3.0 nem választható.
A szerver ezután egy Certificate üzenetet küld(a titkosítási módszertől függően ezt a szerver kihagyhatja).
A szerver következik ismét: ServerHelloDone üzenet formájában jelzi a kliens fele, hogy a handshake tárgyalási folyamatát lezárja.
A kliens ClientKeyExchange üzenettel válaszol, ami tartalmazhat egy PreMasterSecret-et, vagy egy nyilvános kulcsot, vagy semmit se. Ez a PreMasterSecret titkosítva van a szerver nyilvános kulcsa által.
A kliens és a szerver a véletlenszámok és a PreMasterSecret segítségével előállítja a privát kulcsokat.

2. Kliens ChangeCipherSpec rekord

A kliens egy ChangeCipherSpec rekordot küld a szervernek, jelezve fele, hogy "minden amit innentől mondok, titkosítva lesz". Ez a rekord a 20-as tartalom típussal van ellátva. Végül, a kliens küld egy Finished üzenetet, ami egy hash-t és egy MAC-en tartalmaz az előző üzenetekből.

3. Szerver ChangeCipherSpec rekord

A szerver is küld a kliens részére egy ChangeCipherSpec üzenetet.

4. Alkalmazási fázis

Ezen a pontot a "handshake" véget ér, az alkalmazási protokoll engedélyezve van.

Önnek megbízhatóak a programozói?

Könnyen megértik egymást? Gördülékenyen folyik a munka? Minden elképzelését meg tudják valósítani? Vagy netán nehézkes a kommunikáció, gyakran elérhetetlenek, folyamatosan áll a fejlesztés, és sok kérésre mondják azt, hogy nem valósítható meg?

Itt az ideje, hogy megbízható programozói legyenek!

Vállalatunk mostantól stratégiai partnerként dolgozik együtt Magyarország legmegbízhatóbb szoftver- és webfejlesztő csapatával. Az igényes és egyedi megoldásokon kívül tudatos szemléletmódjukkal, valamint komplex gondolkodásukkal vívták ki elismerésünket. Megtalálnak számos olyan lehetőséget is, amellyel plusz felszabaduló időt és energiát biztosítanak, új lendületet víve mind saját, mind vállalkozása életébe.



Legfrissebb hírek

Új php verzió: php 7.0
2016-02-15 22:02:16

Bővítettük a php verziók listáját a 7.0-ás verzióval, így most már választható: 5.2, 5.3, 5.6, 7.0. Frissíteni admin felületünkön a Webhely menüponton belül a webhely adatlapján keresztül lehet.

Fontos tudnivaló, hogy a 7-es verzióban olyan fejlesztések történtek, melyek során nem volt elsődleges szempont a visszafelé való kompatibilitás. Célszerű a 7-es verzióval beállított oldalak működését ellenőrizni, mielőtt egy webhely élesítés történik.

Az átállásról, változásokról több információt a php.net oldalon lehet találni: Átállási információk PHP 5.6.x-ről PHP 7.0.x-re

php frissítés 5.6-ra
2015-10-22 06:06:50

A jelenlegi verziók mellé bekerült az 5.6-os verzió is. Frissíteni admin felületünkön a Webhely menüponton belül a webhely adatlapján keresztül lehet.

PhpMyadmin frissítés
2015-02-21 17:05:23

Frissítettük a phpmyadmin-t a legújabb 4.3.10-es verzióra.

Postafiókok méretkorlátozásának megszüntetése
2015-01-13 22:32:49
A postafiókok méretének korlátozása több kárt okozott, mint hasznot, ezért megszüntettük.
Automata válaszküldő
2012-03-16 05:22:08
Új funkcióval bővült a levelezést kezelő programunk, immáron automata válasz is küldhető.

Összes hírek

Iratkozzon fel RSS hírcsatornánkra

Összes hírcsatorna: http://domaintank.hu/rss