YouTube nezná vaše hesloTom Scott

Thumbnail play icon
Přidat do sledovaných sérií 5
96 %
Tvoje hodnocení
Počet hodnocení:1 074
Počet zobrazení:12 767

YouTube ani jiné stránky neznají vaše heslo. Jak tedy mohou vědět, jestli jste ho zadali správně?

Přepis titulků

YouTube nezná vaše heslo. Ani Facebook, Twitter ani jakákoliv slušná webová stránka. Vaše heslo opravdu není uloženo v jejich databázi. Je to tak bezpečnější. Hacker ani nepoctivý zaměstnanec vaše heslo nezjistí. Ale jak můžou vědět, že jste zadali správné heslo? Existují matematické operace, které jsou jedním směrem velmi snadné, ale opačným směrem velmi složité.

Násobení dvou prvočísel je snadné. 17 krát 11 je 187. Jednoduše můžete 17 vynásobit 10 a přičíst ještě jednou to číslo. Protože jsou to prvočísla, jsou to jediná dvě čísla, jejichž násobením získáte 187. Zkusme se na to zeptat opačně. Násobením jakých dvou prvočísel vznikne dvojité prvočíslo, třeba 299?

Nemůže to být dva krát něco, protože to nekončí sudým číslem. Nemůže to být tři krát něco, protože součet číslic není dělitelný třemi. Nemůže to být pět krát něco, protože to nekončí pětkou nebo nulou. Může to být sedm? Nevím, musím na to jít delším způsobem. Může to být spousta čísel. Existuje pár triků, které mohou počítače nebo dobří matematici použít, aby to urychlili, ale obecně pro velká čísla neexistuje efektivní způsob obráceného výpočtu.

Je to matematika, která se jedním směrem dělá snadno, ale opačným ne. Pro vás je heslo řetězcem písmen, symbolů nebo čísel. Ale pro počítač je to stejné jako vše ostatní. Binární řetězec. Jedničky a nuly. S těmito jedničkami a nulami dokáže počítač pracovat. Ne vždy jsou to prvočísla, i když někdy ano.

Tento proces se nazývá hašování. Používá se i funkce nazvaná sůl, ale to je složitější. Avšak výsledkem je, že při registraci napíšete své heslo, třeba abc, projde to zpracováním a získáte náhodný řetězec znaků. Ten uchovávají v databázi. Když při přihlašování znovu napíšete své heslo, projde opět stejnou jednosměrnou matematickou operací.

Pokud se výsledný haš shoduje s tím v databázi, vědí, že jste zadali správné heslo, ačkoliv nevědí, co přesně jste zadali. Pokud to mají správně ošetřené, nedokážete převést haš zpět na heslo, pokud nemáte k dispozici staletí výpočetního času nebo miliardy dolarů. To proto vám Google, Facebook, Yahoo a další stránky nezašlou zapomenuté heslo e-mailem.

Požádají vás o nové. Nemůžou vám ho poslat, protože ho neznají. Když najdete nějakou stránku, která vám zašle zapomenuté heslo e-mailem, utíkejte, protože kašlou na bezpečnost. Pokud vás to zaujalo, na Computerphile jsem natočil pár delších videí o hašování a bezpečnosti. A pokud ne...

Kaskadérský kousek zde předvedou trénovaní řidiči. Doma to nezkoušejte! Překlad: Mithril www.videacesky.cz

Komentáře (63)

Zrušit a napsat nový komentář

Odpovědět

Super chci víc podobných.

402

Odpovědět

Asi to tolik lidí neví, ale to, co říkal, už vím hodně, opravdu hodně dávno.. Já jsem zkoušel databáze už dávno a tudíž vím, že je to tzv. zahashované, většinou se hesla získávají tzv. phishingem nebo ještě lépe - prostě to stačí zkusit náhodně.. Plno lidí má jednoduchá hesla. Tohle video je trošku pro mne.. Takové - není to ono, ale i tak dobré video.

669

Odpovědět

Jsme rádi, že ses tak krásně vychválil.

645

Odpovědět

+fisikJá se ale nevychvaloval, ach. Špatně se to pochopilo, nebo jsem to špatně napsal spíše. Omlouvám se.

59

Odpovědět

Phishing rozhodně není nejčastější typ útoku na databázové systémy. Tou je nepochybně Brute Force Attack jak dále uvádíš, ale ten zase není vůbec efektivní. Zaprvé trvá dlouho a zadruhé tě po pár pokusech na většině seriózních serverů odstřihnou.

181

Odpovědět

Info z tohoto videa sice znám, ale má i jiné zajímavé videa, třeba tohle :)

