por
pobrecito hablador
el Viernes, 03 Octubre de 2008, 08:47h
(#1087472)
Poner 1000 millones de contraseñas por segundo no es nada si no me das un contexto y dices cuánt es lo habitual. Muy mal, señor editor. Esto es un sitio de noticias, no un tabloide sensacionalista.
Gracias, Draco. Por cierto, por qué las bcrypt no pueden acelerarse? Y otra pregunta, con estos datos que se manejan, una contraseña basada en unos 80 caracteres, de longitud 16, cuánto tardaría en romperse? Y una de 62 de longitud 8? Hay alguna tabla comparativa de eso? Más que nada, por saber si tiene utilidad práctica, porque si se siguen tardando 6 años en encontrar una contraseña, creo que sirve de poco.
Si te interesa el tema te recomiendo que leas el artículo [openbsd.org] que describe las contraseñas bcrypt. No solo explica como se calculan, sino que pone en analiza los problemas de otros algoritmos.
El algoritmo que usan las bcrypt está diseñado expresamente para que sea costoso y no pueda optimizarse. Cito del artículo:
We hope that the unpredictable and changing content of the Parray and SBoxes will reduce the applicability of yet unknown optimizations additionally the eksblowish SBoxes require 4 KB of constantly accessed and modified memory.Thus the SBoxes cannot be shared across key schedules separate SBoxes must exist for every simultaneous execution. This vastly limits the usefulness of anyattempts to pipeline the Feistel network in hardware
In contrast bcrypt will adapt to more powerful attackers Moreover its inner loop relies exclusively on operations that are efficient on general purpose CPUs leaving little opportunity for specialized hardware to achieve dramatic improvements
Sobre las tablas que me pides, de memoria no sé ninguna comparativa, pero es fácil hacer los cáculos uno mismo. 80 caracteres posibles y longitud 16, son 80^16 posibles contraseñas y 62 caracteres posibles y longitud 8, 62^8. Lo divides por la tasa de cálculo de contraseñas y ya tienes lo que cuesta explorar todo el espacio de contraseñas(divide por 2 para hallar el caso medio).
Como comparación de lo que se puede calcular en un equipo actual de sobremesa para cada tipo de contraseña:
$./john --test Benchmarking: Traditional DES [24/32 4K]... DONE Many salts: 339891 c/s real, 339891 c/s virtual Only one salt: 321126 c/s real, 321126 c/s virtual
Benchmarking: BSDI DES (x725) [24/32 4K]... DONE Many salts: 12235 c/s real, 12235 c/s virtual Only one salt: 12043 c/s real, 12043 c/s virtual
Tan difícil era ponerlo en la noticia?
(Puntos:0)Gracias, Draco. Por cierto, por qué las bcrypt no pueden acelerarse? Y otra pregunta, con estos datos que se manejan, una contraseña basada en unos 80 caracteres, de longitud 16, cuánto tardaría en romperse? Y una de 62 de longitud 8? Hay alguna tabla comparativa de eso? Más que nada, por saber si tiene utilidad práctica, porque si se siguen tardando 6 años en encontrar una contraseña, creo que sirve de poco.
Re:Tan difícil era ponerlo en la noticia?
(Puntos:3, Informativo)( Última bitácora: Lunes, 22 Febrero de 2016, 07:16h )
El algoritmo que usan las bcrypt está diseñado expresamente para que sea costoso y no pueda optimizarse. Cito del artículo:
We hope that the unpredictable and changing content of the Parray and SBoxes will reduce the applicability of yet unknown optimizations additionally the eksblowish SBoxes require 4 KB of constantly accessed and modified memory.Thus the SBoxes cannot be shared across key schedules separate SBoxes must exist for every simultaneous execution. This vastly limits the usefulness of anyattempts to pipeline the Feistel network in hardware
In contrast bcrypt will adapt to more powerful attackers Moreover its inner loop relies exclusively on operations that are efficient on general purpose CPUs leaving little opportunity for specialized hardware to achieve dramatic improvements
Sobre las tablas que me pides, de memoria no sé ninguna comparativa, pero es fácil hacer los cáculos uno mismo. 80 caracteres posibles y longitud 16, son 80^16 posibles contraseñas y 62 caracteres posibles y longitud 8, 62^8. Lo divides por la tasa de cálculo de contraseñas y ya tienes lo que cuesta explorar todo el espacio de contraseñas(divide por 2 para hallar el caso medio).
Como comparación de lo que se puede calcular en un equipo actual de sobremesa para cada tipo de contraseña:
$
Benchmarking: Traditional DES [24/32 4K]... DONE
Many salts: 339891 c/s real, 339891 c/s virtual
Only one salt: 321126 c/s real, 321126 c/s virtual
Benchmarking: BSDI DES (x725) [24/32 4K]... DONE
Many salts: 12235 c/s real, 12235 c/s virtual
Only one salt: 12043 c/s real, 12043 c/s virtual
Benchmarking: FreeBSD MD5 [32/32]... DONE
Raw: 9223 c/s real, 9223 c/s virtual
Benchmarking: OpenBSD Blowfish (x32) [32/32]... DONE
Raw: 461 c/s real, 461 c/s virtual
Benchmarking: Kerberos AFS DES [24/32 4K]... DONE
Short: 312012 c/s real, 312012 c/s virtual
Long: 794828 c/s real, 794828 c/s virtual
Benchmarking: NT LM DES [32/32 BS]... DONE
Raw: 3707K c/s real, 3707K c/s virtual
Programs should be written for people to read, and only incidentally for machines to execute