bit/p7-dsig.d 30. brˇezna 2003 1 - luki.sdf-eu.orgluki.sdf-eu.org/txt/bit/p7-dsig.pdf · - pak...

4
bit/p7-dsig.d 30. br ˇezna 2003 1 Digita ´lnı ´ podpisy zaloz ˇene ´ na asymetricke ´ kryptografii ------------------------------------------------------ * pr ˇedpokla ´dejme, z ˇe algoritmus pro s ˇifrova ´nı ´ a des ˇifrova ´nı ´ ma ´ na ´sledujı ´cı ´ vlastnost: P = D(E(P)) = E(D(P)) - pak mu ˚z ˇe Alice podepsat p pomocı ´ sve ´ho tajne ´ho des ˇifrovacı ´ho klı ´cˇeD_Aa poslat Bobovi: D_A(P) - Bob mu ˚z ˇe zpra ´vu ove ˇr ˇit pomocı ´ ver ˇejne ´ho s ˇifrovacı ´ho klı ´cˇe Alice E_A: P = E_A(P) * de-facto standard pro digita ´lnı ´ podpisy je RSA * NIST standardizoval DSS (Digital Signature Standard), pouz ˇı ´va ´ se me ´ne ˇ protoz ˇe je 10 az ˇ 40x pomalejs ˇı ´ nez ˇ RSA Certifika ´ty ver ˇejny ´ch klı ´cˇu ˚ ........................... * potr ˇebujeme zajistit, aby ver ˇejne ´ klı ´cˇe mohly by ´tbezpecˇne ˇ pr ˇena ´s ˇeny po nezabezpecˇene ´m me ´diu * me ˇjme du ˚ve ˇryhodnou tr ˇetı ´ stranu, nazy ´va ´me jı ´certifikacˇnı ´ autorita (CA) - CA vytvor ˇı ´ vlastnı ´ dvojici klı ´cˇu ˚, ver ˇejny ´ pr ˇeda ´ kaz ˇde ´mu uz ˇivateli a tajny ´ utajı ´ - pokud uz ˇivatel chce zver ˇejnit vlastnı ´ ver ˇejny ´ klı ´cˇ,doda ´ ho CA . CA ove ˇr ˇı ´ fyzickou identitu pr ˇedkladatele klı ´cˇe . CA pr ˇipojı ´r ˇete ˇzec identifikujı ´cı ´ tvu ˚rce klı ´cˇe a dals ˇı ´ data (dobu platnosti apod.) . CA data podepı ´s ˇe (data = klı ´cˇ + identita pr ˇedkladatele atd.) - tj. du ˚ve ˇru kterou ma ´me v CA mu ˚z ˇeme pr ˇene ´st i na klı ´cˇjı ´m podepsany ´ - moz ˇnost hierarchie certifikacˇnı ´ch autorit - podepsane ´ klı ´cˇemu ˚z ˇeme zver ˇejnit na serverech ver ˇejny ´ch klı ´cˇu ˚ * standardnı ´ forma ´ty: X.509 (ISO 9594-8), PKCS#6 * X.509 je soucˇa ´st standardu ISO 9594-1 (X.500) pro adresa ´r ˇove ´ sluz ˇby v ISO/OSI sı ´tı ´ch, adresa ´r ˇ = databa ´ze informacı ´, stromova ´ struktura poloz ˇek Jednosme ˇrne ´ hashovacı ´ fce a jejich pouz ˇitı ´ ------------------------------------------ *s ˇifrova ´nı ´ s ver ˇejny ´m klı ´cˇem je pomale ´, bezpecˇnost za ´visı ´ na obsahu P * proto je leps ˇı ´ pouz ˇı ´t jednosme ˇrnou hashovacı ´ fci (nazy ´va ´na message digest, MD) a posı ´lat zpra ´vu (P, D_A(MD(P))) mı ´sto D_A(P) (De Jonge & Chaum 1987) Hashovacı ´ fce musı ´ mı ´t 3 za ´kladnı ´ vlastnosti: 1. z P je snadne ´spocˇı ´st MD(P) 2. k MD(P) je vy ´pocˇetne ˇ neproveditelne ´ najı ´t P 3. najı ´t dve ˇ zpra ´vy ktere ´ da ´vajı ´ stejne ´ MD(x) je neproveditelne ´ * kolik operacı ´ je zapotr ˇebı ´ pro zfals ˇova ´nı ´ m-bitove ´ho hashe? - je to 2ˆ{m/2} za pomocı ´u ´toku nazvane ´ho ”birthday attack” (Yuval 1979) - na ´zev vycha ´zı ´ z ota ´zky: kolik studentu ˚ musı ´te mı ´t, aby pravde ˇpodobnost z ˇe budete mı ´t dva lidi s narozeninami ve stejny ´ den byla > 1/2? - ve skutecˇnosti 23 (s 23 lidmi mu ˚z ˇeme vytvor ˇit (23*22)/2 = 253 pa ´ru ˚, kaz ˇdy ´ z nich ma ´ pravde ˇpodobnost 1/365) - obecne ˇji: pokud ma ´me N vstupu ˚, existuje N*(N-1)/2 vstupnı ´ch pa ´ru ˚; je K moz ˇny ´ch vy ´stupu ˚, kaz ˇdy ´ z nich ma ´ pravde ˇpodobnost 1/K, tj. pravde ˇpodobnost dvou ru ˚zny ´ch vy ´stupu ˚ se stejny ´m vstupem > 1/2 pokud N > sqrt(K) - tj. pokud ma ´me hash 64 bitu ˚,stacˇı ´ na ´m vygenerovat cca 2ˆ32 zpra ´v a dı ´vat se po zpra ´va ´ch se stejny ´m vy ´stupem Napr ˇ. budeme mı ´t podepsanou zpra ´vu a chceme vygenerovat jinou zpra ´vu se stejny ´m MD - vytvor ˇı ´me zpra ´vu s 32 moz ˇnostmi: Va ´z ˇeny ´ [ pane | investore ], v [ tomto dopise | te ´to zpra ´ve ˇ ] bych Va ´m ra ´d [ sde ˇlil | popsal ] [ svu ˚j

