16.01.2014 | 17:49

Adam Haertle

37 komentarzy

Czemu TrueCrypt nie wystarcza a $ur4ht4ub4h8 to słabe hasło

TrueCrypt stał się praktycznie jednym ze standardów szyfrowania dysków. Nie wystarczy jednak z niego skorzystać, by zaszyfrowane dane automatycznie stały się bezpieczne. Trzeba jeszcze pamiętać o tym, by korzystać z niego w odpowiedni sposób.

Nie wiemy, czy Ross Ulbricht, założyciel serwisu Silk Road, korzystał z TrueCrypta. Wiemy jednak, że FBI celowo czekało z jego aresztowaniem na moment, kiedy w miejscu publicznym, ze swojego komputera, nawiąże komunikację z jednym ze swoich współpracowników. Dlaczego FBI na tym zależało i jakie wiąże się z tym ryzyko dla użytkowników TrueCrypta?

Gdzie leżą klucze

Program szyfrujący, umożliwiający dostęp do zabezpieczonych plików w sposób przezroczysty dla systemu operacyjnego, musi gdzieś przechowywać klucze, umożliwiające odszyfrowanie danych. Nie wykluczamy, że specjalistyczne oprogramowanie, używane przez np. służby specjalne, może korzystać z kluczy znajdujących się na kartach mikroprocesorowych czy w dedykowanych modułach kryptograficznych, jednak najpopularniejsze programy takie jak TrueCrypt, PGP, FileVault czy BitLocker klucze trzymają w pamięci RAM. A skoro klucze znajdują się w pamięci komputera, to można je stamtąd odzyskać.

Wyciąganie kluczy

Na rynku dostępne są komercyjne narzędzia takie jak Elcomsoft Forensic Disk Decryptor czy Passware Kit Forensic, które potrafią znaleźć klucze szyfrujące zarówno w plikach hibernacji jak i zrzutach pamięci systemu czy też odnaleźć je w działającym systemie poprzez port FireWire.

Ekran wyboru źródła danych (źródło: Elcomsoft)

Ekran wyboru źródła danych (źródło: Elcomsoft)

Wkrótce jednak zostanie opublikowane darmowe narzędzie, znacznie ułatwiające śledczym zebranie informacji o wolumentach TrueCrypta.

Autorzy Volatility, darmowych skryptów w Pythonie służących do analizy pamięci, stworzyli nowy skrypt, którego efekt działania wygląda następująco:

$ python vol.py -f WIN-QBTA4959AO9.raw --profile=Win2012SP0x64 truecryptsummary
Volatility Foundation Volatility Framework 2.3.1 (T)

Process              TrueCrypt.exe at 0xfffffa801af43980 pid 2096
Kernel Module        truecrypt.sys at 0xfffff88009200000 - 0xfffff88009241000
Symbolic Link        Volume{52b24c47-eb79-11e2-93eb-000c29e29398} -> \Device\TrueCryptVolumeZ mounted2013-10-11 03:51:08 UTC+0000
Symbolic Link        Volume{52b24c50-eb79-11e2-93eb-000c29e29398} -> \Device\TrueCryptVolumeR mounted2013-10-11 03:55:13 UTC+0000
File Object          \Device\TrueCryptVolumeR\$Directory at 0x7c2f7070
File Object          \Device\TrueCryptVolumeR\$LogFile at 0x7c39d750
File Object          \Device\TrueCryptVolumeR\$MftMirr at 0x7c67cd40
File Object          \Device\TrueCryptVolumeR\$Mft at 0x7cf05230
File Object          \Device\TrueCryptVolumeR\$Directory at 0x7cf50330
File Object          \Device\TrueCryptVolumeR\$BitMap at 0x7cfa7a00
File Object          \Device\TrueCryptVolumeR\Chats\Logs\bertha.xml at 0x7cdf4a00
Driver               \Driver\truecrypt at 0x7c9c0530 range 0xfffff88009200000 - 0xfffff88009241000
Device               TrueCryptVolumeR at 0xfffffa801b4be080 type FILE_DEVICE_DISK
Container            Path: \Device\Harddisk1\Partition1
Device               TrueCrypt at 0xfffffa801ae3f500 type FILE_DEVICE_UNKNOWN

