Quanto è facile trovare una password in un enorme file di testo?

7

Dire che la mia password è PASSWORD1 Ho un file di testo confuso da 10 MB. Nascondo la mia password in due parti nel testo, tra > e < quindi posso trovarlo da solo Quindi metto insieme le 2 parti e aggiungo il 1 con la tastiera. Quanto è facile per gli esperti di sicurezza trovarlo?

Ä)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

Quindi posso recuperare le due parti, sapere quale ordine metterle e aggiungere 1, PASSWORD1. Quanto è sicuro nascondere una password di 30 caratteri in un file da 10 MB. Qualcuno può mai capirlo? Può essere la forza bruta incrinata?

Aggiungo un esempio, non fornisco suggerimenti, qual è la password?

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

Non sto cercando di essere intelligente, voglio solo capire come andrebbe uno specialista a trovarlo. Grazie a tutti per il vostro tempo!

Credo che nessuno possa darmi i numeri approssimativi.

    
posta Peter 21.03.2013 - 17:44
fonte

8 risposte

14

Un cryptanalyst probabilmente lo farebbe solo a mano;

  • Questo è un file di testo.
  • Tutti i caratteri stampabili.
  • L'analisi della frequenza mostra 2 * '<' e 2 * '>' che è vero per tutti i testi in chiaro, mentre tutte le altre frequenze dei caratteri cambiano, il che probabilmente significa che sta accadendo qualcosa di interessante.

Direi meno di un'ora per capire il tuo schema di password. Significativamente più veloce se disponiamo di più file di testo.

    
risposta data 21.03.2013 - 18:01
fonte
11

between > and < so I can find it myself

Bene, è tutto. Qualunque sia il tuo "metodo di nascondimento", devi ricordare un modo per ritrovarlo. Quindi la tua password non è la sequenza di caratteri che alla fine digiti sulla tastiera; la tua vera password, la "convenzione segreta" che tieni nel cervello, è il metodo : trova le due stringhe racchiuse in ">" e '<', concatenile e aggiungi un '1'. Ciò che l'hacker deve fare è trovare il metodo.

Quanto può essere segreto un simile metodo? Bene, non molto. Innanzitutto, l'hai appena pubblicato su Internet. In secondo luogo, lo applicherai regolarmente e il tuo file di ricerca aperto-per-'>' sarà abbastanza visibile per spalla surf . In particolare, gli elementi della tua password appariranno in bella vista. Infine, il tuo metodo di nascondimento introduce dei bias: in un file da 10 MB pieno di byte casuali, dovresti avere circa 40 mila volte ogni valore di byte in media (poiché ci sono 256 possibili valori di byte); ma, affinché il tuo metodo non sia ambiguo, devi rimuovere tutto ">" dal file, tranne i due, manterrai le due metà della password (altrimenti non sarai in grado di trovare gli elementi giusti della tua password). Un utente malintenzionato conterà semplicemente il numero di volte in cui ogni valore di byte appare nel file (il nome pomposo è analisi di frequenza ); scoprirà che ogni valore di byte appare circa 40000 volte (come previsto), ad eccezione di ">" e "<" che compaiono solo due volte ciascuno. Non avrà problemi a capire che questi due valori di byte sono "speciali" e sono associati al nascondiglio della password ...

Non sapere che quanto segreto sia la password, è già un grosso problema; la maggior parte delle analisi di sicurezza riguarda la quantificazione delle cose. Ma, nel tuo caso, possiamo qualitativamente affermare che la tua password non sarà affatto molto segreta.

    
risposta data 21.03.2013 - 19:13
fonte
6

La debolezza che hai riguarda l'analisi della frequenza. Hai 10.485.760 byte e dato che assomigliano a glifi a 8 bit, ti aspetteresti che abbiano una media di 40.960 istanze di un determinato carattere.

