Artykuły brunon Hołyst, Jacek Pomykała



Pobieranie 88,96 Kb.
Data25.05.2018
Rozmiar88,96 Kb.

Kryminalistyczne metody ujawnialności...

ARTYKUŁY

Brunon Hołyst, Jacek Pomykała

Kryminalistyczne metody ujawnialności przekazów kryptograficznych

I. Wprowadzenie

Gwałtowny wzrost przestępczości oraz próby jej ograniczenia wywierają niewątpliwy wpływ na postęp w dziedzinie kryminalistyki. W ostatnich dziesięcioleciach technika kryminalistyczna, jak i prawie wszystkie dyscypliny nauk przyrodniczych, osiągnęły takie postępy, że w XXI stuleciu już niewiele pozostanie pytań w zakresie ekspertyz w postępowaniu karnym, na które by nie można udzielić odpowiedzi pewnej lub odpowiedzi z określonym stopniem prawdopodobieństwa. Wyjątek mogą stanowić jedynie te dziedziny, w których długotrwałe badania nie zostały jeszcze zakończone. Chodzi tu głównie o takie dziedziny, jak elektroniczne techniki transmisji w zakresie fałszerstw dokumentów, określenie wieku różnego rodzaju śladów, począwszy od odcisków palców poprzez ślady narzędzi aż po środki kryjące pisma, ślady postrzałów bądź dokładniejsze ustalenie czasu zgonu.

Można więc prognozować, że wiele otwartych pytań znajdzie pewną bądź zbliżoną do pewnej odpowiedź. Przestępstwo tzw. doskonałe oddala się coraz bardziej. Ze śladów uzyskuje się ściślejsze informacje i coraz częściej można ustalić ich związki z konkretnymi osobami1.

Więcej specjalistów przy doskonalszej technice laboratoryjnej osiąga dokładniejsze wyniki badań. Nie ma dziś kryminalistyków–omnibusów w obszernej dziedzinie chemii, fizyki czy biologii kryminalistycznej. W zakresie badań dokumentów są już specjaliści od badań druków, pieczęci, pisma maszynowego, fotokopii, holografii, kinegrafii. Odrębnie organizacyjnie są usytuowani eksperci pisma ręcznego. Oddzielne też są dziedziny lingwistycznej analizy tekstów i rozpoznawania osoby na podstawie głosu.

Wobec tak potężnego naukowego spektrum z coraz nowszą, wyrafinowaną metodyką badań – powoływane są dziś wielkie państwowe instytuty, prowadzące badania podstawowe, zdolne do realizacji zadań kompleksowych i badań interdyscyplinarnych. Są one w stanie opracowywać grupy śladów i właściwie oceniać ich współzależność. Instytuty uniwersyteckie nie zajmują się całym zakresem badań, nie organizują narad i konsultacji, tak jak dzieje się to w instytutach kryminalistycznych, nie podejmują się w ogóle przeprowadzania niektórych badań.

Żyjemy już w XXI wieku – „Wieku Informacji”. Dla rozwoju techniki kryminalistycznej niezwykle cenna jest wymiana informacji o postępie w różnych dziedzinach nauki, odgrywająca ważną rolę w zapobieganiu i zwalczaniu przestępczości. Tak więc wyłania się zagadnienie o wielkiej doniosłości, a mianowicie optymalizacja współpracy międzynarodowej, dzięki której w wielu państwach zmniejszy się deficyt w zakresie teorii kryminalistyki i wyposażenia technicznego laboratoriów. Ta współpraca jest szczególnie ważna w przypadkach coraz groźniejszego terroryzmu.

We współczesnym świecie ataki terrorystyczne stanowią stale rosnące zagrożenie. Niepodważalnym też jest fakt, że terroryści wykorzystają do przygotowania i koordynacji działań zdobycze współczesnej kryptografii2. Przykładami są tu systemy kryptograficzne, przekazy podprogowe czy steganografia.

Celem obecnego artykułu jest poszerzenie tej perspektywy i udowodnienie, że kryptologia dostarcza też skutecznych metod działania w dziedzinie kryminalistyki, będąc zarówno narzędziem prewencyjnym, jak i metodą gromadzenia dowodów i ścigania przestępstw wykorzystujących systemy informatyczne i sieci komputerowe. Przykładów dostarczają metody kryptoanalizy, alternatywne metody podpisu cyfrowego, czy techniki wykrywania przekazów steganograficznych na stronach www opracowanych między innymi przez Nielsa Provosa i Petera Honeymana z Uniwersytetu stanu Michigan3.

Współczesne badania kryminalistyczne muszą więc uwzględniać tę stosunkowo nową dziedzinę w postępowaniach związanych z zapobieganiem i wykrywalnością przestępstw komputerowych oraz działalnością antyterrorystyczną. Są więc to obszary ściśle związane z metodami ochrony danych i polityką bezpieczeństwa w sieciach komputerowych.

Generalnie można wyodrębnić następujące zakresy w ramach systemów bezpieczeństwa:

  • bezpieczeństwo sieci i urządzeń telekomunikacyjnych,

  • bezpieczeństwo systemów operacyjnych,

  • systemy kontroli dostępu,

  • kontrola ciągłości funkcjonowania organizacji oraz odtwarzalności systemów,

  • projektowanie, modele i architektury bezpieczeństwa,

  • bezpieczeństwo fizyczne,

  • prawo, dochodzenie i etyka,

  • systemy kryptograficzne.

