Następny: Do użytkowników Macintosha Powyżej: PGP 2.6.2 Poprzedni: Słabe punkty

O złudnym poczuciu bezpieczeństwa

Przy pracy z oprogramowaniem kryptograficznym zawsze nasuwa się pytanie o stopień bezpieczeństwa zapewnianego przez dany produkt. Nawet biorąc pod uwagę samodzielne sprawdzenie kodu źródłowego, nie każdy ma na tyle doświadczenia w kryptografii, by osądzić bezpieczeństwo szyfru. Nawet uwadze doświadczonego kryptologa mogą ujść drobne i trudne do odkrycia słabości algorytmu.

We wczesnych latach 70-tych, ucząc się w liceum, byłem przekonany że udało mi się opracować doskonały algorytm szyfrujący. Prosty strumień pseudolosowy był dodawany do tekstu jawnego, dając w wyniku szyfrogram. Na pozór udaremniało to wszelkie próby analizy częstościowej szyfrogramu i było nie do złamania nawet przez doskonale wyposażone służby specjalne. Byłem z niego bardzo dumny i bardzo pewny siebie. Tak szczeniacko pewny..

Kilka lat później znalazłem ten sam algorytm opisany w kilku wprowadzających artykułach z dziedziny kryptografii. Fajnie, inni też wpadli na ten pomysł. Problem w tym, że mój algorytm był przytoczony jako przykład szyfru ulegającego elementarnym technikom kryptoanalitycznym. Tyle zostało z mojego szyfru.

To wstydliwe doświadczenie nauczyło mnie, jak łatwo wpaść w fałszywe przekonanie o bezpieczeństwie opracowanego algorytmu. Większość ludzi mało zdaje sobie sprawę z tego, jak diabelnie trudno zaprojektować jest szyfr, który oprze się długotrwałym i zdeterminowanym próbom złamania przez dobrze wyposażonego przeciwnika. Większość mainstreamowych programistów opracowało równie naiwne szyfry (często analogiczne do mojego), co więcej, sporo weszło w skład komercyjnych systemów i zostało sprzedanych za ciężkie pieniądze niczego nie podejrzewającym użytkownikom.

To tak jakby sprzedawać kierowcom pasy bezpieczeństwa, które wyglądają i leżą doskonale, ale nie wytrzymują najsłabszego naprężenia. Poleganie na nich może być bardziej niebezpieczne niż jazda bez pasów. Poleganie na słabym algorytmie może wystawic istotne dane na ryzyko. To ryzyko mogłoby nie zaistnieć, gdybyś w ogóle obywał się bez takich szyfrów [zaszyfrowane dane stanowią większą pokusę od niezaszyfrowanych, na które przeciwnik mógłby nawet nie spojrzeć -JBW]. A tak, prawdopodobnie nawet nie będziesz wiedział że Twoje dane dostały się w niepowołane ręce.

Spora rzesza komercyjnych programów używa federalnego standardu szyfrowania danych DES, przyzwoitego szyfru konwencjonalnego zalecanego przez władze do użytku handlowego (zastanawiająca rzecz, że niezalecanego dla danych oznaczonych jako poufne - hmm). DES może pracować w kilku trybach, różniących się siłą. Władze nie zalecają używania najprostszego i najsłabszego trybu - elektronicznej książki kodowej (ECB). Zalecane jest natomiast używanie innych trybów - CFB (sprzężenia zwrotnego) i CBC (szyfrowania blokowego).

