A Secure Remote Password Protocol ( SRPP ) egy jelszó- hitelesítési protokoll , amely ellenáll a lehallgatásnak és a MITM - támadásoknak, és nem igényel megbízható harmadik felet. Az SRP tartalmaz néhány elemet más kulcscsere- és hitelesítési protokollokból, miközben kisebb fejlesztéseket és finomításokat hajt végre. A protokoll megőrzi a titkosított kulcscsere osztályú protokollok robusztusságát és hatékonyságát , miközben megszabadul néhány hiányosságuktól.
Az SRP protokoll lehetővé teszi a felhasználó számára, hogy a jelszava továbbítása nélkül azonosítsa magát a szerveren, azaz megerősítse azt a tényt, hogy ismeri a jelszavát, és csak ezt a tényt. Számos hasznos tulajdonsággal rendelkezik:
Az SRP hatékonyan valósítja meg a Zero-Knowledge Proof-ot a felhasználó és a jelszavával kapcsolatos információkat tároló szerver között. Ha egyszerre figyel, a támadó csak a jelszó egy verzióját tudja ellenőrizni, a protokoll 6-os verziójától kezdve. Ennek a protokollnak számos változata van, jelenleg a legújabb verzió a 6a.
Ennek a protokollnak a működése eredményeként mindkét fél hosszú titkos kulcsot kap, amelynek átvétele után a felek közötti megfelelőséget ellenőrzik. Azokban az esetekben, amikor a hitelesítés mellett adattitkosításra is szükség van, az SRP az SSH -nál biztonságosabb és a Diffie-Hellmannél gyorsabb eszközt kínál ennek eléréséhez. Az SRP 3. verzióját az RFC 2945 írja le . Az SRP 6-os verzióját az SSL / TLS és más szabványok, például az EAP és a SAML hitelesítésre is használják, és jelenleg az IEEE P1363 és az ISO/IEC 11770-4 szabványosítja.
Vezessük be az érveléshez szükséges jelölést:
A jelszó és az ellenőrző fogalma megfelel a titkos és nyilvános kulcsok általánosan elfogadott fogalmainak, két figyelmeztetéssel: a jelszó általában kisebb, mint a titkos kulcs , mivel a felhasználó emlékszik rá, és kicsi a memóriája; viszont az ellenőrző matematikailag hasonló a nyilvános kulcshoz, mivel a jelszóból könnyen beszerezhető, a fordított művelet pedig számításilag eldönthetetlen. Ahelyett azonban, hogy nyilvánosan ismert volna, az ellenőrzőt a szerver titokban tartja. Azt a hitelesítési módszert, amely megköveteli, hogy a szerver tároljon ellenőrzőt, de jelszót nem, hitelesítő alapúnak nevezzük.
A , B a kezdeti paraméterekből számítható ki (lásd alább). A szerver a jelszavakat a következő képlet szerint tárolja:
A szerver ezután eltárolja a párt ( I , s , v ) az adatbázisában . A hitelesítés a következő módon történik:
Mindkét oldalon: u = H ( A , B )
Ügyféloldalon:
A szerver oldalon:
Mindkét félnek van egy közös titkos kulcsa K. A hitelesítés befejezéséhez ellenőrizniük kell, hogy kulcsaik egyeznek. Az egyik lehetséges mód:
Kliens -> Szerver: M = H ( H ( N ) xor H ( g ), H ( I ), s , A , B , K ) és szerver oldali érvényesítés
Szerver -> Kliens: H ( A , M , K ) és kliens oldali érvényesítés
A hitelesítési algoritmusok egyszerű típusairól és sebezhetőségeiről fogunk beszélni ehhez képest, amely bemutatja az SRP előnyeit.
A legegyszerűbb hitelesítési mód az, hogy a klienstől titkosítatlan jelszót küldünk a szervernek, majd a szerver összehasonlítja a kapott jelszót vagy annak kivonatát egy adatbázis-bejegyzéssel. A nyilvánvaló hátrány a lehallgatással szembeni sebezhetőség.
Az első algoritmust módosítva hitelesítést kapunk kéréssel és megerősítéssel (challenge-response), ahol a csere a következőképpen történik:
ezt követően a kliens kiszámít egy három értékből álló hash-t: r, c, jelszó, és visszaküldi. Ez a módszer ki van téve a nyers erőszaknak, mivel az r, c, hash birtokában lévő támadó kitalálhatja az ügyfél jelszavát.
Az első két algoritmust elemezve eljuthatunk a harmadikhoz, amely szintén védett a szótári kereséstől. Az ilyen protokollok családját titkosított kulcscserének (EKE) nevezik. Ennek az algoritmusnak az a lényege, hogy mindkét fél előállítja nyilvános kulcsait az aszimmetrikus titkosításhoz , és szimmetrikus algoritmussal kicseréli azokat, kulcsként használva a mindkettő által ismert felhasználó jelszavát. Ezt a protokollcsaládot széles körben használják, különféle végrehajtott módosításokkal, amelyek bizonyos tulajdonságokat adnak hozzá:
Mindezen sérülékenységek elkerülése és egy jó sebességű algoritmus megszerzése érdekében kidolgozásra került az AKE ( Asymmetric key exchange ) koncepció , amely elsősorban abban különbözik a korábbiaktól, hogy az adatátvitel során nincs titkosítás, ami megkíméli a rendszert a felesleges munkától. számítási teljesítmény és bizonyos titkosítási algoritmusok lehetséges sebezhetőségei. Az AKE egyik megvalósítása az SRP.