kryptológia - implementácia - csirt.sk · •kryptografia saotá edokáže vyriešiť všetky...

110
Kryptológia - Implementácia Michal Rjaško

Upload: hoangtuyen

Post on 01-Mar-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Kryptológia - ImplementáciaMichal Rjaško

Obsah

• Kryptografia v praxi• Nástrahy, problémy, zraniteľnosti

• Kryptografia a zraniteľnosti• Heartbleed

• Apple „goto fail“

• BEAST útok

• ...

• Rýchlosť kryptografických konštrukcií

• Heslá

• Time-memory trade-offs• Lúštenie hesiel pomocou

dúhových tabuliek

• Postranné kanály

• Zdieľanie tajomstva

• Politika a kryptografia

2

Kryptológia

• Základom je matematika

• Detaily sú podstatné

• Správna implementácia a použitie

• Kvalitná kryptografia je nutná, ale nie postačujúca

• Môže poskytovať falošný pocit bezpečia• „šifrujeme“ – ako? mód? správa kľúčov? ...

• „podpisujeme“ – ako? implementácia? správa kľúčov? ...

3

Kryptológia a falošný pocit bezpečia

FAQ časť na stránke e-shopu:

Q: Je Váš portál bezpečný?

A: Áno, naše webové sídlo je kompletne zabezpečené, keďže využívame 128-bitové SSL (Secure Socket Layer) šifrovanie. To zaručuje, že údaje o Vašich platbách sú v bezpečí.

Akú verziu SSL / TLS server používa? Čo zraniteľnosť Heartbleed? Ako sú údaje uložené v databáze?

4

Kryptografia v praxi

• Použitie kryptografie sa zdá byť jednoduché• Hlavne, ak sú k dispozícii knižnice na všetky kryptografické primitíva• Prečo potom dochádza tak často k zlyhaniam?

• Príčiny zlyhania:1. Zlá kryptografická konštrukcia, nesprávna implementácia, zlý design, a pod.2. Aj dobrá kryptografická konštrukcia môže byť „obídená“ útočníkmi “mimo

definovaného modelu“3. Aj perfektná kryptografická konštrukcia vlastne len prenáša „najslabší bod“

v systéme na nejaké iné miesto4. Systémy sú zložité

• Vyhnite sa chybám z bodu 1, myslite na 2-4

5

Zložitosť informačných systémov

• Kryptografia samotná nedokáže vyriešiť všetky bezpečnostné problémy• Manažment kľúčov, sociálne inžinierstvo, útoky z vnútra

• Potreba navrhnúť vhodný model útočníka pre systém ako celok

• Hĺbková ochrana systému• Review, detekcia chýb, zotavenie sa systému v prípade chyby

• Bezpečnosť ako proces, nie produkt

6

Kryptografia nie je „zázračná medicína“

• Krypto je ťažké použiť správne• Implementácia musí byť bez chýb

• Potrebná „odbornosť“ - malá znalosť veci môže byť veľmi nebezpečná

• Dobré je integrovať krypto už od začiatku, nie až na konci keď je všetko ostatné hotové

• Nedá sa zabezpečiť cez kontrolu kvality• potreba „code review“ bezpečnostným expertom a penetračné testovanie

7

Všeobecné odporúčania

• Používajte iba štandardizované algoritmy• Použitie utajovaných algoritmov v zásade nezvyšuje bezpečnosť• „no security by obscurity“

• Nesnažte sa implementovať svoje vlastné kryptografické algoritmy• Systém nemôže použiť štandardný algoritmus – prepracujte systém• Ak naozaj potrebujete niečo nové, nechajte si to overiť expertom

• a najlepšie celou komunitou

• Kryptografické primitíva používajte na to, na čo sú určené

• Nepoužívajte rovnaký kľúč na rôzne operácie• T.j. jeden kľúč na šifrovanie aj autentizáciu, alebo RSA šifrovanie aj podpisovanie

• Používajte kvalitné, kryptograficky silné generátory náhodnosti

8

Kryptografické knižnice

• Uprednostnite kryptografické knižnice s vysoko-úrovňovým API pred nízko-úrovňovými• Cryptlib, NaCl, ...

• Pri použití nízko-úrovňovej knižnice je väčšia šanca jej zlého použitia / nastavenia

• Vyhnite sa programovaniu vlastných kryptografických knižníc

9

Kryptografia a zraniteľnostiNiektoré zraniteľnosti súvisiace kryptografiou

10

Kryptografia a zraniteľnosti

• Útoky na kryptografické mechanizmy• Obvykle sú slabiny v správe kľúčov a v implementácii

• Protokoly – zvyčajne slabiny v protokole, bez ohľadu na algoritmy

• Niektoré implementačné slabiny/útoky• Útok postrannými kanálmi (napr. timing útok)

• Nesplnenie bezpečnostných predpokladov (napr. náhodnosť)

• Slabiny v protokoloch (napr. útoky na SSL/TLS)

• Slabé algoritmy (napr. proprietárne algoritmy ako CCS)

11

Kryptografia a zraniteľnosti

• NIST: NVD (National Vulnerability Database)• SW zraniteľnosti a ich klasifikácia (typ, závažnosť a pod.)

• Najčastejšie zraniteľnosti v „Cryptographic Issues“:• použitie nekvalitného zdroja náhodnosti pri generovaní kľúčov,

• nedostatočná (neúplná) kontrola certifikátov,

• nekorektná implementácia kryptografických algoritmov alebo protokolov,

• fixné heslá servisných účtov alebo heslá odvodené z verejne známych údajov

12

Format String Vulnerability

OS Command Injections

Link Following

Configuration

Credentials Management

Race Conditions

Design Error

Cryptographic Issues

Authentication Issues

Path Traversal

Code Injection

Numeric Errors

Cross-Site Request Forgery (CSRF)

Information Leak / Disclosure

SQL Injections

Other

Resource Management Errors

Input Validation

Permissions, Priviledges and Access Control

Cross-Site Scripting (XSS)

Buffer Errors

0 100 200 300 400 500 600 700 800

Počty zraniteľností publikovaných v roku 2012 podľa NVD

13

Generátory náhodných čísel

• Častá príčina zlyhania kryptografických systémov• Generovanie skutočne náhodných čísel je ťažké

• (Ne)kryptografické generátory pseudo-náhodných čísel bývajú predvídateľné

