1 / 28

MODELI ZAUPANJA IN DIGITALNI CERTIFIKATI

MODELI ZAUPANJA IN DIGITALNI CERTIFIKATI. Dušan Zupančič, KOMPAS Xnet. Zaupanje v vsakdanjem življenju. Oglejmo si spodnjo izjavo:. Od neznanca na ulici bi morda vzel knjigo, verjetno bi vzel letak in bi ga najverjetneje tudi prebral. Nikoli pa od neznanca ne bi vzel hrane. Temelji zaupanja.

samara
Download Presentation

MODELI ZAUPANJA IN DIGITALNI CERTIFIKATI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MODELI ZAUPANJA IN DIGITALNI CERTIFIKATI Dušan Zupančič, KOMPAS Xnet

  2. Zaupanje v vsakdanjem življenju Oglejmo si spodnjo izjavo: Od neznanca na ulici bi morda vzel knjigo, verjetno bi vzel letak in bi ga najverjetneje tudi prebral. Nikoli pa od neznanca ne bi vzel hrane.

  3. Temelji zaupanja • Iz izjave razberemo, da je naše zaupanje odvisno od: • Vira – v našem primeru neznanec • Sredstva – knjiga, letak, hrana • Vrste interakcije – sprejemanje, branje • Razmislek: • So knjige res popolnoma nenevarne? • Ali hrane res ne sprejemamo od neznancev (tržnice, gostišča)? • Ali ne gremo včasih še dlje in dovolimo, da neznanci zabadajo igle v naše telo (zdravstveni dom)?

  4. Vrste zaupanja • Neposredno zaupanje • Neposredno zaupamo prijateljem, ki jih dobro poznamo • Posredno zaupanje • Posredno zaupamo branjevki na tržnici, ker pri njej kupujejo trije prijatelji in vsi zagotavljajo, da ima najboljše sadje • Posredno zaupamo kirurgu, ker ima diplomo organizacije, ki uživa splošno zaupanje in deluje v organizaciji (bolnišnici), ki ji zaupamo

  5. Integriteta Zaupnost Prestrezanje Modifikacija Ali je moja komunikacija zasebna? Je kdo spremenil podatke? Avtentikacija Nezmožnost zanikanja ? Trdi Ni poslal Niprejel Ponarejanje S kom imam opravka? Kdo je kaj poslal in kdaj? Zaupanje v digitalnem svetu

  6. Kategorije kriptografskih algoritmov • Simetrična šifra • Šifriranje in odšifriranje se vrši z istim ključem • Asimetrična šifra • Obstajata javni in privatni ključ. Eden je uporabljen za šifriranje drugi za odšifriranje • Hibridna šifra • Z asimetričnim ključem šifriramo simetrični ključ seje (session key), ki je uporabljen za šifriranje samega sporočila • Zgostitev (hash) • Iz dolgega sporočila izračuna karakteristično številko (message digest) • MAC (Message Authentication Code) • Za overovljenje sporočila uporablja skupen skrivni (simetrični) ključ • Digitalni podpis • Za overjanje sporočila uporablja podpis sporočila s privatnim in preverjanje z javnim ključem

  7. Kdo je zares pošiljatelj sporočila? Halo Ana!Ali je tvoj javni ključ af3… ? SPOROČILO DIGITALNIPODPIS ANA BOJAN

  8. Certifikati • Predstavljeni v letu 1978[Kohnfelder] • X.509 – najbolj razširjen standard • v.1 (1988) – ni razširljiv • v.2 – dve dodatni polji (nič bolje kot v.1) • v.3 (1997) omogoča dodajanje lastnih razširitvenih polj certifikatu • Ostali • PGP, SPKI, itd.

  9. Digitalni certifikat • V osnovi vsak digitalni certifikat vsebuje vsaj naslednje komponente: • Javni ključ • Informacijo o certifikatu • Enega ali več digitalnih podpisov CA • Glede na namen uporabe certifikate ločimo na: • Certifikati CAcertifikati, ki so namenjeni podpisovanju drugih digitalnih certifikatov, ki jih nadalje delimo na: • Certifikati končnih entitet • Osebnicertifikati končnih entitet za katere imamo javni in zasebni ključ • Ostalicertifikati končnih entitet za katere nimamo zasebnega ključa

  10. Kaj vsebuje X.509 certifikat?

  11. Formati datotek s certifikati • X509 format(končnica .cer ali .crt) V datoteki se hrani en certifikat. Ta format uživa dokaj široko podporo • Cryptographic Message Syntax –PKCS #7 Format (.p7b) Omogoča izvoz celotne certifikatne verige • Personal Information Exchange syntax –PKCS #12 Format (.pfx ali .p12)Ta format se uporablja za izvoz para ključev (javnega in zasebnega) • Certificate Signing Request (CSR) Syntax –PKCS #10 FormatNi datoteka ampak oblika zahtevka s katerim pošljemo certifikat v podpis v CA

  12. Dekodiranje X.509 v .NET 2.0 • Dekodiranje certifikatov in ključev iz datoteke ali iz BLOB-ov //Odpre binarno ali base64 .cer datoteko X509Certificate2 x509 = new X509Certificate2(”Dusan.cer”); //Odpre PKCS12 iz blob-a x509 =new X509Certificate2(blob, _ password,X509KeyStorageFlags.UserKeySet); • Tudi izvoz v blob (in pozneje v .pfx datoteko) byte[] pfxBlob = x509.Export(X509ContentType.Pfx, geslo);

  13. Razširitve v X.509 v3 (X.509 extensions) • Podajajo dodatne informacije o certifikatu in dovoljeni vrsti uporabe le tega • Nekaj razširitev: • Key usage – namen uporabe ključa (podpis, šifriranje, …) • SubjectKeyIdentifier – zgostitvena vrednost subjekta • AuthorityKeyIdentifier – zgostitvena vrednost DN izdajatelja certifikata • BasicConstraints – ali gre za CA - več v RFC3280 • SubjectAltName – omogoča dodajanje dodatnih identitet • ExtendedKeyUsage – vsebuje razširjene napotke o dovoljeni uporabi ključa • CertificatePolicy – certifikatna polica, ki podaja pogoje pod katerimi je bil izdan certifikat

  14. Uporaba razširitev X.509 v .NET 2.0 • Dostop do informacij v razširitvah • Razredi za uporabo ključev, omejitve, identifikacijo subjektov • Ali pa dodamo razširitve po svoji želji foreach(X509Extension extension in x509.Extensions) { Console.Write( extension.Oid.FriendlyName ) if (extension.Oid.Value == "2.5.29.15"){ X509KeyUsageExtension keyUse = (X509KeyUsageExtension) extension; Console.Write(" = " & keyUse.KeyUsages.ToString()); } Console.WriteLine(); } Koristna povezava (iskanje OID) : http://asn1.elibel.tm.fr/oid/index.htm

  15. Model shranjevanja certifikatov CryptoAPI Root CA My Trust User DS Logical Store Layer Default Store Provider Smart Card CSP LDAP Physical Store Layer Smartcard Services

  16. Certifikatne shrambe

  17. Certifikatne shrambe in .NET 2.0 • Dostop do pogostih CryptoAPI operacij s certifikatnimi shrambami (dodajanje, odstranjevanje, pregled, itd.) • Odpiranje osebne certifikatne shrambe • Dodajanje ali odstranjevanje certifikata X509Store mojaShramba = new X509Store(“My”); mojaShramba.Open(OpenFlags.ReadOnly); mojaShramba.Add(x509); mojaShramba.Remove(x509);

  18. Modeli zaupanja • Neposredno zaupanje (Direct Trust) • Hierarhično zaupanje (Hierarchical Trust) • Mreža zaupanja (Web of Trust)

  19. Neposredno zaupanje • Uporabnika si izmenjata certifikata (npr. po elektronski pošti) • Nato preverita ali certifikat res izvira od prave osebe (npr. po telefonu preverita razpoznavni odtis certifikatov) • Certifikat drugega uporabnika uvrstita v shrambo med “zaupanja vredne ljudi”

  20. Hierarhično zaupanje • Vsi zaupajo korenskim CA (Verisign, …) • Korenski CA jamči za vmesne CA • CA jamči za certifikate uporabnikov (ki so se prej ustrezno legitimirali)

  21. Mreža zaupanja • Prvič predstavljeno v PGP • Odločitve o zaupanju so prepuščene uporabnikom • Težavno upravljanje in nadgrajevanje

  22. Mreža zaupanja v PGP

  23. Navzkrižnocertificiranje CertificationAuthority CertificationAuthority Končni uporabniki Končni uporabnikizaupajo svoji CA Končni uporabnikizaupajo svoji CA Končni uporabniki Zaupanje med PKI-jema Navzkrižno certificiranje(Cross-Certification)

  24. Veljavnost certifikata • Izpolnjeni morajo biti pogoji: • Integriteta: podpis je veljaven • Podpisan s strani zaupanja vredne CA • Ali pa se certifikacijska pot konča z zaupanja vrednim CA • Certifikat je veljaven v tem trenutku: • Čas preverjanja veljavnosti mora biti med vrednostnima “Not Valid Before”in“Not Valid After” • Certifikat ni preklican (Revoked) • Namen uporabe je v skladu s predpisanim namenom uporabe

  25. Preverjanje certifikacijske poti v .NET 2.0 • Enostavno preverjanje certifikacijske poti s privzetimi možnostmi if (x509.Verify()){ Console.WriteLine("Certifikat je veljaven!"); }

  26. Preverjanje certifikacijske poti v .NET 2.0 • Za naprednejše možnosti sta na voljo X509Chain in X509ChainPolicy: • Razširjena uporaba ključev • Certifikacijske police • Opcije za razveljavljene certifikate (Revocation options) • Čas preverjanja veljavnosti X509Chain chn = New X509Chain( ); chn.ChainPolicy.RevocationFlag = X509RevocationFlag.EndCertificateOnly; if (chn.Build(x509)){ ... }

  27. ZAKLJUČEK • Zaupanje igra pomembno vlogo tako v vsakdanjem kot v digitalnem svetu • Osnovna enota zaupanja je certifikat • Zaupanje je lahko neposredno ali posredno • Posredno zaupanje je lahko mrežno, hierarhično ali hibridno (navzkrižno certificiranje CA) • V ogrodju .NET 2.0 bomo dobili solidno podporo za delo z X.509 certifikati, vključno s podporo razširitvam, shrambam in preverjanjem certifikacijske poti

  28. VPRAŠANJA

More Related