diff --git a/tex/prace.tex b/tex/prace.tex index b1312e7..b326035 100644 --- a/tex/prace.tex +++ b/tex/prace.tex @@ -58,10 +58,10 @@ \nastavautora{Adam Mirre} \nastavnazevcz{Bezdrôtová bezpečnosť} \nastavnazeven{Wireless security} % Jen u anglicky psané práce -\nastavabstraktcz{Text abstraktu česky} -\nastavabstrakten{Text of the abstract} -\nastavklicovaslovacz{freenet, WEP, WPA, WPA2} -\nastavklicovaslovaen{freenet, WEP, WPA, WPA2} +%\nastavabstraktcz{Text abstraktu česky} +%\nastavabstrakten{Text of the abstract} +%\nastavklicovaslovacz{freenet, WEP, WPA, WPA2} +%\nastavklicovaslovaen{freenet, WEP, WPA, WPA2} % Následující příkaz nastaví standard PDF/A-1b \aplikujpdfa diff --git a/tex/tex/UTB.tex b/tex/tex/UTB.tex index 34847b0..8e2bbd4 100644 --- a/tex/tex/UTB.tex +++ b/tex/tex/UTB.tex @@ -473,24 +473,24 @@ } -% Strana s abstraktem a klíčovými slovy v češtině a angličtině -\newcommand{\abstraktaklicovaslova}{ - \clearpage - \thispagestyle{empty} - \nm{Abstrakt} - \abstraktcz - - \vspace{1cm} - Klíčová slova: \klicovaslovacz - - \vspace{3cm} - - \nns{Abstract} - \abstrakten - - \vspace{1cm} - Keywords: \klicovaslovaen -} +%% Strana s abstraktem a klíčovými slovy v češtině a angličtině +%\newcommand{\abstraktaklicovaslova}{ +% \clearpage +% \thispagestyle{empty} +% \nm{Abstrakt} +% \abstraktcz +% +% \vspace{1cm} +% Klíčová slova: \klicovaslovacz +% +% \vspace{3cm} +% +% \nns{Abstract} +% \abstrakten +% +% \vspace{1cm} +% Keywords: \klicovaslovaen +%} % ============================================================================ % diff --git a/tex/tex/text.tex b/tex/tex/text.tex index d0d8a04..6af44c2 100644 --- a/tex/tex/text.tex +++ b/tex/tex/text.tex @@ -230,15 +230,15 @@ Autori týchto prác sa podrobne venujú rôznym metódam, vďaka ktorým je mo Pre neudržateľnosť protokolu WEP sa IEEE (za podpory Wi-Fi Alliance) rozhodla predčasne vydať nový protokol ako rýchlu záplatu - WPA. Malo ísť o dočasné riešenie na prechodné obdobie. -TKIP bol IEEE vyhlásený za zastaraný v roku 2009. - +TKIP bol IEEE vyhlásený za zastaraný v roku 2009. \\ +Napriek rozšírenému názoru, že WPA+CCMP dáva úroveň zabezpečenia WPA2 s CCMP, opak je pravdou. WPA aj s použitím AES zdedila chyby od svojho predchodcu a zároveň WPA2 je rozšírená o viac ako len zmenené underlying crypto. Odporúčam v každom možnom prípade WPA2. \n{2}{Zlepšenia oproti WEP} \begin{itemize} \item key mixing funkcia \item implementácia \it{sequence countera} - \item použitie \it{MIC} + \item použitie MD5 \it{MIC} \end{itemize} Jedno zo zlepšení (oproti WEP) prichádza v spôsobe \it{mixovania kľúča} (key mixing). @@ -248,12 +248,14 @@ Pôvodne sa pri WEPe jednalo len o jednoduchú konkatenáciu dvoch hodnôt, čo Sequence counter sa využíva na odmietnutie paketov, ktoré na access point prídu poprehadzované (out of order). Je to ochrana proti \it{replay útokom}. Nakoniec sa na zozname vylepšení ocitá aj MIC - Message Integrity Check, ktorý, ako názov napovedá, je implementáciou digitálneho podpisu - kontrola integrity správy. \\ -WPA utilizuje HMAC s MD5 hashom. +WPA utilizuje HMAC s MD5 hashom, WEP používa CRC-32. \n{2}{pbkdf2} -\n{2}{4-way handshake} +\it{Password based key derivation function} je zodpovedná za generovanie 256 bitového PMK z hesla premenlivej dĺžky (8-64 znakov) a SSID premenlivej dĺžky 4096 iteráciami. + +\n{2}{4-way handshake} \label{4wh} Asociáciu klienta s vybraným AP predchádza štandarný komunikačný pár Probe Request (klient) - Probe Response (AP). \\ Predtým ako dôjde k zakončeniu handshaku, musí nastať výmena EAPOL paketov. @@ -262,7 +264,7 @@ Prebieha vzájomná autentikácia hneď po asociácii (pripojení klienta). Celý proces názorne: \begin{enumerate} \item $Client station \xleftarrow[]{Anonce} AP$ - \item PTK Client station $\xrightarrow[]{Snonce + MIC}$ AP + \item PTK, KCK Client station $\xrightarrow[]{Snonce + MIC}$ AP \item $Client station \xleftarrow[]{GTK + key install} AP$ \item Client station $\xrightarrow[]{ACK}$ AP \end{enumerate} @@ -271,7 +273,7 @@ Celý proces názorne: \begin{itemize} \item AP vygeneruje Anonce. Anonce je kryptograficky náhodná hodnota o veľkosti 64 bitov generovaná Authenticatorom (AP). \\ - \item Klient prijme Anonce, vygeneruje Snonce a následne PTK a MIC. + \item Klient prijme Anonce, vygeneruje Snonce a následne PTK. Z PTK vygeneruje KCK a z neho MIC. Snonce je kryptograficky náhodná hodnota o veľkosti 64 bitov generovaná Client station (používateľským zariadením). \\ \item PTK (Pairwise Transient Key) je odvodený z 256 bitového PMK (Pairwise Master Key), Anonce, Snonce, Client a AP MAC adries. \\ PMK je generovaný 4096 iteráciami pbkdf2(PSK+SSID). \\ @@ -281,7 +283,7 @@ Celý proces názorne: Klient pošle vygenerovaný MIC na AP spolu s Snonce ako súčasť správy 2. \\ \n{3}{Krok 3} AP vygeneruje PTK za použitia Snonce od klienta a overí jeho validitu za pomoci MIC. Tým sa zároveň overí, že klient aj AP majú rovnaké heslo, na základe ktorého vygenerovali rovnaký kľúč (PMK a následne PTK) a nakoniec aj validný podpis (MIC). \\ -AP Vygeneruje GTK a klientovi odošle sprŕavu 3 s inštrukciou "key: install" +AP Vygeneruje GTK a klientovi odošle správu 3 s inštrukciou "key: install" \n{3}{Krok 4} AP vygeneruje za pomoci Snonce od klienta PTK a overí, že MIC vygenerovaný klientom sa rovná MIC hodnote, ktorú vygeneruje on sám. Ak sú rovnaké MIC hodnoty, bude rovnaký aj kľúč. @@ -297,20 +299,52 @@ Pri úspešnom prevedení celého útoku dochádza k odhaleniu kľúča bezdrôt % %\end{minted} -\obr{airodump-ng}{fig:airodump}{1}{graphics/airodump-ng.png} -Názvy cudzích sietí boli rozostrené. - \obr{airodump-ng príkaz na monitoring AP}{fig:airodump_command}{1}{graphics/airodump-ng_command.png} -\obr{aireplay -> deauth}{fig:aireplay}{1}{graphics/aireplay-ng.png} +Cieľom našej snahy je zachytiť 4-way handshake, vďaka ktorému sa budeme môcť pokúsiť slovníkovým útokom získať heslo siete. \\ +Príkazom airodump-ng z obrázka \ref{fig:airodump_command} začneme počúvať prioritne na kanáli 6 (-c 6) a sledujeme prioritne pakety odoslané zariadením so špecifikovanou MAC adresou za prepínačom "-b", ktoré vysiela sieť z názvom "AM2". + +\obr{airodump-ng}{fig:airodump}{1}{graphics/airodump-ng.png} +Názvy cudzích sietí boli rozostrené, sledovaná sieť AM2 je na vrchu zoznamu na obrázku \ref{fig:airodump}. +Ako môžeme z obrázku vyčítať, ide o WPA zabezpečenú sieť využívajúcu CCMP, no handshake prebieha rovnako ako pri použití TKIP. \\ +V tejto chvíli potrebujeme už len náš falošný hotspot, ktorý vytvoríme s rovnakým názvom a typom zabezpečenia ako má pôvodná sieť, aby sme docielili, že sa k nám v~ďalšej fáze klient pripojí. +Použitý príkaz je na obrázku \ref{fig:airbase}, pre podrobnosti odporúčam nahliadnuť do manuálu airbase-ng (\it{"read the fine manual"}) - \texttt{man airbase-ng}. + +Na obrázku \ref{fig:aireplay} je za prepínačom \texttt{-c} upresnená MAC cieľového zariadenia, ktoré vy výstupe airodump-ng figurovalo ako asociované s predmetnou sieťou a chceme ho dostať na našu sieť. +\obr{aireplay \longrightarrow{} deauth}{fig:aireplay}{1}{graphics/aireplay-ng.png} + +Týmto príkazom začneme okamžite (\texttt{-0}) vysielať nepretržitý prúd (\texttt{0} hneď za \texttt{-0}, pozitívne celé číslo by bol počet paketov) deautentifikačných správ zariadeniu za \texttt{-c}. + +Správy sa budú javiť ako odosielané legitímnym AP s MAC za prepínačom \texttt{-a} (skopírovanú napr. z výstupu airodump-ng) a obetné zariadenie sa teda bez problému odpojí z pôvodnej siete. +Po dobu trvania vysielania nášho deauth streamu sa naspäť k pôvodnej sieti nepripojí. + +\obr{airbase}{fig:airbase}{1}{graphics/airbase-ng.png} +Keďže naša sieť nesie rovnaký názov, obeť sa pokúsi pripojiť a my zachytíme 4-way handhsake, ako je to znázornené ďalej na obrázku \ref{fig:airbase}. +V tejto chvíli skontrolujeme, \texttt{cap} súbor, ktorý by už mal obsahovať handshake. \\ +Fake AP môžeme vypnúť, rovnako aj prestať s deautentifikáciou. \\ +V našom konkrétnom prevedení predstavuje vlastne dočasný DOS. + + +\newpage +\texttt{cap} súbor s odchytenými paketmi otvoríme v programe \texttt{Wireshark} a vyfiltrujeme pakety handshaku (EAPOL), ako je znázornené na obr. \ref{fig:wireshark}. +Môžeme vidieť, že sa nám podarilo zachytiť len pakety správy 1/4 a správy 2/4 (retransmitované pakety som pre stručnosť v náhľade schoval). +Keďže nepoznáme heslo siete, nedokážeme overiť validitu MIC a nemohli sme teda klientovi poslať správu 3/4 (viď \ref{4wh}) ani očakávať potvrdzujúci \texttt{ACK}. +Tie však nie sú pre nás potrebné, v tejto chvíli už máme všetko. \obr{Wireshark EAPOL náhľad}{fig:wireshark}{1}{graphics/wireshark-overview.png} +Poznáme MAC hotspotu (to sme my - Source paketu 1) aj MAC klienta (spomínané vyššie pri deauth). \\ +Podľa obr. \ref{fig:wireshark-packet1} zobrazujúceho rozkliknutý detail správy-paketu 1 poznáme našu vlastnú \it{nonce} (Anonce). +Z ďalšieho obrázka - \ref{fig:wireshark-packet2} - (správa/packet 2) môžeme vyčítať \it{nonce} klienta (Snonce) a tiež Message Integrity Check (MIC) hodnotu. + \obr{Wireshark 4-way handshake message 1}{fig:wireshark-packet1}{0.91}{graphics/wireshark-packet1.png} + \obr{Wireshark 4-way handshake message 2}{fig:wireshark-packet2}{0.91}{graphics/wireshark-packet2.png} +Za pomoci nástrojov ako sú \texttt{hashcat}, \texttt{john} alebo \texttt{aircrack-ng} sa môžeme pustiť do lúskania za pomoci kvalitného slovníka. +Treba podotknúť, že ak sa heslo nenachádza v slovníku, nebudeme schopný zistiť. - +\newpage \n{1}{WPA2} CCMP (Counter Mode with Cipher block Chaining Message) využíva AES Counter Mode, ktorý funguje ako bloková šifra a je schopný šifrovať 128 bitové bloky dát 128 bitovým kľúčom. @@ -320,32 +354,50 @@ WPA2 CCMP pre MIC utilizuje HMAC so SHA1 hashom. \n{2}{Zmena vo 4-way handshake oproti WPA} +Po odvodení KCK z PTK sa za pomoci HMAC-SHA1 vygeneruje MIC. Pri WPA bola použitá namiesto SHA1 metóda MD5. + \n{2}{KRACK} -krack \cite{krack} -krack url \cite{krackurl} +V roku 2017 sa podarilo belgickému výskumníkovi M. Vanhoefovi objaviť chybu v štandarde Wi-Fi. +Napáda 4-way handshake novátorským spôsobom. Výsledkom je umožnená packet injection, nie však odhalenie hesla siete. + +Zakaždým, keď sa do siete pripojí nový klient, musí prebehnúť 4-way handshake na vygenerovanie nového kľuča pre šifrovanie komunikácie. +Kľúč je na klienta inštalovaný po správe 3. +Akonáhle je kľúč inštalovaný, začne sa používať na šifrovanie data framov (rámcov) za použitia predmetného šifrovacieho protokolu. \\ +Bežne sa však stáva, že sa správa stratí, alebo je odmietnutá, AP pošle správu 3 viackrát ak nedostane korektný ACK (potvrdenie protokolu TCP). +Vo výsledku tak klient môže prijať správu 3 viac krát. +Každý krát, keď prijme správu, znovu nainštaluje ten istý šifrovací kľúč a tak resetne inkrementálny počet retransmisii paketu (konkr. nonce) a počítadlo opakovaného prijatia paketu. Útok ukazuje, že útočník si môže tieto \it{nonce resety} vynútiť zozbieraním a zopakovaním retransmisie správy 3 z 4-way handhsake. Prinútením AP prijať konkrétne nonce takýmto spôsobom je možné útočiť na šifrovací protokol, výsledkom čoho je možnosť retransmisie (replay) paketov, dešifrovanie a/alebo podvrhovanie úplne nových paketov. Rovnakú techniku je tiež možné využiť proti GTK, PeerKey, TDLS a \it{fast BSS transition handhsake} (využíva sa pri rapid roamingu klientov medzi mesh hotspotmi). + +V praxi to znamená, že útočník, ktorý si dokáže vynútiť použitie konkrétnej \it{nonce} spôsobí \b{znovupoužitie rovnakého šifrovacieho kľúča s rovnakými nonce hodnotami, ktoré už boli použité v minulosti.} \\ +To ďalej znamená, že všetky WPA2 protokoly znovupoužívajú \it{keystream} pre šifrovanie paketov. +V prípade, že správa, ktorá znovupoužíva keystream, má známy obsah, stáva sa triviálnym derivácia použitého keystreamu. \\ +Tento keystream môže byť následne použitý na dešifrovanie správ s rovnakou \it{nonce}. +Tam, kde je neznámy obsah. je náročnejšie dešifrovať pakety, no napríklad anglický text je stále možné dešifrovať. +V praxi tiež nie je problém nájsť (odchytiť) pakety so známym obsahom, takže by sme mali predpokladať, že je možné dešifrovať akýkoľvek paket. + +Ak by sme dešifrovali SYN pakety, môže to napríklad viesť k \it{hijacked} (ukradnutým) TCP spojeniam. + +V prípade použitia TKIP alebo GCMP ako šifrovacieho protokolu je následok tohto útoku horší ako pri použití AES-CCMP. +Proti týmto protokolom je možné zneužiť znovupoužitie nonce na injektovanie a falzifikovanie paketov. + +V tomto čase by mali byť dostupné aktualizácie od väčšiny výrobcov, to je zároveň jediným riešením a ochranou proti tomuto útoku. \cite{krack}\cite{krackurl} + +To zároveň znamená, že pri použití WPA2-AES a posledných bezpečnostných aktualizácii by šlo o najbezpečnejšiu zónu z tých, ktoré sme sledovali. %%%%%%%%% -\n{1}{testing} -text - -Tato sekce obsahuje ukázku vložení tabulky (Tab. \ref{tab:priklad}). - -% Tabulku lze vkládat pomocí následujícího zjednodušeného stylu, nebo klasickým LaTex způsobem -\tab{Popisek tabulky}{tab:priklad}{0.65}{|l|c|c|c|c|c|r|}{ - \hline - & 1 & 2 & 3 & 4 & 5 & Cena [Kč] \\ \hline - \emph{F} & (jedna) & (dva) & (tři) & (čtyři) & (pět) & 300 \\ \hline -} - - % ============================================================================ % %\cast{Analytická část} % ============================================================================ % \nn{Závěr} -Text závěru +Na uplynulých pár stranách som sa pokúsil zľahka nasvietiť najbežnejšie problémy, s ktorými sa môže používateľ potýkať pri riešení vlastnej bezpečnosti v bezdrôtovom svete, prípadne ak zodpovedá za ďalších ľudí na pracovisku alebo aj v domácnosti. Pojednával som o problémoch, ktoré pruchádzaju s používaním otvorených sietí (freenetu) ale tiež s ich poskytovaním. + +Spomenul som najbežnejšie útoky, ktorým sa dá predpokladať, že používateľ bude čeliť a praktickou ukážkou som predviedol, ako jednoducho je možné ohroziť sa pri použití slabého hesla. + +Svet rádiových vĺn je divoké miesto, a v rukách nosíme skôr asi neuvedomelo mocné nástroje a využívame rozsiahlu spleť veľmi komplexných technológií. + +Kiež by sme ich vedeli používať múdro pre posun a blaho ľudstva. % ============================================================================ % diff --git a/tex/tex/zkratky.tex b/tex/tex/zkratky.tex index bf0486c..e65dc43 100644 --- a/tex/tex/zkratky.tex +++ b/tex/tex/zkratky.tex @@ -11,20 +11,19 @@ AP & access point \\ CBC & cipher-block chaining \\ CBC-MAC & cipher-block chaining with message authentication code \\ + CRC & Cyclic Redundancy Check \\ CTR & counter mode \\ EAP & Extensible Authentication Protocol (IETF RFC 3748) \\ EAPOL & Extensible Authentication Protocol over LANs (IEEE P802.1X-REV) \\ GTK & group temporal key \\ - KCK & EAPOL-Key confirmation key \\ - KEK & EAPOL-Key encryption key \\ + KCK & EAPOL Key confirmation key \\ + KEK & EAPOL Key encryption key \\ LON & longitude \\ LAT & latitude \\ ALT & altitude \\ MIC & message integrity code \\ PSK & preshared key \\ PMK & pairwise master key \\ - PMKID & pairwise master key identifier \\ - PMKSA & pairwise master key security association \\ PTK & pairwise transient Key \\ SNonce & Supplicant nonce \\ SPA & Supplicant address \\