Transcript of bit/p7-dsig.d 30. brˇezna 2003 1 - luki.sdf-eu.orgluki.sdf-eu.org/txt/bit/p7-dsig.pdf · - pak...

Page 1: bit/p7-dsig.d 30. brˇezna 2003 1 - luki.sdf-eu.orgluki.sdf-eu.org/txt/bit/p7-dsig.pdf · - pak mu˚ˇe Alice podepsat p pomocı´ sve´ho tajne´ho desˇifrovacı´ho kl ... sve´

bit/p7-dsig.d 30. brezna 2003 1

Digitalnı podpisy zalozene na asymetricke kryptografii------------------------------------------------------

* predpokladejme, ze algoritmus pro sifrovanı a desifrovanı ma nasledujıcıvlastnost: P = D(E(P)) = E(D(P))

- pak muze Alice podepsat p pomocı sveho tajneho desifrovacıho klıce D_A aposlat Bobovi: D_A(P)

- Bob muze zpravu overit pomocı verejneho sifrovacıho klıce Alice E_A:P = E_A(P)

* de-facto standard pro digitalnı podpisy je RSA* NIST standardizoval DSS (Digital Signature Standard), pouzıva se mene

protoze je 10 az 40x pomalejsı nez RSA

Certifikaty verejnych klıcu...........................

* potrebujeme zajistit, aby verejne klıce mohly byt bezpecne prenaseny ponezabezpecenem mediu

* mejme duveryhodnou tretı stranu, nazyvame jı certifikacnı autorita (CA)- CA vytvorı vlastnı dvojici klıcu, verejny preda kazdemu uzivateli a

tajny utajı- pokud uzivatel chce zverejnit vlastnı verejny klıc, doda ho CA. CA overı fyzickou identitu predkladatele klıce. CA pripojı retezec identifikujıcı tvurce klıce a dalsı data (dobu

platnosti apod.). CA data podepıse (data = klıc + identita predkladatele atd.)

