32
http://vision.fe.uni-lj.si Komunikacije v avtomatiki Zaščita podatkov Stanislav Kovačič Univerza v Ljubljani Fakulteta za elektrotehniko 2007/08

Iz vsebine

  • Upload
    ayame

  • View
    80

  • Download
    3

Embed Size (px)

DESCRIPTION

Iz vsebine. Šifrirni algoritmi Simetrični, nesimetrični algoritmi Overovitev, digitalni podpis, potrdila Protokoli O tem drugič. Zaščita podatkov - izhodišča. varnost / tajnost / zasebnost / zaupnost preprečevanje zlorabe podatkov, dostopa do občutljivih podatkov - PowerPoint PPT Presentation

Citation preview

http://vision.fe.uni-lj.si

Komunikacije v avtomatikiZaščita podatkov

Stanislav Kovačič

Univerza v LjubljaniFakulteta za elektrotehniko

2007/08

Iz vsebineIz vsebine

• Šifrirni algoritmi• Simetrični, nesimetrični algoritmi• Overovitev, digitalni podpis, potrdila

• Protokoli• O tem drugič

Zaščita podatkov - izhodiščaZaščita podatkov - izhodišča• varnost / tajnost / zasebnost / zaupnost

• preprečevanje zlorabe podatkov, dostopa do občutljivih podatkov

• (angl. Security, secrecy, privacy, confidentiality)• itegriteta – celovitost (neokrnjenost) podatkov

• preprečevanje ponarejanja • (angl. Integrity)

• avtentičnost, verodostojnost

• pristnost udeležencev v komuniciranju, preverjanje ustreznosti.

• (angl. Authentication)

• zanikanje, utaja

• preprečevanje zanikanja avtorstva oz. utaje poslanega

• (angl. Non-repudiation)

Zaščita podatkovZaščita podatkov

• Šifriranje/dešifriranje (prikrivanje podatkov)

algoritmi za zagotavljanje tajnosti, varnosti

• Protokoli

postopki varovanja, izmenjave podatkov, ki skupaj s šifrirnimi algoritmi zagotavljajo primerno varnost

• Področja

komunikacijski sistemi

operacijski sistemi

informacijski sistemi

Na različnih področjih uporabe

Zaščita podatkovZaščita podatkov

• Ni omejena na en sam sloj

• Lahko prisotna praktično na vsakem sloju

• Na splošno čim bližje končnemu uporabniku

1234567

1234567

1234567

1234567

Šifriranje / prikrivanje podatkovŠifriranje / prikrivanje podatkov

• Kriptografija (področje šifriranja izdelave kriptogramov)

• Kriptoanaliza (področje napadov na šifrirni sistem)

• Kriptologija (kriptografija, kriptoanaliza)

Šifriranje / prikrivanje podatkovŠifriranje / prikrivanje podatkov

• P: Odprto besedilo (angl. Plaintext)

• E: Šifrirni postopek (algoritem), parametriran s šifrirnim ključem

KE (Angl. Encryption, encryption key)

• C = E( P, KE ): kriptogram

• D: Dešifrirni postopek (algoritem), parametriran z dešifrirnim ključem

KD (Angl. Decryption, decryption key)

• Vsiljivec (aktivni, pasivni) prisluškuje in ponareja kriptograme.

• Pomembno:

Oba ključa morata biti tajna, postoka E in D pa sta lahko (tipično tudi sta) znana oziroma “javna”. Oba ključa sta (tipično) kar enaka.

Šifriranje - pristopiŠifriranje - pristopi

• Klasični pristopi šifriranja uporabljajo dve operaciji:• substitucija, zamenjava oz. nadomeščanje simbolov

• transpozicija, permutacija oz. premeščanje simbolov

• poljubna kombinacija obeh.

• Sicer pa sta prvi pravili šifriranja• redundanca, t.j. odvečnost v kriptogramu, čim večja je, tem bolje.

• aktualnost kriptograma, omejeno trajanje kriptograma

NadomeščanjeNadomeščanje• Osnovne simbole nadomestimo z novimi simboli

Preprost primer: si r i, r i = s (i+k ) mod N

Preprost napadPreprost napad

• Možen napad: statistične zakonitosti odprtih besedil

NadomeščanjeNadomeščanje• Uporabimo več (različnih) abeced

• Abecede izbiramo s ključem

Nadomeščanje, več abecedNadomeščanje, več abeced

PremeščanjePremeščanje

Premeščanje / nadomeščanjePremeščanje / nadomeščanje

Premeščanje, P-blok Nadomeščanje S-blok

Kombinacija obeh “Zmnožek“

Ključ Ključ

