100869030

Page 1


Spis treści

Przedmowa XI

Wprowadzenie XIII

Lista autorów XVI

CZĘŚĆ I WPROWADZENIE DO BLOCKCHAINA

01 Wprowadzenie 3

1.1. Podstawowe informacje na temat łańcucha bloków 3

1.2. Zawartość książki 20

Bibliografia 28

02

Protokoły i algorytmy rozproszonego konsensusu 30

2.1. Wprowadzenie 30

2.2. Odporny na awarie konsensus w systemie rozproszonym 31

2.3. Konsensus Nakamoto 46

2.4. Nowe algorytmy konsensusu dla blockchaina 50

2.5. Ocena i porównanie 58

2.6. Podsumowanie 58 Podziękowania 60

Bibliografia 60

03

Przegląd płaszczyzn ataków w sieci blockchain 62

3.1. Wprowadzenie 62

3.2. Omówienie technologii blockchain i jej działania 64

3.3. Ataki na łańcuch bloków 65

3.4. System peer-to-peer łańcucha bloków 68

3.5. Ataki zorientowane na zastosowania 73

3.6. Powiązane prace 75

3.7. Podsumowanie i dalsza praca 76

Bibliografia 77

CZĘŚĆ II ROZWIĄZANIA BLOCKCHAINOWE

04

ProvChain: oparte na blockchainie potwierdzanie pochodzenia danych w chmurze 83

4.1. Wprowadzenie 83

4.2. Kontekst i powiązane prace 85

4.3. Architektura ProvChain 91

4.4. Implementacja ProvChain 96

4.5. Ocena 103

4.6. Podsumowanie i dalsza praca 110

Podziękowania 111

Bibliografia 111

05

Oparte na blockchainie rozwiązania problemów bezpieczeństwa i prywatności danych dla branży motoryzacyjnej 114

5.1. Wprowadzenie 114

5.2. Wprowadzenie do łańcucha bloków 118

5.3. Proponowane rozwiązanie 122

5.4. Zastosowania 124

5.5. Ocena i dyskusja 131

5.6. Powiązane prace 136

5.7. Podsumowanie 138

Bibliografia 138

06 Oparte na blockchainie dynamiczne zarządzanie kluczami w sieciach IoT do zapewniania bezpieczeństwa w transporcie 140

6.1. Wprowadzenie 140

6.2. Rozważane zastosowanie 142

6.3. Schemat dynamicznego zarządzania kluczami w oparciu o blockchain 149

6.4. Algorytm dynamicznego gromadzenia transakcji 150

6.5. Skład czasu 153

6.6. Ocena wydajności 156

6.7. Podsumowanie i dalsze prace 165

Bibliografia 167

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.

1 https://medium.com/blockchain-connect-conference/top-50-blockchainpapers-and-researchteam-lead-you-to-the-frontier-of-blockchainacademic-277b0358b784

Wprowadzenie XV

02

Protokoły i algorytmy rozproszonego konsensusu

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.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.