W pracy jednak będziemy zajmować się głównie bezpieczeństwem związanym ze stosowaniem metod i systemów kryptograficznych. Prowadzą one do określenia perspektyw rozwoju metod kryminalistycznych wykorzystujących odpowiednie narzędzia kryptograficzne. W artykule omówimy podstawowe zasady i mechanizmy użycia narzędzi kryptologicznych do ujawnialności przekazów kryptograficznych. Badania kryminalistyczne nie mogą jednak ograniczać się tylko do zrozumienia zasad działania systemów kryptograficznych i związków z ewidentnymi dowodami ujawniającymi wykroczenia podmiotów komunikacji elektronicznej. Muszą iść znacznie dalej: wskazywać na potencjalne słabości systemów, ich implementacji oraz granice tolerancji błędów spowodowanych przez człowieka. W badaniach odporności systemów kryptograficznych na ataki fundamentalną rolę pełnią metody kryptoanalizy. Będzie im poświęcony rozdział 2. W pracy zamierzamy jednak posunąć się jeszcze o krok dalej. Podobnie jak nie ma zbrodni doskonałej, żaden atak kryptologiczny na system, w którym żadne ogniwo nie ma luk, nie gwarantuje powodzenia. Pojawiają się zatem nowe obszary badań kryminalistycznych polegające na śledzeniu, wytrapianiu i przeciwdziałaniu wszelkiego rodzaju oszustwom, których celem są fałszywe ślady, tropy czy wręcz dowody winy. Przestępczość wykorzystująca sieci komputerowe bardzo szybko podąża za nowymi rozwiązaniami mającymi na celu ich zwalczanie. Metody kryminalistyczne powinny sięgać równie głęboko do źródeł kryptologicznych, jak ci, których cele są wymierzone przeciwko demokracji i prawu.

II. Pojęcie ujawnialności przekazu kryptograficznego

Przekaz kryptograficzny jest rozumiany jako triada (źródło, wiadomość, odbiorca), gdzie wiadomość może występować zarówno w postaci jawnej, jak i zaszyfrowanej (kryptogram). Zarówno źródło, jak i odbiorca mogą być zbiorami podmiotów.

Kluczowym pojęciem dla badań kryminalistycznych wykorzystujących kryptografię jest pojęcie ujawnialności przekazu kryptograficznego. Ujawnialność przekazu może być całkowita (pełna) lub częściowa (niepełna). Pełna ujawnialność dotyczy ujawnienia treści wiadomości, oryginalnego źródła jej pochodzenia i adresata docelowego. Źródło rozumiane jest tu jako przyczyna sprawcza, tj. osoba (osoby), która ponosi odpowiedzialność lub współodpowiedzialność za jej stworzenie. Oznacza to, że posiadamy dowód obciążający ją jako twórcę (współtwórcę) danej wiadomości. Podobnie adresat docelowy jest rozumiany jako domniemany odbiorca wiadomości. Pełna ujawnialność przekazu implikuje, iż posiadamy dowód na to, że treść przekazywanej wiadomości została poznana przez odbiorcę.

Ujawnialność częściowa dotyczy niepełnej ujawnialności w odniesieniu do treści wiadomości, źródła jej pochodzenia lub jej odbiorcy (dopuszczając dowolne kombinacje tych czynników). Jest nią w szczególności informacja, że dany kryptogram pochodzi z dwóch różnych źródeł lub dowód, że dwie różne wiadomości pod postacią kryptogramów pochodzą z tego samego źródła. Ujawnialność ukrytej (zaszyfrowanej) wiadomości oraz jej źródła (nadawcy) pozwala na postawienie nadawcy w stan oskarżenia, o ile stanowi ona dowód winy nadawcy. Podobnie ujawnialność wiadomości i jej odbiorcy może stanowić dowód winy (lub współwiny) jej odbiorcy. Dowody winy odnoszą się ogólnie do działań sprzecznych z prawem, w tym do treści zakazanych w sieciowym obiegu informacyjnym lub wszelkiego rodzaju oszustw w komunikacji elektronicznej. Kluczowym narzędziem wykorzystywanym dla ujawnialności przekazów kryptograficznych są metody kryptoanalizy, które omówimy pokrótce w następnym rozdziale.

III. Metody kryptoanalizy

Kryptoanaliza jest tą częścią kryptologii, która zajmuje się łamaniem szyfrów, a w ostatecznym wymiarze dostarcza wiedzy, która skutkuje podwyższeniem poziomu odporności systemu na potencjalne ataki kryptograficzne.

Wyróżniamy cztery podstawowe typy ataków na system kryptograficzny4:

  1. atak ze znanym kryptogramem, gdy przeciwnik poznaje jedynie wartość kryptogramu,

  2. atak ze znanym tekstem jawnym, gdy przeciwnik poznaje parę: (tekst jawny, kryptogram),

  3. atak z wybranym tekstem jawnym, gdy przeciwnik uzyskuje czasowy dostęp do wyroczni (maszyny) szyfrującej i może uzyskiwać wartości kryptogramów dla wybranych przez siebie wiadomości jawnych,

  4. atak z wybranym kryptogramem, gdy przeciwnik uzyskuje czasowy dostęp do wyroczni deszyfrującej i może poznawać wiadomości jawne odpowiadające wybranym kryptogramom.

W historii rozwoju kryptologii wielkim piętnem odbił się okres II Wojny Światowej. W tym czasie polskie środowisko kryptologiczne, a w szczególności trzej kryptolodzy: Marian Rejewski, Henryk Zygalski i Jerzy Różycki, przyczynili się istotnie do złamania tajemnicy niemieckiej maszyny szyfrującej Enigmy5 wykorzystywanej powszechnie przez armię hitlerowską.

Współcześnie, służby specjalne światowych potęg kryptologicznych, takich jak: USA, Wielka Brytania, Niemcy czy Izrael dysponują urządzeniami kryptograficznymi zdolnymi skutecznie łamać będące jeszcze w powszechnym użyciu algorytmy symetryczne, takie jak DES czy potrójny DES. Zaplecze teoretyczne dla tego typu ataków stanowią: kryptoanaliza różnicowa i kryptoanaliza liniowa6.

W kryptoanalizie DES-a ważne są dwie fazy algorytmu:

  1. operacja XOR na wiadomości i kluczu,

  2. obliczenia wykonywane przez S-boksy.

