Try   HackMD

04 Útoky na kryptografické systémy a protokoly (1.5 hodinky)

tags: řsss-řk, bezpečnost, PV204, PV079, PA197

Útoky na kryptografické systémy a protokoly. Využití hardwaru pro ochranu citlivých/kryptografických dat a jejich operací. Smartcards a jejich role jako bezpečnostního mechanismu.

Útoky

Útoky na hesla

  • Offline Brute-force: reálně do 8 chars
  • Dictionary
  • Patterns: kombinace dictionary + bruteforce (Password[0-9]*)
  • Rainbow tables: umožnují time-memory tradeoff, hashe jsou předpočítané a uložené v paměti
  • Brute-force+Special HW: parallizace, GPU, ASIC (50 billion computations per second)

Jak se bránit?

  • Volit silná hesla - žádný hashovací systém nedokáže zachránit velmi slabé heslo
  • Zvýšit cenu bruteforce
    • PBKDF2: aplikace pseudonáhodné funkce HMAC na heslo se solí, přičemž tento proces je opakován několik krát (1000 - 10k). Výrazně zpomaluje bruteforce ale i zároveň uživatele. Dostatečné zpomalení útočníka se specializovaným HW může vést k nepoužitelnosti pro běžného uživatele s CPU.
    • Scrypt: Memory-hard funkce, namísto času bere pamět, pro jednu operaci vynucuje x bytů v paměti, limituje paralelizaci
    • Argon2: Memory-hard hash funkce, více flexibility než Scrypt, postaven na AES
    • Bcrypt: Implicitně přidává salt k hashi.
      [link]

Replay útok

Útočník odchytí validní zprávu a jejím přeposláním přesvědčí poctivou stranu o její validitě, přestože byla použita v jiném kontextu než pro který byla prvně vytvořena
Jak se bránit?

  • přidání tagu s session ID a counterem nebo hash chain do zpráv
  • přídání timestamps do zpráv (nutná synchronizace), TTL (time to live) limit

Reflection útok

Útočník použije cíl útoku k tomu, aby authentizoval vlastní challenge. Například, jsou dvě zařízení, které se vzájemně autentizují pomocí sdíleného tajemství a HMACu. První zařízení požaduje autentizaci od druhého a pošle mu nonce, jehož HMAC má zaslat zpátky. Druhé zařízení (útočník) si otevře další komunikaci s prvním zařízením a přepošle mu stejný nonce. Validní HMAC pak zašle zpátky a je tak validně authentizované bez nutnosti znalosti sdíleného klíče.
Jak se bránit?

  • nepoužívat symetrické výměny v protokolu

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

SYN flood attack

Záplava pakety SYN neboli SYN-flood je druh útoku označovaný jako Denial of Service. Útočník pošle posloupnost paketů s příznakem SYN cílovému počítači, ale již dále neodpovídá. Pokud se klient pokouší navázat spojení se serverem protokolem TCP, klient a server si za normálních okolností vymění tři TCP pakety:

  1. Klient pošle na server paket s příznakem SYN (synchronizovat)
  2. Server uzná (acknowledge) žádost o synchronizaci a pošle paket s příznaky SYN a ACK
  3. Klient pošle paket s příznakem ACK
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

Side channels útoky

Neinvazivní útoky postranními kanály jsou založeny na nedokonalosti fyzické implementace kryptografických algoritmů. Získávají informace o uložených datech ze zdrojů, které nejsou primárně určeny pro komunikaci.

Časová analýza

využívá faktu, že čas operace závisí na zpracovávaných datech
často bývá důsledkem optimalizace nebo špatného návrhu algoritmu

Differenční power analýza

Neinvazivní útok, který využívá statickou analýzu energetické spotřeby různých operací na různých vstupech. Padding, Permutations, etc..

Oracle útoky

Útok, který využívá padding zprávy. Možný u CBC modu.
Dobře popsané zde zdroj

Microarchitectural útoky – Meltdown, Spectre

Cache Timing útoky

Cache Timing útoky využívají časové rozdíly mezi přístupem k datům uloženým v mezipaměti a datům, která nejsou uložena v mezipaměti. Vzhledem k tomu, že přístup k datům uloženým v mezipaměti je rychlejší, může program zkontrolovat, zda jsou jeho data uložena v mezipaměti měřením doby, kterou k nim potřebuje.

V jedné formě útoku útočník zaplní mezipaměť svými vlastními daty. Když k datům přistupuje oběť, která používá stejnou mezipaměť, data oběti se přenesou do mezipaměti. Protože velikost mezipaměti je konečná, načtení dat oběti do mezipaměti vynutí některá data útočníka z mezipaměti. Útočník poté zkontroluje, které části jeho dat zůstávají v mezipaměti, a z těchto informací vyvodí, jaké části paměti oběti byly zpřístupněny.

Meltdown a Spectre