- tj. duveru kterou mame v CA muzeme prenest i na klıc jım podepsany- moznost hierarchie certifikacnıch autorit- podepsane klıce muzeme zverejnit na serverech verejnych klıcu

* standardnı formaty: X.509 (ISO 9594-8), PKCS#6* X.509 je soucast standardu ISO 9594-1 (X.500) pro adresarove sluzby v

ISO/OSI sıtıch, adresar = databaze informacı, stromova struktura polozek

Jednosmerne hashovacı fce a jejich pouzitı------------------------------------------

* sifrovanı s verejnym klıcem je pomale, bezpecnost zavisı na obsahu P* proto je lepsı pouzıt jednosmernou hashovacı fci (nazyvana message digest,

MD) a posılat zpravu (P, D_A(MD(P))) mısto D_A(P) (De Jonge & Chaum 1987)

Hashovacı fce musı mıt 3 zakladnı vlastnosti:

1. z P je snadne spocıst MD(P)2. k MD(P) je vypocetne neproveditelne najıt P3. najıt dve zpravy ktere davajı stejne MD(x) je neproveditelne

* kolik operacı je zapotrebı pro zfalsovanı m-bitoveho hashe?- je to 2ˆ{m/2} za pomocı utoku nazvaneho ”birthday attack” (Yuval 1979)- nazev vychazı z otazky: kolik studentu musıte mıt, aby pravdepodobnost ze

budete mıt dva lidi s narozeninami ve stejny den byla > 1/2?- ve skutecnosti 23 (s 23 lidmi muzeme vytvorit (23*22)/2 = 253 paru, kazdy

z nich ma pravdepodobnost 1/365)- obecneji: pokud mame N vstupu, existuje N*(N-1)/2 vstupnıch paru; je K

moznych vystupu, kazdy z nich ma pravdepodobnost 1/K, tj. pravdepodobnostdvou ruznych vystupu se stejnym vstupem > 1/2 pokud N > sqrt(K)

- tj. pokud mame hash 64 bitu, stacı nam vygenerovat cca 2ˆ32 zprav a dıvatse po zpravach se stejnym vystupem

Napr. budeme mıt podepsanou zpravu a chceme vygenerovat jinou zpravu sestejnym MD - vytvorıme zpravu s 32 moznostmi:

Vazeny [ pane | investore ],

v [ tomto dopise | teto zprave ] bych Vam rad [ sdelil | popsal ] [ svuj

Page 2: bit/p7-dsig.d 30. brˇezna 2003 1 - luki.sdf-eu.orgluki.sdf-eu.org/txt/bit/p7-dsig.pdf · - pak mu˚ˇe Alice podepsat p pomocı´ sve´ho tajne´ho desˇifrovacı´ho kl ... sve´

2 30. brezna 2003 bit/p7-dsig.d

nazor | sve mınenı ] o zamyslene [ transakci | investici ] doNigerijskeho ropneho [ prumyslu | zarızenı ].

* spocteme 2ˆ32 hashu, je mozne ze nektery bude odpovıdat puvodnımu* pokud ne, muzeme vyzkouset pridat dalsı moznosti* existujı i varianty nevyzadujıcı tolik pameti

* to znamena, ze pokud chceme pouzıvat hash ve spojenı napr. s digitalnımipodpisy, mel by vysledek byt nejmene 128 bitu dlouhy, radeji delsı

- prvnı varianty zalozene na DESu uz v 1977- hledaly se fce s delsım vystupem - MDC2 a MDC4 128 bitu - pomale a dalsıproblemy

- MD4 (Rivest 1991, RFC1320), z MD4 vychazı vetsina novejsıch. MD5 (Rivest 1992 v RFC1321), RIPEMD (den Boer 1992) - 128 bitu, pokusy odelsı hash protoze 2ˆ64 operacı zacalo byt povazovano za realizovatelne

