Kontrolní součet SHA-1 (ilustrační obrázek) | foto: montáž: Pavel Kasík - Technet.cz, Profimedia.cz

„Šifra“ SHA-1 překonána: Google dokázal podvrhnout PDF se stejným hashem

  • 102
Stále populární hashovací funkce SHA-1 byla považována za prakticky neprolomitelnou. Programátoři Google ve spolupráci s výzkumným centrem CWI Amsterdam názorně ukázali, že lze kontrolní šifrovací součet oklamat nejen teoreticky, ale i v praxi.

SHA-1 je tzv. hashovací funkce, která umožňuje vytvořit kontrolní součet pro ověření stejnosti. Funguje to tak, že funkci SHA-1 předhodíte soubor (libovolně velký) a ona k němu vypočítá tzv. hash, tedy změť zdánlivě náhodných a s původním obsahem nesouvisejících znaků.

  • například „a“ má SHA-1 hash: „86f7e437faa5a7fce15d1ddcb9eaeaea377667b8“
  • zatímco „aa“ má SHA-1 hash: „e0c9035898dd52fc65c41454cec9c4d2611bfb37“

Z hashe SHA-1 ani z jiných hashů nelze logicky získat původní data, neboť nekonečné množství různých dat vede ke stejnému hashi. Takové hashování má využití především k ověřování původnosti dat. Můžete například stáhnout soubor, spočítat jeho SHA-1 hash, ten srovnat s hashem původního souboru a tak si být jisti, že máte skutečně stejný soubor, jako byl ten původní.

Konec šifry SHA-1, porazila ji chytrá matematika a GPU

Dva různé dokumenty mají stejný kontrolní součet (hash), což lze považovat za úspěšný útok, tedy úspěšné podvržení.

Respektive dnes už si tím jisti býti nemůžete. Výzkumníci z Google a z CWI Amsterdam zveřejnili jednoznačnou ukázku (důkaz) toho, že dokáží vygenerovat dva PDF soubory, které mají sice odlišný obsah, ale zcela identický hash.

„Oznamujeme první praktickou techniku pro vytvoření kolize,“ oznámili autoři na bezpečnostním blogu Google. „Jde o výsledek dvouletého výzkumu, na němž spolupracoval Google a CWI. Jako důkaz jsme publikovali dva PDF soubory (PDF 1, PDF 2), které mají identický SHA-1 hash, ale přitom mají odlišný obsah.“

Oba soubory mají odlišný obsah, přesto dávají stejný SHA-1 hash

Metoda SHA-1 byla představena v roce 1995 jako nástupce hashovací funkce MD4. Brzy se stala populární šifrou a používaly ji (a občas dodnes používají) důležité bezpečnostní protokoly, jako např. SSH, SSL a TLS. Na prolomení šifry by bylo potřeba 280 výpočetních operací a metoda tak byla považována za bezpečnou.

Na prolomení SHA-1 pracovalo 110 grafických karet po dobu jednoho roku

Už v roce 2005 se začaly objevovat útoky, které dokázaly náročnost podvržení výrazně snížit. Stále ale byly tyto útoky v teoretické rovině. Teprve nyní se odborníkům z Google a CWI podařilo poprvé hashovací funkci SHA-1 prolomit. Využili k tomu 110 grafických karet, které za rok provedly 9 223 372 036 854 775 808 výpočetních operací.

Metoda SHA-1 je tím zřejmě - po dlouhé době oprávněných pochybností - konečně zdiskreditována. Proto by měli všichni, kdo spravují jakýkoli systém či software využívající hashování SHA-1, urychleně přejít na dostupné novější a bezpečnější metody, například SHA-256. Výzkumníci také zveřejnili utilitu k otestování toho, zda je daný soubor pravděpodobně podvržený.

Aktualizace: Článek jsme upravili, aby bylo na první pohled jasné, že SHA-1 je hashovací metoda, nikoli metoda šifrování a dešifrování.