• Určite nepoužívajte “rand()” funkciu zabudovanú v programovacom jazyku • srand(seed) inicializuje generátor, nastaví state=seed

• rand():• state=f(state), kde f je nejaká lineárna funkcia

• return state;

• Generovanie 128-bitového kľúča KEY=rand()∥rand()∥rand()∥rand()

• Entropia kľúča je iba 32 bitov!

14

Generátory náhodných čísel

• Generátor pseudo-náhodných čísel použiteľný v kryptografii• Výstup neodlíšiteľný od úplne náhodného akýmkoľvek efektívnym algoritmom

• Pokiaľ možno, zakaždým reinicializovaný novým zdrojom entropie

• Malo by byť ťažké uhádnuť interný stav generátora• Napr. entropia by nemala pochádzať iba z času (súborov)

• „Cold boot“ problémy• Server práve naštartoval a potrebuje zdroj náhodnosti ... je možné získať dosť

entropie, ak server beží len pár sekúnd?

15

Generátory náhodných číselnajznámejšie zraniteľnosti

• Netscape, implementácia SSL, 1995• Pseudonáhodný generátor inicializovaný na základe času, ID procesu a ID

nadradeného procesu – všetko ľahko predvídateľné hodnoty• Generátor nebol verejne dostupný („security through obscurity“), na analýzu využili

reverzné inžinierstvo

• Windows 2000 / XP, 2007• Leo Dorrendorf - Cryptanalysis of the Random Number Generator of the Windows

Operating System, http://eprint.iacr.org/2007/419.pdf• Vážne nedostatky vstavaného generátora• Ak sa útočníkovi podarilo získať stav generátora (napr. cez buffer overflow), mohol

predpovedať všetky predchádzajúce aj nasledujúce vygenerované hodnoty (napr. SSL šifrovacie kľúče)

• Opravené v XP SP3

16

Generátory náhodných číselnajznámejšie zraniteľnosti

• Debian OpenSSL, 2008• Debian distribúcie Linuxu• Zmeny v kóde pseudo-náhodného generátora drasticky znížili entropiu • Chyba bola spôsobená vývojárom, ktorý na základe upozornení kompilátora

odstránil na pohľad zbytočný kódMD_Update(&m,buf,j); /* neinicializovaná hodnota */[ .. ]MD_Update(&m,buf,j); /* neinicializovaná hodnota */

• Odstránený kód zabezpečoval zvýšenie entropie• Po jeho odstránení bol generátor inicializovaný len na základe ID procesu

(max. 32 768 hodnôt)

• Chyba umožnila odhaliť vygenerované súkromné kľúče• Veľké množstvo kľúčov a certifikátov muselo byť vygenerovaných znovu

17

Generátory náhodných číselnajznámejšie zraniteľnosti

• PlayStation 3, 2010• Sony využíva ECDSA algoritmus na

podpisovanie softvéru pre PlayStation 3

• ECDSA vyžaduje dobrý PRNG

• Opakované použitie 𝑘 vedie k odhaleniu súkromného kľúča

• SONY použilo zakaždým tú istú hodnotu 𝑘

Podpisovanie v ECDSA Sig𝑥 𝑚 :

1. 𝑘 $1,… , 𝑛 − 1

2. 𝑥1, 𝑦1 = 𝑘 × 𝐺

3. 𝑟 = 𝑥1 mod 𝑛

4. 𝑠 = 𝑘−1 𝐻(𝑚) + 𝑟𝑥 mod 𝑛

5. Ak 𝑟 = 0 alebo 𝑠 = 0 začni znova krokom 1

6. 𝜎 = (𝑟, 𝑠)

18

Generátory náhodných číselnajznámejšie zraniteľnosti

• Implementácia Bitcoinov v Androide, 2013• Chyba v Java triede SecureRandom - možné kolízie v hodnote 𝑘 pri použití ECDSA • Kolízia vedie k odhaleniu súkromného kľuča – možnosť ukradnúť Bitcoiny z

Androidovej peňaženky

• DUAL_EC_DRBG, 2007, 2013• NIST Special Publication 800-90 – kolekcia pseudo-náhodných generátorov• DUAL_EC_DRBG – odporúčaný / navrhovaný aj NSA

• Kryptografia nad eliptickými krivkami - štandard obsahuje aj sadu odporúčaných kriviek / konštánt

• 2007, Shumow, Ferguson ukázali, že konštanty mohli byť skonštruované tak, aby umožňovali „zadné vrátka“ k náhodnému generátoru

• 2013, REUTERS – Snowden: NSA zaplatilo firme RSA $10 mil., aby bol predvolený generátor práve DUAL_EC_DRBG

19

Ďalšie zraniteľnosti súvisiace s implementáciou

Heartbleed, Apple „goto fail“

20

Heartbleed

• Apríl 2014

• Zraniteľnosť v rozšírení „Hearbeat“ pre OpenSSL• „keep alive“ pre TLS

• Každá stránka obsahuje veľa súčastí (obrázky, skripty, štýly)

• Rozšírenie heartbeat zabezpečovalo, aby nebolo potrebné zakaždým negociovať nové kľúče

• Chyba v implementácii umožnila na diaľku čítať pamäť servera

21

http://xkcd.com/1354/22

http://xkcd.com/1354/23

http://xkcd.com/1354/24

Heartbleed

buffer = OPENSSL_malloc(

1 + 2 + payload+ padding

);

Payload + padding – hodnota ovládaná klientom

Zakaždým bolo možné získať max. 64kb obsahu pamäte servera

25

Apple goto fail

• Február 2014

• iOS < 7.0.5

• OS X < 10.9.2

• Chyba v implementácii SSL/TLS klienta

• Nedochádza k správnemu overeniu digitálneho podpisu servera

• Možný „man in the middle útok“

Prvé kroky TLS:

C → 𝑆: Zoznam podporovaných šifrovacích algoritmov

𝑆 → C: S vyberie „EphemeralDiffie Hellman“, vygeneruje DH parameter 𝑔𝑎

pošle to podpísané svojim tajným klientovi

𝐶 → 𝑆: C overí podpis parametrov,vygeneruje 𝑔𝑏, pošle to S

𝐶 ↔ 𝑆 : „session“ kľuč 𝑔𝑎𝑏

• ďalšia komunikácia je šifrovaná týmto kľúčom

26

Tento riadok tu nemá byť, zakaždým sa vykoná