S-boksy definiują funkcję zadaną przez macierz wymiaru 4X16 zawierającą liczby z przedziału od 0 do 15. Na wejściu każdego S-boksu jest ciąg
6-bitowy, a na wyjściu ciąg 4-bitowy. Pierwszy i ostatni bit wejścia wskazują na wiersz, a środkowe na kolumnę wyrazu macierzy określającego wartość wyjścia. Główny pomysł kryptoanalizy różnicowej polega na tym, że dla dwu wiadomości M i M’ oraz klucza K wartość (M XOR K) XOR (M’XOR K) = M XOR M’, natomiast po przejściu przez S-boks otrzymanej wartości odpowiadają tylko niektóre dopuszczalne wartości klucza. Ta obserwacja pozwala na znaczne ograniczenie w przeszukiwaniu przestrzeni wszystkich możliwych kluczy kryptograficznych.

Główną ideą kryptoanalizy liniowej jest obserwacja, że choć S-boksy nie wyrażają się przez proste funkcje (np. liniowe), to można przybliżyć je przez proste formuły postaci: i(k) XOR... XOR i(l) = j(k’) XOR... XOR j(l’), gdzie i(s), j(s’) oznaczają s-ty bit danych wejściowych i s’-ty bit danych wyjściowych odpowiednio. Jeśli stosunkowo często (lub stosunkowo rzadko) taka formuła jest spełniona, to mówimy, że aproksymuje ona liniowo dany S-boks. Przy użyciu tej metody atak na system DES (ze znanym tekstem jawnym) dla około 43 potęgi dwójki par (tekst jawny, kryptogram) pozwala już na obliczenie klucza szyfrującego7.

Dotykamy tu problemu dużej mocy obliczeniowej podmiotu łamiącego system. Jak już pisaliśmy, taką mocą dysponują np. ośrodki NSA. Ponieważ obliczenia mogą być realizowane w określonych okolicznościach, można też wyobrazić sobie inny scenariusz: zaprojektowanie specjalnego wirusa, który wbudowuje się w system operacyjny obcych komputerów, by wykorzystać je do łamania określonych szyfrów. Wirus taki współżyje z zarażonymi programami, przejmując jedynie na krótko co jakiś czas kontrolę nad procesorem wykorzystanym do sprawdzenia, czy losowo wygenerowany klucz pasuje do zadanej pary: (wiadomość, kryptogram). Jeśli tak się stanie, to odpowiedni program (robak sieciowy) przekazuje tę informację do twórcy wirusa.

Z kolei przykładem ataku na urządzenie kryptograficzne czy kartę inteligentną wykorzystywaną w przekazie kryptograficznym może być celowe fizyczne zakłócanie pracy urządzena (np. przy użyciu promieniowania mikrofalowego) oraz badanie otrzymywanych w takich okolicznościach kryptogramów. Jeśli szyfr składa się z wielu rund, to z niepomijalnym prawdopodobieństwem tylko niektóre bity klucza (w niektórych rundach) ulegną przekłamaniu, co w konsekwencji może doprowadzić do złamania klucza. Podobną ideę z wykorzystaniem efektywnie zaimplementowanej arytmetyki modularnej (wykorzystującej twierdzenie chińskie o resztach) stosowano już do kryptoanalizy systemu niesymetrycznego RSA8.

Omawiane metody kryptoanalizy dotyczą systemów z powtarzalnym (krótkim) kluczem. W takim przypadku bezpieczeństwo systemu jest bezpieczeństwem obliczeniowym (warunkowym). Inaczej ma się rzecz, gdy używamy jednorazowego klucza (one-time pad). W takim przypadku mamy do czynienia z bezpieczeństwem bezwarunkowym (teorioinformacyjnym)9. Zgodnie z twierdzeniem Shanona, takie przekazy zapewniają doskonałą poufność komunikacji (nie są podatne na powyższe ataki). Mogą być z powodzeniem stosowane np. dla celów militarnych, ale nie komercyjnych, gdyż wymagają stosowania jednorazowych losowych kluczy o długości równej szyfrowanej wiadomości. W dalszej części spróbujemy przeanalizować różne typy przekazów kryptograficznych pod kątem możliwych oszustw w ramach działania odpowiednich protokołów kryptograficznych. Najpierw spróbujmy sklasyfikować podstawowe rodzaje takich oszustw.

IV. Rodzaje oszustw związanych z kryptografią

Oszustwa związane z przekazem kryptograficznym typu (Nadawca, Kryptogram, Odbiorca) dotyczą albo podmiotów przekazu, albo ukrytej wiadomości. W odniesieniu do wiadomości mówimy o fałszerstwie wiadomości. W odniesieniu do podmiotów typowym oszustwem jest podszycie się (impersonalizacja). Poniższej pokażemy przykłady świadczące o tym, że oszustwa mogą być bardzo wyrafinowane.

Dowodem „winy” w przypadku podszycia się jest identyfikacja źródła lub odbiorcy wiadomości, co sprowadza się do dowodu, że do stworzenia obserwowalnego kryptogramu wiadomości został użyty ten, a nie inny prywatny klucz kryptograficzny nadawcy lub odbiorcy przekazu. Standardowo dowód taki otrzymujemy dzięki zastosowaniu klucza publicznego do odpowiedniego przekształcenia kryptograficznego.

Jednak w przypadkach nieprzestrzegania wymagań bezpieczeństwa związanych ze stosowaniem określonych protokołów kryptograficznych może dojść do „wycieku” informacji na temat klucza prywatnego użytkownika. W takiej sytuacji analiza kryminalistyczna może okazać się bardzo trudna i w efekcie nie doprowadzić do ujęcia rzeczywistego sprawcy oszustwa. Standardowy dowód winy może okazać się wtedy „fałszywy”.