https://www.youtube.com/watch?v=wCQSIub_g7M

31

Odpovědět

Koho reálně zajímá zda je heslo uloženo v databázi poskytovatele služby zahashované či nikoliv? Proč stejně většina lidí používá pro přístup ke všem svým službám stejné heslo? Myslím že přínosnější než bulikovat lidem že jejich heslo facebook nezná je jim spíš vysvětlit že by měli používat pro každou jinou službu i jiné heslo. Je to téměř absurdní představa že? Je to ale jediný způsob jak si chránit jiné své účty a přitom se nespoléhat na všechny provozovatele služeb. A vlastně ten chlap si sám protiřečí. Na začátku řekne NE, tyhle služby neznají Vaše heslo a na konci videa lidi varuje před službami které jim zašlou zapomenuté heslo. Přitom samotné hashování se většinou provádí na straně serveru od chvíle co sem heslo dorazí v čisté podobě.Tak jaký že NEZNAJ!? Tím nechci říct, že webové služby vždy znají vašeho heslo. Ani tím nechci říct, že hashování hesel se nepoužívá. Záleží vždy na důvěryhodnosti dané služby. Tu mi však nebude podsouvat nějakej mediální pablb co v úvodu videa udělá reklamu službám, které se tak důsledně starají o mé zabezpečení účtu.

549

Odpovědět

A proto nejjednodušší a nejefektivnější cesta jak získat heslo je lidská blbost. Falešné emaily, osobní detaily o cílové osobě atd. Kde jsou časy kdy kdosi přišel na to že lízátko, co bylo zároveň píšťalka má stejnou frekvenci jako telefonní budka a díky tomu šlo volat zadarmo kamkoliv :)

191

Odpovědět

Huh? A to fungovalo ako, prosím ťa?

53

Odpovědět

+GranisV době analogu stačilo zapískat do sluchátka a poslal jsi tím signál o určité frekvenci. Asi jako by ses dneska napíchl na digitální linku a posílal tam svoje packety. No a když jsi dokázal zapískat ten správný tón, na druhém konci drátu nebylo jak poznat, jestli ten signál poslala opravdu ta budka...

171

Odpovědět

K videu: Zajímavé a určitě velmi poučné. K překladu: Nechci aby to vypadalo jako, že jsem nevděčný parchant, ale myslím si, že přeci jen jsou slova (především názvy), které by se asi doslovně překládat neměli. Kupříkladu slovo Hash, které je ve videu přeloženo jako "haš" mi bije do očí. Facebook taky nepřekládáte v titulcích jako "Fejsbůk" a navíc, jestli na video kouká člověk s nulovou znalostí Angličtiny, pak je pro něj slovo Haš spíše matoucí, kdyby si chtěl pojem později "vygůglit", tak pod pojmem haš najde stránky chorvatské autoškoly, nikoli zmíněný topic.

703

Odpovědět

Pro vytvoření tohoto komentáře byly použity dvě encyklopedie, pravidla českého pravopisu a vyhledávač Google.

(zdroje)

819

Odpovědět

Haš není matoucí :-) Haš je legrační, if you know what i mean -.-

473

Odpovědět

Na škole sme bežne používali výraz hašovacie funkcie.. Podľa mňa je to správne.

29

Odpovědět

Někteří se ptali ohledně prolomení těchto hashů. Ano Existuje hned několik "způsobů" jak "prolomit" ochranu. První a nejméně efektivní je Bruteforce - jedná se o násilné vnikání kdy se jedná čistě kombinatoriku znaků. Tahle metoda má pár optimalizací aby nebyla tak neefektivní - Slovníky. tyto slovníky obsahují předem nadefinované výrazy ( jako třeba "1234" "ahoj" "heslo123" atp) proto je lepší mít heslo originální, se kterým jste můžete být jistí, že nebude v těchto slovnících.

Další neefektivní metoda je slovníková databáze. funguje na podobném principu (taky se víc přibližuje k tomuto tématu). Jedná se o obrovskou indexovanou databázi ve které jsou uložené dvojice: "řetezec(heslo)" >> "hash". Pokud stránka používá sůl je tahle metoda naprosto nulově efektivní.

V prvé řadě musí útočník znát proces hashování. Typů těchto hashů je spousta a ano mají i svůj reverzní algoritmus. akorát je tak náročný ho najít že to nějakou dobu trvá. poslední hashovací funkce co byla prolomena a ještě před pár lety se používala je MD5. jakmile někdo objevil reverzní algoritmus všichni slušní programátoři co používali čistě hash bez soli museli změnit onu hashovací funkci.

