220 likes | 343 Views
Nøkkelforhandlingsprotokoller. NKS 2004 Geir.Johansen@no.thalesgroup.com www.thales-communications.no. Innhold. Oversikt protokoller Sammenligning protokoller Eksempel fra Thales Trusted VPN løsning. Protokoller.
E N D
Nøkkelforhandlingsprotokoller NKS 2004 Geir.Johansen@no.thalesgroup.com www.thales-communications.no
Innhold • Oversikt protokoller • Sammenligning protokoller • Eksempel fra Thales Trusted VPN løsning
Protokoller • Skal være en standardisert måte å forhandle nøkler mellom (typisk) to enheter som ikke har felles hemmelighet i utgangspunktet • Diffie-Hellman • MQV • EC-MQV • Disse algoritmene bakes ofte inn i IKE (IPsec).
Felles / terminologi • En Kropp Fq • q|p-1 s.a. GF(p)* har en undegruppe av orden q • Generator g av orden q • i er initiator og r er responder
Diffe-Hellman • Eksisterende nøkkelpar er hhv • (xi ,yi=gxi) og (xr ,yr=gxr) • De to utveksler sine offentlige nøkler, yi og yr. • Den felles hemmelige nøkkelen er da: • K= yi• gxr= gxi • gxr = gxi•xr = yr• gxi= gxr • gxi = gxr•xi = gxr•xi • Alt: Generere tilfeldige verdier Ri , Rr • som også brukes som eksponenter (MTI/C1). • K= gxiRi • gxrRr
Diffe-Hellman i IKE (RFC 2409) PHASE 1: Initiator Responder ----------- ----------- HDR, SA --> <-- HDR, SA HDR, KE, Ni --> <-- HDR, KE, Nr HDR*, IDii, [ CERT, ] SIG_I --> <-- HDR*, IDir, [ CERT, ] SIG_R PHASE 2: Initiator Responder ----------- ----------- HDR*, HASH(1), SA, Ni [, KE ] [, IDci, IDcr ] --> <-- HDR*, HASH(2), SA, Nr [, KE ] [, IDci, IDcr ] HDR*, HASH(3) --> KEYMAT = prf(SKEYID_d, g(qm)^xy | protocol | SPI | Ni_b | Nr_b) where g(qm)^xy is the shared secret from the ephemeral Diffie-Hellman exchange of this Quick Mode. SKEYID_d = prf(SKEYID, g^xy | CKY-I | CKY-R | 0) SKEYID = prf(Ni_b | Nr_b, g^xy)
MQV • Eksisterende nøkkelpar er hhv • (si ,gsi) og (sr ,gsr) • i genererer tilfeldig xi, beregner Ri=gxi og sender til r • r genererer tilfeldig xr, beregner Rr=gxr og sender til i • i beregner ki=(xi+f(Ri)si) mod n og • K=(Rr•gsr•f(Rr))hki • r beregner kr=(xr+f(Rr)sr) mod n og • K=(Ri•gsi•f(Ri))hkr • Der f(X) er en funksjon of h er en konstant.
MQV - EC • Spesifisert som MQV i endelig kropp. • Regner med punkter på Elliptisk kurve. Generator er punktet P. • F(X) er ‘siste halvdel’ av x verdien til punkt på kurve. h er kofaktor til gruppen av punkter.
Systemoversikt 1/2 Mobile Brukere Internet Mobile VPN forbindelser VPN konsentrator Hjemmekontor
AES kryptert tunnel Hjemmenett VPN konsentrator Internett Etablert VPN tunnel
Sertifikat utstedt av: CA er en applikasjon som genererer/ utsteder sertifikater (Cert)SK = secret key (private key) TeS Manufacturer (Thales) CertThaleser hardkodet i alle kryptoenheter SKThales CertThales CAUniversal Manufacturer (Thales) (signert av SKThales) SKUniversal, CertUniversal og DHUniversal, leveres med Element Manager SKUniversal CertUniversal CACustomer Customer (signert av SKUniversal) Genereres ved hjelp av Certificate Manager SKCustomer CertCustomer Customer (opsjonell CA) (signert av SKCustomer) CANetwork A CANetwork B Genereres ved hjelp av Certificate Manager SKNetwork A CertNetwork A SKNetwork B CertNetwork B Crypto unit 2 Crypto unit 3 Crypto unit 1 Genereres i kryptoenhetene Signeres av Key Manager Customer (signert av SKNetwork) SKOwn CertOwn SKOwn CertOwn SKOwn CertOwn Sertifikat hierarki
SW RNG SKCA CertCA DHCA Element Manager Security Manager Signed Own certificate CA certificate SK = Secret key Own public key (PK) PK = Public key DH parameters DH = Diffie-Hellman CA = Certificate Authority NVD RNG = Random Number Generator CertCA CertOwn SKOwn NVD = Nomadic VPN Device Certificate Manager Generering/lasting av sertifikater 1/2
Security Administrator PC Security Manager application Nomadic VPN Device Key Manager function Secure Controller Certificate generation function Processor system PC Card driver FPGA 7 3 4 7 2 2 6 7 1 5 Generering/lasting av sertifikater 2/2 • Operator starting the generation of the keys and NVD certificate • Generate key pair • Return NVD public key • Send NVD certificate for signing • Return signed NVD certificate • Send NVD certificate for storage • Send confirmation on operation completed
Nøkler Etablering av KEK (pr. NVD – DC2K forbindelse) • KEK= Key Encryptoion Key. Brukes til å beregne DEK • Diffie-Hellman basert • Utveksling av ‘Own certificates’ som verifiseres v.hj.a. den offentlige nøkkelen i et CA-sertifikat felles for NVD og DC2K Etablering av DEK (pr. NVD – DC2K forbindelse) • DEK = Data Encryption Key = trafikknøkkel • Forskjellig sender og mottaker DEK • KEK benyttes i beregningene av T-DEK, R-DEK og T-IV
Nomadic VPN Device (Unit A) DC2K (Unit B) Predistributert/generert informasjon: Held certificate serial numbers CA certificate, DH parametre, B, gB mod(p) CA certificate DH parametre (g, p) A = own private key gA mod(p) = own public key Valid certificate serial numbers Exchange request Certification methods (incl. CA id.) Own certificate (incl. gA / gB) Verifiserer DC2K sertifikat Verifiserer NVD sertifikat Available KEK algorithms Genererer random a, beregner ga mod(p) Genererer random b, beregner gb mod(p) KEK data transfer (ga / gb) Beregner KEK og KEKval Genererer challenge = ChallA Beregner KEK og KEKval Genererer ChallB Challenge Beregner respons = 3<ChallB>KEKval Beregner respons Response Verifiserer respons = 3<ChallA>KEKval-1 Verifiserer respons ACK B, b, KEK og KEKval er hemmelige verdier A, a, KEK og KEKval er hemmelige verdier KEK etablering
Nomadic VPN Device (Unit A) DC2K (Unit B) Pre-generert information: Exchange request KEK KEK DEK unit name KEKs serial numbers Available DEK algorithms Genererer random verdier: TKA, RKA, TIVA, RIVA Genererer random verdier: TKB, RKB, TIVB, RIVB DEK data transfer (TK, RK, TIV, RIV) Beregner: Transmit DEKA = Receive DEKB Receive DEKA = Transmit DEKB Transmit IVA Beregner: Transmit DEKB= Receive DEKA Receive DEKB= Transmit DEKA Transmit IVB Challenge Response ACK T- DEKA og R- DEKA er hemmelige verdier T- DEKB og R- DEKB er hemmelige verdier DEK etablering