Stima dei costi di hashing Bcrypt e Argon2
Lo stimatore di costo bcrypt e Argon2 mostra 2^cost, il prodotto memoria×iterazioni×parallelismo, e una durata bcrypt agganciata a 250 ms a cost 12.
Perché alzare il cost senza misurare rompe il login
Un cost bcrypt 16 su un Raspberry può far sembrare morto l’auth. Un Argon2 da 1 GiB su un worker da 256 MiB swap-pa. I campi Bcrypt cost, Argon2 memory (KiB), iterations, parallelism, Bcrypt work units, Argon2 relative work e Rough bcrypt ms esistono per vedere i raddoppi prima di toccare produzione.
A canone: cost 12, mem 65536, iters 3, parallel 4, bcryptWork 4096, argonWork 786432, bcryptMs 250. Allinea l’entropia delle password con lo stimatore a bit: 71,4504 bit su 12×62 non compensano un hash a cost 5.
Prima di iniziare
Leggi i default della libreria (spesso cost 10 o 12; Argon2id con 19 MiB o 64 MiB). Decidi se stai dimensionando un server o un dispositivo. Non copiare i parametri di un paper da 1 s/login su un’API pubblica senza coda.
Casi d’uso comuni
- Canone 12 / 64 MiB / 3 / 4 → 4096, 786432, 250 ms
- Vedere cost 13 → 500 ms sulla baseline
- Alzare solo la memoria Argon2 e guardare 786432 che scala
- Documentare i parametri in una RFC interna
- Spiegare perché +1 di cost raddoppia il tempo
- Confrontare un login mobile (cost più basso) e un vault (più alto)
Come utilizzare questa calcolatrice
- Bcrypt cost 12.
- Argon2 memory (KiB) 65536.
- Argon2 iterations 3.
- Argon2 parallelism 4.
- Leggi work e ms.
Procedura dettagliata passo dopo passo
Pietro deve proporre bcrypt 12 e Argon2id 64 MiB, 3 iter, 4 lane.
Risultato: 4096, 786432, 250 ms. Canone identico.
Controllo: 2^12=4096; 65536×3×4=786432; 250×2^(0)=250.
Cosa fa dopo: misura p50/p99 sul suo hardware, poi alza o abbassa. Non pubblica 250 ms come SLA.
Formula e metodo
bcryptWork = 2^bcryptCost
argonWork = memKiB × iters × parallel
bcryptMs = 250 × 2^(bcryptCost−12)
Comprendere ogni input
- bcryptCost — esponente.
- memKiB, iters, parallel — parametri Argon2 del modello.
- Output: work e ms bcrypt grezzi.
Ipotesi
Baseline 250 ms a 12; Argon2 work come prodotto, senza tempo. Niente GPU, niente side-channel.
Errori comuni con Stima dei costi di hashing Bcrypt e Argon2
Mettere 64 in memKiB pensando a MiB; confrontare 4096 e 786432 come ms; alzare parallel oltre i core e credere di aver moltiplicato la sicurezza a costo zero; cost 4 “perché è più veloce” su password di 8 caratteri.
Esempi realizzati
- Canonico. 12, 65536, 3, 4 → 4096, 786432, 250.
- Primari identici.
- Cost 11: work 2048, ms 125 sulla stessa retta.
Un attacco offline su bcrypt 12 a 250 ms/hash è lento su CPU, meno su cluster. Argon2 con 64 MiB taglia le GPU che hanno poca memoria per lane. I 786432 non sono un benchmark: sono un promemoria che memoria e iterazioni si moltiplicano. Se scendi a 4096 KiB per “andare più veloce”, hai cambiato famiglia di minaccia. Documenta mem 65536.
Password lunghe e hashing forte si tengono insieme. 71,4504 bit su un hash cost 5 è uno spreco; un dice “correcthorsebatterystaple” su cost 12 è meglio di “P@ssw0rd” su cost 15. Policy + parametri. Il generatore non sostituisce l’hash.
DoS: un cost troppo alto su endpoint pubblico senza rate limit è un’arma contro di te. I 250 ms a login sono accettabili dietro 2FA e lockout, pericolosi su un form anonimo. Misura QPS. Questa pagina non lo fa.
Interpretare i risultati
| Campo | Lettura |
|---|---|
| bcryptWork | 2^cost. |
| argonWork | Prodotto relativo. |
| bcryptMs | Retta 250 ms @ 12. |
Registrazione e condivisione dei risultati
Salva 12, 65536, 3, 4, 4096, 786432, 250, CPU di test, libreria, data.
Consigli pratici
- Bit di password: entropia.
- Genera: generatore.
- Dischi del vault: RAID.
- Non copiare i ms del laptop sul server.
- Argon2id vs i vs d: scegli in libreria, qui non c’è il variant.
Nel caso hash-cost, tieni insieme cost 12, 4096, 786432, 250 ms. Se qualcuno cita solo un pezzo, chiedi GPU. I limiti tipici restano DoS. Ripassa il canone ad alta voce prima di un ordine, un login, un getto o una mail: i numeri non si staccano dalle unità. Questa nota 1 è specifica di hash-cost e non va copiata su altri strumenti. Annota data, selettori e se il valore è misurato o copiato. Poi confronta con fornitori e, in costruzione, con i codici applicabili. Se il pannello dopo un aggiornamento non riproduce cost 12, 4096, 786432, 250 ms, fermati.
Nel caso hash-cost, tieni insieme cost 12, 4096, 786432, 250 ms. Se qualcuno cita solo un pezzo, chiedi GPU. I limiti tipici restano DoS. Ripassa il canone ad alta voce prima di un ordine, un login, un getto o una mail: i numeri non si staccano dalle unità. Questa nota 2 è specifica di hash-cost e non va copiata su altri strumenti. Annota data, selettori e se il valore è misurato o copiato. Poi confronta con fornitori e, in costruzione, con i codici applicabili. Se il pannello dopo un aggiornamento non riproduce cost 12, 4096, 786432, 250 ms, fermati.
Nel caso hash-cost, tieni insieme cost 12, 4096, 786432, 250 ms. Se qualcuno cita solo un pezzo, chiedi GPU. I limiti tipici restano DoS. Ripassa il canone ad alta voce prima di un ordine, un login, un getto o una mail: i numeri non si staccano dalle unità. Questa nota 3 è specifica di hash-cost e non va copiata su altri strumenti. Annota data, selettori e se il valore è misurato o copiato. Poi confronta con fornitori e, in costruzione, con i codici applicabili. Se il pannello dopo un aggiornamento non riproduce cost 12, 4096, 786432, 250 ms, fermati.
Nel caso hash-cost, tieni insieme cost 12, 4096, 786432, 250 ms. Se qualcuno cita solo un pezzo, chiedi GPU. I limiti tipici restano DoS. Ripassa il canone ad alta voce prima di un ordine, un login, un getto o una mail: i numeri non si staccano dalle unità. Questa nota 4 è specifica di hash-cost e non va copiata su altri strumenti. Annota data, selettori e se il valore è misurato o copiato. Poi confronta con fornitori e, in costruzione, con i codici applicabili. Se il pannello dopo un aggiornamento non riproduce cost 12, 4096, 786432, 250 ms, fermati.
Nel caso hash-cost, tieni insieme cost 12, 4096, 786432, 250 ms. Se qualcuno cita solo un pezzo, chiedi GPU. I limiti tipici restano DoS. Ripassa il canone ad alta voce prima di un ordine, un login, un getto o una mail: i numeri non si staccano dalle unità. Questa nota 5 è specifica di hash-cost e non va copiata su altri strumenti. Annota data, selettori e se il valore è misurato o copiato. Poi confronta con fornitori e, in costruzione, con i codici applicabili. Se il pannello dopo un aggiornamento non riproduce cost 12, 4096, 786432, 250 ms, fermati.
Nel caso hash-cost, tieni insieme cost 12, 4096, 786432, 250 ms. Se qualcuno cita solo un pezzo, chiedi GPU. I limiti tipici restano DoS. Ripassa il canone ad alta voce prima di un ordine, un login, un getto o una mail: i numeri non si staccano dalle unità. Questa nota 6 è specifica di hash-cost e non va copiata su altri strumenti. Annota data, selettori e se il valore è misurato o copiato. Poi confronta con fornitori e, in costruzione, con i codici applicabili. Se il pannello dopo un aggiornamento non riproduce cost 12, 4096, 786432, 250 ms, fermati.
Limitazioni e quando non utilizzarlo
Non è un benchmark, non simula GPU, non valida RFC. Solo aritmetica dei parametri.
Quando cercare un altro strumento
Entropia: password. Generazione: generatore. Storage: RAID.