-15% na nową książkę sekuraka: Wprowadzenie do bezpieczeństwa IT. Przy zamówieniu podaj kod: 10000

Kolizja w SHA-1 umożliwia banalne rozwalenie repozytoriów SVN.

25 lutego 2017, 09:44 | Aktualności | komentarzy 28
Tagi: , ,
TL;DR:  Praktyczna kolizja na SHA-1 zaczyna zbierać pierwsze realne żniwo. Problem powstaje po zuploadowaniu dwóch różnych plików o tej samej sumie SHA-1 do repozytorium: „Subversion servers use SHA-1 for deduplication and repositories become corrupted when two colliding files are committed to the repository”.

Po ujrzeniu światła dziennego przez podatność algorytmu SHA-1 (praktyczna możliwość stworzenia kolidujących PDF-ów), deweloperzy WebKit próbowali przygotować patcha chroniącego przeglądarki przed cache poisoning:

We use SHA1 for deduplicating disk cache resources. Since a real world SHA1 collision was demonstrated recently (http://shattered.io/) we can add a test that shows it can’t be used for cache poisoning.

Wszystko szło dobrze, aż do momentu gdy w SVN nie zrobiono commita dwóch różnych PDF-ów z jedną sumą SHA-1 (jako przykład kolizji). Jak raportuje jeden z deweloperów:

It seems that the git-svn mirror stopped updating at r212950, and the bots all are red, the svn client prints an error that looks like: 0svn: E200014: Checksum mismatch for […] shattered-2.pdf’

Po tej akcji nie było możliwość zrobienia checkoutu z repozytorium (kończył się błędem).

Sami badacze z Google, którzy odkryli kolizję piszą też o możliwości braku wykonywania nowych commitów na tak zainfekowanym repozytorium: We noticed that in some cases, due to the corruption, further commits are blocked.

Błąd jest w trakcie analizy przez ekipę Subversion, a my powtarzamy jeszcze raz: SHA-1 is dead.

–Michał Sajdak

 

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Michał

    Lubię Was, ale żebym jako laik czasami wiedział o czym w ogóle piszecie… :D

    Odpowiedz
    • No sekurak raczej wyrósł od dość specjalistycznych tekstów z branży ITsec. A newsy są takim dodatkiem raczej, które mają w sobie zazwyczaj trochę technikaliów ;) co stanowi o ich urodzie IMO :]

      Odpowiedz
      • Michał

        A mnie właśnie brakuje takiego sekuraka dla noobów który propagowałby i uczył nieświadomych jak dbać o bezpieczeństwo w przystępnym języku. Np. jak i czym obecnie szyfrować dysk, jak i po co korzystać z VPN, tora, jak bezpiecznie logować się do banku… takie podstawowe rzeczy :)
        Trochę szkoda, bo brakuje takiego autorytetu :(

        Odpowiedz
        • nonqu

          Z3S jest takim portalem. OStatnio mieli chyba cykl o podstawach zabezpeiczenia serwera i konfiguracji własnego VPNa przez VPS.

          Odpowiedz
        • Marcin

          A to ciekawe mi brakuje bardziej zaawansowanych artykułów. Artykuły widzę jako raczej na średnim poziomie. Choć fakt, że można to znaleźć gdzieś indziej na anglojezycznych stronach, to jednak coś więcej o kryptografii, omówieniu samych sposobów łamania, albo coś bardziej szczegółowo o re jakiegoś wyrafinowanego malware’u albo jak można scrakować oprogramowanie i ja się przed tym bronić, itd, itp.

          Odpowiedz
          • Marcin

            Mówimy o średnim poziomie trudności/zaawansowania rzecz jasna a nie o poziomie artykułów…

          • Pierwszy z brzegu tekst: https://sekurak.pl/oauth-2-0-jak-dziala-jak-testowac-problemy-bezpieczenstwa/

            pokaż mi bardziej zaawansowany tekst o tym temacie (anglojęzyczny może być :)

            PS
            Teksty mamy różne, czasem prostsze, czasem cięższe – tak żeby wszyscy względnie byli happy ;-)

            Nieskromnie też dodam, że z serwisów w PL *średnie* zaawansowanie tekstów (obszar technicznego ITsec + nie mówimy tu o newsach) jest u nas największe. Aż wręcz ludzie czasem narzekają że 'zbyt hermetyczne’.

          • Marcin

            Generalnie bardzo doceniam sekuraka i sporo się dowiedziałem i nauczyłem.

            A co do bardziej zaawansowanych rzeczy, których mi brakuje:
            http://www.ragestorm.net/blogs/ – choć tu można dyskutować na ile są bardziej.
            http://www.binary-auditing.com/ – ale to już jest fajne. Brakuje mi takich treści.

          • Rzeczywiście ciężko będzie z takim researchem. Co więcej on pewnie zainteresowałby raptem garstkę ludzi w PL :(

          • Marcin

            „Rzeczywiście ciężko będzie z takim researchem. Co więcej on pewnie zainteresowałby raptem garstkę ludzi w PL :(”
            OK, może rzeczywiście za dużo wymagam. Filmy na podobne tematy na tym poziomie maja rzeczywiście mało odsłon (dużo mniej niż bym się spodziewał). Z drugiej strony dzięki za zwrócenie na to uwagi. Jak kiedyś będę miał dość bardzo dużego corpo i będę chciał zmienić pracę a akurat będziecie szukać, to przy podaniu oczekiwań finansowych będę pamiętał, że takich osób jest mało ;-)

          • W security jest mało. A b. dobrych w security jest b. mało :)

  2. SHA-1 nie jest martwe, i długo nie będzie. Tak samo zresztą jak Subversion („wszyscy używają gita”) czy Windows XP.

    Odpowiedz
    • Odpowiedz
      • Dużo zależy również od kontekstu, np. wykorzystanie md5 w informatyce śledczej jest czymś naturalnym.

        Odpowiedz
      • Oj, ja też używam nadal MD5, a w wielu sytuacjach choćby i CRC32.

        Te algorytmy są martwe tam gdzie wchodzi w grę bezpieczeństwo, natomiast we wszystkich pozostałych zastosowaniach (a przecież jest ich mnóstwo!) nadal są całkiem wystarczające.

        Odpowiedz
        • Pod warunkiem że to się robi świadomie to jak najbardziej OK.

          Ew. różnica jest taka że CRC32 nigdy nie było używane np. do corowych miejsc podpisu cyfrowego ;)

          Odpowiedz
      • Qt

        Używali. Lata temu.

        Odpowiedz
  3. Pyth0n

    Wrzuta z mojej strony:

    Atak jest typu kolizja: znajdź dwie (losowe) wiadomości m1 != m2 mające ten sam hash sha1(m1)==sha1(m2).

    NIE jest to atak typu „preimage”, czyli dla ZNANEJ wiadomości m1 dorobić wiadomość m2 mającą ten sam hash.

    W związku z tym nie będzie masowych generacji lewych ceryfikatów (nawet generacja „evil twins” jest trudna, bo oprócz kolizja samej z siebie, OBIE kolidowane wiadomości muszą być poprawnymi kluczami), masowago zatruwania istniejących commitów GITa i SVN, (oba „evil twins” musą mieć poprawną strukturę commita) itp. Nie dostawajmy na zapas kryptosraczki.

    Odpowiedz
    • tomtrz

      I agree.

      Per analogia to jak z paradoksem dnia urodzin ( https://pl.wikipedia.org/wiki/Paradoks_dnia_urodzin ).
      Jeżeli wejdę do pokoju gdzie są 22 osoby nie oznacza to że z prawdopodobieństwem >0.5 znajduje się tam osoba która ma urodziny tego samego dnia co ja.

      Nie zgadzam się, że SHA1 is dead. Jutro lub pojutrze pojawi się kolizja w SHA2. Problem w tym, że na podstawie 16 czy 64 bajtów chcemy potwierdzać identyczność lub nie ciągów tysięcy/milionów bajtów.
      Idealna funkcja skrótu powinna dawać różne wyniki dla różnych plików. Teoretycznie …
      SHA1 daje 2^160 wyników, to ok. 1.46*10^48.
      Ziemię tworzy ok 10^51 atomów. Więc w teorii powinno działać dobrze, bo nie istnieje jeszcze 10^48 plików/ciągów na ziemi.

      Problem w implementacji skrótów. Popracujmy nad tym by podpis był trudniejszy do podrobienia. Może trzeba podpisywać (szyfrować asymetrycznie co jest kosztowne) więcej informacji a nie tylko „hasha”. Bo dlaczego w podpisie elektronicznym używa się f. skrótu ?

      Zawsze znajdziesz dwa podobne kotlety zrobione z dwóch różnych krów … pytanie jak je porównujesz.

      Odpowiedz
  4. w65

    Oj, popsuli svna… Niech jeszcze napiszą, że im się ich windows 95 zawiesił.

    Odpowiedz
  5. ff

    świetny przykład IRresponisble disclosure ze strony gógla. powinni byli poczekać z publikacją tych pdfów

    Odpowiedz
    • do kiedy? ;)

      Odpowiedz
      • Krzysztof Kozłowski

        Aż dinozaury nie wymrą definitywnie…

        A poważnie to w ostatnich 5 latach naprawiałem jeszcze 286 :D
        Więc zacofanie gdzieniegdzie jest naprawdę porażające i wcale nie wynika to chęci do trwania w takim stanie. Czasem to zbieg czynników

        Odpowiedz
    • Dx

      I tak czekali długo. Póki co, moc obliczeniowa potrzebna do wygenerowania dwóch plików z tym samym SHA1 jest na tyle duża, że realność tego problemu przez jakiś czas będzie mało dotkliwa, ale na tyle duża, żeby ostro motywować zainteresowanych do zastąpienia tego algorytmu.

      Odpowiedz
  6. Michał

    coś się w formatowaniu rozjechało ;)
    yłaox kolor=”czerwony” i /box

    Odpowiedz

Odpowiedz na Michał