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

Bla

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #30 kdy: 03. 02. 2014, 10:42:45 »
Jirsák, Jirsák....i ostatní...neznalost, neznalost, neznalost.

Naprostá většina burteforce útoků funguje s použitím vlastního nástroje, který je vybavený právě standardní knihovnou.
Pokud tyhle nástroje odstavíte, vyžaduje to nasání nástroje nového, což už je právě v té říši pohádek.
Samozřejmě nehájím krátká hesla obecně, ale bez dekompilace původního nástroje to prostě nedáte.

Komprese neslouží k ničemu jinému než ke zmatení detektoru výstupu, detektor výstupu hledá na výstupu slova a známé řetězce, při použití vhodné komprese pak bude nutné detektor upravit, což už vyžaduje značné úsilí, které je ochotná vynaložit maximálně tajná služba, ale ne Pepa z Poličky. Stejnou funkci může udělat i ten XOR resp. bitový posun založený právě na hesle. Neznáš heslo, nevíš o kolik bitový posun uskutečnit.

Pánové, nudíte mě svojí neznalostí a omezeností.
Pokud máte zájem, pokud se mezi Vámi najde někdo dostatečně chytrý, někdo s mozkem větším než zaječí trus, někdo schopný, kdo chce vyvrátit moje tvrzení, no prosím, můžeme se vsadit.

Vsaďme se o 5000,- Kč, to pro Vás snad nic není, dejme tomu, že Vám chci věřit, že nejste jen diskusní kecalové.
Zašifruji soubor svým nástrojem, který použije standardní šifrovací knihovnu a heslo prodloužím pomocí postupů výše uvedených, dále použiju výše uvedené techniky k dalšímu zašifrování textu, ale kromě hesla Vám poskytnu i mojí aplikaci bez zdrojových kódů.

Co tedy budete mít:
- soubor zašifrovaný heslem dlouhým 4 znaky k odšifrování
- soubor zašifrovaný heslem dlouhým 4 znaky s heslem pro ověření funkčnosti
- můj nástroj, který bude sloužit k šifrování i odšifrování, heslo poskytnu po uplynutí termínu výhry
- substituční tabulky pro zmatení vstupů
- jistotu, že heslo je složené pouze z malých a velkých písmen a číslic
- pět dní času na analýzu nástroje, v této době nebudete mít zašifrovaný soubor k dispozici
- tři dny času na zjištění hesla (nejprve Vám poskytnu nástroj s testovacím souborem, abyste se mohli připravit a pak i ten soubor, o který jde)

Co nebudete mít:
- nebudete mít heslo dlouhé 4 znaky, toto heslo je předmětem naší sázky, tedy nebudte ho mít až do chvíle, kdy sázka končí nebo dokud ho nerozlousknete

Jak půjde sázku vyhrát?
Třeba modnout můj nástroj, aby na vstupu bral hesla a podával výsledek.
Nebo jeho zpětnou analýzou zjistit, jak je tvořený.

Sepíšeme smlouvu, každý z Vás, který se semnou vsadí, každý vsází 5000,- Kč, já vsázím svých 5000,- Kč, ty se v případě Vaší výhry rozdělí mezi ty, kteří se semnou vsadili. S počtem lidí, kteří se semnou vsadí, roste Vaše šance a klesá výše odměny, protože ta se spravedlivě rozdělí mezi Vás.A naopak já, pokud vyhraju, čím víc lidí se vsadí, tím větší výhru dostanu v případě mé výhry.

Uvědomte si, že podle Vás jsem omezený primitiv, tak nic neriskujete ne?
Nebo se vy velcí žvanilové bojíte? Popopopodák?

Tak schválně, kdo má pravdu, jestli se pletu, prohraju a vy tvrdíte, že se pletu určitě.

Takže, kdo se připojí k Jirsákovi, aby to nebylo celé na něm?

Bavíme se tu o hesle dlouhém pouhé 4 znaky!
To snad dáte ne?


Tomas

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #31 kdy: 03. 02. 2014, 11:11:46 »
Jirsák, Jirsák....i ostatní...neznalost, neznalost, neznalost.
Co tedy budete mít:
- soubor zašifrovaný heslem dlouhým 4 znaky k odšifrování
- soubor zašifrovaný heslem dlouhým 4 znaky s heslem pro ověření funkčnosti
- můj nástroj, který bude sloužit k šifrování i odšifrování, heslo poskytnu po uplynutí termínu výhry
- substituční tabulky pro zmatení vstupů
- jistotu, že heslo je složené pouze z malých a velkých písmen a číslic
- pět dní času na analýzu nástroje, v této době nebudete mít zašifrovaný soubor k dispozici
- tři dny času na zjištění hesla (nejprve Vám poskytnu nástroj s testovacím souborem, abyste se mohli připravit a pak i ten soubor, o který jde)


