A TLS és elődje, az SSL olyan kriptográfiai protokollok, amelyek a kommunikáció biztonságát (bizonyos esetekben a titkosságot és az integritást, más esetekben a letagadásmentességet) biztosítják egy hálózaton keresztül.
Az egyirányú TLS-ben, vagy hagyományos TLS-ben az X.509 szervertanúsítványt egy hitelesítésszolgáltató készíti, amelyben az ügyfél megbízhat, amikor csatlakozni akar. A nyilvános kulcsinfrastruktúra (PKI) felelős a bizalom kezeléséért és a tanúsítvány(ok) terjesztéséért. A tanúsítványhatóságok (CA-k) nagyon fontos szerepet játszanak a PKI-ban. Egy X.509 tanúsítvány nem más, mint a szerverre vonatkozó információk és a szerver nyilvános kulcsa, amelyet egy hitelesítésszolgáltató digitálisan aláírt.
A szerver beállítható úgy, hogy bármelyik klienstől engedélyezze a kapcsolatot (mint az egyirányú TLS-ben), vagy beállítható úgy, hogy a hozzá csatlakozni kívánó klienseket hitelesítésre kérje. Tehát ahhoz, hogy egy kliens hitelesítse magát, szükség van egy kliens-tanúsítványra. A kétirányú TLS-hitelesítésben, más néven TLS ügyféltanúsítvány-hitelesítéssel, a szervertanúsítvány mellett az ügyféltanúsítvány is részt vesz a hitelesítési folyamat keményítése érdekében. A kiszolgálói tanúsítványhoz hasonlóan az ügyféltanúsítvány is tartalmazza az ügyfél személyazonosságára vonatkozó alapvető információkat, a nyilvános kulcsát, és a tanúsítványon lévő hitelesítésszolgáltató digitális aláírása igazolja, hogy ezek az információk hitelesek. Az ügyféltanúsítványt olyan hitelesítésszolgáltatónak kell aláírnia, amelyben a kiszolgáló megbízik, és nyilvánvaló, hogy mindkét X.509 tanúsítványnak léteznie kell a kapcsolat előtt!
A TLS egyféleképpen elég biztonságos, ha hitelesítéssel együtt használjuk, amivel akkor szembesülünk, ha be akarunk jelentkezni a Gmailbe. Amikor a Gmail webes felületét használja, a jelszava mellett a böngésző https képességén keresztül egyirányú TLS-t használ. Ha nem használja a jelszavát, akkor csak Ön tudja ellenőrizni, hogy egy legitim szerverhez csatlakozott, de a Gmail szerver nem tudja ellenőrizni a személyazonosságát, így nem mondhatjuk, hogy a kapcsolat biztonságos. Ha a Gmail kétirányú TLS-t kínál, akkor a jelszava megadása nélkül is könnyen csatlakozhat hozzá, és a kapcsolat biztonságosnak tekinthető.
A kétirányú TLS-kapcsolat használatának fő szándéka az lenne, ha egy szervernek csak az engedélyezett ügyfelek egy korlátozott csoportjától kellene TLS-kapcsolatot elfogadnia. Ilyen lehet például egy olyan forgatókönyv, amikor egy szervezet úgy akarja korlátozni a TLS-kapcsolatokat egy kiszolgálóhoz, hogy azok csak a szervezet legitim partnereitől vagy ügyfeleitől jöjjenek. Határozottan az IP fehérlistázása az ügyfelek számára nem jó biztonsági gyakorlat, mert az IP hamisítható.
A kétirányú TLS kézfogás folyamatának egyszerűsítése érdekében mondhatjuk, hogy
- A kliens kérést küld a kiszolgálón lévő védett információkhoz való hozzáférésre.
2. A kiszolgáló bemutatja az X.509 tanúsítványát az ügyfélnek.
3. Az ügyfél ellenőrzi a kiszolgáló tanúsítványát a kiszolgáló nyilvános kulcsának digitális aláírásának a hitelesítésszolgáltató nyilvános kulcsával történő érvényesítésével.
4. Ha az utolsó lépés sikeres, az ügyfél elküldi a tanúsítványát a kiszolgálónak.
5. Az ügyfél elküldi a tanúsítványát a kiszolgálónak. A kiszolgáló ellenőrzi az ügyfél tanúsítványát a 3. lépésben leírt módszerrel.
6. Ha sikeres, a kiszolgáló hozzáférést biztosít a kliensnek a védett információkhoz.
Ha egy Apache webkiszolgálót kell konfigurálnia a kétirányú TLS kezelésére, olvassa el ezt a dokumentumot: http://www.robinhowlett.com/blog/2016/01/05/everything-you-ever-wanted-to-know-about-ssl-but-were-afraid-to-ask/