Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Rinktiniai informacijos saugos skyriai
6. Kriptografija ir kriptografijos protokolai:Skaitmeninis parašas, Viešųjų raktų infrastruktūra, Kriptografiniai protokolai
2
Paskaitos tikslai
Šioje temoje nagrinėjami klausimai:
Skaitmeninis parašas Viešųjų raktų infrastruktūra: sertifikavimo centrai, sertifikatai Elektroninis vokas Kriptografiniai protokolai
3
Kriptografijos uždaviniai ir priemonės (priminimas)
Slaptumas (konfidencialumas, angl. confidentiality) Šifravimas
Vientisumas (integralumas, angl. integrity) Kriptografinės maišos funkcijos Skaitmeninis parašas
Autentiškumas (tapatumo nustatymas, angl. authenticity) MAC Skaitmeninis parašas
Neišsižadėjimas (angl. nonrepudiation) Skaitmeninis parašas
4
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?
5
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ą, Neišsižadėjimą (MAC pastarojo neužtikrina).
6
Skaitmeninio parašo naudojimas: schema [Sta07]
7
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.
8
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.
9
RSA skaitmeninio parašo schema
Kai kurios viešojo rakto kriptosistemos gali būti naudojamos kaip skaitmeninio parašo schemos.
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.
Ir dėl saugumo, ir dėl teisinių aspektų, parašo schemoje reikėtų naudoti ne tą pačią raktų porą, kuri naudojama šifravimui.
10
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į.
11
Kitos skaitmeninio parašo schemos (2)
ElGamal skaitmeninio parašo schema Paskelbta 1984 m. Irgi remiasi diskrečiojo logaritmo problema.
Schnorr’o skaitmeninio parašo schema Paskelbta 1989 m. Irgi remiasi diskrečiojo logaritmo problema.
Rabino skaitmeninio parašo schema Paskelbta 1979 m. Remiasi sveikųjų skaičių faktorizavimo problema.
12
Viešojo rakto kriptografija: šifravimo ir parašo bendras naudojimas
Komunikacijoje dažniausiai vienu metu reikia: slaptumo užtikrinimo (reikia naudoti šifravimą), vientisumo bei autentiškumo užtikrinimo (reikia naudoti parašą).
Todėl kiekvienas komunikacijų dalyvis naudoja dvi skirtingas raktų poras: skirtą šifravimui (viešasis raktas) ir dešifravimui (privatusis raktas), skirtą pasirašymui (privatusis raktas) ir parašo tikrinimui (viešasis raktas).
Siuntėjas: pradžioje pasirašo pranešimą (savo privačiuoju raktu, skirtu pasirašymui), po to jį užšifruoja (gavėjo viešuoju raktu, skirtu šifravimui).
Gavėjas: pranešimą iš pradžių dešifruoja (savo dešifravimui skirtu privačiuoju raktu), paskui patikrina siuntėjo parašą (siuntėjo viešuoju raktu, skirtu parašo
tikrinimui).
13
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
14
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?
15
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ų.
16
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.
17
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\TLS, IPsec, SET ir t. t.
Sukurtas 1988 m.
18
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).
19
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 vidinėms
reikmėms.
Privatūs sertifikavimo centrai, pavyzdžiui, VeriSign, kurie teikia sertifikavimo paslaugas.
Pavyzdys. Pažiūrėkite, kurių sertifikavimo centrų sertifikatus saugo jūsų interneto naršyklė (pavyzdžiui, Mozilla Firefox: Options – Advanced – Certificates – View Certificates).
20
Pavyzdys: Mozilla Firefox saugomi sertifikavimo centrų sertifikatai
21
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.
22
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.
23
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.
24
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.
25
Elektroninio voko formavimo struktūrinė schema Slaptasis
raktas AESPranešimas
M
Parašas RSA
Viešasis gavėjo raktas RSA
Šifravimas AES
Privatusis siuntėjo raktas RSA
Maišos funkcija SHA-1
Šifravimas RSA
Užšifruotas pranešimas
Užšifruotas raktas AES
Skaitmeninis parašas RSA
Elektroninis vokas
.
26
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
27
SSL/TLS veikimas
1. Klientas prisijungia prie serverio ir prašo jį identifikuotis. 2. Serveris siunčia klientui savo viešojo rakto sertifikatą.3. Klientas patikrina, ar , ar viešas raktas priklauso tam serveriui. 4. Tada klientas generuoja atsitiktinį seanso raktą ir siunčia jį
serveriui, užšifravęs serverio viešuoju raktu. 5. Serveris dešifruoja seanso raktą savo privačiuoju raktu ir naudoja
jį duomenų šifravimui seanso metu. Šis metodas naudojamas kliento-serverio autentifikavimui bei elektroninėje komercijoje.
28
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 AES, 3DES, Blowfish, Twofish ir kiti simetrinės kriptografijos algoritmai.
Raktų apsikeitimui naudojami RSA, DSA, ECDSA ir kiti viešojo rakto kriptografijos metodai.
29
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.
Naudota literatūra
[Bis03] Matt Bishop. Computer Security: Art and Science. Addison-Wesley, 2003.
[Gol05] D. Gollmann, Computer Security, 2nd edition, John Wiley & Sons, 2005.
[PP07] Charles Pfleeger, Shari Lawrence Pfleeger. Security in Computing, Fourth Edition. Prentice Hall, 2007.
[Ske16] G. Skersys. Diskrečioji matematika. Mokymo priemonė, Vilnius, 2016 (V dalies 5 skyrius „Kriptografija“), http://www.mif.vu.lt/~skersys/16r/dm/konsp.htm
[Sta07] V. Stakėnas. Kodai ir šifrai. TEV, Vilnius, 2007.