07 Blockchainowy framework wymiany informacji dla cyberbezpieczeństwa 169
7.1. Wprowadzenie 169
7.2. Framework BIS 171
7.3. Transakcje w BIS 173
7.4. Wykrywanie cyberataków i udostępnianie informacji 175
7.5. Międzygrupowa gra ataku w blockchainowym frameworku BIS: atak jednokierunkowy 176
7.6. Międzygrupowa gra ataku w blockchainowym frameworku BIS: atak dwukierunkowy 178
7.7. Użycie gry Stackelberga do analizy cyberataku i obrony 180
7.8. Podsumowanie 184
Bibliografia 185
CZĘŚĆ III ANALIZA BEZPIECZEŃSTWA BLOCKCHAINA
08 Analiza bezpieczeństwa chmur blockchainowych 189
8.1. Wprowadzenie 189
8.2. Mechanizmy konsensusu blockchaina 192
8.3. Chmura blockchainowa i jej podatności 202
8.4. Model systemu 212
8.5. Zwiększanie mocy obliczeniowej 213
Spis treści VII
8.6. Analiza strategii ataku zaburzającego 214
8.7. Wyniki symulacji i dyskusja 221
8.8. Podsumowanie i dalsze prace 223
Podziękowania 225
Bibliografia 225
09
Blockchainy zamknięte i otwarte 228
9.1. Wprowadzenie 228
9.2. Rozsądny wybór węzłów 229
9.3. Mechanizmy wyboru komisji 232
9.4. Prywatność w blockchainach zamkniętych i otwartych 235
9.5. Podsumowanie 238
Bibliografia 239
10
11
Atak niepotwierdzonymi transakcjami na pulę pamięci blockchaina: nowe ataki DDoS i środki zaradcze 241
10.1. Wprowadzenie 241
10.2. Powiązane prace 243
10.3. Podstawowe informacje o blockchainie i cyklu życia transakcji 245
10.4. Model zagrożenia 248
10.5. Przebieg ataku 250
10.6. Zapobieganie atakom na pule pamięci 253
10.7. Eksperyment i wyniki 264
10.8. Podsumowanie 267
Bibliografia 267
Zapobieganie atakom górników na spółdzielnie wydobywcze z wykorzystaniem paradygmatu reputacji 271
11.1. Wprowadzenie 271
11.2. Informacje wstępne 273
11.3. Przegląd literatury 276
11.4. Model wydobycia oparty na reputacji 278
11.5. Wydobycie w modelu opartym na reputacji 280
11.6. Ocena naszego modelu za pomocą analiz według teorii gry 287
Spis treści
11.7. Uwagi końcowe 290
Podziękowania 290
Bibliografia 291
CZĘŚĆ IV IMPLEMENTACJE BLOCKCHAINÓW
12
Konfiguracje blockchainów prywatnych dla poprawy bezpieczeństwa Internetu rzeczy 295
12.1. Wprowadzenie 295
12.2. Strategia bramki blockchainowej 297
12.3. Strategia blockchainowych inteligentnych urządzeń końcowych 304
12.4. Powiązane prace 313
12.5. Podsumowanie 314
Bibliografia 315
13 Platforma do oceny łańcuchów bloków 317
13.1. Wprowadzenie 317
13.2. Hyperledger Fabric 322
13.3. Pomiary wydajności 335
13.4. Prosta symulacja Blockchaina 345
13.5. Wprowadzenie do symulacji blockchainów 349
13.6. Podsumowanie i dalsza praca 356
Bibliografia 357
14 Podsumowanie i dalsze prace 358
14.1. Wprowadzenie 358
14.2. Blockchain i bezpieczeństwo chmury 359
14.3. Blockchain i bezpieczeństwo Internetu rzeczy 360
14.4. Bezpieczeństwo i prywatność blockchainów 362
14.5. Eksperymentalna platforma testowa i ocena wydajności 364
14.6. Przyszłość 365
Indeks 367
Wprowadzenie
Przedsiębiorstwa komercyjne, instytucje rządowe i wojskowe coraz częściej padają ofiarą cyberataków, których celem jest kradzież poufnych informacji lub zakłócanie działania usług. Ze względu na konieczność zintegrowania w przyszłych działaniach wielu dziedzin i zapewnienia odporności na wysoką sporność cyberprzestrzeni, istnieje pilne zapotrzebowanie na rozwiązania z dziedziny cyberbezpieczeństwa, które zapewnią identyfikowalność, widoczność manipulacji, rozliczalność oraz audytowalność danych dowódczych, logistycznych i innych danych kluczowych dla działalności informacji. Stąd bierze się też potrzeba skupienia się na takich rozwiązaniach z dziedziny cyberbezpieczeństwa, które będą mogły zapewnić niezawodne działanie systemów podczas podejmowanych przez przeciwników ataków. Istniejące rozwiązania w tym zakresie są rozwiązaniami reaktywnymi i nie są w stanie poradzić sobie z gwałtownym wzrostem liczby cyberzagrożeń. Scentralizowane, czyli homogeniczne systemy informatyczne i bazy danych muszą ewoluować w stronę rozproszonych, bezpośrednich i bezpiecznych systemów.
Strategia cyberobrony sprowadzać się będzie do zapewnienia zdolności operowania na danych w bezpiecznym i zaufanym środowisku. Aby wygrać w walce cybernetycznej, wojsko musi zabezpieczyć swoje operacje na danych przez: (i) zapobieganie dostępowi przeciwników do sieci zawierających krytyczne dane, (ii) zapewnienie integralności danych mimo obecności przeciwników w sieci, oraz (iii) osiągnięcie odporności na próby manipulacji danymi podejmowane przez przeciwników. Jednocześnie rozwój technologii chmury i Internetu rzeczy, które wspierają usługi przetwarzania na żądanie (on-demand computing), dynamiczną aprowizację i zarządzanie systemami autonomicznymi, zwiększa potrzeby w zakresie poprawy ich bezpieczeństwa. Kluczowym zagadnieniem jest zapewnienie bezpieczeństwa zarządzania i przesyłania danych wewnątrz środowisk chmury i między takimi środowiskami. Audyt środowisk chmurowych będzie skuteczny tylko wtedy, gdy można będzie wiarygodnie prześledzić wszystkie operacje wykonywane na danych, czyli zebrać informacje o pochodzeniu danych, które pomogą w wykrywaniu włamań w infrastrukturach chmury obliczeniowej. Internet rzeczy (IoT) w kontekście
wojskowym umożliwia łączenie ze sobą zasobów bojowych, takich jak czujniki, amunicja, broń, pojazdy, roboty i urządzenia ubieralne, umożliwiając realizację takich zadań, jak wykrywanie, komunikacja, współdziałanie i współpraca z żołnierzami. Ogromna skala i rozproszony charakter urządzeń IoT stwarzają wiele problemów związanych z bezpieczeństwem i prywatnością danych. Przede wszystkim bazowa infrastruktura sieciowa i komunikacyjna Internetu rzeczy musi być elastyczna i dostosowana do wsparcia dynamiki misji wojskowych. Ta dynamiczna zmiana infrastruktury komunikacyjnej musi się dokonać w sposób autonomiczny bez uzależniania się od scentralizowanych usług utrzymaniowych. Po drugie, należy zapewnić prawdziwość informacji udostępnianych za pośrednictwem urządzeń IoT. Stąd potrzeba opracowania zaufanej platformy, która zapewni dokładność i wierność informacji przekazywanych żołnierzom.
Blockchain oraz rozwijające się technologie rozproszonych publicznych rejestrów danych mają cechy prawdziwie rozproszonych i bezpośrednich systemów zapewniających pełną rozliczalność i audytowalność. Blockchain, czyli łańcuch bloków, to dostępna publicznie, rozproszona i odporna na uszkodzenia i modyfikacje baza danych, którą każdy uczestnik sieci może udostępniać i nad którą nikt nie może przejąć wyłącznej kontroli. Blockchainy zakładają obecność przeciwników w sieci i ich celem jest niwelowanie wrogich strategii przez wykorzystanie możliwości obliczeniowych uczciwych węzłów i zapewnienie odporności informacji przekazywanych za ich pośrednictwem na manipulacje i zniszczenie. Ta zdolność pozwala dowodzącym kontynuować działania wojskowe mimo działań podejmowanych przez przeciwników. Rozwiązania kwestii cyberbezpieczeństwa oparte na blockchainie będą stanowić zmianę paradygmatu w sposobie zabezpieczania się przed manipulacją danymi. Blockchain umożliwia budowanie zaufanych systemów w środowiskach pozbawionych zaufania. Manipulowanie łańcuchami bloków staje się w nich niezwykle trudne ze względu na zastosowanie kryptograficznych struktur danych i założenie braku zaufania. Blockchain umożliwia wzmocnienie cyberobrony dzięki swojej zdolności do zapobiegania nieautoryzowanym działaniom w oparciu o mechanizm rozproszonego konsensusu, a także dzięki zapewnianiu integralności danych przez swoją niemodyfikowalność, możliwości audytu i mechanizmy odporności operacyjnej (czyli brak pojedynczego słabego ogniwa powodującego rozległą awarię systemu). Chociaż blockchain nie jest panaceum na wszystkie problemy cyberbezpieczeństwa, to technologia ta może pomóc organizacjom w rozwiązywaniu problemów z dziedziny cyberbezpieczeństwa, takich jak zarządzanie tożsamością, zapewnianie informacji o pochodzeniu danych i zapewnianie integralności danych.
Książka ta poświęcona jest zastosowaniom rozwiązań opartych na blockchainie w systemach rozproszonych tworzących odporną i niezawodną cyberinfrastrukturę wspierającą działalność i misję korzystających z niej podmiotów. Istnieje potrzeba
XIV Wprowadzenie
zrozumienia, jak blockchain może oddziaływać w sferach wykraczających poza kryptowaluty i w jaki sposób może rozwiązywać problemy bezpieczeństwa i prywatności danych w chmurach i w platformach IoT/IoBT. Tematy poruszane w tej książce dotyczą podstawowych właściwości i formalnych podstaw technologii blockchain oraz praktycznych problemów związanych z jej wdrażaniem w środowiskach chmury i na platformach IoT. Ponadto książka ta przedstawia wyzwania w zakresie bezpieczeństwa, które należy pokonać, aby technologie blockchain mogły w pełni wykazać swój potencjał. Trzy rozdziały książki (4, 5 i 8) oparte są na artykułach badawczych, które na konferencji Blockchain Connect 2019 zostały wyróżnione tytułem „Top Blockchain paper”1
Publikacja ta jest oparta na badaniach sponsorowanych przez Laboratorium Badawcze Sił Powietrznych Stanów Zjednoczonych (Air Force Research Laboratory), w ramach umowy nr FA8750-16-0301. Chcielibyśmy podziękować AFRL za wsparcie finansowe, współpracę i pomoc. Rząd Stanów Zjednoczonych jest upoważniony do powielania i rozpowszechniania przedruków w celach rządowych, bez względu na wszelkie zapisy dotyczące praw autorskich. Prace opisane w tej książce były również częściowo wspierane z innych źródeł, które wskazano w poszczególnych rozdziałach.
Redakcja pragnie potwierdzić wkład w powstanie tej książki następujących osób (w kolejności alfabetycznej): Abdulhamid Adebayo, Philip Asuquom, Shihan Bao, Yue Cao, Haitham Cruickshank, Ali Dorri, Peter Foytik, Arash Golchubian, Y. Thomas Hou, Raja Jurdak, Salil S. Kanhere, Kevin Kwiat, Adriaan Larmuseau, Ao Lei, Jin Li, Xueping Liang, Wenjing Lou, Andrew Miller, Aziz Mohaisen, Mehrdad Nojoumian, DaeHun Nyang, Danda B. Rawat, Muhammad Saad, Devu Manikantan Shila, Jeffrey Spaulding, Marco Steger, Zhili Sun, Deepak Tosh, Yang Xiao i Ning Zhang. Dodatkowe podziękowania kierujemy również do: Misty Blowers, Jerry’ego Clarke’a, Jima Perretta i Val Red za ich cenne wsparcie i wskazówki. Za pomoc w redakcji technicznej dziękujemy następującym osobom: Paulowi Ratazzi, Robertowi Reschly i Michaelowi Weismanowi. Na koniec przekazujemy podziękowania i wyrazy uznania dla: Jovina E. Allena, Waltera J. Baileya, Sandry B. Fletcher, Lisy M. Lacey, Sandry H. Montoya, Lorri E. Roth i Jessici D. Schultheis, którzy pomagali nam w pracach redakcyjnych i w przygotowaniu ostatecznej postaci książki. Dodatkowo dziękujemy Mary Hatcher i Vishnu Narayanan z wydawnictwa Wiley za ich uprzejmą pomoc w doprowadzeniu do publikacji tej książki.
Zastrzeżenia: Poglądy i treści wyrażone w tej książce są poglądami autorów i nie odzwierciedlają oficjalnej polityki ani stanowiska Departamentu Obrony, ani rządu Stanów Zjednoczonych.
Yang Xiao1, Ning Zhang 2, Jin Li 3, Wenjing Lou1 i Y. Thomas Hou1
1 Virginia Polytechnic Institute and State University, Blacksburg, VA, USA
2 Washington University in St. Louis, St. Louis, MO, USA
3 Guangzhou University, Guangzhou, Chiny
2.1. Wprowadzenie
Algorytmy odpornego na awarie konsensusu (fault-tolerant consensus) zostały poddane wnikliwym badaniom w kontekście systemów rozproszonych. Decydując o przekazywaniu informacji w sieci rozproszonych procesorów, algorytmy te umożliwiają procesorom uzgodnienie stanu danych i podejmowanie przez nie tych samych działań w odpowiedzi na żądania wykonania usług, niezależnie od tego, czy wszystkie komponenty działają poprawnie i czy wszystkie kanały komunikacyjne poprawnie przekazują dane. Gwarancja osiągnięcia konsensusu ma kluczowe znaczenie dla poprawnego działania systemów rozproszonych.
Blockchain, będący również systemem rozproszonym, wymaga protokołu konsensusu umożliwiającego wszystkim węzłom sieci uzgodnienie jednego łańcucha historii transakcji, z założeniem możliwości nieprzewidzianego zachowania ewentualnych uszkodzonych węzłów lub węzłów złośliwych. W chwili pisania tego tekstu w świecie kryptowalut funkcjonowało ponad tysiąc różnych inicjatyw i projektów korzystających z ponad 10 klas protokołów konsensusu. W tym rozdziale omówimy podstawy
Protokoły i algorytmy rozproszonego konsensusu
klasycznego konsensusu odpornego na awarie i jego zastosowań w przetwarzaniu rozproszonym oraz przedstawimy kilka popularnych protokołów konsensusu wykorzystywanych w rozwiązaniach opartych na blockchainie.
Rozdział ten ma następującą strukturę: podrozdział 2.2 wprowadza podstawy odpornego na awarie konsensusu w systemie rozproszonym oraz dwa praktyczne protokoły konsensusu dla przetwarzania rozproszonego. Podrozdział 2.3 przedstawia protokół konsensusu Nakamoto – pionierski protokół konsensusu oparty na dowodzie pracy (PoW – Proof of Work), wykorzystany po raz pierwszy w sieci Bitcoin. Podrozdział 2.4 przedstawia kilka rozwijanych aktualnie blockchainowych protokołów konsensusu, nieopartych na PoW oraz ich scenariusze zastosowań. Podrozdział 2.5 przedstawia ocenę jakościową i porównanie wyżej wymienionych protokołów konsensusu. Podrozdział 2.6 kończy rozdział i podsumowuje filozofię protokołów konsensusu dla rozwiązań opartych na blockchainie.
2.2. Odporny na awarie konsensus w systemie rozproszonym
Wszystkie komponenty systemu rozproszonego dążą do osiągnięcia wspólnego celu, mimo swojej geograficznej separacji. Konsensus, mówiąc najprościej, oznacza, że komponenty systemu osiągają porozumienie w sprawie jakichś wartości lub danych. W rzeczywistych systemach komponenty i ich kanały komunikacyjne są podatne na nieprzewidziane awarie i działania przeciwników. W tym punkcie omówimy problem konsensusu systemów wykorzystujących komunikaty1, dla dwóch typów awarii ich komponentów – załamania (crash failure) i dla awarii bizantyjskiej (Byzantine failure).
Następnie zajmiemy się dwoma praktycznymi algorytmami konsensusu, które tolerują takie awarie komponentów w systemach rozproszonych. Terminów procesor, węzeł i komponent będziemy dla wygody używać w tym punkcie wymiennie.
2.2.1.
Model systemu
Istnieją trzy główne czynniki konsensusu w systemie rozproszonym: synchronizacja sieci, awarie komponentów i protokół konsensusu.
1 Istnieje inny typ systemów rozproszonych: system z pamięcią dzieloną (shared-memory system). Więcej szczegółów można znaleźć w publikacji [1]. W tym rozdziale skoncentrujemy się na systemie przekazującym komunikaty, ze względu na jego podobieństwo do łańcucha bloków.
Odporny na awarie konsensus w systemie rozproszonym 31
04 ProvChain: oparte na blockchainie potwierdzanie pochodzenia danych w chmurze
Xueping Liang 1, Sachin S. Shetty 1, Deepak Tosh 2 , Laurent Njilla 3, Charles A. Kamhoua 4 i Kevin Kwiat 5
1 Old Dominion University, Virginia Modeling, Analysis and Simulation Center, Norfolk, VA, USA
2 University of Texas at El Paso, Department of Computer Science, El Paso, TX, USA
3 US Air Force Research Lab, Cyber Assurance Branch, Rome, NY, USA
4 US Army Research Lab, Network Security Branch, Adelphi, MD, USA
5 Haloed Sun TEK, LLC, CAESAR Group, Sarasota, Fl, USA
4.1. Wprowadzenie
Usługi chmury (cloud computing) są powszechnie wykorzystywane w środowiskach komercyjnych i wojskowych do realizacji zadań przechowywania danych, udostępniania mocy obliczeniowej na żądanie i dynamicznej alokacji zasobów. Środowiska cloud computing są środowiskami rozproszonymi i heterogenicznymi, wykorzystującymi zróżnicowane komponenty programowe i sprzętowe, które mogą pochodzić od wielu dostawców, co może być przyczyną ryzyka lub podatności na ataki bądź niekompatybilności. Kluczowym problemem związanym z zarządzaniem i przesyłaniem danych wewnątrz środowisk chmurowych i między nimi jest zapewnienie bezpieczeństwa. Audyt środowisk chmurowych będzie skuteczny tylko wtedy, gdy można będzie wiarygodnie przeanalizować wszystkie operacje wykonane na danych. Pochodzenie danych (data provenance) to proces, który określa historię produktu informacyjnego,
począwszy od jego pierwotnego źródła [1]. Informacje o pochodzeniu danych mogą pomóc w wykrywaniu naruszeń dostępu w infrastrukturach chmury. Dlatego opracowanie metody gwarantowanego potwierdzania pochodzenia danych pozostaje kluczowym problemem w zastosowaniach wykorzystujących chmurę. Informacje o pochodzeniu mogą zawierać wiele poufnych informacji na temat danych źródłowych i ich właścicieli. Dlatego istnieje potrzeba nie tylko zabezpieczenia danych w chmurze, ale także zapewnienia integralności i wiarygodności informacji o ich pochodzeniu. Nowoczesne usługi potwierdzania pochodzenia danych są też podatne na przypadkowe lub złośliwe uszkodzenie bądź próby fałszowania udostępnianych przez nie informacji [2].
Technologia Blockchain rozbudziła zainteresowanie ze względu na oferowaną przez siebie współdzieloną, rozproszoną i odporną na uszkodzenia bazę danych, dzięki której każdy uczestnik sieci może współdziałać na rzecz eliminacji przeciwników, wykorzystując możliwości obliczeniowe uczciwych węzłów. Dzięki temu informacje przekazywane za jej pośrednictwem są odporne na manipulacje. Sieć Blockchain to rozproszony rejestr publiczny, przechowujący transakcje, z których każda jest poświadczona i została zweryfikowana przez węzły sieci.
Zdecentralizowaną architekturę blockchaina można wykorzystać do opracowania mechanizmu dostarczania gwarantowanych informacji o pochodzeniu danych dla środowisk chmurowych. W architekturze zdecentralizowanej każdy węzeł uczestniczy w sieci w celu świadczenia usług, zwiększając w ten sposób jej wydajność. Rozproszony charakter łańcucha bloków poprawia też dostępność. Ponieważ w usługach chmury często wykorzystywany jest jakiś centralny, zaufany podmiot, istnieje potrzeba ochrony wrażliwych danych osobowych przy jednoczesnym zachowaniu prywatności. Oparta na blockchainie usługa informacji o pochodzeniu danych w chmurze pozwoli rejestrować w sposób przejrzysty i trwały wszystkie operacje wykonywane danych. Usługa taka ułatwiłaby budowanie zaufania między użytkownikami a dostawcami usług chmurowych. Ponadto usługa taka mogłaby pomóc w podnoszeniu zaufania użytkowników chmury do udostępnianych informacji o cyberzagrożeniach [3, 4], co zapewniłoby proaktywną cyberobronę przy ograniczonych nakładach na bezpieczeństwo [5, 6].
W tym artykule przedstawiamy ProvChain – opartą na blockchainie architekturę informacji o pochodzeniu danych, udostępniającą pewne informacje na temat operacji na danych w chmurach danych, która jednocześnie zwiększa prywatność i dostępność. ProvChain rejestruje historię operacji jako informacje o pochodzeniu, obliczając ich skróty tworzące węzły drzewa skrótów [7]. Drzewo skrótów zawiera skróty danych o pochodzeniu, a korzeń tego drzewa jest powiązany z jakąś transakcją w łańcuchu bloków. Blok tworzony jest z listy transakcji. Po utworzeniu jest on potwierdzany przez grupę węzłów, co umożliwia włączenie go do łańcucha. Próba zmodyfikowania rekordu
ProvChain: oparte na blockchainie potwierdzanie pochodzenia danych w chmurze
zawierającego informacje o pochodzeniu danych będzie wymagała od przeciwnika zlokalizowania transakcji oraz bloku. Podstawy teoretyczne blockchaina dopuszczają modyfikację rekordu w bloku wyłącznie wtedy, gdy przeciwnik jest w stanie przedstawić dłuższy łańcuch bloków niż łańcuchy pozostałych górników, co jest dość trudne do osiągnięcia. Wykorzystując globalną moc obliczeniową sieci blockchain, oparte na blockchainie informacje o pochodzeniu mogą zapewnić integralność i wiarygodność. W opracowanej przez nas architekturze przechowujemy jedynie skróty danych identyfikujących użytkowników, co chroni ich tożsamość przed innymi węzłami sieci.
Pozostała część artykułu jest uporządkowana następująco: podrozdział 4.2 zawiera przegląd najnowszych metod dostarczania informacji o pochodzeniu danych i omówienie technologii blockchain. Podrozdział 4.3 opisuje projekt architektury ProvChain, czyli zaproponowanej przez nas, opartej na blockchainie, architektury informacji o pochodzeniu danych. Jej szczegółową implementację przedstawiamy w podrozdziale 4.4. Ocenę wydajności architektury ProvChain opisujemy w podrozdziale 4.5. Na koniec, w podrozdziale 4.6 przedstawiamy podsumowanie.
4.2. Kontekst i powiązane prace
4.2.1. Pochodzenie danych
Angielskie słowo „provenance” i jego polski odpowiednik „proweniencja”, czyli pochodzenie, wywodzą się z francuskiego słowa „provenir”, które znaczy właśnie „pochodzić”. Pochodzenie opisuje chronologię zmian własności jakiegoś obiektu. Z punktu widzenia bezpieczeństwa informacji pochodzenie danych oznacza wykaz wszystkich operacji przeprowadzanych na jakichś danych. W kontekście łańcucha bloków, pochodzenie danych można zapisywać w rozproszonym rejestrze publicznym katalogującym wszystkie operacje na danych związanych z jakimś zasobem. Właściciel zasobu może uwierzytelnić transakcję przekazującą prawa własności nowemu właścicielowi bez potrzeby korzystania z niezależnego arbitra. Mechanizm rejestrowania informacji o pochodzeniu danych w łańcuchu bloków może wykorzystywać takie jego właściwości, jak weryfikowalna ścieżka audytu, możliwość tworzenia i przenoszenie praw własności do zasobów cyfrowych, uzgadnianie konsensusu i tożsamości kryptograficzne.
i powiązane prace
08
Analiza bezpieczeństwa chmur blockchainowych
Deepak Tosh 1, Sachin S. Shetty 2, Xueping Liang 2 , Laurent Njilla 3, Charles A. Kamhoua 4 i Kevin Kwiat 5
1 University of Texas at El Paso, Department of Computer Science, El Paso, TX, USA
2 Old Dominion University, Virginia Modeling, Analysis and Simulation Center, Norfolk, VA, USA
3 US Air Force Research Lab, Cyber Assurance Branch, Rome, NY, USA
4 US Army Research Lab, Network Security Branch, Adelphi, MD, USA 5 Haloed Sun TEK, LLC, CAESAR Group, Sarasota, FL, USA
8.1. Wprowadzenie
Technologia łańcucha bloków (blockchain) cieszy się ogromnym zainteresowaniem w wielu dziedzinach, takich jak finanse, opieka zdrowotna, usługi komunalne, rynek nieruchomości oraz wśród agencji rządowych. Sieci blockchainowe wykorzystują współdzieloną, rozproszoną i odporną na uszkodzenia platformę rejestru danych, który każdy uczestnik sieci może udostępniać i nad którym nie może przejąć samodzielnej kontroli żaden z podmiotów. Blockchain zakłada obecność przeciwników w sieci i niweluje wrogie działania, wykorzystując możliwości obliczeniowych uczciwych węzłów, a informacje przekazywane za jego pośrednictwem są odporne na manipulacje i zniszczenie. Technologia blockchain będzie korzystna dla usług chmury wymagających bezpiecznych narzędzi do śledzenia pochodzenia danych i wsparcia audytowego. Aby zapewnić integralność danych przechowywanych w publicznym rejestrze chmury blockchainowej, tworzone kryptograficznie bloki dołącza się do łańcucha bloków po osiągnięciu konsensusu w zdecentralizowanej sieci, której węzły uwierzytelniają transakcje zawarte w blokach. Ten publiczny rejestr może potencjalnie
zawierać historię wszystkich transakcji związanych z dowolnym rodzajem aktywów –finansowych, fizycznych lub cyfrowych – które mogą być weryfikowane, monitorowane i rozliczane bez udziału administratora chmury. Połączenie mechanizmów kryptograficznych i zdecentralizowanego rejestru publicznego pozwala budować różne aplikacje oparte na łańcuchu bloków, bez obaw o komponenty zaufania użytkowników i o wrogie działania w blockchainowym systemie chmurowym.
Nagłówek poprzedniego bloku
Wartość celu
Proponowany blok
Wynagrodzenie($$$)
Wartość nonce (możliwe rozwiązanie zadania)
Scal i oblicz skrót
Skrót nowego bloku
Nie – oblicz jeszcze raz
Czy Skrót < Cel?
Tak – znaleziono rozwiązanie! Roześlij...
Rysunek 8.1. Schemat procesu wydobywania bloków
Ponieważ aktualizacja łańcucha wykonywana jest się w sieci peer-to-peer (P2P), każdy węzeł musi dbać o integralność łańcucha bloków. Aby dołączanie bloku nie zaburzyło stanu łańcucha bloków, konieczne jest zastosowanie rozproszonych mechanizmów
190 Analiza bezpieczeństwa chmur blockchainowych
11.2.2. Teoria gier: Podstawowe pojęcia i definicje
Gra składa się ze zbioru graczy, zbioru działań oraz strategii (strategia to sposób, w jaki każdy gracz wybiera działania) oraz z funkcji użyteczności, która jest wykorzystywana przez każdego gracza do obliczania korzyści (wielkości wypłaty) uzyskiwanej w przypadku wyboru określonego działania. W grach kooperacyjnych gracze współpracują ze sobą i dzielą łączną wypłatę między siebie, czyli do współpracy motywuje ich zbieżność interesów. Z kolei w grach niekooperacyjnych gracze nie są w stanie osiągnąć między sobą porozumienia w sprawie koordynacji swoich działań. Innymi słowy, ewentualna współpraca między graczami musi być samoistna. Teraz opiszemy krótko pewne dobrze znane koncepcje z teorii gier [9], które przydadzą się w naszych późniejszych analizach i dyskusji.
Definicja 1: Niech A = def A1 × A2 × … × An będzie profilem działań dla n graczy, gdzie Ai oznacza zbiór możliwych działań gracza Pi. Gra Γ = (Ai, ui), dla 1 ≤ i ≤ n, składa się z Ai oraz z funkcji użyteczności ui : A → R dla każdego gracza Pi. Wektor działań a ⃗ = (a1, … , an) ∈ A będziemy nazywali wynikiem gry
Definicja 2: Funkcja użyteczności ui opisuje preferencje gracza Pi odnośnie różnych wyników. Mówimy, że gracz Pi preferuje wynik a ⃗ nad a ⃗′, jeśli ui(a ⃗) > ui(a ⃗′), oraz że słabo preferuje wynik a ⃗ nad a ⃗’, jeśli ui(a ⃗) ≥ ui(a ⃗’).
Aby umożliwić graczom działanie według strategii, definiujemy ��i jako rozkład prawdopodobieństwa na Ai dla gracza Pi. Oznacza to, że gracz wybiera ai ∈ Ai zgodnie ze strategią ��i. Mówimy, że strategia jest czysta, jeśli każdy ��i przypisuje prawdopodobieństwo 1 określonemu działaniu. Jeśli tak nie jest, mówimy, że strategia jest strategią mieszaną. Niech ��⃗ = (��1, … , ��n) będzie wektorem strategii graczy i niech (�� ′ i, ��⃗ –i) = (��i, … , ��i–1, �� ′ i, ��i+1, … , ��n), gdzie Pi zastępują ��i przez �� ′ i, a strategie wszystkich pozostałych graczy pozostają niezmienione. Zatem ui(��⃗) oznacza oczekiwaną użyteczność Pi pod wektorem strategii ��⃗i. Celem gracza jest maksymalizacja ui(��⃗). W poniższych definicjach działanie ai ∈ Ai można zastąpić jego rozkładem prawdopodobieństwa ��i ∈ Si i vice versa.
Definicja 3: Wektor strategii ��⃗i jest w równowadze Nasha, jeśli dla wszystkich i oraz dla dowolnego �� ′ i ≠ ��i prawdą jest, że ui(��i , ��⃗ –i ≤ ui(��⃗i). Oznacza to, że nikt nie zyskuje żadnej przewagi w wyniku odstępstwa od protokołu, dopóki inni postępują zgodnie z nim.
Definicja 4: Niech S i = def S1 × … × Si−1 × Si+1 × … × Sn. Strategia ��i ∈ Si (lub działanie) jest słabo zdominowana przez �� ′ i ∈ Si (lub inne działanie) pod względem S–i, jeśli dla każdego ��⃗−i �� S–i, spełniona jest zależność: ui(��i, ��⃗−i) ≤ ui(�� ′ i, ��⃗−i). Istnieje ��⃗−i �� S–i taka, że ui(��i, ��⃗ −i) < ui(�� ′ i , ⃗�� −i). Oznacza to, że gracz Pi nie może nigdy poprawić swojej
użyteczności, wybierając strategię ��i, oraz że czasami może ją poprawić, nie wybierając strategii ��i. Strategia ��i ∈ Si jest ściśle zdominowana, jeśli gracz Pi zawsze może poprawić swoją użyteczność, nie wybierając strategii ��i
11.3. Przegląd literatury
Koncepcja blockchaina jest stosunkowo młoda, gdyż została zaprezentowana przez nieznanego autora lub autorów w 2008 roku. Mimo to zdobyła już znaczne uznanie społeczności informatycznej i ekonomicznej ze względu na swoje wyjątkowe podejście do kwestii decentralizacji weryfikacji transakcji związanych z cyfrowymi walutami i za sprawą jej naturalnego bezpieczeństwa, wynikającego z jej zdecentralizowanej natury. Jednak istnieje stosunkowo niewiele prac poświęconych badaniom blockchainów metodami teoretycznymi. W tym podrozdziale przedstawimy przegląd prac badawczych poświęconych blockchainowi w ujęciu teorii gier.
Autorzy pracy [6] – Johnson i inni – badają motywacje spółdzielni wydobywczych do przeprowadzenia ataków typu distributed denial-of-service (DDoS) na inną spółdzielnie wydobywczą. Analizują oni to zagadnienie z ekonomicznego punktu widzenia, zakładając że motywacją do ataku jest zwiększenie prawdopodobieństwa pomyślnej weryfikacji następnego bloku transakcji atakującego, a tym samym zdobycie wynagrodzenia w Bitcoinach za jego wydobycie. Autorzy tej pracy dochodzą do wniosku, że motywacja do atakowania dużych spółdzielni wydobywczych jest większa niż motywacja do atakowania małych. Zwracają uwagę, że wnioski te są zgodne ze statystykami przedstawionymi w pracy [10], według których ofiarą ataków DDoS padło 17,1% małych spółdzielni wydobywczych i że w przypadku dużych spółdzielni ataki takie dotknęły aż 62,5% z nich. Autorzy czynią również kolejne dwie interesujące obserwacje. Po pierwsze, zdolność radzenia sobie z atakami DDoS będzie zwiększać próg rynkowy, po przekroczeniu którego spółdzielnia staje się podatna na ataki DDoS. Wydaje się to być intuicyjnym wnioskiem, ponieważ zdolność do radzenia sobie z takimi atakami zmniejsza wartość funkcji użyteczności atakującego. Po drugie, koszt ataków DDoS sprawia, że małe spółdzielnie nie stają się ich celem, ponieważ korzyści z atakowania ich są stosunkowo małe.
Babaioff i in. [11] analizują inny problem występujący w protokole Bitcoin. Problem ten nasili się, gdy zakończy się wypłacanie wynagrodzenia za wydobycie bloków w sieci Bitcoin. Obecnie węzły weryfikujące transakcje otrzymują dwojakie wynagrodzenie. Po pierwsze, otrzymują nowo emitowane Bitcoiny za dołączenie każdego nowego bloku do łańcucha, a po drugie – otrzymują opłaty transakcyjne od użytkowników.
276 Zapobieganie atakom górników na spółdzielnie wydobywcze…
Maksymalna liczba Bitcoinów w obiegu jest sztywno ograniczona do około 21 milionów [12]. Emisja nowych Bitcoinów będzie cały czas wykładniczo maleć aż do osiągnięcia maksymalnej liczby monet w obiegu. Po osiągnięciu tego maksymalnego progu, opłata transakcyjna stanie się jedynym źródłem wynagrodzeń dla górników. Górnicy będą wówczas mieć motywację do ukrywania informacji o potencjalnych transakcjach, ponieważ praca poświęcona na dołączanie bloków do łańcucha nie będzie wynagradzana nowo emitowanymi bitcoinami, czyli weryfikator transakcji będzie otrzymywał wyłącznie opłatę transakcyjną. Motywacja do utajniania tych informacji może potencjalnie osłabić system Bitcoin, ponieważ czas potwierdzenia transakcji wydłuży się, gdy transakcja będzie weryfikowana przez tylko jeden węzeł.
Kroll i in. [13] badali sieć Bitcoin jako grę konsensusową i rozważali ekonomikę wydobycia bitcoinów. Ich celem było ustalenie motywacji dla racjonalnych graczy do nieprzestrzegania protokołu wydobycia. Autorzy pracy dowodzą w niej, że istnieje pewien wynik w równowadze Nasha, w przypadku którego wszyscy gracze współpracują zgodnie z referencyjną implementacją Bitcoina. Istnieje jednak nieskończenie wiele punktów równowagi, w których gracze mogą zachowywać się inaczej. Autorzy pokazują, że zmotywowany przeciwnik może być w stanie wykonać udany atak na tę kryptowalutę i że w związku z tym wymagane będzie wprowadzenie struktur zapewniających ład.
Barber i in. [14] nie odwołują się do żadnych modeli z teorii gier. Opisują natomiast kilka potencjalnych możliwych luk w protokole blockchaina, które doskonale nadają się do rozważań w kontekście teorii gier. Są to: spirala deflacyjna, atak zmiany historii oraz opóźnione potwierdzanie transakcji. Carlsten i in. [15] analizują problemy Bitcoina i jego blockchaina, które pojawią się po wypłaceniu górnikom ostatniego wynagrodzenia za blok. Autorzy pokazują, że gdy zakończy się wypłacanie wynagrodzeń za wydobycie i pozostaną jedynie opłaty transakcyjne, zwiększy się motywacja do działań przeciwko protokołowi.
Luu i in. [16] analizują atak wstrzymywania bloków na spółdzielnie wydobywcze, opisany po raz pierwszy przez Rosenfelda [4]. Dowodzą, że w długiej perspektywie zawsze istnieje motywacja do tego ataku, ale może on być nieopłacalny w perspektywie krótkoterminowej. Analizując to samo zagadnienie, Eyal [17] dochodzi do wniosku, że gdy dwie spółdzielnie atakują się nawzajem, w rezultacie występuje rodzaj dylematu więźnia, który nazywa się dylematem górnika. Lewenberg i in. [18] wprowadzają modyfikację protokołu Blockchain, która umożliwia włączanie bloków z rozwidleń w celu przyspieszenia działania sieci. Następnie przedstawiają oparty na teorii gier model rywalizacji węzłów stosujących nowy protokół o wynagrodzenia.