Export page to Open Document format View page as slide show

Tietoturvan perusteet

Avaimenvaihtoprotokolla

  • Symmetrinen avain
    • Avain vaihdetaan usein asymmetrista salausta käyttäen.
    • Erillisiä protokolliakin on.
      • Shamir three pass protocol
      • Trenttiin persutuvat avaimen vaihdot
      • Erlliset asymmetriset avaimenvaihtoi algoritmit (diffie-helmann key-exchange)
  • Asymmetrinen avain
    • Tavoitteena julkisten avainten oikeellisuuden varmistus
    • Public Key Infrastructure
      • Julkisen avaimen jakamisen määrittely
      • Erilaisia PKI ratkaisuja olemassa
        • PKIX (X.509), PGP, SKIP
      • Kaikki perustuvat varmenteisiin (certificate)
        • Varmenne koostuu julkisesta avaimesta, tiedoista avaimen omistajasta sekä kontrolli-informaatiosta, jotka on allekirjoitettu sertifikaatin myöntäjän taholta.
        • Eri ratkaisut eroavat lähinnä informaation sisällön, muodon sekä ristiinsertifionti rakenteen pohjalta.

Symmetrisen avaimen luonti

  • Symmetrinen avain voidaan luoda ennen avaimen vaihtoa tai avaimenvahtoprotokolla voi luoda sen.
  • 1. Avaimen luonti ennen avaimen vaihtoa
    • Luodaan satunnainen luku joka on väliltä 0 - (2^{n}-1) , jossa n on halutun avaimen koko
      • 64 - bittinen avain = kokonaisluku välillä 0 - (2^{64}-1).
    • Avaimen tulee olla satunnainen.
      • Kaikkien arvojen väliltä 0 - (2^{n}-1) tulee olla yhtätodennäköisiä
      • Varottava hyökkäyksiä avaimen luontia vastaan
  • Kuka luo avaimen?
    • Luottamus kysymys. Luotammeko että toinen puoli luo luotettavan avaimen.
    • Se luo jolla on enemmän menetettävää?
    • Se jolla on pääsy satunnaisuutta tuottavaan lähteeseen?
  • 2. Avaimen luonti avaimen vaihto protokollalla.
  • Avain riippuu satunnaisista parametreista jota algoritmissa käytetään
    • Kaikki osallistujat voivat vaikuttaa lopputulokseen
    • Kukaan ei pysty päättelemään lopullista avainta etukäteen

Symmetrisen avaimen vaihto symmetisellä salaimella

  • Luotettua kolmatta osapuolta käyttäen.
    • Sekä A:lla että B:llä on olemassa oma symmetrinen avain jolla kommunikoidaan T:n kanssa. (avaimet K_{T-A} ja K_{T-B} )
  1. A ottaa yhteyttä T:hen ja pyytää yhteysavaimen (K_{A-B}) kommunkoidakseen B:n kanssa.
  2. T luo avaimen ja tekee kaksi kopiota siitä. T salaa yhden kopion A:n avaimella K_{T-A} ja toisen B:n avaimella K_{T-B} ja lähettää kopiot A:lle
  3. A purkaa yhteysavaimen (D_{K_{T-A}}(E_{K_{T-A}}(K_{A-B})) )
  4. A lähettää B:lle viestin joka pitää sisällään yhteysavaimen jonka T salasi E_{K_{T-B}}(K_{A-B})
  5. B purkaa avaimen viestistä.
  6. A ja B voivat turvallisesti käyttäen avainta K_{A-B}

Ongelmat ratkaisussa

  • T:hen on luotettava täysin.
    • T tietää yhteysavaimen ja voi näin ollen purkaa kaikki salaiset viestit A:n ja B:n välillä
  • T on pullonkaula
  • T on houkutteleva hyökkäyksen kohde
    • Jos ilkeämilinen M valtaa/korruptoi T:n, hän pystyy purkamaan viestit A:n ja B:n välillä (uudet ja mahdollisesti vanhatkin)
  • Yhteyden katkaisu T:hen estää järjestelmän toiminnan
    • Single point of failure

