Kryptografia Blurry Box
Zasada Kerckhoffa
![]() |
Auguste Kerckhoffs |
Auguste Kerckhoffs postulował swoją tytułową zasadę jeszcze w XIX wieku: "System kryptograficzny powinien być bezpieczny, nawet jeśli wszystkie szczegóły jego działania - z wyjątkiem klucza - są znane".
Oznacza to, że skuteczna metoda nie musi być utrzymywana w tajemnicy. Wibu-Systems jest wierne tej zasadzie od wielu lat. Podczas gdy wiele innych kluczy sprzętowych dostępnych na rynku opiera się na zastrzeżonych algorytmach, Wibu-Systems już w 1992 roku, kiedy po raz pierwszy wprowadzono do sprzedaży WibuKey, zaczęło używać dobrze znanego publicznego algorytmu FEAL i opublikowało schemat obliczania klucza w instrukcji obsługi WibuBox. Wiele systemów, których zasada działania była zastrzeżona, zostało złamanych już na wczesnym etapie. Tymczasem WibuKey jeszcze długo pozostawał w użyciu, aż do chwili, gdy 40-bitowy klucz (używany z powodu ograniczeń eksportowych) okazał się zbyt mały. Obecne WibuBoxy używają kluczy o długości 64 bitów i dotąd nie zostały złamane. Pierwsza wersja CodeMeter, która pojawiła się w 2003 roku, wykorzystywała 256-bitowy publiczny algorytm szyfrowania AES. I tak samo jak wcześniej, żaden z CmDongles nie został do dziś złamany.
Koncepcja
W odróżnienia od procesu szyfrowania, który ma miejsce w kluczu sprzętowym, do tej pory nie udostępniono żadnych sposobów implementacji bezpiecznych zabezpieczeń, które mają miejsce w oprogramowaniu. Przekłada się to na "Security by Obscurity", czyli dokładne przeciwieństwo tego, co zakłada zasada Kerckhoffa.
Tym samym oznacza to jednocześnie, że niepublikowane metody nie mogą być ani oceniane, ani porównywane ze sobą. W przypadku Wibu-Systems dajemy taką możliwość, bowiem podczas naszych wykładów i wydarzeń związanych z CodeMeter Protection Suite omawiamy zastosowane metody i funkcjonalności. Dzięki Blurry Box kryptografia zostaje podniesiona na nowy poziom. Kryptografia Blurry Box oferuje ochronę oprogramowania, która całkowicie oparta jest na publicznie dostępnych metodach, a zatem może być oceniana i porównywana. Jednocześnie kryptografia Blurry Box może być łączona z tradycyjnymi metodami CodeMeter Protection Suite.
Podstawową zasadą kryptografii Blurry Box jest użycie jednego lub więcej bezpiecznych kluczy w kluczu sprzętowym Dongle oraz złożoność samej implementacji. Jej celem jest sprawienie, by nakład wymagany do nielegalnego skopiowania oprogramowania był wyższy niż nakład potrzebny do całkowitego przepisania tego samego oprogramowania. Zasadniczo nic nie może powstrzymać atakującego, który wie, jak działa dany element oprogramowania przed stworzeniem podobnego oprogramowania - nic poza wymaganym nakładem.
Metody
Kryptografia Blurry Box składa się z siedmiu metod, które zwiększają nakład wymagany do stworzenia kopii do tego stopnia, że łatwiej i szybciej jest opracować oprogramowanie od podstaw.
Tworzenie wariantów
Aby zwiększyć złożoność oprogramowania, funkcje programowe są powielane jako warianty tych funkcji. W zależności od podanych parametrów wejściowych funkcja opakowująca (wrapper) wybiera, który wariant jest wykonywany.
Modyfikacja wariantów
Poszczególne warianty są modyfikowane tak, aby działały tylko w zakresie wartości prawidłowych dla każdego wariantu. Uniemożliwia to atakującym modyfikacje funkcji wrappera, których celem jest to aby za każdym razem wykonywała tylko ten sam wariant.
Szyfrowanie wariantów
Wszystkie warianty są zaszyfrowane, aby uniemożliwić atakującym inżynierię wsteczną kodu bez jego wcześniejszego odszyfrowania.
Wstawianie pułapek
Oprócz już wygenerowanych wariantów, tworzone są dodatkowe warianty - pułapki, które są szyfrowane. Pułapka zawiera kod blokady, co oznacza, że jeśli pułapka zostanie odszyfrowana za pomocą klucza sprzętowego, klucz sprzętowy sam się zablokuje i nie będzie już mógł być używany do odszyfrowywania. Uniemożliwia to atakującemu odszyfrowanie wszystkich metod bez inżynierii wstecznej.
Wybór wariantu klucza sprzętowego
Funkcja opakowująca podczas wyboru wariantu korzysta z klucza sprzętowego. Wysyła do niego parametry wejściowe a zwracany jest wariant, który ma być użyty. Sprawia to, że atakujący nie jest w stanie rozpoznać za pomocą inżynierii wstecznej funkcji wrappera, który wariant jest potrzebny. Musiałby uruchomić kod dla wszystkich możliwych parametrów wejściowych, aby móc go wskazać z absolutną pewnością.
Zapisywanie statusów w kluczu sprzętowym
Funkcje wykonywane są w takiej kolejności jaką przewidział programista. Ostatnia metoda służąca do deszyfrowania przechowywana jest w kluczu sprzętowym jako status. W trakcie kolejnego odszyfrowywania następuje weryfikacja oczekiwanego statusu. Jeśli wynik jest negatywny, można uruchomić pułapkę. Uniemożliwia to atakującemu wypróbowanie wszystkich wariantów w dowolnym momencie wykonania programu. Musiałby on w tym celu zawsze wracać do punktu wyjścia. W ten sposób rośnie złożoność przeprowadzanego ataku.
Opóźnienie deszyfrowania
Podczas normalnej pracy co 30 sekund można wykonać tylko określoną liczbę odszyfrowań. Liczba ta jest przechowywana w kluczu sprzętowym jako próg odszyfrowywania. Klucz sprzętowy odpowiednio przyspiesza odszyfrowywanie. Mechanizm ten, obok zwiększenia złożoności całego procesu, skutecznie spowalnia atakującego.
Podsumowanie
Kryptografia Blurry Box wykorzystuje siedem opublikowanych metod, które znacznie zwiększają złożoność i czas wymagany na przeprowadzenie udanego ataku. Ostatecznie, dla potencjalnego atakującego łatwiejsze i tańsze byłoby stworzenie podobnego oprogramowania od podstaw. Kryptografia Blurry Box może być połączona z metodami antydebugowania i zaciemniania typowymi dla pakietu CodeMeter Protection Suite. Dzięki Blurry Box ochrona oprogramowania staje się mierzalna i porównywalna. Nie musisz polegać na ślepej wierze: kupujesz rozwiązanie, które zostało dokładnie przetestowane i zaakceptowane przez ekspertów w tej dziedzinie.
Jesteś zainteresowany spersonalizowaną ofertą na naszą technologię CodeMeter? Wystarczy odpowiedzieć na kilka pytań, a nasz zespół skontaktuje się z Tobą i przekaże wszystkie potrzebne informacje.
Prześlij