Meltdown a Spectre jsou dva útoky z 2017, které využívají kritické zranitelnosti moderních procesorů. Tyto zranitelnosti hardwaru umožňují programům krást data, která jsou aktuálně zpracovávána v počítači. Zatímco programy obvykle nemají povoleno číst data z jiných programů, škodlivý program může zneužít Meltdown a Spectre k získání tajemství uložených v paměti jiných spuštěných programů.

  • Meltdown - allows to read memory you have no privilege to access to. Exploits speculative execution - procesor řeší oprávnění instrukce až potom co je vyhodnocená jako oprávněná, mezivýsledky ale zůstávají v cachi než se přepíšou.

  • Spectre - allows to read any byte in current process virtual memory (even isolated in sandboxes).

zdroj
zdroj

Spectre dovoluje přečíst paměť pouze v rámci sdílené virtuální paměti (např. v rámci jednoho programu - jeden tab browseru může přečíst informace využívané druhým tabem), zatímco Meltdown využívá speculative execution, aby přečetl informace ze zabezpečené části paměti.

HW Ochrana citlivých dat

FIDO U2F tokens

authentizační tokeny, náhrada hesel tokenem s asymetrickým párem klíčů + challenge-response protokolem, např. Yubikey. Token ověřuje dvě věci během authentizace:

  1. uživatel má fyzický přístup k zařízení, které bylo předem zaregistrované
  2. uživatel je aktivní během authentizace (zmáčkne čudlík na tokenu)

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

TPM - Trusted platform module

Kryptografické SM, které jsou vevnitř/připojené k dalšímu zařízení. Cena v desítkách dolarů.
Může být umístěn:

  1. Samostatný čip na základní desce
  2. Zakorporované do CPU
  3. Software TPM - není HW

Použití:

  • Bezpečné vytváření a ukládání kryptografických klíčů
  • Potvrzení, že operační systém a firmware v zařízení jsou takové, jaké mají být, a nikdo s nimi nemanipuloval
  • šifrování/dešifrování disku

Hardware Security Modules (HSMs)

HSM je bezpečnostní zařízení, které lze přidat do systému pro správu, generování a bezpečné ukládání kryptografických klíčů. Vysoce výkonné HSM jsou externí zařízení připojená k síti pomocí TCP/IP. Jejich cena je ve stovkách a tisících dolárů (enterprise usage).

Použití:
šifrování, dešifrování, generování klíčů, PRNG, podepisování / ověřování podpisu.
zdroj - What are the differences between TPM and HSM?

HW peněženky na kryptoměnu

bezpečné uchování klíčů + podepisování transakcí, offline, Trezor nebo Ledger
zdroj

Intel SGX

SGX (Software Guard Extensions) je rozšíření architektury Intel Instruction Set Architecture (ISA) umožnuje lépe zabezpečit software. Poskytuje především instrukce pro vytvoření izolovaného prostředí Enclave. Důvěryhodný HW vytvoří tento bezpečný kontejner a uživatel vzdálené výpočetní služby nahraje požadovaný výpočet a data do zabezpečeného kontejneru. Důvěryhodný HW pak chrání důvěrnost a integritu dat, když jsou na nich prováděny výpočty.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Smartcards

SM je malý levný počítač navrhnutý tak aby byl co nejvíce bezpečný.
SM je relativně výkonné zařízení, které je přitom dostatečně levné a přenosné. Primárně jsou používané v telekomunikacích SIM a finančním sektoru (bankovní karty, ePassports. Dnes spoustu secure HW používá SM TPM, FIDO U2F tokeny, cryptocurrency HW peneženky

  • 8-32 bit CPU @ 5-50MHz
  • persistent memory 32-200+kB (EEPROM)
  • volatile fast RAM, usually <<10kB
  • truly random number generator
  • cryptographic coprocessor + alg (RSA, ECC, AES128, ECDSA)

SM benefity

  • výpočetní schopnosti může šifrovat a podepisovat data, klíč nemusí nikdy opustit SM
  • obsahuje standardizované crypto algoritmy
  • bezpečné uložiště - management klíčů a citlivých dat
  • má fyzickou ochranu
  • narozdíl od např. smartphonů, je SM mnohem jednoduší zařízení, méně komplexity, méně bugů

Fyzická ochrana karty

  • Tamper-evidence (fyzický útok bude vždy viditelný)
  • Tamper-resistance (fyzický útok je náročný)
  • Tamper-response (fyzický útok je detekovatelný a SM na něj zareaguje - vymazání klíčů)

Útoky na karty

invazivní útoky: fyzický útok na kartu s cílem dostat se k paměti s citlivými údaji
semi-invazivní útoky: částečně fyzické poškození, ale čip funkční (např. expose communication bus, read data by microprobe)
side-channel útoky: neplánovaný únik data SM přes různé kanály, které nejsou určené k přenosu dat např. power consumption analysis, timing attack
logické útoky: nefyzické remote útoky, které většinou manipulují s komunikací terminálu a SM, Man-in-the middle attacks