DES (Data Encryption Standard) DES (Data Encryption Standard)

• DES, razvoj IBM – 1977, izveden iz sistema Lucifer (128 bitni ključ)

• Množično uporabljan

• Za vse današnje potrebe/razmere ne zagotavlja zadostne varnosti,

je pa še uporaben.

• V spremenjeni – izpopolnjeni obliki in v kombinaciji z drugimi

postopki še vedno množično prisoten.

DES je kompleksna kombinacija transpozicij in substitucij,

t.i. (angl. Block cipher) “bločni” način (šifriranje po blokih) in

(angl. Product cipher) “množilni” način šifriranja (transp., subst.).

DES (Data Encryption Standard) DES (Data Encryption Standard)

DESDES

• 56 bitni ključ, dejanski problem je premajhna dolžina ključa

• 19 stopenj, 16 iteracij

• vsa kompleksnost algoritma je v funkciji F

• v vsaki iteraciji se uporabi modificiran ključ

• DES je simetričen, isti ključ za šifriranje/dešifriranje

• dešifrirni postopek je enak šifrirnemu v obratnem vrstnem redu.

DES izboljšave – trojni DESDES izboljšave – trojni DES

• dva 56-bitna ključa

• K1 = K2 enojni DES

E D EP C

K1K1 K2

D E DC P

K1K1 K2

AES - Advanced Ecryption standardAES - Advanced Ecryption standard

• NIST (National Institute of Standards and Technology)

• 1997: klic za prijavo novega algoritma• Simetričen, bločni

• Zasnova in izvedba algoritma morata biti javni

• Dolžina ključa: 128, (192, 256)

• Možnost izvedbe s strojno ali programsko opremo

• Algoritem mora biti v javni lastni ali licenciran na

nediskriminatoren način

AES - Advanced Ecryption standardAES - Advanced Ecryption standard

• 1998: NIST izbere pet finalistov

• 2000: NIST na osnovi glasovanja izbere algoritem

RIJNDAEL (Rijmen, Daemen)

• Nekaj podatkov:

• Dolžina ključa 128 do 256 s korakom 32 (v praksi 128, ali 256)

• Dolžina bloka 128

• Sicer pa je izvedbeno gledano algoritem zelo podoben DES,

bistven pa je daljši ključ.

Nekateri bolj pogosti algoritmiNekateri bolj pogosti algoritmi

• Blowfish

• DES, 56 bitni ključ

• IDEA, 128 bitni ključ

• RC4, 1- 2048 bitni ključ

• RC5, 128-256 bitni ključ

• AES128-256 bitni ključ (prva izbira)

• Trojni DES, 168 bitni ključ (druga najboljša izbira)

Sistemi z javnim ključemSistemi z javnim ključem

• PKS (Angl. Public Key Systems)

• Simetrični sistemi (klasični sistemi) uporabljajo enak ključ za

šifriranje in dešifriranje

• Oba ključa (pravzaprav je en sam) morata biti TAJNA

• Problem: distribucija kjučev

• V sistemih z javnim ključem je ŠIFRIRNI ključ JAVEN, objavljen

oz. znan vsem zainteresiranim uporabnikom.

• Razumljivo, (vsaj) dešifrirni ključ MORA biti TAJEN

• Ključa sta torej različna

• BISTVO sistema: na osnovi javnega šifrirnega ključa se ne da ali

vsaj ne v dogednem času odkriti tajnega dešifrirnega ključa.

Sistemi z javnim ključemSistemi z javnim ključem

RSARSA• Bistveno vprašanje: kako generirati (E,D) pare ključev?

• RSA: Rivest, Shamir, Adleman

• RSA temelji na dejstvu, da je velika števila težko faktorizirati.

• RSA algoritem danes velja za nezlomljivega ali zelo trdnega

• Slabost je zelo velika dolžina ključa in računska zahtevnost

• Zato se največ uporablja za “distribucijo” ključev v kombinaciji

z računsko učinkovitejšimi simetričnimi algoritmi.

RSA - osnoveRSA - osnove

• Generiranje ključev:

• izberi dve veliki praštevili, p in q (tipično v obsegu 1024 bitov)

• izračunaj n = p x q, in z = (p-1) x (q-1)

• izberi z-ju tuje število, naj bo to število d

• izberi e tako, da velja e x d = 1 (mod z)

• Sedaj imamo par ključev, e in d

• Šifriranje:

• deli besedilo na enako dolge bloke P, tako da je P < n

• šifriraj, C = Pe (mod n)

• Dešifriraj:

• P = Cd (mod n)

RSA – primer RSA – primer • izberemo p in q