. HAVAL (Zheng & al. 1993) - do 256 bitu

. SHA, SHA-1 (NIST 1994 a 1995 (FIPS 180-1)) - 160 bitu. SHA-1 je revize SHA, ve ktere NSA nasla problemy. RIPEMD-160 (Dobbertin 1996) - 160 bitu. SHA-192, SHA-224, SHA-256 (NIST) - do 256 bitu

Algoritmus MD5..............

* je slozitejsı, popısu pouze zakladnı princip; podrobnosti RFC1321- pouzıva ctyri nelinearnı fce, v jazyce C zapsane:

F(X,Y,Z) = (X & Y) | ((˜X) & Z) // if X then Y else Z (po bitech)G(X,Y,Z) = (X & Z) | (Y & (˜Z)) // if Z then X else Y (po bitech)H(X,Y,Z) = XˆYˆZ // paritaI(X,Y,Z) = Yˆ(X | (˜Z))

- pro kazdy 512 bitovy blok 4 iterace, v kazde iteraci 64 krokupouzıvajıcıch jednu z fcı F, G, H a I

F or G or H or I rotate

A

B

C

D

A

B

C

D

M t s

- zprava se pred zpracovanım doplnı retezcem bitu 1000...0 a 64 bitovoudelkou zpravy na nasobek 512 bitu

* algoritmus MD5 se pouzıva nejcasteji, napr. v Linuxu program md5sum(1)* existuje modifikace MD5 pro pouzitı jako klıcovane hashovacı fce

(viz RFC1828 nebo HAC, alg. 9.69 na str. 358)

Casova razıtka..............

* Alice potrebuje mıt potvrzenı, ze nejaky dokument existoval k urcitemu datu* jak zajistit, aby mohla prokazat ze dokument existoval, napr. pokud bude

zadat o udelenı patentu?

1. Alice vytvorı jednosmerny hash dokumentu, vysledek h(D) posle duveryhodnetretı strane (timestamping service)

2. tretı strana vytvorı: S(h(D), t1) kde S = podpis, t1 = datum prıchodu zpravya posle vysledek zpet

3. jednou za casovou jednotku (den, tyden) tretı strana vytvorı z casovychrazıtek tzv. autentizacnı strom, kde spolecny uzel ma hodnotu h(h1, h2)

- Alici posle cestu od jejıho casoveho razıtka je koreni- korenovou hodnotu publikuje na na verejnem mıste, napr. v novinach

Page 3: bit/p7-dsig.d 30. brˇezna 2003 1 - luki.sdf-eu.orgluki.sdf-eu.org/txt/bit/p7-dsig.pdf · - pak mu˚ˇe Alice podepsat p pomocı´ sve´ho tajne´ho desˇifrovacı´ho kl ... sve´

bit/p7-dsig.d 30. brezna 2003 3

R = h(h , h(Y ))

h(Y )

h(Y )h = h(h(Y ), h(Y ))

h(Y ) Y

Y 21

3

Y1 2

3

32

2 1 2

Autentizace v UNIXovych systemech.................................

* nektere starsı systemy uchovavajı hesla v OT, chranene prıstupovymi pravy- nechranı pred privilegovanymi uzivateli- problem v prıpade zalohovanı systemu

* lepsı - mısto hesla X uchovat h(X)- uzivatel zada heslo X, system spocte h(X) a overı zda je h(X) v souboru s

hesly- problem - slovnıkove utoky - oponent vytvorı slovnık pravdepodobnych

hesel, provede h(X) a vysledek porovna s existujıcımi ”zasifrovanymi”hesly. zpomalenı mapovanı, napr. mısto jednoduche fce se pouzije 25x. snızenı efektivity oponenta - salting

* salting (”osolenı”)- vytvorıme t-bitovou nahodnou hodnotu y, tzv. salt- spocteme H=h(y, X), vysledek H spolu se hodnotou y ulozıme do souboru s

hesly- napr. UNIX pouzıva 12 bitovy salt odvozeny ze systemoveho casu v dobe