Dato 10mb e quel delimitatore, ecco la mia analisi di frequenza:

    (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
    
risposta data 21.03.2013 - 18:10
fonte
4

Semplicemente non provare qualcosa di simile. Sta reinventando la ruota e rendendola un triangolo. In primo luogo, è facile per qualcuno capire lo schema e romperlo, in secondo luogo, anche se sono veramente pigri, ci sono un numero molto limitato di possibilità in tutto il file che potrebbero essere provate casualmente rispetto all'entropia anche in un abbastanza password corta È molto meglio usare un keystore crittografico come Keepass in cui le password sono crittografate con una password principale che semplicemente memorizzi.

    
risposta data 21.03.2013 - 19:00
fonte
3

Ho intenzione di dare a questo schema il massimo beneficio del dubbio. Ecco la mia opinione su questo, con la conclusione in basso:

Abbiamo un file con 10.000.000 di caratteri a 7 bit, scelti in modo veramente casuale. Ciò significa che ogni personaggio dovrebbe apparire, in media, ogni 128 caratteri. Mi riferirò a queste dimensioni come un blocco sotto.

Suppongo anche che tu specifichi un tasto sulla falsariga di "start at the Yth" > dopo la "Q" dopo l'inizio dell'N ° blocco e finisci al decimo carattere ", perché sarebbe facile da ricordare. Ciò significa che la tua password è in realtà determinata casualmente e inizialmente sconosciuta a te. Una password di dieci caratteri scelta a caso come questa è in realtà abbastanza strong. Sono 70 bit di casualità.

Il primo problema è che per ogni blocco di 128 caratteri, c'è circa il 36% di probabilità che un dato personaggio non appaia in quel blocco. Questo si moltiplica quando aggiungi blocchi addizionali, quindi c'è una probabilità del 13% circa che una 'Q' non appaia in due blocchi di fila, e una probabilità dello 0,003% che una 'Q' non appaia in 10 blocchi in una riga. Ciò significa che solo 1 su 27351 set di 10 blocchi mancherà di una "Q". Tuttavia, abbiamo molti dati! In questo file abbiamo 78125 blocchi, quindi ci aspetteremmo, in media, di trovare tre regioni di 10 blocchi senza una "Q" nel nostro file da 10 MB. Le cose diventano strane quando hai a che fare con grandi numeri.

Questo significa che potremmo dover cercare un bel modo per trovare il primo Q dopo l'inizio dell'N ° blocco. C'è una bassa possibilità, ma come abbiamo visto, ci sono probabilmente tre posti nel nostro file gigante in cui dobbiamo cercare approssimativamente un KB di testo (manualmente!) Per una singola "Q". Se consideri che non vogliamo solo il primo ma l'ennesimo '>' dopo quella Q, le cose si complicano rapidamente. Potremmo dover cercare tra 1 KB per la Q e poi un altro 1 KB per trovare il primo '>'.

Tutto questo significa in pratica che sappiamo che la tua password non sarà negli ultimi 150 KB circa del file, perché non puoi garantire che una determinata coppia di caratteri sarà presente nell'ordine e nel numero richiesto.

Significa anche che possiamo calcolare una dimensione della chiave. Hai bisogno di cinque informazioni per trovare la tua password nel file: il blocco di partenza, il primo carattere, il numero di secondi caratteri da contare avanti, il secondo carattere e il carattere di arresto.

Possiamo specificarlo come una serie di numeri e caratteri: [ 7685, 'Q', 6, '>' ] , che significa "Iniziare a leggere al sesto" > " dopo la "Q" nel 7685 ° blocco.

Dato che ci sono circa 78000 blocchi che puoi scegliere per il punto di partenza, quel valore ha tra 16 e 17 bit di casualità. Potrebbe essere qualsiasi numero compreso tra 0 e 78000. Per i caratteri, hai 128 scelte in due posizioni, che è 7 bit di casualità ciascuna o 14 bit totali. Il secondo numero è difficile. Dato che possiamo ragionevolmente aspettarci di contare almeno 1 KB per trovare ogni personaggio, è probabilmente sicuro scegliere un valore inferiore a 64 qui. Sono solo sei bit di casualità. Quindi, totale generale, la tua chiave ha bit (16-ish + 14 + 6) di casualità, che sono 36 bit. Se si modifica la lunghezza, è possibile aggiungere altri bit. Anche se non banale, un tipico computer di casa moderno potrebbe alimentare tutte le possibili combinazioni in un paio di giorni.

Tuttavia, come altri hanno sottolineato, tutto ciò è in gran parte irrilevante. Il file stesso ha solo 10.000.000 possibili punti di partenza. Ciò significa che lo spazio chiave è in realtà significativamente più piccolo dei tasti stessi, e in realtà hai solo circa 23 bit di casualità. Ciò significa in termini pratici che ogni posizione iniziale nel file può essere referenziata da 16.000 chiavi diverse e, in realtà, memorizzare una posizione di partenza è significativamente più semplice della memorizzazione della struttura chiave. Se usi un blocco più piccolo, ci sono ancora meno combinazioni possibili.

Conclusione: quindi sì, come hanno detto altri, questa è una cattiva idea. Utilizzare un programma di crittografia strong noto utilizzando una password complessa conosciuta. Puoi trovare una password più facile da memorizzare che ti offre una protezione notevolmente maggiore rispetto a questo schema complicato e ottieni il vantaggio di algoritmi di crittografia collaudati.

    
risposta data 22.03.2013 - 22:25
fonte
2

Gli attacchi di forza bruta non funzionano in questo modo, presumo che intendessi un attacco di dizionario in cui viene fornito un vocabolario di password probabili e uno strumento / software forcer bruto (cioè john the matric) ruota uno alla volta finché non trova quello giusto. In un testo confuso, non conosco alcun modo per uno strumento di cracking della password per trovare gli alfabeti perché ci sarà un testo molto confuso che potrebbe non essere in grado di leggerlo. Tuttavia, normalmente ci sono parser di testo che analizzano il testo per te o estrapolano dati di file binari in testo. La risposta alla tua domanda è SÌ.

Alternativa Un'alternativa sicura che suggerisco è quella di memorizzare sempre le tue informazioni sensibili utilizzando algoritmi di crittografia forti come SHA-256 / o superiore.

    
risposta data 21.03.2013 - 17:53
fonte
1

Si prega di non provare a creare il proprio schema di crittografia. Alcuni degli algoritmi più ricercati hanno fallito. Il tuo metodo di crittografia fallirà in un'analisi di frequenza. In base a ciò che hai detto: hai diviso la tua password in due parti. Il codice crittografato dovrebbe essere analizzato per ogni carattere che si verifica quattro volte e la forza bruta da lì. Per esempio vedo che il carattere '¬' si presenta quattro volte. Sono sicuro che ci sono modi migliori per romperlo. Anche se dividi le tue password in più parti, ciò significherebbe solo aumentare l'analisi della frequenza di un po '. Non capisco cosa stai cercando di ottenere qui.

    
risposta data 21.03.2013 - 21:18
fonte
1

Poiché sembra che tu stia insistendo su un'analisi della forza bruta piuttosto che un'analisi degli attacchi effettivi che sarà sarà usato contro il metodo, qui c'è un (probabilmente un po 'imperfetto) back-of- il calcolo dell'inviluppo per la forza bruta. Daremo per scontato che l'hacker conosca il tuo metodo ma non uno dei tuoi segreti il cui metodo dipende, secondo principio di Kerckhoffs :

