Transcript PPT
Rinktiniai informacijos saugos skyriai 9. Kriptografija ir kriptografijos protokolai: Skaitmeninis parašas, Viešųjų raktų infrastruktūra, Kriptografiniai protokolai Paskaitos tikslai Šioje temoje nagrinėjami klausimai: Skaitmeninis parašas Viešųjų raktų infrastruktūra: sertifikavimo centrai, sertifikatai Elektroninis vokas Kriptografiniai protokolai 2 Kriptografijos uždaviniai ir priemonės (priminimas) Slaptumas (konfidencialumas, confidentiality) Vientisumas (integralumas, integrity) Kriptografinės maišos funkcijos Skaitmeninis parašas Autentiškumas (tapatumo nustatymas, authenticity) Šifravimas MAC Skaitmeninis parašas Neišsižadėjimas (nonrepudiation) Skaitmeninis parašas 3 Parašas Parašo pavyzdžiai. Asmuo sumoka kortele ir pasirašo pirkimo čekį. Pardavėjas patikrina, ar pirkėjo parašas ant čekio sutampa su jo parašu ant kortelės. Sutartys turi būti pasirašytos, kad įsigaliotų. Ar galime turėti analogišką mechanizmą elektroniniame pasaulyje? 4 Skaitmeninis parašas Skaitmeninis parašas: duomenų blokas, susiejantis pranešimą (dokumentą) su siuntėju (pasirašančia esybe). Tai viešojo rakto kriptografija: Kiekvienas subjektas turi raktų porą: privatųjį, skirtą parašo sudarymui, ir viešąjį, skirtą parašo tikrinimui. Skaitmeninio parašo schema: pasirašymo (parašo sudarymo) algoritmas: pateikus pranešimą ir pasirašymo (privatųjį) raktą, išveda parašą, parašo tikrinimo algoritmas: pateikus pranešimą, parašą, tikrinimo (viešąjį) raktą, išveda patvirtinimą arba paneigimą, kad parašas yra galiojantis. Užtikrina: Vientisumą, Autentiškumą, 5 Neišsižadėjimą (MAC pastarojo neužtikrina). Skaitmeninis parašas: schema [Sta07] 6 Skaitmeninis parašas ir maišos funkcijos Paprastai skaitmeninis parašas naudojamas kartu su kriptografinėmis maišos funkcijomis: pasirašomas ne pats pranešimas, o pranešimo santrauka. 7 Paprasto parašo ir skaitmeninio parašo palyginimas Priklausymas: Paprastas parašas yra pačiame dokumente. Skaitmeninis parašas yra atskiras „dokumentas“. Jis gali būti siunčiamas atskirai nuo pasirašyto dokumento. Patikrinimo metodas: Paprastas parašas: palyginti parašą dokumente su parašo pavyzdžiu. Skaitmeninis parašas: nereikia saugoti parašo pavyzdžio. Santykis su dokumentu: Paprastas parašas: tuo pačiu parašu pasirašoma daugybė dokumentų. Skaitmeninis parašas: kiekvieno dokumento parašas yra kitoks. 8 RSA skaitmeninio parašo schema Dažna viešojo rakto kriptosistema gali būti perdirbta į skaitmeninio parašo schemą. Privatusis raktas naudojamas pasirašymui, viešasis – parašo patikrinimui. Pavyzdys. Tokiu būdu ir RSA kriptosistema gali būti naudojama kaip skaitmeninio parašo schema. Laikoma, kad parašo schemoje reikėtų naudoti ne tą pačią raktų porą, kaip šifravimui. Ir dėl saugumo, ir dėl teisinių aspektų. 9 Kitos skaitmeninio parašo schemos (1) Digital Signature Algorithm (DSA) Paskelbta 1991 m. 1993 m. JAV paskelbta standartu (Digital Signature Standard, DSS). Tai pirmoji vyriausybiniu lygiu pripažinta skaitmeninių parašų schema. Veiksmai atliekami su sveikaisiais skaičiais. Remiasi diskrečiojo logaritmo problema. Elliptic Curve DSA (ECDSA) 2009 m. JAV paskelbta standartu kartu su DSA Analogiška DSA, tik veiksmai atliekami ne su sveikaisiais skaičiais, o su elipsinės kreivės taškais. Tai leidžia naudoti trumpesnius raktus, išlaikant tą patį saugumo lygį. 10 Kitos skaitmeninio parašo schemos (2) ElGamal skaitmeninio parašo schema Schnorr’o skaitmeninio parašo schema Paskelbta 1984 m. Irgi remiasi diskrečiojo logaritmo problema. Paskelbta 1989 m. Irgi remiasi diskrečiojo logaritmo problema. Rabino skaitmeninio parašo schema Paskelbta 1979 m. Remiasi sveikųjų skaičių faktorizavimo problema. 11 Kriptografijos priemonių suvestinė Slaptojo rakto kriptografija Viešojo rakto kriptografija Slaptumas Srautiniai šifrai: RC4, A5/1, E0. Blokiniai šifrai + šifravimo režimai: AES Viešojo rakto kriptosistemos: RSA Vientisumas ir autentiškumas MAC: HMAC Skaitmeninis parašas: RSA, DSA 12 Viešieji raktai ir pasitikėjimas Viešojo rakto kriptografijoje (šifravimo ir skaitmeninio parašo schemose) kiekvienas naudotojas turi privačiojo ir viešojo raktų porą. Algis, norėdamas išsiųsti pranešimą Birutei, šifruoja jį, naudodamasis Birutės viešuoju raktu KVB. Algis, norėdamas įsitikinti, kad pranešimas tikrai atėjo iš Birutės, patikrina skaitmeninį parašą naudodamasis Birutės viešuoju raktu KVB. Klausimai: Kur ir kaip laikomi viešieji raktai? Kaip gauti viešąjį raktą? Iš kur Algis žino, kad KVB tikrai yra Birutės viešasis raktas? Tiksliau, kodėl Algis tuo tiki? 13 Viešųjų raktų platinimas Viešas paskelbimas: naudotojai siunčia savo viešuosius raktus gavėjams arba visai bendruomenei iš karto. Viešai prieinamas katalogas: didesnis saugumas, jei raktai registruojami viešajame kataloge. Abu būdai turi trūkumų. 14 Viešųjų raktų sertifikatai Sertifikatas susieja subjektą su viešuoju raktu. Sertifikato turinys pasirašomas sertifikavimo centro (Certificate Authority (CA)). Sertifikato turinį gali patikrinti bet kas, žinantis sertifikavimo centro viešąjį raktą. Sertifikatai leidžia gauti viešąjį raktą neturint realaus laiko prieigos prie sertifikavimo centro. 15 X.509 sertifikatai X.509 standartas yra dalis X.500 standarto. Apibrėžia viešųjų raktų infrastruktūrą (public key infrastructure, PKI): Nustato, kad viešieji raktai laikomi kaip sertifikatai viešame kataloge. Sertifikatai išduodami ir pasirašomi įstaigos, vadinamos sertifikavimo centru (Certificate Authority (CA)). Naudojamas daugelyje protokolų: SSL, IPsec, SET ir t. t. Sukurtas 1988 m. 16 X.509 sertifikatų struktūra X.509 sertifikatus sudaro šie laukai: sertifikato versija (1, 2 arba 3), serijos numeris, skirtingas kiekvienam to paties CA išduodamam sertifikatui, parašo algoritmo identifikatorius (nurodo algoritmą ir parametrus, kurie buvo panaudoti sertifikato pasirašymui), sertifikatų centro X.500 formato vardas, galiojimo periodas (nuo kažkurios datos iki kažkurios datos), subjekto, kuriam išduotas sertifikatas, X.500 formato vardas, subjekto viešojo rakto informacija (algoritmas, parametrai, raktas), sertifikatų centro unikalus identifikatorius (nuo 2 versijos), subjekto unikalus identifikatorius (nuo 2 versijos), papildomi laukai (nuo 3 versijos), parašas (visų sertifikato laukų santraukos parašas). 17 Kaip gauti sertifikatą? Kiekvienas savo reikmėms gali sukurti savo sertifikavimo centrą (CA) (openssl ir kitos bibliotekos suteikia tam reikalingus įrankius): Daugelis kompanijų sukuria savo sertifikavimo centrus. Privatūs sertifikavimo centrai, pavyzdžiui, VeriSign, kurie teikia sertifikavimo paslaugas. Pavyzdys. Pažiūrėkite, kokius sertifikatus priėmė jūsų interneto naršyklė (pavyzdžiui, Mozilla Firefox: Options – Advanced – Encryption – View Certificates). 18 Pavyzdys: Mozilla Firefox sertifikatai 19 Sertifikatų galiojimas Sertifikatas galiojantis, jei: sertifikavimo centro parašas yra galiojantis, sertifikato galiojimo laikas nepasibaigė, sertifikatas nebuvo atšauktas. Sertifikatai gali būti atšaukti anksčiau laiko, jei: naudotojo privatusis raktas buvo sukompromituotas, naudotojas nebesinaudoja šio sertifikavimo centro paslaugomis, sertifikavimo centro sertifikatas buvo sukompromituotas. Sertifikavimo centras palaiko atšauktų sertifikatų sąrašą: Certificate Revocation List (CRL). Naudotojai turėtų atsižvelgti į tokius sąrašus. 20 Sertifikavimo centrai ir pasitikėjimas Sertifikatas galiojantis, jei CA parašas galiojantis. Gali būti sudaryta CA sertifikatų grandinė. Paskutinis grandinėje CA vadinamas šakniniu CA. Norint patikrinti skaitmeninį parašą, reikia gauti šakninio CA viešąjį raktą. Pasitikėjimas yra centralizuotas (šakninių CA atžvilgiu) ir hierarchinis. 21 PGP sertifikatai PGP (Pretty Good Privacy) yra saugaus elektroninio pašto programa. Siunčiamas paštas šifruojamas ir pasirašomas. Kuo skiriasi nuo X.509 sertifikatų? Tuo, kaip valdomas pasitikėjimas viešaisiais raktais. Pasitikėjimas nėra centralizuotas. 22 Elektroninis vokas Slaptojo rakto (simetriniai) šifravimo algoritmai (AES, IDEA ir t.t.) veikia dešimtis kartų greičiau, lyginant su viešojo rakto (asimetriniais) šifravimo algoritmais (RSA ir t.t.). Todėl buvo sukurtos mišrios sistemos, kuriose naudojami abiejų tipų algoritmai: pranešimas šifruojamas simetriniu algoritmu, o slaptasis pranešimo raktas - asimetriniu. Tokio tipo sistema vadinama elektroninio voko sistema. 23 . Elektroninio voko formavimo struktūrinė schema Slaptasis Pranešimas raktas AES Viešasis gavėjo raktas RSA M Šifravimas AES Privatusis siuntėjo raktas RSA Šifravimas RSA Maišos funkcija SHA-1 Parašas RSA Užšifruotas pranešimas Užšifruotas raktas AES Skaitmeninis parašas RSA Elektroninis vokas 24 Kriptografiniai protokolai Kaip parodė teoriniai ir praktiniai tyrimai, kad kriptografiniai algoritmai užtikrintų reikalaujamą saugumą arba autentiškumą sistemoje, jų naudojimas turi būti reglamentuotas atitinkamomis taisyklėmis ir procedūromis, vadinamomis protokolais. SSL/TLS SSH PCT SKIP PGP SET 25 SSL veikimas 1. 2. 3. 4. 5. 6. 7. Klientas prisijungia prie serverio ir siunčia jam palaikomų šifravimo algoritmų sąrašą. Serveris atsako su algoritmo pavadinimu, savo viešuoju raktu, bendru raktu bei maišos algoritmo pavadinimu. Klientas gali patikrinti, ar viešas raktas priklauso tam serveriui. Tada klientas generuoja atsitiktinį seanso raktą ir siunčia jį serveriui, užšifravęs su serverio viešuoju raktu. Serveris dešifruoja seanso raktą su savo privačiuoju raktu ir naudoja jį duomenų šifravimui seanso metu. Klientas patikrina serverį, siųsdamas jam atsitiktinę eilutę, šifruotą seanso raktu. Serveris patvirtina gavimą. Šis metodas naudojamas kliento-serverio autentifikavimui bei elektroninėje komercijoje. 26 SSH programa SSH (Secure Shell) — programa, skirta saugiai jungtis prie nutolusio kompiuterio per tinklą jame vykdyti komandas, kopijuoti failus iš vieno kompiuterio į kitą. SSH atlieka griežtą autentifikavimą bei užtikrina saugų ryšį tarp kompiuterių, naudojantis nesaugiomis linijomis. Galima perdavinėti suspaustus duomenis. Šifravimui naudojami DES, 3DES, IDEA arba Blowfish algoritmai, raktų apsikeitimui — RSA metodas. 27 SET protokolas SET (Secure Electronic Transaction) — protokolas, skirtas kredito kortelių transakcijų per Internetą aptarnavimui, vystomas VISA, MasterCard, IBM, Microsoft ir kitų kompanijų pastangomis. Sudėtinga trišalė atsiskaitymų kontrolės sistema įtraukia pardavėją, pirkėją, banką, aptarnaujantį korteles, ir sertifikavimo centrą, kuris visus likusius dalyvius aprūpina sertifikatais. 28 Literatūra [Gol05] D. Gollmann, Computer Security, 2nd edition, John Wiley & Sons, 2005. [Bis03] Matt Bishop. Computer Security: Art and Science. Addison-Wesley, 2003. [PP07] Charles Pfleeger, Shari Lawrence Pfleeger. Security in Computing, Fourth Edition. Prentice Hall, 2007. [Sta07] V. Stakėnas. Kodai ir šifrai. TEV, Vilnius, 2007. 29