Głównego narzędzia do wyśledzenia wykroczenia lub przestępstwa (i przedstawienia dowodów) na fałszerstwo wiadomości dostarczają tu również metody kryptoanalizy (np. poprzez znajdowanie kolizji dla zastosowanej w podpisie funkcji haszującej). W dalszym ciągu omówimy podstawowe typy przekazów kryptograficznych, dzieląc je na następujące klasy: przekazy indywidualne (gdy nadawca lub odbiorca jest podmiotem z unikalnym prywatnym kluczem kryptograficznym), anonimowe (gdy nadawca lub odbiorca jest podmiotem reprezentującym w sposób anonimowy całą grupę użytkowników) i przekazy wielopodmiotowe (ze szczególnym uwzględnieniem przekazów progowych), gdy celem członków grupy jest ustalenie w poprawny i bezpieczny sposób wartości pewnej funkcji.

V. Przekazy indywidualne

Przykładami takich przekazów są sygnatury cyfrowe, kody uwierzytelniające, przekazy kleptograficzne, protokoły sprawiedliwej wymiany czy pełnomocnictwa cyfrowe.

Sygnatury cyfrowe były omówione dokładnie w dwóch pracach10, ograniczymy się więc do trzech ostatnich przykładów.

1. Kody uwierzytelniające

Takie przekazy mają typ: (wiadomość, kod uwierzytelniający), gdzie kod potwierdza, że wiadomość została nadana przez uprawniony podmiot. Generalnie możemy tutaj wyróżnić dwa typy oszustw: Jedno polegające na spreparowaniu innej wiadomości i „zgadnięciu” odpowiedniego kodu uwierzytelniającego, drugie na zastąpieniu oryginalnej pary (wiadomość, kod) przez parę: (wiadomość zmodyfikowana, kod zatwierdzający). Kody bezwarunkowo bezpieczne to takie, że oszustwo typu „zgadnięcie” kodu jest tak samo mało prawdopodobne, jak „zgadnięcie” odpowiedniego klucza kodującego. Drugi typ oszustwa może być zrealizowany z istotnie większym prawdopodobieństwem, gdyż zaobserwowanie pary: (wiadomość, kod) może ograniczyć przestrzeń możliwych kluczy kodujących dla odpowiednio zmodyfikowanej wiadomości11. Wzorcową sytuację opisuje następujący przykład. Mamy dwie wiadomości m i m’ oraz kody będące liczbami od 0 do 99. Kody parzyste uwierzytelniają wiadomość m, natomiast nieparzyste m’, o ile reszta z dzielenia liczby kodowej przez 31 wynosi 1 (tak jest zdefiniowany klucz kodujący). Jeśli atakujący system przechwyci częściową informacje nt. klucza, że obliczana reszta jest modulo 31, to szansa na zgadniecie prawidłowego kodu dla wiadomości m jest jak 1 : 31. Jeśli jednak przechwyci parę wiadomość (m, 32), to wiedząc, że moduł wynosi 31, może z prawdopodobieństwem równym jedności zastąpić ją prawidłową parą (m’, 32+31) = (m’, 63), tj. wyznaczyć prawidłowy kod dla zmodyfikowanej wiadomości. Obroną przed takim atakiem mogłoby być dodatkowa operacja szyfrowania w systemie obliczeniowo bezpiecznym.

2. Przekaz kleptograficzny

Taki przekaz wiąże się z „niewłaściwą” realizacją protokołu kryptograficznego, w którym wymagany jest „losowy” wybór pewnych zmiennych. Następuje wtedy wyciek informacji dostępny tylko ustalonemu adresatowi (najczęściej producentowi oprogramowania lub urządzenia). Co więcej, analiza zarażonej informacji, aplikacji, bądź urządzenia nie pozwala stwierdzić, czy taki wyciek faktycznie istnieje. Przykładowo może dotyczyć to protokołu uwierzytelniania lub podpisu cyfrowego. Rzecz w tym, że jeśli tajność lub „losowość” odpowiedniej zmiennej zostanie zaburzona, to protokół może przestać być bezpieczny. Dotyczy to również zagadnienia sterowania kluczem w protokołach uzgadniania kluczy kryptograficznych i obliczeniach wielopodmiotowych. Przykładowy scenariusz dotyczący uzgadniania wspólnego klucza sesyjnego Diffie-Hellmana może być następujący: nieuczciwy twórca urządzenia generuje losowo klucz prywatny x, jednak do urządzenia wplata jedynie wartość H(x), gdzie H jest odpowiednią jednokierunkową funkcją haszującą. Przy kolejnych przebiegach protokołu jako losowy klucz jest wykorzystywana kolejna iteracja funkcji H. Analizując z zewnątrz generowane klucze publiczne, trudno jest wykryć fakt, że klucze prywatne nie są losowe. Co więcej, ewentualne rozebranie urządzenia nie pozwala odkryć x, a jedynie fakt machinacji producenta karty.

Nieuczciwy producent oprogramowania lub urządzenia może zrealizować atak kleptograficzny w dwu etapach:

  • zarażenie (swojej) aplikacji,

  • nasłuch i zbieranie informacji.

Wykrycie takiego ataku może być możliwe podczas badania kodu źródłowego programu, jednak jeśli kod jest „wrzucony” podczas kompilacji, to niezbędna jest deasemblacja kodu, co jest na ogół zadaniem długim i kosztownym. Obrona przed takimi atakami polega na kupowaniu programu wraz z jego kodem źródłowym.

Przykładowo powszechnie stosowany protokół SSH2 posiada następujące cechy umożliwiające ataki kleptograficzne:

  • dowolność przy wyborze wartości losowych, które są przesyłane tekstem jawnym.

  • trudność sprawdzenia, czy „losowe” komponenty nie są zależne od wcześniejszej komunikacji.