Kód zakaždým preskočí sem a err obsahuje hodnotu reprezentujúcu úspešné overenie podpisu

Apple goto fail

27

BEAST útok, 2011

• Aplikovateľný na šifrovacie schémy bežiace v CBC móde v rámci SSL 3.0 a TLS 1.0

• Využíva nedostatočnú náhodnosť IV v týchto šifrovacích schémach• Teoretický útok navrhnutý už v roku 1995 (Rogaway)• IV inicializovaný posledným blokom šifrového textu predošlého packetu

• Predpoklady:• Zapnutý JavaScript – „Man in the browser“ – útočník cez JavaScript posiela na server

dotazy• Možnosť byť „Man in the middle“ – odpočúvať a posielať packety v sieti

• Útočník uprostred môže odhaliť „session cookie“ obete (napr. Do stránky PayPal.com)

=> t.j. pracovať so systémom v mene obete

28

BEAST útok, 2011

29

1. Podvrhnutie JavaScriptu

2. Odoslanie špeciálne vytvorenej požiadavky cez SSL

3. Odpočúvanie komunikácie4. Feedback pre JavaScript

5. Odoslanie upravenej špeciálne vytvorenej požiadavky cez SSL- Opakovane na základe Feedbacku

6. Dešifrovanie cookie

BEAST útok, 2011

• Prehliadače hneď vydali záplaty

• TLS 1.1 a 1.2 nie sú ovplyvnené – IV je generovaný náhodne

• Teoretická možnosť odhalená v roku 1995 sa stala praktickou• Útoky sa časom zlepšujú!

• Útok využíval nástroje z viacerých oblastí bezpečnosti• Man-in-the-browser cez JavaScript

• Nedostatočnú náhodnosť IV

• Možno sa budú dať tieto nástroje využiť aj pri iných útokoch

30

CRIME útok, 2012

• Zneužíva možnosť kompresie posielaných údajov cez TLS

• Teoretický útok známy od roku 2004 (Kelsey)

• Idea:• Dĺžka šifrového textu určuje dĺžku otvoreného textu• Ak poznáme dĺžku otvoreného textu, vieme pomer kompresie• Pomer kompresie odhaľuje niečo (hoci málo) o otvorenom texte

• Útok umožňuje odhalenie „session cookie“• Predpoklady podobné ako v BEAST útoku

• „man in the browser“ – JavaScript pošla na server vhodne zvolenú správu (CPA útok)• „man in the middle” – Možnosť odpočúvať packety v sieti

• Zabránime mu vypnutím konverzie v prehliadači / na serveri

31

CRIME útok, 2012

• Teoretická zraniteľnosť z roku 2004, praktický útok v roku 2012• Útoky sa časom zlepšujú!

• Nástroje vyvinuté pre BEAST útok boli využíté aj v CRIME útoku• A možno sa budú dať použiť aj inde?

• Útoky podporili rozšírenie novších (a lepších) štandardov TLS 1.1 resp. 1.2

32

Rýchlosť kryptografických konštrukciíVýkonové porovnanie základných kryptografických konštrukcií

33

Útok prehľadávaním priestoru kľúčov

Čas útoku

Individuálny

útočník

1 procesor

Stredne veľká firma

500 procesorov

Príjmy SR za 1 rok

(53,8 mil.

procesorov)

1 minúta 33,7 42,6 59,3

1 hodina 39,6 48,5 65,2

1 deň 44,1 53,1 69,8

30 dní 49,1 58,0 74,7

1 rok 52,7 61,6 78,3

100 rokov 59,3 68,3 85,0

• Ilustračný príklad pre konkrétny procesor (i7-2600)

34

Generické útoky

Konštrukcia Generický útok (k dĺžka kľúča, n veľkosť

odtlačku/výstupu)

Symetrická šifra Prehľadávanie priestoru všetkých kľúčov ~ 2𝑘

Hašovacia funkciaHľadanie kolízií: narodeninový útok ~ 2𝑛/2

Hľadanie vzoru: prehľadanie a vyskúšanie vzorov ~ 2𝑛

MAC Prehľadávanie priestoru všetkých kľúčov ~ 2𝑘, resp.

uhádnutie korektného autentizačného kódu k správe

~ 2𝑛.

Asymetrická šifra Riešenie konkrétneho ťažkého problému (faktorizácia,

výpočet diskrétneho logaritmu a pod.)

Podpisová schéma Riešenie konkrétneho ťažkého problému, resp. útok na

hašovaciu funkciu. 35

Ekvivalentné dĺžky kľúčov

Ochrana Symetrický

kľúč

Výstup

hašovacej

funkcie

RSA modul Eliptická krivka

4 roky 80 160 1248 160

20 rokov 112 224 2432 224

30 rokov 128 256 3248 256

256 512 15424 512

36

• Podľa správy ECRYPT II (2012)• Porovnanie rôznych metód: www.keylength.com• Bezpečnosť vs. výpočtové nároky

Výkonové porovnanie (1)

SW impl.[MB/s]

HW podporaAES-NI (encrypt)

[MB/s]

HW podporaAES-NI (decrypt)

[MB/s]

AES-128-CTR 4 125 4 121

AES-128-CBC 127 749 4 064

AES-192-CBC 106 623 3 509

AES-256-CBC 90 537 3 055

3DES-CBC 28

RC4 891

SHA-1 717

SHA-256 215

SHA-512 335

37

i7-2600, 3.40GHz, Ubuntu 12.04 LTS 64-bit, openssl 1.0.1, 8kB bloky

CBC šifrovanie / dešifrovaniešifrovať môžeme iba sekvenčne

38

CBC šifrovanie / dešifrovaniedešifrovať môžeme paralelne

39

Výkonové porovnanie (2)

podpisovanie[operácie/s]

overovanie[operácie/s]

RSA-1024 6 100 93 281

RSA-2048 857 27 496

RSA-4096 118 7 370

ECDSA-224 (nistp224) 15 375 7 349

ECDSA-256 (nistp256) 9 024 3 697

ECDSA-521 (nistp521) 3 252 1 501

40

HesláPoužitie, ukladanie hesiel

41

Heslá

• Najčastejší prostriedok autentizácie• samostatne alebo v kombinácii s inými metódami

• Prostriedok pre zabezpečenie dôvernosti / integrity• napr. súkromných kľúčov v súboroch

