Prolomeni hesla – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prolomeni hesla – Java – Fórum – Programujte.comProlomeni hesla – Java – Fórum – Programujte.com

 

Vavat90
Newbie
3. 11. 2010   #1
-
0
-

Ve skole jsme dostali za ukol dostat se do fiktivniho trezoru, ktery ja na me jmeno. Heslo je 9 mistny a je slozeno jen z velkych a malych pismen. Me by jen zajimalo jestli jde to heslo zjistit rychleji nez to tam pomoci programu zkouset hrubou silou.

Piste mi prosim jen navrhy, nechci abyste za me psali muj ukol. :)

Nahlásit jako SPAM
IP: 147.32.92.–
Quiark0
Věrný člen
3. 11. 2010   #2
-
0
-

Můžeš na ten trezor zkusit kouzelné slovíčko nebo ho rozmlátit a heslo si z něj přečíst :)

Teď vážně. Jakým způsobem můžeš s tím trezorem interagovat? Pokud jediná možnost je vložit heslo a dozvědět se, jestli se otevřel, pak samozřejmě nejde nic jiného než zkoušet všechny možnosti (anebo heslo dostat z učitele).

Nahlásit jako SPAM
IP: 89.103.133.–
Vavat90
Newbie
3. 11. 2010   #3
-
0
-

To Quiark : Bohuzel s tim trezorem nic nemuzu udelat. Fakt jenom pokazde zkusit .open(klic) a doufat ze spadne true.
Ty jo nechce se mi nechat spustenej PC 3 dny jen abych udelal ten domaci ukol :D

Nahlásit jako SPAM
IP: 147.32.92.–
Vavat90
Newbie
3. 11. 2010   #4
-
0
-

Napadlo me udelat metodu, ktera bude hezky menit vsechny pozice vsemi pismeny, ale ten cyklus z 9 cyklu je strasnej a trva to dlouho mno. :( co asi nadelam

Nahlásit jako SPAM
IP: 147.32.92.–
KIIV
~ Moderátor
+43
God of flame
3. 11. 2010   #5
-
0
-

jen teoretickej dotaz... mas fyzicky k dispozici zkompilovanej "trezor"? trocha reverse engineeringu a vylames heslo jak nic

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Dan3czek
~ Anonymní uživatel
12 příspěvků
3. 11. 2010   #6
-
0
-

S úkolem jsem také obeznámen a i přes největší optimalizaci, které jsem byl schopen dosáhnout by zpracování všech kombinací klíče trvalo 4,5 roku. Trochu to ve mě budí podezření, že musí být jiný cesta než brute force útok :-)

Nahlásit jako SPAM
IP: 89.176.17.–
petr.satka0
Newbie
3. 11. 2010   #7
-
0
-

Začíná mě to zajímat. Bylo by možné sem dát kompletní zadání se vším všudy? Rád bych se na to podíval. (To neznamená, že tady pak chci zveřejnit kompletní řešení. Jsem jen zvědavý)

Nahlásit jako SPAM
IP: 217.112.175.–
Dan3czek
~ Anonymní uživatel
12 příspěvků
3. 11. 2010   #8
-
0
-

Máme trezor, který lze otevřít devítimístným heslem, které se skládá z malých a velkých písmen abecedy. Pokud trezoru předáme špatný klíč, odpoví false, jinak odpoví true.

Nahlásit jako SPAM
IP: 89.176.17.–
petr.satka0
Newbie
3. 11. 2010   #9
-
0
-

A ten trezor je v jaké podobě? Dotazuješ se serveru na netu, nebo je to metoda z nějaké knihovny?

Nahlásit jako SPAM
IP: 217.112.175.–
Vavat90
Newbie
3. 11. 2010   #10
-
0
-

To petr.satka : Ten trezor co mam otevrit mam stazeny a pridany mezi knihovnami v projektu. Hele ja vam klidne pak to sem soupnu, ale az po 20.11.2010. To mam deadline na prolomeni :D Aby nahodou muj profesor na to tady nenarazil a pak bych byl trochu v riti.

Nahlásit jako SPAM
IP: 147.32.92.–
KIIV
~ Moderátor
+43
God of flame
3. 11. 2010   #11
-
0
-

To Vavat9 : kdyz mas stazenej tak je rychlejsi to hacknout..
dekompilovat javu a precist si heslo

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Dan3czek
~ Anonymní uživatel
12 příspěvků
3. 11. 2010   #12
-
0
-

To KIIV : možnost to samozřejmě je, ale není moc pravděpodobné, že to bude "ten správný přístup".

Nahlásit jako SPAM
IP: 89.176.17.–
SeraphCZ0
Stálý člen
3. 11. 2010   #13
-
0
-

Hele já myslím že bruteforce taky nebude správnej přístup protože na mém procesoru by to trvalo zhruba 8 let (2,2GHz, java, algoritmus vytvořený pouze ad hoc nedodržující ani zásadu obecnosti algoritmu)Podle mě i kdyby jsi to přetáhl přes CUDA (a měl nějakou QudroSLI sestavu samé Geforce480) tak by jsi se pod půl roku nedostal (jen spekuluji). Pokud ovšem nemáte ve škole superpočítač... :D