Hai un file di 10 MB. Qualcuno ha detto 10.485.760 byte. Ci andrò. Quindi hai 10 milioni di posizioni di partenza per due diverse parti della tua password, lo squadreremo per dare 109.951.162.777.600 possibili coppie di posizioni iniziali. Ora hai una password di 30 caratteri, quindi moltiplicala per 30 per ogni lunghezza possibile del primo segmento.

Quindi hanno bisogno di provare 3298,534,883,328,000 password.

Un semplice hobbista nel 2012 ha ottenuto un 350 miliardi di tentativi di password al secondo tasso per cracking delle password. Gli hacker dedicati che fanno questo per soldi, bande criminali o organizzazioni governative oggi possono certamente raggiungere velocità più elevate. Quindi, quanto ci vorrà per indovinare la tua password dal file?

3.298.534.883,328.000 / 350.000.000.000 = 9424 secondi, o poco meno di 3 ore, da qualcuno che non è nemmeno quello che ha investito nel tentativo.

Quindi sì, non farlo.

Potresti protestare, "ma ho anche una parte memorizzata!"

Bene, i tuoi esempi di porzioni memorizzate erano "1" o "123 test" quindi suppongo che appaia nelle prime 10.000 password o in un dizionario cracker o regole di trasformazione. Probabilmente non aggiungerà molta difficoltà.

E poiché hai scelto di ignorare le nostre proteste secondo cui nessuno ha intenzione di creare una combinazione di forza bruta del tuo file, lo attaccheranno in un modo "intelligente" che lo troverà in pochi secondi anziché usando un metodo di forza bruta muta, poi sceglierò ugualmente di ignorare il frammento di sicurezza che la tua porzione memorizzata potrebbe aggiungere.

    
risposta data 20.04.2016 - 17:20
fonte

Leggi altre domande sui tag