Portál AbcLinuxu, 10. května 2025 02:16

Dotaz: Datový formát odolný vůči brute force

Jardík avatar 5.11.2013 22:58 Jardík | skóre: 40 | blog: jarda_bloguje
Datový formát odolný vůči brute force
Přečteno: 1906×
Odpovědět | Admin
Pro svou aplikaci hledám vhodný způsob uchování dat (stromová struktura), která budou v závislosti na nastavení uchována zašifrovaně (asi AES256). Hledám vhodný způsob uchování tak, aby při aplikaci brute force útoku bylo časově náročné určit, zda-li to bylo rozšifrováno správně. Zatím mám něco takového:
Nezašifrovaná část:
  'magic number' formátu
  'flags'
  'salt' 256b sůl, přítomno jen když je encrypted flag nastaven
Zašifrovaná část:
  'dir' - kořenový adresář
Kde adresář vypadá nějak takto:
name_len
entry_count
name[name_len]
entry_type_bitmap[entry_count]
entries[entry_count]
Kde entry_type_bitmap určuje typ položky v závislosti na nastavení bitu, buď 'dir', nebo 'data'. Formát dat je něco jako
id (nějaký náhodný 256b identifikátor)
name_len
data_len
name[name_len]
data[data_len]
Přišlo mi to nejprve jako ok, protože nejsou žádné crc součty, a prakticky žádné iformace, podle kterého by daný bruteforce algoritmus dokázal říct 'našel jsem správné heslo'. Vždy je potřeba zásah někoho, kdo má znalost, co je tam uloženo, aby mohl sám po dešifrování říct 'jó, zadal jsem správné heslo, budu manipulovat z daty', nebo 'né, je to špatně, zkusím to znovu'. Podle čeho by bruteforce algoritmus mohl poznat, že uspěl by mohlo být:

Práce s tou bitmapou se mi moc nelíbí, možná bych určení typu mohl dát do položky, řekněme, že dám nějaké náhodné id i adresářům a budu typ položky určovat třeba podle nejvyššího bitu (1/0), pokud však bude kořenový adresář vždy mít 0 v nejvyšším bitu id, bude to bruteforce algoritmus mít jednodušší. Možná bych mohl prostě nedávat id do kořenového adresáře.

Nějaké návrhy, jak to vylepšit, má to vůbec smysl, když prostě jde použít dlouhé heslo? Cílem je prostě zajistit dobrou bezpečnost i třeba s krátkým heslem, kdy bruteforce útok nebude moci jednoduše říci 'mám to'. Samotný program taky nepotřebuje kontrolovat, zda byla data rozšifrována správně, to bude ponecháno na uživateli, včetně riskování jejich poškození, bude-li v práci pokračovat s takovými daty.