• naj bosta p = 3 in q = 11

• Izračunamo n in z,

• izačunamo n = p x q = 3 x 11 = 33

• izračunamo z = (p-1) x (q-1) = 2 x 10 = 20

• Izberemo d

• d = 7 (d in z nimata skupnega delitelja, no seveda 7 je praštevilo)

• Izberemo e

• e x 7 = 1 (mod 20), na primer (3 x 7 = 21 (mod 20) = 1)

• Imamo oba ključa

• šifriramo z (e, n) = 3, 33), dešifriramo z (d, n) = (7, 33)

• (e, n) “objavimo”

RSA – primer RSA – primer

• Šifriramo, C = P3 (mod 33)

• Dešifriramo, P = C7 (mod 33)

• Na primer, odprto besedilo je SDV, šifriramo posamezne črke.

PKS – digitalni (elektronski) podpisPKS – digitalni (elektronski) podpis

• Problem:

• možnost ponarejanja, vsak se lahko predstavi pod lažnim imenom

• možnost utaje, vsak lahko kasneje zanika pošiljanje

• Rešitev: digitalni podpis

PKS – digitalni (elektronski) podpisPKS – digitalni (elektronski) podpis

• Vsaka postaja (uporabnik) ima svoj par ključev, javnega in tajnega

• Z javnim šifrira tisti, kdor pošilja

• Postaja A se najprej podpiše, “(de)šifrira” s svojim tajnim ključem

• Postaja A skrije besedilo, šifrira z javnim ključem postaje B

• Postaja A pošlje kriptogram postaji B

• Postaja B dešifrira kriptogram s svojim tajnim ključem

• Postaja B “šifrira” besedilo, dobi odprto besedilo

• Ker je vsaka postaja edina, ki pozna svoj tajni ključ, je to dokazilo,

da kriptogram pošilja ona – njen podpis.

• Če postaja B obdrži podpis besedila, je tudi utaja nemogoča.

Digitalni podpis s simetričnim ključemDigitalni podpis s simetričnim ključem• Uporabniki izberejo zaupnega posrednika Z, ki mu vsi zaupajo.

• Vsak uporabnik po zaupnem kanalu sporoči svoj ključ

zaupnemu posredniku: KA, KB, ....,

• Uporabnik A pošilja besedilo P uporabniku B

• Zato kreira KA( B, RA, t, P) in pošlje Z-ju: A, KA( B, RA, t, P)

• RA je naključno število, t je čas, A je njegova identiteta

• Zaupni posrednik ugotovi, da mu A pošilja kriptogram in ga

dešifrira z njegovim ključem.

• Zaupni posrednik Z pošlje B-ju kriptogram: B, KB(A,RA,t,P, KZ(A,t,P))

• KZ(A,t,P) je besedilo A-ja, ki ga je podpisal zaupni posrednik

• S pomočjo zaupnega posrednika oz. njegovega podpisa lahko B dokaže,

da je P poslal A

OverovitevOverovitev• Digitalni podpis ali tajnost nista vedno potrebna, zadostuje overovitev

• Enosmerne funkcije – “odtis” besedila (angl. Message digest – MD)

• za dano odprto besedilo P je enostavno izračunati MD(P)

• za dani MD(P) je težko, vsaj v doglednem času določiti P

• za dani P je nemogoče najti Q, da bo MD(P) = MD(Q)

• majhna sprememba P-ja povzroči veliko spremembo MD(P)

A BP, DA(MD(P))

• Overovitev v sistemu z javnim ključem

• Če tretji ponaredi P, B lahko preveri verodostojnost preko MD(P)

• Znane enosmerne funkcije v uporabi MD5, SHA-1

PotrdilaPotrdila• V sistemih z javnim ključem je rešen problem distribucije ključev,

ne pa tudi problem zaupanja v dejansko identiteto pošiljatelja.

• Potreben je zaupnik, ki izdaja potrdila (jamstva) za istovetnost javnih ključev.

• Skratka, bistvena naloga zaupnika je jamstvo, da dotičnik javni ključ pripada

dani (pravi) osebi.

• Vzemimo, da želi B zaupno komunicirati z A-jem in drugimi uporabniki.

• B zato predloži svoj javni ključ KB zaupniku v potrditev

• Zaupnik izda potrdilo (certifikat), s katerim jamči, da javni ključ KB pripada

B-ju, identiteto B-ja (npr. Njegovo ime), in odtis potrdila, podpisanega z

zaupnikovim tajnim ključem.

• Če A komunicira z B-jem, lahko preko preverjanja potrdila ugotovi

istovetnost B-ja. Odtisa potrdila se ne da podtakniti.