Narzędzie to potrafi przeszukać plik zrzutu pamięci i odnaleźć w nim ślady użycia TrueCrypta. Znajduje zarówno datę podpięcia zaszyfrowanego dysku do systemu jak i ścieżkę, w której znajduje się plik lub napęd. Z kolei drugi skrypt potrafi zidentyfikować użyty w TrueCrypcie rodzaj szyfrowania i zlokalizować w pamięci odpowiedni klucz

$ python vol.py -f WIN-QBTA4.raw --profile=Win2012SP0x64 truecryptmaster -D . 
Volatility Foundation Volatility Framework 2.3.1 (T)

Container: \Device\Harddisk1\Partition1
Hidden Volume: No
Read Only: No
Disk Length: 7743733760 (bytes)
Host Length: 7743995904 (bytes)
Encryption Algorithm: SERPENT
Mode: XTS
Master Key
0xfffffa8018eb71a8 bbe1dc7a8e87e9f1f7eef37e6bb30a25 ...z.......~k..%
0xfffffa8018eb71b8 90b8948fefee425e5105054e3258b1a7 ......B^Q..N2X..
0xfffffa8018eb71c8 a76c5e96d67892335008a8c60d09fb69 .l^..x.3P......i
0xfffffa8018eb71d8 efb0b5fc759d44ec8c057fbc94ec3cc9 ....u.D.......<.
Dumped 64 bytes to ./0xfffffa8018eb71a8_master.key
Jest to pierwsze znane darmowe narzędzie, umożliwiające automatyczną analizę pamięci pod kątem informacji o użyciu TrueCrypta i pierwsze, które potrafi odzyskać z pamięci klucze szyfrujące niezależnie od użytego rodzaju szyfrowania (wcześniej klucze AES potrafił odnaleźć aeskeyfind).

Problem znany, ale trudny do rozwiązania

Oczywiście przechowywanie kluczy w pamięci komputera jest znanym problemem, opisanym w dokumentacji TrueCrypta. Jak zaznaczają autorzy dokumentacji, w momencie odłączania dysków klucze szyfrujące są usuwane z pamięci komputera, jednak w momencie uruchomienia procesu hibernacji, nagłego odłączenia zasilenia lub wykonania resetu komputera program nie ma możliwości przeprowadzenia tej operacji, zatem klucze pozostają w RAMie.

Jak zabezpieczyć się przed atakiem na klucze szyfrujące? Po stronie samego bezpieczeństwa IT jedyną istotną rekomendacją jest wyłączenie funkcji hibernacji. Można także oczywiście ustawić automatyczne odłączanie dysków po minucie nieaktywności, jednak raz, że jest to bardzo uciążliwe (pewnie zmienicie na 10 minut następnego dnia), a dwa – rozsądny biegły na miejscu zdarzenia od razu podejmie czynności, zanim upłynie minuta. Warto w każdym razie rozważyć aktywowanie różnych opcji odłączania dysków.

Opcje odłączania dysków w TrueCrypcie

Opcje odłączania dysków w TrueCrypcie

Co zatem pozostaje? Pewnie tylko bezpieczeństwo fizyczne, czyli nie podłączanie dysków w miejscu, gdzie ktoś może Was odciągnąć od komputera w ciągu kilku sekund i zadbanie o to, by włączony komputer z podłączonymi partycjami nie pozostawał ani na chwilę bez opieki (jak prawdopodobnie miało to miejsce w przypadku Anakaty z The Pirate Bay).

Silne hasło przegrywa z kluczem do kół

Jak wiadomo, silne hasło jest niezbędne, a najlepszym narzędziem do jego wydobycia jest klucz do kół. Co prawda nie wiemy, czy Syed Hussain, podejrzany w Wielkiej Brytanii o terroryzm faktycznie zapomniał swojego hasła do danych zaszyfrowanych na dysku USB (prawdopodobnie mógł korzystać z TrueCrypta), ale wiemy, że w jego zapewnienia nie uwierzył sędzia, który wsadził go na kilka miesięcy do więzienia, by odświeżyć mu pamięć. Wezwani eksperci z GCHQ nie podołali problemowi.