Obronę przed nimi może stanowić:

  • uzależnienie generacji plików cookie od podpisu elektronicznego, gdyż najczęściej te właśnie pliki są źródłem liczb pseudolosowych umożliwiających przekazy kleptograficzne.

  • weryfikacja protokołu pod kątem poprawności generowania losowych zmiennych.

  • redukcja listy możliwych algorytmów obsługiwanych przez strony protokołu (gdyż mogą one zawierać ukryte informacje).

Innym przykładem może być darmowa przeglądarka lub „wtyczka” do darmowej i popularnej przeglądarki internetowej. Jeśli w trakcie realizacji protokołu uwierzytelniania klienta wobec serwera bankowego (dla przykładu) przeglądarka „wysteruje” odpowiedni parametr „losowy” dla klienta, to podobnie jak to ma miejsce w ataku podprogowym dla podpisu DSS (patrz poniżej), klucz prywatny użytkownika może wyciec w trakcie przebiegu protokołu. Na szczęście takie „wtyczki” nie są na ogół dostępne do pobrania z oficjalnej strony producenta.

Z przekazem kleptograficznym ściśle związany jest tzw. kanał podprogowy12. Przekaz podprogowy jest możliwy dzięki nadmiarowości informacji przekazywanej w kryptogramach. Dla przykładu rozważmy standard DSA13 podpisu cyfrowego. Do wygenerowania podpisu podmiot używa swojego klucza prywatnego i komponentu „losowego” (generowanego za każdym razem przy składaniu podpisu). Podpis (kryptogram) jest w gruncie rzeczy nieodróżnialny od ciągu losowego. Jeśli klucz prywatny podpisującego jest udostępniony szczególnemu odbiorcy, to jest on w stanie odzyskać wartość komponentu „losowego”, który w tym wypadku może być konkretną wiadomością „przemycaną” podprogowo przez nadawcę (publiczna weryfikacja podpisu nie ujawni treści tego przekazu, gdyż wymaga znajomości klucza prywatnego nadawcy). To właśnie ta słabość podpisu cyfrowego spowodowała, że do kontroli ilości międzykontynentalnych rakiet balistycznych średniego zasięgu w ramach układu radziecko-amerykańskiego ostatecznie zaniechano w latach osiemdziesiątych ubiegłego stulecia metod kryptograficznych na rzecz metod statystycznych14. Obroną przed atakami omówionymi powyżej może być zastosowanie funkcji haszujących i innych standardów podpisu cyfrowego, takich jak np. standard RSA.

3. Protokoły sprawiedliwej wymiany

Protokół sprawiedliwej wymiany jest typem protokołu kryptograficznego, który umożliwia tzw. sprawiedliwą wymianę dokumentów elektronicznych. Dla uproszczenia załóżmy, że strony zamierzają podpisać wspólny kontrakt K. W środowisku elektronicznym nie dochodzi do „fizycznego” złożenia podpisów pod dokumentem przez każdą ze stron, niemniej jednak pojęciu „sprawiedliwości” można nadać następujący sens: strona A posiądzie podpis strony B pod dokumentem K wtedy i tylko wtedy, gdy strona B posiądzie podpis strony A pod dokumentem K.

Typowym, ale mało praktycznym rozwiązaniem jest rozwiązanie polegające na wprowadzeniu dodatkowej zaufanej trzeciej strony – aktywnego Notariusza, który przedłoży każdej ze stron odpowiedni dokument do podpisu elektronicznego. Po otrzymaniu podpisów przeprowadzi ich weryfikację, a następnie sam złoży podpis uprawomocniający podpisany przez nie dokument i odeśle zainteresowanym stronom. Skrajnie przeciwstawne modele sprawiedliwego podpisywania kontraktów unikają w ogóle powoływania zaufanej trzeciej strony i sprowadzają się do podpisywania coraz to większej części kontraktu przez obie strony, by finalnie osiągnęły podpis pod całym kontraktem, bądź składania coraz to większej części (aż do całkowitego) podpisu pod pełnym kontraktem15. Widać, że w takim przypadku mamy do czynienia z wielorundowym procesem wymagającym dodatkowo zaangażowania generatora pseudolosowego. Prostsze rozwiązanie zaproponowane w pracy X. Chenga i in.16 polega na zaangażowaniu zaufanej trzeciej strony, ale tylko w roli Arbitra (strona T) rozstrzygającego ewentualny spór.

Schemat ma następujące fazy:

  • strona A podpisuje kontrakt K, tworzy odpowiednie zobowiązanie dla strony B, a otrzymany podpis szyfruje kluczem publicznym strony T; otrzymane kryptogramy wysyła do odpowiednich stron,

  • strona B po otrzymaniu zobowiązania sprawdza, że jest to zobowiązanie strony A do kontraktu K i przesyła swój podpis pod kontraktem stronie B,

  • strona A po otrzymaniu podpisu strony B pod kontraktem K przesyła stronie B swój podpis pod nim.

Jak widać, podpisywanie odbywa się w trzech krokach, a Arbiter pełni rolę pasywną. Interweniuje tylko w wypadku, gdy w trzecim kroku strona A nie przekaże swojego podpisu stronie B. Wtedy czyni to Arbiter.

Potencjalnie są więc następujące możliwości oszustwa:

  • strona A fałszuje zobowiązanie swojego podpisu dla strony B lub podpis pod kontraktem przesyłany do strony T w pierwszej fazie,

  • strona B nie przekazuje swojego podpisu stronie B, mimo że otrzymała poprawnie zweryfikowane zobowiązanie,

  • strona A nie przekazuje podpisu stronie B, mimo że otrzymała już poprawny podpis strony B.

W przypadku pierwszym fałszerstwo, które nie zostanie ujawnione ani przez stronę B, ani T, oznacza, że strona A złamała problem CDH (patrz niżej).

W drugim przypadku strona B w porozumieniu ze stroną T może bezpiecznie wycofać się z kontraktu.

