130 likes | 251 Views
PKCS #5 v2.0: Password-Based Cryptography Standard. Csercsa Richárd. 2006. 05. 12. Mire használják?. A nyilvános-kulcsú kriptográfiában sok helyen jelszavak védik a biztonságot A jelszavak önmagukban nem használhatók kulcsként
E N D
PKCS #5 v2.0: Password-Based Cryptography Standard Csercsa Richárd 2006. 05. 12.
Mire használják? • A nyilvános-kulcsú kriptográfiában sok helyen jelszavak védik a biztonságot • A jelszavak önmagukban nem használhatók kulcsként • Szükség van olyan módszerekre, amik a jelszavakból kulcsot állítanak elő
Jelszavak biztonsága Daniel V. Klein, 1991 ftp://ftp.cerias.purdue.edu/pub/dict/dictionaries/DanKlein/
Salt • Robert Morris, Ken Thompson (1979) • Egy jelszóhoz sok kulcs tartozik, a salt az index, ami megmutatja, melyiket használják • A jelszó után illesztik DK = KDF(P,S) • 64 bites salt → 264 kulcs minden jelszóhoz • Ugyanazon kulcs választásának esélye csak 232 kulcs generálása esetén lesz jelentős
Iteration count • Célszerű költséges kulcsgeneráló függvényeket használni, ezek növelik a kimerítő keresés költségét • Pl.: egy belső függvény iterálása • Kódolásnál 1000-szer ismételni egy eljárást nem nagy teher, megfejteni viszont már az
PBKDF1 T1= Hash(P║S) T2= Hash(T1) … Tc= Hash(Tc-1) DK=Tc<0…dkLen-1> Túl rövid kulcsot eredményez. Hash függvény lehet MD2 (16 byte), MD5 (16 byte), SHA-1 (20 byte).
PBKDF2 T1= U1 XOR U2 XOR … XOR Uc U1= PRF(P,S║Int(1)) U2= PRF(U1) … Uc= PRF(Uc-1) Int(1): 1 négy-byte-os kódolt reprezentációja
PBKDF2 T2= U1 XOR U2 XOR … XOR Uc U1= PRF(P,S║Int(2)) U2= PRF(U1) … Uc= PRF(Uc-1) Int(2): 2 négy-byte-os kódolt reprezentációja DK = T1║T2║…║Tl
PBES1 • 16 byte hosszú kulcs generálása: DK = PBKDF1(P,S,c,16) Ennek első fele lesz a kulcs, második fele az IV. 2.Üzenet kiegészítése úgy, hogy a hossza nyolccal osztható legyen. A kiegészítés minden byte-jának értéke a kiegészítés hossza. PS = 01, ha ║M║mod 8 = 7 PS = 02 02, ha ║M║mod 8 = 6 PS = 03 03 03, ha ║M║mod 8 = 5
PBES1 3. Kódolás blokk kódolóval Például DES-CBC: 56 bites kulcs + 8 paritás bit vagy RC2: 64 bites kulcs Hash függvény lehet MD2, MD5, SHA-1.
PBES2 • PBKDF2 és egy kódolási eljárás ötvözete • A kulcs hossza, IV, padding, stb. a kódolási eljárástól függ
PBMAC1 • PBKDF2 és egy authentikálási eljárás ötvözete. • Például HMAC-SHA1 (álvéletlen generátor, változó kulcshossz, 20 byte-os MAC) • Bemenetként a jelszó lesz a kulcs, a salt a szöveg: HMAC-SHA1(P,S)
Köszönöm a figyelmet! http://www.rsasecurity.com/rsalabs/pkcs/pkcs-5/ http://csrc.nist.gov/pki/twg/y2003/presentations/twg-03-06.pdf http://www.abisoft.net/documents/PasswordBasedCryptography.pdf http://www.cs.unibo.it/~sacerdot/doc/papers/Morris-PasswordSecurity.pdf http://www.klein.com/dvk/publications/passwd.pdf http://geodsoft.com/howto/password/