You are on page 1of 325

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ów
komputerowych, 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, 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>

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 been


temporarily limited due to multiple login errors on your
account.

Protecting the privacy of your online banking access and


personal information are our primary concern.

Therefore, as preventive measure, you are expected to


re-activate your account details within 24hrs to avoid
permanent suspension of your Internet Banking access.

To review your account as soon as possible please download


the 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 .zip


z formularzem w html. Cechy:
sfałszowane nagłówki email
groźby w liście, ale jednocześnie
zapewnienie o chęci pomocy
brak linku http, formularz
przesłany jako plik html
spakowanie załącznika, aby
uniknąc filtrów antyspamowych
i programów antywirusowych
żądanie podania wszystkich
danych do konta bankowego
i 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 skrypt
http://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.php


Translacja 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 Forbidden
2013-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 OGNIWO


SYSTEMU 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 konsekwnecji
jak się powiedziało A to trzeba powiedzieć B...
głupio wyjść przez kasy ze sklepu bez zakupów...
reguła wzajemności
odpłata za zaproszenie, wycieczkę, degustację, prezencik...
reguła niedostępności
promocja, wyprzedaż, okazja, niedostępne nigdzie indziej
reguła autorytetu
„lekarz” opowiada o lekarstwie, „budowlaniec” o farbie
reguła społecznego dowodu słuszności
to działa bo: on tak mówi, tylu ludzi tu przyszło...
Jak te zasady wykorzystać przy atakach socjotechnicznych na
infrastruktury 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. Czy


nas lub naszych najbliższych nigdy nie oszukano, naciągnięto, skłoniono do
kupna?
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 ta
udziela 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 fizyczna
i 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 fizycznego


dostępu do zasobów. Co można zrobić, mając fizyczny dostęp do świetnie
zabezpieczonego 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 trybie
naprawczym, 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.), nie
wł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żna
notatki, dokumentacje, wydruki, wydruki robocze, kopie zapasowe.
Wg wszelkich reguł, rzeczy takie muszą być
sklasyfikowane (jawne, poufne, zastrzeżone, tajne)
odpowiednio zabezpieczone od strony elektronicznej (szyfrowanie
kopii 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ów


Zarzą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, sieci
bezprzewodowe, 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ży


uwzglę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 zdalny
spoza firmy, usługi na serwerach firmowych)
zabezpieczenia od strony sieci wewnętrznej (uprawnienia
użytkowników, praca i praktyki administratorów, komunikacja
wewną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ą realizowane
przez aplikacje (przesyłanie plików, dostęp do baz danych, poczta
elektroniczna itp.)

Lokalne exploity, użytkownicy ze zbyt dużymi uprawnieniami, przejęcie


uprawnień serwerów, ataki na bazy danych, pliki tymczasowe
przechowują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 do


wymiany danych pomiędzy komputerami w sieci. Na przykład kodowanie i
dekodowanie 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 przeprowadzenia


procedury 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 transportu
dzieli długie wiadomości na kilka pakietów, natomiast u odbiorcy odtwarza
je i wysyła potwierdzenie odbioru. Sprawdza także, czy dane zostały
przekazane we właściwej kolejności i na czas. W przypadku pojawienia
się 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 sieciowa
zamienia duże pakiety logiczne w małe fizyczne ramki danych, natomiast u
odbiorcy 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). Ramki
używane przez tą warstwę zawierają fizyczne adresy nadawcy i odbiorcy
danych

nfsec.pl/hakin9/osi.pdf
Przekierowanie 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 fizyczny


nośnik (kabel sieciowy lub fale elektromagnetyczne w przypadku sieci
radiowych). Ta warstwa przenosi dane generowane przez wszystkie wyższe
poziomy, przy czym warstwy 1 do 4 są to tzw. warstwy niższe (transport
danych) zaś warstwy 5 do 7 to warstwy wyższe (aplikacyjne)

Ataki na sieci bezprzewodowe i sieci przewodowe poprzez zastosowanie


sprzę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/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)

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, 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

Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 32 / 325


Ochrona sieci Ataki

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

Przed tymi problemami staje włamywacz, próbujący rozpracować system


komputerowy.

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śle


powiązane z zabezpieczeniem systemu operacyjnego i aplikacji. Scenariusze
dział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 systemem
operacyjnym
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/5378
Jest 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 firm
adwokackich, 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ł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

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 sieci
wewnętrznej.

Ataki lokalne są przeprowadzane z poziomu sieci wewnętrznej bądź przez


wrogiego użytkownika, bądź przez napastnika, który zdołał spenetrować
zewnętrzne zabezpieczenia.

Ataki lokalne są zazwyczaj łatwiejsze, ponieważ 99% konfiguracji ufa


użytkownikom swojego systemu. Zdobycie uprawnień lokalnego
uż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 do


przekierowania 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 bez


wprowadzania w nim modyfikacji. Dane mogły zostać wykradzione,
podsłuchy, konie trojańskie i backdoory założone. Trudne do wykrycia
ponieważ 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

11
00
00
11
00
11
00
11
Agresor

Użytkownik Serwer

Napastnik fizycznie (sekator, zniszczenie części komputera, np. HDD) lub


elektronicznie (zagłuszanie, np. radiowe) odcina połączenie między
wę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

11
00
00
11
00
11
00
11

Użytkownik Serwer

Agresor

Atak na poufność danych, wejście w posiadanie nieprzeznaczonych dla


napastnika danych. Podsłuch pakietów, haseł, kopiowanie przesyłanych
danych i programów.

Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 41 / 325


Ochrona sieci Ataki

Modyfikacja przepływu informacji

11
00
00
11
00
11
00
11

Użytkownik Serwer

Agresor

Atak na nienaruszalność (integralność) danych. Napastnik modyfikuje


dane aby uzyskać wyższe uprawnienia w systemie lub utrzymać dostęp do
systemu (zmiana plików z danymi, zmiany w aplikacjach, modyfikacja
komunikatów...).

Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 42 / 325


Ochrona sieci Ataki

Podrobienie przepływu informacji

11
00
00
11
00
11
00
11

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łszywe
komunikaty 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 mocy


obliczeniowej, skutkiem czego unieczynnia się system lub sprzęt. Często
pozwala na przełączenie karty sieciowej w tryb nasłuchiwania (promiscious
mode).
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ów
jednocześnie, często z wykorzystaniem botnetu
rDDoS (reflective DDoS) – wykorzystanie spoofingu, najczęściej do
podmiany adresu zwrotnego pakietów na adres ofiary, podczas ataku
DDoS
Schemat botnetu
Hacker

Nadzorcy

Zombie

Ofiara

Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 46 / 325


Ochrona sieci DoS

Przykłady: ataki typu flood


ICMP flood: wykorzystanie pakietów protokołu icmp
I Ping flood: atak DoS za pomocą pakietów ICMP (type: 8, Echo
Request)
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 sieci
z adresem zwrotnym ofiary (pozwala na atak silnego łącza z łącza
sł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 ogranicza
pakiet do 512 B)
TCP flood: wykorzystuje cechy protokołu TCP
I SYN flood: zestawianie w połowie otwartych połączeń aż do
przepełnienia bufora
I ACK flood: ostatni pakiet ACK z 3-way handshake’a TCP jest odsyłany
zwrotnie 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żący
do debuggowania i testowania łącz, umożliwia wysyłanie losowego
ciągu znaków aż do zamknięcia połączenia
SSDP (Simple Service Discovery Protocol) – prymitywny i podatny
na ataki protokół wyszukiwania i łączenia urządzeń uPnP w sieci
lokalnej (TV, kamery, routery...)
SNMP (Simple Network Management Protocol) – prosty protokół do
obsługi urządzeń z nadanym adresem IP (drukarki, routery, kamerki
internetowe, mierniki), pozwalający na ich obsługę, konfigurację,
odczytanie wyników pomiarów...
SSL (Secure Sockets Layer) – szyfrowanie wysyci szybciej moc
obliczeniową 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, że


komunikacja 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 ze
zwrotnym adresem ofiary, komunikaty zwrotne przepełniają skrzynkę
ofiary lub blokują cały serwer
LAND – pakiety do ofiary zawierają jej adres zwrotny, przez co
atakowany system zaczyna sam do siebie wysyłać odpowiedzi
low rate TCP-targeted attack (shrew attack) – zsynchronizowane
pakiety utrzymujące system TCP w stanie permanentnego
oczekiwania na RTO (retransmission time-out), blokujące normalne
działanie łącza

Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 49 / 325