Shamir-three-pass protocol

  • Vaatii kommutativisen symmetrisen salaimen
    • kommutatiivisessa salaimessa salaus- ja purkufunktio voivat vaihtaa paikkaa tai olla sama funktio. Esimerkiksi XOR
  1. A luo salaisen yhteysavaimen K_{A-B}, ja selaa sen toisella satunnaisella avaimella K_{A}
    E_{K_{a}}(K_{A-B})
  2. A lähettää salatun avaimen B:lle
    1. B salaa saamansa viestin omalla satunnaisella avaimellaan K_{B} ja lähettää viestin takaisin A:lle
      E_{K_{B}}(E_{K_{A}}(K_{A-B})
    2. A purkaa viestin omalla avaimellaan ja lähettää viestin takaisin B:lle
      D_{K_{A}}(E_{K_{B}}(E_{K_{A}}(K_{A-B}))
    3. B purkaa viestin omalla avaimellaan ja saa näin näkyviin yhteysavaimen
      D_{K_{B}}(D_{K_{A}}(E_{K_{B}}(E_{K_{A}}(K_{A-B})))=K_{A-B}
  • XOR funktiota käytettäessä avain voidaan paljastaa jos kaikki kolme lähetettyä viestiä pystytään salakuuntelemaan
    • Ensimmäisen ja toisen viestin XORaus tuottaa K_{B} tuloksena. XOR K_{B} ja kolmas viesti tuo lopputuloksena avaimen K_{A-B}

Avaimenvaihto asymmetrisillä menetelmillä

  1. A noutaa B:n julkisen avaimen T:ltä.
    • T voi olla esimerkiksi avainten hallinta keskus( KDC, Key Distribution Center)
  2. A generoi satunnaisen yhteysavaimen
  3. A salaa yhteysavaimen B:n julkisella avaimella ja lähettää sen B:lle
  4. B purkaa viestin salaisella avaimellaan
  5. A ja B salaavat viestinsä tämän jälkeen symmetrisellä algoritmilla hyödyntäen jaettua yhteysavainta

Avaimenvaihto viestin yhteydessä

  • Avaimenvaihto toteutetaan protokollan ensimmäisen viestin yhteydessä. (tai sähköpostissa)
  1. A luo satunnaisen avaimen K ja salaa sillä viestin M
    E_{K}(M)
  2. A noutaa B:n julkisen avaimen ja salaa sillä avaimen K
    E_{Bpublic}(K)
  3. A lähettää salatun viestin ja yhteysavaimen B:lle (secured envelope, suojattu kuori)
    E_{K}(M),\: E_{Bpublic}(K)
  4. B purkaa yhteysavaimen A:n viestistä
    D_{Bprivate}(E_{Bpublic}(K))
  5. B purkaa viestin yhteysavaimella
    D_{K}(E_{K}(M))
  • Lisäturvallisuutena viesti voidaan vielä allekirjoittaa E_{APrivate}(E_{K}(M),\: E_{Bpublic}(K))
    • B voi varmistaa allekirjoituksen D_{APublic}(E_{APrivate}(E_{K}(M),\: E_{Bpublic}(K)))
  • Lisäksi voidaan käyttää aikaleimoja, joita käsitellään myöhemmin.

Broadcast yhteydellä avaimen vaihto

  • Kommunikaatio usean tahon kanssa
  1. A luo satunnaisen yhteysavaimen k ja salaa viestin M sillä
    E_{K}(M)
  2. A hakee B:n, C:n ja D:n julkiset avaimet
  3. A salaa k:n B:n, C:n ja D:n julkisilla avaimilla
    E_{Bpublic}(K),\: E_{Cpublic}(K),\: E_{Dpublic}(K)
  4. A booadcastaa salatun viestin ja avaimen salatut versiot
    E_{Bpublic}(k),\: E_{Cpublic}(K),\: E_{Dpublic}(K),\: E_{K}(M)
  5. Vain B,C ja D voivat selvittää yhteysavaimen k ja purkaa viestin M.

Diffie-Hellman avaimenvaihto algoritmi

  • Epäsymmetrinen algoritmi jota voidaan käyttää ainoastaan avaimen vaihtoon, ei viestien salaukseen.
    • Avain luodaan algoritmissa
    • RFC 2631
  • Valitaan numerot n ja g, niin että n on alkuluku ja g primiiivijuuri mod n
    • n ja g voivat olla julkisia
  1. A luo suuren satunnaisen luvun x ja lähettää B:lle X=g^{x}mod\: n
  2. B luo satunnaisen luvun y ja lähettää A:lle Y=g^{y}mod\: n
  3. A laskee k=Y^{x}mod\: n (g^{y}\, mod\: n)^{x}mod\: n=g^{yx}mod\: n
  4. B laskee k'=X^{y}mod\: n
    • Symmetrinen yhteysavain on k=k'=g^{xy}mod\: n
    • Salakuuntelija voi saada tietoonsa ainoastaan arvot n, g, X ja Y, joiden pohjalta ei voi laskea avainta k.
  • n:n on oltava suuri luku
    • Turvallisuus perustuu n:n tekijöihin jaon vaikeuteen
    • n määrittelee vaihdettavan avaimen koon.
  • g:n koolla ei ole merkitystä algoritmin turvallisuudelle.
    • g voidaan myös valita
  • Menetelmä on varmempi mikäli (n-1)/2 on myös alkuluku.
  • Testaa algoritmia itse pienillä luvuilla (esim n=5, g =2)

Diffie-Hellman useamman tahon avaimen vaihdossa

  1. A luo suuren satunnaisen kokonaisluvun x ja lähettää sen B:lle X=g^{x}mod\: n
  2. B luo suuren satunnaisen kokonaisluvun y ja lähettää sen C:lle Y=g^{y}mod\: n
  3. C luo suuren satunnaisen kokonaisluvun z ja lähettää senA Z=g^{z}mod\: n
  4. A lähettää B:lle Z'=Z^{x}mod\: n
  5. B lähettää C:lle X'=X^{y}mod\: n
  6. C lähettää A:lle Y'=Y^{z}mod\: n
  7. A laskee k=Y'^{x}mod\: n
  8. B laskee k=Z'^{y}mod\: n
  9. C laskee k=X'^{z}mod\: n
    • Yhteysavain on k=g^{xyz}mod\: n
    • Osallistujia voidaan lsiätä lisäämällä kierroksia.

Hughes:n variantti DH:sta (Hughes variant)

  • A luo satunnaisen luvun x ja laskee avaimen k=g^{x}mod\: n
    • avainta k voidaan nyt käyttää viestin salaukseen
  • B luo suuren luvun y ja lähettää A:lle Y=g^{y}mod\: n
  • A lähetää B:lle X=Y^{x}mod\: n
  • B laskee z=y^{-1} ja k'=X^{z}mod\: n
  • k'=k joten salattu viesti voidaan purkaa
  • Mahdollistaa avaimen käytön ennen yhteyden ottoa vastaanottajaan
    • Tieto joka on salattu avaimella k voidaan lähettää eri tahoille eri aikaan. (Julkaise salattu tiedosto nyt, vaihda avain myöhemmin.)

Diffie-hellman type key exchange with elliptic curves

  • First decide elliptic curve and choose point P
  • A chooses random number k and calculates multiplied P i.e. kP and sends this to B
  • B chooses random number l and calculates multiplied P i.e. lP and sends this to A
  • Now A can calculate shared key by multiplying the received lP with k i.e. k(lP).
  • B gets the same point by multiplying the gained results from a with his own secret i.e. l(kP)
  • The shared key is point lkP==klP

Man-in-the-middle

  • Man-in-the-middle hyökkäyksellä voidaan yrittää salakuunnella yhteyttä jossa avaimenvaihto tapahtuu asymmetrisesti.
  • M esittää B:lle olevansa A ja A:lle olevansa B ja näin kuuntelee A:n ja B:n viestinnän.
  1. A lähettää julkisen avaimensa B:lle. M nappaa viestin ja vaihtaa A:n julkisen avaimen tilalle omansa ja välittää viestin B:lle.
  2. B lähettää julkisen avaimensa A:lle. M nappaa myös tämän viestin ja lähettää A:lle oman julkisen avaimensa.
  3. Kun A lähettää viestin B:lle hän salaa sen nyt M:n julkisella avaimella. M ottaa viestin, purkaa sen ja salaa uudestaan käyttäen B:n julkista avainta.
    • Viestin ollessa symmetrinen avain, voi M nyt kuunnella ja muokata kaikkia viestejä jotka pystyy saamaan kanavalta.
  • M voi myös tehdä hyökkäyksen A:n ja avaimenjako keskuksen välillä
  • Hyökkäys toimii koska A:lla ja B:llä ei ole mahdollisuutta varmistaa toistensa avainten pätevyyttä tai sitä kenen kanssa kommunikoivat.

Allekirjoituksen hyödyntäminen julkisten avainten varmistamisessa

  • T allekirjoittaa A:n ja B:n julkiset avaimet sekä tiedon omistajista
    • Tehdään varmenne (certificate)
      I_{T},E_{Tprivate}(k_{Apublic},I_{A}),k_{Tpublic}
      where I is Identity information and k is the key
  • A ja B varmistavat toistensa avaimet tarkistamalla T:n allekirjoituksen
    • Vaatii että T:n julkinen avain on tunnettu.
  • Ominaisuuksia
    • M ei voi vaihtaa omaa avaintaan A:n tai B:b avaimeksi koska hänen avaimensa on allekirjoitettu hänelle itselleen.
      • M ei voi myöskään vaihtaa tunnistetietoja, koska hän ei tunne T:n salaista avainta.
    • Jos M murtautuu T:n palvelimelle hän pystyy varmentamaan uusia avaimia halutuille tahoille
      • A:n ja B:n symmetrisesti salatut viestit ovat kuitenkin edelleen salassa toisin kuin aiemmassa symmetriseen salaukseen ja T:hen perustuvassa mallissa.
      • Murto täytyy tehdä enennkuin A ja B ovat vaihtaneet julkiset avaimensa tai heidät pitää huijata hakemaan toistensa avaimet uudestaan.
    • T:t voivat varmentaa toisiaan, jotta M:n on vaikeampi esittäytyä luotettuna tahona.

Julkisen avaimen järjestelmä

  • PKI (Public Key Infrastructure) yrittää ratkaista ongelman kuinka voimme tietää että tietty julkinen avain kuuluu tietylle taholle.
    • Yhdistää julkisen avaimen tiettyyn identiteettiin
      • henkilö, organisaatio, laite
    • Läpinäkyvä järjestelmä
      • Ei saa vaatia liikaa toimenpiteitä käyttäjältä

Basic Operations

  • Varmennus
    • Liittää avaimen identiteetti
  • Validointi
    • Todentaa varmenteen aitouden

Varmenteen sisältö

  • Yksilöllinen tunnistetieto varmenteen omistajasta
    • käyttäjännimi, laiteosoite/ip osoite, yhtiön nimi
  • Julkinen avain
  • Muuta lisätietoa riippuen varmenne järjestelmästä (esimerkiksi voimassaoloaika)
  • Kaikki ylläoleva allekirjoitettuna kolmannen tahon toimesta
    • Allekirjoittajasta käytetään termiä varmenneviranomainen (Certification authority, CA)
    • Allekirjoitus kertoo että allekirjoittaa takaa kyseisen avaimen kuuluvan varmenteessa mainitulle taholle.

Varmenteen kumoaminen

  • Varmenteen voimassaoloaika tulee täyteen
  • Varmenteiden sulkulista (Certificate revocation list, CRL)
    • Kun julkiseen avaimeen liittyvä salainen avain on paljastunut.
    • Kun varmenneviranomaisen salainen avain on paljastunut.

X.509 (ISO/IEC 9594-8)

  • Osana ITU-T X.500 suosituksia.
  • Käytetään mm. seuraavissa protokollissa: S/MIME, SSL/TLS, SET, IPSEC
    • Useampi RFC kuvaa x.509:ää ja sen käyttöä internetissä
  • Ensimmäinen versio on vuodelta 1988, v2 1993 ja v3 1999 (RFC 2459, päivitetty versio vuodelta 2002: RFC 3280)
    • ensimmäinen drafti X.509 v3:sta julkaistiin jo 1995
  • Ei ole riippuvainen tietyistä algoritmeista, joskin RSA:ta suositellaan asymmetriseksi menetelmäksi.
  • Vaatii tiivistefunktion käyttöä
  • CRL käytössä
    • pitää sisällään varmenteet joilla on vielä köyttöaikaa, muuta eivät muuten ole valideja, c
    • CA ylläpitää listaa

X.509 Rakenne

  • Certificate
    • Version
    • Serial number
    • Signature algorithm
    • Issuer
  • Validity
    • Not before
    • Not After
  • Subject
  • Subject public key information
    • Public Key Algorithm
    • Subject Public k key
  • Issuer Unique Identifier (added in v2)
  • Subject Unique Identifier (added in v2)
  • Extensions (added in v3) can be divided in three different groups
    • 1. Key and policy information fields (Who and where the key can be used)
    • 2. Certificate subject and issuer attributes (aliases and more information about the identity issuer and subject)
    • 3. Certification Path Constraints
  • Certificate Signature Algorithm
  • Certificate Signature

X.509 varmenteen kelpoisuus

  • 1. CA:n todennus
    • Käydään varmenne puuta läpi kunnes luotettu CA löytyy.
  • 2. Kelpoisuuden tarkistus
    • Onko varmenteen voimassaoloaika päättynyt (tai edes alkanut vielä?)
    • Onko varmenne CRL listalla?
  • 3. Allekirjoituksen varmistus
  • HUOM! Varmenteen todennus ei todenna varmenteen lähettäjää
    • Varmenne on julkinen ja kuka tahansa voi kopioida sen.
    • Ainoastaan oikea omistaja tuntee yksityisen avaimen joka liittyy varmenteessa olevaan julkiseen avaimeen.
    • Lähettäjän todentamiseksi, lähettäjän tulee osoittaa tietävänsä yksityisen avaimen (esimerkiksi haaste-vastaus todennus)

PGP varmenne

  • PGP - Pretty Good Privacy
  • Käytetään sähköpostin suojaukseen
  • Avaimen hallinta perustuu kerättyihin avain ketjuihin jotka muodostavat luottamusverkkoja (web of trust)
    • Käyttäjä toimii CA:na
    • Käyttäjät jakavat listoja ja varmenteita toisilleen.

PGP Varmenteen sisältö

  • Sähköpostiosoite
  • Julkinen avain
  • Luottamustaso (Level of trust)
    • PGP:ssä jokaiselle avaimelle voidaan määritellä taso millä varmuudella avain kuuluu kyseiseen sähköpostiin.
    • Korkeampi arvo vastaa korkeampaa luottamusta
    • Mitä pidemmän ketjun takana varmenne on, sitä pienempi on luottamustaso
  • EI voimassaoloaikoja
    • Käyttäjä päättää kuinka pitkään luottaa
  • EI CRL listoja
Last modified: 2013/07/01 14:42