Tak to sem posli, na smlouvu se ti kazdej vybodne. Ale jsem si jisty, ze jestli nekdo bude s tebou chtit ztracet cas tak to jednoduse rozlouskne. Jestli si tedy chces opravdu overit svuj software, normalne ho nekam nahraj a uvidis jak neprolomitelny je.

Spise si myslim, ze zustanes u hloupych urazek. Mozna bys mel obcas cist duvody proc to nemuze fungovat. Ty proste jen delas zname "security by obscurity".


Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #32 kdy: 03. 02. 2014, 11:16:26 »
@Bla
Zapis si nejaky zakladni kurz bezpecnosti na nejake solidni vejsce nebo na Coursere. Nebo, pokud jsi spis ctenar, zkus trebas https://www.schneier.com/book-ce.html

A nikdy, NIKDY, vazne NIKDY krypto neimplementuj natoz navrhuj (coz je rada platna pro vsechny).

trubicoid2

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #33 kdy: 03. 02. 2014, 11:17:23 »
Knihovnu (nějaký libXXX-dev, ještě lépe se zdrojáky) která by realizovala šifrování a dešifrování s tím, že při zadání správného hesla by dešifrování trvalo nějakou významnou dobu, třeba stovky milisekund až sekundy. Ideálně, kdyby se obtížnost zašifrování dalo nastavit při šifrování.

jak uz tu radili, slo by pouzit PBKDF2 trebas primo v luks2 kontejneru pomoci cryptsetup, nastavis parametr --iter-time=1000 a --hash=whirlpool nebo jinej, sha1 bych se vyhnul

jen ten zadanej --iter-time ne uplne odpovida casu otvirani, nejaka chybka ve vnitrnim benchmarku, je potreba to vyzkouset

taky ruzny backendy ke cryptsetupu jsou ruzne rychly v pocitani hashu, vetsinou rychlejsi nez defaultni gcrypt je openssl

podlesh

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #34 kdy: 03. 02. 2014, 11:17:49 »
Náhodou, tato diskuse je opravdu přínosná.

http://en.wikipedia.org/wiki/Dunning–Kruger_effect


trubicoid2

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #35 kdy: 03. 02. 2014, 11:35:18 »

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #36 kdy: 03. 02. 2014, 11:50:59 »
Dunning Kruger efekt se v v teto oblasti reprezentuje Schneierovym zakonem: "any person can invent a security system so clever that she or he can't think of how to break it."
https://www.schneier.com/blog/archives/2011/04/schneiers_law.html

JSH

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #37 kdy: 03. 02. 2014, 12:10:36 »
Bla : Opravdu myslíš, že s tebou bude někdo řešit smlouvu o prachy? Sepsat rozumnou smlouvu bude těžší, než dekompilovat ten zprasek.

Ale čistě sportovně do toho půjdu. Vystav někde ten program, nebo mi to pošli na mail JSH u seznamu.

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #38 kdy: 03. 02. 2014, 12:13:19 »
Odpovím na otázku k čemu jsem to chtěl.

Když zašifruju privátní klíč k bitcoinové adrese pomocí passphrase, jakou jistotu mám, že mě to ochrání při zcizení toho klíče. Útočník vesele provede útok offline a pokusí se uhodnout moji passphrase. Bude na to mít ohromné množství času a ohromné množství výpočetního výkonu. Proto jsem hledal způsob, jak udělat, aby dešifrace  privátního klíče správným heslem trvala co nejdéle. Klidně i minutu. To chci pak vidět, kolik prostředku bude muset útočník investovat do takového lámání hesla, aby to rozlousknul v reálném čase.

(Nejvíc se mě líbí hláška u NXT - vaše passphrase je moc krátká, úročník ji může lehce ohalit: Napsal jsem tam celé jméno a příjmené své dcery i s datumem narození a místo mezer strčil nějaké ty symboly)

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #39 kdy: 03. 02. 2014, 12:28:40 »
Nejprve definujte, čemu říkáte „standardní šifrovací knihovna“ a co přesně jsou ty „výše uvedené postupy“. Pak byste také musel definovat, jaké vstupy a výstupy bude mít ten váš program a jak dlouho trvá jedno dešifrování. Kvůli 5000 Kč totiž ten váš program nikdo zkoumat nebude, takže by musel být použitelný už od vás.

Mimochodem, ten váš algoritmus prodlužující hesla funguje jenom pro čtyřznaková hesla? Nebo i pro hesla tříznaková, jednoznaková a 0znaková?

Jeden z algoritmů, který jste popsal, je doplnit heslo konstantním řetězcem, výsledek použít jako klíč a jím XORovat vstupní text. Takže zkusíme tomu algoritmu předhodit stejný vstup a tři různé hesla:

