Bezpieczeństwo systemów komputerowych II
III rok informatyki
semestr zimowy 2016/2017
wersja z dnia: 17 listopada 2017
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 1 / 325
Literatura obowiązkowa
Kevin Mitnick, Sztuka podstępu, Helion 2003
Kevin Mitnick, Sztuka infiltracji, Albatros 2006
Podręczniki
Anonim, Internet: agresja i ochrona, Wyd. Robomatic 1998
Anonim, Linux: agresja i ochrona, Wyd. Robomatic 2000
J. Pieprzyk, T. Hardjono, J. Seberry, Teoria bezpieczeństwa systemówkomputerowych, Helion 2005
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 2 / 325
Rodzaje zagrożeń
Rodzaje zagrożeń
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 3 / 325
Rodzaje zagrożeń
Kradzież/wydobycie informacji w dowolnej postaci może nastąpić
na drodze elektronicznej, wykorzystując technologię
na drodze psychologicznej, wykorzystując słabość czynnika ludzkiego
jako kombinacja obu powyższych
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 4 / 325
Rodzaje zagrożeń
Trochę terminologii:
hacker i cracker – potrzebne czy niepotrzebne rozróżnienie?
script kiddies
socjotechnik
phreaking – manipulowanie liniami telefonicznymi, korzystaniez numerów technicznych, darmowe dzwonienie lub obciążanie cudzegorachunku; później włamania za pomocą modemów telefonicznych(ISDN, DSL), obecnie włamania do sieci komórkowych
spoofing – podszywanie się (też elektroniczne)phishing – wyłudzanie haseł do kont bankowych i danych kartkredytowych
I SMiShing – phishing za pomocą SMSI pharming – wyrafinowany phishing z przekierowaniem właściwegoadresu np. banku na adres spreparowanej strony; wymagawcześniejszego przejęcia serwera DNS lub włamania się do systemuoperacyjnego ofiary
wardriving, warpharming, spam...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 5 / 325
Rodzaje zagrożeń
Przykład phishingu
Return-Path: <[email protected]>X-Original-To: [email protected]: [email protected]: Debian amavisd-new at kft(...)Received: from update.com (unknown [99.35.207.46])by kft.umcs.lublin.pl (Postfix) with ESMTP id A341C15FB8for <[email protected]>; Thu, 8 Aug 2013 10:23:42From: [email protected], [email protected],[email protected]: [email protected]: Dear Barclays Online Customer,Date: 08 Aug 2013 04:23:33 -0500Message-ID: <20130808042331.6FC824A1C44B4106
@from.header.has.no.domain>
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 6 / 325
Rodzaje zagrożeń
Dear Barclays Online Customer,
Your access to Barclays Online Banking network has beentemporarily limited due to multiple login errors on youraccount.
Protecting the privacy of your online banking access andpersonal information are our primary concern.
Therefore, as preventive measure, you are expected tore-activate your account details within 24hrs to avoidpermanent suspension of your Internet Banking access.
To review your account as soon as possible please downloadthe form and follow the instructions on your screen.(...)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 7 / 325
Rodzaje zagrożeń
W załączniku jest plik .zipz formularzem w html. Cechy:
sfałszowane nagłówki email
groźby w liście, ale jednocześniezapewnienie o chęci pomocy
brak linku http, formularzprzesłany jako plik html
spakowanie załącznika, abyuniknąc filtrów antyspamowychi programów antywirusowych
żądanie podania wszystkichdanych do konta bankowegoi karty kredytowej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 8 / 325
Rodzaje zagrożeń
Formularz może uchodzić za wiarygodny
zawiera linki do stron banku
korzysta z orginalnych stylów css, logo, nagłówka i stopki
treść formularza obsługiwana jest przez skrypthttp://securehttp.altervista.org/done.php
Skryptu nie da się pobrać ani podejrzeć
$ wget http://securehttp.altervista.org/done.php
--2013-08-08 13:09:54-- http://securehttp.altervista.org/done.phpTranslacja securehttp.altervista.org (securehttp.altervista.org)
... 176.9.139.246Łączenie się z securehttp.altervista.org
(securehttp.altervista.org)|176.9.139.246|:80... połączono.Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 403 Forbidden2013-08-08 13:09:54 BŁĄD 403: Forbidden.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 9 / 325
Rodzaje zagrożeń
CZYNNIK LUDZKI TO NAJSŁABSZE OGNIWOSYSTEMU ZABEZPIECZEŃ
Socjotechnika a prawo w Polsce
podawanie się za kogoś innego (osobę fikcyjną) jest niekaralne(ale korzystanie z nieprzysługujących przywilejów tak)
podszywanie się pod kogoś (kto istnieje) jest karalne
podpisanie się cudzym nazwiskiem na dokumencie jest karalne
wyłudzenie informacji jest karalne
ujawnianie informacji niejawnych jest karalne
W większości przypadków:socjotechnik = oszust
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 10 / 325
Rodzaje zagrożeń
Sztuczki socjotechniczne i psychologiczne
kumple – wspólne zainteresowania, poglądy, pochodzenie...
współczucie i litość
groźba – szef będzie zły
zagrożenie – macie wirusa, który kasuje dane
presja czasu
wzajemność – ja zrobiłem coś dla ciebie, ty zrób coś dla mnie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 11 / 325
Rodzaje zagrożeń
Zasady wykorzystywane przy nakłanianiu ludzi do zrobienia czegoś:[dr Agata Gąsiorowska, Szkoła Wyższej Psychologii Społecznej we Wrocławiu]
reguła zobowiązania i konsekwnecjijak się powiedziało A to trzeba powiedzieć B...głupio wyjść przez kasy ze sklepu bez zakupów...
reguła wzajemnościodpłata za zaproszenie, wycieczkę, degustację, prezencik...
reguła niedostępnościpromocja, wyprzedaż, okazja, niedostępne nigdzie indziej
reguła autorytetu„lekarz” opowiada o lekarstwie, „budowlaniec” o farbie
reguła społecznego dowodu słusznościto działa bo: on tak mówi, tylu ludzi tu przyszło...
Jak te zasady wykorzystać przy atakach socjotechnicznych nainfrastruktury informatyczne?
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 12 / 325
Rodzaje zagrożeń
Ludzie wyjawiali nieznajomym zastrzeżone informacje przez telefon. Czynas lub naszych najbliższych nigdy nie oszukano, naciągnięto, skłoniono dokupna?
domokrążcy
„pokazy produktów zdrowotnych”
telefon z banku, kablówki, oferty sieci komórkowych...
Mając tylko kilka informacji, np. imię, nazwisko, miasto i przybliżony wiek,można namierzyć osobę korzystając tylko z Google’a. Im bardziej osoba taudziela się, tym więcej informacji można o niej znaleźć.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 13 / 325
Ochrona fizyczna i polityka bezpieczeństwa informacji
Ochrona fizycznai polityka bezpieczeństwa informacji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 14 / 325
Ochrona fizyczna i polityka bezpieczeństwa informacji
Pierwszą i często zapominaną linią obrony jest zabezpieczenie fizycznegodostępu do zasobów. Co można zrobić, mając fizyczny dostęp do świetniezabezpieczonego komputera?
ukraść go w całości
wymontować dysk z danymi
zresetować bios
zrebootować komputer z innymi opcjami (init=/bin/bash)
wykorzystać bootloader (np. uruchomić windows w trybienaprawczym, wykorzystać konsolę grub’a)
uruchomić komputer z bootowalnego pendrive’a
podłączyć dodatkowy hardware, np. szpiegujący
przepiąć kable sieciowe (identyfikacja po portach)
Jak Mitnick z kolegą wygrali 300$ (konferencja DEC w 1981 r.), niewłamując się do systemu chronionego przez LOCK-11...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 15 / 325
Ochrona fizyczna i polityka bezpieczeństwa informacji
W pomieszczeniach administratorów i serwerowniach często stojąniezabezpieczone terminale (z zalogowanym adminem?), znaleźć możnanotatki, dokumentacje, wydruki, wydruki robocze, kopie zapasowe.Wg wszelkich reguł, rzeczy takie muszą być
sklasyfikowane (jawne, poufne, zastrzeżone, tajne)
odpowiednio zabezpieczone od strony elektronicznej (szyfrowaniekopii zapasowych baz danych)
odpowiednio zabezpieczone od strony fizycznej (szafy pancerne,klucze w sejfach, zamki szyfrowe, zabezpieczenia biometryczne...)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 16 / 325
Ochrona fizyczna i polityka bezpieczeństwa informacji
Certyfikaty, np. ISO/IEC 27001, zawierają wymagania dotyczące SystemówZarządzania Bezpieczeństwem Informacji.Jako zasoby informacyjne identyfikowane są (www.iso27000.pl)
dane cyfrowe
informacje na papierze, mikrofilmy...
zasoby niematerialne (wiedza, licencje, patenty, relacje biznesowe,znak firmowy, wizerunek, doświadczenie, know-how...)
aplikacje i systemy operacyjne
infrastruktura IT (budynki, pomieszczenia, CCTV...)
sprzęt IT
usługi i ich składniki (uwierzytelnianie, firewall, proxy, siecibezprzewodowe, filtry antyspamowe, antywirusy, ftp, email, www...)
pracownicy (stali, zewnętrzni, tymczasowi)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 17 / 325
Ochrona fizyczna i polityka bezpieczeństwa informacji
Trzy poziomy bezpieczeństwa
I Bezpieczeństwo instytucji
II Bezpieczeństwo teleinformatyczne w instytucji
III Bezpieczeństwo systemów instytucji
Na każdym poziomie określić należy
cel (zamierzenia, efekt końcowy)
strategię (sposób osiągnięcia celu)
politykę (konkretne metody realizacji strategii)
Dokument z przykładową polityką bezpieczeństwa firmy
www.securitum.pl/baza-wiedzy/publikacje/przykladowa-polityka-bezpieczenstwa
Patrz też: rozdz. 16 książki Mitnicka Sztuka podstępu.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 18 / 325
Ochrona fizyczna i polityka bezpieczeństwa informacji
Mówiąc o kompleksowym zabezpieczniu systemu komputerowego należyuwzględnić
reguły i procedury obowiązujące pracowników
fizyczne zabezpiecznie dostępu do danych (niszczenie dokumentów)
elektroniczne zabezpieczenie dostępu do danych
zabezpieczenie od strony sieci (internet, telefon, faks, dostęp zdalnyspoza firmy, usługi na serwerach firmowych)
zabezpieczenia od strony sieci wewnętrznej (uprawnieniaużytkowników, praca i praktyki administratorów, komunikacjawewnątrz firmy)
zabezpieczenia używanych systemów operacyjnych
bezpieczeństwa używanych aplikacji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 19 / 325
Ochrona sieci
Ochrona sieci
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 20 / 325
Ochrona sieci
Przypomnienie kilku informacji o sieci
internet = routing
sieci, podsieci, bramy
hub, switch, router, access point (AP)
adresy IP, adresacja sieci, serwery DNS
adresy MAC, protokól TCP/IP
zapory sieciowe (firewall)
serwery, protokoły sieciowe, porty
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 21 / 325
Ochrona sieci
Układy (topologie) sieci okiem włamywacza
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 22 / 325
Ochrona sieci Model OSI
Model OSI
Warstwa 7.: aplikacji
Warstwa 6.: prezentacji danych
Warstwa 5.: sesji
Warstwa 4.: transportu
Warstwa 3.: sieci
Warstwa 2.: danych
Warstwa 1.: fizyczna
Gdzie można zaszkodzić? Prawie na każdym poziomie.
Zobacz:Bartosz Bobkiewicz, Metody omijania zapór sieciowych(praca magisterska, Politechnika Poznańska 2007)http://omijanie-zapor-sieciowych.eprace.edu.pl/
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 23 / 325
Ochrona sieci Model OSI
Warstwa 7.: aplikacji jest bramą, przez którą procesy aplikacji dostają siędo usług sieciowych. Ta warstwa prezentuje usługi, które są realizowaneprzez aplikacje (przesyłanie plików, dostęp do baz danych, pocztaelektroniczna itp.)
Lokalne exploity, użytkownicy ze zbyt dużymi uprawnieniami, przejęcieuprawnień serwerów, ataki na bazy danych, pliki tymczasoweprzechowujące hasła...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 24 / 325
Ochrona sieci Model OSI
Warstwa 6.: prezentacji danych odpowiada za format używany dowymiany danych pomiędzy komputerami w sieci. Na przykład kodowanie idekodowanie danych odbywa się w tej warstwie
Warstwa 5.: sesji pozwala aplikacjom z różnych komputerów nawiązywać,wykorzystywać i kończyć połączenie
Resetowanie połączenia pozwala na wymuszenie przeprowadzeniaprocedury autoryzacji i przejęcia haseł lub przekierowania połączenia
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 25 / 325
Ochrona sieci Model OSI
Warstwa 4.: transportu odpowiedzialna jest za dostawę wiadomości,które pochodzą z warstwy aplikacyjnej. U nadawcy warstwa transportudzieli długie wiadomości na kilka pakietów, natomiast u odbiorcy odtwarzaje i wysyła potwierdzenie odbioru. Sprawdza także, czy dane zostałyprzekazane we właściwej kolejności i na czas. W przypadku pojawieniasię błędów warstwa żąda powtórzenia transmisji danych.
Ataki typu Man-in-the-Middle, preparowanie i przechwytywanie pakietów
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 26 / 325
Ochrona sieci Model OSI
Warstwa 3.: sieciowa kojarzy logiczne adresy sieciowe i ma możliwośćzamiany adresów logicznych na fizyczne. U nadawcy warstwa sieciowazamienia duże pakiety logiczne w małe fizyczne ramki danych, natomiast uodbiorcy składa ramki danych w pierwotną logiczną strukturę danych
Ta warstwa jest pośrednio wykorzystywana przy atakach na DNS
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 27 / 325
Ochrona sieci Model OSI
Warstwa 2.: danych zajmuje się pakietami logicznymi (lub ramkami)danych. Pakuje nieprzetworzone bity danych z warstwy fizycznej w ramki,których format zależy od typu sieci (np. Ethernet lub Token Ring). Ramkiużywane przez tą warstwę zawierają fizyczne adresy nadawcy i odbiorcydanych
nfsec.pl/hakin9/osi.pdfPrzekierowanie pakietów, preparowanie nagłówków do ataków DoS
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 28 / 325
Ochrona sieci Model OSI
Warstwa 1.: fizyczna przesyła nieprzetworzone bity danych przez fizycznynośnik (kabel sieciowy lub fale elektromagnetyczne w przypadku sieciradiowych). Ta warstwa przenosi dane generowane przez wszystkie wyższepoziomy, przy czym warstwy 1 do 4 są to tzw. warstwy niższe (transportdanych) zaś warstwy 5 do 7 to warstwy wyższe (aplikacyjne)
Ataki na sieci bezprzewodowe i sieci przewodowe poprzez zastosowaniesprzętowych: zagłuszaczy, keyloggerów etc.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 29 / 325
Ochrona sieci Protokół TCP/IP
Protokół TCP/IPWyróżnia 4 warstwy:
dostępu do sieci (link) – przygotowanie danych dla wyższej warstwy,dzielenie datagramów na ramki, kapsułkowanie
internetu – adresowanie, fragmentacja i scalanie datagramów
transportową – TCP – dostarczenie danych do odbiorcy
aplikacji – różne protokoły takie jak telnet, ftp, smtp...
Flagi tcp
ACK – potwierdzenie, że dane z pola acknowledgment są poprawne
RST, SYN, FIN – przesyłane są przy zakończeniu, zerwaniu połączenia
PSH – natychmiastowe przekazanie do wyższej warstwy (nie używane)
URG – pilne dane (nie używane)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 30 / 325
Ochrona sieci Protokół TCP/IP
3-way handshake, czyli wymiana uścików dłoni, poprzedza transmisjędanych
A wysyła do B SYN
B zwraca SYN+ACK
A odpowiada ACK
transmisja nawiązana
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 31 / 325
Ochrona sieci Protokół TCP/IP
Słabości:
pakiet SYN z nieprawidłowym adresem zwrotnym: serwer szuka, komuodesłać pakiety zwrotne, blokując swoje działanie
pakiet SYN ze sfałszowanym adresem zwrotnym: serwer odsyłapakiety zwrotne na adres ofiary
po otrzymaniu SYN serwer musi utrzymać półotwarte połączenieprzez jakiś czas (przeciętnie 75 s); ograniczenia aplikacji mogądoprowadzić do przepełnienia buforów
podatność na sniffing (współdzielenie łączy)
słaba kontrola wiarygodności nagłówków (spoofing)
SYN scanning to nawiązywanie połączenia do połowy i zrywanie gopo otrzymaniu SYN+ACK lub RST, co daje informacjeo otwartym/zamkniętym porcie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 32 / 325
Ochrona sieci Ataki
Ataki sieciowePrzy projektowaniu sieci należy uwzględnić
podział na internet, sieć publiczną, DMZ, sieć wewnętrznąz możliwymi dalszymi podziałami
sprzęt
dostęp od strony internetu, wifi, wdzwaniany, vpn i metody ichautoryzacji
prawa dostępu i reguły ruchu sieciowego na stykach wszystkichpodsieci i stref
uprawnienia administratora serwera, domeny, systemu, na każdymkomputerze
rodzaje przechowywanych danych na każdym komputerze
Przed tymi problemami staje włamywacz, próbujący rozpracować systemkomputerowy.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 33 / 325
Ochrona sieci Ataki
Zagrożenia związane z podłączeniem komputera do sieci są ściślepowiązane z zabezpieczeniem systemu operacyjnego i aplikacji. Scenariuszedziałania:
celem jest serwer, atak wyłącza lub destabilizuje usługę (www,poczta, obsługa interesantów)
celem jest gateway, atak ma na celu przejście do sieci wewnętrznej
celem jest komputer, atak ma na celu przejęcie kontroli nad systememoperacyjnym
celem jest komputer, atak ma na celu kradzież danych
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 34 / 325
Ochrona sieci Ataki
Historia pewnego ataku:http://nfsec.pl/security/5378Jest to dość typowy scenariusz, tym razem z happy-endem.Po co atakowane są inne komputery?
dla sportu, żeby się wykazać, na znak protestu i buntu etc.
żeby uzykać dostęp do sieci wewnętrznej
żeby zatrzeć ślady i utrudnić namierzenie (stacja przesiadkowa)
żeby wykorzystać je do dalszych ataków np. DDoS (zombie)
żeby przejąć dane, pliki z hasłami, pocztę
szpiegostwo przemysłowe, szpiegowanie osób (np. na potrzeby firmadwokackich, detektywistycznych, agencji rządowych, policji...)
żeby ośmieszyć właściciela (hakowanie stron www np. rządu)
żeby narazić go na strarty finansowe
żeby zwrócić jego uwagę na problem bezpieczeństwa
z głupoty, bezmyślności i wandalizmu
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 35 / 325
Ochrona sieci Ataki
Ataki możemy podzielić ze względu na:
źródłoI zewnętrzne (zdalne)I wewnętrzne (lokalne)I pośrednieI bezpośrednie
zamiarI zamierzonyI niezamierzony (przypadkowy)
skutekI udany (aktywny, pasywny)I nieudany
przepływ informacjiI przerwanieI przechwycenieI modyfikacjaI podrobienie
dostęp do informacjiI odczytanieI skopiowanieI modyfikacjaI usunięcie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 36 / 325
Ochrona sieci Ataki
Ataki zewnętrzne są przeprowadzane spoza atakowanego systemu.Najczęściej jest to pierwsza faza ataku, w celu przeniknięcia do sieciwewnętrznej.
Ataki lokalne są przeprowadzane z poziomu sieci wewnętrznej bądź przezwrogiego użytkownika, bądź przez napastnika, który zdołał spenetrowaćzewnętrzne zabezpieczenia.
Ataki lokalne są zazwyczaj łatwiejsze, ponieważ 99% konfiguracji ufaużytkownikom swojego systemu. Zdobycie uprawnień lokalnegoużytkownika przez napastnika zewnętrznego jest najczęściej trudniejsze niżzdobycie uprawnień administratora przez użytkownika lokalnego.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 37 / 325
Ochrona sieci Ataki
Ataki bezpośrednie – atakowany jest bezpośrednio system docelowy(lokalnie lub zdalnie), często z przejętych wcześniej systemów.
Ataki pośrednie wykorzystują serwery open proxy i podobne doprzekierowania strumienia danych, aby zatrzeć ślady. Również:wykorzystanie zaufanych serwisów (np. portali społecznościowych,informacyjnych...) do przeprowadzenia ataku na inny system.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 38 / 325
Ochrona sieci Ataki
Atak udany aktywny – atakowany system został zmodyfikowany (dane,programy). Łatwe do wykrycia przez administratorów.
Atak udany pasywny – atakowany system został spenetrowany, ale bezwprowadzania w nim modyfikacji. Dane mogły zostać wykradzione,podsłuchy, konie trojańskie i backdoory założone. Trudne do wykryciaponieważ system na oko funkcjonuje bez zmian.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 39 / 325
Ochrona sieci Ataki
Przerwanie przepływu informacji
Użytkownik Serwer
Agresor��������
��������
Napastnik fizycznie (sekator, zniszczenie części komputera, np. HDD) lubelektronicznie (zagłuszanie, np. radiowe) odcina połączenie międzywęzłami sieci („użytkownik” i „serwer”).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 40 / 325
Ochrona sieci Ataki
Przechwycenie przepływu informacji
Serwer
Agresor
Użytkownik
��������
��������
Atak na poufność danych, wejście w posiadanie nieprzeznaczonych dlanapastnika danych. Podsłuch pakietów, haseł, kopiowanie przesyłanychdanych i programów.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 41 / 325
Ochrona sieci Ataki
Modyfikacja przepływu informacji
Użytkownik Serwer
Agresor
��������
��������
Atak na nienaruszalność (integralność) danych. Napastnik modyfikujedane aby uzyskać wyższe uprawnienia w systemie lub utrzymać dostęp dosystemu (zmiana plików z danymi, zmiany w aplikacjach, modyfikacjakomunikatów...).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 42 / 325
Ochrona sieci Ataki
Podrobienie przepływu informacji
Użytkownik Serwer
Agresor
��������
��������
Atak na autentyczność danych. Napastnik blokuje komunikacjęz użytkownikiem samemu podszywając się pod niego i wysyłając fałszywekomunikaty i dane.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 43 / 325
Ochrona sieci Ataki
Typy ataków:
DoS – odmowa usługi
spoofing – podmiana i przekierowanie
phishing i pharming – wyłudzenie i oszustwo, przekierowanie
łamanie haseł i protokołów
ataki na system i aplikacje
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 44 / 325
Ochrona sieci DoS
Ataki DoS (Denial of Service) to zapchanie buforów, łączy i mocyobliczeniowej, skutkiem czego unieczynnia się system lub sprzęt. Częstopozwala na przełączenie karty sieciowej w tryb nasłuchiwania (promisciousmode).Dwa główne cele ataku DoS:
wysycenie przepustowości łącza
przepełnienie buforów sprzętu (atak na infrastrukturę) lub usługi(atak na aplikację)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 45 / 325
Ochrona sieci DoS
Modyfikacje ataków DoS:
DDoS (Distributed DoS) – atak wykonywany z wielu hostówjednocześnie, często z wykorzystaniem botnetu
rDDoS (reflective DDoS) – wykorzystanie spoofingu, najczęściej dopodmiany adresu zwrotnego pakietów na adres ofiary, podczas atakuDDoS
Schemat botnetu
Ofiara
Hacker
Nadzorcy
Zombie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 46 / 325
Ochrona sieci DoS
Przykłady: ataki typu floodICMP flood: wykorzystanie pakietów protokołu icmp
I Ping flood: atak DoS za pomocą pakietów ICMP (type: 8, EchoRequest)
I Ping of Death: pakiet ping o rozmiarze większym niż 64kB powodowaławarię Windows 3.11, 95, NT oraz systemu Novell NetWare 3.x
I Smurf Attack: ping flood wysyłany na adres rozgłoszeniowy sieciz adresem zwrotnym ofiary (pozwala na atak silnego łącza z łączasłabszego)
UDP flood: pakiety UDP nie mają ograniczenia na rozmiar, więcłatwiej jest nimi wysycić łącze, lub przeładować usługę mającąograniczenie na rozmiar akceptowanego pakietu (np. DNS ograniczapakiet do 512 B)TCP flood: wykorzystuje cechy protokołu TCP
I SYN flood: zestawianie w połowie otwartych połączeń aż doprzepełnienia bufora
I ACK flood: ostatni pakiet ACK z 3-way handshake’a TCP jest odsyłanyzwrotnie na adres ofiary
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 47 / 325
Ochrona sieci DoS
Przykłady: ataki z wykorzystaniem cech protokołów
CHARGEN (Character Generator) – rzadko używany protokół służącydo debuggowania i testowania łącz, umożliwia wysyłanie losowegociągu znaków aż do zamknięcia połączenia
SSDP (Simple Service Discovery Protocol) – prymitywny i podatnyna ataki protokół wyszukiwania i łączenia urządzeń uPnP w siecilokalnej (TV, kamery, routery...)
SNMP (Simple Network Management Protocol) – prosty protokół doobsługi urządzeń z nadanym adresem IP (drukarki, routery, kamerkiinternetowe, mierniki), pozwalający na ich obsługę, konfigurację,odczytanie wyników pomiarów...
SSL (Secure Sockets Layer) – szyfrowanie wysyci szybciej mocobliczeniową ofiary
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 48 / 325
Ochrona sieci DoS
Przykłady: ataki z wykorzystaniem DNS; wykorzystuje się fakt, żekomunikacja z DNS (port 53) jest na firewallach zawsze otwarta
atak na DNS – destabilizuje działanie sieci
atak przez DNS (DNS Amplification) – typu DDoS lub rDDoS
Przykłady: inne
bomba pocztowa – spam na jedno konto celem jego przepełnienia
backscatter – atak typu DDoS na pocztę; listy rozsyłane jako spam zezwrotnym adresem ofiary, komunikaty zwrotne przepełniają skrzynkęofiary lub blokują cały serwer
LAND – pakiety do ofiary zawierają jej adres zwrotny, przez coatakowany system zaczyna sam do siebie wysyłać odpowiedzi
low rate TCP-targeted attack (shrew attack) – zsynchronizowanepakiety utrzymujące system TCP w stanie permanentnegooczekiwania na RTO (retransmission time-out), blokujące normalnedziałanie łącza
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 49 / 325
Ochrona sieci DoS
ZapobieganieAtaki DoS można próbować odfiltrować na firewallu. Oczywiście trzebazachować równowagę między ochroną (zamknięciem) systemua funkcjonalnością. Ataki rozproszone DoS na serwery dużych firm (np.microsoft.com z 2003 r.) są trudne do opanowania, a przestójw dostarczaniu usług liczy się w milionach dolarów na godzinę.
Trudności:
DoS jest niemal nie do odróżnienia od nasilonego ale uprawnionegoruchu sieciowego
odpada więc stosowanie statycznych filtrów
problem podsieci i domen – z tej samej puli adresów mogą pochodzićzarówno wrogie jak i uprawnione pakiety
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 50 / 325
Ochrona sieci DoS
Metody weryfikacji pakietów na przykładzie spamu:
filtr bayesowski na treść wiadomości – częstotliwościowa analizawyrazów i fraz
DNSBL (DNS Black List) – domeny i adresy IP są zgłaszane jakowrogie i mogą być filtrowane
SURBL (Search for URL Black List) – wyszukiwanie podejrzanychlinków w treści wiadomości i w załącznikach
rDNS (reverse DNS) – system nadawczy powininen byćidentyfikowalny w bazie DNS
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 51 / 325
Ochrona sieci DoS
Metody lokalnej analizy pakietów na atakowanym systemie:
kontrola natężenia ruchu sieciowego
analiza częstości połączeń z tych samych adresów i domen
dynamiczne tworzenie lokalnych czarnych list i modyfikowanie regułfirewalla
zmiana schematów obsługi kolejek żądań tak, aby filtrowanie byłoskuteczniejsze i zapewniało minimalny czas obsługi żądania (MWT –maximum waiting time)arxiv.org/abs/1509.02268arxiv.org/abs/cs/0612066
usprawnienia architektury sieci i konstrukcji protokołówarxiv.org/abs/1506.08953
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 52 / 325
Ochrona sieci DoS
Opublikowane 1.XI.2017www.sciencedaily.com/releases/2017/11/171101130507.htmBadacze z Uniwersytetu Kalifornijskiego w San Diego monitorowali liczbęprzeprowadzonych ataków DoS:
czas badania – od III.2015 do II.2017,
zarejestrowali ponad 20 milionów ataków przeprowadzonych na około2,2 miliona bloków adresów IPv4 (blok /24 zawiera 256 adresów),
na średnio daje to ok. 30 tyś. ataków dziennie,
ze względu na ograniczoną metodę badania dane te sąprawdopodobnie zaniżone.
Wyróżniono dwa główne typy ataków DoS:
bezpośredni (z pojedynczego łącza, sieci, botnetu),
odbiciowy (poprzez protokoły pozwalające na wzmocnienie ataku).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 53 / 325
Ochrona sieci Spoofing
Spoofing to technika polegająca na preparowaniu pakietów i komunikatówsieciowych tak, aby wskazywały na inne źródło pochodzeniai przekierowały ruch na komputer atakującego.
Nagłówek IPv4
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 54 / 325
Ochrona sieci Spoofing
IP spoofing
zamiana w nagłówku adresu nadawcy na fałszywy, co zmienia równieżadres zwrotny dla tego pakietu
obejście filtrów antyspamowych
obejście filtrowania statycznego IP na firewallu
ataki typu man-in-the-middle
ataki typu rDOS
atak LAND
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 55 / 325
Ochrona sieci Spoofing
Ten rodzaj ataku jest łatwo wykrywalny przez standardowe mechanizmy,np. netfilter w linuksie (iptables) potrafi wykryć sfałszowane nagłówki.Najbardziej oczywiste jest odfiltrowanie na interfejsie zewnętrznymadresów własnych oraz zarezerwowanych:
0.0.0.0/810.0.0.0/8127.0.0.0/8172.16.0.0/12192.168.0.0/16224.0.0.0/3
Dodatkowo włącza się weryfikację adresu źródłowego
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 56 / 325
Ochrona sieci Spoofing
ARP spoofing
ARP (Address Resolution Protocol) – tłumaczenie adresów IP naadresy MAC
tablice ARP przechowywane lokalnie przez urządzenia sieciowe, w tymurządzenia węzłowe, odnawiane cyklicznie (mogą być statyczne albodynamiczne)
modyfikacja tablic na skutek pojawienia się w sieci sfabrykowanychpakietów pozwala czasowo na błędne przypisywanie adresu IP dosprzętu
działa w sieci lokalnej
Do przeczytania!Nieformalny poradnik dotyczący ARP spoofing (Bartosz Chodorowski):chomzee.gct-game.net/ethutils/arpspoofing.pdf
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 57 / 325
Ochrona sieci Spoofing
Sieć lokalna, router R i dwa komputery: H(acker) i O(fiara).Scenariusz I R i O działają na dynamicznych tablicach ARP
H wysyła na adres rozgłoszeniowy sieci zapytania ARP o kolejneadresy IP, budując bazę danych działających w sieci MACów
H wysyła do O pakiet zwrotny ARP identyfikując siebie jako router
H wysyła do R pakiet zwrotny ARP identyfikując siebie jako O
H staje się niewidoczny w sieci, jednocześnie pośrednicząc wkomunikacji między O i R
Jest to klasyczny przykład ataku man-in-the-middle. Zalety i wady:
łatwy do wykonania
trudny do wykrycia
nie działa, jeśli na routerze statyczne tablice ARP
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 58 / 325
Ochrona sieci Spoofing
Scenariusz II na R jest statyczna tablica ARP, ale na O nie ma
H uruchamia na swoim komputerze translację adresów NAT (czylizaczyna działać jak router)
H identyfikuje się u O jako router
H przekazuje otrzymane pakiety do routera jako swoje
Wady i zalety:
stosowanie statycznych tablic ARP po stronie klientów się nie zdarza
obejście statycznego ARP
jest możliwe namierzenie adresu przeprowadzającego taki atak
konieczność posłużenia się swoim MAC adresem lub MAC adresemuwierzytelnionym i w danej chwili nieużywanym
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 59 / 325
Ochrona sieci Spoofing
Scenariusz III lokalny atak DDoS
H zatruwa tablicę ARP R podmieniając wszystkie wpisy na MAC O
H wysyła na adres rozgłoszeniowy sieci pakiet wymagającyodpowiedzi, np. icmp type=8 (echo request)
do O przychodzą wszystkie pakiety zwrotne z całej sieci
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 60 / 325
Ochrona sieci Spoofing
RIP spoofing
RIP (Routing Information Protocol) – protokół informujący hosty orouterach w sieci oraz wymiana informacji o uzgodnieniu trasy międzyrouterami
zatrucie tablic routingu pozwala na ataki analogiczne jak w przypadkuARP spoofing tylko na poziomie kilku podsieci, a nie sieci lokalnej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 61 / 325
Ochrona sieci Spoofing
DNS spoofing
oprócz zatruwania tablic DNS, można fałszować odpowiedzi DNSskierowane do pytającego hosta
sfałszowany pakiet musi nadejść po zadaniu pytania, ale przedprawdziwą odpowiedzią serwera
odpowiedzi DNS zawierają 16-bitowy identyfikator TID (TransactionID)
w najprostszej wersji wysyła się sfałszowane pakiety zawierającewszystkie identyfikatory (65,5 tyś. pakietów)
uzyskuje się przekierowanie połączenia u ofiary na nieprawidłowyadres IP
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 62 / 325
Ochrona sieci Spoofing
Inne ataki
e-mail spoofing – preparowanie wiadomości ze sfałszowanyminagłówkami
session hijacking – przejęcie danych sesji uwierzytelnionegoużytkownika i podszycie się pod niego za pomocą spreparowanychpakietów
Metody ochrony przed spoofingiemweryfikacja adresów źródłowych pakietów
filtrowanie na firewallach (router i hosty)
weryfikacja sieci – odnawianie tablic ARP, tablice statyczne
stosowanie szyfrowanych połączeń – protokoły szyfrujące mająnajczęściej wbudowane mechanizmy weryfikacji autentyczności pakietu
stosowanie tunelowania w przypadku protokołów nie umożliwiającychszyfrowania transmisji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 63 / 325
Ochrona sieci Phishing i podobne ataki socjotechniczne
Phishing to próba wyłudzenia informacji od ludzi (atak socjotechniczny).Pharming wymaga ustawienia przekierowań do sfabrykowanych stronwww na routerach, serwerach DNS (DNS Poisoning) lub bezpośredniow systemie ofiary (konie trojańskie). Inne przykłady:
Cross-site request forgery (CSRF, XSRF): nakłonienie użytkownikaserwisu internetowego do wykonania operacji, do których atakującynie miałby uprawnień
Cross-site scripting (XSS): umieszczenie w kodzie strony skryptu(zazwyczaj JavaScript), który uruchomiony przez uprawnionychużytkowników wykona niepożądane akcje
Drive-by pharming: skłonienie ofiary do odwiedzenia strony www,która modyfikuje DNS na routerze ofiary tak, aby przekierowywać jąna fałszywe strony (np. banku)
Smishing: phishing poprzez wiadomości SMS
Fałszywy alarm wirusowy: rodzaj łańcuszka internetowego, częstokaże usunąć z systemu jakiś ważny plik systemowy i rozesłać się dalej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 64 / 325
Ochrona sieci Phishing i podobne ataki socjotechniczne
Zapobieganie atakom socjotechnicznym1 Zdrowy rozsądek – „Dlaczego obcy chce mi coś zaoferować zadarmo?”.
2 Uwaga i spostrzegawczość – znajomość domyślnego i prawidłowegozachowania używanego systemu operacyjnego, aplikacji, serwisów(bankowych, społecznościowych), sprzętu (bankomatu).
3 Zwracanie uwagi na niecodzienne zachowanie sieci (np. zrywaniepołączeń, spowolnienie działania), przeglądarki (łączenie zdodatkowymi adresami, zmiana wyglądu, ukrycie niektórychprzycisków), wygląd strony www.
4 Zasada ograniczonego zaufania.5 Brak pazerności i chęci korzystania ze wszystkich „darmowych” ofert.6 Jak najszybsze naprawianie szkód, które powstały (aktualizacjaoprogramowania, rekonfiguracja, blokowanie kont, zmiana haseł,współpraca z administratorami serwisów, raportowanie zagrożeń).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 65 / 325
Ochrona sieci Hasła
Łamanie hasełNa styku sieci i systemu operacyjnego znaleźć można problem autoryzacjiużytkowników. Łamanie haseł dostępowych do sieci i kont shellowych jeststandardową procedurą wykonywaną na dwa sposoby:
Atak słownikowy: łamanie haseł w oparciu o słowniki
Atak siłowy: dopasowanie haseł poprzez generowanie wszystkichmożliwych ciągów znaków; korzysta się z gotowych tablic (rainbowtables) hashów
ZapobieganieWykorzystanie kilkuetapowych systemów uwierzytelniania, hasełtymczasowych zamiast statycznych, tokenów sprzętowych etc. Do funkcjihashującej hasło dodaje się losowy ciąg znaków (salt, sól) co utrudniarozłamanie. Pakiet shadow wykorzystuje ten mechanizm. Mocne hasła.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 66 / 325
Ochrona sieci Hasła
Włamanie na strony Kancelarii Premiera RP, MSZ, MON i KancelariiPrezydenta przez Alladyn2 w lutym 2013. Źródło: backtrack.pl.
W dump-ach występuje 4000 rekordów dla których zostałowyciągnięte hasło z hash-a. Większość haseł ma "standardową"tendencję: - wyraz dominujący jest słownikowy,
- pierwsza litera jest duża,- na końcu jest liczba.
Przykłady:Hasło Ile | Hasło Ile-----------------------+---------------------------pogoda 244 | pogoda@123456 33Pogoda123456 138 | Sekretariat 23Warszawa2010 123 | Warszawa2011 22Warszawa2012 70 | pogoda123 21123qweASDZXC 58 | Warszawa12#$! 20qwerty123456! 40 | P@ssw0rd04 17Polska123456 34 |
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 67 / 325
Ochrona sieci Hasła
Rozłamane zostały również takie hasła jak:
pekin.kalpekin.kalpekin.kal Styropian12345678londyn.amb.wklondyn.amb.wk tarnobrzeg.uw.wsomadryt.amb.wkmadryt.amb.wk warszawa.mon.dwszbudzetuebudzetuebudzetue Warszawa123456789relacjezpublikacji123 !QAZ2wsx#EDC4rfvmediolan.kg.kultura P@[email protected] Password12341234Password123456123456 Warszawa12345678warszawa.kgsg.okecie !QAZxsw2#EDCvfr4mediolan.kg.opieka1 !QAZzaq1@WSXxsw2plwarmg01_scm2007 1qaz2wsx3edc$RFV
ZP,7r4zJ<JZ742 +------------------------+W9K5*Pnk9Zm-Ts | JAK WIDAĆ, ŻADNE HASŁO |U>P,Yv9E}9#q$0 | NIE MOŻE BYĆ UWAŻANE |Sere80Ale% | ZA 100% ODPORNE NA |Plw@r!Netb@ckup#1 | ROZŁAMANIE METODĄ |Ne1-g3-=2t5H)> | BRUTAL FORCE |58uZm02!3K@dup@ +------------------------+
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 68 / 325
Ochrona sieci Hasła
Źródło: niebezpiecznik.pl
Sam hacker w rozmowie z branżowymi mediami przyznaje, że wczasie włamań do rządowych serwerów zaskoczyło go, że hasła wministerstwach i kancelariach trzyma się na pulpicie lub napodatnych na atak dyskach sieciowych. No i... że są to plikijawne.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 69 / 325
Ochrona sieci Hasła
„Mocny” system haseł
inne hasła do różnych systemów
min. 14 znaków (zalecenie na rok 2015)
wykorzystanie znaków nieistniejących na klawiaturze (Alt+NumPad)
wykorzystanie tablic znaków unicode
hasła zmieniane regularnie
hasła bez powiązania z jakimkolwiek systemem (maksymalnie losowe)
w dalszym ciągu nie gwarantuje bezpieczeństwa!
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 70 / 325
Ochrona sieci Topologie firewalli
Topologie firewalliPrzy zabezpieczaniu, sieć należy podzielić na strefy:
intranet – sieć wewnętrzna („zaufana”)
DMZ – strefa przejściowa
internet – sieć zewnętrzna
Należy jasno określić, jakie informacje są przesyłane w obrębie każdejstrefy oraz między nimi, jacy użytkownicy potrzebują dostępu do danejstrefy i po co, jakie uprawnienia otrzyma osoba niepowołana, której uda sięsforsować pierwszą (drugą, trzecią...) linię zabezpieczeń.
Materiały pochodzą z:Bartosz Bobkiewicz, Metody omijania zapór sieciowych(praca magisterska, Politechnika Poznańska 2007)http://omijanie-zapor-sieciowych.eprace.edu.pl/
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 71 / 325
Ochrona sieci Topologie firewalli
Single-box architecture – pojedynczy element odgradza intranet odinternetu
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 72 / 325
Ochrona sieci Topologie firewalli
Cechy:
najprostsza i najtańsza forma skonfigurowania prywatnej podsieci
host/router ekranujący pełnią jednocześnie rolę bramy (gateway)
firewall musi być starannie skonfigurowany do odfiltrowanianiechcianego ruchu sieciowego; on też jest odpowiedzialny za to, jaki czy w ogóle podsieć jest widziana z zewnątrz
ewentualne serwery są za firewallem, który musi routować ruchsieciowy do nich
system ochrony jest jednoetapowy: jeśli krytyczny element zostanieprzejęty, otwiera się dostęp co całej podsieci
Problemy:
potrzeba, aby przynajmniej jeden host był dostępny z zewnątrz
tunelowanie usług przez router
gdzie jest DNS?
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 73 / 325
Ochrona sieci Topologie firewalli
Screened host architecture – podział ról między wydzielonym hostemi routerem
wydzielony host jest najcześciej tzw. hostem bastionowym (dobrzezabezpieczonym)
router odpowiada za połączenia od strony internetu, puszczając ruchtylko do hosta ekranowanego
host odpowiada za połączenia od strony intranetu
host może udostępniać usługi na zewnątrz
dwuetapowe filtrowanie pakietów i autoryzacja połączeń
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 74 / 325
Ochrona sieci Topologie firewalli
Screened subnet architecture – wydzielona podsieć jest ekranowanaprzez dwa routery: wewnętrzny (dławiący) i zewnętrzny (dostępowy).Podsieć peryferyjna nazywana jest też strefą zdemilitaryzowaną (DMZ).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 75 / 325
Ochrona sieci Topologie firewalli
jest to wieloetapowa ochrona serwerów i sieci wewnętrznej
pozwala na precyzyjną kontrolę ruchu sieciowego i dostępu do usług
serwery publiczne umieszczane są w DMZ, ale pozostają odcięte dlazewnętrznych użytkowników od intranetu
atak na intranet z zewnątrz wymaga przejścia zewnętrznego routera,przejęcia jednego z hostów w DMZ oraz przejścia przez drugi router,który z definicji blokuje cały ruch z DMZ do wewnątrz
Jest to bardzo złożona konfiguracja, łatwo więc popełnić błędy i niedopilnować wszystkiego.W praktyce bardzo często otwarte są bezpośrednie połączeniaz intranetem, omijające DMZ. Wynika to albo z potrzeby, albo z wygody,albo z błędu w konfiguracji firewalli.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 76 / 325
Ochrona sieci Serwery proxy
Serwery proxySerwer proxy to inaczej serwer pośredniczący. Może mieć postaćwydzielonego systemu komputerowego lub aplikacji. Wyróżnia się m.in.:http proxyftp proxyoprogramowanie pośredniczące w przekazywaniu danych międzyaplikacjami (np. superdemon inet/xinet)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 77 / 325
Ochrona sieci Serwery proxy
Proxy realizują:
filtrowanie danych, włącznie z obsługą uwierzytelniania użytkowników(np. logowanie na strony www), wychwytywaniem wirusów,blokowaniem domen i adresów itd.
buforowanie danych (caching proxy)
tłumaczenie (np. zmiana języka strony www na podstawie adresu)
pośredniczenie między podsiecią a serwerem DNS (DNS proxy)
obejścia filtrów i cenzury (restrykcji geograficznych, ograniczeń dlasieci korporacyjnych, nadanych przez ISP...)
założenie filtrów i cenzury na połączenia
logowanie i podsłuch (audyt)
anonimowe korzystanie z sieci
zadania routera i bramy sieciowej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 78 / 325
Ochrona sieci Serwery proxy
Forward proxy pośredniczy między siecią wewnętrzną a internetem. Możefiltrować połączenia, utrzymywać cache dla ftp i http, skanować ruchsieciowy i pełnić funkcję bramy.
INTERNET
SERWER PROXYUŻYTKOWNIK
������������
������������
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 79 / 325
Ochrona sieci Serwery proxy
Open proxy pośredniczy w połączeniach internetowych. Pozwala naukrycie swojego adresu IP (do pewnego stopnia) i obejście restrykcjinałożonych na połączenia z pewnymi serwerami (np. oferty ograniczoneterytorialnie, lokalizowane gry w systemie Steam itp.). Bardzo częstoużywane przez hackerów aby utrudnić ich wytropienie.
INTERNET INTERNET
SERWER PROXY
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 80 / 325
Ochrona sieci Serwery proxy
Reverse proxy ukrywa strukturę sieci wewnętrznej przed użytkownikamizewnętrznymi. Ma za zadanie głównie filtrować połączenia i pośredniczyćna poziomie aplikacji, ew. tłumaczyć dane.
INTERNET
SERWER PROXYSERWER
SERWER
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 81 / 325
Ochrona sieci Serwery proxy
Wynik działania komendy dig (DNS lookup utility) na adresiewww.google.pl pokazuje, że jest to cała lista fizycznych adresów. Podobniedla www.google.com.
$ dig www.google.pl
; <<>> DiG 9.9.2-P2 <<>> www.google.pl
;; ANSWER SECTION:www.google.pl. 125 IN A 173.194.113.63www.google.pl. 125 IN A 173.194.113.55www.google.pl. 125 IN A 173.194.113.56
;; AUTHORITY SECTION:google.pl. 15079 IN NS ns1.google.com.google.pl. 15079 IN NS ns2.google.com.
;; ADDITIONAL SECTION:ns1.google.com. 17757 IN A 216.239.32.10ns2.google.com. 17757 IN A 216.239.34.10
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 82 / 325
Ochrona sieci Serwery proxy
$ dig www.google.com
; <<>> DiG 9.9.2-P2 <<>> www.google.com
;; ANSWER SECTION:www.google.com. 177 IN A 173.194.70.106www.google.com. 177 IN A 173.194.70.147www.google.com. 177 IN A 173.194.70.99www.google.com. 177 IN A 173.194.70.103www.google.com. 177 IN A 173.194.70.104www.google.com. 177 IN A 173.194.70.105
;; AUTHORITY SECTION:google.com. 10411 IN NS ns4.google.com.google.com. 10411 IN NS ns1.google.com.google.com. 10411 IN NS ns2.google.com.google.com. 10411 IN NS ns3.google.com.
;; ADDITIONAL SECTION:ns1.google.com. 17437 IN A 216.239.32.10ns2.google.com. 17437 IN A 216.239.34.10ns3.google.com. 17437 IN A 216.239.36.10ns4.google.com. 17437 IN A 216.239.38.10
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 83 / 325
Ochrona sieci Serwery proxy
Ataki na serwery proxy lub z ich wykorzystaniem są oczywiste. Atakującymoże:
ustawić przekierowanie połączeń na sfałszowane adresy, podszywającesię pod prawdziwe
wyciagnąć z cache proxy przydatne dla niego informacje
zamaskować swój ślad
przeprowadzić atak z serwerów proxy
oszukać filtry i nałożone restrykcje na połączenia, podszywając siępod serwer proxy lub omijając jego zabezpieczenia
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 84 / 325
Ochrona sieci Narzędzia sieciowe
Podstawowe narzędzia siecioweDo sprawdzenia stanu konfiguracji sieci służy ifconfig (w windowsachipconfig). Pozwala on również na przypisanie gotowym interfejsomadresów sieciowych
# ifconfig eth0 up# ifconfig eth0 192.168.1.123# ifconfig eth0 netmask 255.255.255.0# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255inet6 fe80::d6be:d9ff:fe1d:1a0a prefixlen 64 scopeid 0x20<link>ether d4:be:d9:1d:1a:0a txqueuelen 1000 (Ethernet)RX packets 58912 bytes 51885369 (49.4 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 19647 bytes 1886527 (1.7 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 20 memory 0xe2e00000-e2e20000
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 85 / 325
Ochrona sieci Narzędzia sieciowe
Dla kart bezprzewodowych komplementarnym narzędziem jest iwconfig
# iwconfigwlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Frequency:2.462 GHz Access Point: Not-AssociatedTx-Power=19 dBmRetry long limit:7 RTS thr:off Fragment thr:offEncryption key:offPower Management:off
lo no wireless extensions.
eth0 no wireless extensions.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 86 / 325
Ochrona sieci Narzędzia sieciowe
oraz iwlist
# iwlistUsage: iwlist [interface] scanning [essid NNN] [last]
[interface] frequency[interface] channel[interface] bitrate[interface] rate[interface] encryption[interface] keys[interface] power[interface] txpower[interface] retry[interface] ap[interface] accesspoints[interface] peers[interface] event[interface] auth[interface] wpakeys[interface] genie[interface] modulation
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 87 / 325
Ochrona sieci Narzędzia sieciowe
# iwlist wlan0 scan(...)Cell 03 - Address: aa:bb:cc:00:11:22
Channel:4Frequency:2.427 GHz (Channel 4)Quality=51/70 Signal level=-59 dBmEncryption key:onESSID:""Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/sBit Rates:9 Mb/s; 18 Mb/s; 48 Mb/s; 54 Mb/sMode:MasterExtra:tsf=0000009d0409f181Extra: Last beacon: 342ms agoIE: Unknown: 000700000000000000IE: Unknown: 010882848B960C183048IE: Unknown: 030104IE: Unknown: 050400010000IE: Unknown: 2A0100IE: Unknown: 32041224606CIE: IEEE 802.11i/WPA2 Version 1Group Cipher : TKIPPairwise Ciphers (2) : TKIP CCMPAuthentication Suites (1) : PSKPreauthentication Supported
(...)Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 88 / 325
Ochrona sieci Narzędzia sieciowe
Inne podstawowe narzędzia toping – korzysta z DNS, sprawdza żywotność adresu i jakość łącza,pozwala na wykonanie ping flood (ping -f)# ping wp.plPING wp.pl (212.77.100.101) 56(84) bytes of data.64 bytes from www.wp.pl (212.77.100.101): icmp_req=1 ttl=250 time=15.0 ms64 bytes from www.wp.pl (212.77.100.101): icmp_req=2 ttl=250 time=15.1 ms^C--- wp.pl ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1001msrtt min/avg/max/mdev = 15.074/15.111/15.149/0.128 ms
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 89 / 325
Ochrona sieci Narzędzia sieciowe
dig – DNS lookup utility# dig wp.pl
; <<>> DiG 9.9.2-P2 <<>> wp.pl;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61225;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 5
;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;wp.pl. IN A
;; ANSWER SECTION:wp.pl. 2444 IN A 212.77.100.101
;; AUTHORITY SECTION:wp.pl. 1306 IN NS ns1.wp.pl.wp.pl. 1306 IN NS ns2.wp.pl.wp.pl. 1306 IN NS ns1.task.gda.pl.
;; ADDITIONAL SECTION:ns1.task.gda.pl. 44877 IN A 153.19.250.101ns1.task.gda.pl. 75348 IN AAAA 2001:4070:1::101ns1.wp.pl. 2438 IN A 212.77.102.200ns2.wp.pl. 1713 IN A 153.19.102.182
;; Query time: 9 msec;; SERVER: 89.186.31.1#53(89.186.31.1);; WHEN: Wed Oct 9 16:34:30 2013;; MSG SIZE rcvd: 189
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 90 / 325
Ochrona sieci Narzędzia sieciowe
traceroute – sprawdza trasę pakietu (poniżej wyciąłem czasyodpowiedzi, żeby był krótszy komunikat)
# traceroute www.google.pl
traceroute to www.google.pl (173.194.70.94), 30 hops max, 60 byte packets
1 umcs.vl725.vidar.lubman.net.pl (212.182.24.2)2 gi3-6.renfri.lubman.net.pl (212.182.56.196)3 ae0x799.nucky.lubman.net.pl (212.182.56.149)4 z-lublina.poznan-gw3.10Gb.rtr.pionier.gov.pl (212.191.224.81)5 pionier.mx1.poz.pl.geant.net (62.40.125.245)6 ae3.mx1.fra.de.geant.net (62.40.98.130)7 ae4.rt1.fra.de.geant.net (62.40.98.135)8 google-gw.rt1.fra.de.geant.net (62.40.125.202)9 209.85.240.64 (209.85.240.64)10 209.85.251.248 (209.85.251.248)11 209.85.254.116 (209.85.254.116)12 * * *13 fa-in-f94.1e100.net (173.194.70.94)
Uwaga: jeśli na maszynie jest restrykcyjnie skonfigurowany firewall,traceroute nie da dobrych odpowiedzi (* * *)Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 91 / 325
Ochrona sieci Narzędzia sieciowe
telnet – zdalny terminal nie obsługujący szyfrowania, pozwala napołączenie z dowolnym portem$ telnet localhost 80Trying ::1...Connected to localhost.Escape character is ’^]’.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>302 Found</title></head><body><h1>Found</h1><p>The document has moved <a href="http://xxxxxxx.umcs.lublin.pl">here</a>.</p><hr><address>
Apache/2.2.16 (Debian) Server at xxxxxxx.umcs.lublin.pl Port 80</address></body></html>Connection closed by foreign host.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 92 / 325
Ochrona sieci Narzędzia sieciowe
finger – „niebezpieczna” usługa (port 79/tcp) informacyjna, obecniebardzo rzadko używana$ finger @umcs.lublin.pl[umcs.lublin.pl]No one logged on.
finger przez telnet – jeśli nie mamy fingera na swojej maszynie$ telnet umcs.lublin.pl fingerTrying 87.246.208.8...Connected to umcs.lublin.pl.Escape character is ’^]’.rootLogin: root Name: rootDirectory: /root Shell: /bin/bashLast login Wed Oct 9 16:10 (CEST) on pts/0 from piglet.man.lublin.plNew mail received Wed Oct 9 16:02 2013 (CEST)
Unread since Wed Oct 9 00:21 2013 (CEST)No Plan.Connection closed by foreign host.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 93 / 325
Ochrona sieci Narzędzia sieciowe
nmap – skaner portów, sonduje system docelowy na wiele sposobów$ nmap -T4 -F umcs.lublin.plStarting Nmap 6.01 ( http://nmap.org ) at 2013-10-09 17:20 CESTNmap scan report for umcs.lublin.pl (87.246.208.8)Host is up (0.017s latency).rDNS record for 87.246.208.8: www.umcs.lublin.plNot shown: 84 filtered portsPORT STATE SERVICE21/tcp open ftp22/tcp closed ssh23/tcp closed telnet25/tcp open smtp79/tcp open finger80/tcp open http110/tcp open pop3113/tcp open ident143/tcp open imap443/tcp open https465/tcp open smtps587/tcp open submission993/tcp open imaps995/tcp open pop3s3306/tcp open mysql5432/tcp closed postgresqlNmap done: 1 IP address (1 host up) scanned in 1.71 seconds
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 94 / 325
Ochrona sieci Narzędzia sieciowe
UWAGA NA SKANOWANIE PORTÓWSkanowanie portów jest powszechną praktyką, serwery są bez przerwyskanowane. Jednak z punktu widzenia administratora taka praktyka jestdziałaniem wrogim. Nie wolno przeprowadzać intensywnego skanowaniaw sieci wewnętrznej bez zgody administratora systemu.
Przykład logów po skanowaniu portów:
Oct 9 18:13:55 eldar kernel: [27885.849709] FIREWALL:IN=wlan0 OUT=MAC=74:e5:43:2d:be:d0:c8:aa:21:8c:29:55:08:00SRC=192.168.1.105 DST=192.168.1.109 LEN=60 TOS=0x00 PREC=0x00 TTL=64ID=47008 DF PROTO=TCP SPT=52295 DPT=1 WINDOW=14600 RES=0x00 SYN URGP=0
Oct 9 18:13:55 eldar kernel: [27885.850297] FIREWALL:IN=wlan0 OUT=MAC=74:e5:43:2d:be:d0:c8:aa:21:8c:29:55:08:00SRC=192.168.1.105 DST=192.168.1.109 LEN=60 TOS=0x00 PREC=0x00 TTL=64ID=20228 DF PROTO=TCP SPT=46733 DPT=2 WINDOW=14600 RES=0x00 SYN URGP=0
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 95 / 325
Ochrona sieci Narzędzia sieciowe
Więcej wyspecjalizowanych narzędzi używanych przez hackerów oraz dotestów penetracyjnych można znaleźć w sieci. Dobrym uporządkowanymzbiorem tych narzędzi pochwalić się może wyspecjalizowana dystrybucjalinuksa backtrack (ostatnie wydanie 5.3 w 2012 r.), obecniekontynuowana jako kali linux.www.backtrack-linux.orgwww.kali.orgkali-linux.pl
Zobacz też strony:www.defcon.orghackingncrackingtools.blogspot.comthehackernews.comi wiele innych...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 96 / 325
Sieci bezprzewodowe
Sieci bezprzewodowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 97 / 325
Sieci bezprzewodowe
Sieć bezprzewodowa
punkty dostępowe: access point (AP), także wireless AP (WAP)
routery (często zintegrowane z AP)
karty sieciowe, standardy transmisji 802.11 (b/g/n i inne)
wireless = broadcast, każdy w zasięgu ma dostęp do pakietów
ciężko ustalić źródło pochodzenia pakietu
dwie „topologie”: ad-hoc i infrastructure
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 98 / 325
Sieci bezprzewodowe
Cechy i budowa sieci bezprzewodowej typu ad-hoc
zdecentralizowana
nie zależy od ustalonych routerów i AP
każdy węzeł pełni rolę routera w przekazywaniu danych dla innychwęzłów
urządzenia muszą monitorować i utrzymywać połączeniaz najbliższymi sąsiadami (1 hop)
jest łatwo i tanio skalowalna, wymaga minimalnej konfiguracji
idealna dla sieci tymczasowych (sytuacje awaryjne jak katastrofynaturalne, działania wojenne...) i mobilnych
trudno o kontrolę i zabezpieczenie (szyfrowanie i autoryzację musząobsługiwać urządzenia użytkowników), ale jest to możliwe
Przypomina budową i schematem działania sieć p2p.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 99 / 325
Sieci bezprzewodowe
Sieć ad-hoc w systemach komunikacji i monitoringu
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 100 / 325
Sieci bezprzewodowe
Sieć ad-hoc w zastosowaniach militarnych
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 101 / 325
Sieci bezprzewodowe
Cechy i budowa sieci bezprzewodowej typu infrastructure
polega na ustalonych węzłach (AP) i routerach
ma za zadanie zmostkować połączenie między siecią przewodowąa siecią bezprzewodową
jest do pewnego stopnia odwzorowaniem normalnej sieci, tylko bezkabli
skalowanie wymaga dobudowania nowej infrastruktury i jejoprogramowania i konfiguracji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 102 / 325
Sieci bezprzewodowe
Sieć infrastructure od strony zabezpieczeń. Węzły stałe (AP, modem,router) pozwalają na:
kontrolę ruchu sieciowego (firewall, traffic shaper)
autoryzację klientów (login, login+hasło, certyfikat, mac)
szyfrowanie transmisji (klucz, certyfikat)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 103 / 325
Sieci bezprzewodowe
Główne metody zabezpieczania sieci bezprzewodowych
statyczne numery IP (na podstawie adresów mac)
dynamiczne numery IP (serwer open DHCP)
weryfikacja adresów mac
ukrywanie ESSID
zawężenie do typu standardu transmisji (np. tylko b lub g)
metody autoryzacji (login, hasło, certyfikat)
protokoły szyfrowania transmisji
Szyfrowanie i kontrola autoryzacji utrudniają dostęp do sieci, ale niechronią jej użytkowników przed innymi użytkownikami! Pełna prywatnośćw sieciach bezprzewodowych jest praktycznie nie do zagwarantowania.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 104 / 325
Sieci bezprzewodowe
Poziomy/protokoły szyfrowania w sieciach wifi
brak szyfrowania
protokół WEP (Wired Equivalent Privacy)
protokół WPA (WiFi Protected Access)
protokół WPA2 (standard 802.11i)
protokół WPS
Przeczytaj koniecznie!Zobacz:http://sekurak.pl/bezpieczenstwo-sieci-wi-fi-czesc-1/i kolejne części.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 105 / 325
Sieci bezprzewodowe
Protokół WEP (1999)
oparty jest na algorytmie RC4
klucz (40b lub 104b) składany jest z wektorem inicjacyjnym (24b)
stąd dwie wersje: WEP 64b i WEP 128b
C = {M + ICV (M)} ⊕ {RC4(K + IV )}
C – szyfrogramM – wiadomość+ – konkatenacjaICV () – suma kontrolna⊕ – XORK – tajny kluczIV – wektor inicjacyjnyK + IV = KS – klucz szyfrujący dany komunikat
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 106 / 325
Sieci bezprzewodowe
moc WEP zależy w dużej mierze od IV , który wymieniany jestjawnym tekstem oraz nie zmieniany podczas transmisjiw 2001 r. Fluhrer, Mantin i Shamir (FMS) opublikowali atak na WEPw dwóch wersjach:
I korzystając z niezmienniczości klucza IV ,I znając klucz IV .
Atak: FMSDla niektórych wartości IV początkowe bajty strumienia mogą zależećjedynie od kilku bitów klucza szyfrującego KS. Ponieważ KS = K + IV ,dla niektórych IV powstają klucze słabe. Atak ten wymaga przechwycenia5–10 mln. pakietów.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 107 / 325
Sieci bezprzewodowe
w 2002 r. D. Hulton (h1kari) zmodyfikował atak FMS uwzględniającwięcej bajtów wyniku RC4, co zmniejszyło liczbę potrzebnychpakietów
w 2004 r. KoreK i Arbaugh podali metodę wstrzykiwania pakietów,pozwalającą na deszyfrowanie pakietów bez znajomości klucza. Tenatak pozwala rozłamać WEP 128b w ok. 10 minut (wymaga tysięcy,nie milionów pakietów) nawet w przypadku nieruchliwej sieci
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 108 / 325
Sieci bezprzewodowe
Atak: Packet InjectionMetoda wstrzykiwania pakietów (packet injection) wykorzystujepreparowanie i wpuszczanie do sieci bezprzewodowej pakietów z własnejmaszyny. Generowany ruch, np. poprzez protokół ARP, wymuszaodpowiedzi AP, które powodują generowanie kolejnych IV przez AP. Wten sposób szybciej można zgromadzić odpowiednio dużo wektorów IV .
Atak: DeauthenticationDeauthentication attack – wpuszczenie do sieci bezprzewodowejpakietów usuwających uwierzytelnienie użytkowników. Pozwala w kolejnymkroku, przechwytując komunikację między nimi a AP, uzyskać
ESSID, jeśli był ukryty
zapis procesu wymiany kluczy WEP/WPA/WPA2
zapis żądań ARP (i przechwycenie mac adresów)
Potrzebne narzędzia to przykładowo: aircrack (nadanie pakietów)i wireshark (podsłuchanie pakietów).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 109 / 325
Sieci bezprzewodowe
Protokół WPA/WPA2Następcą (nakładką na) WEP jest WPA (Wifi Protected Access). Działana tym samym sprzęcie co WEP, wymagając jedynie aktualizacjioprogramowania i firmware’u. WPA miał być rozwiązaniem pośrednimmiędzy WEP a pełnym standardem 802.11i, który obecnie nazywa sięWPA2.
WPA-PSK (Pre-shared key), inaczej Personal Mode – działaw oparciu o szyfrowanie 256b kluczem, generowanym z tajnego(znanego użytkownikom) hasła do sieci (8–63 znaków ASCII)
hasło kodowane jest algorytmem PBKDF2, z użyciem ESSID jako„soli” i 4096 iteracji funkcji skrótu (hash) HMAC-SHA1
WPA-Enterprise – przekazuje uwierzytelnianie osobnemu serwerowi(Radius, LDAP) na podstawie osobistych kluczy użytkowników
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 110 / 325
Sieci bezprzewodowe
Problemy WEP
ochrona współdzielonego hasła do sieci, które jest jedynymmechanizmem zabezpieczającym
to samo hasło jest używane do generowanie kluczy szyfrującychtransmisję
prymitywne uwierzytelnianie, brak możliwości ustalenia tożsamościużytkownika
stałość klucza szyfrującego
brak kontroli danych (ataki na integralność)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 111 / 325
Sieci bezprzewodowe
Dlaczego WPA jest mocniejsze niż WEP?
TKIP (Temporal Key Integrity Protocol) – klucz szyfrujący jestgenerowany osobno dla każdego pakietu
zamiast konkatenować klucz z IV używane są bezpieczniejsze funkcjemieszające
MIC (Message Integrity Check) – zamiast sumy kontrolnej CRCużywa się algorytmu Michael, który pozwala na ochronę nie tylkotreści, ale również nagłówka ramki, utrudniając podrobienie pakietów
dołożono licznik pakietów, aby trudniej było zakłócić lub włączyć siędo transmisji (tym licznikiem jest wektor IV)
Dlaczego WPA2 jest mocniejsze niż WPA?
używa najsilniejszego algorytmu szyfrującego AES zamiast relatywnieprostego RC4
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 112 / 325
Sieci bezprzewodowe
Generowanie kluczy WPA odbywa się na początku połączenia podczasnegocjacji czteroetapowej (4-way handshake). Odbywa się ona przezprotokół EAPOL
użytkownik i router wymieniają dwa losowe ciągi znaków
z nich, wraz z hasłem do sieci, tworzony jest klucz główny PTK
klucz ten jest dzielony na krótsze 16b
jeden z nich to TK (Temporal Key)
z TK, wektora IV i adresu modemu tworzony jest klucz szyfrującywiadomość
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 113 / 325
Sieci bezprzewodowe
Atak na WPA-PSK/WPA2-PSK
hash współdzielonego kluczauwierzytelniającego jestprzesyłany na początkupołączenia
można wysłać pakiet DEAUTHdo zalogowanego użytkownikazmuszając go do powtórzenianegocjacji uwierzytelniającej
zdobycie pakietów uwierzytelniających użytkownika pozwala na ichrozłamanie atakiem słownikowym lub brutalnym
zastosowanie tzw. tablic tęczowych (rainbow tables) pozwala nawielokrotne skrócenie czasu potrzebnego na zamianę hashaw prawdziwe hasło (10-15 minut pracy CPU)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 114 / 325
Sieci bezprzewodowe
W 2009 r. Masakatu Morii z Uniwersytetu w Kobe i Toshihiro Ohigashiz Uniwersytetu w Hiroshimie podali nowy sposób ataku na WPA,wykorzystujący lukę w protokole TKIP. Czas potrzebny do złamaniazabezpieczeń to ok. 1 minuta.
Atak ten nie działa na WPA2. Można, póki co, złamać go tylko atakiemsłownikowym/brutalnym po przejęciu 4-way handshake’a.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 115 / 325
Sieci bezprzewodowe
Atak KRACKAutorzy: Mathy Vanhoef, Frank Piessenspapers.mathyvanhoef.com/ccs2017.pdf
niebezpiecznik.pl/post/krack-atak-na-ktory-podatne-sa-prawie-wszystkie-urzadzenia-z-wi-fi-jak-bardzo-powinienes-sie-go-obawiac
Key Reinstallation Attacks (KRACK) to atak z 2017r. na sieć wifi.Wykorzystuje lukę protokołu WPA2 a nie lukę sprzętową albo słabośćimplementacji. Dlatego wszystkie urządzenia są/były na niego podatne.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 116 / 325
Sieci bezprzewodowe
Warunki wykonania ataku:
atakujący musi być w bezpośrednim zasięgu sieci wifi,
ofiara musi być daleko od AP,
ofiara musi korzystać z nieszyfrowanych protokołów.
Procedura:
Atak celuje w proces 4-way handshake, podczas którego AP i klientuwierzytelniają się i negocjują klucz sesji.
Powoduje wymuszenie po stronie klienta reinstalacji klucza, coskutkuje resetem połączenia i użyciem po raz kolejny tego samegoklucza sesyjnego.
Podsłuchanie pakietów i znajomość klucza pozwala na ichodszyfrowanie. W dalszej kolejności można wstrzykiwać własnepakiety lub przechwytywać i modyfikować ruch sieciowy.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 117 / 325
Sieci bezprzewodowe
Obrona:
uaktualnić firmware na routerze,
uaktualnić software wifi po stronie klienta,
uaktualnić sterownik karty sieciowej po stronie klienta,
używać tylko szyfrowanych połączeń (np. VPN na routerze).
Uwagi:
najbardziej podatne są Linux i Android, bo wpa supplicant poresecie ustawia klucz na same zera,
ten atak nie wykrada haseł do sieci.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 118 / 325
Sieci bezprzewodowe Sieci VPN
Sieci VPN
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 119 / 325
Sieci bezprzewodowe Sieci VPN
VPN (virtual private network) – połączenie różnych podsieci sieciprywatnej przez publiczne łącza. Również: dostęp hostów spoza sieci downętrza sieci prywatnej.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 120 / 325
Sieci bezprzewodowe Sieci VPN
Zasada działania:
połączenia VPN są tunelowane przez serwery z internetu, które są dlanich „przezroczyste”
serwery VPN kontrolują ruch sieciowy zapewniając bezpieczeństwo
Bezpieczeństwo zapewniają:
pełne szyfrowanie transmisji
uwierzytelnianie użytkowników próbujących ustanowić tunel VPNz serwerem (hasło, certyfikat, tokeny sprzętowe, metody biometrycznei inne)
kontrola nienaruszalności pakietów, aby zapobiec zakłóceniomi podrobieniu transmisji przez osoby trzecie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 121 / 325
Sieci bezprzewodowe Sieci VPN
Rodzaje VPN:
Trusted VPN – dzierżawa łącz, które zakładamy, że są bezpiecznei oddane na nasz wyłączny użytek. Zrzuca się wtedy odpowiedzialnośćza bezpieczeństwo na dostawcę łącza ufając mu w tej kwestii.
Secure VPN – korzystanie z łącz publicznych, przy czym zabezpieczeństwo odpowiada stosowanie szyfrowania i odpowiednichprotokołów.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 122 / 325
Sieci bezprzewodowe Sieci VPN
Protokoły bezpieczeństwa używane w sieciach VPN to m.in.
Internet Protocol Security (IPsec) – kapsułkuje pakiety zapewniającdodatkowe szyfrowanie, obsługuje również uwierzytelnianie i kontrolęspójności danych. Nie radzi sobie z firewallami i sieciamiwewnętrznymi
Transport Layer Security (SSL/TLS) pozwala na tunelowanie całejtransmisji poprzez szyfrowany kanał (korzysta z tego OpenVPN).Radzi sobie z bardziej skomplikowanymi konfiguracjami, gdzie w gręwchodzi np. NAT i filtrowanie pakietów przez firewalle. Nie radzisobie z tunelowaniem połączeń przez UDP
Datagram Transport Layer Security (DTLS) jest używane przezAnyConnect VPN (CISCO) i OpenConnect VPN. Radzi sobiez szyfrowanymi tunelami przez UDP
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 123 / 325
Sieci bezprzewodowe Sieci VPN
Microsoft Point-to-Point Encryption (MPPE) wspomaga protokółPPP zapewniając szyfrowanie
Microsoft Secure Socket Tunneling Protocol (SSTP) wspomagaprotokoły Point-to-Point Protocol (PPP) oraz Layer 2 TunnelingProtocol zapewniając szyfrowanie przez SSL 3.0. SSTP pojawiło siępo raz pierwszy w Windows Server 2008 oraz Windows Vista ServicePack 1
Multi Path Virtual Private Network (MPVPN) firmy Ragula SystemsDevelopment Company
Secure Shell (SSH) VPN – tani serwer pozwalający na zestawianietuneli do celów prywatnych. Ma ograniczenia na liczbę tuneli i niewspomaga dodatkowej autoryzacji.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 124 / 325
Ochrona systemu operacyjnego
Ochrona systemu operacyjnego
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 125 / 325
Ochrona systemu operacyjnego
System operacyjny jest dziurawy (mniej lub bardziej) i regularnie trzeba gołatać poprawkami bezpieczeństwa.
Luka odkryta w Windows NT (atak typu You Are Now In France). WeFrancji (ok. roku 2000) osobom prywatnym prawo zabraniało korzystaćz silnego szyfrowania. Jeśli Windows NT rozpoznawało, że połączenieprzychodziło z Francji, automatycznie wyłączało szyfrowanie tegopołączenia.
Intruzi opracowują nowe metody włamań, powodując że to, co wcześniejuznawane było za dobrą praktykę programistyczną, staje sięnieakceptowalne.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 126 / 325
Ochrona systemu operacyjnego
System prywatny ochronić jest stosunkowo łatwo, gdyż dobrzezdefiniowane są potrzeby i zwyczaje użytkownika. Grono użytkowników jestzaufane i dobrze kontrolowane.
W przypadku systemu publicznego lub dostępnego dla dużej grupyużytkowników należy wypracować kompromis między funkcjonalnościąi łatwością korzystania a bezpieczeństwem.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 127 / 325
Ochrona systemu operacyjnego
Jak dbać o system:
regularne aktualizacje systemu
polityka przydzielania kont
wymuszenie polityki zarządzania hasłami
przywileje użytkowników i grup
udostępnianie minimalnego zestawu oprogramowania, szczególniepowłok (ile powłok jest w Twoim systemie? cat /etc/shells)audyt i konserwacja systemu
I wyszukiwanie plików suidI czytanie logówI wyszukiwanie nieaktywnych użytkowników i ich plikówI czyszczenie plików cache i tymczasowychI okresowe sprawdzanie konfiguracji, m.in. reguł firewalla, /etc/passwdi innych
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 128 / 325
Ochrona systemu operacyjnego
Trzy podstawowe mechanizmy kontroli dostępu od strony sieci w linuksie:
iptables
tcp-wrappers
inetd
Do tego dochodzi
konfiguracja poszczególnych usług (np. ssh)
programu login (/etc/login.access)
pakietu shadow (/etc/login.defs)
i tak dalej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 129 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Filtr pakietów iptablesFirewall wbudowany w jądro systemu:
ipfwadm (linux 2.0)
ipchains (linux 2.2)
iptables (linux 2.4 i nowsze)http://www.netfilter.org
Można konfigurować z linii komend w czasie rzeczywistym, ale zazwyczajkonfigurację umieszcza się w skryptach startowych, np./etc/rc.d/rc.firewall. Potrafi rozpoznawać stan pakietów sieciowych.Działa na pojedynczych regułach lub zagnieżdżalnych łańcuchach reguł.Większość funkcji uruchamia się podczas kompilacji jądra i albo są onewkompilowane w kernel, albo tworzone są pod postacią pakietów.Sterowanie częścią funkcji poprzez pseudopliki z katalogu/proc/sys/net/.../sys/class/net/...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 130 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Tablice i łańcuchy iptables dzielą proces obróbki i analizy pakietu naetapy (tablice) i porządkują reguły w zależności od etapu i przeznaczeniapakietu (łańcuchy)Tablice:
raw – działanie na „surowym” pakiecie
mangle – zmiany w nagłówku pakietu, głównie w polu TOS (type ofservice) określającym m.in. priorytet pakietu oraz ewentualnespecjalne traktowanie związane z jego typem
filter – zestaw głównych reguł filtrujących ruch sieciowy
Łańcuchy:
PREROUTING
INPUT
OUTPUT
FORWARD
POSTROUTING
Dodatkowo można definiować własne łańcuchy, głównie dla tablicyfilter.Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 131 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Analiza i obróbka pakietu skierowanego do naszej maszyny1 medium transmisyjne2 interface3 raw/PREROUTING
4 określenie stanu połączenia (connection tracking)5 mangle/PREROUTING
6 nat/PREROUTING
7 decyzja o przeznaczeniu pakietu (routowanie)8 mangle/INPUT
9 filter/INPUT
10 lokalny proces
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 132 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Analiza i obróbka pakietu wychodzącego z naszej maszyny1 lokalny proces2 routowanie (określenie adresu docelowego, interface’u)3 raw/OUTPUT
4 określenie stanu połączenia (connection tracking)5 mangle/OUTPUT
6 nat/OUTPUT
7 routowanie (od nowa, po wstępnym filtrowaniu)8 filter/OUTPUT
9 mangle/POSTROUTING
10 nat/POSTROUTING
11 interface12 medium transmisyjne
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 133 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Analiza i obróbka pakietu routowanego przez naszą maszynę1 medium transmisyjne2 interface3 raw/PREROUTING
4 określenie stanu połączenia (non-local connection tracking)5 mangle/PREROUTING
6 nat/PREROUTING
7 decyzja o przeznaczeniu pakietu (routowanie)8 mangle/FORWARD
9 filter/FORWARD
10 mangle/POSTROUTING
11 nat/POSTROUTING
12 interface13 medium transmisyjne
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 134 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Ogólny schematumieszczenia filtra wsystemie. Decyzje oroutowaniu podejmowane sąkilkukrotnie.
Zbiorczy schemat tablic i łańcuchów iptables
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 135 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Metody filtrowania pakietów:
statyczne – reguły bazują na adresach sieciowych, adresach mac,portach, aplikacjach generujących pakiet i tym podobnych stałychcharakterystykach
dynamiczne – filtrowanie po stanach pakietów – reguły rozróżniajątyp pakietu po fladze TCP (inicjowanie połączenia, pakiet zwrotny...)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 136 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Co iptables może zrobić z pakietem:
ACCEPT – przepuścić
DROP – zablokować i zapomnieć
REJECT – odrzucić z właściwym komunikatem zwrotnym
LOG – logowanie operacji
i inne bardziej zaawansowane możliwości.Zawiera predefiniowane tablice. Główną z nich jest filter definiującyłańcuchy:
INPUT – pakiety przychodzące do danego hosta
ROUTED – pakiety routowane
OUTPUT – lokalnie generowane pakiety wychodzące
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 137 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Różnica między REJECT a DROPREJECT
odmowa nawiązania danego połączenia
wysyła komunikat zwrotny
jest to zgodne ze standardem zachowań usług sieciowych
pozwala, po podszyciu się za inny komputer, na wykorzystanienaszego komputera do ataku typu DoS
daje informacje o dostępności usług
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 138 / 325
Ochrona systemu operacyjnego Firewall w linuksie
DROP
wchłonięcie pakietu (komputer wygląda jak nieczynny)
brak jakiejkolwiek odpowiedzi
spowalnia i zapycha sieć z powodu powtarzanych żądań usług (próbyponownego połączenia się z danym portem) aż do timeout’u
wyklucza wykonanie ataku DoS
ukrywa komputer przed niechcianymi połączeniami
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 139 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Opcje:-A --append dodaje regułę do łańcucha-D --delete usuwa j.w.-I --insert wstawia regułę numer ileśtam-R --replace podmienia regułę numer ileśtam-L --list podaje reguły zdefiniowane w danym łańcuchu-F --flush czyści łańcuch-Z --zero zeruje liczniki pakietów-N --new-chain tworzy nowy łańcuch-X --delete-chain usuwa łańcuch-P --policy ustawia politykę dla predefiniowanego łańcucha-E --rename-chain zmienia nazwę łańcucha
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 140 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Parametry budowania reguł (! neguje):-p --protocol – typ protokołu: tcp, udp, icmp lub all-s --source – adres lub klasa adresów źródłowych pakietu-d --dst --destination – j.w. docelowych-i --in-interface – interface wejściowy-o --out-interface – interface wyjściowy--state – stany pakietu: ESTABLISHED, INVALID, NEW, RELATED-j --jump – ustawia cel reguły (DROP itd)-m --match – dopasowanie pakietów
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 141 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Przykłady:1. Uniemożliwienie zdalnym komputerom podszycia się pod nasz własny(weryfikacja adresu źródłowego)echo 1 > /proc/sys/net/ipv4/conf/default/rp filterlubiptables -A INPUT -i eth0 -s mój IP -j REJECTlubiptables -A INPUT -i eth1 -s 192.168.0.0/24 -j REJECT2. Zablokowanie całego ruchu sieciowego na poziomie firewallaiptables -Fiptables -A INPUT -j REJECTiptables -A OUTPUT -j REJECTiptables -A FORWARD -j REJECT
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 142 / 325
Ochrona systemu operacyjnego Firewall w linuksie
3. Zablokowanie tylko ruchu przychodzącegoiptables -F INPUTiptables -A INPUT -m state --state ESTABLISHED -j ACCEPTiptables -A INPUT -j REJECT4. Zablokowanie tylko ruchu wychodzącego – j.w. INPUT → OUTPUT5. Zablokowanie żądań HTTP z zewnątrz ale zezwolenie na ruch lokalny(kolejność reguł!)iptables -A INPUT -p tcp -i lo --dport www -j ACCEPTiptables -A INPUT -p tcp --dport www -j REJECT6. Blokowanie konkretnego hostaiptables -A INPUT -s ip hosta -j REJECTiptables -A OUTPUT -d ip hosta -j REJECT
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 143 / 325
Ochrona systemu operacyjnego Firewall w linuksie
7. Zezwalanie na dostęp z sieci lokalnej tylko komputera o określonymadresie MACiptables -F INPUTiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -m mac --mac-source 12:34:56:78:ab:cd
-j ACCEPTiptables -A INPUT -j REJECTOpcja --dport jest opcją dla protokołu tcp (-p tcp). Uniwersalniej jestpodawać konkretne porty wykorzystywane przez poszczególne usługisieciowe.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 144 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Popularne porty (/etc/services):
ftp-data 20/tcp,udp #File Transfer [Default Data]ftp 21/tcp,udp #File Transfer [Control]ssh 22/tcp,udp #Secure Shell Logintelnet 23/tcp,udpsmtp 25/tcp,udp #Simple Mail Transferdomain 53/tcp,udp #Domain Name Serverfinger 79/tcp,udphttp 80/tcp,udp #World Wide Web HTTPkerberos-sec 88/tcp,udp #Kerberos (v5)auth 113/tcp,udp #Authentication Service (ident)imap 143/tcp,udp #Interim Mail Access Protocol v2https 443/tcp,udpkpasswd5 464/tcp,udp # Kerberos (v5)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 145 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Moduł | Przykład lub opis=========+====================================================================iprange | iptables -A INPUT \
| -m iprange -s 192.168.1.5-192.168.1.100 -j ACCEPT---------+--------------------------------------------------------------------length | <filtruje po długości pakietu>---------+--------------------------------------------------------------------limit | iptables -I INPUT -m limit --limit 10/min --limit-burst 30 \
| -j LOG --log-prefix "Flooding: "|| <włącza filtrowanie po zarejestrowaniu --limit-burst pakietów| i ustawia maksymalny limit na --limit, resztę usuwa; rozumie| /second /minute /hour /day i ich skróty>
---------+--------------------------------------------------------------------mac | iptables -A INPUT -m mac --mac-source 12:23:34:56:ab:ff -j ACCEPT---------+--------------------------------------------------------------------multiport| iptables -I INPUT -p tcp \
| -m multiport --source-ports 25,110,143 -j ACCEPT---------+--------------------------------------------------------------------owner | dopasowuje lokalnie generowane pakiety do użytkownika
| --uid-owner 501, podobnie --gid-owner (grupa),| --pid-owner (proces), --sid-owner (sesja)
---------+--------------------------------------------------------------------state | filtrowanie po stanach pakietów
| ESTABLISHED, RELATED, NEW, INVALID---------+--------------------------------------------------------------------Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 146 / 325
Ochrona systemu operacyjnego Skaner portów
Reguły firewalla testuje się za pomocą skanera portów, np. nmap. Skanerportów:
próbuje sekwencyjnie nawiązywać połączenie z kolejnymi portamihostu docelowego, rejestrując odpowiedzi
ślad skanowania znaleźć można w logach firewalla i jest uważany zadziałanie wrogie lub bliskie takiemu, gdyż sonda taka jest zazwyczajrozpoznaniem do późniejszego ataku
odpowiedzi serwerów nasłuchujących na poszczególnych portachczęsto zawierają wersje oprogramowania, wersję systemu operacyjnegooraz różne inne przydatne sygnatury
istnieją różne metody skanowania, różne skanery wykorzystują różnetypy pakietów, które można odfiltrowywać na poziomie firewalla
skaner portów jest jednym z podstawowych narzędzi administratorów(dla testów penetracyjnych) i hakerów (do przygotowania ataków)
można korzystać ze skanerów on-line
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 147 / 325
Ochrona systemu operacyjnego Skaner portów
Przykłady składni nmapa:UDP Port Scannmap -sU -O -P0 127.0.0.1
All 1487 scanned ports on digger.fizter (127.0.0.1) are closedToo many fingerprints match this host to give specific OS details
Connect Scannmap -sT -O -P0 127.0.0.1
Not shown: 1679 closed portsPORT STATE SERVICE VERSION22/tcp open tcpwrappedNo exact OS matches for host.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 148 / 325
Ochrona systemu operacyjnego Skaner portów
[root marek]# nmap -sT -O umcs.pl
Starting Nmap 6.40 ( http://nmap.org ) at 2015-11-27 08:11 CETNmap scan report for umcs.pl (87.246.208.14)Host is up (0.00043s latency).rDNS record for 87.246.208.14: portal.umcs.plNot shown: 979 filtered portsPORT STATE SERVICE20/tcp closed ftp-data21/tcp open ftp22/tcp open ssh25/tcp open smtp80/tcp open http110/tcp open pop3143/tcp open imap443/tcp open https587/tcp open submission993/tcp open imaps995/tcp open pop3s50000/tcp closed ibm-db250001/tcp closed unknown50002/tcp closed iiimsf50003/tcp closed unknown50006/tcp closed unknown
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 149 / 325
Ochrona systemu operacyjnego Skaner portów
50300/tcp closed unknown50389/tcp closed unknown50500/tcp closed unknown50636/tcp closed unknown50800/tcp closed unknownDevice type: general purposeRunning: Linux 3.XOS CPE: cpe:/o:linux:linux_kernel:3OS details: Linux 3.0 - 3.9
OS detection performed. Please report any incorrectresults at http://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 6.15 seconds
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 150 / 325
Ochrona systemu operacyjnego Skaner portów
IP Protocol Scannmap -sO -O -P0 127.0.0.1
Not shown: 250 closed protocolsPROTOCOL STATE SERVICE1 open icmp2 open|filtered igmp6 open tcp17 open udp41 open|filtered ipv6255 open|filtered unknownToo many fingerprints match this hostto give specific OS details
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 151 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
TCP–wrappersKontrola dostępu na poziomie tcp–wrappers odbywa się poprzez definicjez plików /etc/hosts.allow i /etc/hosts.deny.Składnia:
usługa:hosty:politykaNa przykład umieszczenie w pliku hosts.deny wpisu ALL:ALL spowodujeodrzucanie jakichkolwiek prób połączenia się z naszym komputerem.Wpis w /etc/hosts.allow typu:
finger : *.domena.netfinger : ALL : DENY
udostępni fingera tylko dla komputerów z domeny domena.net
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 152 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Superdemony siecioweKontrola dostępu na poziomie demona inetd (xinetd).Superdemon (x)inetd nie jest konieczny do działania sieci, ale stanowikolejny etap kontroli dostępu do serwera. Jest to demon odpowiedzialny zaudostępnianie (po spełnieniu odpowiednich warunków) usług sieciowychpoprzez wywołanie żądanych demonów (serwerów) i unieczynnianie ich gdynie są już potrzebne.Pliki konfiguracyjne to zwyczajowo:/etc/inetd.conf (jeden plik z listą usług)/etc/xinetd.d/* (po jednym wpisie dla każdej usługi)Składnia inetd:
service type protocol wait user server cmdline
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 153 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Inne zabezpieczenia
serwer SSH. Plik /etc/ssh/sshd.configPermitRootLogin noProtocol 2
szyfrowanie i podpisywanie elektroniczne GPG, np. e-maili
migawki systemu, np. Tripwire
kontrola nad kontami i hasłami
tablica /etc/login.accesszgoda : użytkownicy : skąd
zgoda to + lub –użytkowników definiuje lista loginów, grup lub ALL (user@hostakceptowalne)skąd to numery konsol tty, hosty, domeny, ALL lub LOCAListnieje również operator EXCEPT, np.-:ALL EXCEPT wheel shutdown sync:console
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 154 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Inne zabezpieczenia c.d.
plik /etc/securetty – lista urządzeń na których może się logowaćroot bezpośrednio: tty1..., ttyS0..., ttyp0..., pts/0...
kontrola nad ruchem sieciowym
redukcja liczby plików z bitami suid i sgid
Jak testować bezpieczeństwo komputera/serwera?
skaner portów, np. nmap, nmapfe
testowanie haseł kont, np. John the Ripper, CrackLib
podsłuchiwanie pakietów, np. Snort
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 155 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Ograniczone uprawnienia administracyjne dla użytkowników:
pliki suid, sgid (luka bezpieczeństwa)
su (udostępnianie hasła)
sudo (konfigurowalne su -c komenda)
Pakiet sudo
pozwala w kontrolowany sposób nadać czasowo użytkownikom prawaadministratora
pozwala logować aktywność użytkowników działających jako root
współpracuje z systemem uwierzytelniania BSD (/etc/login.conf)
konfiguracja w /etc/sudoers
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 156 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Plik /etc/sudoers
jest czytany zawsze w całości, ustawienia są respektowanew kolejności wystąpienia, ostatnie jest wykonywane
wspiera aliasy
User_Alias FULLTIMERS = millert, mikef, dowdyRunas_Alias OP = root, operatorHost_Alias SPARC = bigtime, eclipse, moet, anchor :\
SGI = grolsch, dandelion, blackCmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
posiada pewne ustawienia domyślne, które można nadpisać
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 157 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Przykład:
# root i grupa wheel mogą wszystko wszędzie# % oznacza grupę (ustawienie domyślne, + to grupa sieciowa)root ALL = (ALL) ALL%wheel ALL = (ALL) ALL
# joe może "su operator" na każdej maszynie (musi znać hasło)joe ALL = /usr/bin/su operator
# wszyscy mogą montować cdromy na maszynach z grupy CDROM# bez podawania hasłaALL CDROM = NOPASSWD: /sbin/umount /CDROM,\
/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 158 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Komenda chroot pozwala na zmianę katalogu głównego na inny. Wyjścieprzez exit. Po co to?
używanie drugiego systemu z konsoli (przy pewnej wprawie da sięuruchomić serwer X)
naprawianie systemu, np. korzystając z LiveCD (lilo, grub, systemzhakowany)
zamknięcie użytkownika (np. gość ftp) w ograniczonej, mniejszej kopiisystemu
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 159 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Pakiety PAM (Pluggable Authentication Modules)Klasycznie uwierzytelnianie w linuksie polega na podaniu hasła iporównaniu go z zaszyfrowaną wersją w pliku na dysku. PAM udostępniamoduły uwierzytelniające na różne sposoby (inne typy szyfrowania,specjalistyczny hardware...) co powoduje, że programy takie jak login niewymagają przepisywania przy wprowadzaniu nowych metod do użytku.Wystarczy że będą zdolne do wywołania odpowiedniego modułu.Z PAM mogą korzystać m.in.
OpenPGP
Bluetooth
POP3
SQL
iptables
SAMBA
chroot
Kerberos
ssh
imap
LDAP
PHP, Python, Perl
sudo
ProFTPD
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 160 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Łatki bezpieczeństwa w linuksie: SELinux.www.nsa.gov/selinuxSecurity Enhanced Linux
National Information Assurance Research Laboratory of theNational Security Agency
Implementacja rozwijanego przez NSA mechanizmu bezpieczeństwa Flask(Flux Advanced Security Kernel) w systemie linux. Licencja GPL.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 161 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Nie polega na standardowym systemie bezpieczeństwa linuksa (prawadostępu, suid, sgid, konto root), w którym przejęcie przez atakującegokontroli nad częścią w praktyce poddaje cały system.Koncepcja DAC (Discretionary Access Control – uznaniowa kontroladostępu) stosuje politykę bezpieczeństwa biorąc pod uwagę tożsamośćobiektów i ich uprawnienia; użytkownik przekazuje swoje uprawnieniauruchamianym procesom, co jest szczególnie niebezpieczne w przypadkuadministratora lub plików z bitem suid.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 162 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Przydziela każdemu poleceniu, aplikacji, użytkownikowi dokładnie takieprawa ingerencji w system, jakich to coś wymaga do działania. Wadliwelub dziurawe aplikacje mają minimalny bądź żaden wpływ nabezpieczeństwo reszty systemu.Koncepcja MAC (Mandatory Access Control – obowiązkowa kontroladostępu) wprowadza reguły po regułach DAC i żaden z użytkowników niemoże ich obejść.Składnia trudna. Edytory ułatwiające budowanie reguł bezpieczeństwa(skrypty w makro języku M4)
SETools (Tresys Technology) oss.tresys.com/projects/setools
SEEdit (Hitachi Software) seedit.sourceforge.net/
Szacunkowe obciążenie systemu to ok. 7-9% (wg autorów)Dwa tryby pracy: premissive (warn) służący do testów, enforcement czyliwłaściwy tryb ochrony.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 163 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
MAC – Mandatory Access Control. Na podstawie:
podmiot = proces lub użytkownik
obiekt = zasoby systemowe (pliki, gniazda...)
atrybuty bezpieczeństwa = zestaw reguł
Security Server wbudowany w jądro linuksa przydziela lub odmawiadostępu.1 MAC Type Enforcement (TE) – procesy działają w obrębie domen,akcje na obiektach definiowane są przez reguły
2 MAC Multi-Level Security (MLS) – oparty na modelu Bell’a-La Padulidla przypadków, gdy istnieją poziomy zabezpieczeń; wariantem jestMulti-Category Security (MCS)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 164 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
RBAC – Role-Based Access Controlużytkownicy klasyfikowani są po ich rolach w systemie, a tym przypisuje siędomeny działania. Przykłady klas:
user u – ogólna klasa użytkowników
staff u – dodatkowa klasa specjalna
sysadm u – dodatkowa klasa specjalna
system u – zarezerwowana klasa dla procesów systemowych
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 165 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
System PAM może korzystać z bibliotek SELinux. Działa na czterechetapach:1 Account Management – ważność konta, główne polityki dostępu2 Authentication Management – dodatkowe metody autoryzacji (kartySmart, metody biometryczne etc.)
3 Password Management – zarządzanie hasłami4 Session Management – uruchamianie dodatkowych usług podczaslogowania
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 166 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
SELinux wzmacnia też ochronę od strony sieci. Netfilter otrzymujedodatkową funkcjonalność na poziomie tablicy mangle:
SECMARK – oznaczanie pakietów z wykorzystaniem dopasowańzwiązanych z regułami bezpieczeństwa
CONNSECMARK – j.w. dla połączeń (sesji)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 167 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Inne udogodnienia:
działa w obrębie maszyn wirtualnych KVM/QEMU oraz Xen
XSELinux rozciąga kontrolę na obiekty (resources) systemu x.org
SE-PostgreSQL
Appache-Plus
współpracuje z Androidem od wersji 4.3
SEBSD, SEDarwin
Można dołożyć SELinux do istniejącego i działającego systemu. Wieledystrybucji ma taką opcję wbudowaną (RedHat/Fedora, Centos, SuSE,Hardened Gentoo, Debian Etch, Hardened Ubuntu).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 168 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Kompatybilność z aplikacjami: pełna; aplikacje nie przystosowane poprostu nie będą korzystały z rozszerzeń bezpieczeństwa, ale wciąż będąochraniane przez system. Istnieją jednak z oczywistych powodów łaty nastandardowe aplikacje, bez których całość nie miałaby sensu (m.in. ssh, ls,ps, login).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 169 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Kompatybilność ze standardowymi modułami jądra: SELinux jest wtym momencie zintegrowany z kernelem 2.6.x i dostarcza kompatybilnośćna poziomie binariów; we wcześniejszych wersjach kompatybilność była napoziomie źródeł i wymagała przekompilowania modułów z nowymkernelem i jego plikami nagłówkowymi. Nie ma jednak 100%kompatybilności z modułami wykonującymi bezpośrednie operacje naobiektach jądra z pominięciem inicjalizowania standardowych funkcji jądra– obiekty takie nie będą zawierały poprawnych informacji bezpieczeństwa imoże być problem z ich działaniem.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 170 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Openwall – kolekcja łat autorstwa Solar Designera, zwiększającabezpieczeństwo jądra Linux. Opracowana dla jąder 2.2, 2.4. i 2.6.Openwall implementuje m.in:
niewykonywalny stos
restrykcje dowiązań i kolejek FIFO w /tmp
restrykcje dla /proc (zwykli użytkownicy widzą tylko własne procesy)
wymuszenie sprawdzenia liczby limitu procesów dla execve()
niszczenie nieużywanych obszarów pamięci dzielonej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 171 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Openwall jest natywnie zaimplementowany w systemie serwerowymOwl (Openwall GNU/*/Linux), który oprócz samych zmian w jądrzewykorzystuje również inne poprawione aplikacje.
Najnowsza wersja tego systemu to Owl 3.0 z grudnia 2010z późniejszymi poprawkami (wersja 3.1 pochodzi ze stycznia 2015).
W chwili obecnej działa na kernelu 2.6.18 i jest niemal w 100%kompatybilny z pakietami dla RHEL 5.9 (i odpowiadające im wersjeCentoOS, Fedora).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 172 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Przed umieszczeniem danej aplikacji w dystrybucji Owl, jej kod źródłowypodlega audytowi i jest sprawdzany pod kątem podatności na klasyataków. Dotyczy to:
aplikacji z uprawnieniami większymi niż użytkownika
aplikacji pobierających/wysyłających dane z/do sieci
aplikacji wymagających bitu SUID/SGID
bibliotek systemowych
demonów i usług sieciowych
Aplikacje są wstępnie konfigurowane i nadawane jest im minimumpotrzebnych uprawnień.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 173 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Oprócz (siłą rzeczy selektywnego) audytu kodu źródłowego, Owl stosuje
silną kryptografię, obejmującą m.in. kontrolę i ochronę haseł
ochronę i audyt kont użytkowników
kontrolę dostępu sieciowego
kontrolę spójności systemu (mtree)
Wykorzystanie narzędzia mtree jest opisane np. tu:
www.techrepublic.com/blog/it-security/use-mtree-for-filesystem-integrity-auditing/
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 174 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
grsecurity jest patchem na jądro zwiększającym jego bezpieczeństwo.Zaprojektowana przez Solar Designer’a dla jąder 2.2, przeniesiona przezBrada Spenglera na jądra 2.4, jest obecnie rozwijana dla najnowszychkerneli.Od 9.IX.2015 grsecurity zmieniło politykę, wprowadzając opłaty za swojeprodukty:
w chwili obecnej (koniec 2015 r.) wersje testowe łat, obejmujące jądra3.1–4.26 są bezpłatne.
wersje stabilne obejmujące jądra 3.1–3.14 są zarezerwowane dlaklientów firmy.
grsecurity skupia się na typach ataków, a nie łataniu po fakcie odkrytychpojedynczych luk. Pozwala to na zmniejszeniu szansy powodzenia atakówtypu zero-day.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 175 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Cechy:
tworzenie list kontroli dostępu opartych o role (Role-Based AccessControl (RBAC))
nałożenie restrykcji na środowisko chroot, uniemożliwiającychwyrwanie się z niego (nawet rootowi)
rozbudowane logowanie, ułatwiające audyt (możliwość zapisu adresuIP osoby dla określonych zdarzeń)
losowość stosu TCP (numerów sekwencyjnych, portów źródłowych, IPID)
restrykcje nakładane na /proc oraz losowość numerów PID
zapobieganie sytuacjom wyścigu poprzez restrykcje dla /tmp
działania zapobiegające atakom siłowym (ang. bruteforce attack)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 176 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
oznaczenie stosu jako niewykonywalnego (ochrona przedwykonywaniem kodu w zapisywalnych obszarach pamięci)
nałożenie ograniczeń dla mprotect, losowości dla mmap() oraz stosu isterty
ochronę przed modyfikacją jądra przez /dev/mem, /dev/kmem i/dev/port
Porównanie (trochę tendencyjne) grsecurity z SELinux i AppArmorznajduje się pod adresem grsecurity.net/compare.php
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 177 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
AppArmor – system bezpieczeństwa wykorzystujący, podobnie jakSELinux, zaimplementowany w Linuksie mechanizm LSM (Linux SecurityModules). Wprowadza nad standardowym linuksowym DAC (grupy i prawadostępu) dodatkową kontrolę MAC.
działa na konfigurowalnych profilach, przypisujących zasobyaplikacjom
aplikacje można selektywnie przypisać do profili
w pierwszej kolejności konsultowane są systemowe ustawienia DAC;jeśli wg nich dostęp jest dozwolony, konsultowane są dodatkoworeguły MAC z AppArmor
AppArmor jest domyślnie zintegrowany z Ubuntu oraz OpenSUSE.Dostępny jako opcja m.in. dla Arch Linux, Debian, Gentoo, Mandriva,PLD.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 178 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
LSM (Linux Security Modules) jest mechanizmem pozwalającym napisanie modułów bezpieczeństwa współpracujących z jądrem Linuksa.Wszystkie moduły traktowane są z jednakowym priorytetem. Oficjalniekompatybilnymi modułami zewnętrznymi są:
AppArmor
SELinux
TOMOYO Linux
Smack
LSM jest również krytykowany:
brak kontroli, czy podłączany moduł faktycznie udostępnia funkcjebezpieczeństwa
niekontrolowany eksport symboli pozwala na podłączenie pod niegorootkita
zmienia się w każdej wersji kernela, przez co moduły muszą byćdostosowywane pod konkretne wydania jądra
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 179 / 325
Ochrona aplikacji
Ochrona aplikacji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 180 / 325
Ochrona aplikacji
Gdzie szukać luk w aplikacjach:
przepełnienie zakresu zmiennych
przepełnienie sterty i stosu
odwołanie do pamięci
odwołanie do funkcji systemowych
komunikacja z jądrem systemu
komunikacja ze sterownikami
komunikacja z innymi aplikacjami
dostęp do systemu plików (odczyt, modyfikacja, pliki tymczasowe)
dostęp do urządzeń
dane pobierane od użytkownika lub z plików
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 181 / 325
Ochrona aplikacji
Jak dbać o bezpieczeństwo aplikacji?Jeśli jestem programistą:
staranne planowanie algorytmu
staranne planowanie sposobu działania
dokładne testy kodu
ewentualnie specjalistyczne testy zewnętrzne
poprawianie znalezionych luk, kontakt z użytkownikami
Jeśli jestem użytkownikiem:
staranny wybór aplikacji
analiza dokumentacji
poprawna instalacja i konfiguracja
własne testy bezpieczeństwa
śledzenie dostępnych aktualizacji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 182 / 325
Ochrona aplikacji Metody stosowane w lokalnych exploitach
Ataki na system i aplikacje
Bomba dekompresyjna: spreparowane archiwum wprowadzająceprogram do dekompresji w nieskończoną pętlę, generując ogromnyplik i wyłączając program antywirusowy; obecnie programyantywirusowe są odporne na te ataki
Przekroczenie zakresu liczb: przepełnienie bufora może spowodowaćprzejęcie kontroli nad procesem aplikacji
Przepełnienie bufora: próba wpisania do pamięci większej ilościdanych niż przewidziano, co powoduje nadpisanie struktur programuw pamięci nowym kodem
Przepełnienie sterty: j.w.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 183 / 325
Ochrona aplikacji Metody stosowane w lokalnych exploitach
Return-to-libc attack: przepełnienie bufora nadpisuje adres powrotuna stosie wywołań aplikacji i wskazuje najczęściej na jakąś funkcjęsystemową z biblioteki glibc
SQL Injection: przy braku dostatecznego filtrowania wpisywanychzapytań, można wykonać na silniku bazy dowolny kod, m.in. odpytaćo hasło pierwszego użytkownika na liście (a jest nim zazwyczaj admin)
Atak na serwer www poprzez formularze php
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 184 / 325
Ochrona aplikacji Metody stosowane w lokalnych exploitach
Format string atak: nieuważnie napisane aplikacje mogą zostaćprzejęte za pomocą specjalnie wprowadzonych danych (przy brakukontroli poprawności tych danych)
Fork bomb: uruchomienie programu replikującego samego siebie, cozapycha system; przykład w bashu
bomba(){bomba | bomba &
};bomba
Symlink race: przejęcie kontroli nad aplikacją, która korzysta z plikówz uprawnieniami wyższymi niż atakujący (zapisuje np.niezabezpieczone pliki tymczasowe). Podmiana pliku na linksymboliczny i wpisanie do niego własnego kodu pozwala na jegowykonanie z uprawnieniami aplikacji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 185 / 325
Ochrona aplikacji Metody stosowane w lokalnych exploitach
Niedawno wykryte (2014 r.) luki bezpieczeństwa w popularnychaplikacjach, pozwalające na ataki sieciowe:
Poodle (SSL 3.0): zmusza przeglądarkę do ustanowienia połączeniaszyfrowanego starszym protokołem, pozwala na odszyfrowaniewiadomości (ok. 256 połączeń SSL 3.0 wystarcza do poznania 1Binformacji)
Heartbleed (OpenSSL): pozwala na odczyt pamięci i poznanie kluczaszyfrującego SSL oraz haseł, loginów i treści przesyłanej przez serwer
Shellshock (bash): pozwala na wykonanie dowolnego kodu podanegowewnątrz deklaracji zmiennej środowiskowej:
x=’() { :;}; echo vulnerable’ bash -c "echo to jest test"
Został natychmiast użyty do ataków na serwery korzystające m.in. zeskryptów cgi
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 186 / 325
Ochrona aplikacji Bazy danych
Bazy danych
http://www.securitum.pl/baza-wiedzy/publikacje/bezpieczenstwo-bazy-danych
Problemy:
dostęp do bazy od strony sieci zewnętrznej
dostęp do bazy od strony sieci wewnętrznej
uprawnienia bazy w systemie operacyjnym serwera
kontrola na poziomie użytkowników
fizyczne zabezpieczenie bazy (dostęp do serwera, kopie zapasowe)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 187 / 325
Ochrona aplikacji Bazy danych
1. Ekspozycja bazy na poziomie sieci
czy baza danych musi być dostępna z poziomu sieci zewnętrznej?
jakie jest bezpieczeństwo modułu nasłuchującego (np. do wersji 9Oracle ma domyślnie puste hasło dla listenera)istnieją robaki sieciowe penetrujące bazy danych, np. Slammeratakujący SQL Server. Zrzut logów snorta, który wykrył próbęwłamania[**] [1:2003:8] MS-SQL Worm propagation attempt [**][Classification: Misc Attack] [Priority: 2]04/19-23:16:14.032636 202.x.x.x:3352 -> x.x.x.x:1434UDP TTL:116 TOS:0x0 ID:55339 IpLen:20 DgmLen:404Len: 376[Xref => http://vil.nai.com/vil/content/v_99992.htm][Xref => http://cgi.nessus.org/plugins/dump.php3?id=11214][Xref => http://cve.mitre.org/cgi-bin/cvename.cgi?name=2002-0649][Xref => http://www.securityfocus.com/bid/5311][Xref => http://www.securityfocus.com/bid/5310]
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 188 / 325
Ochrona aplikacji Bazy danych
2. Poprawki bezpieczeństwa
nowsze wersje są zazwyczaj bezpieczniejsze i lepiej współpracująz nowszymi wersjami innych aplikacji
problematyczne, jeśli się pracuje na starym systemie operacyjnym
oszuści mogą podsunąć łatę otwierającą bazę danych!
3. Użytkownicy, z wykorzystaniem których działa baza danych
użytkownicy nie powinni mieć jednocześnie uprawnieńadministracyjnych
użytkownicy nie powinni móc logować się zdalnie, np. przez ssh
poprawne i sensowne mapowanie użytkowników wewnętrznych bazydanych na użytkowników systemu operacyjnego
zabezpieczenie kont użytkowników bazodanowych
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 189 / 325
Ochrona aplikacji Bazy danych
4. Uprawnienia do plików bazodanowych na poziomie systemu plików5. Ograniczenie funkcjonalności oferowanych przez bazę danych6. Logowanie (księgowanie) dostępu do bazy danych7. Szyfrowanie8. Bezpieczeństwo po stronie aplikacji korzystających z bazy danych
SQL Injection pozwala na nieautoryzowany dostęp do pełnej bazydanych po przekazaniu zmodyfikowanego zapytania
9. Miejsce składowania danych w systemie plików
lokalni użytkownicy mający dostęp do przetwarzanych przez RDBMSplików mogą przejąć dane z bazy
jeśli baza składuje dane na tej samej partycji co serwer lub systemoperacyjny, atak na jedno wpływa na drugie
10. kopie zapasowe
poprawne i pełne tworzenie kopii zapasowych
na trwałych nośnikach
nośniki muszą być fizycznie dobrze zabezpieczone
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 190 / 325
Ochrona aplikacji Bazy danych
Atak SQL Injectionwykorzystuje brak lub niepoprawną kontrolę danych wejściowych, copozwala użytkownikowi na bezpośrednie zwracania się do silnika bazydanych dowolnym ciągiem instrukcji.Podobny atak można przeprowadzić
poprzez php na słabych stronach www
porzez silniki wyszukiwarek
Narażone są m.in.
formularze html
zmienne przekazywane w łańcuchach url
cookies
aplikacje desktopowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 191 / 325
Ochrona aplikacji Bazy danych
Przykład kodu formularza:
<?php....$userName = $_POST[’UserName’];$password = $_POST[’Password’];$queryString = "SELECT userId FROM users WHEREusername = ’$userName’ AND password = ’$password’ ";
$query = mysql_query($queryString);$results = mysql_fetch_array($query);...?>
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 192 / 325
Ochrona aplikacji Bazy danych
Kluczowa linia:
$queryString = "SELECT userId FROM users WHEREusername = ’$userName’ AND password = ’$password’ ";
Podając dane:
Password = "abcd"UserName = "aaa’ or 1=1 #"
Zapytanie skierowane do silnika DB uzyska postać:
SELECT userId FROM users WHEREusername = ’aaa’ or 1=1 #’ AND password = ’abcd’
Znak # jest komentarzem, więc pominięty zostaje warunek dopasowaniahasła. 1=1 zaloguje nas na pierwsze konto na liście, które często jestkontem administratora.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 193 / 325
Ochrona aplikacji Inne aplikacje
Ochrona serwerów (www, ftp, serwer wydruku...)
z serwerami można się łączyć – kto, kiedy i na jakiej zasadzie?
jakie uprawnienia ma aplikacja serwera w systemie?
jakie uprawnienia mają użytkownicy serwera?
jak duży dostęp do dysku udostępnia serwer?
chroot
jakie informacje może uzyskać użytkownik od serwera?I jak serwer się identyfikuje?I ile informacji zwraca przy próbach komunikacji?I jak szczegółowe są opisy np. drukarek w CUPSie?
kopie zapasowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 194 / 325
Ochrona aplikacji Inne aplikacje
Serwer pocztyzdefiniowanie dostępu do poczty
I poprzez powłokęI poprzez wwwI poprzez imap
wybór obsługiwanych protokołów (szyfrowanie)
filtr antywirusowy
filtr antyspamowydodatkowe restrykcje
I tylko lokalni użytkownicy mogą korzystać z smtpI blokowanie spamu nadawanego z naszego serweraI ograniczenia związane z identyfikacją użytkowników, adresamizwrotnymi, przekierowaniami (pętle pocztowe) etc.
I wielkość i typ załącznika
kopie zapasowe
kontrola zawartości poczty użytkowników (treści nielegalne)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 195 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Złośliwe oprogramowanie
Malware (malicious software) to oprogramowanie nie kontrolowane przezużytkownika systemu. Charakterystyczne cechy
ukrycie programu w systemie
samoczynna replikacja
samoczynne lub podstępne rozprzestrzenianie się
nieudokumentowane działanie, zawsze niepożądane
pozostawianie użytkownika w nieświadomości
Często „infekcja” przebiega z udziałem nieświadomych użytkowników.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 196 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Trochę historii (za: pandasecurity.com)
Von Neumann (1949) – Theory of Self-Reproducing Automata
Morris, McIlroy, Vysottsky (1959, Bell Labs.) – gra CoreWar,autonomiczne (na bazie teorii von Neumanna) programy walczą oprzydział pamięci w komputerze
Morris (1972) – pierwszy wirus Creeper, zarażał komputery IBM 360w sieci ArpaNET, wyświetlając komunikat na ekranie; aby gowyeliminować napisano wirusa Reaper, który wyszukiwał i niszczyłkopie Creeper’a (pierwszy wirus i program antywirusowy)
Skrenta (1982) – wirus Elk Cloner, na PC, przy 50. bootowaniukomputera z zainfekowanej dyskietki wyświetlał wiersz na ekranie;początek wirusów destrukcyjnych
Cohen (1984) – ukuł termin „wirus komputerowy” na programyzdolne do samoreplikacji poprzez infekowanie innych programów
(1987) – Jerusalem (Friday 13) to pierwszy wirus, który infekowałpliki wykonywalne .exe i .com
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 197 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Co 50 uruchomień komputera z zainfekowanej dyskietki 5.25” na ekraniepojawiał się wierszyk. Wirus nie powodował większych niedogodności.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 198 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Morris (1988) – pierwszy robak internetowy Morris Worm; programwykorzystywał błędy w systemach BSD, Solaris i Vax oraz odgadywałproste hasła logowania; miał być nieszkodliwy, ale autor pomylił się wrachunkach i jego robak przeładował łącza wyłączając sieć na niemaltydzień, powodując straty finansowe szacowane nawet na 100 mln.dolarówSpanska (1999) – pierwszy robak internetowy Happy, dołączający siędo wiadomości emailrok 2004 to wysyp robaków o charakterze niszczycielskim, m.in.Mydoom, Netsky, Sasser, Baglepo roku 2004 charakter malware się zmienił. Pojawiły się programydające właścicielom konkretne korzyści
I spywareI addwareI konie trojańskie (m.in. bankowe)
w 2004 pojawiają się pierwsze wirusy na urządzenia mobilne i telefonykomórkowe (Cabir.A, ComWar.A), wykorzystujące Bluetooth, SMS,MMS, listy adresowe, port IrDA
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 199 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Podsumowanie raportu Panda SecurityThe most frequently targeted operating system today is still Windows32-bit. As we mentioned previously, malware creators have seen thefinancial potential for their activity and as Windows accounts for 90percent of the market, it is easy to see why it is the focus of theirattention. Perhaps another obstacle for creators of malware for Linux andMacintosh is related to the medium/high level of knowledge of users ofthese types of platforms, and so social engineering, the main method ofpropagation, will not be as effective as with other users.
Szczegółowe dane za rok 2013:www.symantec.com/security response/
publications/threatreport.jsp
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 200 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Wirus komputerowy
program scalający swój kod z kodem innego programu
zaczyna działać dopiero, gdy zainfekowany program jest uruchamiany
zdolność do powielania się i infekowania kolejnych plików
tradycyjnie bierze za cel pliki wykonywalne (.exe, .com), ale możerównież wykorzystywać inne t.j. dokumenty office, .html, wygaszaczeekranu itd.
wirusy mogą ukrywać się również w systemach plików (MBR, FAT) ibyć przenoszone na nośnikach, również w kościach ROM sprzętu(bios, firmware)często działają destrukcyjnie
I konsumując zasoby komputeraI niszcząc zasoby komputeraI modyfikując i blokując system operacyjny
coraz rzadziej spotykane (11% w roku 2003, poniżej 1% w roku 2007)
Obowiązkowo: poszukać informacji o wirusie Stuxnet.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 201 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Wsród wirusów można wyróżnić
rezydentne – biernie infekują pliki, tzn. czekają, aż zostaną wywołane;rezydentne szybkie infekują każdy plik, wolne tylko te pliki, które sątworzone lub modyfikowane
nierezydentne – aktywnie zarażają pliki, tzn. same wyszukują nowecele
kody polimorficzne – modyfikują się przy każdym wywołaniuzachowując funkcjonalność; najprostszym sposobem jest szyfrowanieze zmiennym kluczem
wieloczęściowe
makrowirusy
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 202 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Robak (worm)
idea znana od lat ’70, pierwszy pojawia się w sieci 2.XI.1988 (Morris)i szybko wymyka się spod kontroli
nie infekują plików, ale potrafią się replikować i zagnieździć w systemie
przenoszą się poprzez sieć (email, p2p, komunikatory) udając coinnego, aby użytkownik wgrał je do systemu
najczęściej dążą do „zamulenia” komputera lub stworzenia botnetu
botnety są wykorzystywane do rozsyłania spamu, ataków DoS,przesyłania zainfekowanych plików itd.specjalizowane robaki biorą na cel
I fora internetoweI formularze, księgi gości...I bazy danychI serwery pocztowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 203 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Koń trojański (trojan)
kod ukryty w innym programie, musi być wgrany przez użytkownika(administratora)
działanie ukryte (wiele metod)
początkowo miały niszczyć zainfekowany system (kasować dane,uszkadzać system operacyjny)obecnie:
I niszczą plikiI instalują dodatkowe pliki (np. rootkity, spyware)I otwierają porty, obchodzą firewalle, instalują backdoor’yI szpiegują, gromadzą informacje i wysyłają w świat (głównie danelogowania, płatności, ale również prywatne dane, w tym pocztę izdjęcia)
udział trojanów obecnie to około 70%
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 204 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Rootkit
zestaw programów ukrywających określone pliki, katalogi, procesy idziałalność nieuprawnionych użytkowników w systemie
w uniksie oznacza to podmienienie części plików systemowych (ps, ls,bash, awk...)w windows istnieją dwie główne kategorie rootkitów, działające w
I przestrzeni użytkownika (user mode rootkit) – przechwytują imodyfikują wywołania systemowe generowane przez aplikacje; częstooperują na pamięci przydzielonej bibliotekom współdzielonym (DLL)
I przestrzeni jądra (kernel mode rootkit) – modyfikują warstwępośredniczącą między aplikacjami a jądrem systemu, działają na SSDT(System Service Descriptor Table - tabeli przechowującej adresywywołań systemowych) przekierowując syscalls na swój własny kod lubwykorzystują technikę DKOM (Direct Kernel Object Modification)ingerując bezpośrednio w dane jądra o uruchomionych procesach
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 205 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Spyware
kod gromadzący w nieuprawniony sposób dane o systemie i jegoużytkownikach
instalowany w systemie przez użytkownika (świadomie bądź nie)
często dodawany do nielegalnych kopii (zhakowanych) programów
addware
stealware
kradzież tożsamości
keylogger itp.
Dyskusja: gdzie jest granica między „analizą” a „kradzieżą danych”? Plikicookies, ustalanie położenia geograficznego przez strony internetowe,śledzenie właścicieli urządzeń mobilnych, przechowywanie prywatnychdanych w chmurach i na publicznych serwerach obcych firm (Wielki BratGoogle, Wielki Brat Microsoft)...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 206 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Podsumowanie
Patrz: www.malware.pl
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 207 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Programy antywirusowe wykrywają szkodliwy kod
analizując sumy kontrolne
monitorując zmiany w plikach systemu
monitorując podejrzane żądania dostępu do plików, połączeńsieciowych, usług
deszyfrując pliki i szukając treści kodów polimorficznych
uruchamiając kod w środowisku testowym i sprawdzając jego działanie
Bardziej kompleksowe systemy detekcji włamań (IDS) monitorująaktywność w systemie, działania użytkowników, stan sieci, stan systemówplików, obciążenie systemu etc.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 208 / 325
Kryptografia klasyczna
Kryptografia klasyczna
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 209 / 325
Kryptografia klasyczna
Podstawowe pojęcia:
Kryptologia, kryptografia – nauka o szyfrowaniu. Dział matematykizajmujący się badaniem i tworzeniem algorytmów szyfrujących.
Klucz szyfrujący – element (metoda) pozwalający na zakodowanietekstu jawnego, tworząc szyfrogram.
Klucz deszyfrujący – element pozwalający na odczytaniezaszyfrowanej wiadomości. Może to być: znajomość pewnych faktów,ustalone wcześniej hasło (ciąg bitów), książka kodowa, figuramatematyczna, urządzenie...
W pewnej klasie szyfrów klucz szyfrujący i deszyfrujący mają tę samąpostać lub jeden można wyznaczyć z drugiego (szyfry symetryczne).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 210 / 325
Kryptografia klasyczna
Podstawowe ataki kryptograficzne:
atak ze znanym kryptogramem – mam tekst zaszyfrowany, próbujęgo rozkodować, wyznaczyć klucz i użyć go do rozkodowania innychkryptogramów
atak ze znanym tekstem otwartym – mam wiadomość i jejkryptogram i próbuję odgadnąć klucz
atak z dobranym tekstem otwartym – j.w. ale sam dobrałem treśćwiadomości
atak z wybranym tekstem zaszyfrowanym – mam możliwośćkodowania dowolnych tekstów i badania kryptogramów aby odgadnąćalgorytm szyfrujący
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 211 / 325
Kryptografia klasyczna
Podstawowe operacje stosowane w algorytmach szyfrujących
permutacja
mieszanie
s-box
Nowoczesne szyfry stosują wiele kolejek kombinacji tych operacji.
Permutacja – może polegać na przestawieniu kolejności bitóww szyfrowanym tekście lub na podstawieniu innych znaków w tymtekście w obrębie pewnego alfabetu.
Mieszanie – tworzy skrót wiadomości we w miarę jednoznacznysposób poprzez zastosowanie odpowiedniej funkcji działającej na ciągbitów (funkcje jednokierunkowe, funkcje hashujące)
S-box – szyfrowanie z zastosowaniem ustalonej wcześniej macierzy4x16; argument jest 6b, wynik ma 4b
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 212 / 325
Kryptografia klasyczna
Przykład szyfrowania za pomocą s-boxa S1
14 04 13 01 02 15 11 08 03 10 06 12 05 09 00 0700 15 07 04 14 02 13 01 10 06 12 11 09 05 03 0804 01 14 08 13 06 02 11 15 12 09 07 03 10 05 0015 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13
Argument, np: 111010 rozkładamy na skrajne bity i środek 1 1101 0co wyznacza nam numer wiersza (0–3) 102=3i numer kolumny (0–15) 11012 = 13
14 04 13 01 02 15 11 08 03 10 06 12 05 09 00 0700 15 07 04 14 02 13 01 10 06 12 11 09 05 03 0804 01 14 08 13 06 02 11 15 12 09 07 03 10 05 0015 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13
dając w wyniku liczbę 10=10102. Tak więc S1(111010)=1010
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 213 / 325
Kryptografia klasyczna
Cechy S-boxów
wiersze i kolumny nie są do siebie podobne, co zapewnia istnienieefektu lawinowego podczas szyfrowania S-boxem; zmiana jednegobitu argumentu przekłada się na zmianę przynajmniej dwóch bitówwyniku
konstrukcja S-boxów nie podlega żadnej matematycznej regule;stworzono macierze S1...S8 dla DES, ale są też inne
funkcja obliczana przez S-box nie jest funkcją afiniczną, czyli żadnegobitu wyniku c nie można przedstawić jako kombinacji liniowej bitówargumentu a, cj 6= w0 +
∑6i=1 aiwi. Gdyby tak było, rozłamanie
kodowania sprowadziłoby się do rozwiązywania układów równańliniowych, co nie jest skomplikowane
jeśli ustalimy jeden bit argumentu i jedną pozycję wyniku, to na innejdowolnej pozycji wyniku dla pozostałych argumentów w ok. 50%przypadków wypadnie 0
S-boxy powinny być tak dobrane aby utrudnić kryptoanalizę różnicową
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 214 / 325
Kryptografia klasyczna
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 215 / 325
Kryptografia klasyczna Szyfry podstawieniowe
Szyfry podstawieniowe: zamiana znaków lub całych wyrazów na inne.
można używać wyrazów nadając im nowe znaczenia: „orzeł wylądowałw gnieździe”
można podmieniać litery wyrazów na inne według pewnej reguły
można podmieniać grupy liter na inne według pewnej reguły
W zapisie formalnym, szyfr podstawieniowy definiuje się jako odwzorowanie
Σn → Σn : (a1, a2, a3, ..., an)→ (π(a1), π(a2), π(a3), ..., π(an))
gdzie Σ to alfabet, π jest operacją permutacji, aj ∈ Σ.
Odczytanie szyfrogramu następuje poprzez odwrócenie operacji (π−1),użycie książki kodowej itp.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 216 / 325
Kryptografia klasyczna Szyfry podstawieniowe
Szyfr CezaraSzyfr korzystał z 26 literowego alfabetu
A B C D E F G H I J K L M N O P Q R S T U V W X Y Zzamiana następowała wg reguły
aj → a(j+3) mod 26
więc np. CEZAR kodowany był jako FHCDU
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 217 / 325
Kryptografia klasyczna Szyfry podstawieniowe
System Playfair’aKluczem jest kwadrat szyfrujący 5x5. Alfabet składa się z 25 liter (J=I).Jeśli hasłem jest POSZLA MALPA DO PIWNICY, kwadrat buduje sięnastępująco
P O S Z LA M D I WN C Y B EF G H K QR T U V X
uzupełniając resztę w kolejności alfabetycznej. Koduje się pary znaków,odczytując je z rogów prostokąta wewnątrz kwadratu. Jeśli litery nietworzą prostokąta tylko linię, rozszerza się ją w prawo o jedno pole. Np.π(MK) =IG, π(QX) =FR, π(OZ) =SL. Tak więc KROWA I WESZ jestkodowane jako FVLMMWANZL (przy podanym haśle).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 218 / 325
Kryptografia klasyczna Szyfry podstawieniowe
Szyfry podstawieniowe są stosunkowo łatwe do kryptoanalizy:
mocne komputery mogą dokonywać odpowiednich permutacjii sprawdzać ze słownikiem, czy wynik ma sens
I krótkie wiadomości mogą dać po kilka różnych „sensownych” wynikówI długie wiadomości zajmują dużo czasu do dekodowania siłowego
szanse zwiększa analiza częstotliwościowazazwyczaj zakłada się język w jakim był napisany tekst jawny
czasami zgaduje się tematykę tekstu jawnego i zakłada występowaniew nim pewnych charakterystycznych wyrazów
szanse udanego rozłamania maleją, jeśli zastosowano podstawianieblokowe a nie pojedynczych znaków
Odczytywanie starożytnego pisma jest formą rozłamywania szyfrupodstawieniowego: wykorzystuje się całą wiedzę, jaką można byłozgromadzić o autorach tekstu (formy języka, kultura, wierzenia, gdzieodnaleziono dany tekst, kto mógł go pisać i w jakim celu...) i próbujeodgadnąć fragmenty tekstu, a później odczytywać dalsze.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 219 / 325
Kryptografia klasyczna Szyfry kaskadowe
Szyfry kaskadowe: wieloetapowe naprzemienne powtarzanie prostychoperacji (S), np. podstawiania oraz permutacji (P) wyników pośrednich.
S
S
S
S S
S
S
S
PIN PP
S
... OUT
lawinowość – zmiana 1bIN pociąga zmianę ok.połowy bitów OUT
zupełność – każdy bitOUT powinien byćzłożoną funkcją każdegobitu IN
generalnie wymagaosobnego algorytmuszyfrującegoi deszyfrującego, ale →permutacja Feistela
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 220 / 325
Kryptografia klasyczna Szyfry kaskadowe
H. Feistel w 1973 r. zaproponował symetryczną operację do wykorzystaniaw szyfrach kaskadowych
L[i+1]
L[i] R[i]
K[i+1]XOR f
L[i+1]
L[i] R[i]
K[i+1]XOR f
R[i+1] R[i+1]
szyfrowanie deszyfrowanie
Tutaj dane mają 128b, L i R mają po 64b, K[i] to 64b szyfrujący kluczczęściowy, zaś f to funkcja kryptograficzna realizująca operacje S-P(mieszanie-rozproszenie).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 221 / 325
Kryptografia klasyczna Szyfry kaskadowe
Permutacja Feistela
Li+1 = RiRi+1 = Li ⊕ f(Ri,Ki+1)
Tworzenie szyfru E : K ×M → C, gdzie M = C = Σn, sprowadza się dostworzenia funkcji f : K × Σn/2 → Σn/2, Σ = {0, 1}.
K – przestrzeń kluczy (keys)M – przestrzeń komunikatów (messages)C – przestrzeń kryptogramów (cryptograms)Σ – alfabet
Z tego schematu korzysta algorytm Lucifer (IBM, początek lat ’70,Feistel, Notz, Smith) oraz DES (IBM, połowa lat ’70).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 222 / 325
Kryptografia klasyczna Szyfry symetryczne
Szyfry symetryczne: ten sam klucz K wykorzystywany jest do kodowaniai dekodowania. Siłą rzeczy klucz K musi być tajny.
tekst jawny
klucz K
klucz K
tekst jawny
szyfrogram
Wady:
klucz musi byćprawdziwie losowy
klucz musi być tajny
klucz musi być bezpiecznie dystrybuowany
klucz musi być tak długi jak kodowana wiadomość
Zalety:
prostota i szybkość
przy poprawnej implementacji praktycznie niemożliwe dorozkodowania
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 223 / 325
Kryptografia klasyczna Szyfry symetryczne
Przykład: XORPrzyjmijmy za K losowy ciąg bitów K = 0110101101Wiadomość do zaszyfrowania to M = 1100110011Szyfrogram C tworzymy wg wzoru C =M ⊕K
M 1 1 0 0 1 1 0 0 1 1K 0 1 1 0 1 0 1 1 0 1
C =M ⊕K 1 0 1 0 0 1 1 1 1 0
Zauważmy, żeC ⊕K = (M ⊕K)⊕K =M ⊕ (K ⊕K) =M ⊕ 0 =Mwięc rozkodowanie polega na powtórzeniu kodowania na szyfrogramie.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 224 / 325
Kryptografia klasyczna Szyfry symetryczne
One-time pad: stosowanie operacji XOR z kluczem jednorazowym. Dokażdego szyfrowania używany jest inny klucz
klucz musi być jak najdoskonalej losowy, co przełoży się na jaknajbardziej losowy szyfrogram
klucz musi być co najmniej tak długi jak wiadomość, więc nadaje siędo szyfrowania niezbyt długich wiadomości
klucz musi być tajny (generowanie, dystrybucja, przechowywanie)
żadna informacja o treści nie może być wydedukowana z postaciszyfrogramu, bez względu na moce obliczeniowe
Metoda ta jest stosowana do kodowania stosunkowo krótkich ale bardzoważnych informacji np. tajnych rozkazów (kody odpalenia broni itp.).Stosowanie w tych przypadkach jakichkolwiek szyfrów możliwych dorozłamania (nawet teoretycznie) jest zbyt ryzykowne.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 225 / 325
Kryptografia klasyczna Szyfry symetryczne
Schemat ataku w przypadku zbyt krótkiego klucza:
Jeśli klucz jest krótszy (n bitowy) niż wiadomość (k bitowa, k > n),szyfrowanie odbywa się modulo n,
cj = aj ⊕ kj mod n
Zauważmy, że można pozbyć się klucza znając (zgadując) okres n
cj ⊕ cj+n = aj ⊕ aj+n
Następnie zakłada się, że pewne aj reprezentują ciąg spacjii sprawdza, czy aj+n dają sensowny tekst
Po zidentyfikowaniu bloków spacji i fragmentów tekstu jawnego,prowadzi się podobną analizę na brzegach rozkodowanego obszaru ażdo skutku.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 226 / 325
Kryptografia klasyczna Szyfry asymetryczne
Szyfry asymetryczne: wykorzystywane są dwa klucze, jeden tajny, dokodowania i jeden publiczny do dekodowania.
klucz prywatny Alicji klucz publiczny Alicji
BOLEKALICJA
tekst jawny
szyfrogram szyfrogram
tekst jawny
Zalety:
nie ma koniecznościdystrybucji tajnegoklucza
klucz publicznyudostępnia się jakosygnaturkę emaili,poprzez stronę wwwetc.
kod publiczny pozwala na uwierzytelnienie osoby posługującej sięsparowanym z nim kluczem tajnym przez osoby nie mające z niąstałego kontaktu
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 227 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Omówienie wybranych algorytmów szyfrujących
Dodatkowa literatura:
M. Kutyłowski, W.-B. Strothmann,Kryptografia. Teoria i praktyka zabezpieczania systemówkomputerowychwyd. 2 rozszerzone, Read Me, Warszawa 1999
A.G. Konheim,Computer Security and CryptographyJohn Wiley & Sons, New Jersey 2007
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 228 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
DES – Data Encryption StandardDEA – Data Encryption Algorithm
rozwinięcie Lucifera
algorytm symetryczny
jawny – jego siła miała leżeć nie w tajności, ale w konstrukcjiodpornej na kryptoanalizę
potrafi być bardzo szybki jeśli jest uruchomiony na dedykowanymsprzęcie, zaś tysiące razy wolniejszy przy implementacji softwarowej
szyfruje bloki 64b (8 znaków ASCII)
używa klucza 64b (przy czym 8 bitów to bity parzystości) – długośćklucza jest problemem jak na dzisiejsze standardy
mimo braku ścisłego dowodu potwierdzającego moc DES’a, praktykawykazała, że jest on dość odporny. Próby jego ulepszenia nie dałyspektakularnych rezultatów
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 229 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Schemat działania algorytmu:
z 64b klucza usuwa się 8 bitów kontrolnych; z pozostałych 56b tworzysię 16 podkluczy Ki o długości 48b każdy
permutacja początkowa
16 rund szyfrowania na blokach po 64b
permutacja końcowa
Sposób tworzenia podkluczy jest jawny. W atakach na DES zależnośćmiędzy bitami podkluczy nie jest stosowana.Permutacje na początku i końcu utrudniają implementację programową,bo sprzętowo jest to po prostu krzyżowanie połączeń, natomiastsoftwarowo operacja jest powolna i złożona.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 230 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Schemat generowania kluczy DES.0. Ustalenie klucza głównego. Klucz (hasło) K ma 64b.1. Permutacja i zmiana długości. Zamiana klucza K (64b) na ciąg 56bK ′ zgodnie z tabelą permutacji (czytaną rzędami od lewej do prawej):
57 49 41 33 25 17 0901 58 50 42 34 26 1810 02 59 51 43 35 2719 11 03 60 52 44 3663 55 47 39 31 23 1507 62 54 46 38 30 2214 06 61 53 45 37 2921 13 05 28 20 12 04
2. Podział na lewą i prawą stronę. Ciąg 56b jest dzielony na dwie częścipo 28b każda: K ′ = C0 +D0, gdzie + to konkatenacja.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 231 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
3. Tworzenie fragmentów pośrednich. Tworzone jest 16 części Cn i 16części Dn wg formuły rekurencyjnej
Cn =<<k Cn−1 Dn =<<k Dn−1
gdzie n = 1, ..., 16, <<k oznacza lewe przesunięcie bitowe (pierwszy bitprzechodzi na koniec) wykonane k razy, zgodnie ze schematem:
Iteracja (n) Liczba lewych przesunięć (k)1,2 12-8 29 110-15 216 1
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 232 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
4. Tworzenie 16 podkluczy rundy. Tworzone jest 16 kluczy Kn poprzezkonkatenację
Kn = Cn +Dn
i permutację z obcięciem do 48b
14 17 11 24 01 0503 28 15 06 21 1023 19 12 04 26 0816 07 27 20 13 0241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 233 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Schemat pojedynczej rundy szyfrującej DES.1. Przygotowanie danych wejściowych. (i+ 1)-a runda DES bierze jakowejście wynik i-tej rundy. Dzieli go na dwa kawałki po 32b (Li +Ri)2. Permutacja Feistela. Dokonywana jest permutacja Feistela:
Li+1 = RiRi+1 = Li ⊕ f(Ri,Ki+1)
gdzie Ki+1 jest kluczem używanym w tej właśnie rundzie, zaś funkcja fjest sercem całego algorytmu.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 234 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
2a. Funkcja f algorytmu DES.
początkowa permutacja z rozszerzeniem
XOR z kluczem rundy
S-boxy
końcowa permutacja
2b. Permutacja z rozszerzeniem. Permutacja 32b części Ri irozszerzenie jej do 48b wg schematu
1 5 6 7 8 9 10 11 12 13 14 15 162 3 4
1 5 6 7 8 9 10 11 12 13 14 15 162 3 4 32
...
...
48... ... ...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 235 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
2c. XOR i S-boxy. Schemat działania funkcji f algorytmu DES
f ( R[i], K[i+1] )
permutacja
K[i+1]
XOR
S1 S2 S3 S4 S5 S6 S7 S8 S−boksy
8 bloków po 6b
permutacjaz rozszerzeniem
48b 48b
32bR[i]
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 236 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
2d. Permutacja końcowa. Po konkatenacji wyjść z S-boxów 1–8 ciąg 32bjest permutowany zgodnie z tabelą
16 07 20 2129 12 28 1701 15 23 2605 18 31 1002 08 24 1432 27 03 0919 13 30 0622 11 04 25
tworząc ostatecznie 32b f(Ri,Ki+1).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 237 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
3. Zakończenie. Przejście do nowej rundy szyfrującej. Jeśli zakończonazostała runda 16 wykonywane są operacje końcowe: zamiana części lewej(32b) z prawą (32b) miejscami
L16 +R16 → R16 + L16
oraz końcowa permutacja 64b ciągu wg schematu
40 08 48 16 56 24 64 3239 07 47 15 55 23 63 3138 06 46 14 54 22 62 3037 05 45 13 53 21 61 2936 04 44 12 52 20 60 2835 03 43 11 51 19 59 2734 02 42 10 50 18 58 2633 01 41 09 49 17 57 25
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 238 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Deszyfrowanie DES. Operacja wykonywana przez S-boxy jestniejednoznaczna, więc nie można jej odwrócić. Także wykonanie całegoschematu od końca nie jest możliwe. Ale można odwrócić ogólne wzory
Li+1 = RiRi+1 = Li ⊕ f(Ri,Ki+1)
⇓Ri−1 = LiLi−1 = Ri ⊕ f(Ri−1,Ki) = Ri ⊕ f(Li,Ki)
i wykorzystać ten sam hardware do deszyfrowania. Jest to istotapermutacji Feistela.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 239 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Słabości DES.1. Klucze słabe. Zaraz po ogłoszeniu DES, w 1973 r., zaobserwowano, żeniektóre hasła szyfrujące prowadzą do powstania stałych (niewrażliwych na<<) części Ci i Di, co skutkuje 16 rundami szyfrowania z tym samymkluczem rundy. W takich przypadkach algorytm upraszcza się do 16potęgi operacji wykonywanej podczas pojedynczej rundy.
Dla słabego klucza, po odjęciu bitów parzystości i przeprowadzeniupoczątkowej permutacji, otrzymuje się ciągi albo typu (0)28, albo (1)28.Takimi kluczami są:
KLUCZ K (hex) C D--------------------------------------01 01 01 01 01 01 01 01 0 01F 1F 1F 1F 1F 1F 1F 1F 0 1E0 E0 E0 E0 E0 E0 E0 E0 1 0FE FE FE FE FE FE FE FE 1 1
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 240 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
2. Klucze półsłabe. Z niektórych kluczy K generowane są tylko dwaróżne podklucze rundy.
KLUCZ K (hex) C D--------------------------------------01 FE 01 FE 01 FE 01 FE 01 01FE 01 FE 01 FE 01 FE 01 10 101F E0 1F E0 1F E0 1F E0 01 10E0 1F E0 1F E0 1F E0 1F 10 0101 E0 01 E0 01 E0 01 E0 01 0E0 01 E0 01 E0 01 E0 01 10 01F FE 1F FE 1F FE 1F FE 01 1FE 1F FE 1F FE 1F FE 1F 10 101 1F 01 1F 01 1F 01 1F 0 011F 01 1F 01 1F 01 1F 01 0 10E0 FE E0 FE E0 FE E0 FE 1 01FE E0 FE E0 FE E0 FE E0 1 10
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 241 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
3. Problem niepełnych bloków danych. DES nie wskazuje sposobuszyfrowania bloków danych mniejszych niż pełne 64b. Istnieją różnealgorytmy uzupełniające niepełne bloki:
uzupełnienie zerami,
uzupełnienie fragmentami kluczy rundy,
i inne.
Zbyt prosty algorytm daje szansę na odkodowanie tej ostatniej części,poznanie kluczy i odkodowanie reszty wiadomości.4. Problem powtarzających się fragmentów wiadomości. DES polegana znajomości klucza szyfrującego przez obie strony komunikacji. Dlategoklucz ten nie jest zmieniany zbyt często. Te same ciągi znaków sąszyfrowane tak samo. Problem stanowią często używane w wiadomościachzwroty, takie jak „Szanowna Pani”, „pozdrawiam”, „From:”, „To:”, daty itak dalej. Używa się w tych przypadkach maskowania początkowej częściwiadomości, XOR-ując ją z pewnym ustalonym ciągiem.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 242 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
5. Rozłamanie sprzętowe DES. Algorytm jest szybki na dedykowanymsprzęcie, natomiast wolny w implementacji programistycznej. To samodotyczy dekodowania. Rozłamanie szyfru jest możliwe poprzezdekodowania siłowe po całej przestrzeni kluczy.
Już w 1993 r. M. Wiener zademonstrował układ scalony zdolny dosprawdzenia 50 mln. kluczy na sekundę. Urządzenie wyposażone w 5760takich układów potrafi sprawdzić całą przestrzeń 56b kluczy szyfrującychDES w ok. 35 godzin. Koszt takiej operacji oszacowano na 100 tyś. $
Oznacza to, że gdyby na maszynę wydać 1 mln $ i zamontować w niej57600 układów DES, czas rozłamania szyfru wyniósłby ok. 3,5 godziny.
Był to koniec ery DES’a.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 243 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Rozszerzenia DES.
DESX – użycie trzech kluczy zamiast jednego skutecznie utrudniabrutalne przeszukiwanie przestrzeni kluczy w poszukiwaniuwłaściwego:
C = K1 ⊕DES(K;M ⊕K2)
gdzie C to kryptogram, M – wiadomość (64b). Kryptoanalizaróżnicowa pozwala na osłabienie tego algorytmu i wymaga ok. 2120
prób dopasowań kluczy, aby go rozłamaćtripple DES – potrójne użycie DES z dwoma różnymi kluczami wgschematu(1) tekst jawny szyfrowany jest DES’em z kluczem K1(2) wynik (1) jest deszyfrowany DES’em z kluczem K2(3) wynik (2) jest szyfrowany DES’em z kluczem K1
Odkodowanie 3DES wymaga wykonania operacji odwrotnych(deszyfrowanie K1, szyfrowania K2 i powtórne deszyfrowanie K1)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 244 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Analiza bezpieczeństwa S-boxów.Nie ma reguły na utworzenie S-boxa, ale przyjmuje się, że musi onposiadać pewne cechy (część już podawałem wcześniej):
nie może reprezentować funkcji liniowej ani afinicznej
zmiana 1b wejścia musi skutkować zmianą co najmniej 2b wyjścia
dla dwóch wejść o różnych środkowych bitach (3. i 4.) wyniki musząsię różnić o przynajmniej 2b
dla dwóch wejść o różnych bitach 1. i 2., ale takich samych 5. i 6.,wyjścia muszą być różne
dla dowolnej niezerowej 6b różnicy między dwoma wejściami nie możeistniej więcej niż 32 pary wejść o takiej różnicy, dla których wyjściabyłyby takie same
dobór postaci S-boxów minimalizuje dysproporcję między zerami ijedynkami wyjścia przy stałym jednym bicie wejścia
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 245 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Kryptoanaliza różnicowa
wykonujemy algorytm szyfrujący (lub jego część) przynajmniejdwukrotnie na znanych tekstach jawnych, korzystająć z tego samegoklucza
badamy szyfrogramy
korelujemy różnice w szyfrogramach z różnicami w tekstach jawnych
korelujemy zmiany z kluczem (lub jego częścią)
Jest to jedna metod rozłamania kluczy na etapie użycia S-boxów w DES.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 246 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Do S-boxa trafia 6b ciąg wiadomości XOR-owany z 6b częścią kluczarundy. Te części klucza mogą się powtarzać w różnych rundach.Przypuśćmy, że kodujemy różne wiadomości tym samym kluczem i tymsamym S-boxem:
Sn(X1 ⊕K) = X ′1 Sn(X2 ⊕K) = X ′2
Oba wyjścia można dodać:
X ′1 ⊕X ′2 = Sn(X1 ⊕K)⊕ Sn(X2 ⊕K)
i potraktować S-box jako funkcję
Sn : ∆X → ∆X ′
∆X = X1 ⊕X2 = (X1 ⊕K)⊕ (X2 ⊕K) ∆X ′ = X ′1 ⊕X ′2
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 247 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Można zdefiniować wielkość
D(∆X,∆X ′) = {(z1, z2) : ∆X = z1 ⊕ z2, ∆X ′ = Sn(z1)⊕ Sn(z2)}
Każda para (z1, z2) generuje potencjalnie poprawny klucz, ponieważ{∆X ′ = Sn(z1)⊕ Sn(z2)∆X ′ = Sn(X1 ⊕K)⊕ Sn(X2 ⊕K)
z czego wynika
z1 = X1 ⊕K ⇒ K = z1 ⊕X1
takich par może być więcej niż jedna
dla pełnego DES trzeba analizę przeprowadzić przy 8 S-boxach i 16rundach, uwzględniając operacje dodatkowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 248 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Pary (z1, z2) można wyznaczyć zakładając konkretne wartości ∆X i ∆X ′.Na przykład, liczba takich par (moc zbioru D) wynosi dla ∆X = 1
∆X ′ 0 1 2 3 4 5 6 7 8 9 A B C D E F
|D| 0 0 0 6 0 2 4 4 0 10 12 4 10 6 2 4
suma dowolnego takiego rzędu to 64, średnia 4
rozkład nie jest jednorodny
przeprowadza się analizę statystyczną, zakładając prawdziwośćnajbardziej prawdopodobnych kluczy
[Więcej szczegółów i przykłady → Konheim, rozdziały 9.9 i 9.10 ]
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 249 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Algorytm IDEA – International Data Encryption AlgorithmEuropejska odpowiedź na obłożony restrykcjami patentowymi amerykańskiDES. Wolny dla celów niekomercyjnych (za zezwoleniem właścicielapatentu, szwajcarskiej firmy Ascom). Jest to:
algorytm symetryczny
wchodzi w skład pakietu PGP
wykorzystuje 128b klucze szyfrujące, co w praktyce uniemożliwiadopasowanie metodą brutalną
kaskada składa się z 8 rund dość skomplikowanych operacjiwykonywanych na blokach 64b (jest więc oszczędniejszy od DES)
deszyfrowanie polega (prawie) na wykonaniu operacji odwrotnych doszyfrowania, więc może być realizowana sprzętowo przez te sameukłady
uważany za bezpieczny, choć stary (niewielkie bloki i krótkie klucze)
istnieją jego nowocześniejsze wersje
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 250 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Schemat jednej rundy IDEA. Klucze Z1...Z6 są unikatowe dla tej rundy.
x
x
+ x
+ +
+
xx
+
Z2 Z3 Z4Z1
Z5
Z6
Y1 Y2 Y3 Y4
X1 X2 X3 X416b 16b 16b 16b
16b16b16b16b
mnożenie modulo 2 16 +1
dodawanie modulo 2 16
XOR
Pełny algorytm zawiera 8 takich rund oraz końcowe przekształcenie.Z pierwotnego 128b klucza generowanych jest więc 6 · 8 + 4 = 52podklucze po 16b każdy.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 251 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Operacje wykonywane w rundzie szyfrującej IDEA
XOR
dodawanie – dodawanie z resztą modulo 216 = 65536mnożenie – aby można było dekodować szyfrogram, mnożenie musibyć realizowane w sposób odwracalny. Dlatego przyjmuje siękonwencje:
I 216 + 1 = 65537 jest liczbą pierwszą; dlatego tworząc tablicę mnożeniadla liczb 1–65536 w każdym rzędzie każda liczba z tego zakresuwystąpi dokładnie jeden raz („tablica łacińska” jest odwracalna)
I mnożenie przez zero jest zawsze nieodwracalne, dlatego ciąg (0)16 jesttraktowany jak liczba 216 = 65536, pozostałe normalnie w zapisie bezznaku
I mnożenie wykonuje się modulo 216 + 1
Ten algorytm nie korzysta z permutacji i S-boxów.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 252 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Tworzenie podkluczy:
klucz główny K ma 128b
podklucze K(1)–K(8) tworzy się poprzez podzielenie K na 8równych fragmentów
obrót klucza o 25 bitów w lewo K ′ =<<25 K
kolejne 8 podkluczy tworzy się dzieląc K ′ na 8 równych fragmentów
itd., aż wygeneruje się K(52)
Regularność tej operacji teoretycznie powinna osłabiać algorytm, aledotychczas nie znaleziono skutecznego ataku.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 253 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Rozszerzenia algorytmu – założenia:
bloki szyfrujące min. 128b
klucze min. 512b
mocniejszy sposób generowania kluczy rundy
Trywialne rozszerzenie IDEA do 128b poprzez skalowanie nie jest możliweze względu na właściwości mnożenia mod 216 + 1; liczba 232 + 1 nie jestliczbą pierwszą!
Zobacz propozycję (publikacja z końca 2014):eprint.iacr.org/2014/704.pdf
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 254 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
AES – Advanced Encryption StandardW 1997 r. EFF (Electronic Frontier Foundation) dysponowała sprzętemzdolnym do zdekodowania każdej wiadomości zaszyfrowanej DES’emw czasie do 3 dni kosztem 250 000 dolarówW sierpniu 1999 National Institute of Standards and Technology (NIST)ogłosił konkurs na następcę DES’a. Spośród pięciu propozycji, któreprzeszły do finału:
MARS (IBM)
RC6 (RSA Security)
Rijndael (V.Rijmen, J.Daemen)
Serpent (R. Andersen, E. Biham, L. Knudsen)
Twofish (B. Schneier i inni)
wygrał algorytm Rijndael (wrzesień 2000). Od 2002 Rijndael stał sięstandardem rządowym USA o nazwie AES. Obecnie jest implementowanyw sprzęcie kodującym oraz używany przez główne protokoły komunikacyjne(np. SSL/TLS) i pakiety kryptograficzne (np. PGP).
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 255 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Główne cechy:
algorytm symetryczny, blokowy
klucze 128b/192b/256b
bloki danych 128b (dopuszcze się, ale nie implementuje, również 192bi 256b)wykonuje 10/12/14 rund szyfrujących typu S-P
I podstawienie wstępneI permutacja macierzowa (dwuwymiarowa: wiersze i kolumny)I funkcja złożenie z kluczem rundy
Specyfikacja techniczna:csrc.nist.gov/publications/fips/fips197/fips-197.pdf
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 256 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Bezpieczeństwo AES:pokazano skuteczność ataków „bocznym kanałem” (side-channelattack – są to ataki wykorzystujące słabość konkretnej implementacji)
I słabość systemu zarządzania kluczami przez aplikacjęI słabość protokołu TLS, pozwalająca na poznanie wektora inicjującegow szyfrowaniu (atak BEAST na TLS 1.0)
pokazano skuteczność ataków na AES przy zredukowanej liczbie rundszyfrujących (w 2011 udowodniono, że atak biclique jest 2–5 razyszybszy od metody brutalnej)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 257 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
pokazano, że kryptoanaliza różnicowa (differential fault analysis),w której bada się wpływ propagacji błędu na kształt szyfrogramu, jestskuteczna:eprint.iacr.org/2003/010.pdfeprint.iacr.org/2009/575.pdfeprint.iacr.org/2012/446.pdf
DFA zakłada możliwość wprowadzenia błędu (np. zmiany bitu w kluczurundy lub wprowadzeniu niepoprawnych danych wejściowych) przezatakującego. Nie jest więc metodą uniwersalną, możliwą do wykonaniazdalnie. Realizuje się ją np. jako atak na sprzęt szyfrujący (np. fizycznedziałanie na elektronikę urządzenia).Pokazuje natomiast jak cykliczność algorytmu wpływa na propagacjęwartości bitu wejścia w kolejnych rundach.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 258 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Algorytm RSA – Rivest, Shamir, Adleman (1978 r.)
algorytm asymetryczny
klucze szyfrujące dowolnej długości, ustalane przez użytkownika
oparty na rozkładzie dużych liczb na czynniki pierwsze (b. łatwaweryfikacja wyniku vs. b. trudny rozkład)
100–1000x wolniejszy niż DES
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 259 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Ciekawe właściwościDla K1, K2 – para kluczy, algorytm jest przemienny:
∀x : RSA−1K2(RSAK1(x)) = RSAK1(RSA−1K2(x)) = x
skąd wynika, że funkcje szyfrująca RSA i deszyfrująca RSA−1 są takiesame:
∀x : RSA−1K1(RSAK2(x)) = RSAK1(RSA−1K2(x)) = x
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 260 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Zastosowanie szyfrowania asymetrycznego IJeśli Alicja generuje parę kluczy:K1 – klucz prywatny (tajny) oraz K2 – klucz publiczny (jawny), to
Bolek wysyła tajną korespondencję AlicjiBolek szyfruje swój list M kluczem publicznym i wysyła
RSAK2(M)
Alicja rozkodowuje przesyłkę kluczem prywatnym
RSA−1K1(RSAK2(M)) =M
Bolek ma pewność, że tylko Alicja odczyta wiadomość, bo tylko ona jestw posiadaniu klucza deszyfrującego K1 (założenie). Wiadomość Bolkamoże być bezpiecznie ogłoszona w przestrzeni publicznej.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 261 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Zastosowanie szyfrowania asymetrycznego IIJeśli Alicja generuje parę kluczy:K1 – klucz prywatny (tajny) oraz K2 – klucz publiczny (jawny), to
Alicja uwierzytelnia się jako autorka listuAlicja szyfruje swój list M kluczem prywatnym i publikuje
RSAK1(M)
każdy może użyć klucza publicznego
RSA−1K2(RSAK1(M)) =M′
Jeśli otrzymane M ′ ma sens, a nie jest chaotycznym ciągiem bitów,wiadomość można uznać za wiarygodną (M ′ =M).
W ten sposób odbiorcy mogą mieć pewność, że nadawcą wiadomości jestAlicja, jedyna posiadaczka (założenie) klucza K1.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 262 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Teoria algorytmu RSA.
Liczby względnie pierwszeLiczby względnie pierwsze nie mają wspólnych dzielników oprócz 1.
Funkcja ϕ EuleraNiech ϕ(n) będzie liczbą liczb naturalnych mniejszych od n, które sąwzględnie pierwsze z n. UWAGI:
Jeśli p jest liczbą pierwszą, to
ϕ(p) = p− 1
Jeśli p, q są różnymi liczbami pierwszymi, to
ϕ(pq) = (p− 1)(q − 1)
[bo liczby mające wspólne z pq dzielniki większe od 1 top, 2p, . . . , p(q − 1), q, 2q, . . . , q(p− 1), liczb mniejszych od pq jestpq − 1, więc (pq − 1)− (p− 1)− (q − 1) = (p− 1)(q − 1)]
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 263 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Twierdzenie EuleraNiech x i n będą liczbami względnie pierwszymi oraz x < n. Wtedy
xϕ(n) = 1 mod n
Inaczej: liczba xϕ(n) − 1 jest podzielna przez n.
Małe twierdzenie FermataW szczególności jeśli n jest liczbą pierwszą, to
xn−1 = 1 mod n
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 264 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Dowód twierdzenia EuleraNiech x, n będą liczbami naturalnymi względnie pierwszymi, x < n.Niech P = (a1, a2, . . . , aϕ(n)) będzie zbiorem liczb względnie pierwszych zn, mniejszych od n (x ∈ P ).Utwórzmy nowy zbiórP ′ = xP = (xa1 mod n, xa2 mod n, . . . , xaϕ(n) mod n).Zauważmy, że1 każde xai mod n jest względnie pierwsze z n2 każde xai mod n ∈ P3 xai = xaj ⇔ ai = aj , czyli P ′ jest zbiorem różnoelementowym
Z powyższego wynika, że P ′ jest permutacją zbioru P . W takim razie
a1a2 . . . aϕ(n) = (xa1)(xa2) . . . (xaϕ(n)) mod n
a1a2 . . . aϕ(n) = xϕ(n)a1a2 . . . aϕ(n) mod n
1 = xϕ(n) mod n
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 265 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Algorytm szyfrowania RSAwybieramy p, q – dwie duże liczby pierwsze
losujemy e tak, żeby e i (p− 1)(q − 1) były względnie pierwsze(można do tego celu użyć algorytmu Euklidesa)
znajdujemy algorytmem Euklidesa d takie, że
ed = 1 mod (p− 1)(q − 1)
obliczamy n = pq i wymazujemy całą informację o p i q
tworzymy klucz publiczny [e, n] i klucz tajny [d, n]
Szyfrowanie (M < n):
C = RSA[e,n](M) =Me mod n
Deszyfrowanie:
RSA−1[d,n](C) = Cd mod n
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 266 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
W takim schemacie
RSA−1[d,n](RSA[e,n](M)) =M
Dowód:
RSA−1[d,n](RSA[e,n](M)) = RSA−1[d,n](M
e mod n) =
(M e mod n)d mod n =M ed mod n
Przypomnienie:
ed = 1 mod (p− 1)(q − 1) = 1 + k(p− 1)(q − 1) = 1 + kϕ(pq)
więc, ponieważ n = pq, oraz korzystając z tw. Eulera,
M1+kϕ(n) mod n =M(Mϕ(n))k mod n =M(1 mod n)k mod n =
M1k mod n =M mod n =M
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 267 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Algorytm RSA oparty jest na znajomości rozkładu pewnej ogromnejliczby n na czynniki pierwsze.
Liczba n jest tak budowana, żeby była iloczynem dwóch bardzodużych liczb pierwszych. Dlatego odkrywanie coraz większych liczbpierwszych jest przedmiotem konkursów z dużymi nagrodamipieniężnymi.
Znając p i q można łatwo odtworzyć podstawę algorytmu poprzezmnożenie n = pq. Natomiast mając tylko n, dokonanie faktoryzacjinie jest łatwe.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 268 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Możliwe ataki na RSA
czysty RSA nie zawiera elementów losowych – jest algorytmemdeterministycznym, dlatego wykorzystuje się w praktyce funkcjezamieniające tekst jawny M na liczbę m < n, która dopiero jestszyfrowana (operacja „padding”)
czysty RSA jest więc podatny na ataki z wybranym tekstem jawnympoprzez szyfrowanie publicznym kluczem dobranych tekstów isprawdzania ich z szyfrogramem (odwrotna metoda siłowa)
przy krótkich wykładnikach e (np. 3b) i krótkich M < n1/e
stosunkowo łatwo jest obliczyć pierwiastek e-tego stopnia zkryptogramu dekodując tekst
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 269 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
jeśli ta sama wiadomość zostanie w udany sposób rozkodowana zapomocą tego samego e ale różnych n (co najmniej e różnychużytkowników posiada różne zestawy kluczy z tym samymwykładnikiem e), to algorytm można rozłamać stosując tzw. chińskietwierdzenie o resztach
ponieważ RSA jest algorytmem multiplikatywnym,
M e1Me2 = (M1M2)
e mod n
można wykonać atak z podstawionym tekstem zaszyfrowanym.Atakujący chce poznać treść szyfrogramu C =M e mod n. Mnoży goprzez Re i „prosi” posiadacza klucza prywatnego o zdekodowanieszyfrogramu (MR)e wchodząc w posiadanie tekstu jawnego MR.Znając R mnoży MR przez R−1 odtwarzając M .
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 270 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Atak Bellcore (Bellcore Labs, 1996)
atak typu kryptoanalizy różnicowej, z rodziny differential fault analysis
wymaga dostępu do sprzętu dokonującego szyfrowania (karty Smart,konsole do gier...)
celuje w RSA-CRT, implementację RSA wykorzystującą chińskietwierdzenie o resztach
CRT – Chinese Reminder TheoremJeśli n1, . . . , nk ∈ N są parami względnie pierwsze, zaś a1, . . . , ak ∈ Z, toistnieje a ∈ Z takie, że
a = a1 mod n1a = a2 mod n2. . .
a = ak mod nk
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 271 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Chińskie twierdzenie o resztach można wyrazić jako zależność pomiędzy
układem równań modulo pewien zbiór liczb parami względniepierwszych
a równaniem modulo iloczyn tych liczb
ponieważ układ równań a = a1 mod n1a = a2 mod n2. . .a = ak mod nk
spełnia dokładnie jedna liczba a z przedziału
1 ¬ a ¬ n1n2 . . . nk
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 272 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Historycznie, pierwsze rozwiązanie podał Sun Tzu (Sun Zi) ok. 100 r.Przyjął on za liczby względnie pierwsze
n1 = 3, n2 = 5, n3 = 7 (n1 · n2 · n3 = 105)
i poszukiwał takiej liczby, która dzielona przez ni dawałaby reszty
a1 = 2, a2 = 3, a3 = 2
Znalazł rozwiązanie a = 23
23/3 = 7 · 3 + 223/5 = 4 · 5 + 323/7 = 3 · 7 + 2
oraz rozwiązanie ogólne a = 23 + k · 105.Chińczycy wykorzystywali tę wiedzę do szybkiego sprawdzania stanuliczebności wojsk, zarządzając zbiórki w dwu-, trzy-, pięcioszeregu i licząctylko niepełne szeregi.Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 273 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
RSA-CRT. Ze względów praktycznych stosuje się w implementacjachRSA sztuczkę, polegającą na tym, że obliczenia (mod n), przy n = pq,zamienia się na obliczenia (mod p) i (mod q). Tak więc, jeśli
C =M e mod n
to również
Cp =M ep mod p
Cq =M eq mod q
C = [((Cq − Cp) ·K) mod q] · p+ Cp
[Patrz np. → www.di-mgt.com.au/crt rsa.html]
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 274 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Załóżmy, że atakujący ma dostęp do sprzętu i może wpływać na algorytm,zamieniając nieznany wykładnik eq na znany e′q. Dostanie wtedy
Cp =M ep mod p
C ′q =Me′q mod q
C ′ = [((C ′q − Cp) ·K) mod q] · p+ Cp
Licząc C − C ′ redukuje się wyrazy z Cp
C − C ′ = [((Cq − C ′q) ·K) mod q] · p
zaś wynik jest proporcjonalny do liczby p. Wystarczy teraz obliczyćnajwiększy wspólny dzielnik C − C ′ i n = pq,
NWD(C − C ′, n) = p
natomiast q wyznacza się dzieląc n/p. To pozwala na odtworzenie kluczyszyfrujących RSA.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 275 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Rozłamanie klucza RSA 2010 r.
pokonano 768b klucz RSA metodą siłową
wykorzystana moc obliczeniowa klastra w przeliczeniu odpowiadałaprocesorowi AMD Opteron 2,2 GHz pracującego na pełnej mocy przez1500 lat
wynik zajął 5TB przestrzeni dyskowej
cały projekt zajął 2 lata, ale czas łamania był znacznie krótszy
lektura: eprint.iacr.org/2010/006.pdf
Od tego momentu za obowiązujący standard uznano klucz o długości1024b
Lektura obowiązkowa:www.dobreprogramy.pl/Za-kilka-lat-czeka-nas-kryptokalipsa-
Matematycy-i-hakerzy-wierza-w-mozliwosc-zlamania-algorytmu-RSA,News,45588.html
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 276 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Pozyskanie klucza RSA 2013 r.Artykuł z 18.XII.2013
Daniel Genkin, Adi Shamir, Eran Tromer,RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysiswww.tau.ac.il/~tromer/papers/acoustic-20131218.pdf
przedstawia metodę wydobycia 4096b klucza RSA za pomocą podsłuchuultradźwięków wydawanych przez procesor podczas wykonywaniaokreślonych operacji. Atak można przeprowadzić za pomocą telefonukomórkowego z odległości ok. 30 cm od laptopa. Wykorzystanie lepszychmikrofonów pozwala na operację z odległości ok. 1 m.Nie jest to atak algebraiczny (kryptograficzny) ale sprzętowy.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 277 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Problem faktoryzacji dużych liczb jest klasycznym przykładem problemutrudnego z punktu widzenia klasycznej algorytmiki. Czas wykonanianajszybszego algorytmu General Number Field Sieve (GNFS, ogólne sitociała liczbowego) wynosi
O(exp[1, 9(ln N)1/3(ln ln N)2/3]
)Jest też klasycznym przykładem efektywnego zastosowania komputerakwantowego. Algorytm Shorra faktoryzacji (1994 r.) ma czas wykonaniarzędu
O((ln N)1/3
)czyli z zależności wykładniczej dostajemy zależność wielomianową od ln N .
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 278 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
MD5 Message-Digest Algorithm 5
funkcja skrótu (hashująca), tworzy z dowolnego ciągu znaków 128bhash
autor: Ron Rivest – współtwórca RSA (1991 r.)
rozłamali: X. Wang, D. Feng, X. Lai, H. Yu (2004 r.) pokazującistnienie kolizji w algorytmie, czyli istnienie różnych wiadomości M1i M2 dla których
MD5(M1) = MD5(M2)
Patrz: eprint.iacr.org/2004/199
służy do generowania sum kontrolnych i podpisów cyfrowych np.plików publikowanych w internecie
obecnie nie jest polecany do krytycznych zastosowań (następcą jestm.in. algorytm SHA)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 279 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Schemat algorytmu MD5:
Dodanie do M bitu o wartości 1
Uzupełnienie bitami 0 tak, aby ciąg składał się z 512b bloków iostatniego 448b
Uzupełnienie ostatniego bloku o 64b licznik znakujący rozmiarwiadomości
Stan początkowy to0123456789ABCDEFFEDCBA9876543210
Każdy blok jest poddawany funkcji MD5, któraI działa w 4 cyklach po 16 kroków każdy (łącznie 64 operacje)I dzieli wejście na 16 32b kawałków (aby pokryć 512b blok)I wykonuje kilka operacji: mieszanie, dodanie stałej, funkcja, mieszanie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 280 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
na rysunku obok pokazane są tylko4 z 16 bloków 32b (A, B,...)
F to mieszanie 32b fragmentów wgpewnego schematu
Mi to dodanie stałej zależnej odnumeru kroku; są to pierwsze 32bz mantysy liczby | sin(i)|Ki to funkcja
Ki=1,16(x, y, z) = (x · y) + (x · y)Ki=17,32(x, y, z) = (x · z) + (y · z)Ki=33,48(x, y, z) = x⊕ y ⊕ zKi=49,64(x, y, z) = y ⊕ (x+ z)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 281 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
SHA – Secure Hash Algorithm
rodzina funkcji hashujących oparta na b.podobnej zasadzie co MD5rozwijana od 1993 r. przez amerykańską NSA
I SHA-0 – 1993 r. – całkowicie wycofanyI SHA-1 – 1995 r. – wady wykryte w 2005 r., od 2010 r. oficjalnie niejest zalecany (Microsoft Windows nie będzie przyjmował certyfikatówsygnowanych SHA-1 od roku 2017)
I SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512) – 2001 r. – oficjalnienie opublikowano ataków na SHA-2, ale ze względu na jegoalgorytmiczne podobieństwo do SHA-1 jest on niepewny
I SHA-3 – 2012 r. – wyłoniony na drodze konkursu ogłoszonego przezNSA
SHA-1 jest używany przez protokoły szyfrujące takie jak: TLS, SSL,PGP, SSH, S/MIME, IPSec,...
SHA-2 jest obecnie (2013 r.) wspierany przez większośćnajpopularniejszych protokołów, w tym TLS, SSL, PGP, SSH(OpenSSH od wersji 5.9),...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 282 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Protokoły wymiany kluczy szyfrujących
aby można było ustanowić szyfrowaną komunikację, klucze szyfrującemuszą być znane obu stronom
wymiana kluczy bez zabezpieczenia (jawnie) mija się z celem i jestryzykownawyróżnia się dwie metody postępowania:
I wymiana kluczyI uzgadnianie kluczy
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 283 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Wymiana kluczy odbywa się poprzez zaufany serwer. Serwer taki:
jest znany i użytkownicy mają do niego zaufanie,
jest odpowiedzialny za generowanie kluczy,
jest odpowiedzialny za dystrybucję kluczy.
Uzgadnianie kluczy odbywa się poprzez wymianę informacji bezpośredniomiędzy stronami komunikacji. Komunikacja taka:
odbywa się po publicznych łączach,
jest z definicji niezabezpieczona,
powinna zapewniać aktualność klucza,
powinna zapewniać uwierzytelnienie stron,
powinna dawać możliwość potwierdzenia klucza,
powinna dawać możliwość uwierzytelnienia klucza.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 284 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Protokół Diffiego – Hellmana (1976 r.)Protokół pozwala na bezpieczną negocjację tajnego klucza poprzezniezabezpieczoną sieć publiczną.
Założenia:p – liczba pierwsza,g ∈ {1, 2, . . . , p− 1} taka, że gp−1 = 1 mod p.Obie te liczby, p i g, są publicznie znane, w szczególności Alicji i Bolkowi.
Schemat: Alicja i Bolek wybierają losowo po jednej liczbie ze zbioru{1, 2, . . . , p− 1}, powiedzmy a (liczba Alicji) i b (liczba Bolka).1 Alicja wysyła Bolkowi liczbę ga mod p2 Bolek wysyła Alicji liczbę gb mod p3 Alicja wylicza tajny klucz podnosząc liczbę Bolka do potęgi a
K = (gb)a mod p = gab mod p
4 Bolek wylicza tajny klucz podnosząc liczbę Alicji do potęgi b
K = (ga)b mod p = gab mod p
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 285 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
System uwierzytelniania Kerberos wersja V
opracowany w MIT → web.mit.edu/∼kerberos/działa na zasadzie podziału sieci na domeny
reguły dla użytkowników są ograniczone do właściwych domen
serwer uwierzytelniający (AS, authentication server)
serwer weryfikujący dostęp (TGS, ticket granting server)
pomiędzy serwerem AS a użytkownikiem komunikacja jest szyfrowanakluczem generowanym z hasła użytkownika poprzez zastosowaniefunkcji skrótu
hasło i klucz są przechowywane w zabezpieczonej bazie danych
szyfrowanie metodami asymetrycznymi np. DES
dwustopniowe uwierzytelnianie: warunkowe (wstępne) i klient-serwer
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 286 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Schemat działania Kerberos’a
Źródło: www.kerberos.org
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 287 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Protokół uwierzytelniania warunkowego odpowiada za logowanie sięużytkownika do sieci z pewnego hosta. W uproszczeniu:
host weryfikuje login użytkownika na serwerze hasełserwer haseł generuje
I świeży klucz sesji kodowany prywatnym kluczem użytkownikaI „bilet” dla serwera TGS, kodowany kluczem do komunikacji AS–TGS
i przekazuje je do hosta
host żąda hasła użytkownika, z którego generuje jego klucz prywatny
kluczem tym dekoduje klucz sesji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 288 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Druga wiadomość („bilet”) nie może być zdekodowana przez host i służydo jego uwierzytelniania podczas komunikacji z serwerem TGS. Zawieraona również klucz sesji użytkownika, informacje o jego czasie ważności,login...Serwer TGS pośredniczy w uwierzytelnianiu hosta (klienta) na innychserwerach w sieci.
Szczegóły znaleźć można m.in. w:
J.Pieprzyk, T. Hardjono, J. Seberry, Teoria bezpieczeństwa systemówkomputerowych, Helion 2005
Zobacz też:www.kerberos.orgwww.roguelynn.com/words/explain-like-im-5-kerberos/
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 289 / 325
Informatyka kwantowa
Informatyka kwantowa
Literatura dodatkowa:
M.Hirvensalo, Algorytmy kwantowe, WSiP, Warszawa 2004
C.P.Williams, Explorations in Quantum Computing, Springer 2011
http://theory.caltech.edu/~preskill/ph229/#lecture
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 290 / 325
Informatyka kwantowa Mechanika kwantowa
Świat klasyczny
równania ruchu określają dokładnie całą przyszłość obiektu
obiekt opisywany przez jego cechy (położenie, pęd, masa...)
obiekt jest cząstką lub falą
ścisłe następstwo zdarzeń, przyczynowość
deterministyczny
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 291 / 325
Informatyka kwantowa Mechanika kwantowa
Świat kwantowyrozwiązania równań ruchu zawierają różne możliwe przyszłości obiektuobiekt opisywany przez stan (funkcję falową)obiekt jest zarówno cząstką jak i faląnie jest jasne, jaki jest status przyczynowości i następstwa zdarzeń wmechanice kwantowejprobabilistyczny
NotacjaZapis stanu: |ψ〉 (ket Diraca)Stan sprzężony: 〈φ| (bra Diraca) działa jak operator
〈φ|∗ = |φ〉
Iloczyn skalarny (wewnętrzny) w przestrzeni Hilberta
〈φ(x)|ψ(x)〉 =∫dx φ∗(x)ψ(x)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 292 / 325
Informatyka kwantowa Mechanika kwantowa
PodstawyKażda wielkość fizyczna (obserwabla) jest reprezentowana przezoperator hermitowski, np.
px = −i~∂
∂x
x = x·
Operator hermitowski (samosprzężony)
〈ψ|pφ〉 = 〈p†ψ|φ〉
p† = p
Możliwe wartości pomiaru wielkości a reprezentowanej przez operatora w stanie |ψ〉 są dane przez równanie własne a|ψ〉 = a|ψ〉. Jeśli ψnie jest funkcją własną operatora a, to ta wielkość fizyczna nie jestdobrze określona w stanie ψ.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 293 / 325
Informatyka kwantowa Mechanika kwantowa
PodstawyStan ma często postać superpozycji stanów, tj. kombinacji liniowej
|ψ〉 = c1|ψ1〉+ c2|ψ2〉+ . . .
przy czym, aby stan był unormowany 〈ψ|ψ〉 =∣∣|ψ〉∣∣2 = 1, musi
zachodzić|c1|2 + |c2|2 + · · · = 1
Współczynniki |ci|2 = c∗i ci reprezentują prawdopodobieństwo(przypadek dyskretny) lub gęstość prawdopodobieństwa (przypadekciągły), że układ w stanie |ψ〉 po pomiarze znajdzie się w stanie |ψi〉
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 294 / 325
Informatyka kwantowa Mechanika kwantowa
Zasada nieoznaczoności HeisenbergaIstnieją wielkości fizyczne, których nie da się określić jednocześnie zdowolną dokładnością, m.in. położenie i pęd:
(∆x)(∆p) 12
~
Następstwa zasady nieoznaczoności:
jeśli dokładnie zmierzę pęd cząstki, może ona być dosłownie wszędzie
jeśli dokładnie zlokalizuję cząstkę, nie mam pojęcia o jej pędzie, czylinie potrafię powiedzieć gdzie ona będzie w chwilę później
cząstka może być w dwóch (i więcej) miejscach jednocześnie
cząstka może się „poruszać” we wszystkie strony na raz
...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 295 / 325
Informatyka kwantowa Mechanika kwantowa
Załóżmy, że mam wektor wskazujący kierunek ~v.Pytanie: ile jest wektora ~v z punktu widzenia kierunku osi ~x?Odpowiedź: iloczyn skalarny daje rzut wektora ~v na kierunek ~x (oraz naodwrót: rzut ~x na kierunek ~v). Tak więc (~v · ~x)~x jest składową ~v wkierunku ~x.Iloczyn skalarny w 3D przestrzeniu euklidesowej
~v · ~x = v1x1 + v2x2 + v3x3
lub w przypadku ciągłych stopni swobody
~v(α) · ~x(α) =∫dα v(α)x(α)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 296 / 325
Informatyka kwantowa Mechanika kwantowa
RzutowanieW mechanice kwantowej taką operację opisują operatory rzutowe.Operator |ψ〉〈ψ| działa jak operator rzutujący na stan ψ
(|ψ〉〈ψ|) |φ〉 = 〈ψ|φ〉|ψ〉
gdzie 〈ψ|φ〉 określa „długość rzutu” (albo stopień przekrycia stanów ψ iφ), zaś |ψ〉 „kierunek”.
Reprezentacja macierzowaKażdy operator można rozłożyć w dowolnej ortonormalnej baziewektorowej i zapisać w postaci (skończonej lub nieskończonej) macierzy.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 297 / 325
Informatyka kwantowa Pomiar
Funkcja falowa opisuje wszystkie możliwe do zmierzenia wartościparametrów danego obiektu.Czym jest pomiar?
fizyczne oddziaływanie aparatury pomiarowej z badanym obiektem
zaburzenie układu przez aparaturę pomiarową
istnieją obecnie tzw. pomiary słabe (niezaburzające, non-demolitionmeasurements)
Co się dzieje w momencie pomiaru?Następuje „kolaps funkcji falowej”, który matematycznie oznaczawyrzutowanie funkcji falowej na podprzestrzeń odpowiednich stanów.Pomiar nieodwracalnie zmienia funkcję falową. Informacja sprzed pomiarujest tracona.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 298 / 325
Informatyka kwantowa Pomiar
Wszelkie próby przejęcia, podsłuchania, modyfikowania transmisji opartejna przesyle informacji kanałem kwantowym natychmiast niszczy strukturęprzesyłanych danych. Podsłuchane bity traktuje się jak uszkodzone iponawia transmisję. Charakter transmisji kwantowej wymaga opróczpodsłuchanych bitów również pewnej dodatkowej informacji do pełnegoodczytania danych. Te dodatkowe informacje dla uszkodzonych bitów niesą przesyłane. Tak więc w teorii, kanał kwantowy jest w pełni bezpieczny,gdyż niemożliwy jest niezauważony podsłuch.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 299 / 325
Informatyka kwantowa Informatyka kwantowa
Informatyka kwantowaBity 0 i 1 reprezentowane będą przez dwa ortonormalne stany
stany : |0〉, |1〉unormowane : 〈0|0〉 = 〈1|1〉 = 1ortogonalne : 〈0|1〉 = 0
Wygodna jest reprezentacja macierzowa w postaci
|0〉 =(10
), |1〉 =
(01
)
Qubit (kubit) czyli bit kwantowy to obiekt o strukturze
|q〉 = c0|0〉+ c1|1〉, |c0|2 + |c1|2 = 1
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 300 / 325
Informatyka kwantowa Informatyka kwantowa
Qubit
może być zarówno 0 jak i 1 z definicji
operacje na qubitach mogą działać jednocześnie na obu wartościachlogicznych
możliwe interferencje tj. wygaszenia i wzmocnienia któregoś zestanów 0 albo 1
qubit można obrócić o pewien kąt (dopisać do niego fazę)
eiα|q〉
i fizycznie nic to nie zmieni, ponieważ
|eiαc0|2 = |c0|2
|eiαc1|2 = |c1|2
względna faza między dwoma qubitami gra rolę
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 301 / 325
Informatyka kwantowa Informatyka kwantowa
Bramki unarne (jednoargumentowe) ogólnie definiuje się przez ichdziałanie na oba stany 0 i 1
U :
{|0〉 → a|0〉+ b|1〉|1〉 → c|0〉+ d|1〉
Wykorzystując reprezentację macierzową prowadzi to do
U
(10
)= a
(10
)+ b
(01
)=
(a ?b ?
)(10
)
U
(01
)= c
(10
)+ d
(01
)=
(? c? d
)(01
)⇒ U =
(a cb d
)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 302 / 325
Informatyka kwantowa Informatyka kwantowa
NegacjaBramka negacji zdefiniowana jest przez macierz
NOT =
(0 11 0
)
Łatwo sprawdzić, że
NOT|0〉 =(0 11 0
)(10
)=
(01
)= |1〉
NOT|1〉 =(0 11 0
)(01
)=
(10
)= |0〉
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 303 / 325
Informatyka kwantowa Informatyka kwantowa
Pierwiastek kwadratowy z negacjiBramka „pierwiastek z negacji” zdefiniowana jest przez macierz
√NOT =
12
(1 + i 1− i1− i 1 + i
)
Łatwo sprawdzić, że (√NOT
)2= NOT
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 304 / 325
Informatyka kwantowa Informatyka kwantowa
Bramki kwantowe reprezentują ewolucję stanu opisywaną równaniemSchrodingera. Z tego powodu są to zawsze bramki odwracalne i unitarne.Bramkami odwracalnymi w informatyce klasycznej są, m.in.,
NOT (0→ 1, 1→ 0)CNOT (00→ 00, 01→ 01, 10→ 11, 11→ 10)SWAP (00→ 00, 01→ 10, 10→ 01, 11→ 11)uniwersalna bramka FREDKIN (CSWAP)
uniwersalna bramka TOFFOLI (CCNOT)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 305 / 325
Informatyka kwantowa Informatyka kwantowa
Bramka CNOT czyliControlled-NOT
Bramka FREDKIN czyliControlled-SWAP
Bramka SWAP = 3x CNOT
Bramka TOFFOLI czyliControlled-Controlled-NOT
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 306 / 325
Informatyka kwantowa Informatyka kwantowa
Dlatego najprościej stworzyć wersje kwantowe właśnie tych bramekodwracalnych. Można sprawdzić, że poniższe macierze są unitarne idziałają na stany 0 i 1 tak jak odpowiednie bramki:
CNOT =
1 0 0 00 1 0 00 0 0 10 0 1 0
SWAP =
1 0 0 00 0 1 00 1 0 00 0 0 1
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 307 / 325
Informatyka kwantowa Informatyka kwantowa
Bazę dla bramek odwracalnych stanowi trójka: NOT, CNOT, TOFFOLI.Klasyczna baza NOT, AND, OR jest odtwarzana w następujący sposób:
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 308 / 325
Informatyka kwantowa Informatyka kwantowa
Bramka Hadamarda (Walsha)
Bramka Hadamarda zdefiniowana jest przez macierz
H =1√2
(1 11 −1
)
i służy do zamiany bazy |0〉, |1〉 na H|0〉, H|1〉.
Z definicji:
H|0〉 = 1√2(|0〉+ |1〉)
H|1〉 = 1√2(|0〉 − |1〉)
Łatwo sprawdzić, że H|0〉 i H|1〉 tworzą ortonormalną bazę, o ile |0〉 i |1〉taką tworzyły. Można też pokazać, że
H2 = 1
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 309 / 325
Informatyka kwantowa Informatyka kwantowa
Bramka zmiany fazyBramka zmiany fazy jest zdefiniowana przez macierz
Fα =
(1 00 eiα
)
i służy do zmiany fazy (obrotu) stanu.
Szczególny przypadek dla α = π to
F =
(1 00 −1
)
WtedyF |0〉 = |0〉 F |1〉 = −|1〉
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 310 / 325
Informatyka kwantowa Informatyka kwantowa
Dowiedzieliśmy się do tej pory, że
bity zastępujemy qubitami, które są kombinacjami liniowymi zera ijedynki z pewnymi prawdopodobieństwami
ze względu na strukturę równań mechaniki kwantowej, logikękwantową budujemy na bramkach odwracalnych
bramki są reprezentowane przez macierze unitarne U † = U−1
zamiast 0 i 1 możemy stosować dowolną inną ortonormalną bazę, np.bazę Hadamarda
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 311 / 325
Informatyka kwantowa Informatyka kwantowa
Stany separowalne i splątane. Rozważmy układ dwóch qubitów
{|00〉, |01〉, |10〉, |11〉}
z 4D przestrzeni Hilberta H4 = H2 ⊗H2, gdzie |ab〉 = |a〉|b〉.Stan z ∈ H4 jest separowalny jeśli z = x⊗ y, gdzie x, y ∈ H2.Stan splątany nie da się przedstawić w postaci powyższego iloczynu.
Przykład stanu separowalnego12(|00〉+ |01〉+ |10〉+ |11〉) = 1√
2(|0〉+ |1〉) 1√
2(|0〉+ |1〉)
Przykład stanu splątanego (PARA EPR)
1√2(|00〉+ |11〉)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 312 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Teleportacja kwantowaSłów kilka o parach EPR. . .
Einstein, Podolsky, Rosen
fizyczna realizacja par EPR
nadprzewodnictwo
teleportacja
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 313 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Klasyczny kanał informacji – pozwala na przesłanie bitów między Alicjąa Bobem.Kwantowy kanał informacji – pozwala na przesłanie qubitów międzyAlicją a Bobem.Czy Alicja, mając tylko kanał klasyczny, może przesłać Bobowi nieznanyjej stan kwantowy a|0〉+ b|1〉?jeśli wykona pomiar, otrzyma 0 lub 1 i zniszczy swój qubit
nie jest możliwe wykonanie kopii nieznanego stanu
nie jest możliwe powtarzanie pomiarów, aby oszacować liczby a i b,ponieważ każdy pomiar zmienia qubit
a nawet odtwarzając prawdopodobieństwa |a|2 i |b|2, nie pozwala tona jednoznaczne wyznaczenie a i b
Odpowiedź brzmi: nie! Kanał kwantowy jest konieczny, a można goutworzyć korzystając z pary EPR.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 314 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Założenia:
Alicja i Bob są w posiadaniu pary EPR opisanej jako całość stanemsplątanym 1√
2(|00〉+ |11〉)
przyjmijmy, że pierwszy (lewy) qubit jest w posiadaniu Alicji, a drugi(prawy) w posiadaniu Boba – cząstki są fizycznie rozseparowane
dodatkowo Alicja posiada qubit a|0〉+ b|1〉, który chce przesłać(teleportować) do Boba
Stan całego układu jest więc postaci
(a|0〉+ b|1〉) 1√2(|00〉+ |11〉) =
=1√2(a|000〉+ a|011〉+ b|100〉+ b|111〉)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 315 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Protokół teleportacji kwantowej:1 Alicja wykonuje CNOT na kontrolowanych przez siebie qubitach (lewyi środkowy), wykorzystując lewy jako kontrolny. Stan na tym etapie
1√2(a|000〉+ a|011〉+ b|110〉+ b|101〉)
2 Alicja wykonuje transformację Hadamarda na lewym qubicie
12[a(|0〉+ |1〉)|00〉+a(|0〉+ |1〉)|11〉+b(|0〉−|1〉)|10〉+b(|0〉−|1〉)|01〉]
co można przepisać, wydzielając qubit Boba (prawy), w postaci
12[|00〉(a|0〉+b|1〉)+|01〉(a|1〉+b|0〉)+|10〉(a|0〉−b|1〉)+|11〉(a|1〉−b|0〉)]
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 316 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
3 Alicja przeprowadza pomiar swoich dwóch qubitów ustalając stan najeden konkretny
Pomiar Alicji Stan układu po obserwacji
00 |00〉(a|0〉+ b|1〉)01 |01〉(a|1〉+ b|0〉)10 |10〉(a|0〉 − b|1〉)11 |11〉(a|1〉 − b|0〉)
Każdy przypadek oznacza, że u Boba cząstka jest w innym stanie4 Alicja przekazuje informacje o swoim pomiarze Bobowi za pomocąkanału klasycznego, np. mailem lub telefonicznie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 317 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
5 Bob wykonuje jedną z czterech operacji na swojej cząstce
Pomiar Alicji Stan układu po obserwacji Co robi Bob
00 |00〉(a|0〉+ b|1〉) nic01 |01〉(a|1〉+ b|0〉) NOT10 |10〉(a|0〉 − b|1〉) F11 |11〉(a|1〉 − b|0〉) F NOT
6 W każdym przypadku stan qubitu Boba ustala się na a|0〉+ b|1〉
Teleportacja polega tu na przeniesieniu stanu qubitu, nie fizycznegoprzeniesienia cząstek opisywanych przez qubit. Stan jest przenoszony, anie kopiowany, gdyż po stronie Alicji ulega on zniszczeniu.
Teleportacja ma pełnić rolę magistrali danych, kabli i łączy wkomputerze kwantowym.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 318 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Komputer kwantowyCPU – zestaw cząstek w stanie splątanym, układ par EPR (istniejąjuż takie układy)
łącza – teleportacja; jest realizowana na odległości ponad 140km
pamięć – realizowana przez układy cząstek spułapkowanych iutrzymujących pewien stan kwantowy; obecny rekord (XI.2013)wynosi 39 minut w temp. pokojowej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 319 / 325
Informatyka kwantowa QKD
QKD – Quantum Key Distribution
Największą słabością klasycznych protokołów szyfrujących jestpierwsza faza nawiązania połączenia, gdy strony muszą się wymienićkluczami.
Kwantowe kanały komunikacji mają niewielką przepustowość i sądrogie w eksploatacji.
Podstawowym zastosowaniem sieci kwantowych jest zaufane ibezpieczne przesłanie klucza do klasycznego algorytmu szyfrującegomiędzy stronami.
Protokoły kwantowej dystrybucji klucza nazywane są również (mniejpoprawnie) „kryptografią kwantową”.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 320 / 325
Informatyka kwantowa QKD
Propozycja protokołu QKD
Alicja i Bob wymienili między sobą wiele cząstek z par EPR
wykonują pomiary na swoich cząstkach, (psudo)losowo wybierając zakażdym razem, czy wykonują pomiar np. wzdłuż osi x czy z
publicznie wymieniają się informacją, wzdłuż których osi wykonywalipomiary
na średnio w połowie przypadków mierzyli inne osie (co niczego im niemówi), ale w połowie mierzyli wzdłuż tych samych osi – wtedy ichwyniki są antyskorelowane
mogą w ten sposób ustanowić losowy ciąg bitów, który posłuży zaklucz
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 321 / 325
Informatyka kwantowa QKD
Uwagi:
można pokazać (patrz notatki J.Preskilla, rozdz.4), że nawet jeśliEwie udało się splątać część qubitów Alicji i Boba ze swoimikubitami, protokół pozostaje bezpieczny – zapobiega to kwantowejwersji ataku typu man-in-the-middle
Alicja i Bob mogą sprawdzić brak splątania z obcymi qubitamipoświęcając część ze swoich qubitów i wykonując na nich odpowiednipomiar sprawdzający, czy są w stanie, w jakim zostały przygotowane
w praktyce Alicja może sama przygotować pary EPR, wykonać swojepomiary, zamknąć je w sejfie i przesłać pozostałe cząstki do Boba;gdy zajdzie potrzeba Bob wykonuje swoje pomiary i ustanawia klucz zAlicją (schemat znany jako BB84)
słabość BB84 polega na konieczności zabezpieczenia sejfu Alicji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 322 / 325
Informatyka kwantowa QKD
Schemat time-reversed EPR
Alicja i Bob przygotowują swoje próbki qubitów w jednym z czterechstanów (losowo)
| ↑z〉, | ↓z〉, | ↑x〉, | ↓x〉
zestawy qubitów są wysyłane do Celiny, która przeprowadza operacjętzw. rzutowania na bazę Bella, tworząc pary EPR z par qubitówotrzymanych od Alicji i Boba
Celina ogłasza wyniki swojej operacji
w połowie przypadków, gdy Alicja i Bob tworzyli stan wzdłuż tej samejosi, mają korelację i mogą użyć tego qubitu do dołączenia do klucza
Alicja i Bob mogą też zweryfikować część swoich qubitów abysprawdzić, czy Celina nie przeprowadziła ataku man-in-the-middle
w tym schemacie nie ma konieczności tworzenia i rozdzielania parEPR, kosztem dopuszczenia trzeciej strony do procesu tworzeniaklucza; Celina może prowadzić centralną usługę pośredniczącą wgenerowaniu kluczy
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 323 / 325
Informatyka kwantowa Podsumowanie
Podsumowanieczynnik ludzki, socjotechnikaochrona fizyczna, polityka bezpieczeństwa, procedurysieć internet, intranet, model OSI, protokół TCP/IProdzaje i metody ataków sieciowych, metody ochronyhasła i inne metody uwierzytelnianiatopologie sieci, zapory ognioweserwery proxypodstawowe programy narzędziowesieci bezprzewodowe, protokoły szyfrowania, metody atakówpołączenia VPNochrona systemu operacyjnego na przykładzie systemu unix/linuxochrona aplikacji, w tym baz danychmalware – rodzaje i sposób działaniapodstawy kryptografii klasycznej, szyfry symetryczne i asymetryczne,funkcje jednokierunkowe, wymiana kluczy, metody łamaniapodstawy informatyki kwantowej, bramki kwantowe, teleportacja,algorytm BB84
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 324 / 325
Informatyka kwantowa Podsumowanie
DZIEKUJĘ ZA UWAGĘ
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 325 / 325