Věřím v jednoho Boha.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.11.2013 23:18 crypto fun
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zadání (bezpečnost při krátkém hesle) nejde dost dobře splnit. AES produkuje hodně náhodně vypadající data. Statistická analýza (např. http://packages.debian.org/sid/ent ) by při správném hesle ukázala výrazný propad entropie.
6.11.2013 16:47 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Může data zkomprimovat. Samozřejmě vyvstanou problémy s hlavičkou, ale tu si může strčit někam.
6.11.2013 19:50 crypto fun
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Ano, taková LZMA1 vypadá dostatečně náhodně a nemá detekovatelnou hlavičku. To je ovšem pouze security by obscurity. Pokud útočník zná formát, tedy ví, že to je komprimované a jak, může se to pokusit dekomprimovat a pokud se mu z toho dekompresor nepodělá, opět se dozví, že trefil správný klíč.
7.11.2013 07:02 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force

Tohle je ekvivalentní tomu, že zná nativní formát. Tedy problému, na který se ptá autor. Tudíž žádné zhoršení.

Naopak komprese přirozeně zvyšuje entropii, a tím brání statistické analýze. To mi přijde jako zlepšení.

Asi se shodneme, že co žádá tazatel, je pitomost.

Jardík avatar 7.11.2013 18:39 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Asi se shodneme, že co žádá tazatel, je pitomost.
Můžeš více rozvést? Opravdu. Proč je to blbost? Nemá cenu navrhnout ten formát tak, abych ztížil aplikaci brute force útoku?
Věřím v jednoho Boha.
7.11.2013 19:43 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Nie, že by som sa nad tým moc zamýšľal, ale skúsim: Mám dve kópie štruktúry. V jednej urobím malú zmenu. Obe zašifrujem. Obe dám na vstup alogritmu pre brute-force. Ak výsledok pokusu o dešifrovanie jednej aj druhej sa líši len v malom počte bajtov, je pravdepodobné, že mám správny kľúč.
8.11.2013 09:47 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force

Formát je uspořádání dat. Oboje je vyjádřeno v otevřeném textu. Tedy z hlediska ověřování dešifrovaného textu formát a data jedno jsou.

Vezmeme-li otevřený text s určitým množstvím informace, můžeme přelévat formát do dat a obráceně (například názvy XML elementů do obsahu textových uzlů), ale nijak si nemůžeme.

Pokud se z otevřeného textu pokusíme odstranit formát, tak tím nevyhnutelně snížíme množství informace v textu obsažené. Tedy užitečnost takového formátu bude pro právoplatného uživatele nižší a bude muset k dosažení stejného cíle přenést více dat, čímž efektivně popřeme smysl odstranění formátu.

Prakticky řečeno, když z datového souboru odstraníš značkování, a zašifruješ jenom data, tak ve výsledku máš šifrovaná data a nešifrovaná metadata. Jak doručíš metadata protistraně? Když je opět zašifruješ, tak jsme tam, kde jsem byli. Když je nezašifruješ, tak je to ještě horší. A když je nepřeneseš, tak protistrana bude mít neúplnou informaci, kterou nebude moci použít.

Jendа avatar 5.11.2013 23:30 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Odpovědět | | Sbalit | Link | Blokovat | Admin
Spíš bych použil na derivaci klíče nějaký scrypt/PBKDF2.
8.11.2013 10:40 Jose
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud nekdo zvladne brute force na AES256 zvladne i casove narocne urceni zda bylo rozsifrovano spravne, tedy nevynalezej kolo a spokoj se s normalnim sifrovanim.
Jendа avatar 8.11.2013 12:42 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Pokud nekdo zvladne brute force na AES256
Myslím, že jsi přehlédl klíčovou část když prostě jde použít dlouhé heslo.
8.11.2013 13:47 Jose
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
No ma tam polozku 'name' podle ktery se bude pravdepodobne dat urcit jestli se desifrace podarila, pridanim nejakeho dalsiho algoritmu nad AES muze mirne zvetsit obtiznost ale pokud chce kratke heslo tak bude bezpecnost odpovidat tomuto kratkemu heslu. Spolehat se na to ze utocnik nebude tusit ze je to prekodovane AES asi neni na miste. Kdyz uz kratke heslo uzivatele tak ho radeji rozsirit o nejakou salt ktera bude znama jen aplikaci a nepujde z uniklych dat zjistit.
Jardík avatar 11.11.2013 15:11 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
'name' bude prostě název dané položky, kterou si určí uživatel aplikace. Není to použito k žádné identifikaci a může se opakovat.
Věřím v jednoho Boha.
8.11.2013 15:08 R
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Odpovědět | | Sbalit | Link | Blokovat | Admin
V UTF-16 je polovica bajtov nulovych (ak sa pouzivaju ASCII znaky), to mi nepride ako vyhra...
Josef Kufner avatar 12.11.2013 00:18 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co to prostě a jednoduše zašifrovat dvakrát?

Jako první byte uložit dvojkový logaritmus délky klíče (byte 0x08 == 256bit klíč), pak uložit náhodný klíč této délky a pak pokračovat zašifrovanými daty. To celé pak zašifrovat ještě jednou, ale tentokrát známým heslem.
Hello world ! Segmentation fault (core dumped)
Jendа avatar 12.11.2013 05:45 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
To prodlouží bruteforce na dvojnásobek. Vhodně použitá key derivation function to může prodloužit libovolně - třeba 10000x. Navíc může (scrypt, bcrypt) znemožnit útok pomocí specializovaného hardware - není problém ji nastavit třeba tak, aby vyžadovala gigabajt paměti. Na běžném počítači tak můžeš crackovat maximálně několik instancí paralelně a na architekturách založených na masivní paralelizaci (GPU, FPGA, ASIC) si ani neškrtneš, protože bys potřeboval petabajt RAM.
Josef Kufner avatar 12.11.2013 10:47 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Zašifrovaná data vypadají jako náhodná. Tedy alespoň by tomu tak mělo být. Tím pádem útočník nedokáže detekovat, zda se mu první kolo šifrování povedlo. Ovšem to vychází z toho, že nebude vědět, že to bylo dvakrát zašifrováno, nebo že uložený náhodný klíč je doplněn o známou složku (druhý tajný klíč).
Hello world ! Segmentation fault (core dumped)
12.11.2013 13:00 ::: | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Jendа avatar 12.11.2013 18:07 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Ovšem to vychází z toho, že nebude vědět, že to bylo dvakrát zašifrováno, nebo že uložený náhodný klíč je doplněn o známou složku (druhý tajný klíč).
Aha, security by obscurity.
Josef Kufner avatar 12.11.2013 10:49 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Odpovědět | | Sbalit | Link | Blokovat | Admin
Btw, jak tohle vlastně budeš používat? Kdo bude otevírat takový datový soubor? Kdo ho bude vytvářet?
Hello world ! Segmentation fault (core dumped)
12.11.2013 14:09 JMP | skóre: 30
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Odpovědět | | Sbalit | Link | Blokovat | Admin
hmm, pokud bude někdo chtít ta data více než vy vaše pohodlí/bezpečí/zdraví/život, tak budete stejně ten nejslabší článek vy...
13.11.2013 09:24 Jose
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Coz v dusledku vede na zjimavy problem - tedy zda-li lze vytvorit takovy zpusob ochrany dat aby nefungoval brute force utok na majitele klice.
Jendа avatar 13.11.2013 10:19 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Nad tím už delší dobu přemýšlím. Napadlo mě mít TPM a k němu jeden správný klíč a spoustu špatných, které způsobí destrukci. Tím jsem to redukoval na otázku, jestli vyšetřovateli dokážete přesvědčivě lhát o tom, který z těch mnoha klíčů, které jste prozradili, je „správný“. Bohužel nemám dostatečné znalosti v oblasti psychologie pokročilých výslechových metod, abych toto byl schopen vyhodnotit (a kamarádi agenti od tajných služeb mi to nechtějí prozradit). A experimentálně se to ověřuje těžko.
13.11.2013 10:33 Jose
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Mozna k datovemu objektu ktery potrebuji skryt pripojit dalsi datovy objekt ktery obsahuje z meho pohledu nezavadna ale smyslplna data a nasledne zasifrovat tak aby vysledkem byli dva klice kde jeden ve vysledku desifruje moje data a druhy ten nezavadny objekt. Muselo by se to udelat tak aby z delky sifrovanych dat nebylo na prvni pohled patrne ze desifrovana byla jen cast.
13.11.2013 13:39 DrDreyfus
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Nevymýšlejte vymyšlené.
Jendа avatar 13.11.2013 20:39 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Pod nátlakem nedokážu dřív nebo později (řekl bych, že spíš dřív) nevydat všechny klíče, které znám.

(plus je tu zvýšená motivace pro vyslíchajícího po té, co vytáhl dva klíče, zkoušet tahat ještě třetí)
14.11.2013 20:05 DrDreyfus
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Tak to ti ovšem nepomůže žádná technologie. To radši investuj do kurzu psychologické odolnosti, kontaktního způsobu boje, zacházení se zbraněmi a/nebo kyanidu pod zubem. Pro nás obyčejné lidi stačí hidden kontejner v TrueCryptu, aby TSA/manželka, byla v klidu, když uvidí, že tam opravdu mám jen účetnictví/společné fotky.
Jendа avatar 14.11.2013 21:36 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Jak už jsem psal, možná bych dokázal přesvědčit, který klíč je jakoby pravý.
Jakub Lucký avatar 13.11.2013 11:08 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Otázka je, jestli strach z toho co ti udělají, až jim znehodnotíš data, nebude největší faktor...
If you understand, things are just as they are; if you do not understand, things are just as they are.
13.11.2013 14:33 Ivan
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi je to ted offtopic otazka, ale "Jakym zpusobem pozna tvoje aplikace, ze heslo je spravne?".

Videl jsem jeden knihovni system, ktery byl distribuovan i se zasifrovanyma zdrojaka (v COBOLu). Aby byli schopni overit, ze uzivatel zadal spravne heslo tak ho projistotu priplacli v plaintext-u hned na zadatek toho "zasifrovaneho souboru".
13.11.2013 15:21 Radovan Garabik
Rozbalit Rozbalit vše Re: Datový formát odolný vůči brute force
Pamätá si niekto na Město robotů a KONVALINKA? :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.