vytvorenı hesla- Oskar muze provadet slovnıkove utoky na jednotliva hesla, ale zvysı se

obtıznost slovnıkovych utoku na velke mnoziny hesel

Jednorazova hesla.................

* v nekterych kritickych aplikacıch (banky) dostane uzivatel sesitjednorazovych hesel, problem ztraty sesitu

* Lamportovo schema pro bezpecne prihlasovanı po nezabezpecene sıti(Lamport 1981)

- uzivatel zvolı tajne heslo X a pocet jednorazovych hesel N (napr. 4). prvnı heslo bude P1=h(h(h(h(X))), druhe P2=h(h(h(X)), tretı P3=h(X), P4=X. Oskar je z odposlechu schopen spocıst predchazejıcı, ale nikoli nasledujıcı

- server bude mıt P=h(P1) a pocet iteracı I=1. pri prvnım prihlasenı overı h(P1) a zvysı I o 1. pri druhem prihlasenı overı h(h(P2) atd.

Standardy PKCS--------------

* de facto standardy vytvorene RSA Laboratories, viz http://www.rsa.com* nazev ”The Public-Key Cryptography Standards” (PKCS), casto se prakticky

pouzıvajı

* PKCS#1 - sifrovanı a podepisovanı pomocı RSA (podpis viz HAC str. 445)* PKCS#3 - Diffie-Hellmanovo dohadovanı klıce* PKCS#5 - symetricke sifrovanı klıcem odvozenym z hesla* PKCS#6 - syntaxe rozsırenych certifikatu (nadmnozina X.509)* PKCS#7 - syntaxe sifrovanych zprav* PKCS#8 - syntaxe soukromych klıcu* PKCS#9 - vybrane typy atributu* PKCS#10 - syntaxe pozadavku na certifikaci* PKCS#11 - rozhranı pro praci s kryptografickym ”tokenem” (CRYPTOKI),

dovoluje vykonavat kryptograficke operace na napr. karte

Zaver-----

Page 4: bit/p7-dsig.d 30. brˇezna 2003 1 - luki.sdf-eu.orgluki.sdf-eu.org/txt/bit/p7-dsig.pdf · - pak mu˚ˇe Alice podepsat p pomocı´ sve´ho tajne´ho desˇifrovacı´ho kl ... sve´

4 30. brezna 2003 bit/p7-dsig.d

* nebezpecı kryptografie - da se ”temer merit” (delka klıcu apod.)* problemem je, ze mohou byt lepsı utoky:- PGP zasifruje text, ale puvodnı OT zustane na disku; pokud zrusıme ”rm/DEL”,

zustanou bloky; na nekterych FS utility jako ”wipe”(jak smazat soubor viz http://www.cs.auckland.ac.nz/˜pgut001/secure_del.html)

- problemy se SW; je slozity, mnoho sancı na unik citlivych informacı- problemy s prıstupovou cestou k SW; pokud prenasıte soubory nebo zadavate

heslo po otevrene sıti (telnet)- nevhodna rozhranı - pokud to da praci, nebudou to uzivatele pouzıvat- pokud jsou klıce generovany pomocı slabeho RNG nebo PRNG, nemajı

predpokladanou entropii; podobne slaba hesla- nenı mısto pro bezpecne uchovanı klıce; sifrovanı chranı ”velka” tajemstvı

pomocı ”malych” klıcu, ale klıce jsou vetsinou uchovany v pameti apod.- utoky na protokoly, viz drıve uvedene prıklady- utoky zalozene na jinych nez datovych vlastnostech: timing attacks,

preslechy, elektromagneticke vyzarovanı apod.

* nejvetsı prakticky problem - lide vyzadujı funkcnost a bezpecnost jenezajıma; kolik lidı pouzıva PGP?

- proto systemy nepodporujı bezpecnost jako zakladnı vlastnost

* doporucenı- pouzıvat publikovane algoritmy a protokoly, sledovat literaturu- kriticky premyslet o tom, co je chraneno a jak mohou vypadat utoky