Bezpieczeństwo i niezawodność systemów rozproszonych 1
Niezawodność systemów rozproszonych Niezawodność systemów rozproszonych można określać w kategoriach dostępności (availability) świadczonych przez nie usług (wyrażanej w procentach czasu) W celu zagwarantowania dostępności usług system powinien móc świadczyć dalej usługi w przypadku usterki (awarii elementów jednego z omawianych wcześniej typów) efektywność świadczenia usług może ulec zmniejszeniu nie może dojść do utraty lub niespójności danych zasoby krytyczne (także zasoby danych), których awaria powodowałaby awarie całego systemu, powinny być powielane i móc być zastępowane lub rekonstruowane Konieczność zarządzania powielanymi zasobami zwiększa złożoność i zmniejsza wydajność systemu 2
Niezawodność systemów rozproszonych Niezawodny system musi posiadać możliwość diagnozowania własnych usterek i podejmowania odpowiednich działań Działania takie obejmują: maskowanie usterek (uszkodzeń) całkowite ukrycie usterki, kontynuacje dalszej pracy zgłoszenie jednego z dopuszczalnych wadliwych zachowań systemu (ich liczba powinna być minimalizowana) w pewnych systemach dopuszcza się maskowanie jednych awarii innymi (np. IP maskowanie awarii błędów awariami pominięcia) chwilowe lub całkowite przerwanie funkcjonowania w przypadku niemożności ukrycia usterki system powinien zawieść w przyjazny sposób (fail gracefully), tzn. sposób przewidywalny i ściśle określony oraz nieprowadzący do utraty lub niespójności danych 3
4
5
6
7
8
9
10
11
Bezpieczeństwo Narażenie na niebezpieczeństwo w systemach rozproszonych wynika z ich fundamentalnej cechy współdzielenia zasobów Otwartość łączy w systemach rozproszonych czyni je łatwym celem ataków Zagwarantowanie bezpieczeństwa danych polega na zapewnieniu: poufności niedopuszczaniu do zasobów informacyjnych osób nieuprawnionych integralności uniemożliwieniu dokonywania nieuprawnionych zmian i niszczenia danych dostępności uniemożliwieniu blokowania dostępu do danych 12
Bezpieczeństwo Trzy podstawowe zagrożenia dla bezpieczeństwa danych i zasobów to: wyciek przedostanie sie danych do osób nieuprawnionych przekłamanie zniekształcenie danych zniszczenie danych lub zasobów, uniemożliwienie poprawnego funkcjonowania systemów Ochrona przed zagrożeniami polega na: zastosowaniu odpowiednich mechanizmów zabezpieczania (security mechanisms) zgodnie z określoną strategią zapewniania bezpieczeństwa (security policy) 13
Bezpieczeństwo Podstawowymi sposobami realizacji ataków na systemy rozproszone są: podsłuchiwanie (eavesdropping) podszywanie się (masquerading) zniekształcanie (tampering) powtarzanie (replaying) przetrzymywanie komunikatów i przesyłanie ich w późniejszym terminie człowiek pośrodku (man in the middle) szczególnie groźne, gdy dotyczy przejmowania kluczy służących do szyfrowania odmowa usługi (denial of service) zablokowanie kanału komunikacji lub węzła sieci poprzez zalanie go komunikatami 14
Zapewnienie bezpieczeństwa Zapewnienie bezpieczeństwa polega najczęściej na ustaleniu listy wszelkich możliwych zagrożeń i zagwarantowaniu, że użyte mechanizmy i strategie pozwalają wyeliminować zagrożenia Podstawowymi mechanizmami zapewniania bezpieczeństwa są: stosowanie technik kryptograficznych nadawanie użytkownikom uprawnień do wykonywania poszczególnych czynności stosowanie identyfikacji użytkowników i weryfikacji jej autentyczności (uwierzytelniania) stosowanie zapór sieciowych (firewalls, ścian ogniowych ) 15
Kryptografia Kryptografia odgrywa szczególnie istotną rolę w zapewnianiu bezpieczeństwa systemom rozproszonym Kryptografia umożliwia zachowanie poufności i integralności przesyłanych danych, a także sprawdzenie autentyczności komunikatów W kryptografii wyróżnia się: szyfrowanie symetryczne (ze wspólnym tajnym kluczem) szyfrowanie asymetryczne (z parą kluczy prywatnym i publicznym) Istotnym zastosowaniem kryptografii jest implementacja podpisów cyfrowych 16
Notacja KA niejawny klucz należący do A KAB niejawny klucz posiadany wspólnie przez A i B KApriv klucz prywatny A KApub klucz publiczny A {M}_K komunikat zaszyfrowany kluczem K [M]_K komunikat podpisany kluczem K 17
Komunikacja ze wspólnym kluczem niejawnym A żąda od serwera autentykacji S żetonu komunikacji z B mającego postać {KAB, A}_KB S zwraca do A odpowiedź zaszyfrowaną kluczem KA zawierającą: żeton zaszyfrowany kluczem KB {KAB, A}_KB wspólny klucz KAB A rozszyfrowuje komunikat i wysyła do B w sposób jawny żądanie nawiązania komunikacji podając swoją tożsamość i przesyłając {KAB, A}_KB A i B są wzajemnie uwierzytelnione, posiadają wspólny klucz niejawny KAB i mogą nawiązać szyfrowaną komunikację 18
Komunikacja z kluczem publicznym B generuje parę kluczy KBpub i KBpriv A uzyskuje klucz KBpub (np. od zaufanego serwera wydającego podpisane cyfrowo certyfikaty zawierające klucz i zaświadczające jednocześnie o autentyczności pochodzenia klucza) A tworzy klucz niejawny KAB, szyfruje go za pomocą KBpub i wysyła do B B rozszyfrowuje komunikat za pomocą odpowiedniego klucza prywatnego KBpriv A i B posiadają wspólny klucz niejawny KAB i mogą nawiązać szyfrowaną komunikację 19
Bezpieczeństwo W wielu sytuacjach dla zapewnienia bezpieczeństwa przetwarzania rozproszonego konieczne jest odwołanie się do pewnych elementów tworzących bazę zaufania Częstą rolą elementów bazy zaufania jest wydawanie certyfikatów potwierdzających prawdziwość pewnych danych Certyfikaty maja postać dokumentów podpisanych cyfrowo W komunikacji szyfrowanej z kluczem publicznym certyfikaty służą m.in. gwarantowaniu, że uzyskany przez A klucz publiczny KBpub pochodzi rzeczywiście od B 20
Man in the middle Atakujący (C) przechwytuje żądanie klucza KBpub wysłane przez A i podstawia własny klucz KCpub. Jednocześnie wysyła do B własne żądanie klucza KBpub. Komunikacja C z B może potem odbywać się tak jak komunikacja A z B w przypadku normalnym (szyfrowanie wspólnym kluczem KCB). A tworzy klucz niejawny KAC myśląc, że jest to klucz do komunikacji z B, szyfruje go za pomocą otrzymanego od C KCpub i wysyła do B (ale żądanie jest przechwycone przez C) C może poprzestać na wykradzeniu klucza lub jakiś innych danych przesłanych przez A do B (np. login i hasło), może także kontynuować cały dialog między A i B, tak aby A nie zorientował się o ataku 21
Podpis cyfrowy Podpis cyfrowy ma, podobnie jak standardowy podpis, umożliwiać ustalenie autorstwa dokumentu i zapobiegać fałszowaniu dokumentów Podpis cyfrowy musi zawierać elementy, które mogą pochodzić tylko od jednej konkretnej osoby Takim elementem może być np. klucz prywatny, który z założenia jest znany tylko jego właścicielowi Za pomocą klucza prywatnego można szyfrować dokumenty (lub ich transformacje) i tak zaszyfrowany dokument może stanowić podpis cyfrowy 22
Funkcjonowanie podpisu cyfrowego A, chcąc podpisać dokument M, tworzy wyciąg (digest) z tego dokumentu za pomocą odpowiedniego algorytmu funkcja tworząca wyciągi powinna być taka, aby dwa różne dokumenty nigdy nie miały takich samych wyciągów A szyfruje digest(m) za pomocą klucza prywatnego Para (M, {digest(m)}_kapriv) stanowi dokument podpisany cyfrowo B pobiera dokument i sprawdza jego autentyczność oblicza digest(m) na podstawie odczytanego M pobiera (skąd?) klucz publiczny A i rozszyfrowuje {digest(m)}_kapriv jeśli uzyskany na oba sposoby {digest(m)} jest identyczny autentyczność dokumentu zostaje potwierdzona 23
Wymagania dotyczące zabezpieczeń Wymagania związane z bezpieczeństwem stawiane programom: identyfikacji użytkowników autentykacji użytkowników autoryzacji wykrywania ataków odporności na ataki (wirusów, robaków, itp.) integralności danych (odporność na niszczenie danych) uniemożliwiania zaprzeczaniu uczestnictwa w transakcjach prywatności sprawdzalności zabezpieczeń odporności podsystemu zabezpieczeń na zmiany dokonywane w innych częściach systemu 24
Ataki w systemach rozproszonych 25
26
27
28
29
30
31
32
Rozproszone systemy multimedialne 33
Systemy multimedialne Systemy multimedialne posiadają zazwyczaj własne dedykowane technologie przesyłania i obróbki danych Coraz częściej jednak korzystają także ze standardowych komputerów i standardowych sieci Typowy sprzęt multimedialny kamery, mikrofony, monitory jest obsługiwany przez współczesne komputery i systemy operacyjne Popularne komputerowe aplikacje multimedialne: multimedia poprzez WWW telefonia internetowa wideo na życzenie wideo konferencje 34
Elementy systemu multimedialnego Video camera and mike Local network Local network Wide area gateway Video server Digital TV/radio server 35
Własności danych multimedialnych Podstawową własnością danych multimedialnych jest to, że ich funkcjonowanie odbywa się w czasie, poprzez ciągłą zmienność Dane przekazywane są w postaci bloków (próbek dźwięku samples, ramek wideo frames) o określonym rozmiarze z określoną częstotliwością Wierne odtworzenie strumieni multimedialnych wymaga znaczących zasobów obliczeniowych i komunikacyjnych Braki zasobów mogą doprowadzić do utraty możliwości prezentacji danych multimedialnych 36
Własności danych multimedialnych Charakterystyka typowych multimedialnych strumieni danych Data rate (approximate) Sample or frame frequency size Telephone speech 64 kbps 8 bits 8000/sec CD-quality sound 1.4 Mbps 16 bits 44,000/sec Standard TV video 120 Mbps up to 640x 480 24/sec (uncompressed) pixelsx 16 bits Standard TV video 1.5 Mbps variable 24/sec (MPEG-1 compressed) HDTV video 1000 3000 Mbpsup to 1920x 1080 24 60/sec (uncompressed) pixelsx 24 bits HDTV video 10 30 Mbps variable 24 60/sec MPEG-2 compressed) 37
Zaspokajanie potrzeb multimediów interactive video high-quality audio insufficient resources scarce resources abundant resources network file access remote login 1980 1990 2000 38
Projektowanie systemów multimedialnych Podstawowym zadaniem przy projektowaniu systemów multimedialnych jest zagwarantowanie dostępności zasobów podczas prezentacji danych, tzw. zarządzanie jakością usług (quality of service (QoS) management) zarządzanie obejmuje planowanie wykorzystania, rezerwację, alokowanie zasobów systemowych na potrzeby systemu Jeśli system nie jest w stanie zapewnić odpowiedniej jakości usług, nadal można prezentować dane na zasadzie najlepszych starań (best effort) tak działają np. usługi multimedialne w ramach przeglądarek internetowych 39
System multimedialny PC/workstation PC/workstation Window system Camera A Microphones Screen K Codec B Mixer G Codec H L Network connections C D Video file system Codec M Video store Window system : multimedia stream White boxes represent media processing components, many of which are implemented in software, including:codec: coding/decoding filter mixer: sound-mixing component 40
Elementy zarządzania jakością usług (QoS) System zarządzania jakością usług realizuje swoje funkcje poprzez: negocjacje dostępu z systemami operacyjnymi zasobów zarządzanie dostępem po uzgodnieniu kontraktu Parametrami dostępu do zasobów są: przepustowość (bandwidth) impulsywność (burstiness) opóźnienie (latency) czas przesłania od źródła do celu fluktuacje (jitter) zmienność opóźnienia procent strat (loss rate) na skutek przepełnienia buforów na skutek zbyt późnego przybycia danych (próbki, ramki) 41
System multimedialny Component Bandwidth Latency Out: 10 frames/sec, raw video Camera 640x480x16 bits A Codec In: 10 frames/sec, raw videointeractive Out: MPEG-1 stream B Mixer In: 2 44 kbps audio Interactive Out: 1 44 kbps audio H Window In: various Interactive system Out: 50 frame/sec framebuffer K Network In/Out: MPEG-1 stream, approx.interactive connection 1.5 Mbps L Network In/Out: Audio 44 kbps Interactive connection Loss rate Resources required Zero Low 10 ms CPU each 100 ms; 10 Mbytes RAM Very low 1 ms CPU each 100 ms; 1 Mbytes RAM Low 5 ms CPU each 100 ms; 5 Mbytes RAM Low 1.5 Mbps, low-loss stream protocol Very low 44 kbps, very low-loss stream protocol 42
Regulacja strumieni danych Przeciwdziałanie skutkom impulsywności wygładzanie strumieni danych za pomocą buforowania (a) Leaky bucket (b) Token bucket Token generator 43
Specyfikacja przepływu wg RFC 1363 Protocol version Maximum transmission unit Bandwidth: Token bucket rate Token bucket size Maximum transmission rate Delay: Minimum delay noticed Maximum delay variation Loss sensitivity Loss: Burst loss sensitivity Loss interval Quality of guarantee 44
Zarządzanie jakością usług Procedury negocjacji dostępu do zasobów mogą być złożone ze względu na: zmienność w przestrzeni dane mogą wędrować z wielu źródeł, poprzez wiele kanałów, do wielu punktów docelowych zmienność w czasie w trakcie realizacji aplikacji parametry przepływu danych mogą się zmieniać współdzielenie kanałów komunikacyjnych przez wiele aplikacji Sposobami realizacji kontraktu dotyczącego dostępu mogą być: rezerwacja zasobów dla danej aplikacji łączenie (multipleksing) strumieni z różnych aplikacji, tak aby statystycznie uzyskać pełniejsze wykorzystanie zasobów w takiej sytuacji gwarancje dla każdej z aplikacji są tylko statystyczne i w momentach spiętrzenia żądane parametry mogą nie być zapewniane 45
Zarządzanie jakością usług System zarządzający zasobem dokonuje planowania jego wykorzystania: na zasadzie kolejkowania stosując algorytmy planowania w czasie rzeczywistym Aby radzić sobie z sytuacjami, kiedy żądane parametry przesyłu nie są zapewniane można stosować adaptację strumienia danych skalowanie zależne od aplikacji, np. dla strumienia wideo: czasowe zmniejszenie liczby ramek na sekundę przestrzenne zmniejszenie rozdzielczości obrazu częstotliwości modyfikacja kompresji amplitudy zmniejszenie głębi kolorów każdego piksela filtrowanie skalowanie w węzłach pośrednich 46
Przykład system wideo na życzenie Elementy i wymagania: rozbudowana biblioteka filmów klienci oglądający filmy na żywo (z pauzami i przewijaniem) systemy klienckie w postaci komputerów osobistych z małymi buforami na dane, stąd fluktuacje strumieni powinny być małe wysoka jakość odtwarzania małe straty pakietów liczba klientów do kilku tysięcy, możliwość oglądania hitów przez wielu klientów jednocześnie odporność na awarie serwerów 47
Przykład system wideo na życzenie Controller low-bandwidth network 0 n+1 Cub 0 1 n+2 Cub 1 2 n+3 Cub 2 3 n+4 Cub 3 n 2n+1 Cub n high-bandwidth ATM switching network video distribution to clients Start/Stop requests from clients 48
Przykład system wideo na życzenie Organizacja przechowywania filmów: każdy film jest podzielony na bloki (o rozmiarze ok. 0.5 s czyli ok. 0.5 MB) kolejne bloki przechowywane są w kolejnych komputerach (cubs) z zawijaniem każdy blok dodatkowo dzielony jest na d (od 4 do 8) porcji zapasowych, rozłożonych w kolejnych komputerach (jeśli blok znajduje się w komputerze i tym, porcje zapasowe tworzące blok przechowywane są w komputerach od i+1 do i+d) dzięki temu system może tolerować awarię serwera (przejmujące jego rolę komputery muszą rezerwować sobie odpowiedni zapas mocy) 49
Przykład system wideo na życzenie Organizacja pracy komputerów komputery przechowują listę okienek w każdym okienku znajdują się dane pojedynczego aktualnie obsługiwanego przez system klienta, m.in.: adres komputera klienta dane odtwarzanego filmu (nazwa pliku, aktualna pozycja w pliku, czas dostarczenia następnego bloku) komputer realizuje zadania dla każdego okienka: zapakowanie i wysłanie bloku danych do klienta aktualizacja stanu okienka i przesłanie do kolejnego komputera 50
Przykład system wideo na życzenie 2 block play timet block service time t 1 0 slot 0 slot 1 slot 2 slot 3 slot 4 slot 5 slot 6 slot 7 viewer 4 free free viewer 0 viewer 3 viewer 2 free viewer 1 state state state state state 51
Systemy P2P 52
Systemy peer to peer Systemy peer to peer (P2P) są systemami, w których realizacja usług przez system rozproszony oparta jest o wiele pojedynczych węzłów, z których każdy zdolny jest do realizacji części lub całości usług Często rolę węzłów pełnią komputery domowe, systemy na krawędziach Internetu Systemy P2P są znacznie bardziej skalowalne niż tradycyjne systemy klient serwer Systemy P2P są jednocześnie trudniejsze w zarządzaniu od systemów klient serwer 53
Systemy peer to peer Systemy oparte na wielu serwerach wzajemnie się uzupełniających są znane od lat osiemdziesiątych Pierwszym powszechnie znanym systemem P2P, wykorzystującym dostępną skalowalność Internetu, był Napster system współdzielenia plików muzycznych z 1999 roku Elementem systemu były serwery spisu plików, jednakże samą wymianę realizowały wszystkie uczestniczące komputery W szczytowym okresie liczba użytkowników systemu sięgała kilku milionów 54
Napster peers Napster server Index 1. File location request 2. List of peers offering the file 5. Index update Napster server Index 3. File request 4. File delivered 55
Systemy peer to peer Napster był systemem, który udowodnił możliwość realizacji w pełni skalowalnej wymiany plików między węzłami W celu zapewnienia wydajności wymiany Napster uwzględniał odległość pomiędzy węzłami Napster wykorzystywał istotne własności plików muzycznych: po utworzeniu nie są modyfikowane dowolna kopia zadowala użytkownika Wadą Napstera była zależność od serwerów listy plików mała skalowalność lub słaba aktualność rozwiązania 56
Systemy peer to peer Systemy wymiany plików P2P, z racji swej specyficznej funkcji, są projektowane by spełniać wymagania: globalnej skalowalności zrównoważenia obciążenia maksymalizacji lokalności interakcji tolerowania awarii (lub zwyczajnego odłączenia) sieci i serwerów bezpieczeństwa danych (integralności i prywatności) anonimowości i odporności na cenzurę 57
Systemy peer to peer Kolejne generacje systemów P2P nadal w głównej mierze skupiają się na wymianie plików pomiędzy użytkownikami Systemy drugiej generacji wprowadziły rozproszone spisy plików Podstawowym problemem jest nadal rozmieszczanie kopii plików w węzłach sieci i wyszukiwanie kopii na życzenie użytkowników 58
Rozproszone systemy mobilne 59
Systemy mobilne Systemy mobilne są coraz powszechniejszym elementem otoczenia Wiele z nich ma postać systemów wbudowanych Z punktu widzenia systemów rozproszonych istotnym problemem jest komunikacja pomiędzy elementami mobilnymi, która musi uwzględniać fakt ciągłego przemieszczania się elementów, ich pojawiania się i znikania Przykładem systemu z elementami mobilnymi jest np. system wykrywania obecności osób przy użyciu przenośnego identyfikatora 60
System wykrywania obecności Attributes (accessible by polling) Explanation Location Location the widget is monitoring Identity ID of the last user sensed Timestamp Time of the last arrival Callbacks PersonArrives(location, identity, timestamp) Triggered when a user arrives PersonLeaves(location, identity, timestamp) Triggered when a user leaves 61
System wykrywania obecności PersonFinder Room A IdentityPresence Floor pressure (generators) Widgets Room B IdentityPresence Footstep recognition (interpreter) Video (generator) Face recognition (interpreter) 62
System wykrywania obecności 2. Infrared sensor detects user ユ s ID User ユ s ID 3. Display responds to user 1. User enters room wearing active badge Hello Roy Infrared 63
Technologie lokalizacji Type GPS Radio beaconing Active Bat Ultra Wide Band Active badge Mechanism Limitations Accuracy Type of location data Multilateration from satellite radio sources Broadcasts from wireless base stations (GSM, 802.11, Bluetooth) Multilateration from radio and ultrasound Outdoors only (satellite visibility) Areas with wireless coverage 1 10m Absolute geographic Yes coordinates (latitude, longitude, altitude) Proximity to known Yes entity (usually semantic) Ceiling mounted sensors 10cm Relative (room) coordinates. Bat identity disclosed Multilateration from reception of radio pulses Infrared sensing Receiver in stallations 15cm Relative (room) coordinates Tag identity disclosed Sunlight or fluorescent light Room size Proximity to known Badge entity (usually semantic) identity disclosed 10m 1km Privacy Automatic identification tag RFID, Near Field Communication, visual tag (e.g. barcode) Reader installations 1cm 10m Proximity to known Tag identity entity (usually semantic) disclosed Easy Living Vision, triangulation Camera installations Variable Relative (room) coordinates No 64
Systemy mobilne Elementy systemu mobilnego po wzajemnym wykryciu swojej obecności muszą nawiązać kontakt i uzyskać informacje o usługach, które są w stanie świadczyć sobie nawzajem muszą istnieć wspólne różnym elementom protokoły nawiązywania połączenia i odkrywania usług Zagwarantowanie bezpieczeństwa i prywatności w systemach mobilnych musi uwzględniać fakt częstych przypadkowych interakcji między elementami W takiej sytuacji częstym niebezpieczeństwem jest atak man in the midle 65
Bezpieczeństwo w systemach mobilnych W K 1. Fresh secret key K exchanged by physical contact 1. Keys exchanged by Diffie-Hellman protocol K2 2. Devices communicate using secure channel constructed over W using K hash=0x6f9e... Man-in-the-middle K1 hash=0xd57c... 2. User(s) compare hashes of keys displayed on devices by sight or with an integrated imaging device. Since they differ, they conclude that there is a man-in-the-middle or that accidental mis-association has occurred Device displaying hash of key 66
Systemy mobilne Ważną cechą systemów mobilnych, które poprzez ciągłą zmianę miejsc pojawiają się w różnych środowiskach powinna być zdolność do adaptacji do tych środowisk Jednym z elementów adaptacji jest dostosowanie do niejednorodności świadczonych usług Drugim elementem dostosowanie do ulotności (możliwości nagłego zniknięcia) usług 67