• Problémy s použitím hesiel:• default heslá (zoznamy k dispozícii na webe)• ľahko uhádnuteľné heslá (nízka entropia v porovnaní s kľúčmi)• ťažko zapamätateľné heslá (poznačené)• nevhodne uložené heslá (napr. v otvorenom tvare v DB)• prenášané cez nezabezpečený kanál (napr. telnet, FTP)• zdieľanie medzi systémami (dopady kompromitácie)

42

Heslá (2)

• Techniky útokov:• úplné preberanie (brute-force), slovníkové metódy, predvýpočty (napr. dúhové

tabuľky)

• Politika hesiel a techniky pre bezpečné používanie hesiel:• dĺžka hesla, “pestrosť” použitých znakov (skupiny)• max. doba platnosti hesla, min. doba platnosti hesla• novosť hesla (história hesiel), odlišnosť od mena a iných dát• blokovanie prístupu po x neúspešných prihláseniach• spomaľovanie odozvy po neúspešnom prihásení, atď.

• Voľba hesla:• náhodne vygenerované (ťažké pamätať)• používateľ volí (predikovateľnosť, podobnosť atď.)• použitie hesiel odvodených z fráz, a pod.

43

Náhodnosť používateľských hesiel

Dĺžka hesla

PIN

(10 znaková

abeceda)

Všeobecné heslá

(94 znaková

abeceda)

4 9 10

8 13 18

10 15 21

16 21 30

22 27 38

• Príklad: 2012, LinkedIn, 6,5 mil. používateľských účtov • 4 hodiny + slovníkový útok cca. 900 tisíc hesiel• Pokračovanie slovníkového útoku cca. 2 mil. hesiel

44

Reálne heslá

1. password

2. 123456

3. 12345678

4. abc123 (+ 1)

5. qwerty (- 1)

6. monkey

7. letmein (+ 1)

8. dragon (+ 2)

9. 111111 (+ 3)

10. baseball (+ 1)

11. iloveyou (+ 2)

12. trustno1 (- 3)

13. 1234567 (- 6)

14. sunshine (+ 1)

15. master (- 1)

16. 123123 (+ 4)

17. welcome (nové)

18. shadow (+ 1)

19. ashley (- 3)

20. football (+ 5)

21. jesus (nové)

22. michael (+ 2)

23. ninja (nové)

24. mustang (nové)

25. password1 (nové)

45Splashdata 2012 a porovnanie s 2011

Uloženie hesiel

• Zle:• V otvorenom tvare• Šifrované• Odtlačok s jednoduchou aplikáciou hašovacej funkcie

• Dobre: ireverzibilne + soľ + iterácie

• Soľ – (náhodný) individuálny reťazec• Pridávaná pri výpočte odtlačku• Znemožňuje útočníkovi predvýpočty, paralelné prehľadávanie rovnakých hesiel (vedú k

rôznym odtlačkom)

• Iterácie – spomalenie výpočtu odtlačku• Spomalenie overenia hesla (nevadí), spomalenie útoku (vyhovuje)

• Vhodné algoritmy: PBKDF2, bcrypt, scrypt

• Zlé heslo je zlé bez ohľadu na uloženie (slovníkový útok)

46

Time-memory trade-offHellmanove tabuľky, Dúhové tabuľky

47

Príklad autentizácie na základe hesla

Používateľ Adam(prihlasovacie meno, heslo)

Počítač / Server

Prihlasovacie meno, heslo Vypočítaj H(heslo)

meno1 H(heslo1)

meno2 H(heslo2)

meno3 H(heslo3)

⋮ ⋮

menoN H(hesloN)

Eva sa snaží uhádnuť Adamove heslo 48

Hľadanie hesla – úplné preberanie

• Online úplné preberanie• skúšame všetky možné heslá, vypočítame ich haš

• Výpočtová zložitosť: N := |A| (A množina všetkých hesiel)

• Pamäť: 0

• Predvýpočet: 0

• Úplné preberanie s predvýpočtom• Predvýpočítame si tabuľku všetkých možných hesiel a ich hašov

• Online výpočtová zložitosť: 0

• Pamäť: N

• Predvýpočet: N

Time-memory trade-off

49

Hellmanove tabuľky, 1980

• Namiesto ukladania celej množiny možných hesiel a ich hašov počítame tzv. reťazce hašov

• Heslá sú organizované v reťazcoch hašov, iba prvý a posledný prvok reťazca je zapamätaný v tabuľke

• Pri predvýpočte vytvoríme 𝑚 reťazcov dĺžky 𝑡

S1

E1

H

R

Heslá Odtlačky

Reťazec:

R – redukčná funkcia50

Predvýpočet, reťazce

• 𝐻:𝐴 → 𝐵 – hašovacia funkcia (MD5, SHA1)

• 𝑅:𝐵 → 𝐴 – „ľubovoľná“ funkcia (redukcia)

• 𝑓: 𝐴 → 𝐴, kde 𝑓 ≔ 𝑅 ∘ 𝐻

Reťazce:

𝑆1 = 𝑥1,1→𝑓𝑥1,2→

𝑓𝑥1,3→

𝑓…→𝑓𝑥1,𝑡 = 𝐸1

𝑆2 = 𝑥2,1→𝑓𝑥2,2→

𝑓𝑥2,3→

𝑓…→𝑓𝑥2,𝑡 = 𝐸2

𝑆𝑚 = 𝑥𝑚,1→𝑓𝑥𝑚,2→

𝑓𝑥𝑚,3→

𝑓…→𝑓𝑥𝑚,𝑡 = 𝐸𝑚

S1

E1

H

R

A B

S1 E1

S2 E2

S3 E3

⋮ ⋮

Sm Em

51

Online fáza• Pre daný haš 𝑦 ∈ 𝐵, vypočítame 𝑦1 = 𝑅(𝑦) a postupne generujeme 𝑦𝑖 = 𝑓 𝑦𝑖−1 , pre 𝑖 = 2,… , 𝑡. • Pre každé yi kontrolujeme, či to nie je nejaké 𝐸𝑗 (t.j. či sa nenachádza v tabuľke),

• Ak sme našli 𝐸𝑗, môžeme predobraz 𝑦 získať postupným hašovaním z 𝑆𝑗

predobraz

52

Falošný alarm

• Keďže 𝑓 nie je injektívne, môže sa stať, že predobraz sa nechádza v reťazci začínajúcom z 𝑠𝑗 - falošný alarm