W trzecim przypadku Arbiter przekazuje podpis strony A stronie B i kontrakt zostaje uprawomocniony.

Silnym punktem proponowanego w cytowanej wyżej pracy rozwiązania jest fakt, że wygenerowane zobowiązanie ma strukturę samego podpisu cyfrowego (z odpowiednim komponentem losowym). Poprawność wynika z zastosowania iloczynu Weila w odpowiedniej podgrupie punktów
n-torsyjnych krzywej eliptycznej nad ciałem skończonym, a bezpieczeństwo redukuje się do obliczeniowo trudnego problemu CDH17 na krzywej eliptycznej lub w odpowiedniej grupie cyklicznej pierwiastków z jedności w ciele skończonym18.

4. Pełnomocnictwo cyfrowe

Taki przekaz dotyczy sytuacji, gdy autor przenosi swoje prawa autorskie na inne podmioty19. Mamy tu do czynienia z podpisywaniem wiadomości w imieniu uprawnionego podmiotu przez pełnomocników. Żądamy, aby podpis pełnomocnika zawierał informację o udzielonym pełnomocnictwie, mógł być wykonany tylko przez upoważniony do tego podmiot, ale był odróżnialny od podpisu prawowitego właściciela20. W czasie weryfikacji podpisu pełnomocnictwa zaangażowany zostaje klucz publiczny właściciela, zwracając informację o upoważnionym podpisującym. Potencjalne ataki na pełnomocnictwo cyfrowe dotyczą próby takiego sfałszowania podpisu, aby trudno było przedstawić dowód, czy autentycznym podpisującym był właściciel, czy jego pełnomocnik. Pełnomocnictwo można rozdzielić także w sposób progowy na grupę zastępców właściciela podpisu. Taka propozycja pojawiła się między innymi w pracy J. Pomykały i S. Barabasza21.

VI. Przekazy wielopodmiotowe

Bezpieczne obliczenia wielopodmiotowe22 dotyczą następującego problemu:

Danych jest n-graczy którzy chcą obliczyć wartość uzgodnionej funkcji f(x) = y w bezpieczny sposób, tj. aby zapewnić wymagania poprawności i prywatności, a ściślej:

  • aby każda wartość wyjściowa y(i), gdzie y(i) jest i-tą współrzędną wektora y była obliczona poprawnie (poprawność)

  • każdy uczestnik dowiadywał się tylko y(i) – w szczególności nie dowiaduje się niczego na temat prywatnego wejścia x(j) wektora x gracza j-tego (gdy i jest różne od j).

Klasycznym przykładem takiego protokołu jest ślepy podpis cyfrowy z wartością funkcji f(sk, m) = [y(1), y(2)], gdzie wartość wyjściowa dla pierwszego gracza jest pusta, a dla drugiego jest podpisem pierwszego pod wiadomością m (przy użyciu klucza prywatnego pierwszego gracza). Bezpieczeństwo oznacza, że z podpisu y(2) drugi gracz nie dowie się niczego na temat klucza prywatnego sk.

W ogólności definicja bezpieczeństwa wymaga wprowadzenia pojęcia przeciwnika, którego działania przeciwko systemowi są dwojakiego rodzaju:

  • statyczne, gdy zbiór graczy korumpowanych przez przeciwnika jest z góry ustalony przed początkiem działania protokołu,

  • adaptatywne, gdy dopuszczamy, że (w granicach określonych przez strukturę przeciwnika) korupcja może odbywać się także w czasie działania protokołu.

Jeśli skorumpowani członkowie nie ingerują aktywnie w przebieg protokołu, tj. wykonują zadania zgodnie z protokołem, to przeciwnika nazywamy pasywnym. W przeciwnym przypadku przeciwnika nazywamy aktywnym. Przy standardowym modelu komunikacji bezpieczny protokół z przeciwnikiem pasywnym można zrealizować przy założeniu, że liczba graczy skorumpowanych nie przekracza n/2, a z przeciwnikiem aktywnym n/3. Dla przykładu rozważmy problem 3 graczy (generałów) z aktywnym przeciwnikiem znany pod nazwą awarii bizantyjskiej23. Mamy trzech generałów: A, B, C, z których jeden (powiedzmy A) jest zdrajcą. A przekazuje do B informacje – atakujemy, natomiast do C – wycofujemy się. Teraz B przekazuje C wiadomość: A mówi, że atakujemy: to jednak nie pozwoli C rozstrzygnąć, czy A jest zdrajcą, gdyż B, będąc zdrajcą, mógł skłamać, a informacja od A mogła być prawdziwa. W tym przypadku mamy do czynienia z nierozstrzygalnością problemu „winy”, w przypadku gdy nie są spełnione założenia protokołu. Niepowodzenie (awaria) powinno więc być podstawą do rzetelnej analizy założeń protokołu i ich spełnialności.

Bardzo ważnym przypadkiem przekazów wielopodmiotowych są przekazy progowe. Wartość funkcji obliczanej przez poszczególnych członków grupy jest w tym przypadku udziałem danego członka w sekrecie całej grupy. Mówimy wtedy, że sekret jest dzielony pomiędzy członkami danej grupy. Progowość oznacza, że do jego rekonstrukcji potrzeba co najmniej progowej liczby udziałów członków grupy. Schematy progowe dotyczą w szczególności podpisów progowych i tzw. deszyfrowania progowego. W pierwszym przypadku grupa jest grupą szyfrującą, a udziałami są prywatne klucze szyfrujące członków grupy. W drugim przypadku grupa jest grupą deszyfrującą, a kluczami są prywatne klucze deszyfrujące członków grupy. W obydwu wypadkach mamy więc do czynienia z dzieleniem bądź prywatnego, bądź publicznego klucza grupy odpowiednio. Ogólnie rzecz ujmując, członkowie grupy autoryzują pewne decyzje w imieniu całej grupy. Progowość oznacza, że jest pewna tolerancja dla błędów w decyzjach indywidualnych (omylności członków). Przyjmujemy jednak, że ta „omylność” nie może jednak przekroczyć zakładanego progu. Z drugiej strony dzięki progowości możemy podwyższać poziom zaufania grupy wobec innych podmiotów (zwykle zakładamy, że większość ma rację). Podobnie jak wcześniej potencjalne oszustwa mogą być konsekwencją błędnego określenia wartości progowej. W takim przypadku może dojść do zablokowania działania protokołu przez skorumpowanych graczy bądź do autoryzacji działań przez grupę kontrolowaną przez wroga.