Kód: [Vybrat]
Hesla:
NBuser123
nbUSER789
aaaaaaaaa
Výstup:
pbcXiXWcXlbYWjZjZjSbYWjZjWYIbYWbjYWZCbYWjWbdiHjjiZYbbYbWbbYYWYWcjZjZbbbbdbYWZcdb
LbcXiXWcX1bYWjZjZjwbYWjZjWYubYWbjYWZgbYWjWbdi-jjiZYbbYZWbbYYWYWijZjZbbbbjbYWZcdb
0bcXiXWcX0bYWjZjZj0bYWjZjWY0bYWbjYWZ0bYWjWbdi0jjiZYbbY0WbbYYWYW0jZjZbbbb0bYWZcdb

Není vám na těch výstupech něco nápadné? Tak zkusíme jako vstup samé nuly:

Kód: [Vybrat]
Hesla:
XXXXXXXXX
xxxxxxxxx
Výstup:
X12585425X16497979X16497946X16419647X16494138X99876116X41166464X97971111X1647231
x12585425x16497979x16497946x16419647x16494138x99876116x41166464x97971111x1647231

Takže máme váš supertajný klíč, ve kterém se na místa X/x postupně doplňují znaky hesla. Hm, to bylo fakt těžké. Ještě že jste se o těch 5000 Kč nevsadil, že? Takže šifry známé a prolomené stovky let asi nebudou to pravé. Můžete zkusit váš algoritmus postupně vylepšovat, třeba se dostanete aspoň na úroveň 18. století. Jenže pokud chcete obstát dnes, budete muset použít nějakou moderní šifru, kterou si jen tak na koleně nesplácáte.


Tomáš Marný

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #40 kdy: 03. 02. 2014, 12:28:58 »
..že mě to ochrání při zcizení toho klíče.

Tak ten klíč zkrátka nezcizuj a budeš mít klid.  ;)

Tomáš Marný

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #41 kdy: 03. 02. 2014, 13:14:42 »
Sepíšeme smlouvu, každý z Vás, který se semnou vsadí, každý vsází 5000,- Kč, já vsázím svých 5000,- Kč, ty se v případě Vaší výhry rozdělí mezi ty, kteří se semnou vsadili.

LOL! :D To jako že když se s pěti lidmi vsadíš o flašku, tak v případě prohry jim dáš jednu dohromady? :D Tak to jsem teda ještě nežral. :D

Uvědomte si, že podle Vás jsem omezený primitiv, tak nic neriskujete ne?

To spíš podle tebe jsou omezení primitivové všichni ti matematikové, co se zabývají kryptografií - když je to celé tak jednoduché.

„Nám starého kozla na tom záleží, kadete Bieglere,“ s výrazem opovržení a nelibosti řekl hejtman Ságner; „je jisto, že systém, o který šla řeč a který jsem vám vysvětloval, je nejen jeden z nejlepších, ale můžeme říct nedostižitelných. Všechna oddělení pro protišpionáž našich nepřátelských štábů mohou jíti na hrnec. Kdyby se rozkrájeli, nepřečtou naše šifry. Jest to něco zcela nového. Tyto šifry nemají předchůdce.“

Mirage

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #42 kdy: 03. 02. 2014, 14:35:09 »

Jestli ho chápu správně, netvrdí, že tím primitivním postupem udělá ze slabé šifry silnou, ale že jednoduchou úpravou podstatně ztíží dešifrování, což je přesně to, o com v tomhle vláknu jde. Mě se ten jeho postup líbí, vezme šifru třeba AES+Twofish a přidáním další vrstvy, bez změny vlastní knihovny, vyřadí ze hry všechny standardní dešifrovací nástroje pro AES+Twofish. Jsem přesvědčený, že to fugovat bude. Krása jeho postupu je v tom, že není nutné upravovat standardní šifrovací knihovnu.

Ovšem ty tvrdíš, že to, co navrhuje, naprosto nefunguje a že je kašpar.
To není o penězích, netvrdil, že ty šifry bude někdo louskat za 5kkč, tvrdí, že to funguje, ty tvrdíš, že ne, sázka je o tom, jestli si dokážete stát za svým slovem. PTÁM SE TEDY, PROČ SE S NÍM NEVSADÍŠ? Pokud se s ním nechceš vsadit, je na místě tuším velmi slušná omluva a pořádná halda popela nasypaná na tvou hlavu. V opačném případě bys tu sázku měl přijít, pokud má tvoje slovo tedy alespoň nějakou cenu.