Nicméně! tyto funkce se dají kombinovat, opakovat, solit, a tak pořád dokola. Pokud v takovém případě někdo odcizí hashe nemáte se téměř čeho bát, dokud útočník nezjistí i proces hashování. Poté přichází na řadu bruteforce a slovníky :)

Je možné že jsem něco ve spěchu opomněl, předem se za nedostatky omlouvám :)

174

Odpovědět

BFU 4 BFU... :-D

15

Odpovědět

Díval ses na to video? Né nadarmo tam zmiňoval ty prvočísla....neexistuje software který dokáže určit, zda li je číslo prvočíslo (myslím tím hodně velké číslo)...

Ná základě prvočísel fungují téměř všechny krypotvací programy, hashovací znaky a bůh ví co ještě...Jestli vymyslíš alogritmus na zjištění, že číslo 95545445876596561233235887 je provčíslo, budeš miliardář...

012

Odpovědět

+Creatives90Vypadá to tak, že skôr ty si sa nedíval na to video, aspoň nie dôkladne. :D On hovoril o faktorizácií čísel. K tomuto problému zatiaľ neexistuje efektívny algoritmus, tj. algoritmus, ktorý by dal spolahlivú odpoveď v čase polynomiálne ohraničenom vzhľadom k veľkosti vstupu. K problému prvočíselnosti, ktorý si ty spomínal, však existuje viacero polynomiálnych deterministických algoritmov. Najrýchlejší známy má časovú zložitosť O(log(n)^6), viď. http://en.wikipedia.org/wiki/Primality_test

Takže
nie, nebudeš miliardár ak niečo také vymyslíš. :)

91

Odpovědět

+Creatives90K faktorizaci existuje algoritmus běžící v polynominálním čase...Shroův faktorizační algoritmus, problém je, že potřebuje kvantový počítač..

00

Odpovědět

JE otázka nakolik byl tenhle komentář potřeba. Zbytečně složité vysvětlování. K bezpečnosti: největší slabinou hashe stejně vždycky zůstane kolize proti které přehashování, solení atd. v podstatě nepomůže.
Z toho důvodu je mnohem zajímavějším použitím hashe ověření pravosti což je škoda, že nebylo ve videu zmíněno. Jakoukoliv zprávu stačí zahashovat. Máme řetězec o omezené délce a stačí ho příjemci zprávy poslat jiným kanálem. Příjemce pak snadno zahashováním přijaté zprávy a ověřením oproti přijatému zjistí zda dostal stejnou zprávu která byla odeslána nebo ne.

12

Odpovědět

2:00 určitě ne náhodně
a netrvalo by to staletí, ale buď pár hodin stahováním rainbow tabulek (kde je seznam "heslo" -> "hash"), nebo pokud znám hash funkci, tak stylem pokus/omyl taky ne moc dlouho...(ale v 99% případů najdu změť nezobrazitelných znaků, a taky třeba háčky a čárky , které nemůžu zadat do anglického webu)
...a přijde mi že na začátku mluví o počátcích asymetrického šifrování a pak do toho natvrdo hodí hashovací funkce s tím že je to to samé....

017

Odpovědět

Pokud člověk používá kombinaci speciálních znaků, čísel, malých/velkých písmen, tak ti budou nějaké tabulky, případně weby typu - http://www.md5decrypt.org/, úplně k prdu ;-)

Jinak jedna věc je hesla zahashovat v db webu, ale taky v PC, kde se donedávna hesla ukládala téměř nezašifrovaná (např. když si dáte v Chromu volbu "pamatovat si heslo") :-)

30

Odpovědět

No, a pak se stane, že i tak velké firmě jako Adobe ukradnou hesla 150 milionů uživatelů. I když tam v plaintextu měli "jen" nápovědy pro heslo a samotná hesla byla zašifrovaná, ale špatně. Viz http://xkcd.com/1286/ :D

151

Odpovědět

Takže chápu to dobře, že kdyby někdo přišel na to, jak obrátit ten proces násobení prvočísel (což je mi jasný, že nebude hned), tak by tenhle systém dokázal prolomit?

25

Odpovědět

to je len na ukazku. to sifrovanie funguje uplne inac - teda dufam :D

141

Odpovědět

víceméně ano, ale efektivní faktorizace (proces rozkladu na menší činitele) zatím není možná v reálném čase, doposud nejefektivnější metoda se nazývá Shorův algoritmus, ale ta rovněž není schopna v "lidském čase" toto provést (používaá se např. v RSA šifře), ale zde se spíše baví o jednocestné hašovací funkci (MD5, SHA-1, apod.), která podléhá úplně jiným pravidlům