Istotnym aspektem przekazów progowych jest dynamika odpowiedniej grupy rozumiana jako zmienność jej członków (odchodzenie, dochodzenie lub zmiana przynależności, jeśli grupa składa się z wielu podgrup). Te kryteria były kluczowe dla badań, jakie przeprowadzono w kilku pracach24. Zaproponowano w nich nowe schematy podpisów ze zmiennym progiem i dla grup dynamicznych. Schematy takie są istotnym wyzwaniem dla systemów wymagających autoryzacji grupowej lub współdzielonego nadzoru.

Jeszcze innym przykładem przekazu progowego związanego tym razem z grupą odbiorców, mogą być systemy skalowalnego dostępu do baz danych umożliwiające nadanie klauzul bezpieczeństwa określonym typom wiadomości. Dotychczas takie struktury (deszyfrowania progowego) były głównie kojarzone z problemem zaginięcia klucza deszyfrującego.

W artykule B. Nakielskiego i in.25 zastosowano pomysł pochodzący z innej pracy26 do zabezpieczenia danych przed ich kopiowaniem przez nieuczciwych pracowników, bądź nieuprawnionym pobieraniem danych z bazy. Warto w tym miejscu wspomnieć o niedawnej aferze z „wyciekiem” dla CBA informacji z bazy danych Zakładu Ubezpieczeń Społecznych dotyczących znanych osób w życiu politycznym kraju. Zastosowanie zaproponowanego powyżej rozwiązania szyfrowania baz danych ze współdzielonym nadzorem pozwala na całkowitą eliminację tego typu zagrożeń. W ogólności systemy przekazów progowych dla grupy odbiorców mogą znaleźć zastosowanie w systemach baz danych policji lub systemach kontroli dostępu w służbach specjalnych. Podsumowując na temat przekazów progowych, zauważamy, że teoretyczną słabością wielu z nich jest fakt wykorzystywania zaufanego dealera, który rozdziela udziały sekretu pomiędzy członków grupy. W takiej sytuacji zaufana strona (jakikolwiek by nie była rozumiana) może stanowić najsłabsze ogniwo systemu i jako takie podważać jego bezpieczeństwo. W tej metodologii dużego znaczenia nabierają systemy działające bez założenia obecności zaufanej strony. Praca J. Pomykały i T. Warchoła27 jest właśnie taką propozycją dla dynamicznych podpisów wieloprogowych.



VII. Przekazy anonimowe

Takie przekazy stanowią kolejne wyzwanie dla współczesnej komunikacji elektronicznej. Mogą być bardzo cenne dla ujawnialności zjawisk negatywnych (np. z życia politycznego), a jednocześnie stanowić duże zagrożenie dla wykrywalności działalności przestępczej (w tym terrorystycznej). Aspekt terrorystyczny był omawiany szerzej w pracy B. Hołysta i J. Pomykały28. Przyjrzyjmy się obecnie bardziej strukturze takiego przekazu. Anonimowość podmiotu odnosi się do jego relacji ze środowiskiem lub innym podmiotem poprzez komunikowane treści. Podmiot (nadawca) komunikuje odbiorcy określone (często bardzo ważne) wiadomości, pod warunkiem że nie zostanie on zidentyfikowany jako źródło tej wiadomości. Może to osiągnąć albo przez zastąpienie wiadomości przez odpowiedni kryptogram, albo „ukrycie” swojej tożsamości. Trudność identyfikacji nadawcy może stanowić podstawę jego bezpieczeństwa. Ten sam mechanizm może jednak być też wykorzystany w sposób nieuczciwy. Wtedy trudność w identyfikacji podmiotu może być wykorzystana do fałszywych świadectw lub pomówień.

Przykładem pełnej anonimowości może być model ślepego podpisu cyfrowego pochodzący od D. Chauma29. Polega to na tym, że podpisujący składa podpis na wiadomości „zaciemnionej” czynnikiem losowym (stąd nazwa ślepy podpis), po czym odbiorca przekazu „zdejmuje” czynnik zaciemniający, otrzymując podpis pod oryginalną wiadomością. Anonimowość dotyczy w tym przypadku trudności w powiązaniu odbiorcy podpisanej wiadomości z jej treścią (która jest ukryta). Potencjalny oszust lub terrorysta mógłby wykorzystać taki podpis (lub ogólniej przekaz anonimowy) do wymuszenia lub szantażu. Dlatego praktyczne rozwiązania, jakie oferuje współczesna kryptografia, dają wentyl bezpieczeństwa (możliwość zdjęcia anonimowości w przypadku „krytycznym”). Taką własność mają tzw. podpisy grupowe. Członek grupy (dowolnie dużej) może podpisywać wiadomości w imieniu całej grupy, a prawdziwość podpisu jest weryfikowana unikalnym kluczem publicznym całej grupy. Odbiorca, mając parę: (wiadomość, podpis), jest więc w stanie stwierdzić, że podpis stworzył niewątpliwie członek grupy, lecz nie jest w stanie wskazać żadnego konkretnego podmiotu (członka grupy), który ten podpis wygenerował. W sytuacji wyjątkowej (np. gdy zachodzi podejrzenie o dokonanie oszustwa) podmiot uprzywilejowany, zwany menedżerem grupy, ma możliwość zdjęcia anonimowości (otwarcia podpisu) podpisującego. Ta cecha podpisu grupowego nosi nazwę pełnej wytrapialności (full-traceability). Dodajmy, że menedżer nie ma możliwości wykonania podpisu w imieniu jakiegokolwiek członka grupy. Zauważmy że w praktycznych zastosowaniach otwarcie można zaimplementować w sposób spełniający zasadę współdzielonego nadzoru30 i wykorzystujący strukturę dynamiczną grupy31. Przykładowo odpowiedni klucz prywatny konieczny do otwarcia podpisu rozdzielamy pomiędzy menedżera oraz urzędy prokuratury, sądu, i rzecznika praw obywatelskich. Przekazy anonimowe są więc wzorcowym przykładem pokazującym, jak można pogodzić zasadę ochrony autora wiadomości z możliwością pełnej ujawnialności przekazu w okolicznościach krytycznych.