• Falošný alarm nás stojí 𝑡 výpočtov funkcie 𝑓• Keďže o neexistencii predobrazu v reťazci sa dozvieme až po vygenerovaní

celého reťazca

• Ak došlo k falošnému alarmu, pokračujeme v hašovaní 𝑦𝑖 = 𝑓 𝑦𝑖−1• Pravdepodobnosť / frekvenciu falošného alarmu je veľmi ťažké

odhadnúť

53

Hellmanove tabuľky

• Vygenerované hodnoty by mali („pravdepodobnostne“) pokrývať množinu A – množinu všetkých hesiel

• Ak zväčšíme 𝑡, znížime veľkosť tabuľky 𝑚, avšak zvýšime čas potrebný pri online útoku (time-memory trade-off)

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S1 E1

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S2 E2

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S3 E3. . . . . . .

. . . . . . .

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦Sm Em

t 54

Kolízie

• Počas predvýpočtu môže dochádzať ku kolíziám, ktoré je ťažké detekovať, keďže posledný prvok sa nemusí zhodovať• Kolízie spôsobujú redundanciu v reťazcoch

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S1 E1

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S2 E2

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S3 E3. . . . . . .

. . . . . . .

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦Sm Em

tRovnaké hodnoty

55

Pravdepodobnosť úspechu

• Nech 𝑁 = 256 je počet všetkých možných hesiel

• Ak je všetkých 𝑚 × 𝑡 prvkov rôznych, potom:

𝑃 𝑆 = 𝑚𝑡/𝑁P(S) – pravdepodobnosť, že nájdeme predobraz k danému Y

• Kolízie v reťazcoch však znižujú pravdepodobnosť úspechu

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S1 E1

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S2 E2

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦S3 E3. . . . . . .

. . . . . . .

◦f

◦f

◦f

◦ . . . . . . . ◦f

◦f

◦Sm Em

t

56

Pravdepodobnosť úspechu

• Efektivita algoritmu teda záleží na funkcii 𝑓, resp. vhodnej voľbe 𝑅

• Nech 𝑓 je uniformne náhodná

• Na základe narodeninového paradoxu môžeme určiť maximálnu hodnotu 𝑚, 𝑡, pre ktoré sa v reťazcoch ešte nebude nachádzať veľa kolízií

• 𝑚𝑡2 = 𝑁• Ak 𝑚𝑡2 ≪ 𝑁, potom s veľkou pravdepodobnosťou v reťazcoch neexistujú

kolízie

• Ak 𝑚𝑡2 ≫ 𝑁, potom bude v reťazcoch veľa kolízií, čo znižuje efektivitu útoku

57

Pravdepodobnosť úspechu

• Parametre teda zvolíme tak, aby 𝑚𝑡2 = 𝑁• Pravdepodobnosť úspechu v tomto prípade je

