Šifrovací knihovna s obtížným dešifrováním

Ibrahim

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #90 kdy: 04. 02. 2014, 16:43:17 »
4Tomáš Crhonek

To je sice pravda, ale v jeho návrhu šlo o odstavení zmíněných automatizovaných nástrojů, takže ani s nekonečným výpočetním výkonem by se do toho nikdo nedostal. Mě to přišlo dobré. Budu mít botnet 50 000 PC, vezmu si danou standardní knihovnu, připravím nástroj a louskám 5 000 000 hesel za vteřinu (spíš víc). No a co ? K čemu mi to je? Nevím, jak je to dál zašifrované! Nepoznám, jestli mám správné heslo nebo ne. Musím ten jeho kód rozluštit. Krásně odstranil možnost bruteforce útoku pomocí silného botnetu.

Je to krásný příklad kombinace http://cs.wikipedia.org/wiki/Security_through_obscurity a http://cs.wikipedia.org/wiki/Secure_by_design (Secure by design je šifrovací knihovna).

Taky není pravda, že na to potřebuješ pouze o řád schopnějšího programátora-matematika, pochopit přeložený kód je o dost náročnější než se hrabat ve zdrojácích. Zmínil jsi i překonané zesložiťování textu, ano, ale to už vyžaduje odborníka na šifry.

Ať tak, nebo tak, nemohu to posoudit, ale jednoznačně mi je líto, že ten zdroják už asi neuvidíme.
Nojo, taky bych zadarmo neprogramoval, tak to chápu.
Možná zkusím ten jeho postup implementovat a pak Vám pošlu ukázku.


Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #91 kdy: 04. 02. 2014, 16:56:15 »
Při 4znakovém hesle ze 64 znaků a tempem louskání 10 hesel za sekundu to dává bez použití vašeho nástavce 64^4 kombinací nutných k vyzkoušení a projít všechny kombinace bude trvat 64^4/10 sekund, tedy skoro 20 dní. Při použití vašeho nástavce to je 64^4 kombinací k vyzkoušení a projít všechny kombinace bude trvat 64^4/10 sekund, tedy skoro 20 dní. Vidíte, že ta čísla jsou stejná?

On si myslí, že to ten jeho nástavec nezvládne nikdo reversnout nebo odstranit kontroly jestli už uplynulo x sekund od poslední generace klíče z hesla... Z toho co jsem pochopil, na tom celá ta jeho „bezpečnost“ stojí. :)

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #92 kdy: 04. 02. 2014, 17:03:42 »

Co mi brání s nekonečným výpočetním výkonem (tedy libovolně silný problém lousknu okamžitě), vyzkoušet i celou plejádu možných šifer? Ať si ten problém definuji jakkoliv, s nekonečným výkonem to bude hotové za nekonečně malou dobu. ;-)

Jinak, napadl mě další důvod, proč to nefunguje. Je to problém dvojích hesel. Spousta lidí věří, že si ssh zabezpečí tak, že zabrání přístupu rovnou na roota. Nejdřív je heslo na uživatele, potom na roota. Pokud bychom měli heslo (obě z nich) složité 64b, tak jaká bude výsledná síla? Člověk neznalý problematiky odpoví 128b. Ne. Bude pouze 65b. Dvěma hesly jsme problém ztížily pouze 2x. Přitom k heslu stačí přidat jedno písmenko z množiny 64 znaků, a složitost se zvýší 64x, tj na 70b. Přidáním jednoho znaku hesla jsme pro bezpečnost udělali více, než zakázáním přístupu na roota. Pochopitelně, když se vypne přístup hesly a používají se výhradně klíče, jsme opět úplně někde jinde.

Nevím, zda se zrovna tento problém týká zrovna zde navrženého postupu a zkoumat to nehodlám, ale takových podobných pastí je kryptografie plná.


Ibrahim

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #93 kdy: 04. 02. 2014, 17:15:57 »
4Tomáš Crhonek
Co mi brání s nekonečným výpočetním výkonem (tedy libovolně silný problém lousknu okamžitě), vyzkoušet i celou plejádu možných šifer? Ať si ten problém definuji jakkoliv, s nekonečným výkonem to bude hotové za nekonečně malou dobu. ;-)
S nekonečným výkonem získáš tak leda odpověď "42" ;-)
Odpověď na základní otázku Života, Vesmíru a vůbec - odpověď je 42.

4dan542
On si myslí, že to ten jeho nástavec nezvládne nikdo reversnout nebo odstranit kontroly jestli už uplynulo x sekund od poslední generace klíče z hesla... Z toho co jsem pochopil, na tom celá ta jeho „bezpečnost“ stojí. :)

Vážně by sis měl přečíst ten článek na Wiki.
Máš zloděje, ten zloděj vidí dva baráky nabušený drahejma krámama po střechu, do jednoho se probourá jen bagrem a až poté, co postřílí ostrahu se psi, do druhého vleze nepozorovaně okénkem, který z těch domů si vybere? Třeba ten těžší barák, ale většině zlodějů to nebude stát za to, to je jeden z principů Security through obscurity.

rob

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #94 kdy: 04. 02. 2014, 17:16:05 »
Muze admin fora potrvdit, zda Mirage, Bla a Ibrahim maji stejnou zdrojovou IP adresu?

Netreba ji samozrejme zverejnovat, jen pro zajimavost :)


Mirage

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #95 kdy: 04. 02. 2014, 17:18:40 »
Dobrá, jsem Ibrahim. Bla mi ovšem nepřišijete  ;D

temp_nick

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #96 kdy: 04. 02. 2014, 18:44:36 »
5000 je malo, chalani vravia ze to rozlusknu za 100 000