Ochrona sieci DoS

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

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 analiza
wyrazów i fraz
DNSBL (DNS Black List) – domeny i adresy IP są zgłaszane jako
wrogie i mogą być filtrowane
SURBL (Search for URL Black List) – wyszukiwanie podejrzanych
linkó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ło
skuteczniejsze i zapewniało minimalny czas obsługi żądania (MWT –
maximum waiting time)
arxiv.org/abs/1509.02268
arxiv.org/abs/cs/0612066
usprawnienia architektury sieci i konstrukcji protokołów
arxiv.org/abs/1506.08953

Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 52 / 325


Ochrona sieci DoS

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).

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ów


sieciowych tak, aby wskazywały na inne źródło pochodzenia
i 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ętrznym
adresów własnych oraz zarezerwowanych:

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

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 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

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 kolejne
adresy 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 w
komunikacji 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 (czyli
zaczyna 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 adresem
uwierzytelnionym 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ący
odpowiedzi, 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 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

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 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

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łszowanymi
nagłówkami
session hijacking – przejęcie danych sesji uwierzytelnionego
użytkownika i podszycie się pod niego za pomocą spreparowanych
pakietów

Metody ochrony przed spoofingiem


weryfikacja 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ących
szyfrowania 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 stron
www na routerach, serwerach DNS (DNS Poisoning) lub bezpośrednio
w systemie ofiary (konie trojańskie). Inne przykłady:
Cross-site request forgery (CSRF, XSRF): nakłonienie użytkownika
serwisu internetowego do wykonania operacji, do których atakujący
nie miałby uprawnień
Cross-site scripting (XSS): umieszczenie w kodzie strony skryptu
(zazwyczaj JavaScript), który uruchomiony przez uprawnionych
uż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ęsto
każ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 socjotechnicznym


1 Zdrowy rozsądek – „Dlaczego obcy chce mi coś zaoferować za
darmo?”.
2 Uwaga i spostrzegawczość – znajomość domyślnego i prawidłowego
zachowania używanego systemu operacyjnego, aplikacji, serwisów
(bankowych, społecznościowych), sprzętu (bankomatu).
3 Zwracanie uwagi na niecodzienne zachowanie sieci (np. zrywanie
połączeń, spowolnienie działania), przeglądarki (łączenie z
dodatkowymi adresami, zmiana wyglądu, ukrycie niektórych
przyciskó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 (aktualizacja
oprogramowania, 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 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.

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 Kancelarii


Prezydenta przez Alladyn2 w lutym 2013. Źródło: backtrack.pl.

W dump-ach występuje 4000 rekordów dla których zostało


wycią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 33
Pogoda123456 138 | Sekretariat 23
Warszawa2010 123 | Warszawa2011 22
Warszawa2012 70 | pogoda123 21
123qweASDZXC 58 | Warszawa12#$! 20
qwerty123456! 40 | P@ssw0rd04 17
Polska123456 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 Styropian12345678
londyn.amb.wklondyn.amb.wk tarnobrzeg.uw.wso
madryt.amb.wkmadryt.amb.wk warszawa.mon.dwsz
budzetuebudzetuebudzetue Warszawa123456789
relacjezpublikacji123 !QAZ2wsx#EDC4rfv
mediolan.kg.kultura P@ssw0rdP@ssw0rd
mediolan.kg.prawny1 Password12341234
Password123456123456 Warszawa12345678
warszawa.kgsg.okecie !QAZxsw2#EDCvfr4
mediolan.kg.opieka1 !QAZzaq1@WSXxsw2
plwarmg01_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 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.

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 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/

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 od


internetu

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 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?

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 hostem


i routerem

wydzielony host jest najcześciej tzw. hostem bastionowym (dobrze


zabezpieczonym)
router odpowiada za połączenia od strony internetu, puszczając ruch
tylko 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 ekranowana


przez 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 dla
zewnę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 nie
dopilnować wszystkiego.
W praktyce bardzo często otwarte są bezpośrednie połączenia
z 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 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)

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ń 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

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że


filtrować połączenia, utrzymywać cache dla ftp i http, skanować ruch
sieciowy i pełnić funkcję bramy.

111
000 INTERNET
000
111
000
111
000
111

UŻYTKOWNIK SERWER PROXY

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 na


ukrycie swojego adresu IP (do pewnego stopnia) i obejście restrykcji
nałożonych na połączenia z pewnymi serwerami (np. oferty ograniczone
terytorialnie, lokalizowane gry w systemie Steam itp.). Bardzo często
uż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żytkownikami


zewnętrznymi. Ma za zadanie głównie filtrować połączenia i pośredniczyć
na poziomie aplikacji, ew. tłumaczyć dane.

INTERNET
SERWER

SERWER PROXY
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 adresie


www.google.pl pokazuje, że jest to cała lista fizycznych adresów. Podobnie
dla 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.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

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.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

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ący


może:
ustawić przekierowanie połączeń na sfałszowane adresy, podszywające
się 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 sieciowe


Do sprawdzenia stanu konfiguracji sieci służy ifconfig (w windowsach
ipconfig). Pozwala on również na przypisanie gotowym interfejsom
adresó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 1500


inet 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 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 0
TX packets 19647 bytes 1886527 (1.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device 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


# iwconfig
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated
Tx-Power=19 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power 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
# 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

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:4
Frequency:2.427 GHz (Channel 4)
Quality=51/70 Signal level=-59 dBm
Encryption key:on
ESSID:""
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/s
Bit Rates:9 Mb/s; 18 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=0000009d0409f181
Extra: Last beacon: 342ms ago
IE: Unknown: 000700000000000000
IE: Unknown: 010882848B960C183048
IE: Unknown: 030104
IE: Unknown: 050400010000
IE: Unknown: 2A0100
IE: Unknown: 32041224606C
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
Preauthentication Supported
(...)
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 88 / 325
Ochrona sieci Narzędzia sieciowe

Inne podstawowe narzędzia to


ping – korzysta z DNS, sprawdza żywotność adresu i jakość łącza,
pozwala na wykonanie ping flood (ping -f)
# ping wp.pl
PING 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 ms
64 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 1001ms
rtt 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.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

;; 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 czasy


odpowiedzi, ż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 na


połączenie z dowolnym portem
$ telnet localhost 80
Trying ::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, obecnie


bardzo 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 finger
Trying 87.246.208.8...
Connected to umcs.lublin.pl.
Escape character is ’^]’.
root
Login: root Name: root
Directory: /root Shell: /bin/bash
Last login Wed Oct 9 16:10 (CEST) on pts/0 from piglet.man.lublin.pl
New 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.pl
Starting Nmap 6.01 ( http://nmap.org ) at 2013-10-09 17:20 CEST
Nmap 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.pl
Not shown: 84 filtered ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp closed ssh
23/tcp closed telnet
25/tcp open smtp
79/tcp open finger
80/tcp open http
110/tcp open pop3
113/tcp open ident
143/tcp open imap
443/tcp open https
465/tcp open smtps
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s
3306/tcp open mysql
5432/tcp closed postgresql
Nmap 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ÓW


Skanowanie portów jest powszechną praktyką, serwery są bez przerwy
skanowane. Jednak z punktu widzenia administratora taka praktyka jest
działaniem wrogim. Nie wolno przeprowadzać intensywnego skanowania
w 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:00
SRC=192.168.1.105 DST=192.168.1.109 LEN=60 TOS=0x00 PREC=0x00 TTL=64
ID=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:00
SRC=192.168.1.105 DST=192.168.1.109 LEN=60 TOS=0x00 PREC=0x00 TTL=64
ID=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 do


testów penetracyjnych można znaleźć w sieci. Dobrym uporządkowanym
zbiorem tych narzędzi pochwalić się może wyspecjalizowana dystrybucja
linuksa backtrack (ostatnie wydanie 5.3 w 2012 r.), obecnie
kontynuowana jako kali linux.
www.backtrack-linux.org
www.kali.org
kali-linux.pl

Zobacz też strony:


www.defcon.org
hackingncrackingtools.blogspot.com
thehackernews.com
i 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 innych
węzłów
urządzenia muszą monitorować i utrzymywać połączenia
z najbliższymi sąsiadami (1 hop)
jest łatwo i tanio skalowalna, wymaga minimalnej konfiguracji
idealna dla sieci tymczasowych (sytuacje awaryjne jak katastrofy
naturalne, 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 bez
kabli
skalowanie wymaga dobudowania nowej infrastruktury i jej
oprogramowania 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 nie


chronią 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 – 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

moc WEP zależy w dużej mierze od IV , który wymieniany jest


jawnym tekstem oraz nie zmieniany podczas transmisji
w 2001 r. Fluhrer, Mantin i Shamir (FMS) opublikowali atak na WEP
w dwóch wersjach:
I korzystając z niezmienniczości klucza IV ,
I znając klucz IV .

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

w 2002 r. D. Hulton (h1kari) zmodyfikował atak FMS uwzględniając


więcej bajtów wyniku RC4, co zmniejszyło liczbę potrzebnych
pakietów
w 2004 r. KoreK i Arbaugh podali metodę wstrzykiwania pakietów,
pozwalającą na deszyfrowanie pakietów bez znajomości klucza. Ten
atak 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 Injection


Metoda wstrzykiwania pakietów (packet injection) wykorzystuje
preparowanie i wpuszczanie do sieci bezprzewodowej pakietów z własnej
maszyny. Generowany ruch, np. poprzez protokół ARP, wymusza
odpowiedzi AP, które powodują generowanie kolejnych IV przez AP. W
ten sposób szybciej można zgromadzić odpowiednio dużo wektorów IV .

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

Dlaczego WPA jest mocniejsze niż WEP?


TKIP (Temporal Key Integrity Protocol) – klucz szyfrujący jest
generowany osobno dla każdego pakietu
zamiast konkatenować klucz z IV używane są bezpieczniejsze funkcje
mieszające
MIC (Message Integrity Check) – zamiast sumy kontrolnej CRC
używa się algorytmu Michael, który pozwala na ochronę nie tylko
treś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 relatywnie
prostego 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 podczas


negocjacji czteroetapowej (4-way handshake). Odbywa się ona przez
protokół 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ący
wiadomość

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 klucza


uwierzytelniającego jest
przesyłany na początku
połączenia
można wysłać pakiet DEAUTH
do zalogowanego użytkownika
zmuszając go do powtórzenia
negocjacji uwierzytelniającej

zdobycie pakietów uwierzytelniających użytkownika pozwala na ich


rozłamanie atakiem słownikowym lub brutalnym
zastosowanie tzw. tablic tęczowych (rainbow tables) pozwala na
wielokrotne skrócenie czasu potrzebnego na zamianę hasha
w 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 Ohigashi


z Uniwersytetu w Hiroshimie podali nowy sposób ataku na WPA,
wykorzystujący lukę w protokole TKIP. Czas potrzebny do złamania
zabezpieczeń to ok. 1 minuta.

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

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 klient
uwierzytelniają się i negocjują klucz sesji.
Powoduje wymuszenie po stronie klienta reinstalacji klucza, co
skutkuje resetem połączenia i użyciem po raz kolejny tego samego
klucza sesyjnego.
Podsłuchanie pakietów i znajomość klucza pozwala na ich
odszyfrowanie. W dalszej kolejności można wstrzykiwać własne
pakiety 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 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

VPN (virtual private network) – połączenie różnych podsieci sieci


prywatnej przez publiczne łącza. Również: dostęp hostów spoza sieci do
wnę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ą 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

Protokoły bezpieczeństwa używane w sieciach VPN to m.in.


Internet Protocol Security (IPsec) – kapsułkuje pakiety zapewniając
dodatkowe szyfrowanie, obsługuje również uwierzytelnianie i kontrolę
spójności danych. Nie radzi sobie z firewallami i sieciami
wewnętrznymi
Transport Layer Security (SSL/TLS) pozwala na tunelowanie całej
transmisji 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 radzi
sobie z tunelowaniem połączeń przez UDP
Datagram Transport Layer Security (DTLS) jest używane przez
AnyConnect VPN (CISCO) i OpenConnect VPN. Radzi sobie
z 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) wspomaga
protokoły Point-to-Point Protocol (PPP) oraz Layer 2 Tunneling
Protocol zapewniając szyfrowanie przez SSL 3.0. SSTP pojawiło się
po raz pierwszy w Windows Server 2008 oraz Windows Vista Service
Pack 1
Multi Path Virtual Private Network (MPVPN) firmy Ragula Systems
Development Company
Secure Shell (SSH) VPN – tani serwer pozwalający na zestawianie
tuneli do celów prywatnych. Ma ograniczenia na liczbę tuneli i nie
wspomaga 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). We


Francji (ok. roku 2000) osobom prywatnym prawo zabraniało korzystać
z silnego szyfrowania. Jeśli Windows NT rozpoznawało, że połączenie
przychodziło z Francji, automatycznie wyłączało szyfrowanie tego
połączenia.

Intruzi opracowują nowe metody włamań, powodując że to, co wcześniej


uznawane 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ż dobrze


zdefiniowane są potrzeby i zwyczaje użytkownika. Grono użytkowników jest
zaufane i dobrze kontrolowane.

W przypadku systemu publicznego lub dostępnego dla dużej grupy


uż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ólnie
powłok (ile powłok jest w Twoim systemie? cat /etc/shells)
audyt i konserwacja systemu
I wyszukiwanie plików suid
I czytanie logów
I wyszukiwanie nieaktywnych użytkowników i ich plików
I czyszczenie plików cache i tymczasowych
I okresowe sprawdzanie konfiguracji, m.in. reguł firewalla, /etc/passwd
i 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 iptables


Firewall 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 zazwyczaj
konfigurację 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ą one
wkompilowane 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 na


etapy (tablice) i porządkują reguły w zależności od etapu i przeznaczenia
pakietu (łańcuchy)
Tablice:
raw – działanie na „surowym” pakiecie
mangle – zmiany w nagłówku pakietu, głównie w polu TOS (type of
service) określającym m.in. priorytet pakietu oraz ewentualne
specjalne 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 tablicy
filter.
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 maszyny


1 medium transmisyjne
2 interface
3 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 maszyny


1 lokalny proces
2 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 interface
12 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 transmisyjne
2 interface
3 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 interface
13 medium transmisyjne

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.

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łych
charakterystykach
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 DROP


REJECT
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 wykorzystanie
naszego 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ó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

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 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

3. Zablokowanie tylko ruchu przychodzącego


iptables -F INPUT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -j REJECT
4. Zablokowanie tylko ruchu wychodzącego – j.w. INPUT → OUTPUT
5. Zablokowanie żądań HTTP z zewnątrz ale zezwolenie na ruch lokalny
(kolejność reguł!)
iptables -A INPUT -p tcp -i lo --dport www -j ACCEPT
iptables -A INPUT -p tcp --dport www -j REJECT
6. Blokowanie konkretnego hosta
iptables -A INPUT -s ip hosta -j REJECT
iptables -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ślonym


adresie MAC
iptables -F INPUT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m mac --mac-source 12:34:56:78:ab:cd
-j ACCEPT
iptables -A INPUT -j REJECT
Opcja --dport jest opcją dla protokołu tcp (-p tcp). Uniwersalniej jest
podawać konkretne porty wykorzystywane przez poszczególne usługi
sieciowe.

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 Login
telnet 23/tcp,udp
smtp 25/tcp,udp #Simple Mail Transfer
domain 53/tcp,udp #Domain Name Server
finger 79/tcp,udp
http 80/tcp,udp #World Wide Web HTTP
kerberos-sec 88/tcp,udp #Kerberos (v5)
auth 113/tcp,udp #Authentication Service (ident)
imap 143/tcp,udp #Interim Mail Access Protocol v2
https 443/tcp,udp
kpasswd5 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. 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

Przykłady składni nmapa:


UDP Port Scan
nmap -sU -O -P0 127.0.0.1
All 1487 scanned ports on digger.fizter (127.0.0.1) are closed
Too many fingerprints match this host to give specific OS details

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

[root marek]# nmap -sT -O umcs.pl

Starting Nmap 6.40 ( http://nmap.org ) at 2015-11-27 08:11 CET


Nmap scan report for umcs.pl (87.246.208.14)
Host is up (0.00043s latency).
rDNS record for 87.246.208.14: portal.umcs.pl
Not shown: 979 filtered ports
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s
50000/tcp closed ibm-db2
50001/tcp closed unknown
50002/tcp closed iiimsf
50003/tcp closed unknown
50006/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 unknown


50389/tcp closed unknown
50500/tcp closed unknown
50636/tcp closed unknown
50800/tcp closed unknown
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.0 - 3.9

OS detection performed. Please report any incorrect


results 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 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

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 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

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 prawa
administratora
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ą 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:

# 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ła
ALL 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ście


przez 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, system
zhakowany)
zamknięcie użytkownika (np. gość ftp) w ograniczonej, mniejszej kopii
systemu

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 i
porównaniu go z zaszyfrowaną wersją w pliku na dysku. PAM udostępnia
moduły uwierzytelniające na różne sposoby (inne typy szyfrowania,
specjalistyczny hardware...) co powoduje, że programy takie jak login nie
wymagają 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 Kerberos
Bluetooth ssh
POP3 imap
SQL LDAP
iptables PHP, Python, Perl
SAMBA sudo
chroot 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/selinux
Security Enhanced Linux
National Information Assurance Research Laboratory of the
National 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 (prawa


dostępu, suid, sgid, konto root), w którym przejęcie przez atakującego
kontroli nad częścią w praktyce poddaje cały system.
Koncepcja DAC (Discretionary Access Control – uznaniowa kontrola
dostępu) stosuje politykę bezpieczeństwa biorąc pod uwagę tożsamość
obiektów i ich uprawnienia; użytkownik przekazuje swoje uprawnienia
uruchamianym procesom, co jest szczególnie niebezpieczne w przypadku
administratora 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 takie


prawa ingerencji w system, jakich to coś wymaga do działania. Wadliwe
lub dziurawe aplikacje mają minimalny bądź żaden wpływ na
bezpieczeństwo reszty systemu.
Koncepcja MAC (Mandatory Access Control – obowiązkowa kontrola
dostępu) wprowadza reguły po regułach DAC i żaden z użytkowników nie
moż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 czyli
wł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 odmawia
dostę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 Paduli
dla przypadków, gdy istnieją poziomy zabezpieczeń; wariantem jest
Multi-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 Control


uż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 czterech


etapach:
1 Account Management – ważność konta, główne polityki dostępu
2 Authentication Management – dodatkowe metody autoryzacji (karty
Smart, metody biometryczne etc.)
3 Password Management – zarządzanie hasłami
4 Session Management – uruchamianie dodatkowych usług podczas
logowania

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 otrzymuje


dodatkową 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. 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

Kompatybilność z aplikacjami: pełna; aplikacje nie przystosowane po


prostu nie będą korzystały z rozszerzeń bezpieczeństwa, ale wciąż będą
ochraniane przez system. Istnieją jednak z oczywistych powodów łaty na
standardowe 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 w


tym momencie zintegrowany z kernelem 2.6.x i dostarcza kompatybilność
na poziomie binariów; we wcześniejszych wersjach kompatybilność była na
poziomie źródeł i wymagała przekompilowania modułów z nowym
kernelem i jego plikami nagłówkowymi. Nie ma jednak 100%
kompatybilności z modułami wykonującymi bezpośrednie operacje na
obiektach jądra z pominięciem inicjalizowania standardowych funkcji jądra
– obiekty takie nie będą zawierały poprawnych informacji bezpieczeństwa i
moż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ąca


bezpieczeń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 serwerowym


Owl (Openwall GNU/*/Linux), który oprócz samych zmian w jądrze
wykorzystuje również inne poprawione aplikacje.
Najnowsza wersja tego systemu to Owl 3.0 z grudnia 2010
z 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 wersje
CentoOS, 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łowy


podlega audytowi i jest sprawdzany pod kątem podatności na klasy
atakó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 minimum
potrzebnych 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 przez
Brada Spenglera na jądra 2.4, jest obecnie rozwijana dla najnowszych
kerneli.
Od 9.IX.2015 grsecurity zmieniło politykę, wprowadzając opłaty za swoje
produkty:
w chwili obecnej (koniec 2015 r.) wersje testowe łat, obejmujące jądra
3.1–4.26 są bezpłatne.
wersje stabilne obejmujące jądra 3.1–3.14 są zarezerwowane dla
klientów firmy.
grsecurity skupia się na typach ataków, a nie łataniu po fakcie odkrytych
pojedynczych luk. Pozwala to na zmniejszeniu szansy powodzenia ataków
typu 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 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

oznaczenie stosu jako niewykonywalnego (ochrona przed


wykonywaniem kodu w zapisywalnych obszarach pamięci)
nałożenie ograniczeń dla mprotect, losowości dla mmap() oraz stosu i
sterty
ochronę przed modyfikacją jądra przez /dev/mem, /dev/kmem i
/dev/port
Porównanie (trochę tendencyjne) grsecurity z SELinux i AppArmor
znajduje 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 jak


SELinux, zaimplementowany w Linuksie mechanizm LSM (Linux Security
Modules). Wprowadza nad standardowym linuksowym DAC (grupy i prawa
dostępu) dodatkową kontrolę MAC.
działa na konfigurowalnych profilach, przypisujących zasoby
aplikacjom
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ą dodatkowo
reguł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 na


pisanie modułów bezpieczeństwa współpracujących z jądrem Linuksa.
Wszystkie moduły traktowane są z jednakowym priorytetem. Oficjalnie
kompatybilnymi modułami zewnętrznymi są:
AppArmor
SELinux
TOMOYO Linux
Smack
LSM jest również krytykowany:
brak kontroli, czy podłączany moduł faktycznie udostępnia funkcje
bezpieczeństwa
niekontrolowany eksport symboli pozwala na podłączenie pod niego
rootkita
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ące
program do dekompresji w nieskończoną pętlę, generując ogromny
plik i wyłączając program antywirusowy; obecnie programy
antywirusowe 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ści
danych niż przewidziano, co powoduje nadpisanie struktur programu
w 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 powrotu


na stosie wywołań aplikacji i wskazuje najczęściej na jakąś funkcję
systemową z biblioteki glibc
SQL Injection: przy braku dostatecznego filtrowania wpisywanych
zapytań, 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 braku
kontroli poprawności tych danych)
Fork bomb: uruchomienie programu replikującego samego siebie, co
zapycha system; przykład w bashu
bomba()
{
bomba | bomba &
};
bomba

Symlink race: przejęcie kontroli nad aplikacją, która korzysta z plików


z uprawnieniami wyższymi niż atakujący (zapisuje np.
niezabezpieczone pliki tymczasowe). Podmiana pliku na link
symboliczny i wpisanie do niego własnego kodu pozwala na jego
wykonanie 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 popularnych


aplikacjach, pozwalające na ataki sieciowe:
Poodle (SSL 3.0): zmusza przeglądarkę do ustanowienia połączenia
szyfrowanego starszym protokołem, pozwala na odszyfrowanie
wiadomości (ok. 256 połączeń SSL 3.0 wystarcza do poznania 1B
informacji)
Heartbleed (OpenSSL): pozwala na odczyt pamięci i poznanie klucza
szyfrującego SSL oraz haseł, loginów i treści przesyłanej przez serwer
Shellshock (bash): pozwala na wykonanie dowolnego kodu podanego
wewną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. ze
skryptó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 9
Oracle ma domyślnie puste hasło dla listenera)
istnieją robaki sieciowe penetrujące bazy danych, np. Slammer
atakują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:1434
UDP TTL:116 TOS:0x0 ID:55339 IpLen:20 DgmLen:404
Len: 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 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

4. Uprawnienia do plików bazodanowych na poziomie systemu plików


5. Ograniczenie funkcjonalności oferowanych przez bazę danych
6. Logowanie (księgowanie) dostępu do bazy danych
7. Szyfrowanie
8. Bezpieczeństwo po stronie aplikacji korzystających z bazy danych
SQL Injection pozwala na nieautoryzowany dostęp do pełnej bazy
danych po przekazaniu zmodyfikowanego zapytania
9. Miejsce składowania danych w systemie plików
lokalni użytkownicy mający dostęp do przetwarzanych przez RDBMS
plików mogą przejąć dane z bazy
jeśli baza składuje dane na tej samej partycji co serwer lub system
operacyjny, 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 Injection


wykorzystuje brak lub niepoprawną kontrolę danych wejściowych, co
pozwala użytkownikowi na bezpośrednie zwracania się do silnika bazy
danych 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 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ć:

SELECT userId FROM users WHERE


username = ’aaa’ or 1=1 #’ AND password = ’abcd’

Znak # jest komentarzem, więc pominięty zostaje warunek dopasowania


hasła. 1=1 zaloguje nas na pierwsze konto na liście, które często jest
kontem 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 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

Malware (malicious software) to oprogramowanie nie kontrolowane przez


uż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ą o
przydział pamięci w komputerze
Morris (1972) – pierwszy wirus Creeper, zarażał komputery IBM 360
w sieci ArpaNET, wyświetlając komunikat na ekranie; aby go
wyeliminować 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. bootowaniu
komputera z zainfekowanej dyskietki wyświetlał wiersz na ekranie;
początek wirusów destrukcyjnych
Cohen (1984) – ukuł termin „wirus komputerowy” na programy
zdolne 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 ekranie


pojawiał 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; program


wykorzystywał błędy w systemach BSD, Solaris i Vax oraz odgadywał
proste hasła logowania; miał być nieszkodliwy, ale autor pomylił się w
rachunkach i jego robak przeładował łącza wyłączając sieć na niemal
tydzień, powodując straty finansowe szacowane nawet na 100 mln.
dolarów
Spanska (1999) – pierwszy robak internetowy Happy, dołączający się
do wiadomości email
rok 2004 to wysyp robaków o charakterze niszczycielskim, m.in.
Mydoom, Netsky, Sasser, Bagle
po roku 2004 charakter malware się zmienił. Pojawiły się programy
dające właścicielom konkretne korzyści
I spyware
I addware
I konie trojańskie (m.in. bankowe)
w 2004 pojawiają się pierwsze wirusy na urządzenia mobilne i telefony
komó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 Security


The most frequently targeted operating system today is still Windows
32-bit. As we mentioned previously, malware creators have seen the
financial potential for their activity and as Windows accounts for 90
percent of the market, it is easy to see why it is the focus of their
attention. Perhaps another obstacle for creators of malware for Linux and
Macintosh is related to the medium/high level of knowledge of users of
these types of platforms, and so social engineering, the main method of
propagation, 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ż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)

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ą nowe
cele
kody polimorficzne – modyfikują się przy każdym wywołaniu
zachowując funkcjonalność; najprostszym sposobem jest szyfrowanie
ze 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 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)

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ą pliki
I instalują dodatkowe pliki (np. rootkity, spyware)
I otwierają porty, obchodzą firewalle, instalują backdoor’y
I szpiegują, gromadzą informacje i wysyłają w świat (głównie dane
logowania, płatności, ale również prywatne dane, w tym pocztę i
zdję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 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)

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ów
plikó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ł 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...

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 innych
kryptogramów
atak ze znanym tekstem otwartym – mam wiadomość i jej
kryptogram 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ów
w szyfrowanym tekście lub na podstawieniu innych znaków w tym
tekście w obrębie pewnego alfabetu.
Mieszanie – tworzy skrót wiadomości we w miarę jednoznaczny
sposób poprzez zastosowanie odpowiedniej funkcji działającej na ciąg
bitów (funkcje jednokierunkowe, funkcje hashujące)
S-box – szyfrowanie z zastosowaniem ustalonej wcześniej macierzy
4x16; 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 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

Argument, np: 111010 rozkładamy na skrajne bity i środek 1 1101 0


co wyznacza nam numer wiersza (0–3) 102 =3
i numer kolumny (0–15) 11012 = 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

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 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

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 innej
dowolnej 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 Cezara
Szyfr korzystał z 26 literowego alfabetu
ABCDEFGHIJKLMNOPQRSTUVWXYZ
zamiana 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’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

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 nie
tworzą 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 jest
kodowane 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 permutacji
i sprawdzać ze słownikiem, czy wynik ma sens
I krótkie wiadomości mogą dać po kilka różnych „sensownych” wyników
I długie wiadomości zajmują dużo czasu do dekodowania siłowego
szanse zwiększa analiza częstotliwościowa
zazwyczaj zakłada się język w jakim był napisany tekst jawny
czasami zgaduje się tematykę tekstu jawnego i zakłada występowanie
w nim pewnych charakterystycznych wyrazów
szanse udanego rozłamania maleją, jeśli zastosowano podstawianie
blokowe a nie pojedynczych znaków

Odczytywanie starożytnego pisma jest formą rozłamywania szyfru


podstawieniowego: wykorzystuje się całą wiedzę, jaką można było
zgromadzić o autorach tekstu (formy języka, kultura, wierzenia, gdzie
odnaleziono dany tekst, kto mógł go pisać i w jakim celu...) i próbuje
odgadnąć 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 prostych


operacji (S), np. podstawiania oraz permutacji (P) wyników pośrednich.
lawinowość – zmiana 1b
IN pociąga zmianę ok.
połowy bitów OUT
zupełność – każdy bit
S S S
OUT powinien być
... OUT
IN P S P S P złożoną funkcją każdego
bitu IN
S S
generalnie wymaga
S S osobnego algorytmu
szyfrującego
i 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 wykorzystania


w szyfrach kaskadowych

L[i] R[i] L[i] R[i]

K[i+1] K[i+1]
XOR f XOR f

L[i+1] R[i+1] L[i+1] R[i+1]

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 )

Tworzenie szyfru E : K × M → C, gdzie M = C = Σn , sprowadza się do


stworzenia 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 kodowania


i dekodowania. Siłą rzeczy klucz K musi być tajny.

Wady:
klucz K
klucz musi być
tekst jawny szyfrogram prawdziwie losowy
tekst jawny
klucz musi być tajny
klucz K

klucz musi być bezpiecznie dystrybuowany


klucz musi być tak długi jak kodowana wiadomość
Zalety:
prostota i szybkość
przy poprawnej implementacji praktycznie niemożliwe do
rozkodowania

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

One-time pad: stosowanie operacji XOR z kluczem jednorazowym. Do


każdego szyfrowania używany jest inny klucz
klucz musi być jak najdoskonalej losowy, co przełoży się na jak
najbardziej 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 postaci
szyfrogramu, bez względu na moce obliczeniowe

Metoda ta jest stosowana do kodowania stosunkowo krótkich ale bardzo


ważnych informacji np. tajnych rozkazów (kody odpalenia broni itp.).
Stosowanie w tych przypadkach jakichkolwiek szyfrów możliwych do
rozł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 spacji


i 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, do


kodowania i jeden publiczny do dekodowania.
Zalety:
ALICJA BOLEK
nie ma konieczności
dystrybucji tajnego
tekst jawny tekst jawny klucza
klucz publiczny
klucz prywatny Alicji klucz publiczny Alicji
udostępnia się jako
sygnaturkę emaili,
szyfrogram szyfrogram poprzez stronę www
etc.

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ó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

DES – Data Encryption Standard


DEA – Data Encryption Algorithm
rozwinięcie Lucifera
algorytm symetryczny
jawny – jego siła miała leżeć nie w tajności, ale w konstrukcji
odpornej na kryptoanalizę
potrafi być bardzo szybki jeśli jest uruchomiony na dedykowanym
sprzę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, praktyka
wykazała, że jest on dość odporny. Próby jego ulepszenia nie dały
spektakularnych 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 tworzy
się 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ń, natomiast
softwarowo 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 56b
K 0 zgodnie z tabelą permutacji (czytaną rzędami od lewej do prawej):

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

3. Tworzenie fragmentów pośrednich. Tworzone jest 16 części Cn i 16


częś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 bit
przechodzi na koniec) wykonane k razy, zgodnie ze schematem:

Iteracja (n) Liczba lewych przesunięć (k)


1,2 1
2-8 2
9 1
10-15 2
16 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 poprzez


konkatenację
Kn = Cn + Dn
i permutację z obcięciem do 48b

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

Schemat pojedynczej rundy szyfrującej DES.


1. Przygotowanie danych wejściowych. (i + 1)-a runda DES bierze jako
wejście wynik i-tej rundy. Dzieli go na dwa kawałki po 32b (Li + Ri )
2. Permutacja Feistela. Dokonywana jest permutacja Feistela:

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

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 i
rozszerzenie jej do 48b wg schematu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 32

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... ... ... ... 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

R[i] 32b
permutacja
z rozszerzeniem XOR

48b 48b K[i+1]

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

2d. Permutacja końcowa. Po konkatenacji wyjść z S-boxów 1–8 ciąg 32b


jest permutowany zgodnie z tabelą

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

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ńczona


został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 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

Deszyfrowanie DES. Operacja wykonywana przez S-boxy jest


niejednoznaczna, więc nie można jej odwrócić. Także wykonanie całego
schematu od końca nie jest możliwe. Ale można odwrócić ogólne wzory

Li+1 = Ri
Ri+1 = Li ⊕ f (Ri , Ki+1 )

Ri−1 = Li
Li−1 = Ri ⊕ f (Ri−1 , Ki ) = Ri ⊕ f (Li , Ki )

i wykorzystać ten sam hardware do deszyfrowania. Jest to istota


permutacji 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, ż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.

Dla słabego klucza, po odjęciu bitów parzystości i przeprowadzeniu


począ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 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

2. Klucze półsłabe. Z niektórych kluczy K generowane są tylko dwa


różne podklucze rundy.

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

3. Problem niepełnych bloków danych. DES nie wskazuje sposobu


szyfrowania bloków danych mniejszych niż pełne 64b. Istnieją różne
algorytmy 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 polega
na znajomości klucza szyfrującego przez obie strony komunikacji. Dlatego
klucz 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ściach
zwroty, takie jak „Szanowna Pani”, „pozdrawiam”, „From:”, „To:”, daty i
tak dalej. Używa się w tych przypadkach maskowania początkowej części
wiadomoś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 dedykowanym


sprzęcie, natomiast wolny w implementacji programistycznej. To samo
dotyczy dekodowania. Rozłamanie szyfru jest możliwe poprzez
dekodowania siłowe po całej przestrzeni kluczy.

Już w 1993 r. M. Wiener zademonstrował układ scalony zdolny do


sprawdzenia 50 mln. kluczy na sekundę. Urządzenie wyposażone w 5760
takich układów potrafi sprawdzić całą przestrzeń 56b kluczy szyfrujących
DES w ok. 35 godzin. Koszt takiej operacji oszacowano na 100 tyś. $

Oznacza to, że gdyby na maszynę wydać 1 mln $ i zamontować w niej


57600 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 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

Analiza bezpieczeństwa S-boxów.


Nie ma reguły na utworzenie S-boxa, ale przyjmuje się, że musi on
posiadać 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że
istniej więcej niż 32 pary wejść o takiej różnicy, dla których wyjścia
byłyby takie same
dobór postaci S-boxów minimalizuje dysproporcję między zerami i
jedynkami 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ęść) 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

Do S-boxa trafia 6b ciąg wiadomości XOR-owany z 6b częścią klucza


rundy. Te części klucza mogą się powtarzać w różnych rundach.
Przypuśćmy, że kodujemy różne wiadomości tym samym kluczem i tym
samym S-boxem:

Sn (X1 ⊕ K) = X10 Sn (X2 ⊕ K) = X20

Oba wyjścia można dodać:

X10 ⊕ X20 = Sn (X1 ⊕ K) ⊕ Sn (X2 ⊕ K)

i potraktować S-box jako funkcję

Sn : ∆X → ∆X 0

∆X = X1 ⊕ X2 = (X1 ⊕ K) ⊕ (X2 ⊕ K) ∆X 0 = X10 ⊕ X20

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 0 ) = {(z1 , z2 ) : ∆X = z1 ⊕ z2 , ∆X 0 = Sn (z1 ) ⊕ Sn (z2 )}

Każda para (z1 , z2 ) generuje potencjalnie poprawny klucz, ponieważ


(
∆X 0 = Sn (z1 ) ⊕ Sn (z2 )
∆X 0 = Sn (X1 ⊕ K) ⊕ Sn (X2 ⊕ K)

z czego wynika

z1 = X 1 ⊕ K ⇒ K = z1 ⊕ X 1

takich par może być więcej niż jedna


dla pełnego DES trzeba analizę przeprowadzić przy 8 S-boxach i 16
rundach, 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 0 .


Na przykład, liczba takich par (moc zbioru D) wynosi dla ∆X = 1

∆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

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 Algorithm


Europejska odpowiedź na obłożony restrykcjami patentowymi amerykański
DES. Wolny dla celów niekomercyjnych (za zezwoleniem właściciela
patentu, szwajcarskiej firmy Ascom). Jest to:
algorytm symetryczny
wchodzi w skład pakietu PGP
wykorzystuje 128b klucze szyfrujące, co w praktyce uniemożliwia
dopasowanie metodą brutalną
kaskada składa się z 8 rund dość skomplikowanych operacji
wykonywanych na blokach 64b (jest więc oszczędniejszy od DES)
deszyfrowanie polega (prawie) na wykonaniu operacji odwrotnych do
szyfrowania, więc może być realizowana sprzętowo przez te same
ukł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.

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

Y1 16b Y2 16b Y3 16b Y4 16b

Pełny algorytm zawiera 8 takich rund oraz końcowe przekształcenie.


Z pierwotnego 128b klucza generowanych jest więc 6 · 8 + 4 = 52
podklucze 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 = 65536
mnożenie – aby można było dekodować szyfrogram, mnożenie musi
być realizowane w sposób odwracalny. Dlatego przyjmuje się
konwencje:
I 216 + 1 = 65537 jest liczbą pierwszą; dlatego tworząc tablicę mnożenia
dla liczb 1–65536 w każdym rzędzie każda liczba z tego zakresu
wystąpi dokładnie jeden raz („tablica łacińska” jest odwracalna)
I mnożenie przez zero jest zawsze nieodwracalne, dlatego ciąg (0)16 jest
traktowany jak liczba 216 = 65536, pozostałe normalnie w zapisie bez
znaku
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 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

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żliwe


ze względu na właściwości mnożenia mod 216 + 1; liczba 232 + 1 nie jest
liczbą 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 Standard


W 1997 r. EFF (Electronic Frontier Foundation) dysponowała sprzętem
zdolnym do zdekodowania każdej wiadomości zaszyfrowanej DES’em
w czasie do 3 dni kosztem 250 000 dolarów
W sierpniu 1999 National Institute of Standards and Technology (NIST)
ogłosił konkurs na następcę DES’a. Spośród pięciu propozycji, które
przeszł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 implementowany
w 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ż 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)

I słabość systemu zarządzania kluczami przez aplikację


I słabość protokołu TLS, pozwalająca na poznanie wektora inicjującego
w szyfrowaniu (atak BEAST na TLS 1.0)
pokazano skuteczność ataków na AES przy zredukowanej liczbie rund
szyfrujących (w 2011 udowodniono, że atak biclique jest 2–5 razy
szybszy 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, jest
skuteczna:
eprint.iacr.org/2003/010.pdf
eprint.iacr.org/2009/575.pdf
eprint.iacr.org/2012/446.pdf
DFA zakłada możliwość wprowadzenia błędu (np. zmiany bitu w kluczu
rundy lub wprowadzeniu niepoprawnych danych wejściowych) przez
atakującego. Nie jest więc metodą uniwersalną, możliwą do wykonania
zdalnie. Realizuje się ją np. jako atak na sprzęt szyfrujący (np. fizyczne
dział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. łatwa
weryfikacja 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ści
Dla K1 , K2 – para kluczy, algorytm jest przemienny:

∀x : RSA−1 −1
K2 (RSAK1 (x)) = RSAK1 (RSAK2 (x)) = x

skąd wynika, że funkcje szyfrująca RSA i deszyfrująca RSA−1 są takie


same:

∀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

Zastosowanie szyfrowania asymetrycznego I


Jeśli Alicja generuje parę kluczy:
K1 – klucz prywatny (tajny) oraz K2 – klucz publiczny (jawny), to

Bolek wysyła tajną korespondencję Alicji


Bolek szyfruje swój list M kluczem publicznym i wysyła

RSAK2 (M )

Alicja rozkodowuje przesyłkę kluczem prywatnym

RSA−1
K1 (RSAK2 (M )) = M

Bolek ma pewność, że tylko Alicja odczyta wiadomość, bo tylko ona jest


w posiadaniu klucza deszyfrującego K1 (założenie). Wiadomość Bolka
moż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 II


Jeśli Alicja generuje parę kluczy:
K1 – klucz prywatny (tajny) oraz K2 – klucz publiczny (jawny), to

Alicja uwierzytelnia się jako autorka listu


Alicja szyfruje swój list M kluczem prywatnym i publikuje

RSAK1 (M )

każdy może użyć klucza publicznego

RSA−1
K2 (RSAK1 (M )) = M
0

Jeśli otrzymane M 0 ma sens, a nie jest chaotycznym ciągiem bitów,


wiadomość można uznać za wiarygodną (M 0 = M ).
W ten sposób odbiorcy mogą mieć pewność, że nadawcą wiadomości jest
Alicja, 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 pierwsze
Liczby względnie pierwsze nie mają wspólnych dzielników oprócz 1.

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

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 to


p, 2p, . . . , p(q − 1), q, 2q, . . . , q(p − 1), liczb mniejszych od pq jest
pq − 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 Eulera
Niech 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 Fermata


W 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 Eulera


Niech x, n będą liczbami naturalnymi względnie pierwszymi, x < n.
Niech P = (a1 , a2 , . . . , aϕ(n) ) będzie zbiorem liczb względnie pierwszych z
n, mniejszych od n (x ∈ P ).
Utwórzmy nowy zbiór
P 0 = xP = (xa1 mod n, xa2 mod n, . . . , xaϕ(n) mod n).
Zauważmy, że
1 każde xai mod n jest względnie pierwsze z n
2 każde xai mod n ∈ P
3 xai = xaj ⇔ ai = aj , czyli P 0 jest zbiorem różnoelementowym
Z powyższego wynika, że P 0 jest permutacją zbioru P . W takim razie

a1 a2 . . . aϕ(n) = (xa1 )(xa2 ) . . . (xaϕ(n) ) mod n


a1 a2 . . . aϕ(n) = xϕ(n) a1 a2 . . . 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 RSA


wybieramy 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 ) = 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) =

(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,

M 1+kϕ(n) mod n = M (M ϕ(n) )k mod n = M (1 mod n)k mod n =


M 1k 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 ogromnej


liczby n na czynniki pierwsze.
Liczba n jest tak budowana, żeby była iloczynem dwóch bardzo
dużych liczb pierwszych. Dlatego odkrywanie coraz większych liczb
pierwszych jest przedmiotem konkursów z dużymi nagrodami
pieniężnymi.
Znając p i q można łatwo odtworzyć podstawę algorytmu poprzez
mnożenie n = pq. Natomiast mając tylko n, dokonanie faktoryzacji
nie 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 algorytmem
deterministycznym, dlatego wykorzystuje się w praktyce funkcje
zamieniające tekst jawny M na liczbę m < n, która dopiero jest
szyfrowana (operacja „padding”)
czysty RSA jest więc podatny na ataki z wybranym tekstem jawnym
poprzez szyfrowanie publicznym kluczem dobranych tekstów i
sprawdzania 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 z
kryptogramu 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 za


pomocą tego samego e ale różnych n (co najmniej e różnych
użytkowników posiada różne zestawy kluczy z tym samym
wykładnikiem e), to algorytm można rozłamać stosując tzw. chińskie
twierdzenie o resztach
ponieważ RSA jest algorytmem multiplikatywnym,

M1e M2e = (M1 M2 )e mod n

można wykonać atak z podstawionym tekstem zaszyfrowanym.


Atakujący chce poznać treść szyfrogramu C = M e mod n. Mnoży go
przez Re i „prosi” posiadacza klucza prywatnego o zdekodowanie
szyfrogramu (M R)e wchodząc w posiadanie tekstu jawnego M R.
Znając R mnoży M R 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ńskie
twierdzenie o resztach

CRT – Chinese Reminder Theorem


Jeśli n1 , . . . , nk ∈ N są parami względnie pierwsze, zaś a1 , . . . , ak ∈ Z, to
istnieje a ∈ Z takie, że

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

Chińskie twierdzenie o resztach można wyrazić jako zależność pomiędzy


układem równań modulo pewien zbiór liczb parami względnie
pierwszych
a równaniem modulo iloczyn tych liczb
ponieważ układ równań


 a = a1 mod n1

 a = a mod n
2 2

 . . .


a = ak mod nk

spełnia dokładnie jedna liczba a z przedziału

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)

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 + 2
23/5 = 4 · 5 + 3
23/7 = 3 · 7 + 2

oraz rozwiązanie ogólne a = 23 + k · 105.


Chińczycy wykorzystywali tę wiedzę do szybkiego sprawdzania stanu
liczebności wojsk, zarządzając zbiórki w dwu-, trzy-, pięcioszeregu i licząc
tylko 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 implementacjach


RSA 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 e0q . Dostanie wtedy

Cp = M ep mod p
0
Cq0 = M eq mod q
C 0 = [((Cq0 − Cp ) · K) mod q] · p + Cp

Licząc C − C 0 redukuje się wyrazy z Cp

C − C 0 = [((Cq − Cq0 ) · K) mod q] · p

zaś wynik jest proporcjonalny do liczby p. Wystarczy teraz obliczyć


największy wspólny dzielnik C − C 0 i n = pq,

NWD(C − C 0 , n) = p

natomiast q wyznacza się dzieląc n/p. To pozwala na odtworzenie kluczy


szyfrują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ła
procesorowi AMD Opteron 2,2 GHz pracującego na pełnej mocy przez
1500 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ści
1024b
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 Cryptanalysis
www.tau.ac.il/~tromer/papers/acoustic-20131218.pdf

przedstawia metodę wydobycia 4096b klucza RSA za pomocą podsłuchu


ultradźwięków wydawanych przez procesor podczas wykonywania
określonych operacji. Atak można przeprowadzić za pomocą telefonu
komórkowego z odległości ok. 30 cm od laptopa. Wykorzystanie lepszych
mikrofonó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 problemu


trudnego z punktu widzenia klasycznej algorytmiki. Czas wykonania
najszybszego algorytmu General Number Field Sieve (GNFS, ogólne sito
ciała liczbowego) wynosi
 
O exp[1, 9(ln N )1/3 (ln ln N )2/3 ]

Jest też klasycznym przykładem efektywnego zastosowania komputera


kwantowego. Algorytm Shorra faktoryzacji (1994 r.) ma czas wykonania
rzę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 128b
hash
autor: Ron Rivest – współtwórca RSA (1991 r.)
rozłamali: X. Wang, D. Feng, X. Lai, H. Yu (2004 r.) pokazując
istnienie kolizji w algorytmie, czyli istnienie różnych wiadomości M1
i 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ą jest
m.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 i
ostatniego 448b
Uzupełnienie ostatniego bloku o 64b licznik znakujący rozmiar
wiadomości
Stan początkowy to
0123456789ABCDEFFEDCBA9876543210
Każdy blok jest poddawany funkcji MD5, która
I 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ą tylko


4 z 16 bloków 32b (A, B,...)
F to mieszanie 32b fragmentów wg
pewnego schematu
Mi to dodanie stałej zależnej od
numeru kroku; są to pierwsze 32b
z 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 ⊕ z
Ki=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 MD5
rozwijana od 1993 r. przez amerykańską NSA
I SHA-0 – 1993 r. – całkowicie wycofany
I SHA-1 – 1995 r. – wady wykryte w 2005 r., od 2010 r. oficjalnie nie
jest zalecany (Microsoft Windows nie będzie przyjmował certyfikatów
sygnowanych SHA-1 od roku 2017)
I SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512) – 2001 r. – oficjalnie
nie opublikowano ataków na SHA-2, ale ze względu na jego
algorytmiczne podobieństwo do SHA-1 jest on niepewny
I SHA-3 – 2012 r. – wyłoniony na drodze konkursu ogłoszonego przez
NSA
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ące
muszą być znane obu stronom
wymiana kluczy bez zabezpieczenia (jawnie) mija się z celem i jest
ryzykowna
wyróżnia się dwie metody postępowania:
I wymiana kluczy
I 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średnio
mię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 poprzez
niezabezpieczoną sieć publiczną.

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.

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ę g a mod p
2 Bolek wysyła Alicji liczbę g b mod p
3 Alicja wylicza tajny klucz podnosząc liczbę Bolka do potęgi a
K = (g b )a mod p = g ab mod p
4 Bolek wylicza tajny klucz podnosząc liczbę Alicji do potęgi b
K = (g a )b mod p = g ab 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 szyfrowana
kluczem generowanym z hasła użytkownika poprzez zastosowanie
funkcji 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żytkownika
I „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ż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

Iloczyn skalarny (wewnętrzny) w przestrzeni Hilberta


Z
hφ(x)|ψ(x)i = dx φ∗ (x)ψ(x)

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)

hψ|p̂φi = hp̂† ψ|φi

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

|ψi = c1 |ψ1 i + c2 |ψ2 i + . . .


2
przy czym, aby stan był unormowany hψ|ψi = |ψi = 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 (przypadek
ciągły), że układ w stanie |ψi po pomiarze znajdzie się w stanie |ψi i

Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 294 / 325
Informatyka kwantowa Mechanika kwantowa

Zasada nieoznaczoności Heisenberga


Istnieją wielkości fizyczne, których nie da się określić jednocześnie z
dowolną dokładnością, m.in. położenie i pęd:
1
(∆x)(∆p) ­ ~
2
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, czyli
nie 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 na
odwrót: rzut ~x na kierunek ~v ). Tak więc (~v · ~x)~x jest składową ~v w
kierunku ~x.
Iloczyn skalarny w 3D przestrzeniu euklidesowej

~v · ~x = v1 x1 + v2 x2 + v3 x3

lub w przypadku ciągłych stopni swobody


Z
~v (α) · ~x(α) = dα v(α)x(α)

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 ψ

(|ψihψ|) |φi = hψ|φi|ψi

gdzie hψ|φi określa „długość rzutu” (albo stopień przekrycia stanów ψ i


φ), zaś |ψi „kierunek”.

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

Funkcja falowa opisuje wszystkie możliwe do zmierzenia wartości


parametró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-demolition
measurements)

Co się dzieje w momencie pomiaru?


Następuje „kolaps funkcji falowej”, który matematycznie oznacza
wyrzutowanie funkcji falowej na podprzestrzeń odpowiednich stanów.
Pomiar nieodwracalnie zmienia funkcję falową. Informacja sprzed pomiaru
jest 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 opartej


na przesyle informacji kanałem kwantowym natychmiast niszczy strukturę
przesyłanych danych. Podsłuchane bity traktuje się jak uszkodzone i
ponawia transmisję. Charakter transmisji kwantowej wymaga oprócz
podsłuchanych bitów również pewnej dodatkowej informacji do pełnego
odczytania danych. Te dodatkowe informacje dla uszkodzonych bitów nie
są 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 kwantowa
Bity 0 i 1 reprezentowane będą przez dwa ortonormalne stany

stany : |0i, |1i


unormowane : h0|0i = h1|1i = 1
ortogonalne : h0|1i = 0

Wygodna jest reprezentacja macierzowa w postaci


! !
1 0
|0i = , |1i =
0 1

Qubit (kubit) czyli bit kwantowy to obiekt o strukturze

|qi = c0 |0i + c1 |1i, |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ś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

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 ich


działanie na oba stany 0 i 1
(
|0i → a|0i + b|1i
U:
|1i → c|0i + d|1i

Wykorzystując reprezentację macierzową prowadzi to do


! ! ! ! !
1 1 0 a ? 1 
U =a +b = 

0 0 1 b ? 0

 !

 a c
⇒U =
! ! ! ! ! b d
0 1 0 ? c 0 


U =c +d = 

1 0 1 ? d 1 

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

Pierwiastek kwadratowy z negacji


Bramka „pierwiastek z negacji” zdefiniowana jest przez macierz


!
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

Bramki kwantowe reprezentują ewolucję stanu opisywaną równaniem


Schrödingera. 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 czyli Bramka SWAP = 3x CNOT


Controlled-NOT

Bramka TOFFOLI czyli


Controlled-Controlled-NOT

Bramka FREDKIN czyli


Controlled-SWAP

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 bramek


odwracalnych. Można sprawdzić, że poniższe macierze są unitarne i
działają na stany 0 i 1 tak jak odpowiednie bramki:
   
1 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0
CNOT =  SWAP = 
   
0 0 0 1 0 1 0 0
 

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

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
!
1 1 1
H=√
2 1 −1

i służy do zamiany bazy |0i, |1i na H|0i, H|1i.

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

Bramka zmiany fazy


Bramka zmiany fazy jest zdefiniowana przez macierz
!
1 0
Fα =
0 eiα

i służy do zmiany fazy (obrotu) stanu.

Szczególny przypadek dla α = π to


!
1 0
F =
0 −1

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

Dowiedzieliśmy się do tej pory, że


bity zastępujemy qubitami, które są kombinacjami liniowymi zera i
jedynki 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

{|00i, |01i, |10i, |11i}

z 4D przestrzeni Hilberta H4 = H2 ⊗ H2 , gdzie |abi = |ai|bi.


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 separowalnego
1 1 1
(|00i + |01i + |10i + |11i) = √ (|0i + |1i) √ (|0i + |1i)
2 2 2

Przykład stanu splątanego (PARA EPR)


1
√ (|00i + |11i)
2

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

Klasyczny kanał informacji – pozwala na przesłanie bitów między Alicją


a Bobem.
Kwantowy kanał informacji – pozwala na przesłanie qubitów między
Alicją a Bobem.
Czy Alicja, mając tylko kanał klasyczny, może przesłać Bobowi nieznany
jej stan kwantowy a|0i + b|1i?
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 to
na jednoznaczne wyznaczenie a i b
Odpowiedź brzmi: nie! Kanał kwantowy jest konieczny, a można go
utworzyć 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ść 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

Stan całego układu jest więc postaci


1
(a|0i + b|1i) √ (|00i + |11i) =
2
1
= √ (a|000i + a|011i + b|100i + b|111i)
2

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 (lewy
i środkowy), wykorzystując lewy jako kontrolny. Stan na tym etapie
1
√ (a|000i + a|011i + b|110i + b|101i)
2
2 Alicja wykonuje transformację Hadamarda na lewym qubicie
1
[a(|0i + |1i)|00i + a(|0i + |1i)|11i + b(|0i − |1i)|10i + b(|0i − |1i)|01i]
2
co można przepisać, wydzielając qubit Boba (prawy), w postaci
1
[|00i(a|0i+b|1i)+|01i(a|1i+b|0i)+|10i(a|0i−b|1i)+|11i(a|1i−b|0i)]
2

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 na


jeden konkretny
Pomiar Alicji Stan układu po obserwacji
00 |00i(a|0i + b|1i)
01 |01i(a|1i + b|0i)
10 |10i(a|0i − b|1i)
11 |11i(a|1i − b|0i)
Każdy przypadek oznacza, że u Boba cząstka jest w innym stanie
4 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 |00i(a|0i + b|1i) nic
01 |01i(a|1i + b|0i) NOT
10 |10i(a|0i − b|1i) F
11 |11i(a|1i − b|0i) F NOT
6 W każdym przypadku stan qubitu Boba ustala się na a|0i + b|1i

Teleportacja polega tu na przeniesieniu stanu qubitu, nie fizycznego


przeniesienia cząstek opisywanych przez qubit. Stan jest przenoszony, a
nie kopiowany, gdyż po stronie Alicji ulega on zniszczeniu.

Teleportacja ma pełnić rolę magistrali danych, kabli i łączy w


komputerze kwantowym.

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

QKD – Quantum Key Distribution


Największą słabością klasycznych protokołów szyfrujących jest
pierwsza 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 i
bezpieczne przesłanie klucza do klasycznego algorytmu szyfrującego
między stronami.
Protokoły kwantowej dystrybucji klucza nazywane są również (mniej
poprawnie) „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 za
każdym razem, czy wykonują pomiar np. wzdłuż osi x czy z
publicznie wymieniają się informacją, wzdłuż których osi wykonywali
pomiary
na średnio w połowie przypadków mierzyli inne osie (co niczego im nie
mówi), ale w połowie mierzyli wzdłuż tych samych osi – wtedy ich
wyniki są antyskorelowane
mogą w ten sposób ustanowić losowy ciąg bitów, który posłuży za
klucz

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

Schemat time-reversed EPR


Alicja i Bob przygotowują swoje próbki qubitów w jednym z czterech
stanów (losowo)
| ↑z i, | ↓z i, | ↑x i, | ↓x i
zestawy qubitów są wysyłane do Celiny, która przeprowadza operację
tzw. rzutowania na bazę Bella, tworząc pary EPR z par qubitów
otrzymanych od Alicji i Boba
Celina ogłasza wyniki swojej operacji
w połowie przypadków, gdy Alicja i Bob tworzyli stan wzdłuż tej samej
osi, mają korelację i mogą użyć tego qubitu do dołączenia do klucza
Alicja i Bob mogą też zweryfikować część swoich qubitów aby
sprawdzić, czy Celina nie przeprowadziła ataku man-in-the-middle
w tym schemacie nie ma konieczności tworzenia i rozdzielania par
EPR, kosztem dopuszczenia trzeciej strony do procesu tworzenia
klucza; Celina może prowadzić centralną usługę pośredniczącą w
generowaniu kluczy
Marek Góźdź (2016/2017) Bezpieczeństwo sys. komp. 17 listopada 2017 323 / 325
Informatyka kwantowa Podsumowanie

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

You might also like