Tymczasem większość dostępnych w handlu programów, z jakimi miałem kontakt, używa właśnie trybu ECB. Rozmowa z autorami tych implementacji przyniosła ciekawe efekty: żaden z nich nie słyszał nawet o CBC czy CFB, ani o słabościach trybu ECB. Wynikający stąd wniosek, że nie mają oni elementarnej wiedzy o kryptografii, niestety nie nastraja optymistycznie. Częste jest także niedpowiedzialne i niebezpieczne zarządzanie kluczami. Programy te oferują także zamiennie szybsze algorytmy szyfrujące. Przekonanie ich autorów o bezpieczeństwie dorównującym standardowi DES jest również całkowicie błędne. Zwykle okazywały sie one prostymi wariacjami mojego szyfru z lat szkolnych. Prawdopodobnie nie były one nawet dokładnie analizowane, a mimo to ich autorzy z przekonaniem zapewniali mnie o ich bezpieczeństwie, mówiąc że spokojnie mogę im zaufać. Jestem pewien, że wierzą oni w błyskotliwość swoich algorytmów, ale skąd ja mam nabrać takiej pewności nie mając okazji ich przeanalizować?

Gwoli sprawiedliwości muszę przyznać, że w większości przypadków owe zastraszająco słabe szyfry nie znjdowały miejsca w programach firm specjalizujących się w kryptografii.

Niestety, nawet naprawdę dobre programy używające DES w silniejszych trybach nie są obecnie zbyt bezpieczne. Standardowa implementacja DES używa klucza 56-bitowego, który może być dziś łatwo złamany przez wyczerpujące przeszukiwania kluczy przy użyciu szybkich mikroprocesorów. DES osiągnął kres swojej użyteczności. Tak samo oprogramowanie na nim się opierające.

Amerykańska firma AccessData (87 East 600 South, Orem, utah 84058, tel. 1-800-658-5199) sprzedaje za 185 USD program łamiący szyfry zastosowane w aplikacjach WordPerfect, Lotus 1-2-3, MS Excel, Symphony, Qattro Pro, Paradox i MS Word 2.0. Program ten nie zgaduje haseł - dokonuje prawdziwej kryptoanalizy. Kupują go ludzie którzy zapomnieli haseł do swoich danych, kupują instytucje śledcze. Eryk Thompson, autor, powiedział mi że w rzeczywistości złamanie hasła zajmuje programowi ułamek sekundy. By nie wydawało się to klientowi zbyt proste, algorytm zawiera specjalne pętle opóźniające. Powiedział też, że z łatwością złamany może być szyfr programu PKZip i że rządowi klienci regularnie korzystają z tej usługi w innej firmie.

Kryptografię można pod tym względem porównać do farmacji. Jakość szyfru, tak jak jakość lekarstwa może być całkowicie zwodnicza. Zła penicylina wygląda dokładnie tak samo jak dobra. Kryptogram wyprodukowany przez słaby algorytm szyfrujący nie wygląda gorzej od wyprodukowanego przez silny algorytm. W przeciwieństwie do lekarza-szarlatana projektanci tych algorytmów rzadko zdają sobie sprawę z ich wad. Dobry programista może zaprojektować algorytm, który będzie działał bezbłędnie, ale co z tego jeśli ma on nikłe pojęcie o kryptografii? Poprawność działania nie implikuje poprawności kryptograficznej.

Przekonanie o odporności szyfru na kryptoanalizę może sugerować, że mamy do czynienia albo z niesłychanie utalentowanym geniuszem, albo naiwnym i niedoświadczonym kryptologiem. Czasem spotykam ludzi, chcących uzupełnić PGP o takie "niełamalne" szyfry własnego pomysłu.

Przypomina mi się rozmowa z Brianem Snowem, wysoko postawionym długoletnim kryptologiem z NSA. Powiedział mi on, że nigdy nie zaufałby algorytmowi wymyślonemu przez kogoś, kto nie spędził uprzednio wiele czasu łamiąc szyfry. Miało to głęboki sens. Zauważyłem, że praktycznie nikt, zajmujący sie kryptografią na potrzeby rynku, nie spełnia tego warunku. - Zgadza się, odpowiedział Snow z uśmiechem - bardzo ułatwia to nam pracę w NSA. Dość nieprzyjemna świadomość. Wówczas i ja nie spełniałem tego warunku.

Władze również mają na swoim koncie tworzenie takiego złudnego poczucia bezpieczeństwa. Po Drugiej Wojnie Światowej, Amerykanie sprzedawali niemieckie maszyny szyfrujące Enigma państwom Trzeciego Świata. Nie informowali jednak, że Alianci złamali Enigmę jeszcze w czasie wojny, a fakt ten był utrzymywany w tajemnicy przez długie lata. [w rzeczywistości Enigma została złamana jeszcze przed wojną; dokonała tego trójka polskich matematyków, pracowników Biura Szyfrów w Warszawie -PK]. Szyfr Enigmy jest stosowany po dziś dzień jako standard w systemach Unix, częściowo dlatego że władze ograniczyły legalne stosowanie lepszych algorytmów. W roku 1977 próbowano nawet zapobiec publikacji algorytmu RSA. Duże środki zostały podjęte dla uniemożliwienia publicznego wykorzystania bezpiecznej telefonii kodowanej.

Głównym zadaniem amerykańskiej NSA jest gromadzenie i analiza informacji wywiadowczych, zdobywanych głównie przez podsłuch prywatnych kanałów informacyjnych (James Bamford "The Puzzle Palace"). NSA jest doskonale przygotowana do łamania szyfrów, ale odcięcie społeczeństwa od dobrych algorytmów szyfrujących czyni ich zadanie niemalże trywialnym. NSA jest również instytucją odpowiedzialną za ocenę oraz dopuszczanie do użytku algortymów szyfrujących. Krytycy porównują taki układ do stawiania lisa na straży kurnika. Zaprojektowane przez NSA i dopuszczone do komercyjnego wykorzystania algorytmy są tajne i nikt nie może sprawdzić na własną rękę jaka jest ich rzeczywista wartość. [chodzi tu zapewne o szyfr FELIX -PK] Agencja chce, by społeczeństwo jej zaufało i używało tych szyfrów ze świadomością, że coś, co zostało przez specjalistów z NSA zaprojektowane może być przez nich również baz trudu złamane. Czyż nie jest to świadome stwarzanie złudnego poczucia bezpieczeństwa?

Na jakość amerykańskiego oprogramowania kryptograficznego miały wpływ trzy czynniki. Pierwszy z nich, to niemal powszechna nieznajomość problemu wśród twórców tego oprogramowania. Przeświadczenie tych ludzi o własnej wiedzy i talencie w tym zakresie doprowadziło do prawdziwego zalewu programów o naprawdę nikłej wartości. Drugi czynnik, to nieustanne blokowanie prób wypuszczenia na rynek dobrej jakości technologii bądź przez ograniczenia prawne bądź naciski ekonomiczne. Zaostrzenie przepisów dotyczących kontroli eksportu oprogramowania kryptograficznego zaowocowało ograniczeniem prac prowadzonych przez prywatne firmy, pozbawione w ten sposób chłonnych rynków zbytu. Ostatnim ze sposobów na blokowanie upowszechniania i rozwoju dobrych algorytmów szyfrujących jest przyznawanie patentów na wszystkie systemy kryptografii publicznej jednej tylko firmie. Wszystko to doprowadziło do tego, że przed PGP nie było w Ameryce naprawdę bezpiecznych danych.

Nie jestem już tak przekonany o "niełamliwości" zastosowanych w PGP rozwiązań, jak było to w przypadku mojego pamiętnego szyfru z czasów szkolnych. I byłby to zły znak, gdybym w takim przekonaniu się utrzymywał. Mam natomiast świadomość, że PGP nie zawiera żadnego w znaczący sposób ograniczającego bezpieczeństwo błędu, chociaż sam program oczywiście może mieć pewne usterki. Algorytm RSA został zaprojektowany przez wysokiej klasy specjalistów z najlepszych szkół kryptografii, i wielokrotnie był poddawany dogłębnej analizie przez innych ludzi. PGP jest rozprowadzane z kodem źródłowym by umożliwić każdemu samodzielną ocenę jakości programu. Oczywiście nie pracuję dla NSA. Korzystanie z PGP nie zmusza nikogo do dawania zaufania na kredyt.


Krzysztof Marek Matyskiel, Grzegorz Wójcik