Professional Documents
Culture Documents
Rodzaje zagrożeń
Trochę terminologii:
hacker i cracker – potrzebne czy niepotrzebne rozróżnienie?
script kiddies
socjotechnik
phreaking – manipulowanie liniami telefonicznymi, korzystanie
z numerów technicznych, darmowe dzwonienie lub obciążanie cudzego
rachunku; 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 kart
kredytowych
I SMiShing – phishing za pomocą SMS
I pharming – wyrafinowany phishing z przekierowaniem właściwego
adresu np. banku na adres spreparowanej strony; wymaga
wcześniejszego przejęcia serwera DNS lub włamania się do systemu
operacyjnego 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: <Barclays@update.com>
X-Original-To: mgozdz@kft.umcs.lublin.pl
Delivered-To: mgozdz@kft.umcs.lublin.pl
X-Virus-Scanned: Debian amavisd-new at kft
(...)
Received: from update.com (unknown [99.35.207.46])
by kft.umcs.lublin.pl (Postfix) with ESMTP id A341C15FB8
for <mgozdz@kft.umcs.lublin.pl>; Thu, 8 Aug 2013 10:23:42
From: Barclays@kft.umcs.lublin.pl, Bank@kft.umcs.lublin.pl,
Online@kft.umcs.lublin.pl
To: mgozdz@kft.umcs.lublin.pl
Subject: Dear Barclays Online Customer,
Date: 08 Aug 2013 04:23:33 -0500
Message-ID: <20130808042331.6FC824A1C44B4106
@from.header.has.no.domain>
Ochrona fizyczna
i polityka bezpieczeństwa informacji
www.securitum.pl/baza-wiedzy/publikacje/
przykladowa-polityka-bezpieczenstwa
Ochrona sieci
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/
Warstwa 7.: aplikacji jest bramą, przez którą procesy aplikacji dostają się
do usług sieciowych. Ta warstwa prezentuje usługi, które są realizowane
przez aplikacje (przesyłanie plików, dostęp do baz danych, poczta
elektroniczna itp.)
nfsec.pl/hakin9/osi.pdf
Przekierowanie pakietów, preparowanie nagłówków do ataków DoS
Protokół TCP/IP
Wyróż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)
A wysyła do B SYN
B zwraca SYN+ACK
A odpowiada ACK
transmisja nawiązana
Słabości:
pakiet SYN z nieprawidłowym adresem zwrotnym: serwer szuka, komu
odesłać pakiety zwrotne, blokując swoje działanie
pakiet SYN ze sfałszowanym adresem zwrotnym: serwer odsyła
pakiety zwrotne na adres ofiary
po otrzymaniu SYN serwer musi utrzymać półotwarte połączenie
przez 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 go
po otrzymaniu SYN+ACK lub RST, co daje informacje
o otwartym/zamkniętym porcie
Ataki sieciowe
Przy 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 ich
autoryzacji
prawa dostępu i reguły ruchu sieciowego na stykach wszystkich
podsieci i stref
uprawnienia administratora serwera, domeny, systemu, na każdym
komputerze
rodzaje przechowywanych danych na każdym komputerze
źródło
przepływ informacji
I zewnętrzne (zdalne)
I wewnętrzne (lokalne)
I przerwanie
I pośrednie
I przechwycenie
I bezpośrednie I modyfikacja
I podrobienie
zamiar
dostęp do informacji
I zamierzony
I niezamierzony (przypadkowy)
I odczytanie
I skopiowanie
skutek I modyfikacja
I udany (aktywny, pasywny) I usunięcie
I nieudany
11
00
00
11
00
11
00
11
Agresor
Użytkownik Serwer
11
00
00
11
00
11
00
11
Użytkownik Serwer
Agresor
11
00
00
11
00
11
00
11
Użytkownik Serwer
Agresor
11
00
00
11
00
11
00
11
Użytkownik Serwer
Agresor
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
Nadzorcy
Zombie
Ofiara
Zapobieganie
Ataki DoS można próbować odfiltrować na firewallu. Oczywiście trzeba
zachować równowagę między ochroną (zamknięciem) systemu
a funkcjonalnością. Ataki rozproszone DoS na serwery dużych firm (np.
microsoft.com z 2003 r.) są trudne do opanowania, a przestój
w dostarczaniu usług liczy się w milionach dolarów na godzinę.
Trudności:
DoS jest niemal nie do odróżnienia od nasilonego ale uprawnionego
ruchu 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
Opublikowane 1.XI.2017
www.sciencedaily.com/releases/2017/11/171101130507.htm
Badacze 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ło
2,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).
Nagłówek IPv4
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
0.0.0.0/8
10.0.0.0/8
127.0.0.0/8
172.16.0.0/12
192.168.0.0/16
224.0.0.0/3
ARP spoofing
ARP (Address Resolution Protocol) – tłumaczenie adresów IP na
adresy MAC
tablice ARP przechowywane lokalnie przez urządzenia sieciowe, w tym
urządzenia węzłowe, odnawiane cyklicznie (mogą być statyczne albo
dynamiczne)
modyfikacja tablic na skutek pojawienia się w sieci sfabrykowanych
pakietów pozwala czasowo na błędne przypisywanie adresu IP do
sprzętu
działa w sieci lokalnej
Do przeczytania!
Nieformalny poradnik dotyczący ARP spoofing (Bartosz Chodorowski):
chomzee.gct-game.net/ethutils/arpspoofing.pdf
RIP spoofing
RIP (Routing Information Protocol) – protokół informujący hosty o
routerach w sieci oraz wymiana informacji o uzgodnieniu trasy między
routerami
zatrucie tablic routingu pozwala na ataki analogiczne jak w przypadku
ARP spoofing tylko na poziomie kilku podsieci, a nie sieci lokalnej
DNS spoofing
oprócz zatruwania tablic DNS, można fałszować odpowiedzi DNS
skierowane do pytającego hosta
sfałszowany pakiet musi nadejść po zadaniu pytania, ale przed
prawdziwą odpowiedzią serwera
odpowiedzi DNS zawierają 16-bitowy identyfikator TID (Transaction
ID)
w najprostszej wersji wysyła się sfałszowane pakiety zawierające
wszystkie identyfikatory (65,5 tyś. pakietów)
uzyskuje się przekierowanie połączenia u ofiary na nieprawidłowy
adres IP
Inne ataki
e-mail spoofing – preparowanie wiadomości ze sfałszowanymi
nagłówkami
session hijacking – przejęcie danych sesji uwierzytelnionego
użytkownika i podszycie się pod niego za pomocą spreparowanych
pakietów
Łamanie haseł
Na styku sieci i systemu operacyjnego znaleźć można problem autoryzacji
użytkowników. Łamanie haseł dostępowych do sieci i kont shellowych jest
standardową procedurą wykonywaną na dwa sposoby:
Atak słownikowy: łamanie haseł w oparciu o słowniki
Atak siłowy: dopasowanie haseł poprzez generowanie wszystkich
możliwych ciągów znaków; korzysta się z gotowych tablic (rainbow
tables) hashów
Zapobieganie
Wykorzystanie kilkuetapowych systemów uwierzytelniania, haseł
tymczasowych zamiast statycznych, tokenów sprzętowych etc. Do funkcji
hashującej hasło dodaje się losowy ciąg znaków (salt, sól) co utrudnia
rozłamanie. Pakiet shadow wykorzystuje ten mechanizm. Mocne hasła.
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 w
czasie włamań do rządowych serwerów zaskoczyło go, że hasła w
ministerstwach i kancelariach trzyma się na pulpicie lub na
podatnych na atak dyskach sieciowych. No i... że są to pliki
jawne.
Topologie firewalli
Przy 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żdej
strefy oraz między nimi, jacy użytkownicy potrzebują dostępu do danej
strefy 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/
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 odfiltrowania
niechcianego ruchu sieciowego; on też jest odpowiedzialny za to, jak
i czy w ogóle podsieć jest widziana z zewnątrz
ewentualne serwery są za firewallem, który musi routować ruch
sieciowy do nich
system ochrony jest jednoetapowy: jeśli krytyczny element zostanie
przeję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?
Serwery proxy
Serwer proxy to inaczej serwer pośredniczący. Może mieć postać
wydzielonego systemu komputerowego lub aplikacji. Wyróżnia się m.in.:
http proxy
ftp proxy
oprogramowanie pośredniczące w przekazywaniu danych między
aplikacjami (np. superdemon inet/xinet)
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ń dla
sieci 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
111
000 INTERNET
000
111
000
111
000
111
INTERNET INTERNET
SERWER PROXY
INTERNET
SERWER
SERWER PROXY
SERWER
;; ANSWER SECTION:
www.google.pl. 125 IN A 173.194.113.63
www.google.pl. 125 IN A 173.194.113.55
www.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.10
ns2.google.com. 17757 IN A 216.239.34.10
$ dig www.google.com
;; ANSWER SECTION:
www.google.com. 177 IN A 173.194.70.106
www.google.com. 177 IN A 173.194.70.147
www.google.com. 177 IN A 173.194.70.99
www.google.com. 177 IN A 173.194.70.103
www.google.com. 177 IN A 173.194.70.104
www.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.10
ns2.google.com. 17437 IN A 216.239.34.10
ns3.google.com. 17437 IN A 216.239.36.10
ns4.google.com. 17437 IN A 216.239.38.10
lo no wireless extensions.
oraz iwlist
# iwlist
Usage: 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
;; 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.101
ns1.task.gda.pl. 75348 IN AAAA 2001:4070:1::101
ns1.wp.pl. 2438 IN A 212.77.102.200
ns2.wp.pl. 1713 IN A 153.19.102.182
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)
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 100 / 325
Sieci bezprzewodowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 101 / 325
Sieci bezprzewodowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 102 / 325
Sieci bezprzewodowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 103 / 325
Sieci bezprzewodowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 104 / 325
Sieci bezprzewodowe
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
C = {M + ICV (M )} ⊕ {RC4(K + IV )}
C – szyfrogram
M – wiadomość
+ – konkatenacja
ICV () – suma kontrolna
⊕ – XOR
K – tajny klucz
IV – wektor inicjacyjny
K + IV = KS – klucz szyfrujący dany komunikat
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 106 / 325
Sieci bezprzewodowe
Atak: FMS
Dla 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 przechwycenia
5–10 mln. pakietów.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 107 / 325
Sieci bezprzewodowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 108 / 325
Sieci bezprzewodowe
Atak: Deauthentication
Deauthentication attack – wpuszczenie do sieci bezprzewodowej
pakietów usuwających uwierzytelnienie użytkowników. Pozwala w kolejnym
kroku, 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/WPA2
Następcą (nakładką na) WEP jest WPA (Wifi Protected Access). Działa
na tym samym sprzęcie co WEP, wymagając jedynie aktualizacji
oprogramowania i firmware’u. WPA miał być rozwiązaniem pośrednim
między WEP a pełnym standardem 802.11i, który obecnie nazywa się
WPA2.
WPA-PSK (Pre-shared key ), inaczej Personal Mode – działa
w 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 jedynym
mechanizmem zabezpieczającym
to samo hasło jest używane do generowanie kluczy szyfrujących
transmisję
prymitywne uwierzytelnianie, brak możliwości ustalenia tożsamości
uż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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 112 / 325
Sieci bezprzewodowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 113 / 325
Sieci bezprzewodowe
Atak na WPA-PSK/WPA2-PSK
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 114 / 325
Sieci bezprzewodowe
Atak ten nie działa na WPA2. Można, póki co, złamać go tylko atakiem
sł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 KRACK
Autorzy: Mathy Vanhoef, Frank Piessens
papers.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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 116 / 325
Sieci bezprzewodowe
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 po
resecie 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
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ą dla
nich „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 VPN
z serwerem (hasło, certyfikat, tokeny sprzętowe, metody biometryczne
i inne)
kontrola nienaruszalności pakietów, aby zapobiec zakłóceniom
i 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ą bezpieczne
i 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 za
bezpieczeństwo odpowiada stosowanie szyfrowania i odpowiednich
protokołów.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 122 / 325
Sieci bezprzewodowe Sieci VPN
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 123 / 325
Sieci bezprzewodowe Sieci VPN
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 124 / 325
Ochrona systemu operacyjnego
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 125 / 325
Ochrona systemu operacyjnego
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 126 / 325
Ochrona systemu operacyjnego
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 127 / 325
Ochrona systemu operacyjnego
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 128 / 325
Ochrona systemu operacyjnego
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 129 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 130 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 132 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 133 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 134 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Ogólny schemat
umieszczenia filtra w
systemie. Decyzje o
routowaniu podejmowane są
kilkukrotnie.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 135 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 136 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 137 / 325
Ochrona systemu operacyjnego Firewall w linuksie
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óby
ponownego 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
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 filter
lub
iptables -A INPUT -i eth0 -s mój IP -j REJECT
lub
iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j REJECT
2. Zablokowanie całego ruchu sieciowego na poziomie firewalla
iptables -F
iptables -A INPUT -j REJECT
iptables -A OUTPUT -j REJECT
iptables -A FORWARD -j REJECT
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 142 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 143 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 144 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 145 / 325
Ochrona systemu operacyjnego Firewall w linuksie
Reguły firewalla testuje się za pomocą skanera portów, np. nmap. Skaner
portów:
próbuje sekwencyjnie nawiązywać połączenie z kolejnymi portami
hostu docelowego, rejestrując odpowiedzi
ślad skanowania znaleźć można w logach firewalla i jest uważany za
działanie wrogie lub bliskie takiemu, gdyż sonda taka jest zazwyczaj
rozpoznaniem do późniejszego ataku
odpowiedzi serwerów nasłuchujących na poszczególnych portach
często zawierają wersje oprogramowania, wersję systemu operacyjnego
oraz różne inne przydatne sygnatury
istnieją różne metody skanowania, różne skanery wykorzystują różne
typy 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
Connect Scan
nmap -sT -O -P0 127.0.0.1
Not shown: 1679 closed ports
PORT STATE SERVICE VERSION
22/tcp open tcpwrapped
No 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 149 / 325
Ochrona systemu operacyjnego Skaner portów
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 150 / 325
Ochrona systemu operacyjnego Skaner portów
IP Protocol Scan
nmap -sO -O -P0 127.0.0.1
Not shown: 250 closed protocols
PROTOCOL STATE SERVICE
1 open icmp
2 open|filtered igmp
6 open tcp
17 open udp
41 open|filtered ipv6
255 open|filtered unknown
Too many fingerprints match this host
to 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–wrappers
Kontrola dostępu na poziomie tcp–wrappers odbywa się poprzez definicje
z plików /etc/hosts.allow i /etc/hosts.deny.
Składnia:
usługa:hosty:polityka
Na przykład umieszczenie w pliku hosts.deny wpisu ALL:ALL spowoduje
odrzucanie jakichkolwiek prób połączenia się z naszym komputerem.
Wpis w /etc/hosts.allow typu:
finger : *.domena.net
finger : ALL : DENY
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 152 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Superdemony sieciowe
Kontrola dostępu na poziomie demona inetd (xinetd).
Superdemon (x)inetd nie jest konieczny do działania sieci, ale stanowi
kolejny etap kontroli dostępu do serwera. Jest to demon odpowiedzialny za
udostępnianie (po spełnieniu odpowiednich warunków) usług sieciowych
poprzez wywołanie żądanych demonów (serwerów) i unieczynnianie ich gdy
nie 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.config
PermitRootLogin no
Protocol 2
szyfrowanie i podpisywanie elektroniczne GPG, np. e-maili
migawki systemu, np. Tripwire
kontrola nad kontami i hasłami
tablica /etc/login.access
zgoda : użytkownicy : skąd
zgoda to + lub –
użytkowników definiuje lista loginów, grup lub ALL (user@host
akceptowalne)
skąd to numery konsol tty, hosty, domeny, ALL lub LOCAL
istnieje 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 155 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
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ą respektowane
w kolejności wystąpienia, ostatnie jest wykonywane
wspiera aliasy
User_Alias FULLTIMERS = millert, mikef, dowdy
Runas_Alias OP = root, operator
Host_Alias SPARC = bigtime, eclipse, moet, anchor :\
SGI = grolsch, dandelion, black
Cmnd_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:
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 158 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 159 / 325
Ochrona systemu operacyjnego Inne zabezpieczenia w linuksie
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 160 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 161 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 162 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 163 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 164 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 165 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 166 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
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. Wiele
dystrybucji 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 169 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 170 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 171 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 172 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 173 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
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
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 Access
Control (RBAC))
nałożenie restrykcji na środowisko chroot, uniemożliwiających
wyrwanie się z niego (nawet rootowi)
rozbudowane logowanie, ułatwiające audyt (możliwość zapisu adresu
IP osoby dla określonych zdarzeń)
losowość stosu TCP (numerów sekwencyjnych, portów źródłowych, IP
ID)
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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 177 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 178 / 325
Ochrona systemu operacyjnego Patche bezpieczeństwa na jądro linuksa
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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 181 / 325
Ochrona aplikacji
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 182 / 325
Ochrona aplikacji Metody stosowane w lokalnych exploitach
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 183 / 325
Ochrona aplikacji Metody stosowane w lokalnych exploitach
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 184 / 325
Ochrona aplikacji Metody stosowane w lokalnych exploitach
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 185 / 325
Ochrona aplikacji Metody stosowane w lokalnych exploitach
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
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 bazy
danych 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 191 / 325
Ochrona aplikacji Bazy danych
<?php
....
$userName = $_POST[’UserName’];
$password = $_POST[’Password’];
$queryString = "SELECT userId FROM users WHERE
username = ’$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 WHERE
username = ’$userName’ AND password = ’$password’ ";
Podając dane:
Password = "abcd"
UserName = "aaa’ or 1=1 #"
Zapytanie skierowane do silnika DB uzyska postać:
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 193 / 325
Ochrona aplikacji Inne aplikacje
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 194 / 325
Ochrona aplikacji Inne aplikacje
Serwer poczty
zdefiniowanie dostępu do poczty
I poprzez powłokę
I poprzez www
I poprzez imap
wybór obsługiwanych protokołów (szyfrowanie)
filtr antywirusowy
filtr antyspamowy
dodatkowe restrykcje
I tylko lokalni użytkownicy mogą korzystać z smtp
I blokowanie spamu nadawanego z naszego serwera
I ograniczenia związane z identyfikacją użytkowników, adresami
zwrotnymi, 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 196 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 198 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
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że
również wykorzystywać inne t.j. dokumenty office, .html, wygaszacze
ekranu itd.
wirusy mogą ukrywać się również w systemach plików (MBR, FAT) i
być przenoszone na nośnikach, również w kościach ROM sprzętu
(bios, firmware)
często działają destrukcyjnie
I konsumując zasoby komputera
I niszcząc zasoby komputera
I 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)
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 co
innego, 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 internetowe
I formularze, księgi gości...
I bazy danych
I serwery pocztowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 203 / 325
Ochrona aplikacji Złośliwe oprogramowanie (malicious software)
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 i
dział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ą i
modyfikują wywołania systemowe generowane przez aplikacje; często
operują 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 adresy
wywołań systemowych) przekierowując syscalls na swój własny kod lub
wykorzystują 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 jego
uż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”? Pliki
cookies, ustalanie położenia geograficznego przez strony internetowe,
śledzenie właścicieli urządzeń mobilnych, przechowywanie prywatnych
danych w chmurach i na publicznych serwerach obcych firm (Wielki Brat
Google, 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)
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ł matematyki
zajmujący się badaniem i tworzeniem algorytmów szyfrujących.
Klucz szyfrujący – element (metoda) pozwalający na zakodowanie
tekstu jawnego, tworząc szyfrogram.
Klucz deszyfrujący – element pozwalający na odczytanie
zaszyfrowanej wiadomości. Może to być: znajomość pewnych faktów,
ustalone wcześniej hasło (ciąg bitów), książka kodowa, figura
matematyczna, urządzenie...
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 210 / 325
Kryptografia klasyczna
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 211 / 325
Kryptografia klasyczna
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 212 / 325
Kryptografia klasyczna
14 04 13 01 02 15 11 08 03 10 06 12 05 09 00 07
00 15 07 04 14 02 13 01 10 06 12 11 09 05 03 08
04 01 14 08 13 06 02 11 15 12 09 07 03 10 05 00
15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13
14 04 13 01 02 15 11 08 03 10 06 12 05 09 00 07
00 15 07 04 14 02 13 01 10 06 12 11 09 05 03 08
04 01 14 08 13 06 02 11 15 12 09 07 03 10 05 00
15 12 08 02 04 09 01 07 05 11 03 14 10 00 06 13
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 istnienie
efektu lawinowego podczas szyfrowania S-boxem; zmiana jednego
bitu argumentu przekłada się na zmianę przynajmniej dwóch bitów
wyniku
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 żadnego
bitu wyniku c nie można przedstawić jako kombinacji liniowej bitów
argumentu a, cj 6= w0 + 6i=1 ai wi . Gdyby tak było, rozłamanie
P
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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 216 / 325
Kryptografia klasyczna Szyfry podstawieniowe
Szyfr Cezara
Szyfr korzystał z 26 literowego alfabetu
ABCDEFGHIJKLMNOPQRSTUVWXYZ
zamiana następowała wg reguły
aj → a(j+3) mod 26
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 217 / 325
Kryptografia klasyczna Szyfry podstawieniowe
System Playfair’a
Kluczem 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 L
A M D I W
N C Y B E
F G H K Q
R T U V X
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 218 / 325
Kryptografia klasyczna Szyfry podstawieniowe
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 220 / 325
Kryptografia klasyczna Szyfry kaskadowe
K[i+1] K[i+1]
XOR f XOR f
szyfrowanie deszyfrowanie
Tutaj dane mają 128b, L i R mają po 64b, K[i] to 64b szyfrujący klucz
częś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 = Ri
Ri+1 = Li ⊕ f (Ri , Ki+1 )
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 222 / 325
Kryptografia klasyczna Szyfry symetryczne
Wady:
klucz K
klucz musi być
tekst jawny szyfrogram prawdziwie losowy
tekst jawny
klucz musi być tajny
klucz K
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 223 / 325
Kryptografia klasyczna Szyfry symetryczne
Przykład: XOR
Przyjmijmy za K losowy ciąg bitów K = 0110101101
Wiadomość do zaszyfrowania to M = 1100110011
Szyfrogram C tworzymy wg wzoru C = M ⊕ K
M 1 1 0 0 1 1 0 0 1 1
K 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, że
C ⊕ K = (M ⊕ K) ⊕ K = M ⊕ (K ⊕ K) = M ⊕ 0 = M
wię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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 225 / 325
Kryptografia klasyczna Szyfry symetryczne
cj = aj ⊕ kj mod n
cj ⊕ cj+n = aj ⊕ aj+n
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 226 / 325
Kryptografia klasyczna Szyfry asymetryczne
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 227 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Dodatkowa literatura:
M. Kutyłowski, W.-B. Strothmann,
Kryptografia. Teoria i praktyka zabezpieczania systemów
komputerowych
wyd. 2 rozszerzone, Read Me, Warszawa 1999
A.G. Konheim,
Computer Security and Cryptography
John 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 229 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 230 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
57 49 41 33 25 17 09
01 58 50 42 34 26 18
10 02 59 51 43 35 27
19 11 03 60 52 44 36
63 55 47 39 31 23 15
07 62 54 46 38 30 22
14 06 61 53 45 37 29
21 13 05 28 20 12 04
2. Podział na lewą i prawą stronę. Ciąg 56b jest dzielony na dwie części
po 28b każda: K 0 = 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
gdzie n = 1, ..., 16, <<k oznacza lewe przesunięcie bitowe (pierwszy bit
przechodzi na koniec) wykonane k razy, zgodnie ze schematem:
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 232 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
14 17 11 24 01 05
03 28 15 06 21 10
23 19 12 04 26 08
16 07 27 20 13 02
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 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
Li+1 = Ri
Ri+1 = Li ⊕ f (Ri , Ki+1 )
gdzie Ki+1 jest kluczem używanym w tej właśnie rundzie, zaś funkcja f
jest 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 235 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
R[i] 32b
permutacja
z rozszerzeniem XOR
8 bloków po 6b
S1 S2 S3 S4 S5 S6 S7 S8 S−boksy
permutacja
f ( R[i], K[i+1] )
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 236 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
16 07 20 21
29 12 28 17
01 15 23 26
05 18 31 10
02 08 24 14
32 27 03 09
19 13 30 06
22 11 04 25
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 237 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
40 08 48 16 56 24 64 32
39 07 47 15 55 23 63 31
38 06 46 14 54 22 62 30
37 05 45 13 53 21 61 29
36 04 44 12 52 20 60 28
35 03 43 11 51 19 59 27
34 02 42 10 50 18 58 26
33 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
Li+1 = Ri
Ri+1 = Li ⊕ f (Ri , Ki+1 )
⇓
Ri−1 = Li
Li−1 = Ri ⊕ f (Ri−1 , Ki ) = Ri ⊕ f (Li , Ki )
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, że
niektó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 samym
kluczem rundy. W takich przypadkach algorytm upraszcza się do 16
potęgi operacji wykonywanej podczas pojedynczej rundy.
KLUCZ K (hex) C D
--------------------------------------
01 01 01 01 01 01 01 01 0 0
1F 1F 1F 1F 1F 1F 1F 1F 0 1
E0 E0 E0 E0 E0 E0 E0 E0 1 0
FE 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
KLUCZ K (hex) C D
--------------------------------------
01 FE 01 FE 01 FE 01 FE 01 01
FE 01 FE 01 FE 01 FE 01 10 10
1F E0 1F E0 1F E0 1F E0 01 10
E0 1F E0 1F E0 1F E0 1F 10 01
01 E0 01 E0 01 E0 01 E0 01 0
E0 01 E0 01 E0 01 E0 01 10 0
1F FE 1F FE 1F FE 1F FE 01 1
FE 1F FE 1F FE 1F FE 1F 10 1
01 1F 01 1F 01 1F 01 1F 0 01
1F 01 1F 01 1F 01 1F 01 0 10
E0 FE E0 FE E0 FE E0 FE 1 01
FE 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 242 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
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 utrudnia
brutalne przeszukiwanie przestrzeni kluczy w poszukiwaniu
właściwego:
C = K1 ⊕ DES(K; M ⊕ K2 )
gdzie C to kryptogram, M – wiadomość (64b). Kryptoanaliza
róż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 wg
schematu
(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
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ęść) przynajmniej
dwukrotnie na znanych tekstach jawnych, korzystająć z tego samego
klucza
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
Sn : ∆X → ∆X 0
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 247 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
z czego wynika
z1 = X 1 ⊕ K ⇒ K = z1 ⊕ X 1
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 248 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
∆X 0 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 249 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
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.
X1 X2 X3 X4
16b 16b 16b 16b
x mnożenie modulo 216 +1
Z1 x Z2 + Z3 + Z4 x
+ dodawanie modulo 2 16
XOR
Z5 x +
+ x Z6
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 251 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
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 8
równych fragmentów
obrót klucza o 25 bitów w lewo K 0 =<<25 K
kolejne 8 podkluczy tworzy się dzieląc K 0 na 8 równych fragmentów
itd., aż wygeneruje się K(52)
Regularność tej operacji teoretycznie powinna osłabiać algorytm, ale
dotychczas 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 254 / 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ż 192b
i 256b)
wykonuje 10/12/14 rund szyfrujących typu S-P
I podstawienie wstępne
I 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-channel
attack – są to ataki wykorzystujące słabość konkretnej implementacji)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 257 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 258 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
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ści
Dla K1 , K2 – para kluczy, algorytm jest przemienny:
∀x : RSA−1 −1
K2 (RSAK1 (x)) = RSAK1 (RSAK2 (x)) = x
∀x : RSA−1 −1
K1 (RSAK2 (x)) = RSAK1 (RSAK2 (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
RSAK2 (M )
RSA−1
K1 (RSAK2 (M )) = M
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 261 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
RSAK1 (M )
RSA−1
K2 (RSAK1 (M )) = M
0
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 262 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Funkcja ϕ Eulera
Niech ϕ(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
ϕ(pq) = (p − 1)(q − 1)
Twierdzenie Eulera
Niech x i n będą liczbami względnie pierwszymi oraz x < n. Wtedy
xϕ(n) = 1 mod n
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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 265 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
ed = 1 mod (p − 1)(q − 1)
C = RSA[e,n] (M ) = M e mod n
Deszyfrowanie:
RSA−1 d
[d,n] (C) = C 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 −1 e
[d,n] (RSA[e,n] (M )) = RSA[d,n] (M mod n) =
Przypomnienie:
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 267 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 268 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 269 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 270 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
a = a1 mod n1
a = 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
1 ¬ a ¬ n1 n2 . . . n k
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)
a1 = 2, a2 = 3, a3 = 2
Znalazł rozwiązanie a = 23
23/3 = 7 · 3 + 2
23/5 = 4 · 5 + 3
23/7 = 3 · 7 + 2
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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 274 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Cp = M ep mod p
0
Cq0 = M eq mod q
C 0 = [((Cq0 − Cp ) · K) mod q] · p + Cp
NWD(C − C 0 , n) = p
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 276 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 277 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 278 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 279 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 280 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 281 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 282 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 283 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 284 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Założenia:
p – liczba pierwsza,
g ∈ {1, 2, . . . , p − 1} taka, że g p−1 = 1 mod p.
Obie te liczby, p i g, są publicznie znane, w szczególności Alicji i Bolkowi.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 286 / 325
Kryptografia klasyczna Omówienie wybranych algorytmów szyfrujących
Ź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
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ży
do jego uwierzytelniania podczas komunikacji z serwerem TGS. Zawiera
ona również klucz sesji użytkownika, informacje o jego czasie ważności,
login...
Serwer TGS pośredniczy w uwierzytelnianiu hosta (klienta) na innych
serwerach w sieci.
Szczegóły znaleźć można m.in. w:
J.Pieprzyk, T. Hardjono, J. Seberry, Teoria bezpieczeństwa systemów
komputerowych, Helion 2005
Zobacz też:
www.kerberos.org
www.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 kwantowy
rozwiązania równań ruchu zawierają różne możliwe przyszłości obiektu
obiekt 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ń w
mechanice kwantowej
probabilistyczny
Notacja
Zapis stanu: |ψi (ket Diraca)
Stan sprzężony: hφ| (bra Diraca) działa jak operator
hφ|∗ = |φi
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 292 / 325
Informatyka kwantowa Mechanika kwantowa
Podstawy
Każda wielkość fizyczna (obserwabla) jest reprezentowana przez
operator hermitowski, np.
∂
p̂x = −i~
∂x
x̂ = x·
Operator hermitowski (samosprzężony)
p̂† = p̂
Możliwe wartości pomiaru wielkości a reprezentowanej przez operator
â w stanie |ψi są dane przez równanie własne â|ψi = a|ψi. Jeśli ψ
nie jest funkcją własną operatora â, to ta wielkość fizyczna nie jest
dobrze określona w stanie ψ.
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 293 / 325
Informatyka kwantowa Mechanika kwantowa
Podstawy
Stan ma często postać superpozycji stanów, tj. kombinacji liniowej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 294 / 325
Informatyka kwantowa Mechanika kwantowa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 295 / 325
Informatyka kwantowa Mechanika kwantowa
~v · ~x = v1 x1 + v2 x2 + v3 x3
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 296 / 325
Informatyka kwantowa Mechanika kwantowa
Rzutowanie
W mechanice kwantowej taką operację opisują operatory rzutowe.
Operator |ψihψ| działa jak operator rzutujący na stan ψ
Reprezentacja macierzowa
Każdy operator można rozłożyć w dowolnej ortonormalnej bazie
wektorowej 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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 298 / 325
Informatyka kwantowa Pomiar
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 299 / 325
Informatyka kwantowa Informatyka kwantowa
Informatyka kwantowa
Bity 0 i 1 reprezentowane będą przez dwa ortonormalne stany
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ściach
logicznych
możliwe interferencje tj. wygaszenia i wzmocnienia któregoś ze
stanów 0 albo 1
qubit można obrócić o pewien kąt (dopisać do niego fazę)
eiα |qi
|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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 302 / 325
Informatyka kwantowa Informatyka kwantowa
Negacja
Bramka negacji zdefiniowana jest przez macierz
!
0 1
NOT =
1 0
Łatwo sprawdzić, że
! ! !
0 1 1 0
NOT|0i = = = |1i
1 0 0 1
! ! !
0 1 0 1
NOT|1i = = = |0i
1 0 1 0
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 303 / 325
Informatyka kwantowa Informatyka kwantowa
√
!
1 1+i 1−i
NOT =
2 1−i 1+i
Łatwo sprawdzić, że
√ 2
NOT = NOT
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 304 / 325
Informatyka kwantowa Informatyka kwantowa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 305 / 325
Informatyka kwantowa Informatyka kwantowa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 306 / 325
Informatyka kwantowa Informatyka kwantowa
0 0 1 0 0 0 0 1
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 307 / 325
Informatyka kwantowa Informatyka kwantowa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 308 / 325
Informatyka kwantowa Informatyka kwantowa
Z definicji:
1
H|0i = √ (|0i + |1i)
2
1
H|1i = √ (|0i − |1i)
2
Łatwo sprawdzić, że H|0i i H|1i tworzą ortonormalną bazę, o ile |0i i |1i
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
Wtedy
F |0i = |0i F |1i = −|1i
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 310 / 325
Informatyka kwantowa Informatyka kwantowa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 311 / 325
Informatyka kwantowa Informatyka kwantowa
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 312 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Teleportacja kwantowa
Słó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
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ść stanem
splątanym √12 (|00i + |11i)
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|0i + b|1i, który chce przesłać
(teleportować) do Boba
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 315 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 316 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 317 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 318 / 325
Informatyka kwantowa Protokół teleportacji kwantowej
Komputer kwantowy
CPU – 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 i
utrzymują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
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 320 / 325
Informatyka kwantowa QKD
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śli
Ewie udało się splątać część qubitów Alicji i Boba ze swoimi
kubitami, protokół pozostaje bezpieczny – zapobiega to kwantowej
wersji ataku typu man-in-the-middle
Alicja i Bob mogą sprawdzić brak splątania z obcymi qubitami
poświęcając część ze swoich qubitów i wykonując na nich odpowiedni
pomiar sprawdzający, czy są w stanie, w jakim zostały przygotowane
w praktyce Alicja może sama przygotować pary EPR, wykonać swoje
pomiary, zamknąć je w sejfie i przesłać pozostałe cząstki do Boba;
gdy zajdzie potrzeba Bob wykonuje swoje pomiary i ustanawia klucz z
Alicją (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
Podsumowanie
czynnik ludzki, socjotechnika
ochrona fizyczna, polityka bezpieczeństwa, procedury
sieć internet, intranet, model OSI, protokół TCP/IP
rodzaje i metody ataków sieciowych, metody ochrony
hasła i inne metody uwierzytelniania
topologie sieci, zapory ogniowe
serwery proxy
podstawowe programy narzędziowe
sieci bezprzewodowe, protokoły szyfrowania, metody ataków
połączenia VPN
ochrona systemu operacyjnego na przykładzie systemu unix/linux
ochrona aplikacji, w tym baz danych
malware – rodzaje i sposób działania
podstawy kryptografii klasycznej, szyfry symetryczne i asymetryczne,
funkcje jednokierunkowe, wymiana kluczy, metody łamania
podstawy 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