Przekonujący dowód z kompilacji ze źródeł: w truecrypt.exe nie ma furtek
TrueCrypt jest jednym z najpopularniejszych narzędzi doszyfrowania dysków i tworzenia wirtualnych, zaszyfrowanych napędów, ajednocześnie jednym z najbardziej kontrowersyjnych narzędzi tegotypu. Nie wiadomo, kto jest jego autorem, nie jest też jasne, jaklicencja, zgodnie z którą jest udostępniany, ma się do innychopensource'owych licencji. Co gorsza, gdy po aferze z PRISM branżazaczęła się poważnie zastanawiać nad obecnością w oprogramowaniufurtek wstawianych tam pod presją służb wywiadowczych, okazało się,że nikt nie potrafił uzyskać z dostępnego kodu źródłowego plikówbinarnych identycznych z tymi, które dostępne były na stronieprojektu. Wątpliwości co do „szczelności” TrueCryptazainspirowały jego użytkowników do zbiórki pieniędzy na publicznyaudyt 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ż ponad32 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 oficjalneprace audytorskie się jeszcze nie zaczęły, zaś stronaIsTrueCryptAuditedYet.com wciąż na tytułowe pytanie odpowiada „nie”,to jednemu z badaczy, pracującemu niezależnie od inicjatywy audytukodu, udało się osiągnąć bardzo interesujący rezultat.[img=crypto]Jest już niemal pewne, że publicznie dostępna binarna wersjaTrueCrypta 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 wynikowypasował do oficjalnej binarki. Co prawda nie udało się uzyskaćstuprocentowej zgodności, ale de Carnavalet dość jasno wyjaśniaprzyczyny drobnych różnic.Sam proces kompilacji TrueCrypta na Windows nie wygląda zbytatrakcyjnie. Należy dysponować Visual C++ 2008 SP1 ProfessionalEdition, Visual C++ 1.52, skonfigurowanym dla Visual C++ SDK forWindows 7 oraz zestawem Windows Driver Kit 7.1.0 (wszystko to odMicrosoftu), 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ą dozmian w plikach wynikowych – a to właśnie do tej pory byłopowodem podejrzewania obecności furtek NSA w TrueCrypcie.Po zbudowaniu własnej wersji TrueCrypta, kanadyjski programistaporównał je bajt po bajcie, by uzasadnić znalezione różnice. Wynikaćone mają przede wszystkim z podpisania oficjalnych binarekcertyfikatem (czego oczywiście Xavier de Carnavalet zrobić nie mógł),niemożliwości osadzenia binarki w pliku instalacyjnym bez takiejpodpisanej wersji, oraz oczywiście innych czasoznaczków niż przyoryginalnej 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 wersjiMinGW zwróciła co do bajta identyczne pliki, co oznacza, że obiewersje wykonują dokładnie te same zadania, nie ma tu miejsca naukrycie furtki. Oczywiście paranoicy w swoich kapeluszach zaluminiowej folii mogą argumentować, że przecież w obu wypadkachużyto do kompilacji zamkniętego, własnościowego kompilatoraMicrosoftu, co do którego nie można mieć pewności, czy nie padłofiarą ataku, opisanego w 1984 roku przez Kena Thompsona. Atak tenpolega na zmodyfikowaniubinarki kompilatora, tak by kompilator tworzył złośliwe wersjepewnych programów, w tym złośliwe wersje siebie samego. Wykrycietakiego ataku jest bardzo trudne, ale i jego przeprowadzeniepozostaje dziś bardziej w sferze teorii.Bardziej prawdopodobny jest scenariusz, w którym furtka doTrueCrypta została wprowadzona jawnie, do kodu źródłowego, jestjednak tak subtelna, że na pierwszy rzut oka nie można jej wykryć.Może to być np. celowo nieprawidłowa implementacja jednego zkryptograficznych algorytmów, zmniejszająca poziom trudności siłowegoataku, którą wykryć może jedynie szczegółowy audyt kryptograficzny.Czy do czegoś takiego doszło, dowiemy się już w najbliższychmiesiącach. Na korzyść TrueCrypta przemawia jednak fakt, żenajwyraźniej nawet FBI nie posiada hipotetycznej furtki do tegoprogramu – przykładowo w 2010 roku śledczy tej agencjiprzyznali, że nie są w stanie odszyfrować zawartości dysków twardychDaniela Dantasa, bankiera aresztowanego przez brazylijską policję podzarzutem prania brudnych pieniędzy. Wówczas to policyjni technicy,narzekając że nie mają sposobu, aby zmusić twórców TrueCrypta dopomocy w tej sprawie, przez 12 miesięcy próbowali złamać hasłosił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ę wTrueCrypcie, to stosuje ją wyłącznie w sprawach najwyższej wagi,dotyczących obronności kraju czy szpiegostwa przemysłowego wstrategicznych dziedzinach. Ujawnienie jej istnienia w sprawachrelatywnie małej wagi byłoby w tej sytuacji absurdem.