Kiedy po 11 miesiącach w areszcie Hussain usłyszał nowe zarzuty, tym razem o oszustwa finansowe, znienacka przypomniał sobie, że hasło brzmi $ur4ht4ub4h8. Na odszyfrowanym dysku nie znaleziono śladów związanych z terroryzmem, lecz były tam dane finansowe, stanowiące cenne dowody w zakresie zarzutów o oszustwa. Wniosek płynący z tego incydentu: $ur4ht4ub4h8 było dobrym hasłem, ale niestety teraz jest już w zbyt wielu słownikach.

Powrót

Komentarze

  • 2014.01.16 18:22 42kbgm5r

    Przecież osoby, którym naprawdę zależy na poufności swoich danych wiedzą o tym od dawna i hibernację wyłączają.

    Odpowiedz
    • 2014.01.16 20:33 Morfik

      A ja tam nie wiem i mam hibernację włączoną. :] Ba, powiem więcej, ten artykuł mnie nie przekonał bym hibernację wyłączył? Niby po co?

      Odpowiedz
    • 2014.01.19 10:43 Win8

      A co z Windowsem 8? Z tego co czytałem ma on domyślnie włączoną hibernację plików systemowych dzięki czemu start Ósemki jest tak szybki.

      Odpowiedz
  • 2014.01.16 19:59 Kasia

    Czegoś nie kumam. To jeżeli zrestartuje kompa przyciskiem reset to klucz dalej pozostaje w ramie ?

    Odpowiedz
      • 2014.01.16 20:36 X

        A to było dwa lata temu, wiec pewne jest ze ów technologia jest już bardziej dostępna i zapewne bardziej efektywna :)

        Odpowiedz
      • 2014.01.16 20:37 Morfik

        Może to i fajnie na obrazku wygląda kiedy masz do czego się odnieść, teraz spróbuj zrekonstruować hasło i klucz szyfrujący, których nie znasz… Mi się wydaje, czy zmiana 1 bita w kluczu czyni dane nie do odzyskania? Ile bitów zostało zmienionych na obrazkach?

        Odpowiedz
      • 2014.01.16 20:38 anon

        przy resecie haselko odczytasz ale przy shoutdown zostaje juz usuwane z pamieci

        Odpowiedz
        • 2014.01.16 20:40 Morfik

          Przy resecie, to jest duże prawdopodobieństwo, że klucz i hasło zostaną nadpisane.

          Odpowiedz
          • 2014.01.17 13:12 mnmnc

            Śmieszne jest to powtarzanie mitów o odczycie kluczy z pamięci RAM. Gdyby ktoś przeczytał dokładnie przeprowadzone badania gdzie odzyskiwali dane z RAMu po odcięciu zasilania to by sobie zdał sprawę, że udawało im się to głownie ze względu na typ pamięci RAM jaki był używany w tych doświadczeniach. A były to pamięci RAM DDR II. Posiadają one właśnie tą wadę, że długo trzymają napięcie po odcięciu zasilania. Ten czas pozwalał na wyjęcie ich z MOBO, wsadzenie do ciekłego azotu i odczytu zawartości. W przypadku pamięci RAM DDR III, które mają znacznie krótszy czas pełnego rozładowania napięcia ( rzędu kilku sekund), proponowane rozwiązanie nie zdaje egzaminu.
            Dlatego też sprawdzcie jakie macie pamięci RAM i w razie czego ciągnąc za kabel. W miejscu publicznym podpiąć lapcia do sieci elektrycznej i wyciagnać baterię ;)

          • 2014.01.17 13:19 mnmnc

            żeby nie być gołosłownym – tu jest opisywana publikacja: http://citpsite.s3-website-us-east-1.amazonaws.com/oldsite-htdocs/pub/coldboot.pdf

            Zajrzyjcie sobie do tabelek zawierających hardware platform testowych.

          • 2014.01.17 14:18 do mnmnc
          • 2014.01.17 15:01 mnmnc

            hop plug? przecież to nie ma żadnego zwiazku z tematem. Hot plug służy do podtrzymania źródła zasilania by móc przenieść komputer lub zabezpieczyć go przed wyłączeniem. Mouse jigler dodatkowo by komputer nie wszedl w stan uśpienia. Ni jak sie to nie ma do sytuacji w której zdarze pociągnać za kabel.

          • 2014.01.17 17:04 Gruby

            Wczytaj się dokładnie w dokumentację przeprowadzonego ataku i z łatwością odkryjesz, że oprócz metody schładzania pamięci opisana została metoda korekcji takich błędów powstających po odłączeniu zasilania. Odtworzony został m. in. klucz AES, w którym siedem (a nie jeden) bitów się zmieniło i zajęło to 20 minut. Szacują, że odzyskanie klucza AES ze zmienionymi 11 bitami zajęłoby 10 dni. Całkiem nieźle biorąc pod uwagę, że 11 bitów w 2048-bitowym kluczu AES to 0,54%, a w badaniu uzyskali najwyżej 0,18% błędnych bitów po schłodzeniu pamięci.

  • 2014.01.16 20:36 anon

    to co zuca sie od razu to brak duzych liter co jeszcze jedynie 12 znakow, jesli jest sie w grupie ryzyka czyli podejrzanym o terroryzm to na bank nsa dalo bruttala i tutaj przy ich mocy obliczeniowej to 11 miesiecy to az nad to by sie do tego dokopac

    Odpowiedz
    • 2014.01.16 22:10 Kasia

      Niby tylko 12 znaków i bez dużych liter a i tak taki słownik zajmuje 8388607 Terabajtów wordlista. Powodzenia w jego łamaniu (zakładając że zna się długość hasła i jakie znaki w nie wchodzą)

      Odpowiedz
      • 2014.01.17 11:30 anon

        nie trzeba znac jego dlugosci , powyzej juz 8 znakow dlugosc lamania wzrasta symetrycznie ale majac dostep do centralnych jednostek w nsa zlamanie takowego w ciagu 11 miesiecy to pewnik

        Odpowiedz
  • 2014.01.16 21:32 Marek

    HOT KEY dla Force Dismount ALL, Wipe Cache & Exit.

    np. ctrl win alt P albo aby zadziałało 1 ręką ctrl win alt Z

    Ułamek sekundy jak jest się przy komputerze na odmontowanie wszystkiego

    Odpowiedz
  • 2014.01.16 21:35 Jan

    czyli teoretycznie aplikacja uruchomiona zdalnie na komputerze ofiary odczyta klucz z ram?

    Odpowiedz
  • 2014.01.17 00:13 tpr

    a jak w kontekscie tych informacji trzyma sie LUKS?

    Odpowiedz
  • 2014.01.17 00:32 eRI

    Zaraz, przecież po zahibernowaniu jest wyłączana całość.

    Jak odhibernowuję system, to i tak muszę podać klucz, bo zrzut pamięci (hiberfil.sys) jest na zaszyfrowanym dysku.

    Czy to chodzi o sytuację, w której nie ma pełnego szyfrowania całego twardziela?

    Odpowiedz
    • 2014.01.17 11:02 zdegustowany

      Są też inne tryby, np „hybrid sleep” albo standby, gdzie nie ma pełnego wyłączenia żeby powrót do trybu normalnej pracy był szybki.
      Procesor jest zatrzymany, grafika i dyski powyłączane ale pamięć aktywna, tylko na obniżonym zegarze – więc potencjalnie można zamrozić i wydłubać sekrety.

      Odpowiedz
      • 2014.01.20 19:26 eRI

        Ja mam na myśli stricte kompletną hibernację, z wyłączeniem całego komputera.

        Odpowiedz
  • 2014.01.17 02:30 Androidowy

    Drogi Sekuraku, sporo się słyszy o TrueCrypcie, a czy można prosić o kompleksowy artykuł o jakości zabezpieczeń, podatnosci na złamanie i np o przechowywanie kluczy ale w aspekcie standaru LUKS ? dzieki i myślę ze więcej czytelników by było zainteresowane

    Odpowiedz
    • 2014.01.17 11:03 zdegustowany

      Albo porównanie z OTRS i innymi podobnymi rozwiązaniami, bo może któreś jest wyraźnie lepsze?

      Odpowiedz
    • 2014.01.19 12:50 chesteroni

      WPISUJCIE MIASTA, KTURE SOM ZA!!!!11!

      Litości! „Drogi Sekuraku?” – przecież to inna strona niż sekurak!
      „Rośnie symetrycznie”? Chyba wykładniczo!

      Jak tak dalej pójdzie to komentarze na onecie będą bardziej merytoryczne… :(

      Odpowiedz
      • 2014.01.19 19:34 steppe

        Chesteroni: Sodoma!

        A tak w ogóle to po co się zastanawiacie jak długo klucz jest przechowywany w pamięci RAM, skoro służby nie mają powodu odciagania was od komputera?

        Odpowiedz
  • 2014.01.17 11:28 józek

    Zacznijmy od tego, że osobę, która musi zabezpieczać swoje dane przez TC lub tym podobne, stać na jakiekolwiek inne rozwiązanie.

    Klucz do sukcesu pokazało wam thepiratebay. Kupujecie magazyn danych w chmurze, szyfrujecie go, ustawiacie odpowiednie blacklist i whitelist. Następnie kupujecie serwer-router, który jako jedyny może przekierować połączenie do serwera z danymi. Połączenie szyfrujecie i tunelujecie. Do routera możecie sobie nawet podpiąć domenę. Nie musicie korzystać z TORa tylko z np. OpenVPNa aby utrudnić namierzenie połączenia. Ot i cała filozofia. Każdy może znaleźć router ale znalezienie serwerów jest już prawie nie możliwe (a przynajmniej jeszcze nikt nie odkrył lokalizacji serwerów TPB, założyciele się chwalą, że nawet serwerodawca nie wie, co znajduje się na jego serwerze). Możecie potem dodać serwer backupowy, na który serwer macierzysty prześle dane i podda się autodestrukcji jeśli np. nie wykonacie przy połączeniu odpowiedniej kombinacji ruchów myszką itp. Podobne mechanizmy opracowywałem kilka-kilkanaście lat temu i są one wyjątkowo skuteczne. Wystarczy wam wtedy tylko laptop z internetem, który nie ma żadnych danych. Brak danych brak dowodów. Nie potrzebne są wam klucze, nie potrzebna wam jest klawiatura (można na serwer wbudować klawiaturę ekranową bądź posłużyć się jeszcze innym wymyślnym mechanizmem – uruchomcie wyobraźnie).

    Odpowiedz
  • 2014.01.17 14:41 nick

    czyli nowe jabłka są bezpieczne? (RAM wlutowany)

    Odpowiedz
    • 2014.01.17 15:03 mnmnc

      Niby czemu? zanurzasz jabłuszko w azocie, odkrecasz obudowe i podpinasz sie pod nózki. Nie trzeba wyjmować ;)

      Odpowiedz
      • 2014.01.17 17:24 Gruby

        To się chyba nie uda. Pamięć w tych urządzeniach nie jest wlutowana w formie całych modułów SODIMM, tylko jako pojedyncze kostki SMD.(http://cdn1.appleinsider.com/teardown-120613-2.jpg) Złącza są pod kośćmi, nie ma opcji „podłączenia” się do nich. z wierzchu. Podłączanie się do pojedynczych ścieżek na płycie? Za dużo czasu.

        Odpowiedz
        • 2014.02.25 12:59 10fi

          Chyba, że masz dedykowane złącze, pasujące akurat to tego mobo.

          Odpowiedz
  • 2014.06.09 17:47 jaso

    A moim zdaniem, w dużej części, szukaniem kluczy zajmują się kopacze bitcoinów. Moc obliczeniowa jest ogromna i hasło odzyskiwane jest w kilka minut.

    Odpowiedz

Zostaw odpowiedź

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Czemu TrueCrypt nie wystarcza a $ur4ht4ub4h8 to słabe hasło

Komentarze