.:G:. Posted November 25, 2003 Report Share Posted November 25, 2003 Tad jau tas ir apmēram tas pats, ko es uzrakstīju ieprikš. Link to comment Share on other sites More sharing options...
sviesc Posted November 25, 2003 Author Report Share Posted November 25, 2003 šo to interesantu atradu pats, vel jāpaķimperējas, bet tas vācu koderis nekodē pareizipat 2 symbolu kodu kurnu vel 6 :blink: Link to comment Share on other sites More sharing options...
.:G:. Posted November 27, 2003 Report Share Posted November 27, 2003 Man tāds jautājums par Login. Ja es uztaisu admina lapu ielogojos un paroli glabāju tajā php failā, kurā logojos iekšā nokodētu ar md5. Un pēc tam šo paroli, ja ievada pareizi, lapas iekšienē velku līdzi caur linkiem: <? if(isset($_POST["parole"])){ $p=md5(md5($_POST["parole"])); } if ($p!="d480752f581aebf6d4bdafbd1116db5e"){ header("Location: ... "); exit; } if ($p=='d480752f581aebf6d4bdafbd1116db5e'){ echo"<a href=\"login.php?id=1&p=$p>Lapa1</a> //login.php?id=2?p=d480752f581aebf6d4bdafbd1116db5e <br> <a href=\"login.php?id=2&p=$p\">Lapa2</a>"; //login.php?id=2?p=d480752f581aebf6d4bdafbd1116db5e .... } Cik tas ir droši un vai tas vispār ir nopietni šitā taisīt login lapu? Link to comment Share on other sites More sharing options...
Venom Posted November 29, 2003 Report Share Posted November 29, 2003 Nu tad par to manu md5 dekriptēšanas domu: Lieta vienkāršā - brute force ģenerēšana ir neizdevīga, jo katru reizi jāiziet no a līdz z visādas ciklu variācijas. OK ir progas, kas māk ģenerēt variācijas sākot no kaut kāda tur sākuma stringa. Mans variants ir noģenerēt visādu stringu kombinācijas un saglabāt tos datu bāzē - tālākā nākotnē to vairs nevajadzēs darīt - laiks būs ietaupīts. Principiāla atšķirība - brute force ģenerēt tieši ar pašas datu bāzes (es taisīju uz MySQL) palīdzību. Redz kā, ir tāda lieta ka Dekarta reizinājums, resp. ja no datu bāzes izvēlēties vienu un to pašu kolonnu divas reizes, tā izdos ārā visu šādu kolonnu salikumu veidus - resp. ļoti ātrs brute force vatriants. step 1: Taisām augšā vienu tabulu table1 ar visiem simboliem, kurus mums vajaga: char| ----- a b c ... A B ... - 1 ... step 2: Uztaisām table2 ar kolonnām char,char_1 (tā laikam MySQL sauca dublētas kolonnas),char2. SELECT DELAYED char,char, CONCAT(char,char) as `char2`INTO table2 FROM table1 Pēc tam nometam kolonnas char un char_1 no table2 (vieta jātaupa) un mums paliek tikai 2 simbolu kombinācijas iekš kolonnas char2 step 3: table3 ar char,char_1,char3 Tieši neatceros (mājas ir saglabāts), bet bija kaut kas līdzīgs: SELECT DELAYED table1.char,table1.char,table2.char2,CONCAT(table1.char,table2.char2) as `char3` INTO table3 vai arī SELECt DELAYED table1.char,table1.char,table1.char,CONCAT(table1.char,table1.char,table1.char) as `char3` INTO table3 - uztaisām augšā visas iespējamas 3 simbolu kombinācijas. Iztīram tabulu no nevajadzīgām kolonnām. Atkārtojam stepus līdz nepietiek diska vietas (man tabulas aizņēma kaut kas līdzīgi: 1simboliem - 158 bytes, 2simboliem ~250 Kb, 3 - ~27Mb, 4 ~127 Mb, 5 > 4Gb, attiecīgi ģenerācijas laiks 5-simbolu visām iespējamām kombinācijām ap 8 stundām [C600,192MbRam, 7200rpm HDD]) Pēc tam taisām vai nu SELECT * FROM table1 WERE MD5(`char1`)='md5hashs@#$%#@$@%#$%' SELECT * FROM table2 WERE MD5(`char2`)='md5hashs@#$%#@$@%#$%' vai arī uzreiz tabulās uztaisām jaunu kolonnu 'hash' un UPDATE DELAYED tableX SET `hash`=MD5(`charX`), kas prasīs __ļoti__ daudz vietas. (ja pareizi atceros char5 kombinācijas biuja pār 140 tūkst miljoniem [atkarīgs no izvēlēto charu skaita pašā sākumā]) Un SELECT * FROM tableX WHERE `hash`='nolaadeetaismd5hashs' BET, kad viss jau ir noģenerēts strādā __ļoti__ ātri ;) Ja ir _daudz_ RAMa var arī mēģināt taisīt kaut ko līdzīgu SELECT table1.char,table1.char,... CONCAT(table1.char,table1.char,...) as `searched` WHERE MD5(`searched`)='hashs' bet te atkal ir tā laika problēma. Link to comment Share on other sites More sharing options...
Klez Posted January 7, 2005 Report Share Posted January 7, 2005 bik te palasiiju... vispaar jau agraak bija doma kko izveidot... bet ja uztaisa $pass = md5(md5($_POST['pass'])); ko tad? manupraat nereaali atkodeet ..... Link to comment Share on other sites More sharing options...
hmnc Posted January 7, 2005 Report Share Posted January 7, 2005 smejies vai raudi es šodien nejauši arī iedomājos par md5(md5(pass)), bet galīgi ne pa tēmu :D bet nu jā. md5 nav uzlaužams - tikai ar bruteforce. tas ir vienvirziena kriptēšanas algoritms, kurš neparedz nekādu atpakaļceļu. domā, ka tikai Latvijā ir cilvēki, kuri grib lauzt md5? :D :D Link to comment Share on other sites More sharing options...
blackhalt Posted January 7, 2005 Report Share Posted January 7, 2005 Ir tāda maita :) vairāk par 9 simbolji neatkodēt LV apstākļos :/ Bet neteikšu :) use sha1 ! Link to comment Share on other sites More sharing options...
Klez Posted January 7, 2005 Report Share Posted January 7, 2005 manupraat ja ira md5(md5($_POST['pass'])) tad brute force arii neliidz ... Link to comment Share on other sites More sharing options...
Aleksejs Posted January 7, 2005 Report Share Posted January 7, 2005 Skatiet manu un Venom diskusiju, kas sākas te: http://php.lv/f/index.php?showtopic=1791&st=15 Link to comment Share on other sites More sharing options...
Gacha Posted January 8, 2005 Report Share Posted January 8, 2005 (edited) Mja, izskatās, ka Venomam galva shancē :) Tas variants varētu nostrādāt, jo atceros kaut kad sen bija vajadzība winzipus lauzt un tur bija proga uz shāda paša principa un lai atlaustu vaļā paroli lidz 20 simb, kur var but visi simboli man liekas ka bija kadas 17h, isti jau vairs neatceros, bet kaut kas tads bija. Bet ja tā padomā, tad pēc būtības taisi cik gribi tos md5(md5(md5($p))) sha vai tā to kaut kas uzlauzt jau varēs, bet tas būs laika jautājums. Ja nu kāds palaiž to visu caur kaut kādu superdatoru ar 20 dual xenon pročiem, vai taml.Tad viņam tās kombinācijas lauztos daudz ātrāk. Bet droši vien ja nu ļoti ļoti vajag kur tikt, tad droši vien lielākā daļā izvēlētos mazliet iebaidīt sysadminu, lai tas bez kādām sāpēm pasaka paroli :D Edited January 8, 2005 by Gacha Link to comment Share on other sites More sharing options...
Klez Posted January 8, 2005 Report Share Posted January 8, 2005 (edited) kas tad tas par sysadminu, ka baidaas .... uzmeikoja mazu parolju sagatavotaaju.... <? function parole($pass){ $p = base64_encode($pass); /* te veel papildus var pielikt klaat kaut kaadu savu stringu piem: $p .= "sReDD45PoInJK44"; */ $p = str_replace("==",'',$p); //lai mazaak aizdomu, ka tas ira base64_encode, jo tas baigaas pieliek 2 = ziimes return md5(sha1(md5(sha1(strtolower($p))))); } echo parole("manaParole"); ?> manupraat atkodeet nevar, jo base64_encode taisa lielos un mazos burtus... taalaak sha1 un md5 tiek padoti mazie burti, base64_decode ir svariiga lielo un mazo burtu seciiba. var jau buut ka var atkodeet, tachu tad vajag tieshaam jaudiigu PC .... Edited January 8, 2005 by Klez Link to comment Share on other sites More sharing options...
Smejmoon Posted January 8, 2005 Report Share Posted January 8, 2005 1) nevajag atkodēt, bet piemeklēt stringu, kas dod tādu pašu hašu. 2) vairākkādt izmantojot vienu un to pašu vai līdzīgu algoritmu drošība nevis palielinās, bet samazinās, tāpat, kā vairrākkārtīgi zipojot vienu failu tas pēc pirmās reizes kļūst tikai lielāks. 3) ja nu kādu tas interesē, tad jaunieši strādā pie md5 piemeklēšanas un šis tas ir izdevies. 4) ja nu kādu tas uztrauc, tad md5 ir tikai viens no sajaukšanas algoritmiem. :) 0) atkodēt nav iespējams. md5 vai sha-1 nav nekāda bijekcija. kas tad tas par sysadminu, ka baidaas .... uzmeikoja mazu parolju sagatavotaaju.... <? function parole($pass){ $p = base64_encode($pass); /* te veel papildus var pielikt klaat kaut kaadu savu stringu piem: $p .= "sReDD45PoInJK44"; */ $p = str_replace("==",'',$p); //lai mazaak aizdomu, ka tas ira base64_encode, jo tas baigaas pieliek 2 = ziimes return md5(sha1(md5(sha1(strtolower($p))))); } echo parole("manaParole"); ?> manupraat atkodeet nevar, jo base64_encode taisa lielos un mazos burtus... taalaak sha1 un md5 tiek padoti mazie burti, base64_decode ir svariiga lielo un mazo burtu seciiba. var jau buut ka var atkodeet, tachu tad vajag tieshaam jaudiigu PC .... 12605[/snapback] Link to comment Share on other sites More sharing options...
Klez Posted January 8, 2005 Report Share Posted January 8, 2005 1) nevajag atkodēt, bet piemeklēt stringu, kas dod tādu pašu hašu.2) vairākkādt izmantojot vienu un to pašu vai līdzīgu algoritmu drošība nevis palielinās, bet samazinās, tāpat, kā vairrākkārtīgi zipojot vienu failu tas pēc pirmās reizes kļūst tikai lielāks. 3) ja nu kādu tas interesē, tad jaunieši strādā pie md5 piemeklēšanas un šis tas ir izdevies. 4) ja nu kādu tas uztrauc, tad md5 ir tikai viens no sajaukšanas algoritmiem. :) 0) atkodēt nav iespējams. md5 vai sha-1 nav nekāda bijekcija. 12609[/snapback] luudzu tev md5 hash 30638617902a005109e5f4fb37857907 njem un atkodee. un lai tev vieglaak buutu, tad iru ir izmantoti tikai lielie un mazie burti. pavisam kopaa 11 simboli Link to comment Share on other sites More sharing options...
Aleksejs Posted January 8, 2005 Report Share Posted January 8, 2005 Atslēgas vārdi šīm darbībām: "key crunching" Vienkāršoti pieejot šai lietai, mēs varam izdarīt šādu pieņēmumu: Varam uzskatit katru hash funkcijas pielietošanas kārtu ekvivalentu ar vēlvienas atslēgas pārbaudi. Jo h(h(x)) izrēķināt aizņem tikpat ilgi kā izrēķināt h(x) un h(y). Tātad, ja mēs k reizes pēc kārtas pielietojam hash funkciju, tad atslēgu meklēšana arī palēninās k reizes. Tātad (ja mani aprēķini ir pareizi) atslēgas garums (atrašanas pēc pilnās pārlases nozīmē) palielinās par "logaritmu no k pie bāzes 2" bitiem. P.S. Biju vienreiz uzgājis vienkārši lielisku "whitepaper" tieši par šo tēmu, bet tagad vairs nevaru atrast. Tajā visas šīs lietas bija loti sīki izanalizētas daudzreiz profesionālākā līmenī. Link to comment Share on other sites More sharing options...
Klez Posted January 8, 2005 Report Share Posted January 8, 2005 bet ja cilveeks dabuu to DB un ja redz ka tas ira md5, 1) kaa tad vinsh var zinaat cik reizes jams ir gaajis caur md5 2) vinjam varbuut nav nemazaakas nojausmas, ka tas string ir izgaajis veel cari sha1 & base64 & veel haadam kashotaajam 3) vinjam nav ne jausmas ka parolei ir pielikti klaat veel kaut kaadi simboli 4) ja DB ieliek savu md5 hashu, tad datiem taa pat netiek klaat, jo hash ir ticis hashots un hashots 5) atkodeet jau var, bet tad vajag lieldatoru un laiku, shaubos vai kaadai laba kaads njems un crackos md5 hashus. 6) ja nu vieniigi tev vajadzees atkodeet kaada FIB aģenta hashu, ar ko vinsh logojas www.FIB.org 7) FIB noteikti ir pashiem savs algoritms :) Link to comment Share on other sites More sharing options...
Recommended Posts