mboost-dp1

Apropos hashes - 2


Gå til bund
Gravatar #1 - arne_v
26. jul. 2012 14:05
(opfølgning på http://newz.dk/forum/tagwall/apropos-hashes-123638...

Han har postet en opfølgende artikel omkring ændringer i implementation i ASP.NET:

http://www.troyhunt.com/2012/07/stronger-password-...

Artiklen er igen rodet i konklusionen. IDE har naturligvis ikke noget med de grundliggende muligheder at gøre.

Men stadig interessant.

Pointen at N iterationer vil øge crack tiden med en faktor N men øge normal brug tiden med en faktor betydeligt mindre er naturligvis interessant.
Gravatar #2 - kasperd
26. jul. 2012 14:57
Et hurtigt overslag på tallene i artiklen gav mig et resultat der siger at overheadet til alt det andet der foregår ved login svarer til ca. 30 iterationer af hashfunktionen.

Artiklen argumenterer for at derfor gør det ikke noget at man skal bruge lidt CPU tid på at iterere sin hashfunktion. Et stykke hen af vejen vil jeg give ham ret i det. Dog vil jeg lige påpege at når antallet af iterationer øges til 1000 så får han en reduktion i hastigheden med en faktor 34. En faktor 34 har en betydning hvis serveren kommer under angreb.

En forøgelse fra 1 til 10 iterationer gør password brute forcing 10 gange langsommere men øger omkostningerne ved legitim brug med mindre end 50%. Det ser ud som en klar fordel.

En forøgelse fra 10 til 100 iterationer gør password brute forcing 10 gange langsommere, men øger omkostningerne ved legitim brug med over 200%. Det er lidt mindre klart om det er en fordel.

En forøgelse fra 100 til 1000 iterationer gør password brute forcing 10 gange langsommere, men øger omkostningerne ved legitim brug ca. 8 gange. Det ville jeg ikke gøre uden først at lave en grund undersøgelse af trusselsscenariet.
Gravatar #3 - KaW
26. jul. 2012 15:04
Det er en interressant idé, på systemer som ikke har mulighed for bedre alternativer, især fordi man kan gemme antallet af iterationer, og skrue op på det løbende.

Men jeg ville nu hellere bare bruge en hash-funktion som BCrypt hvor du selv kan skrue på paramatrene for at gøre den sløvere.
Gravatar #4 - arne_v
26. jul. 2012 15:04
#2

Tallene afhænger nok meget af konfigurationen. PHP custom kode - MySQL behøver ikke have samme statistik som ASP.NET standard membership provider - SQLServer f.eks..

Men stadig en relevant pointe.
Gravatar #5 - KaW
26. jul. 2012 15:29
Hvad er fordelene ved at implementere det sådan her, istedet for at bruge BCrypt?

Han skriver følgende:
I liked the ease of pulling it from NuGet but lamented the fact that it required GAC installation and machine.config modification which ruled it out of running on modern PaaS style implementations like I’m using at AppHarbor or you’ll find in Azure.

Men er ikke rigtigt inde i deres MS toolchain. Men kan det virkelig passe at man ikke kan hive et library eller andet ind og benytte sig af det? (det er det jeg tror han mener er problemet)
Gravatar #6 - arne_v
26. jul. 2012 15:37
KaW (5) skrev:
Men er ikke rigtigt inde i deres MS toolchain. Men kan det virkelig passe at man ikke kan hive et library eller andet ind og benytte sig af det? (det er det jeg tror han mener er problemet)


Det han skriver er at deres lib skal installeres på systemet og derfor ikke kan bruges i diverse cloud løsninger.

Men han fortsætter:


Fortunately the folks over at Zetetic have managed to bundle all that machine-level dependency up into a pretty quick fix;

Gravatar #7 - arne_v
26. jul. 2012 15:39
KaW (5) skrev:
Hvad er fordelene ved at implementere det sådan her, istedet for at bruge BCrypt?


Måske tager BCrypt for lang tid.

Som kasper forklarer i #2 er langsommere ikke nødvendigvis bedre fra en helheds betragtning.
Gravatar #8 - kasperd
26. jul. 2012 16:23
KaW (5) skrev:
Hvad er fordelene ved at implementere det sådan her, istedet for at bruge BCrypt?
PBKDF2 har været gennem mere review end Bcrypt, så sandsynligvis er PBKDF2 mere sikker. PBKDF2 kan baseres på en vilkårlig hash, så du kan vælge en hash som har været udsat for passende review.

Det største problem med PBKDF2 i det perspektiv er at den "kun" specificerer hvordan man laver en (symmetrisk) nøgle ud af et password. Den specificerer ikke hvordan man validerer et password med metoden. Men den detalje er relativt nemt i sammenligning med resten.
Gravatar #9 - KaW
26. jul. 2012 16:39
Spændende læsning om BCrypt vs PBKDF2

TL;DR: BCrypt passer ikke så godt ned på en GPU (god ting), det gør PBKDF2 tilgengæld (dårlig ting).

BCrypt passer tilgengæld pænt ned på en FPGA (skidt ting)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login