¿Qué tan fácil es encontrar una contraseña en un gran archivo de texto?

7

Decir que mi contraseña es PASSWORD1 Tengo un archivo de texto mezclado de 10MB. Oculto mi contraseña en dos partes del texto, entre > y < para que yo pueda encontrarlo yo mismo. Luego puse las 2 partes juntas y agregué la 1 por teclado. ¿Qué tan fácil es para los expertos en seguridad encontrarlo?

Ä)e÷>WORD<Æ­iW+¯S¥\«…%‹&Ìâœê–f0ãídá¾Ûùvÿ²
åŒëР8ïÙtFJÍÕ9"Å¡”HŸuîP‚†ÃLjaãæôZÚ4ÊGhsg&87&
ᮊmŲ„Ç“wcD~MÚ««B­qeBY>PASS<ÒJÕþ3c§Jhew

Así que puedo recuperar las dos partes, saber qué orden colocarlas y agregar la 1, CONTRASEÑA1. Qué tan seguro es esconder una contraseña de 30 caracteres en un archivo de 10MB. ¿Alguien puede entenderlo? ¿Se puede romper la fuerza bruta?

Agrego un ejemplo, no doy pistas, ¿cuál es la contraseña?

rV\}c¸š;íâN_qy£ÆŠû]c½ìkŒCKg{ÅS¬#ˆ!“Iè§éÛJÏówgÓˆ†ü¤ªÔ#
¡<çX=áVøì4}©,5ÇÜëŸMž" ìɺQZl’~?ùÓ“lÙ+³zyä¸Ê¯Z×LË­UÃì²Rÿ•
Ï.väÐõG6¼S'ÿ{JZ/ûrŒÇ,æÁ|ŠhþqQ×^Á¼rIn€ýtUµûH›ï•³Õ{YJÒØPÕ{
7ušÆ“ð"$‡ÆnZhµ©TÿL@MÖ¤)¯"Œ×¹ &Ыˆ.ÛÖõsªsoäÜh9É"1Mw˜ÚV
xÁeÇr‘"¯J§’+§I¿câ§n(ú¥!Ɖã•gr'rÅE[•7Z^<„íl÷æ¶"¬s®ûBõ*|
E{3áÛØÓU—%ÀÂùÉhs5IDWá@ûÀSGâœ9u-Êwª(BÜÅ3mâ̛YÑ á~N‘~¥¼ªž(
DÀ¯¿æ'ãV˜F¦ÝjBî\{'nÂFhUêÖc›B¿Æ¿O òl*£HÒmQ&#÷‰1¸?ŸÇ ¯óà
1ur4sÚø±–îuÛ´n*Oã](¿™e/ì)b¤ëZòW%Ë@uf„á1xã?VTe*ã»]µªëÑ&d
<Kk³-õ®+П5ÃmaŸ2s\Ö©þAxllÖÚõj[kñ;6ÊT‚ΔnŒ!e }è[ê•ŒÒSÖ
yÓ'Ë0îè/õTjfØ,úÍ„•u?NTÅG'Ðt!Xp‚¸ú“9áAÝ»»Ø{ ›Ç¬T[ѺmM¡ƒ²ÿV
ÈÉsÅLÀ©ä¢I_’©>ÔÒT·žÇüyúÀBå½Õ¾÷é'Í¥’¡|¼ªú%²9° ŒU¿Uzè¯ÑÔÕ
¶œUÉÅësl]úÃl^ßNž÷éwÙì('ä‡/!yGF4‘”â“Z†^MfÿhYç&çhåxŠ}€X
´ˆøHYKå:żf,Ò¤%uí;óÌ?®ÁùE%ÄãDp.Edñ†ÂXÙiÚŒÒ)ГKƒp;ﲋ6f
qiª{@3;ïØýnN¶î¼SkÒŸ‡‹£92’K•˜ûÚ‹$ü²t³â‡zðŠ‰ev[Òòìϼºˆ
gT÷Ÿè»A*É무C£VšØ·¹'vRôûì7ZgÀ'{){Þ‡mËŽ¨Ä!*|ÔŒSlÅ´'áãÀì.
ã’S·ÔüE»q4Ô#ÜòëÛFhì˜9À\­àÄhé¡êhr.‡AJ;a3ørJJPÀ]½Ø²ýäUXnu

No estoy tratando de ser inteligente, solo quiero entender cómo un especialista trataría de encontrarlo. ¡Gracias a todos por su tiempo!

Supongo que nadie puede darme los números aproximados.

    
pregunta Peter 21.03.2013 - 17:44
fuente

8 respuestas

15

Un criptoanalista probablemente solo haría esto a mano;

  • Este es un archivo de texto.
  • Todos los caracteres imprimibles.
  • El análisis de frecuencia muestra 2 * '<' y 2 * '>' , lo cual es cierto para todos los caracteres de la llanura, mientras que todas las demás frecuencias de caracteres cambian, lo que probablemente significa que algo interesante está sucediendo.

Yo diría menos de una hora para averiguar su esquema de contraseña. Significativamente más rápido si tenemos varios archivos de texto.

    
respondido por el lynks 21.03.2013 - 18:01
fuente
11
  

entre > y < para que pueda encontrarlo yo mismo

Bueno, eso es todo. Cualquiera que sea su "método de ocultación", debe recordar una forma de encontrarlo nuevamente. De modo que su contraseña no es la secuencia de caracteres que finalmente escribe en el teclado; Su contraseña real , la "convención secreta" que guarda en su cerebro, es el método : encuentre las dos cadenas encerradas en '>' y '<', concaténalos y agrega un '1'. Lo que el atacante debe hacer es encontrar ese método.

¿Qué tan secreto puede ser este método? Bueno, no mucho. Primero, lo acabas de publicar en internet. En segundo lugar, lo aplicará regularmente, y su búsqueda de archivo abierto - '>' será bastante visible para los hombro surfistas . En particular, los elementos de su contraseña aparecerán a simple vista. Finalmente, su método de ocultación introduce sesgos: en un archivo de 10 MB lleno de bytes aleatorios, debe tener aproximadamente 40 mil veces cada valor de byte en promedio (ya que hay 256 valores de byte posibles); pero, para que su método sea inequívoco, debe eliminar todos los '>' del archivo, excepto los dos que guardará para marcar las dos mitades de su contraseña (de lo contrario, no podrá encontrar los elementos a la derecha de su contraseña). Un atacante simplemente contará el número de veces que aparece el valor de cada byte en el archivo (el nombre pomposo para eso es análisis de frecuencia ); encontrará que cada valor de byte aparece aproximadamente 40000 veces (como se esperaba), excepto '>' y '<' que aparecen solo dos veces cada uno. No tendrá problemas para descubrir que estos dos valores de byte son "especiales" y están asociados con su lugar de ocultación de contraseña ...

No saber cuánto secreto es la contraseña, ya es un gran problema; La mayor parte del análisis de seguridad se trata de cuantificar las cosas. Pero, en su caso, podemos cualitativamente indicar que su contraseña no será en absoluto secreta.

    
respondido por el Thomas Pornin 21.03.2013 - 19:13
fuente
6

La debilidad que tienes se relaciona con el análisis de frecuencia. Tienes 10,485,760 bytes, y como esto parece glifos de 8 bits, esperarías que promedien 40,960 instancias de cualquier carácter dado.

Dado 10mb y ese delimitador, aquí está mi análisis de frecuencia:

    (000): 41332
    (001): 41363
    (002): 41272
    (003): 41180
    (004): 41416
    (005): 41357
    (006): 41263
    (007): 41224
    (008): 41233
    (009): 41427
    (010): 41538
    (011): 41179
    (012): 40937
(013): 41020
    (014): 41294
    (015): 41406
    (016): 41410
    (017): 41312
    (018): 40820
    (019): 41534
    (020): 40948
    (021): 41375
    (022): 41410
    (023): 41616
    (024): 41239
    (025): 40966
    (026): 41097
    (027): 41114
    (028): 41554
    (029): 41097
    (030): 41037
    (031): 41123
    (032): 41139
!   (033): 41184
"   (034): 41348
#   (035): 41328
$   (036): 41330
%   (037): 41653
&   (038): 41415
'   (039): 41253
(   (040): 41223
)   (041): 41119
*   (042): 41355
+   (043): 41439
,   (044): 41047
-   (045): 41169
.   (046): 41441
/   (047): 40835
0   (048): 41377
1   (049): 41607
2   (050): 41185
3   (051): 41044
4   (052): 41223
5   (053): 41399
6   (054): 41020
7   (055): 41276
8   (056): 41278
9   (057): 41072
:   (058): 40885
;   (059): 41354
<   (060): 2
=   (061): 41513
>   (062): 2
?   (063): 41168
@   (064): 41226
A   (065): 41236
B   (066): 40838
C   (067): 41400
D   (068): 41560
E   (069): 41387
F   (070): 41329
G   (071): 41131
H   (072): 41295
I   (073): 41371
J   (074): 41565
K   (075): 41204
L   (076): 41512
M   (077): 41517
N   (078): 41819
O   (079): 41302
P   (080): 41128
Q   (081): 41258
R   (082): 41166
S   (083): 41002
T   (084): 41166
U   (085): 40740
V   (086): 41226
W   (087): 41483
X   (088): 41554
Y   (089): 41376
Z   (090): 41283
[   (091): 41404
\   (092): 41154
]   (093): 41547
^   (094): 41092
_   (095): 41145
'   (096): 41284
a   (097): 41440
b   (098): 41397
c   (099): 41729
d   (100): 41207
e   (101): 41492
f   (102): 40711
g   (103): 40949
h   (104): 41336
i   (105): 41464
j   (106): 41441
k   (107): 41375
l   (108): 41017
m   (109): 41080
n   (110): 41041
o   (111): 41113
p   (112): 41347
q   (113): 41003
r   (114): 41083
s   (115): 41719
t   (116): 41459
u   (117): 41338
v   (118): 41014
w   (119): 41035
x   (120): 41566
y   (121): 41246
z   (122): 41426
{   (123): 41132
|   (124): 41368
}   (125): 41431
~   (126): 41177
    (127): 41429
Ä   (128): 41449
Å   (129): 41384
Ç   (130): 41041
É   (131): 41363
Ñ   (132): 41438
Ö   (133): 41263
Ü   (134): 41240
á   (135): 40954
à   (136): 41169
â   (137): 41143
ä   (138): 41461
ã   (139): 41320
å   (140): 41336
ç   (141): 41353
é   (142): 41319
è   (143): 41419
ê   (144): 41430
ë   (145): 41632
í   (146): 41265
ì   (147): 41613
î   (148): 41197
ï   (149): 41418
ñ   (150): 41477
ó   (151): 41341
ò   (152): 40975
ô   (153): 40873
ö   (154): 41295
õ   (155): 41432
ú   (156): 41112
ù   (157): 41749
û   (158): 40802
ü   (159): 41439
†   (160): 41297
°   (161): 41003
¢   (162): 41062
£   (163): 41188
§   (164): 41579
•   (165): 41333
¶   (166): 41430
ß   (167): 41130
®   (168): 41405
©   (169): 40966
™   (170): 41260
´   (171): 41392
¨   (172): 41353
≠   (173): 41433
Æ   (174): 41548
Ø   (175): 41541
∞   (176): 40993
±   (177): 41166
≤   (178): 41786
≥   (179): 41179
¥   (180): 41178
µ   (181): 41251
∂   (182): 41261
∑   (183): 40697
∏   (184): 41346
π   (185): 41587
∫   (186): 41109
ª   (187): 41323
º   (188): 41517
Ω   (189): 41382
æ   (190): 41203
ø   (191): 41117
¿   (192): 41184
¡   (193): 41223
¬   (194): 41115
√   (195): 41029
ƒ   (196): 41640
≈   (197): 41496
∆   (198): 41551
«   (199): 41577
»   (200): 41391
…   (201): 41080
    (202): 40931
À   (203): 41386
à  (204): 40966
Õ   (205): 41638
Π  (206): 41309
œ   (207): 41443
–   (208): 41417
—   (209): 41309
“   (210): 41242
”   (211): 41030
‘   (212): 41526
’   (213): 41225
÷   (214): 41410
◊   (215): 41262
ÿ   (216): 41181
Ÿ   (217): 41443
⁄   (218): 41013
€   (219): 41743
‹   (220): 41436
›   (221): 40906
fi   (222): 40784
fl   (223): 41082
‡   (224): 41470
·   (225): 41368
‚   (226): 41204
„   (227): 41648
‰   (228): 41050
   (229): 41504
Ê   (230): 41010
Á   (231): 41477
Ë   (232): 41477
È   (233): 41510
Í   (234): 41383
Î   (235): 41544
Ï   (236): 41505
Ì   (237): 41451
Ó   (238): 41159
Ô   (239): 41469
   (240): 41191
Ò   (241): 41305
Ú   (242): 41349
Û   (243): 40778
Ù   (244): 41280
ı   (245): 41400
ˆ   (246): 41496
˜   (247): 41219
¯   (248): 41188
˘   (249): 40921
˙   (250): 41230
˚   (251): 41245
¸   (252): 41175
˝   (253): 41288
˛   (254): 41495
ˇ   (255): 41249
    
respondido por el Jeff Ferland 21.03.2013 - 18:10
fuente
4

Simplemente no intentes algo como esto. Está reinventando la rueda y convirtiéndola en un triángulo. En primer lugar, es fácil para alguien entender el esquema y romperlo; en segundo lugar, incluso si son realmente perezosos, hay un número muy limitado de posibilidades en todo el archivo que podrían intentarse de forma aleatoria en comparación con la entropía, incluso de forma justa. contraseña corta Es mucho mejor utilizar un almacén de claves criptográficas como Keepass, donde las contraseñas están cifradas con una contraseña maestra que simplemente memoriza.

    
respondido por el AJ Henderson 21.03.2013 - 19:00
fuente
3

Voy a dar a este esquema el máximo beneficio de la duda. Aquí está mi opinión, con una conclusión en la parte inferior:

Tenemos un archivo con 10,000,000 de caracteres de 7 bits, elegidos verdaderamente al azar. Esto significa que todos los caracteres deben aparecer, en promedio, cada 128 caracteres. Voy a referirme a este tamaño como un bloque a continuación.

También supondré que vas a especificar una clave como "comience en el Yth '>' después de la 'Q' después del inicio del bloque Nth y finalice en el décimo carácter ", porque sería fácil de recordar. Esto significa que su contraseña está realmente determinada de forma aleatoria, e inicialmente desconocida para usted. Una contraseña de diez caracteres elegida al azar como esta es bastante fuerte. Eso es 70 bits de aleatoriedad.

El primer problema es que para cada bloque de 128 caracteres, hay aproximadamente un 36% de probabilidades de que no aparezca ningún personaje en ese bloque. Esto se multiplica a medida que agrega bloques adicionales, por lo que hay aproximadamente un 13% de probabilidad de que una 'Q' no aparezca en dos bloques seguidos, y una probabilidad de 0.003% de que una 'Q' no aparezca en 10 bloques en una fila. Eso significa que solo 1 de 27351 series de 10 bloques faltará una 'Q'. Sin embargo, tenemos muchos datos! Tenemos 78125 bloques en este archivo, por lo que cabría esperar, en promedio, encontrar tres regiones de 10 bloques de este tipo sin una 'Q' en nuestro archivo de 10 MB. Las cosas se ponen raras cuando se trata de grandes números.

Esto significa que es posible que tengamos que buscar muchas maneras de encontrar la primera Q después del inicio del bloque Nth. Hay pocas posibilidades de hacerlo, pero como hemos visto, es probable que haya tres lugares en nuestro archivo gigante donde tenemos que buscar aproximadamente una KB de texto (¡manualmente!) Para una única 'Q'. Cuando consideras que queremos no solo el primero, sino el Nth '>' Después de eso Q, las cosas se complican rápidamente. Es posible que tengamos que buscar a través de 1 KB para la Q, y luego otro 1 KB para encontrar el primer '>'.

Todo lo que esto significa en la práctica es que sabemos que su contraseña no estará en los últimos 150 KB aproximadamente del archivo, porque no puede garantizar que haya un par de caracteres en particular en el orden y número. requerido.

También significa que podemos calcular el tamaño de una clave. Necesita cinco elementos de información para encontrar su contraseña en el archivo: el bloque inicial, el primer carácter, el número de segundos caracteres para contar adelante, el segundo carácter y el carácter de parada.

Podemos especificar esto como una serie de números y caracteres: [ 7685, 'Q', 6, '>' ] , que significa "Comience a leer en el sexto '>' después de la 'Q' en el bloque 7685.

Ya que hay aproximadamente 78000 bloques que puedes elegir para el punto de partida, ese valor tiene entre 16 y 17 bits de aleatoriedad. Podría ser cualquier número entre 0 y 78000. Para los personajes, tiene 128 opciones en dos posiciones, que son 7 bits de aleatoriedad cada uno, o 14 bits en total. El segundo número es complicado. Ya que podemos esperar razonablemente contar al menos 1 KB para encontrar cada personaje, probablemente sea seguro elegir un valor inferior a 64 aquí. Eso es sólo seis bits de aleatoriedad. Entonces, gran total, su clave tiene (16-ish + 14 + 6) bits de aleatoriedad, que es de 36-ish bits. Si varía la longitud, podría agregar algunos bits más. Si bien no es trivial, una computadora doméstica moderna y típica podría alimentar todas las combinaciones posibles en un par de días.

Sin embargo, como han señalado otros, todo esto es en gran medida irrelevante. El archivo en sí solo tiene 10,000,000 puntos de partida posibles. Eso significa que el espacio de claves es en realidad significativamente más pequeño que las claves en sí, y realmente solo tienes alrededor de 23 bits de aleatoriedad. Lo que esto significa en términos prácticos es que cada posición inicial en el archivo puede ser referenciada por 16,000 claves diferentes y, en realidad, memorizar una posición inicial es significativamente más fácil que memorizar esa estructura de teclas. Si utiliza un bloque más pequeño, hay incluso menos combinaciones posibles.

Conclusión: Entonces, sí, como han dicho otros, esta es una mala idea. Use un programa de encriptación fuerte conocido usando una contraseña segura conocida. Puede crear una contraseña que sea más fácil de memorizar, lo que le brinda una protección considerablemente mayor que este esquema complejo y obtiene el beneficio de los algoritmos de cifrado probados y comprobados.

    
respondido por el Devin R 22.03.2013 - 22:25
fuente
2

Los ataques de fuerza bruta no funcionan así, supongo que te refieres a un ataque de diccionario donde se proporciona una lista de palabras de contraseñas probables y la herramienta / software Brute Forcer (es decir, John Riper) gira una a una hasta que encuentra la correcta. En un texto mezclado, no conozco ninguna manera para que una herramienta de descifrado de contraseñas encuentre alfabetos porque habrá tanto texto mezclado que tal vez no pueda leerlo. Sin embargo, normalmente hay un analizador de texto que analiza el texto por usted o extrae datos de archivos binarios en texto. La respuesta a su consulta es SÍ.

Alternativa Una alternativa segura que sugiero es siempre almacenar su información confidencial utilizando algoritmos de encriptación sólidos como SHA-256 / o superior.

    
respondido por el user20996 21.03.2013 - 17:53
fuente
1

No intentes crear tu propio esquema de cifrado. Algunos de los algoritmos más investigados han fallado. Su método de encriptación fallará en un análisis de frecuencia. De acuerdo con lo que dijiste: dividiste tu contraseña en dos partes. Su cifrado cifrado tendría que ser analizado en busca de cualquier carácter que ocurra cuatro veces, y la fuerza bruta desde allí. Por ejemplo veo que el carácter '¬' aparece cuatro veces. Estoy seguro de que hay mejores maneras de romperlo. Incluso si divide sus contraseñas en más partes, eso solo significaría aumentar un poco el análisis de frecuencia. No entiendo lo que estás tratando de lograr aquí.

    
respondido por el marcwho 21.03.2013 - 21:18
fuente
1

Ya que parece que está insistiendo en un análisis de fuerza bruta en lugar de un análisis de ataques reales que se utilizarán contra el método, aquí hay un respaldo de (probablemente algo defectuoso) Cálculo de la envolvente para la fuerza bruta. Asumiremos que el atacante conoce su método, pero ninguno de sus secretos depende del método, según el Principio de Kerckhoffs : / p>

Tienes un archivo de 10 MB. Alguien dijo 10,485,760 bytes. Iré con eso. Así que tiene 10 millones de ubicaciones iniciales para dos partes diferentes de su contraseña, la cuadraremos para dar 109,951,162,777,600 posibles pares de ubicaciones iniciales. Ahora, tiene una contraseña de 30 caracteres, así que multiplique por 30 por cada longitud posible del primer segmento.

Por lo tanto, deben probar 3.298.534.883.328.000 contraseñas.

Un simple aficionado en 2012 logró un 350 mil millones de conjeturas de contraseña por segundo para descifrar contraseñas. Los piratas informáticos dedicados que hacen esto por dinero, pandillas criminales u organizaciones gubernamentales hoy pueden lograr velocidades más rápidas. Entonces, ¿cuánto tiempo tomará adivinar su contraseña desde el archivo?

3,298,534,883,328,000 / 350,000,000,000 = 9424 segundos, o un poco menos de 3 horas, de alguien que ni siquiera es todo lo que invirtió en intentarlo.

Así que sí, no hagas eso.

Puede protestar, "pero, ¡también tengo una parte memorizada!"

Bueno, sus ejemplos de partes memorizadas fueron "1" o "123test", así que supongo que aparece en las 10,000 contraseñas más o menos del diccionario de crackers o en las reglas de transformación. Probablemente no agregue mucha dificultad.

Y, como ha elegido ignorar nuestras protestas de que nadie va a hacer una combinación de fuerza bruta de su archivo, lo atacarán de una manera "inteligente" que lo encontrará en unos segundos en lugar de Usando un método de fuerza bruta tonta, también elegiré ignorar la astilla de seguridad que su parte memorizada puede agregar.

    
respondido por el Ben 20.04.2016 - 17:20
fuente

Lea otras preguntas en las etiquetas