𝑃 𝑆 = (# rôznych hodnôt v tabuľke)/𝑁~ 0.8 𝑚𝑡/𝑁

• Ak vygenerujeme 𝑡 tabuliek (každá s veľkousťou𝑚 × 𝑡), každú s inou redukčnou funkciou 𝑅, potom

𝑃 𝑆 = 1 − 1 −𝑚𝑡

𝑁

𝑡

~ 1 − 𝑒−𝑡2𝑚𝑁 = 1 −

1

𝑒~0,63

58

Hellmanove tabuľky - zhrnutie

• N – množina hesiel

• Predvýpočet: 𝑃 = 𝑡2𝑚 = 𝑁

• Online zložitosť: 𝑇 = 𝑡2 (výpočtov funkcie 𝑓)

• Pamäť: 𝑀 = 𝑡𝑚 (𝑡 tabuliek po 𝑚 riadkov)

• Ak chceme minimalizovať 𝑇 +𝑀, potom optimálna voľba je

𝑇 = 𝑀 = 𝑁2/3

59

Dúhové tabuľky

• Optimalizácia Hellmanových tabuliek

• Minimalizujeme pravdepodobnosť kolízie použitím inej redukčnej funkcie v každej iterácii pri výpočte reťazca

◦f3◦

f1 ◦f2 ◦ . . . . . . . ◦

ft-1 ◦ft ◦S1 E1

S2 E2

S3 E3. . . . . . .

. . . . . . .

Sm Em

◦f3◦

f1 ◦f2 ◦ . . . . . . . ◦

ft-1 ◦ft ◦

◦f3◦

f1 ◦f2 ◦ . . . . . . . ◦

ft-1 ◦ft ◦

◦f3◦

f1 ◦f2 ◦ . . . . . . . ◦

ft-1 ◦ft ◦

60

Dúhové tabuľky

• Nech 𝑅1…𝑅𝑡: 𝐵 → 𝐴 sú redukčné funkcie

• 𝑓𝑖: 𝐴 → 𝐴, 𝑓𝑖 = 𝑅𝑖 ∘ 𝐻

• Ak 2 reťazce kolidujú v rôznych stĺpcoch, potom sa ich hodnoty neprekrývajú

• Ak 2 reťazce kolidujú v rovnakom stĺpci, potom kolidujú aj na konci • vieme to detekovať a vygenerovať reťazec znovu s inou hodnotou

61

Online fáza

• Komplikovanejšia ako v prípade Hellmanových tabuliek

• Máme dané 𝑦 ∈ 𝐵,

• Pre každé 𝑠 = 𝑡, 𝑡 − 1,… , 1 vypočítame reťazec• 𝑦𝑠 = 𝑅𝑠 𝑌 ,

• 𝑦𝑠+1 = 𝑓𝑠+1 𝑦𝑠 ,

• ⋮

• 𝑦𝑡 = 𝑓𝑡 𝑦𝑡−1

• Skontrolujeme, či 𝑦𝑡 sa nachádza v tabuľke pod nejakým 𝐸𝑗• Ak sme našli 𝐸𝑗, môžeme predobraz 𝑦 získať postupným hašovaním z 𝑆𝑗

62

Online fáza◦

Rt ◦ yt,1

yt,2

yt,3

. . . . . . .

y yt,t

◦Rt-1 ◦

ft ◦

◦Rt-2 ◦

ft-1 ◦ft ◦

◦f3◦

R1 ◦f2 ◦ . . . . . . . ◦

ft-1 ◦ft ◦

y

y

y

E1 S1

E2 S2

E3 S3

⋮ ⋮

Em Sm

?

Sj y◦H

◦H

◦R1 ◦ ◦

H◦◦

R2 …

Hľadaný predobraz 63

Online fáza - príklad

64

Dúhové tabuľky - zhrnutie

• N – veľkosť množiny hesiel

• Predvýpočet: 𝑃 = 𝑁

• Online zložitosť: 𝑇 =𝑡 𝑡−1

2(výpočtov funkcie 𝑓)

• Pamäť: 𝑀 = 𝑡𝑚 (tabuľka s t𝑚 riadkami)

Výhody oproti Hellmanovým tabuľkám

• Polovičná zložitosť online fázy 𝑡(𝑡 − 1)/2 vs 𝑡2

• Detekcia kolidujúcich reťazcov

65

Dúhové tabuľky vs. Windows LM heslá

• Windows LM (LanManager) hash (Win98/ME/2k/XP)

• Malé písmená su skonvertované na veľké

• Heslo rozdelené na dve 7 znakové bloky

DES

DES

Heslo (zarovnané na 112 bitov)

1. polovica hesla (56 bitov)

2. polovica hesla (56 bitov)

Hash (128 bitov)

Konštanta

Konštanta

66

Dúhové tabuľky vs. Windows LM heslá

• Hádanie alfanumerického hesla pre daný LM hash na počítači.

• Veľkosť problému: 𝑁 = 8.06 × 1010 = 236.23

Úplnepreberanie

Dúhové tabuľky

Online útok 4.03 × 1010

2h 15 min1.13 × 106

0.226 sec

PredvýpočetČas

Pamäť

000

1.42 × 1013

33 dní2 GB

67

Limity time-memory trade-off útokov

• TMTO útok nie je nikdy celkovo rýchlejší ako brute-force

• TMTO má význam v nasledovných prípadoch• Útok sa opakuje niekoľko krát• „Útok počas obednej prestávky“• Útočník nie je veľmi výkonný, avšak má možnosť stiahnuť si tabuľky

• Podmienky, aby bolo možné TMTO použiť• Problém rozumnej veľkosti• Jednosmerná funkcia (alebo CPA útok na šifrovom texte)

• Použitie soli pri ukladaní hesiel zabraňuje TMTO útokom

68

Postranné kanályTiming útoky, Akustická kryptoanalýza, ...

69

Útoky postrannými kanálmi

• V kryptológii často definujeme teoretický „model“ útočníka• V modeli definujeme silu útočníka a jeho prístup k zdrojom

• Konštrukciu následne analyzujeme vzhľadom na tento model

• Kryptoanalýza komunikujúce strany často (v protokoloch / kryptografických konštrukciách) považuje za „black box“

• V praxi sú však komunikujúce objekty počítače / software / zariadenia• To môže viesť k ďalším útokom „mimo definovaného modelu“

=> útok postranným kanálom

70

Útoky postrannými kanálmi

• Aktívne - Útočník pristupuje do vnútorných obvodov zariadenia • Probing attack: útočník do zariadenia vkladá senzory• Fault induction attack: útočník sa snaží navodzovať chybové stavy zariadenia

(prehriatie, zmrazenie,…)

• Pasívne - Útočník pozoruje fyzické vlastnosti zariadenia bez jeho demontáže• Timing attack• Power attack• Electro-magnetic attack• Acoustic analysis• Cache analysis• Error message attack• ...

71

Súkromný kľúč

Postranné kanály

Vstup Výstup

Timing útok

• Čas behu algoritmu môže závisieť od dát

• Koľko trvá zariadeniu dešifrovanie nami zvolenej správy?

• Napr. uvažujme RSA šifrovaciu schému• 𝑛 = 𝑝 ⋅ 𝑞

• Pozorujme čas dešifrovania 𝑐 = 𝐸 𝑚a) ak 𝑚 < 𝑝

b) ak 𝑚 > 𝑝

• Ak je rozdiel času medzi prípadmi a) a b) signifikantný, potom vieme 𝑝 nájsť pomocou binárneho vyhľadávania

72

Timing útoky

• 1996, Kocher – modulárne umocňovanie RSA• Čas beh algoritmu „square-and-multiply“ na počítanie modulárneho

umocňovania závisi od počtu 1 v kľúči

• 1998, Dhem a kol. – praktický útok na smart kartu implementujúcu RSA

• 2001, Song a kol. – analýza stláčania kláves v priebehu času a útok na SSH

• 2003, Boneh a Brumley – útok na web server v lokálnej sieti využívajúci OpenSSL• Po vykonaní ~ 0.3 mil. (cca 2 hodiny) je možné faktorizovať 1024 bitový RSA

modulus

73

Power analysis

• Najčastejšie využívaný útok cez postranné kanály

• Simple Power Analysis (SPA) – na základe odberu prúdu zariadenia sa snažíme uhádnuť, ktorú inštrukciu zariadenie vykonáva a aké sú hodnoty vstupu a výstupu• Presná znalosť implementácie je potrebná

• Differential Power Analysis (DPA) – analyzujeme štatistické korelácie medzi tajným kľúčom a odberom prúdu• Presná znalosť implementácie nie je potrebná

• Prvý útok: 1999, Kocher – Praktický útok na hw. DES implementáciu• Odvtedy veľké množstvo SPA / DPA útokov

74

Power analysis

• Priebeh napätia počas výpočtu RSA podpisu na smart karte

• Ľavý vrchol – odber CPU počas kroku algoritmu bez násobenia

• Pravý vrchol – odber CPU počas kroku s násobením

• Môžeme tak rozoznať bity súkromného kľúča

75

Elektro-magnetic attack

• Meranie EM vyžarovania zariadení – často aj na diaľku

• Podobné power analysis útokom

• 2003, Agrawa a kol., „The EM Side–Channel(s)“ • ukazuje sa, že EM vyžarovanie je možné využiť i tam, kde analýza odberu

prúdu nefunguje

• EM vyžarovanie môže byť dokonca využíté aj na obchádzanie protiopatrení voči iným typom postranných útokov (power analysis,…)

76

Akustická kryptoanalýza

• Veľa počítačov emituje počas výpočtu vysoko frekvenčný zvuk• Spôsobujú to vibrácie v niektorých elektronických súčiastkách

• 2004-2014, Shamir a kol. – odhalenie 4096 bitového kľúča v GnuPGimplementácii RSA v priebehu hodiny

77