Bla má u mě bod za odvahu!
Stojí si za svým slovem a je ochotný se za svůj názor i bít.
Bez ohledu na to, jestli má a nebo nemá pravdu, autoritu si u mě vysloužil právě Bla a ještě JSH, který nekecá a maká.
Co na to Filip Jirsák, jaký je to člověk, zbaběle se stáhne nebo se zachová jako chlap?

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #43 kdy: 03. 02. 2014, 14:42:17 »
TVŮJ SOFTWARE NIKOHO NEZAJÍMÁ!

Pokud bude můj software spravovat nějaké peníze, cryptoměnu nebo něco jinak hodnotného, tak bude zajímat každého. Tohle je snad největší chyba, kterou člověk může ve svých úvahách udělat!

Hodně právě uvažuji nad tím, jak ochránit dedikovaný počítač proti leaknutím důležitých informací vedoucí k neoprávněnému získání spravovaných hodnot.

Jaké jsou tam rizika?
  • Klasické napadení z venku (vlámat se dovnitř skrze známou chybu a plně jej ovládnout)
  • Ovládnutí z venku (přesvědčit stroj, aby mne poslouchal)
  • Ukrást ho fyzicky
  • Ukrást některou HW součást (HW klíč, disk)
  • Přinutit provozovatele telehausu, aby udělal kopii stroje + dump paměti
  • Riziko že si ho vykrade sám majitel nebo společník

Zatímco první bod jsem schopen řešit třeba tak, že stroj nebude jednat jako server, tedy bude se chovat jako klientský počítač, nebude mít otevřený žádný port například, Druhý bod už je těžší, protože znamená to, že útočník musí získat kontrolu na počítačem, který tenhle stroj poslouchá a věří mu (master). Zabezpečení HTTPS např. nebo vzájemná autentifikace stran, vyhnout se DNS a podobně může pomoci tím, že útočník nebude moci dotazy stroje přesměrovat a vydávat se tak za mastera

No a teď jsem se dostal k bodům, kdy se řeší, že informace uložené na serveru leaknou jinou cestou. Když už se útočník dostane do stroje, tak z něho pouze vytáhne údaje, klíče, hesla, a teď jde o to, aby mu to i přesto bylo k ničemu. Pokud ho ukradne fyzicky (tedy ho bude muset například odpojit) nebo mu ukradne disk, tak je zde možnost snížit riziko ukradení tím, že některá část hesla bude uložena v paměti, zadaná při startu systému a odpojením se ta informace smaže. Pokud ale získá i DUMP paměti, je to víceméně v háji.

Decryptace lze řešit C++ kódem, což je jen o píď lepší, než to když to bude napsané v pythonu nebo v PHP. Záleží, co útočník získá. Například se do stroje vláme jako user s omezenými právy, tak pravděpodobně nezíská binárku (bude spouštěná pod rootem a následně se jí ponízí práva). Skriptovací jazyky zpravidla vyžadují, aby kód byl dostupný pod uživatelem, ve kterém je proces spuštěný (takže je útočník může získat)

Zpět k tématu, nebudu uvažovat plné ovládnutí stroje a získání všech klíčů, včetně zadaných (část klíče může být zasílána z mastera při každém požadavku, takže samotný dump stroje i s paměti nemusí dostačující, bude vyžadovat aby se stroj spojil se svým masterem). Když už útočník získal všechny klíče ale vše má zašifrované, chybí mu jedna část, kterou nezískal, může si jí dopočítat. Proto mi připadá rozumné, aby zde byl i nějaký časový faktor, klidně hodně přehnaný, klidně vytažen i na jednotky sekund, aby útočník nemohl klíče, které nezískal rychle dopočítat.

Jinak ještě k posledním bodům. Předposlední body lze asi řešit diverzifikací... tedy nedržet vše na jednom místě a tím vytvořit single point of failure. Riziko majitele a společníka bude potřeba asi řešit na straně práva.

Cold wallet samozřejmě uvažuju také, pokud jde o cryptoměnu.

Re:Šifrovací knihovnu s obtížným dešifrováním
« Odpověď #44 kdy: 03. 02. 2014, 14:51:59 »

Jestli ho chápu správně, netvrdí, že tím primitivním postupem udělá ze slabé šifry silnou, ale že jednoduchou úpravou podstatně ztíží dešifrování, což je přesně to, o com v tomhle vláknu jde. Mě se ten jeho postup líbí, vezme šifru třeba AES+Twofish a přidáním

Já tam vidím problém ten, že pokud někdo zjistí, jak se tvoří ty dlouhá hesla, pak nebude pro něj problém nasadit brutalforce attack před jeho úžasný algoritmus a tím smrsknout problém jen na krátké heslo. Proto mi přijde navržené PBKDF2 lepší, protože tam bude proti útočníkovi stát čas a výpočetní výkon. Útočník si tak může vybrat, jestli se mu vyplatí louskat původní heslo, nebo jeho derivovanou podobu. V obou případech to bude mít náročné.