Kryptografické systémy správa kľúčov doc. RNDr. Jozef Jirásek, PhD. Bc. Ján Kotrady 2017/2018 Zimný semester 2017 Správa kľúčov 1
Symetrické kľúče veľký počet symetrických kľúčov n 2 KEK dlhodobý (longterm, master key) kľúč relačný (session) kľúč dočasný (ephemeral) kľúč Zimný semester 2017 Správa kľúčov 2
Doporučenie NIST pre dĺžky kľúčov (2016) short do 2030 80 112 128 192 256 Sym 3D2K 3DES AES-128 AES-192 AES-256 MDC SHA-1 SHA3-224 SHA3-256 SHA3-384 SHA3-512 MAC SHA-1 SHA-224 SHA3-512 RSA 1024 2048 3072 7680 15360 DLP 160 224 256 384 512 ECC 160 224 256 384 512 Zimný semester 2017 Správa kľúčov 3
ANSI generátor relačných kľúčov ANSI X9.31 generátor K dlhodobý (longterm) kľúč (Key Encoding Key) R i = AES K (V i-1 AES K (T i )) výstup V i = AES K (R i AES K (T i )) seed (semienko) časová pečiatka nové semienko semienko výstup dočasný (session) kľúč po prelomení je možné získať všetky generované kľúče! Zimný semester 2017 Správa kľúčov 4
Možnosť útokov na ANSI generátor ak niekedy získame K (napr. FortiOS firmware s pevným K), je možné urobiť útok na generované dočasné kľúče : ak poznáme za sebou nasledujúce dočasné kľúče R i a R i+1 potom R i = E(V i-1 E(T i )) V i = E(R i E(T i )) R i+1 = E(V i E(T i+1 )) V i+1 = E(R i+1 E(T i+1 )) a teda R i E(T i ) = D(V i ) = D(D(R i+1 E(T i+1 )) z čoho môžeme postupnými iteráciami možných časových pečiatok pomocou meet-in-the-middle postupu získať T i a T i+1 potom viem spočítať V i+1 = E(R i+1 E(T i+1 )) a ďalej opäť postupnými iteráciami pečiatky T i+2 aj R i+2 = E(V i+1 E(T i+2 )) atď... a potom podobne aj spätne... Zimný semester 2017 Správa kľúčov 5
CTR_DRBG generátor NIST SP 800-90A deterministický generátor náhodných bitov (Dual_EC_DRBG s EC šifrovaním odvolaný) CTR_DRBG založený na blokovej šifre (AES) Zimný semester 2017 Správa kľúčov 6
Kryptograficky bezpečné generátory náhodných bitov Blum-Blum-Shub generátor b 0 = seed pre prvočísla p, q 2 b i = b i 1 mod pq p q 3 (mod 4) s i = b i mod 2 predikcia nasledujúceho bitu streamu je ekvivalentná problému riešenia kvadratických rezíduí Blum-Micali algoritmus x 0 = seed x i = g x i 1 mod p p prvočíslo, g - generátor Z p s i = 1 ak x i (p 1)/2 (inak s i = 0) predikcia je ekvivalentná DLP problému (riešenia diskrétneho logaritmu modulo p) Zimný semester 2017 Správa kľúčov 7
Zdieľanie tajomstva z jedného tajomstva (hesla, kľúča) sa vyrobí niekoľko iných, z ktorých je možné pôvodné tajomstvo zrekonštruovať väčšinou jednorazové resp. zdieľané prostredníctvom dôveryhodnej tretej strany prístup, len keď sú spolu všetky tajomstvá (kľúče) bezpečné rozdelenie binárnej informácie s = s 1 s 2 s = s 1 s 2... s n n-1 kľúčov nemôže nič zo spoločného tajomstva zistiť (perfect security scheme) čo ak sa niektorý kľúč stratí? Zimný semester 2017 Správa kľúčov 8
Rozdelenie kľúčov s prahovým počtom rekonštruovať je možné, ak sú prítomní dvaja z troch s = a 1 a 2 = b 1 b 2 s 1 = (a 1, b 1 ) s 2 = (a 2, b 2 ) s 3 = (a 1, b 2 ) podobné schémy aj pre rekonštrukciu tajomstva z ľubovoľných t z celkového počtu n kľúčov (pričom poznanie t-1 z nich nedá žiadnu informáciu o spoločnom tajomstve) je možné, aby boli aj rozdelené kľúče len v dĺžke spoločného kľúča? Zimný semester 2017 Správa kľúčov 9
(t,n) prahová schéma (threshold sharing scheme) n subjektov, prah (threshold) t n t tajomstiev (kľúčov) stačí na výpočet spoločného kľúča ak ich je menej, nie je možné zistiť ani jeho časť Shamirova schéma T: polynóm stupňa t-1 je jednoznačne určený t bodmi (platí aj v konečnom poli Z p pre dostatočne veľké prvočíslo) f(x) = s + a 1 x + + a t-1 x t-1 mod p kde a i Z p ( f(0) = s ) pre i = 1, 2,, n s i = f(i) t rekonštrukcia: f(x) = σ i=1 a pre každých t indexov x 1,..., x t f(x i ) ς 1 j t j i x x j x i x j mod p (Lagrange) vyšším počtom rozdelených kľúčov môžeme rozlíšiť aj váhu jednotlivých subjektov pri prístupe k tajomstvu Zimný semester 2017 Správa kľúčov 10
Dohoda na kľúči pomocou symetrickej kryptografie ako vytvoriť bezpečný komunikačný kanál, pokiaľ nemám možnosť priamej komunikácie s druhou stranou? Zimný semester 2017 Správa kľúčov 11
Dohoda na kľúči pomocou symetrickej kryptografie Merkle s Puzzle (1974) Alica vygeneruje milión správ toto je i-ta skladačka, kľúč je K i každú zašifruje iným náhodným 50-bitovým kľúčom všetky pošle v náhodnom poradí Bobovi Bob náhodne vyberie jednu, hrubou silou zistí text pošle Alici len index i Alica a Bob môžu bezpečne používať kľúč K i útočník aj keď pozná i, musí rozbíjať hrubou silou všetky správy (2 70 možností) Zimný semester 2017 Správa kľúčov 12
Dohoda na kľúči so zámkami schéma so zámkami (padlock) pre dostatočne veľké prvočíslo p a náhodné a a b A : zvolí kľúč K (pre p = 2q + 1 je možné overiť, či K je generátor Z p ) A B : K a mod p B A : (K a ) b mod p A B : (K ab ) a mod p = K b mod p pre a a 1 (mod (p-1)) B : K = (K b ) b mod p pre b b 1 (mod (p-1)) Zimný semester 2017 Správa kľúčov 13
Dohoda so spoločným tajomstvom A a B poznajú tajomstvo K AB A B : N A B A : N B nový relačný kľúč bude K = f(mac KAB (N A, N B )) môže nasledovať autentifikácia bezpečným kanálom v GSM protokol A3/A8 KI autentifikačný kľúč v SIM tiež v AuC B (base station) A : RAND A B : Comp128 KI (RAND)[0..31] = SRES B overí u poskytovateľa (AuC) SRES k RAND a dostane relačný K A vypočíta : Comp128 KI (RAND)[74..127] 0000000000 = K Zimný semester 2017 Správa kľúčov 14
Prenos kľúča symetrickou kryptografiou A B : E AB (K) bez dôkazu čerstvosti A B : E AB (T A ) s časovou pečiatkou - K = f(k AB, T A ) A B : E AB (T A, B, K) B A : N B s výzvou A B : E AB (N B, B, K) A B : E AB (T A, B, F A ) obojstranná B A : E AB (T B, A, F B ) K = f(f A, F B ) B A : N B obojstranná s výzvou A B : E AB (N A, N B, B, F A ) B A : E AB (N B, N A, A, F B ) K = f(f A, F B ) Zimný semester 2017 Správa kľúčov 15
Dohoda prostredníctvom dôveryhodného centra Dôveryhodné translačné centrum (len prenáša správy) Wide-Mouth Frog (WMF) A S : A, E AS (T A, B, K) (lepšie E AS (T A, A, B, K) S B : E BS (T S, A, K) kvôli symetrii) centralizovaný management (ako certifikáty) A S : A, E AS (B, K) S A : E BS (K, A) musí byť uvedená identita A A B : E BS (K, A) replay? časová pečiatka A S : E AS (N A, B, K) S A : E AS (N A, B), E BS (T S, K, A) A B : E BS (T S, K, A) dá sa bez časových pečiatok? Zimný semester 2017 Správa kľúčov 16
Dohoda prostredníctvom dôveryhodného centra Dôveryhodné distribučné centrum (generuje kľúče) (pull model) A S : A, B S A : E AS (T S, B, K, E BS (T S, A, K)) A B : E BS (T S, A, K) (push model) A B : A, N A B S : A, N A, B, N B S B : E BS (N B, A, K), E AS (N A, B, K) B A : E AS (N A, B, K) Zimný semester 2017 Správa kľúčov 17
Dohoda prostredníctvom dôveryhodného centra Needham-Schroeder generovanie kľúčov v centre A S : A, B, N A S A : E AS (K, B, N A, E BS (K, A)) E BS (K, A) lístok (ticket) A B : E BS (K, A) B A : E K (N B ) autentifikácia A B : E K (N B -1) Zimný semester 2017 Správa kľúčov 18
Systém Kerberos (AS, TGS, SS) AS autentifikačný server A AS : A, SS, T 1 AS A : E pwd (K ATGS, SS, T 2, L, E ASTGS (K ATGS, A, SS, T 2, L)) TGT ticket-granting ticket Zimný semester 2017 Správa kľúčov 19
Systém Kerberos (AS, TGS, SS) AS autentifikačný server A AS : A, SS, T 1 AS A : E pwd (K ATGS, SS, T 2, L, E ASTGS (K ATGS, A, SS, T 2, L)) TGT ticket-granting ticket TGS distribúcia žiadostí (lístkov) na služby (ticket-granting server) A TGS : SS, E ATGS (A, T 3 ), E ASTGS (K ATGS, A, SS, T 2, L) TGS A : E ATGS (K ASS, SS, T 4, E SSTGS (K ASS, A, SS, T 4, L )) lístok na službu SS pre A na čas L Zimný semester 2017 Správa kľúčov 20
Systém Kerberos (AS, TGS, SS) AS autentifikačný server A AS : A, SS, T 1 AS A : E pwd (K ATGS, SS, T 2, L, E ASTGS (K ATGS, A, SS, T 2, L)) TGT ticket-granting ticket TGS distribúcia žiadostí (lístkov) na služby (ticket-granting server) A TGS : SS, E ATGS (A, T 3 ), E ASTGS (K ATGS, A, SS, T 2, L) TGS A : E ATGS (K ASS, SS, T 4, E SSTGS (K ASS, A, SS, T 4, L )) lístok na službu SS pre A na čas L SS service server A SS : E ASS (A, T 5 ), E SSTGS (K ASS, A, SS, T 4, L ) SS A : E ASS (T 5 + 1) Zimný semester 2017 Správa kľúčov 21
Systém Kerberos V (AS, TGS, SS) AS autentifikačný server A AS : A, SS, TL, N 1 = nonce AS A : SS, A, E pwd (K ATGS, TL, N 1, TGS, SS), E ASTGS (K ATGS, A, TL) TGT ticket-granting ticket TGS distribúcia žiadostí (lístkov) na služby (ticket-granting server) A TGS : SS, TL, N 2, E ATGS (A, T 1 ), E ASTGS (K ATGS, A, TL) TGS A : A, E ATGS (K ASS, TL, N 2, SS), E SSTGS (K ASS, A, TL) lístok na službu SS pre A SS service server A SS : E ASS (A, T 2, SN), E SSTGS (K ASS, A, TL) SS A : E ASS (T 2, SN) TL interval platnosti SN sekvenčné číslo žiadosti Zimný semester 2017 Správa kľúčov 22
Ďakujem za pozornosť. jozef.jirasek@upjs.sk kotrady.johnny@gmail.com Zimný semester 2017 Správa kľúčov 23