Portál AbcLinuxu, 10. května 2025 02:16
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.
Řešení dotazu:
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.
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?
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.
Pokud nekdo zvladne brute force na AES256Myslím, že jsi přehlédl klíčovou část když prostě jde použít dlouhé heslo.
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.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.