Audyt Truecrypta zakończony, dwa istotne błędy w implementacji

dodał 2 kwietnia 2015 o 18:25 w kategorii Krypto  z tagami:
Audyt Truecrypta zakończony, dwa istotne błędy w implementacji

Zakończyła się druga faza audytu Truecrypta, obejmująca jego mechanizmy kryptograficzne. Nie znaleziono żadnej tylnej furtki, za to trafiono na dwa błędy wymagające poprawy. Nie wpadajcie jednak w panikę – nie jest tragicznie.

Dosłownie dwie godziny temu opublikowano raport z drugiej fazy audytu Truecrypta. W sumie audytorzy badający kod źródłowy aplikacji zidentyfikowali cztery różne błędy, z czego dwa określono jako istotne. Istnieje jednak duże prawdopodobieństwo, że nie musicie wyrzucać dysków do Wisły.

Błędy poważne, ale rzadko występujące

Zacznijmy od najważniejszego ustalenia audytu – w kodzie funkcji kryptograficznych nie znaleziono żadnej tylnej furtki. Znakomita większość kodu jest poprawnie napisana a implementacje poszczególnych algorytmów kryptograficznych przeprowadzono w modelowy sposób, zapewniając wysoki poziom bezpieczeństwa aplikacji. Zidentyfikowano jednak dwa scenariusze, w których znajdują się niedociągnięcia.

Pierwszy z nich dotyczy metody generowania wartości losowych w momencie tworzenia nowego wolumenu. Pełny algorytm zbierania wartości losowych opiera się na wielu źródłach: funkcja Windows CryptAcquireContext, wskaźniki struktur aplikacji, czas w milisekundach od uruchomienia systemu, czas uruchamiania procesu, pozycja kursora myszy, czas ostatniej interakcji, pozycja kursora klawiatury, statystyki użycia pamięci fizycznej, wirtualnej i dysku, parametry historii użycia dysku twardego i jeszcze kilku innych. Może się jednak tak zdarzyć w rzadko spotykanych sytuacjach, że funkcja Windows CryptAcquireContext, stanowiąca istotne źródło losowości, nie odpowie. Może to wynikać np. z polityki grupowej domeny, w której znajduje się stacja robocza lub z innych rzadko spotykanych przyczyn. Truecrypt powinien w takiej sytuacji przerwać pracę i poinformować o tym użytkownika – a tego nie robi i po cichu kontynuuje działanie. W efekcie może dojść do stworzenia kluczy o niższym niż zakładany poziomie losowości, co daje większą szansę na ich odgadnięcie. Pamiętajcie jednak, że nie oznacza to łatwej możliwości odgadnięcia klucza – nawet w sytuacji, gdy wystąpi ten scenariusz, aplikacja ciągle używa wielu źródeł losowości.

Drugi ważny problem dotyczy implementacji algorytmu AES, która może potencjalnie być podatna na wyrafinowane ataki związane z czasami obsługi pamięci podręcznej (cache-timing attack). Algorytm posługuje się dużymi tablicami danych, które nie mieszczą się w całości w pamięci podręcznej procesora. Powoduje to, że atakujący, posiadający dostęp do komputera, może tak manipulować danymi przekazywanymi aplikacji, by odczytać klucz prywatny. Nie jest to jednak atak prosty do przeprowadzenia i można raczej się spodziewać, że osoba, która ma dostęp do systemu, prędzej zainstaluje na nim keyloggera niż zaimplementuje ten rodzaj ataku.

Wizualna reprezentacja wagi błędów

Wizualna reprezentacja wagi błędów

Dwa pozostałe błędy dużo niższej wagi dotyczą metody konstruowania nagłówka pliku z zaszyfrowanymi danymi oraz sposobu wykorzystania plików – kluczy do zwiększenia bezpieczeństwa szyfrowania. Nie mają one jednak istotnego wpływu na bezpieczeństwo używania programu ani zaszyfrowanych danych.

Co dalej?

Autorzy raportu podkreślają, że ich odkrycia powinny być wykorzystane przede wszystkim w ulepszeniu kodu źródłowego klonów Truecrypta. Zwracają uwagę także na dobre praktyki programistyczne, których nie zawsze przestrzegali autorzy Truecrypta, a przede wszystkim wyraźną obsługę błędów. Gdy program tego rodzaju napotka problem, nie powinien po cichu go mijać, tylko powinien informować użytkownika i dawać mu szansę na zgłoszenie wystąpienia problemu do autorów kodu. Truecrypt nie zawsze postępuje w ten sposób czego skutkiem jest pierwszy z opisywanych problemów.

Czy należy przestać korzystać z Truecrypta? Zdecydowanie nie widzimy ku temu powodu (i wcale za to zdanie nie płaci nam NSA). Pierwszy etap audytu również nie znalazł tylnych furtek, pliki binarne były kompilowane z tych samych źródeł i nie bez powodu Truecrypta nie lubi NSA. Błędy opisane w raporcie bez wątpienia będą teraz analizowane przez kolejnych specjalistów, ale nie sądzimy, by którykolwiek z nich można było w praktyce wykorzystać przeciwko posiadaczom zaszyfrowanych wolumenów.  Zadbajcie o dobre hasła i fizyczne bezpieczeństwo sprzętu (bo z Truecrypta trzeba umieć korzystać) i spokojnie używajcie dalej z darmowego dobrego szyfrowania.