200

Odpovědět

Nedokázal. Hash je jednosměrná funkce. Ale prolomil by tím asymetrické šifrování na jehož bezpečnosti stojí například platební karty apod. Takže by to byl průser mnohem větší

60

Odpovědět

:D :D rly

14

Odpovědět

I watched the full video because he's hot

1252

Odpovědět

Nemůže potom čistě teoreticky dojít k tomu, že dva rozdílné řetezce vygenerují stejný řetězec? Asi záleží na složitosti hashovací operace..kdyby to bylo jen násobení, tak ta šance je celkem reálná

171

Odpovědět

Ano, čistě teoreticky k tomu dojít může. Ovšem, algoritmy jsou stavěny tak, že když se dva řetězce liší například v jednom znaku ("auto" a "Auto"), tak jejich hash řetězce jsou výrazně odlišné.

270

Odpovědět

S tím souvisí to "solení" o kterém mluvil. Pokud se použije chytře tak se sníží pravděpodobnost kolize (shody) hashe dvou různých řetězců.

58

Odpovědět

Nestačí ale pak jen znát algoritmus který ta stránka používá k převádění hesla na znaky?

219

Odpovědět

I kdybys ten algoritmus znal, tak jsou jednosměrné. Jediná šance by bylo vygenerování obřího slovníku, a pokud má někdo heslo h3sl1cZq0, tak by ti to mohlo trvat hooodně dlouho. Nemluvě o speciálních znacích, diakritice,...

240

Odpovědět

+BaconPravda, to už by asi bylo jednodušší zkoušet hádat rovnou to heslo...

160

Odpovědět

+BaconJeště není vyloučena možnost použít rychlý reverzní algoritmus, jenže nikdo ho zatím neobjevil, ale také nikdo nevyvrátil jeho existenci. Jestli máte zájem o Turingovu cenu nebo Fieldsovu medaili, odpověď na tuhle otázku vám ji asi zaručí.

211

Odpovědět

+BaconNo pro použití rainbow talbes jak se těm slovníkům říká je jedno jestli je heslo heslo nebo ashgf6as+d5h4+8 - složitější hesla v podstatě chrání jen před okoukáním hesla, počítači to je jedno.
Jinak zpětně to z principu nejde - jelikož hashovací funkce převede libovolný řetězec na řetězec stejné délky tak nutně musí docházet k tomu, že výstupy více vstupů shodné a proto není možné rekonstruovat který byl ten původní.

52

Odpovědět

+BaconNo, když bude programátor solit, tak je ti rainbow table k prdu.

30

Odpovědět

+BaconZáleží jak to udělá. Hodně systémů používá sůl špatně a heslo není při úniku nejvyšších kategorií (tedy hash+login nebo dokonce hash+login+algoritmus) chráněno víc než bez solení.

01

Odpovědět

Nestačí.
Uvedu podrobně, jak to funguje (neznám žádný přesný algoritmus, takže tohle bude jenom něco vycucanýho z prstu, ale jde tu pouze o princip).
napíšu heslo "abc"...v počítači je uloženo jako soustava jedniček a nul, konkrétně:
0110 0001 0110 0010 0110 0011.
Tahle posloupnost jedniček a nul může zároveň znázorňovat dvě čísla za sebou, tzn. 1558 a 601...ty dvě čísla spolu vynásobíme (936358) a binární kód výsledku (1110 0100 1001 1010 0110) se přečte jako symboly...ty už tady vypisovat nebudu, nehodlám hledat, kde se všechny ty divní symboly (==extended ascii) píšou.

Teď, když znáš algoritmus, bych prosil o převedení řetězce symbolů "af5!8C" zpátky na heslo:-)

160

Odpovědět

+Aegnornech sa paci: "Š;G", z tohoto retazca dostanes podla tvojho algoritmu hash "af5!8C", nemusi to by sice skutocne heslo, ale kedze ma rovnaky hash, vies sa s tym prihlasit.

20

Odpovědět

+AegnorŠ;G - toto je ono, v predoslom komentari sa to upravilo na nieco ine

00

Odpovědět

+Aegnoraf5!8C má 6 prvočinitelů: 3×17×137×829×3361×5501. Z toho se dá poskládat 20 původních hesel, které mají stejný otisk af5!8C. To je mizerná hašovací funkce.

00

Odpovědět

#hash




(I see what you did there)

206

Odpovědět

Doufám, že si toho chlápka nenajal google, facebook a youtube aby naoko uklidnil lidi. :D :D (Joke).

3213

Další