r   e   k   l   a   m   a
r   e   k   l   a   m   a

Przekonujący dowód z kompilacji ze źródeł: w truecrypt.exe nie ma furtek

Strona główna AktualnościOPROGRAMOWANIE

TrueCrypt jest jednym z najpopularniejszych narzędzi do szyfrowania dysków i tworzenia wirtualnych, zaszyfrowanych napędów, a jednocześnie jednym z najbardziej kontrowersyjnych narzędzi tego typu. Nie wiadomo, kto jest jego autorem, nie jest też jasne, jak licencja, zgodnie z którą jest udostępniany, ma się do innych opensource'owych licencji. Co gorsza, gdy po aferze z PRISM branża zaczęła się poważnie zastanawiać nad obecnością w oprogramowaniu furtek wstawianych tam pod presją służb wywiadowczych, okazało się, że nikt nie potrafił uzyskać z dostępnego kodu źródłowego plików binarnych identycznych z tymi, które dostępne były na stronie projektu. Wątpliwości co do „szczelności” TrueCrypta zainspirowały jego użytkowników do zbiórki pieniędzy na publiczny audyt narzędzia. Od jego rozpoczęcia minęło raptem 10 dni, a już starania przyniosły ciekawe efekty.

Mimo że do zakończenia zbiórki pieniędzy zostało 50 dni, to widać, że społeczności na tej inicjatywie zależy. Choć celem miało być pozyskanie 25 tys. dolarów, to w serwisie IndieGogo zebrano już ponad 32 tys. dolarów, zaś w FundFill ponad 15 tys. dolarów i 27 bitcoinów (ok. 5 tys. dolarów po aktualnym kursie). Mimo zaś, że oficjalne prace audytorskie się jeszcze nie zaczęły, zaś strona IsTrueCryptAuditedYet.com wciąż na tytułowe pytanie odpowiada „nie”, to jednemu z badaczy, pracującemu niezależnie od inicjatywy audytu kodu, udało się osiągnąć bardzo interesujący rezultat.

Jest już niemal pewne, że publicznie dostępna binarna wersja TrueCrypta 7.1a dla Windows powstała z oficjalnie dostępnych źródeł tej wersji. Kanadyjski programista Xavier de Carnavalet pokazał, jak odtworzyć proces kompilacji, tak by uzyskany plik wynikowy pasował do oficjalnej binarki. Co prawda nie udało się uzyskać stuprocentowej zgodności, ale de Carnavalet dość jasno wyjaśnia przyczyny drobnych różnic.

Sam proces kompilacji TrueCrypta na Windows nie wygląda zbyt atrakcyjnie. Należy dysponować Visual C++ 2008 SP1 Professional Edition, Visual C++ 1.52, skonfigurowanym dla Visual C++ SDK for Windows 7 oraz zestawem Windows Driver Kit 7.1.0 (wszystko to od Microsoftu), a także nagłówkami Cryptographic Token Interface od RSA, assemblerem NASM i kompresorem gzip. Konieczne jest też zainstalowanie określonych łatek dla Visual Studio, gdyż najdrobniejsze zmiany w użytych wersjach tych narzędzi prowadzą do zmian w plikach wynikowych – a to właśnie do tej pory było powodem podejrzewania obecności furtek NSA w TrueCrypcie.

Po zbudowaniu własnej wersji TrueCrypta, kanadyjski programista porównał je bajt po bajcie, by uzasadnić znalezione różnice. Wynikać one mają przede wszystkim z podpisania oficjalnych binarek certyfikatem (czego oczywiście Xavier de Carnavalet zrobić nie mógł), niemożliwości osadzenia binarki w pliku instalacyjnym bez takiej podpisanej wersji, oraz oczywiście innych czasoznaczków niż przy oryginalnej kompilacji. Po ich pominięciu, obie binarne wersje są identyczne.

Te same wyniki przyniosła inżynieria wsteczna – dezasemblacja obu binarek przeprowadzona za pomocą 64-bitowej wersji MinGW zwróciła co do bajta identyczne pliki, co oznacza, że obie wersje wykonują dokładnie te same zadania, nie ma tu miejsca na ukrycie furtki. Oczywiście paranoicy w swoich kapeluszach z aluminiowej folii mogą argumentować, że przecież w obu wypadkach użyto do kompilacji zamkniętego, własnościowego kompilatora Microsoftu, co do którego nie można mieć pewności, czy nie padł ofiarą ataku, opisanego w 1984 roku przez Kena Thompsona. Atak ten polega na zmodyfikowaniu binarki kompilatora, tak by kompilator tworzył złośliwe wersje pewnych programów, w tym złośliwe wersje siebie samego. Wykrycie takiego ataku jest bardzo trudne, ale i jego przeprowadzenie pozostaje dziś bardziej w sferze teorii.

Bardziej prawdopodobny jest scenariusz, w którym furtka do TrueCrypta została wprowadzona jawnie, do kodu źródłowego, jest jednak tak subtelna, że na pierwszy rzut oka nie można jej wykryć. Może to być np. celowo nieprawidłowa implementacja jednego z kryptograficznych algorytmów, zmniejszająca poziom trudności siłowego ataku, którą wykryć może jedynie szczegółowy audyt kryptograficzny. Czy do czegoś takiego doszło, dowiemy się już w najbliższych miesiącach. Na korzyść TrueCrypta przemawia jednak fakt, że najwyraźniej nawet FBI nie posiada hipotetycznej furtki do tego programu – przykładowo w 2010 roku śledczy tej agencji przyznali, że nie są w stanie odszyfrować zawartości dysków twardych Daniela Dantasa, bankiera aresztowanego przez brazylijską policję pod zarzutem prania brudnych pieniędzy. Wówczas to policyjni technicy, narzekając że nie mają sposobu, aby zmusić twórców TrueCrypta do pomocy w tej sprawie, przez 12 miesięcy próbowali złamać hasło siłowo, aż w końcu zrezygnowani poddali się, a Dantas został wypuszczony na wolność.

Można więc założyć, że jeśli NSA faktycznie umieściła furtkę w TrueCrypcie, to stosuje ją wyłącznie w sprawach najwyższej wagi, dotyczących obronności kraju czy szpiegostwa przemysłowego w strategicznych dziedzinach. Ujawnienie jej istnienia w sprawach relatywnie małej wagi byłoby w tej sytuacji absurdem.

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.