Autor | Zpráva | ||
---|---|---|---|
l564 Profil |
#1 · Zasláno: 26. 4. 2011, 22:50:07 · Upravil/a: l564
Zdravím tak dnes jsem dodělal šifrovací algoritmus pro můj redakční systém.
Šifrovací algoritmus je 6 fázový. 1 fáze) Zrušení diakritiky 2 fáze) Zašifrování hesla bez diakritiky 3 fáze) Zašifrování hesla z 1-ní fáze 4 fáze) Zašifrování hesla z 2-hé fáze 5 fáze) Převedení vše na malá písmenka 6 fáze) Odebrání mezer Celý algoritmus je k vyzkoušení zde. V tom redakčním systému by to mělo ty šifry porovnávat. A můj dotaz je : Myslíte že tato šifra je neprolomitelná jako dřív bývala MD5 či SHA1? Doplnění: Zdrojový kód zatím nemohu sem přiložit protože je laděn. Kdyby jste našli nějaký BUGy tak napište sem. |
||
panther Profil |
#2 · Zasláno: 26. 4. 2011, 22:52:54
l564:
šifra je obousměrná, hesla se hashují. Příklad tvé „šifry“ „a“ -> „m“ „aa“ -> „mm“ „aaa“ -> „mm>m“ Tím pro mě test skončil. |
||
shaggy Profil |
#3 · Zasláno: 26. 4. 2011, 22:55:10
l564:
Išiel som napísať niečo v tom duchu ako panther. Preto sa len opýtam - v čom by mala byť tá tvoja "šifra" lepšia ako napríklad sha1 (ktoré ak prelomíš, tak si fakt dobrý)? |
||
yFang Profil |
#4 · Zasláno: 26. 4. 2011, 22:55:46
l564:
Tam jenom prohazuješ znaky? Např. d → h → 2 → d „Myslíte že tato šifra je neprolomitelná jako dřív bývala MD5 či SHA1?“ Ne. |
||
l564 Profil |
#5 · Zasláno: 27. 4. 2011, 06:44:00
|
||
Stano Profil * |
#6 · Zasláno: 27. 4. 2011, 08:27:42
Nepočul som o tom že by md5 alebo sha1 niekto prelomil. To že niekde beží mašina ktorá generuje postupne všetky kombinácie a-zA-Z0-9 nepovažujem za prelomenie. Tomu by si zabránil len tak že by si nedovolil šifrovať tvojim algoritmom.
|
||
Louka Profil |
#7 · Zasláno: 27. 4. 2011, 09:00:06
l564:
Tomu se říká rainbow tables. Mimojiné jsem slyšel, že generování tohoto je ilegální. (zkusím dohledat zdroj) Hashovací fce, kterými bezpochyby md5 i sha1 jsou se vyznačují jednosměrností - prolomení je v podstatě nemožné, protože může existovat více čistopisů, které mají identický otisk - jak to chceš dešifrovat ;)? Tvá fce je bohužel poměrně krátkozraká (viz pantherův test) a s využitím pro ukládání hesel bych rozhodně počkal. |
||
sajgon Profil * |
#8 · Zasláno: 27. 4. 2011, 11:20:30
Myslím, že vymýšlet vymyšlené je zbytečné. Stávající funkce k hashování jsou určitě lepším řešením, než tvůj algoritmus.
Pakliže se bojíš prolomení, o kterém mluví Louka, tak ještě to hesla něco přisol, jak o tom pěkně píše např. Jakub Vrána na svém webu. |
||
Bubák Profil |
#9 · Zasláno: 27. 4. 2011, 13:18:17
Louka:
„Mimojiné jsem slyšel, že generování tohoto je ilegální.“ Možná v některých státech, u ČR naštěstí ne. l564: I kdybys použil kvalitní šifru nebo hash, tak je bezpečnostní riziko, pokud stejné heslo různých uživatelů dá týž výstup. To, co jsi předvedl, je hračka: 11aa11 > eemmee Takže z "a" je vždy "m", oddobně ostatní znaky. |
||
__construct Profil |
#10 · Zasláno: 27. 4. 2011, 14:08:21
l564:
Čo je to prosím Ťa podľa Teba „algometer“? Predtým ako sa pustíš do vynalizania nejakej „super-neprelomiteľnej šifry“ tak sa nauč aspoň základy - ten Tvoj tester je náchylný na XSS. |
||
Chro Profil |
#11 · Zasláno: 27. 4. 2011, 14:18:22
<§#¥¿> zašifruje do <§#¥¿>
Něco je špatně. |
||
DoubleThink Profil * |
#12 · Zasláno: 27. 4. 2011, 14:24:42 · Upravil/a: DoubleThink
l564:
Nastuduj si základy kryptografie, pak něco zkoušej. Tvoje "šifra" je k smíchu. Louka: „prolomení je v podstatě nemožné, protože může existovat více čistopisů, které mají identický otisk - jak to chceš dešifrovat“ Nalezením (jiného) kolizního vstupu. Toho se právě týká zranitelnost MD5, že údajně jde rychle nalézt kolizní vstup. Tento problém (nejen u MD5) lze vyřešit tak, že se přidá salt, který zároveň znemožňuje použít rainbow table. |
||
Louka Profil |
#13 · Zasláno: 27. 4. 2011, 15:21:09
DoubleThink:
Ano, kolizní vstup. Já to myslel jinak: nelze dešifrovat, protože pro jeden otisk nalezneš vícero vstupů a nevíš, který je správný. Tento problém se netýká ověření hesla, protože tam jde jen o otisk, chtěl jsem tím říct, že neexistuje reverzní funkce, která by vrátila původně zadaný řetězec (s jistotou). |
||
Joker Profil |
#14 · Zasláno: 27. 4. 2011, 15:47:01
l564:
Viz předřečníci ohledně rozdílu mezi hashem a šifrou. Tohle ovšem není ani jedno. - Hash to není. Jelikož každý znak se překóduje pokaždé na tentýž jiný znak, je celkem triviální podle „otisku“ získat kolizní řetězec, jde to i z hlavy. - Nebýt těch kroků 1, 2 a 6, byla by to primitivní šifra- monoalfabetická substituce (viz také Caesarova šifra). Ale takhle to nejde stoprocentně dešifrovat, tj. získat stejný text jako byl na vstupu Poznámka: To je docela… řekněme „odvážné“ předpokládat, že když algoritmy jako MD5 nebo SHA1 jsou výsledkem několika let práce špičkových kryptografů, zvládne to samé začátečník který danou problematiku viděl sotva z rychlíku (bez urážky) za pár hodin. Vykašlal bych se na tvorbu vlastního hashovacího algoritmu a použil ty co jsou vyzkoušené. Nemyslím si, že někdo kdo není odborník na kryptografii by měl nějakou šanci navrhnout fungující hashovací algoritmus. |
||
Stano Profil * |
#15 · Zasláno: 27. 4. 2011, 16:13:07
ja by som jedno riešenie mal:
generoval by som napríklad 50 náhodných znakov a do nich by som zamiešal na rôzne pozície dákym spôsobom zašifrované heslo. tak by som mal trebárs "ahoj" -> [5nahodnych_znakov]b[5nahodnych_znakov]i[5nahodnych_znakov]p[5nahodnych_znakov]k[5nahodnych_znakov] povolené vstupné hodnoty by boli len písmená a tu šifru by som použil trocha inteligentnejšiu a potom by už stačilo to len nikomu neukázať a nedovoliť sa stým moc hrať. chech. Ale v každom prípade by to bola zbytočná práca, ktorá okrem pobavenia nemá zmysel. |
||
Medvídek Profil |
#16 · Zasláno: 27. 4. 2011, 16:23:08
Stano:
Pokud nevěřís samotný md5, tak už je lepší něco jako: $hash=substr(md5($heslo."Y5T96@<>k!20"),6,28); |
||
Stano Profil * |
#17 · Zasláno: 27. 4. 2011, 16:31:44
Medvídek:
Ja md5 verím išlo čisto len o pobavenie sa vymyslením dačoho čo by sa nedalo spätne rozlúštiť v priebehu pár minút. Tamto by sa malo používať bežne. rainbow tables by nemali zmysel potom. |
||
Joker Profil |
#18 · Zasláno: 27. 4. 2011, 16:44:37
Stano:
„potom by už stačilo to len nikomu neukázať a nedovoliť sa stým moc hrať.“ Tenhle koncept taky není nic nového, říká se tomu security by (through) obscurity (= bezpečnost skrze utajení) Jen tak pro zajímavost, ten navržený koncept by se dal poměrně snadno prolomit i když se nedostanu ke zdrojáku; Stačí si vygenerovat 2x hash téhož řetězce- nebude stejný a přesto oba otisky budou fungovat. Čili části otisku nezávisejí jen na vstupním řetězci. Vezmu pozice co jsou v těch otiscích různé, zkusím je sám změnit a zjistím, že části otisku jsou jen nedůležitá vata. Po pár pokusech mám odfiltrovanou vatu od částí na kterých opravdu záleží. |
||
Timy Profil |
#19 · Zasláno: 27. 4. 2011, 17:06:07
Louka:
„Hashovací fce, kterými bezpochyby md5 i sha1 jsou se vyznačují jednosměrností - prolomení je v podstatě nemožné, protože může existovat více čistopisů, které mají identický otisk - jak to chceš dešifrovat ;)?“ To, že existuje více vstupů, které mají stejný výstup, mi nemusí zaručovat bezpečnost. Pokud jsem teoreticky schopný vygenerovat všechny vstupy, které mají požadovaný výstup, pak se stačí omezit na nějakou vhodnou množinu vstupů. Takže pokud by šlo o hashovaná hesla, tak se můžu omezit na ty vstupy, které jsou kratší než 20 znaků, například. Správnost hesla si pak můžu ověřit například někde na serveru tím, že se zkusím přihlásit. Bezpečnost je založena především na tom, že z hashe nejsem schopný vypočítat vůbec žádný původní vstup. |
||
Louka Profil |
#20 · Zasláno: 27. 4. 2011, 20:29:44
Timy:
Kdybys četl i další můj příspěvek, víš, že jsem se nezaobíral použitím pro hesla a přihlašování, ale pro šifrování - když uděláš MD5/SHA1 otisk, nikdy nedostaneš původní vstup, ale jen množinu možností = nevíš, co chtěl původce čistopisu říct. Reagoval jsem na rozdíl hash/šifra s tím, že hash se nedá použít jako šifra, jelikož je jednosměrný. To je celé. |
||
Timy Profil |
#21 · Zasláno: 27. 4. 2011, 20:45:47
Louka:
„když uděláš MD5/SHA1 otisk, nikdy nedostaneš původní vstup, ale jen množinu možností = nevíš, co chtěl původce čistopisu říct.“ A já s tímhle nesouhlasím, protože v některých případech, pokud vím, co zhruba má být čistopis, tak můžu z té množiny vybrat ideálního kandidáta, který s největší pravděpodobností bude tím tvým čistopisem. V některých speciálních případech si svůj výběr můžu i ověřit. Zkrátka to nikdy je tam příliš silné. |
||
Louka Profil |
#22 · Zasláno: 27. 4. 2011, 21:09:36
Timy:
„můžu z té množiny vybrat ideálního kandidáta, který s největší pravděpodobností bude“ To je pravda. Ale máš tam (správně) napsáno "s největší pravděpodobností" - ale nikdy nebudeš mít 100% jistotu, chceš-li se bavit o vhodnosti kvantifikátorů. „V některých speciálních případech si svůj výběr můžu i ověřit.“ A já znovu říkám, že se bavím o obecné rovině, ne o přihlašování. Oprosti se od ověřování: najdeš v lese kus papíru s hashem. Šlo mi jen o to říct, že se ta operace nedá vrátit :). Ale jinak máš pravdu, že za normálních okolností (pokud je vůbec snaha určit původní sdělení z otisku normální) jde a) tipnout, co tam mohlo být b) z množiny kandidátů určit správného zkoušením, pokud je možnost ověření. |
||
Timy Profil |
#23 · Zasláno: 27. 4. 2011, 21:13:44
Opravdu 100% jistota právě není potřeba, to bychom pak mohli říct, že posunovací šifra není prolomitelná, protože nikdy nejsme 100% schopni určit, který z těch 25 nesmyslných jednoho smysluplného textu uživatel původně poslal :-).
Ok, rozumíme si. |
||
Louka Profil |
#24 · Zasláno: 27. 4. 2011, 21:19:31
Timy:
:D jo máš pravdu, moc jsem slovíčkařil, až jsem to zeslovíčkařil... |
||
Spectator Profil |
#25 · Zasláno: 28. 4. 2011, 08:07:15 · Upravil/a: Spectator
Takhle jsem se dlouho nenasmál.....
abcdefghijklmnopqrstuvwxyz1234567890 mjdhze0231w86456qweroitjvked1zj3hm20 je tam pár duplicit, ale to je třeba dobře - to já nemůžu vědět =) |
||
snake.aas Profil |
#26 · Zasláno: 28. 4. 2011, 10:39:09 · Upravil/a: snake.aas
Pravidlo 23: Nevytvářejte vlastní kryptografické algoritmy, používejte existující (Sverre H. Huseby - Zranitelný kód, str.132)
|
||
impakt Profil * |
#27 · Zasláno: 28. 4. 2011, 12:27:47
Každopadne mi tym nasadil chrobaka aj tie vaše ostatne komentare. Myslim si že to nie je až také ťažke vytvorit šifrovaci algoritmus, stači len trochu numerologie a konverzie medzi číselnymi zakladmi napriklad a to je to prve čo ma napadlo, tzv. vystrel od pasa...
|
||
petr 6 Profil |
#28 · Zasláno: 28. 4. 2011, 13:53:33
impakt:
„stači len trochu numerologie“ Určitě jsi chtěl napsat numerologie? Nemyslíš spíš matematiku? |
||
nightfish_ Profil * |
#29 · Zasláno: 28. 4. 2011, 14:01:38
impakt:
„Myslim si že to nie je až také ťažke vytvorit šifrovaci algoritmus“ To je pochopitelně jednoduché. Složité je vytvořit jej tak, aby nikdo se znalostí (pouze) šifrovacího algoritmu nebyl schopen (v rozumném čase) zašifrovaný text převést na otevřený text bez znalosti šifrovacího klíče. |
||
DoubleThink Profil * |
#30 · Zasláno: 28. 4. 2011, 14:05:07
impakt:
„Myslim si že to nie je až také ťažke vytvorit šifrovaci algoritmus“ Radši nemysli. Ty nevymýšlíš šifru, jenom volíš algoritmy jednoduché symetrické substituce. Rozbít takovou šifru běžnou kryptoanalýzou je triviálně jednoduché. A je jedno, kolik kroků použiješ. |
||
Téma pokračuje na další straně.
|
0