Mirage

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #97 kdy: 04. 02. 2014, 19:18:28 »
Tak to je super ne?
Kdyby to bylo šifrované nečím, na co jde udělat útok hrubou silou, tak bych to zkusil taky i zadarmo.
Taková drobná úprava a nikomu se do toho nechce.

Re:Šifrovací knihovna s obtížným dešifrováním
« Odpověď #98 kdy: 04. 02. 2014, 19:19:51 »
To je sice pravda, ale v jeho návrhu šlo o odstavení zmíněných automatizovaných nástrojů, takže ani s nekonečným výpočetním výkonem by se do toho nikdo nedostal. Mě to přišlo dobré. Budu mít botnet 50 000 PC, vezmu si danou standardní knihovnu, připravím nástroj a louskám 5 000 000 hesel za vteřinu (spíš víc). No a co ? K čemu mi to je? Nevím, jak je to dál zašifrované! Nepoznám, jestli mám správné heslo nebo ne. Musím ten jeho kód rozluštit. Krásně odstranil možnost bruteforce útoku pomocí silného botnetu.

Taky není pravda, že na to potřebuješ pouze o řád schopnějšího programátora-matematika, pochopit přeložený kód je o dost náročnější než se hrabat ve zdrojácích. Zmínil jsi i překonané zesložiťování textu, ano, ale to už vyžaduje odborníka na šifry.

Kdyby to bylo šifrované nečím, na co jde udělat útok hrubou silou, tak bych to zkusil taky i zadarmo.

Vy jste pořád nepochopil princip útoku hrubou silou. Útok hrubou silou jde udělat na cokoli. Útok hrubou silou funguje tak, že vůbec nezkoumám, jak je něco zašifrováno. Prostě vezmu ten zašifrovaný text, vezmu originální program k jeho rozšifrování (třeba ten Blaův nastavovací zázrak), a tomu postupně předhazuju jedno heslo za druhým. Takhle vyzkouším potenciálně všechna hesla ze zvolené množiny. Pokud to chci vylepšit, začnu těmi, která považuju za pravděpodobnější - tedy hesla z nějakého slovníku. Na některých heslech se ten program zhroutí, protože autor nepočítal, že tam někdo zadá špatné heslo a dostane náhodný výstup (v případě dobré šifry). To nejsou ta správná hesla. Z dalších hesel vyleze nějaká změť paznaků, která ani vzdáleně nepřipomíná český text (pokud má být zašifrován článek) nebo privátní klíč bitcoinové peněženky (podle původního zadání). To také nejsou ta správná hesla. No a pak tam zbyde několik hesel v výstupem v podobě českého textu nebo privátního klíče bitcoinové peněženky. Podívám se, kolik jich je, zjistím, že jedno, a to je to hledané šifrovací heslo.

Obrana proti tomu je jediná - počet možných kombinací hesel krát čas potřebný k odšifrování a ověření výstupu musí být nad možnosti útočníka, resp. nad limitem, za kterým se nevyplatí heslo louskat hrubou silou. Počet možných kombinací hesel závisí na tom, jak silné heslo zvolí uživatel. Proto chtěl Ondřej natáhnout ten čas potřebný k dešifrování.

Jedna možnost je samozřejmě přidat do toho oficiálního dešifrovacího nástroje nějaké zdržovačky -- čekání, prázdné smyčky, nesmyslné výpočty. Jenže dostatečně motivovaný útočník by tohle uměl odstranit, proto Ondřej hledal nějaký algoritmus, který by byl pomalý z principu a útočník by tu pomalost nemohl použitelnými prostředky obejít (kvantový počítač zatím nepovažujeme za použitelný prostředek). Zabudování zdržovaček do Blaova programu by tedy byl v rámci tohoto tématu podvod.

Skutečné možnosti, jak Ondřejův problém vyřešit, jsou podle mne čtyři.

Buď použít algoritmus, který by byl záměrně navržen tak, aby dešifrování bylo pomalé. Mám pocit, že nějaké pokusy o vytvoření takových algoritmů existují, ale zatím to rozhodně není nic důvěryhodého a ověřeného. To by bylo ideální řešení.

Na druhé straně je nejčastěji používané řešení - vzít stávající rychlý algoritmus, a ten aplikovat opakovaně, třeba tisíckrát. Nebo několik algoritmů prostřídat. Já v tom vidím ten problém, že žádný z používaných algoritmů nebyl k takovému použití navržen, tudíž není jasné, zda se takhle nevytváří nějaký postranní kanál oslabující šifru.

Další možnost je použít asymetrickou kryptografii, jejíž současné algoritmy jsou pomalejší.

Poslední možnost je využít toho, co zpomaluje algoritmy asymetrické kryptografie, a vrátit se zpět k útoku hrubou silou. Vstupní text zašifrovat náhodným klíčem, tenhle klíč zašifrovat uživatelovým heslem a to celé zašifrovat náhodně zvoleným krátkým klíčem a ten zahodit. Dešifrování by pak probíhalo tak, že by se postupně vyzkoušely všechny přípustné krátké klíče (hledal by se ten, který se po zašifrování zahodil). Délkou toho zahazovaného hesla se nastavuje průměrná doba potřebná pro rozšifrování souboru se známým heslem.

Nevýhodou všech těch zdržovacích metod je, že se dají snadno obejít paralelizací. Oprávněný uživatel bude dešifrovat zpravidla na jednom počítači, motivovaný útočník jich může použít tisíce i víc. Proti tomu je jediná možná obrana - silné heslo uživatele. Protože znalost proti neznalosti hesla je to jediná výhoda, kterou má oprávněný uživatel proti útočníkovi. Ve všem ostatním má navrch útočník.