Nahlásit jako SPAM
IP: 83.208.186.–
petr.satka0
Newbie
3. 11. 2010   #14
-
0
-

Tak jsem se hluboce zamyslel a napadla mě jedna metoda. Pokud open(klic) funguje podobně, nebo stejně jako String.equals() (což se dá předpokládat), tak by se dalo heslo odhalit celkem snadno. Nejdřív rozeberu jak pracuje String.equals().

String.equals() - Po zavolání proběhne nějaký konstantní počet porovnání (délka, hash objektu, null...) a pak se začnou porovnávat řetězce znak po znaku. Nejdřív první znak, pak druhý... jakmile se najde rozdíl, vrací se false.

Jak toho využít?

Pokud se řetězce liší v prvním znaku, provede se n porovnání, pokud ve druhém, musí se provést n+1, ve třetím n+2... Více porovnání zabere více času.

Pokud tedy budeme měnit první znak hesla a kontrolovat dobu potřebnou pro kontrolu hesla, můžeme podle doby odezvy zjistit, zda jsme uhodli první znak. Jakmile uhodneme první znak, jdeme na další. Vyhodnocování je samozřejmě strašně rychlé, proto je třeba provést více vyhodnocení se stejným řetězcem a eliminovat co nejvíce vnějších vlivů (ostatní aplikace, řízení spotřeby procesoru...).

Zkoušel jsem to na tomto kousku kódu a zdá se, že by to mohlo fungovat.

Kód jsem odstranil. Uvědomil jsem si, že tazatel nechtěl abychom mu psali úkol. Byla to až moc velká nápověda. 

Tajné heslo je HAAAAAAAA, já hledám první písmeno hesla xBBBBBBBB. Jakmile bude x=H, musí se provést o jedno porovnání (krát počet testů) navíc a to se projeví v rozdílu v časech.



TESTOVANÉHESLO:CELKOVÝČAS (ns)
run:
ABBBBBBBB:3711976522
BBBBBBBBB:3796328304
CBBBBBBBB:3665792719
DBBBBBBBB:3619251888
EBBBBBBBB:3638235307
FBBBBBBBB:3668465965
GBBBBBBBB:3633702887
HBBBBBBBB:4946703841 //Delší čas
IBBBBBBBB:3606229563
JBBBBBBBB:3621930999
KBBBBBBBB:3644098622
LBBBBBBBB:3614445691
MBBBBBBBB:3610919265
NBBBBBBBB:3619050186
OBBBBBBBB:3642345605
PBBBBBBBB:3612770617
QBBBBBBBB:3652674293
RBBBBBBBB:3616460192
SBBBBBBBB:3652207194
TBBBBBBBB:3630947229
UBBBBBBBB:3614244268
VBBBBBBBB:3620968308
WBBBBBBBB:3645710837
XBBBBBBBB:3613180446
YBBBBBBBB:3615456434
ZBBBBBBBB:3613444726
BUILD SUCCESSFUL (total time: 1 minute 36 seconds)

Za necelé dvě minuty jsem na Pentiu M získal první písmeno hesla. Vaše heslo může obsahovat ještě malá písmena, takže by to trvalo dvakrát déle, ale pořád je to fofr. Pro zmatení nepřítele může open(klic) porovnávat řetězce obráceně, nebo může vkládat náhodnou prodlevu, ale za pokus to stojí.

Nahlásit jako SPAM
IP: 217.112.175.–
Dan3czek
~ Anonymní uživatel
12 příspěvků
5. 11. 2010   #15
-
0
-

To petr.satka : nápad to je velmi dobrý, bohužel nelze použít na náš trezor. Po dekompilaci trezoru jsem zjistil, že heslo je ověřováno metodou, která tento postup znemožňuje. Nejprve jsou všechny znaky předané trezoru převedeny na čísla, která jsou přičtena k proměnné a teprve poté se porovnává, zda má daná proměnná správnou hodnotu. Zpracování každého klíče trvá tedy zhruba stejně dlouhou dobu.

Pozn.: své heslo sice již znám, ale jak jsem říkal výše - dekompilace nebude ta správná cesta.

Nahlásit jako SPAM
IP: 89.176.17.–
KIIV
~ Moderátor
+43
God of flame
5. 11. 2010   #16
-
0
-

a uz si teda zkousel, kolik zvladnes testu za 1s ?
pokud to nevytezuje 100% procesoru tak muzes pouzit i vic vlaken..

nebo sem hod ten kod jak se to vypocitava..

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Dan3czek
~ Anonymní uživatel
12 příspěvků
5. 11. 2010   #17
-
0
-

To KIIV : se svými momentálními znalostmi (Javu máme od začátku semestru) jsem "vyladil" kód takovým způsobem, že otestování všech kombinací klíče by mi zabralo ~4,5 roku při 100% zatížení CPU.

Nahlásit jako SPAM
IP: 89.176.17.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 42 hostů

Podobná vlákna

Prolomení hesla java — založil LLiky

Prolomení instalačního kódu — založil spider-x

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý