Jakość przez eliminację

Znalezienie dobrego rozwiązania kryptograficznego jest trudne. Znacznie łatwiej wyeliminować te, które bezpieczne na pewno nie są.

Znalezienie dobrego rozwiązania kryptograficznego jest trudne. Znacznie łatwiej wyeliminować te, które bezpieczne na pewno nie są.

Czy nie będąc ekspertem w dziedzinie kryptografii można ocenić jakość i funkcjonalność systemów do szyfrowania i zabezpieczania danych? Raczej nie, ale planując tego typu zakup warto przynajmniej zdawać sobie sprawę z kilku prawd, które mogą pomóc w obronie przed naciąganą argumentacją sprzedawców. Wiele z podkreślanych przez nich zalet nie ma praktycznego znaczenia lub ma znaczenie marginalne. Bywa, że sami sprzedawcy nie wiedzą, co tak naprawdę ma znaczenie.

Dokładne zbadanie, czy system szyfrowania danych zapewnia oczekiwany poziom bezpieczeństwa, wymaga zatrudnienia najwyższej klasy ekspertów. Kilka prostych zasad opracowanych przez doktora Simsona Garfinkela z Uniwersytetu Harvarda pozwala na względnie łatwą ocenę podstawowych parametrów rozwiązań kryptograficznych pod kątem słabych punktów. Jeśli parametry te nie są spełnione, nie oznacza to koniecznie, że system jest podatny na złamanie, ale może być przyczynkiem do bardziej wnikliwej analizy.

1. Zbyt krótkie klucze szyfrujące

Bezpieczeństwo większości popularnych systemów kryptograficznych zależy od poziomu utajnienia kluczy szyfrujących. Osoba próbująca uzyskać nieuprawniony dostęp może zastosować metodę ataku bezpośredniego (tzw. brute force), która polega na sprawdzaniu wszystkich możliwych kombinacji klucza. Im klucz jest dłuższy, tym trudniej taki atak przeprowadzić, bo liczba różnych kombinacji rośnie.

Istnieją dwa podstawowe rodzaje algorytmów szyfrujących: symetryczne, jak DES (Data Encryption Standard) lub AES (Advanced Encryption Standard) oraz wykorzystujące tzw. klucz publiczny, służący do dekodowania danych zaaszyfrowanych za pomocą klucza prywatnego (algorytmy m.in. RSA i Diffie-Hellman). Ogólnie można przyjąć, że algorytmy symetryczne wykorzystujące klucze o długości mniejszej niż 128 bitów nie są bezpieczne i nie powinny być stosowane. Podobnie, w przypadku algorytmu RSA, nie należy wykorzystywać kluczy krótszych niż 1024 bity.

2. Zbyt długie klucze szyfrujące

Popularny standard AES dopuszcza stosowanie kluczy o długościach 128, 192 lub 256 bitów. Jeżeli jednak dłuższe klucze są bardziej bezpieczne, można zadać pytanie, dlaczego do standardu nie wprowadzono obsługi symetrycznych kluczy o długości 512 lub 1024 bity?

Paradoksalnie okazuje się, że zwykle nie zwiększa to bezpieczeństwa. Jeśli bowiem uwzględnić istniejące ograniczenia mocy obliczeniowej komputerów, to w przewidywalnej przyszłości stosowanie 192- lub 256-bitowych kluczy nie daje praktycznie żadnego wzrostu poziomu zabezpieczenia. Wynika to z tego, że w ciągu najbliższych 10 lub nawet 20 lat nawet najwydajniejsze komputery nie będą w stanie złamać kluczy 128-bitowych przy wykorzystaniu metod ataku bezpośredniego.

W efekcie dodatkowe bity dają większe bezpieczeństwo, lecz jedynie teoretycznie - z praktycznego punktu widzenia wydłużenie klucza nie ma większego znaczenia. Dążenie do ciągłego zwiększania długości kluczy szyfrujących wynika przede wszystkim z zaszłości historycznych, a niekiedy także ze względów marketingowych.

W latach 90. systematycznie pojawiały się doniesienia o łamaniu przez naukowców kolejnych, coraz dłuższych kluczy szyfrujących, co utrwaliło przekonanie, że dla zachowania bezpieczeństwa co kilka lat trzeba zwiększać liczbę wykorzystywanych przez nie bitów. Natomiast mało kto pamięta, że obowiązujące wówczas amerykańskie regulacje prawne były barierą wymuszającą stosowanie już wtedy nierozsądnie krótkich kluczy. Przepisy te dawno zostały zmienione, ale przeświadczenie o konieczności wydłużania kluczy pozostało.

Trend polegający na zwiększaniu długości kluczy jest także wynikiem działań marketingowych. Trudniej jest sprzedawać oprogramowanie ze 128-bitowym algorytmem szyfrującym, gdy firma konkurencyjna oferuje system wykorzystujący klucze 256-bitowe. Dlatego też, jeśli dostawca mówi, że oferuje system z 256-, a może 448- lub 100 00-bitowym szyfrowaniem, bo klucze 128-bitowe nie są bezpieczne, to należy podejrzewać, że najprawdopodobniej nie bardzo wie, o czym mówi.

3. Firmowe algorytmy

Za podejrzanie długimi kluczami stoją zazwyczaj niestandardowe, firmowe algorytmy szyfrujące. Jeśli producent oferuje tego typu rozwiązanie, należy zachować szczególną ostrożność. Standardowe mechanizmy, takie jak DES, 3DES, AES lub RSA są znane, dobrze sprawdzone oraz rozwijane od kilkudziesięciu już lat przez wysokiej klasy specjalistów i powszechnie uważane za wystarczające do zabezpieczania danych przed nieuprawnionym dostępem. Z tego właśnie względu trudno znaleźć racjonalne powody przemawiające za zastosowaniem algorytmów niestandardowych.

Jak pokazuje doświadczenie, utajnione, firmowe algorytmy rzadko kiedy są równie bezpieczne co mechanizmy szyfrowania oparte na opublikowanych i publicznie analizowanych rozwiązaniach. Oprócz tego podstawowa doktryna współczesnej kryptografii mówi, że bezpieczeństwo systemu powinno być oparte na zabezpieczeniu dostępu do klucza, a nie sile algorytmu szyfrującego wykorzystującego tenże klucz jako jeden z argumentów wejściowych dla funkcji.

Wynika to z tego, że obecnie praktycznie niemożliwe jest zachowanie algorytmu w tajemnicy - z reguły haker zawsze ma możliwość skopiowania programu i przeanalizowania jego kodu w celu odtworzenia stosowanego algorytmu. Jeśli dostawca oprogramowania twierdzi, że nikt nie zna i nie ma dostępu do jego firmowego algorytmu, to wynika to tylko z tego, że być może nikt nie był dotąd dostatecznie zmotywowany, by podjąć się jego analizy.

Najlepszym przykładem może być historia pilnie strzeżonego algorytmu zabezpieczającego przed kopiowaniem płyt DVD, który został powszechnie zaakceptowany przez potentatów przemysłu audio-wideo i zastosowany w dziesiątkach milionów odtwarzaczy DVD wprowadzonych na rynek na całym świecie, a później złamany przez ucznia szkoły średniej.

Dlaczego więc producenci wciąż oferują systemy szyfrujące oparte na "tajnych", firmowych algorytmach? Jak uważają niektórzy specjaliści, wynika to najczęściej z ambicji żądnych sławy programistów, czasem z chęci zmniejszenia kosztów, ale najczęściej z braku zrozumienia dla fundamentalnych zasad kryptografii.

4. Klucze, których nie można zmienić

Jeśli bezpieczeństwo zależy od klucza, a nie algorytmu szyfrującego, to w przypadku gdy zostanie on złamany lub ujawniony, powinna istnieć możliwość jego zmiany. Wydaje się to oczywiste, ale wiele systemów dostępnych na rynku wykorzystuje stałe, niemożliwe do zmodyfikowania klucze szyfrujące. Najlepszym tego przykładem jest właśnie system zabezpieczeń płyt - początkowo producentom wydawało się, że w przyszłości będą mogli zmodyfikować klucze, jeśli algorytm zostanie złamany, ale gdy to nastąpiło, okazało się, że nie ma sensownej metody aktualizacji wszystkich odtwarzaczy wprowadzonych wcześniej na rynek.

5. Prosta ocena nie zawsze pomaga

Tych kilka prostych, przedstawionych wyżej zasad może służyć do podstawowej oceny potencjalnej wartości rozwiązania kryptograficznego oferowanego przez potencjalnego dostawcę systemu. Ale należy pamiętać, że by nie popełnić błędu, czasami niezbędna jest nieco większa wiedza techniczna. Na przykład jednym z zyskujących popularność rozwiązań są systemy zabezpieczeń biometrycznych wykorzystujące odciski palców, rozpoznawanie głosu lub wzoru tęczówki oka. Są to "klucze", których nie można zmodyfikować, a więc stoją w sprzeczności z jedną z wymienionych podstawowych zasad dobrego systemu kryptograficznego. Ale jest to sprzeczność pozorna, jeśli uznać, że ich skopiowanie jest niemożliwe lub przynajmniej bardzo trudne.

Teoretyczne łamanie SHA-1

Na początku br. pojawiła się informacja, że najpopularniejszy algorytm szyfrujący SHA-1 (Secure Hash Algorithm) został złamany przez zespół chińskich naukowców z uniwersytetu w Shandong. SHA-1 został opracowany przez NSA (National Security Agency) w 1995 r. i jest powszechnie wykorzystywany do zabezpieczania transmisji w Internecie, m.in. w protokołach SSH, SSL, S/MIME, IPsec (przeglądarki internetowe, programy pocztowe i komunikatory tekstowe), a także oprogramowaniu PGP, programach do szyfrowania plików lub całych dysków oraz systemach dostępowych VPN. Informacja ta wywołała duże poruszenie wśród ekspertów, ale ich opinie na temat jej wpływu na rynek systemów szyfrujących okazały się mocno podzielone.

SHA-1 wykorzystuje mechanizm niezależnego przesyłania zaszyfrowanej wiadomości oraz podpisu cyfrowego, które są dekodowane i sprawdzane przez algorytm SHA-1 wykorzystywany przez odbiorcę. Teoretyczne prawdopodobieństwo nieuprawnionego odkodowania zaszyfrowanego pliku wynosi 1:280 (2 do potęgi 80). Chińskim naukowcom udało się opracować metodę zwiększenia tego prawdopodobieństwa do poziomu 1:269 (2 do potęgi 69).

W praktyce typowy haker w dalszym ciągu nie będzie w stanie złamać algorytmu, nie mając dostępu do komputerów o ogromnej mocy obliczeniowej, ale wywołuje wątpliwości, czy przewidywana dotąd użyteczność SHA-1 aż do 2010 r. nie ulegnie skróceniu. Już teraz dostępna jest kolejna, silniejsza wersja SHA-256, ale dopiero zaczyna być wykorzystywana w oprogramowaniu komercyjnym.


TOP 200