Akustická kryptoanalýza2004-2014, Shamir a kol.

• S využitím obyčajného mobilu je možné odhaliť kľúč na vzdialenosť niekoľko desiatok cm• S lepším mikrofónom aj niekoľko metrov

• CCA útok - útok s možnosťou voľby šifrového textu

• Útočník získava kľúč bit po bite • Pre každý bit vytvorí špeciálny šifrový text, ktorý si nechá na zariadení

dešifrovať a následne analyzuje jeho zvuk

78

Akustická kryptoanalýza

79

Akustická kryptoanalýza2004-2014, Shamir a kol.

• Zariadenie chránené voči EM vyžarovaniu (Faradayova klietka) nemusia byť chránené voči vyžarovaniu zvuku

80

Cache útoky

• Procesory majú vlastnú cache na prístup k dátam• Cache procesora ma oveľa nižšiu latenciu ako operačná pamäť

• Ak sa dáta nenachádzajú v cache, procesor ich musí načítať z pamäte(výpadog stránky0

• Útočník môže pomocou paralelného procesu docieliť, aby časť cache pre šifrovací / dešifrovací proces bola nahradená• t.j. nahradí stránku cache svojou

=> Možný timing útok

81

Error message attack

• Server implementujúci kryptografický protokol môže reagovať rôzne, ak (zašifrované) dáta ktoré prijal majú• správny tvar (napr. otvorený text má správny padding)

• nesprávny tvar (napr. otvorený text má nesprávny padding)

• Tzv. padding oracle útoky

82

Padding oracle(server)

Útočník

Šifrový text

Áno / Nie

Error message attack

• 2002, Vaudenay – útok na sym. šifry v CBC móde• Útočník môže s využitím „timing padding“ orákula dešifrovať správy (resp.

vytvoriť správne zašifrovaný text)

• ...

• 2013, Peterson a kol. „Lucky 13“ útok na TLS• “Timing padding oracle útok”• TLS síce nedáva rôzne chybové hlásenia, avšak• ak má správa zlý padding čas, odpovede je iný ako v prípade správneho

paddingu

83

Lucky 13

Špecifikácia TLS 1.2:

…implementations MUST ensure that record processing time isessentially the same whether or not the padding is correct.

In general, the best way to do this is to compute the MAC even if thepadding is incorrect, and only then reject the packet.

• Avšak ak je zlý padding, aký padding máme použiť?

84

Lucky 13TLS Record Protokol: MAC-Encode-Encrypt

MAC

SQN || HDR Payload

Padding

Encrypt

Šifrový text

MAC tagPayload

HDR

Problém je, ako v prípade zlého paddingu určiť, čo je Payload, MAC tag a Padding

85

Lucky 13

86

For instance, if the pad appears to be incorrect, the implementation might assumea zero-length pad and then compute the MAC.

• Tento prístup využívalo viacero implementácií vrátate OpenSSL, NSS (Chrome, Firefox), BouncyCastle, OpenJDK, …

… This leaves a small timing channel, since MAC performance depends to someextent on the size of the data fragment, but it is not believed to be large enough to be exploitable, due to the large block size of existing MACs and the small size of thetiming signal.

Lucky 13

• Útok voči TLS-CBC šifrám implementovaných podľa odporúčania špecifikácie TLS 1.2• Útočník môže dešifrovať komunikáciu - napr. „session cookie“

• Aplikovateľný na všetky verzie SSL/TLS• SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2 pri použití CBC šifry• TLS 1.2 podporuje aj šifry v GCM a CCM móde, ktoré sú odolné

• Využitie BEAST prístupu • „man in the browser“ cez JavaScript

87

Poodle útok, 2014

• Ďalší padding oracle útok na CBC šifry v SSL 3.0

• Požiadavka klienta na server (rozdelená na 8 bajtové bloky):

• Posledný blok obsahuje padding a jeho dĺžku • V našom prípade 7 bajtov

• SSL 3.0 nešpecifikuje ako má vyzerať padding• Padding je akceptovaný vtedy a len vtedy ako posledný bajt je 7

• Útočník odpočuje šifrovanú podobu vyššie uvedenej požiadavky• Duplikuje blok obsahujúci cookie a nahradí nim posledný blok

88

Poodle útok, CBC dešifrovanie

• Ak SSL 3.0 server správu akceptuje (t.j. má správny padding)• cookie blok⊕ predchádzajúci šifrový blok = xxxxxx7

=> Útočník pozná posledný znak cookie

89

Poodle útok, 2014

• Následne útočník vytvorí novú požiadavku, kde je cookie blok posunutý:

=> útočník získa predposledný znak cookie

=> Útočník získa celý cookie

90

Ďalší útok: Bankomaty a PIN

• Pomocou termokamery je možné čítať PIN

• Niekedy je dokonca možné určiť poradie stlačenia kláves

• Kovové klávesy sú náchylnejšie

91

Ochrana voči útokom postrannými kanálmi

• Maskovacie techniky v implementácii• Náhodné zaspatie

• Dummy inštrukcie

• Náhodné poradie operácii (ak je to možné)

• …

• Úprava kryptografických algoritmov• Útoky postrannými kanálmi sú tak dokázateľne neúčinné

• Napr. zaobalíme kľúč a dáta nejakou náhodnou hodnotou vygenerovanou zakaždým nanovo

• Fyzická ochrana zariadení

92

Zdieľanie tajomstvaShamirova schéma

93

Zdieľanie tajomstvamotivácia

• Svedomitý bankový manažér• Má pod sebou 8 zamestnancov

• Chce, aby mohol byť trezor otvoreny iba keď je prítomných aspoň polovica zamestnancov

• Ako to urobiť?

94

Zdieľanie tajomstva

• Máme tajomstvo 𝑆

• 𝑛 ľuďom chceme rozdeliť podiely tak, aby• Ak poznáme aspoň 𝑡 z 𝑛 podielov, vieme rekonštruovať tajomstvo 𝑆• Ak poznáme najviac t−1 podielov, nevieme o tajomstve nič povedať

• 𝑡, 𝑛 -prahová schéma na zdieľanie tajomstva

→ Každý podiel musí byť aspoň tak dlhý ako tajomstvo S• Z 𝑡 − 1 podielov nevieme nič o 𝑆 => posledny 𝑡-ty podiel musí obsahovať toľko

informácie ako samotné tajomstvo S

→ Všetky schémy na zdieľanie tajomstva využívajú náhodnosť• Distribúcia 1-bitového tajomstva S medzi 𝑡 ľudí• 𝑡 − 1 podielov nesmie nič prezradiť o bite 𝑆 => podiely musia byť náhodné

95

Shamirova schema - idea

• Polynóm 𝑓 stupňa 𝑛 môžeme popísať 𝑛 + 1 bodmi• T.j. 𝑛 + 1 dvojicami (𝑥, 𝑓(𝑥))

96

Shamirova schema (𝑡, 𝑛) schéma

Inicializácia a rozdelenie tajomstva (vykonáva dôveryhodná autorita):

1. Zvolíme prvočíslo 𝑝 ≥ 𝑛 + 1 a tajnú informáciu 𝑆 ∈ ℤ𝑝

2. Zvolíme náhodný polynóm 𝑓 𝑥 stupňa najviac 𝑡 − 1, tak aby 𝑓 0 = 𝑆

𝑓 𝑥 = 𝑎𝑡−1𝑥𝑡−1 +⋯+ 𝑎1𝑥 + a0,

kde 𝑎𝑡−1, … , 𝑎1 ∈𝑅 ℤ𝑝 a 𝑎0 = 𝑆

3. Účastník 𝑃𝑖 dostane podiel 𝑓(𝑖), pre 𝑖 = 1,… , 𝑛

97

Shamirova schema (𝑡, 𝑛) schéma

Rekonštrukcia tajomstva 𝑆

• 𝑡 účastníkov má k dispozícii

𝑓 𝑥1 = 𝑎𝑡−1𝑥1𝑡−1 +⋯+ 𝑎1𝑥1 + a0,

𝑓 𝑥2 = 𝑎𝑡−1𝑥2𝑡−1 +⋯+ 𝑎1x2 + a0,

𝑓 𝑥𝑡 = 𝑎𝑡−1𝑥𝑡𝑡−1 +⋯+ 𝑎1𝑥𝑡 + a0,

• Sústava t lineárnych rovníc o t neznámych má práve jedno riešenie

• Vypočítame 𝑎𝑡−1, … , 𝑎0 a následne rekonštruujeme 𝑆 = 𝑓(0)

98

Shamirova schema (𝑡, 𝑛) schémabezpečnosť

• Veľkosť podielu je rovnaká ako veľkosť tajomstva

• Skupina 𝑡 − 1 účastníkov nevie o tajomstve vypočítať nič𝑓 𝑥1 − 𝑠′ = 𝑎𝑡−1𝑥1

𝑡−1 +⋯+ 𝑎1𝑥1,

𝑓 𝑥2 − 𝑠′ = 𝑎𝑡−1𝑥2𝑡−1 +⋯+ 𝑎1x2,

𝑓 𝑥𝑡−1 − 𝑠′ = 𝑎𝑡−1𝑥𝑡−1𝑡−1 +⋯+ 𝑎1𝑥𝑡−1,

pre každé 𝑠′ existuje 𝑓′, také že 𝑓′ 𝑥𝑖 = 𝑓(𝑥𝑖) pre 𝑖 = 1,… , 𝑡 − 1

• Nečestný účastník• Čo ak účastník podhodí falošný podiel?

• Čo ak účastník po odhalení 𝑡 − 1 podielov svoj podiel neodhalí?

99

Vizuálne zdieľanie tajomstva

100

+ =

Politika a kryptografia, záverPost-Snowden éra, NSA, NIST, ...

101

Post-Snowden éra

• Veľká časť v praxi používaných kryptografických algoritmov je štandardizovaných NISTom• AES, SHA-1-2-3, ECDSA, …

• Odhalenia Snowdena o praktikách NSA dávajú do popredia otázku, či tieto štandardy neobsahujú zadné vrátka• Spomeňme si na pseudo-náhodný generátor DUAL_EC_DRBG

• AES a SHA-3 boli vyberané verejnou kryptografickou súťažou

• Potenciálny útočníci už nie sú len kyber-kriminálnici• Ale organizácie s miliardovým rozpočtom

102

Štát vs. Krypto - Lavabit

• Lavabit - šifrovaná web-mailová služba• Využíval ju aj Snowden na komunikáciu s novinármi a právnikmi

• Služba navrhnutá programátormi, ktorým vadila bezpečnostná politika Gmailu

• Poskytovala silnú kryptografickú ochranu emailov svojich používateľov• Na úrovni, ktorá by mala byť odolná aj voči spravodajským službám

• August 2013 – Lavabit skončil svoju prevádzku potom, ako bol požiadaný súdom o poskytnutie svojich súkromných kľúčov

• Následne skončila svoju prevádzku aj ďalšia podobná služba SilentCircle• Pre istotu vymazali všetky šifrovacie kľúče

103

104

105

106

TLS RSA výmena kľúčovdôležitosť „forward secrecy“

107

Hello

Certifikát, verejný RSA kľúč 𝑝𝑘

RSAEncpk(AES kľúč)

AESEncAESkľúč(obsah stránky)

• Útočník poznajúci tajný kľúč Lavabitu môže• Vystupovať ako Lavabit pre kohokoľvek

• Dešifrovať všetkú budúcu aj minulú komunikáciu

TLS Diffie-Hellman výmena kľúčovdôležitosť „forward secrecy“

108

Hello, 𝑔𝑥

Certifikát, verejný RSA kľúč, 𝑔𝑦

RSASignpk(𝑔𝑥, 𝑔𝑦)

AESEnc𝑔𝑥𝑦(obsah stránky)

• Útočník poznajúci tajný kľúč Lavabitu môže• Vystupovať ako Lavabit pre kohokoľvek• „Forward secrecy”: Nemôže dešifrovať predchádzajúcu komunikáciu (ak 𝑔𝑥𝑦 bolo

zahodené)

Záver

• Kryptografia nie je miesto na kreativitu a ad-hoc riešenia

• Používajte štandardné kryptografické algoritmy, schémy a protokoly

• Kryptografia nenahradí iné organizačné a technické bezpečnostné opatrenia

• Dbajte na kvalitné generovanie kľúčov a voľbu hesiel

• Poznajte konfiguračné možnosti kryptografických riešení a ich bezpečnostné dopady

• Ak môžete, uprednostnite schémy založené na eliptických krivkách

• Ak je to možné používajte „forward secrecy“

109

Ďakujem za pozornosť

110