1 B. Hołyst, Kryminalistyka, wyd. XI, Warszawa 2007, s. 998.

2 B. Hołyst, J. Pomykała, Wykorzystywanie kryptografii przez środowiska terrorystyczne, Prokuratura i Prawo 2008, nr 2.

3 Ibidem.

4D. R. Stinson, Cryptography. Theory and Practice, CRC Press 1995, s. 25; H. Delfs, H. Knebl, Introduction to cryptography, Springer 2002, s. 4.

5 R. Kippenhahn, Tajemne Przekazy, Wyd. Prószyński i S-ka, Warszawa 2000, s. 202–230.

6M. Kutyłowski, W.-B. Strothmann, Kryptografia, teoria i praktyka zabezpieczania systemów komputerowych, Wyd. RM, Warszawa 1999, s. 179–197.

7 Ibidem, s. 188.

8R. Rivest, A. Shamir, L. M. Adleman, A method for obtaining digital signatures and public key cryptosystems, Communications of the ACM 1978, nr 21 (2).

9 H. Delfs, H. Knebl, op. cit., s. 191–219.

10B. Hołyst, J. Pomykała, Podpis elektroniczny. Aspekty kryminalistyczne, prawne i informatyczne, Problemy Kryminalistyki 2007, nr 256, s. 5–22; B. Hołyst, J. Pomykała, Bezpieczeństwo podpisu progowego w grupach dynamicznych, Problemy Kryminalistyki 2008, nr 259.

11 D. R. Stinson, Cryptography. Theory and Practice, CRC Press 1995, s. 304–323.

12B. Hołyst, J. Pomykała, Wykorzystywanie kryptografii przez środowiska terrorystyczne, op. cit.

13DSA – Digital Signature Algorithm, ANSI X9.30–1 standard.

14 R. Anderson, Inżynieria zabezpieczeń, WNT 2005, s. 273–277.

15 N. Asokan, V. Shoup, M. Vaidner, Optimistic fair exchange of digital signatures, LNCS 1403 (1998), s. 591–606.

16 X. Cheng, J. Liu, X. Wang, Identity based aggregate and verifiably encrypted signatures from bilinear pairing, LCNS 3483 (2005), s. 1046–1054.

17 A. Boneh, M. Franklin, Identity-based encryption from the Weil pairing, Crypto’01, 2001.

18 A. Menezes, T. Okamoto, S. Vanstone, Reduction elliptic curve logarithms to logarithms in a finite field, IEEE Transactions on Information Theory 1993, nr 39, s. 1639–1646.

19 B. Hołyst, J. Pomykała, Bezpieczeństwo podpisu progowego w grupach dynamicznych, op. cit.

20J. Pomykała, B. Źrałek, A model of Id-based proxy signature scheme, przekazane do publikacji.

21J. Pomykała, S. Barabasz, Elliptic curve based threshold Proxy signature scheme with known signers, Fundamenta Informaticae 2006, nr 69 (4), s. 411–425.

22 R. Cramer, I. Damgard, Multiparty Computation; an Introduction, (w:) Contemporary Cryptology, Centre de Recerca Matematica, Birkhauser 2005, s. 41–89.

23 R. Anderson, Inżynieria zabezpieczeń, WNT 2005, s. 142.

24B. Nakielski, J. Pomykała, J.-A. Pomykała, A multi-threshold signature scheme, przyjęte do druku w: Journal of Telecomunications and Information Technology 1 (2008); J. Pomykała, T. Warchoł, Threshold signatures in dynamic groups, Proceedings of Future Generation Communication and Networking 2007, IEEE Computer Science, s. 32–37; J. Pomykała, T. Warchoł, Dynamic Multithreshold Signature Without the Trusted Dealer, IJMUE Journal 2008, vol. 3, no. 3.

25 B. Nakielski, J. Pomykała, J.-A. Pomykała, Protecting Databases by Threshold Cryptography, przekazane do publikacji.

26 H. Ghodosi, J. Pieprzyk, R. Safavi-Naini, Dynamic threshold cryptosystems: a new scheme in group oriented cryptography, Proceedings of Pragocrypt’96, CTU Publishing House, Prague 1996.

27J. Pomykała, T. Warchoł, Dynamic Multithreshold Signature Without the Trusted Dealer, op. cit.

28B. Hołyst, J. Pomykała, Wykorzystywanie kryptografii przez środowiska terrorystyczne, op. cit.

29D. Chaum, Blind signatures for untraceable payments, Adv. In Cryptology, Proceedings of Crypto’82 (1983), s. 199–203.

30B. B. Nakielski, J. Pomykała, J.-A. Pomykała, Protecting databases with dynamic threshold cryptosystems, op. cit.

31 M. Bellare, H. Shi, C. Zhang, Foundations of group signatures: the case of dynamic groups – preprint (2003); http://www–cse.ucsd.edu/users/mihir.



Prokuratura

i Prawo 5, 2008





©operacji.org 2019
wyślij wiadomość

    Strona główna