SRP

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. december 30-án felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .

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.

Áttekintés

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.

Hogyan működik

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:

  1. Kliens -> Szerver: I , A = g a (azonosított, a  tetszőleges)
  2. Szerver -> Kliens: s , B = kv + g b (tárolt s küldése , tetszőleges b )

Mindkét oldalon: u = H ( A , B )

Ügyféloldalon:

  1. x = H ( s , p ) (a felhasználó beírja a jelszót)
  2. S = ( B  - kg x ) (a + ux) (a munkamenet kulcsa kiszámítva)
  3. K = H ( S ) (K a kívánt titkosítási kulcs)

A szerver oldalon:

  1. S = ( Av u ) b (munkamenetkulcs számítása)
  2. K = H ( S ) ( K  a kívánt titkosítási kulcs)

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

Összehasonlítás bizonyos típusú algoritmusokkal

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á:

  1. A jelszó kézhezvétele után a támadó nem tudja visszafejteni a már megtörtént adatcserét, vagy bármely munkamenet munkamenet kulcsának kézhezvétele után (még brutális erőszakkal sem ) tudja kideríteni a felhasználó jelszavát, azonban a szerver továbbra is tárolja a jelszó egyértelmű szövegének analógja , amelyet el lehet lopni a tényleges jelszó megszerzéséhez (pl. DH-EKE, SPEKE).
  2. A szerver adatbázisból való információszerzéskor a támadó nem tudja megszerezni tőlük a jelszót, de az előző tulajdonság elveszik (például A-EKE).
  3. A módosítás az 1. és 2. tulajdonsággal rendelkezik egy további kulcscsere bevezetése miatt, de jelentős teljesítménybüntetést szenved a jelentős további számítások miatt.

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.

Lásd még

Linkek