Suojausmenetelmät

• Tiedon Salaaminen (kryptografia)

– Tavoitteena tiedon luottamuksellisuuden varmistaminen

– Osittain varmentaa myös tiedon eheyden.

– Käytetään joko tietoa tallennettaessa tai siirrettäessä.

• Tiivistefuktiot

– Varmennetaan tiedon eheys

• Viestin autenttisuus koodi (message authentication code MAC)

– Varmennetaan viestin lähde ja eheys

• Tiedon piilottaminen (Steganografia)

– Piilotetaan viesti johonkin toiseen viestiin.

Määritelmiä - Kryptografia

MM Kryptografia Viestien salaamisen tiede

MM Kryptoanalyysi Salattujen viestien purkamisen tiede ja taide

MM Kryptologia Matematiikan suunta joka tutkii kryptografiaa ja kryptoanalyysia

MM Selkoteksti plaintext : luettavissa oleva teksti

MM Salattuteksti ciphertext

MM Salaus encryption, encipher

MM Purku decryption, decipher

Kryptografia

• Kryptos (piilotettu) graphein (kirjoitus)

• Perustuu matematiikkaan

– Lukuteoria

– Informaatioteoria

• Tietoturvan peruspalikka

MM Kryptoalgoritmi (salausalgoritmi)

• Määrittelee kuinka selkotekstistä muodostetaan salattu teksti

• DES, AES, RSA …

Avaimettomat algoritmit

• Luotettavuus perustuu algoritmin salaisuuteen

• Algoritmin paljastuttua on viestit helppo purkaa

– Samaa algoritmia ei voi käyttää usean eri tahon kanssa

• Käytetty ennen tietokoneiden aikakautta

Avaimelliset algoritmit

• Luotettavuus perustuu avaimen salaisuuteen

• Algoritmi tunnettu ja avoin

• Symmetriset ja asymmetriset menetelmät

MM Kryptoprotokolla (salaus protokolla)

• Määrittelee kuinka algoritmeja käytetään eri tilanteissa turvallisuuden takaamiseksi

• TLS (SSL), IPSec, SSH…

MM Turvaprimitiivi

• Toiminnallinen osa protokollassa (esim. kryptoalgoritmi)

Klassiset salausmenetelmät eli kryptografian historia

• Avaimettomat algoritmit

1. Korvaussalaimet

• Tavoitteena merkkien korvaaminen muilla

• Esimerkiksi: Yksinkertainen korvaus

– Merkki korvataan toisella merkillä

– Helppo toteuttaa, Helppo murtaa

∗ vrt. Sanomalehtien kryptot

– Caesarin salain, rot 13

2. Sekoitussalaimet

• Salattavan tekstin merkit pysyvät samoina, mutta niiden paikat vaihtuvat

• Tavoitteena informaation levittäminen ympäri salattua viestiä

3. Yhdistelmä salaimet (Product Ciphers)

• Useamman salaimen yhteiskäyttö

– Salataan ensin toisella ja sitten toisella

• Sekoitus ja korvaussalaimen oikea yhteiskäyttö tuottaa hyvän diffuusion ja konfuusion

– Modernien salainten perusta

Moderni kryptografia

• Avaimettomissa menetelmissä monia ongelmia

– Esim: Algoritmin salaisuus ainoa turva → uuteen kohteeseen pitäisi kehittää uusi algoritmi

• Avaimelliset salaimet

– Vigeneren salain

∗ Kehitetty 1500 luvulla perustuen Batistan monikorvaus salaimeen

∗ Avaimen avulla vaihtuva korvausaakkosto

∗ Murrettu 1900 luvun alussa

• Moderni kryptorafia

– Algoritmit avoimia

∗ Turvallisuus perustuu avaimeen

– Symmetriset salaimet

∗ yksi avain

∗ lohko ja virta-salaimet

– Asymmetriset salaimet

∗ kaksi avainta, toinen salaukseen toinen salauksen purkamiseen

Symmetrinen salaus

• Symmetrisen algoritmin turvallisuus perustuu salaiseen avaimeen.

• Samaa avainta käytetään viestin salaamiseen ja salauksen purkamiseen.

– E_{k}(M)=C ; M = selkoteksti, k = avain, C = salatuu teksti

– D_{k}(C)=M

• Etuja

– Suuri datankäsittelynopeus joka on ennustettavissa

∗ Ajoaika riippuu suoraan viestin pituudesta

– Avaimet suhteellisen lyhyitä

– Voidaan käyttää primitiiveinä erilaisten systeemien rakentamisessa

– Hyvin tunnettu historia

• Haittoja

– Avainten jakaminen ja hallinta vaikeaa

– Avainten salassa pito

– Avaimet kertakäyttöisiä kommunikoinnin suojauksessa

∗ Joka istunnolla oma avain

• Voidaan jakaa kahteen ryhmään: Lohko ja virtasalaimiin (jonosalaimiin)

1. Virtasalaimet (stream cipher)

• Avaimella alustettava pseudosatunnaislukugeneraattori

• Korvaa yhden merkin selkotekstiä heti yhdellä salatulla merkillä

– tai bitin bitillä

• Muunnos riippuu

– Selkotekstin merkistä

– Avaimesta

– Pseudosatunnaislukugeneraattorista

• Vahvuudet

– Salauksen nopeus

– Pieni virheen leviäminen

– Voidaan tehdä tehokkaita hardware toteutuksia

• Heikkoudet

– Pieni diffuusio

– Alttius lisäyksillä ja muutoksille

• Tunnettuja algoritmeja

– RC4, SEAL, A5 (GSM)

2. Lohkosalaimet (block cipher)

• Salaa joukon (lohkon) selkotekstin merkkejä kerralla.

• Merkin salaus riippuu koko lohkosta

– Lohkon koko riippuu salaimesta, tavallisesti 64 bittiä

– Salauksessa hyödynnetään korvausta että sekoitusta

∗ Lohkon sisällä bitit vaihtavat paikkaa

∗ Lohkon sisällä pienempi joukko bittejä korvataan toisella joukolla bittejä

• Lohkojen yhdistämiseen käytetään erilaisia moodeja

– ECB (Electronic Code Book)

∗ Lohkot toisistaan riippumattomia, laitetaan peräkkäin

– CBC (Cipher Block Chaining), CFB (Cipher-Feedback Mode), OFB (Output-Feedback Mode), CTR (Counter Mode)

∗ Edellinen lohko vaikuttaa jollain tavalla seuraavan lohkon koodaamiseen.

∗ CFB:llä , OFB:llä ja CTR:llä, lohkosalaimesta tulee virtasalain

• Vahvuudet

– Suuri diffuusio

– Immuuni lisäyksille ja muutoksille

• Heikkoudet

– Hidas salaus

– Virheen leviäminen

• Tunnettuja algoritmeja: DES (1977), AES(2000), IDEA, Blowfish

Asymmetrinenkryptografia

• Julkisen avaimen järjestelmät: 1976 Diffie-Hellman

• RSA, ElGamal, Elliptiset käyrät

– Knapsack ongelmaan perustuvat algoritmit on kaikki murrettu

• Eri avain salauksen ja purkamiseen

– Viesti salataan vastaanottajan julkisella avaimella. E_{kPublic}(M)=C

– Vastaanottaja purkaa viestin omalla salaisella avaimellaan. D_{kPrivate}(C)=M

– Algoritmin toiminna johdosta ainoastaan salaisen avaimen tietäjä voi avata viestin.

• Julkisesta avaimesta ei voi päätellä salaista avainta.

• Julkinen avain voidaan laittaa jakoon vaikka omalle kotisivulle tai julkistaa puhelinluettelossa

– Salatun viestin lähettäminen ei vaadi salaisuuden jakoa

• Perustuvat vaikeisiin matemaattisiin ongelmiin.

– Alkulukujen kertolasku on helppo toiseen suuntaan, mutta tulon tekijöihin jako on vaikeaa, kun luvut ovat suuria.

• Osa järjestelmistä soveltuu myös allekirjoitukseen

• Edut

– Ainoastaan yksityinen avain täytyy pitää salassa

– Avainten hallinta verkossa vaatii ainoastaan funktionaalisesti luotetun tahon

∗ Ei tarvi paljastaa salaisuuksia

– Avainpareja voidaan käyttää pitkä aika (jopa vuosia)

– Mahdollista toteuttaa melko tehokkaita allekirjoitus mekanismeja

• Heikkoudet

– Tietojen käsittelynopeudet montakertaluokka huonommat kuin symmetrisillä järjestelmillä

∗ Käytetään yleensä vain symmetrisen avaimen vaihtoon.

– Avain koot merkittävästi suurempia

∗ Salaista avainta ei voi muistaa → kuinka säilyttää salainen avain turvassa?

– Vaikea todistaa turvalliseksi

∗ Perustuu oletettavasti vaikeisiin numeroteoreetisiin ongelmiin

∗ Systeemin historia lyhyt, voi löytyä uusia tapoja ratkaista algoritmi.

– Kuinka todistaa julkinen avain oikeaksi

Yksisuuntaiset funktiot (hash funktiot)

• one-way hash, message digest, tiivistefunktio, sormenjäljet, kryptografinen tarkistesumma, MIC

• Perustuvat matemaattisiin funktioihin jotka ovat helppo laskea toiseen suuntaan, mutta lähes mahdottomia laskea takaisin päin.

– h(x)=y

– Lautasten rikkominen

• Funktioiden tulee olla törmäysvapaita (collision free)

– On vaikea löytää arvoa x_{2}siten että h(x_{1})=h(x_{2})

– On vaikea löytää arvoja x_{1} ja x_{2} siten että h(x_{1})=h(x_{2})

– Syntymäpäivä paradoksi

∗ 50% mahdollisuus että 23 ihmisen joukossa kahdella on sama syntymäpäivä

• Algoritmit ovat julkisia, ei avaimia

– SHA-1, RIPEMD-160, MD5, whirlpool

• Hashin avulla voidaan varmistaa viestin muuttumattomuus

1. Haetaan koodinpätkä suomesta ja hash arvo tekijän kotisivulta

2. Lasketaan koodinpätkästä hash

3. Verrataan hasheja, jos ovat samat, koodi on alkuperäinen, jos erit, koodi on muuttunut

• Hasheja käytetään yhtenä osana erilaisissa tietoturva protokollissa.

• Hasheja murrettu viimevuosina

– MD5 osoitettu oletettua heikommaksi crypto-2004 konferenssissa (samalla meni mm. RIPEMD)

– SHA-1 osoitettu oletettua heikommaksi vuonna 2006

– Odotettavissa uusien algoritmien kehittelyä ja lisää tutkimusta alalla

Viestin autenttisuus koodi (MAC)

• Annetaan koodille syötteeksi koko viesti, tuloksena MAC

• MACin avulla voidaan varmistaa vaihdetun viestin autenttisuus

– Viestin saavuttua, lasketaan siitä itse MAC salaisella avaimella ja verrataan viestin mukana tulleeseen MAC:iin

– MACia ei voi luoda kuin avaimen tunteva henkilö

• MACin avulla voidaan varmistaa talletetun tiedon muuttumattomuus

– Talletetaan tieto ja siitä laskettu MAC tietokantaan

– Haettaessa tieto lasketaan MAC ja verrataan

• MAC ei salaa itse viestiä, vaan sen voi lukea kuka vain.

Digitaalinen allekirjoitus

• Tehtävät samat kuin tavallisella allekirjoituksella

• Julkisella avaimella toteutettu allekirjoitus

– Viesti salataan omalla salaisella avaimella E_{kPrivate}(M)=C

– Viesti puretaan salaajan julkisella avaimella D_{kPublic}(C)=M

– Salaus toimii allekirjoituksena

– Allekirjoitus on kiistämätön

∗ Ainoastaan allekirjoittaja tuntee salaisen avaimen, jolla salaus on suoritettu. Viesti aukeaa julkisella avaimella.

∗ vrt. MAC : Ei voida todistaa kuka avaimen tietävistä on viestin allekirjoittanut.

– Allekirjoituksen voi tarkistaa kuka tahansa

∗ Julkinen avain on julkinen

– RSA, DSA

• Koska allekirjoitus on riippuvainen viestistä

– Viestiä ei voi muuttaa

– Allekirjoitusta ei voi siirtää toiseen viestiin

• Yleensä ei allekirjoiteta koko viestiä vaan siitä laskettu hash

– Viestin lukija laskee viestistä hashin ja vertaa sitä allekirjoitettuun hashiin

– nopeuttaa allekirjoitusta ja sen tarkistamista

Satunnaisluvut

• Kryptografia tarvii satunnaislukuja esimerkiksi avaimien generoimiseen.

– Turvallisuus perustuu numeroiden satunnaisuuteen

• Turvaton satunnaislukugeneraattori johtaa turvattomaan toteutukseen

– Seuraava satunnaislukua ei pidä pystyä arvaamaan edellisestä

– Jos pystytään arvaamaan mitä yksikätinen rosvo arpoo seuraavaksi, edellisistä kuvioista, voi osaaja kerätä kauniin raha potin.

• Täysin satunnaisen luvun generointi mahdotonta algoritmeilla.

– Tarvitaan ennustamattomia ja uudelleenkehittämöttömiä lukuja turvallisuuden saamiseksi.

– Ulkoiset lähteet

∗ Geigermittarin lukemat, laava lampun kuvan hash, levyjen ilmaturbulenssi.. jne.

– käyttäjän toimet:

∗ hiiren liikuttaminen, näppäinten välinen painallus aika, näppäily järjestys, äännähdykset mikrofoniin…

– lähteitä käytetään joko sellaisenaan, tai siemenenä jollekin funktiolle.

Algoritmien turvallisuus

• Algoritmien turvallisuus määritelmiä

• Ehdottoman turvallinen

– Ei väliä kuinka paljon salatekstiä analyytikolla käytettävissä, silti ei ole olemassa tarpeeksi informaatiota selkotekstin löytämiseksi

∗ OTP ainoa ehdottoman turvallinen algoritmi

∙ Avain yhtä pitkä kuin viesti.

∙ Käytännössä käyttökelvoton

∙ Avaimen pito salaisena on yhtä vaikeaa kuin itse viestin, koska molemmat yhtä pitkiä.

∙ Muut järjestelmät murrettavissa raa'alla voimalla

• Laskennallisesti turvallinen (Computationally Secure)

– Ei voida murtaa käytettävissä olevin resurssein, nyt tai tulevaisuudessa

– Suurin osa nykyisistä algoritmeista

• Hyökkäyksen vaikeuden mittaus

– Data kompleksisuus

∗ Tarvittavan datan määrä hyökkäystä varten

– Prosessoinnin kompleksisuus

∗ Tarvittava aika hyökkäykseen

∗ Tön määrä

– Säilytystilan vaatimukset

∗ hyökkäykseen tarvittava muisti

Algoritmin valinta

• Algoritmin valinnan vaikeus

– Turvallisuutta usein vaikea verrata

∗ jopa asiantuntijan

• Mihin luottaa?

– Kuka tahansa pystyy kehittämään algoritmin, jota ei itse pysty murtamaan

– Suljettuja järjestelmiä on voitu testata vain sisäisesti

∗ DVD:n suojaus on murrettu, GSM suojaus murrettu …

– Yleensä avoin pitkään käytetty ratkaisu on hyvä valinta

∗ Ottaisitko lääkäriltä lääkkeen

∙ Jonka hän on itse kehittänyt

∙ Jota ei ole annettu muille lääkäreille testattavaksi

∙ Jonka koostumusta ei ole kerrottu muille

∙ Jonka toiminnan takaa vain kyseinen lääkäri

∗ Avoimuus ei kuitenkaan itsessään takaa mitään

• Algoritmi pitää sunnitella huolella

– A5 (GSM:n käyttämä algoritmi) käyttää 64 bittistä avainta,

∗ Algoritmissa olevan virheen takia se voidaan purkaa samassa ajassa kuin 30 bittinen avain.

∗ Avaimen käyttötavasta johtuen sen entropia on siis vain 30 bittiä.

– Yleensä luotetaan vain avoimiin ja pitkään esillä olleisiin algoritmeihin, joista oletettavasti olisi jo virheet löytyneet.

• Vaaran merkkejä

– Salainen algoritmi

– ylipitkät avaimet

– Paljon teknistä jargonia

– Avainkoko ja OTP samassa lauseessa

– Ei julkista algoritmia eikä ulkopuolisten oikeiden asiantuntijoiden analyysia

• Hyvä algoritmi case AES (Advanced Encryption Standard)

– Julkinen kilpailu

– Kuka tahansa sai arvostella algoritmeja

– Viisi finalistia, jotka kävivät vielä uuden arviointi kierroksen

∗ Kaikki viisi finalistia todettiin luotettaviksi, Rijndael valittiin yleiskäyttöisimpänä

• Hyväkään algoritmi ei auta huonoja avaimia vastaan.

– Käytetään koneen generoimia avaimia

∗ Vaativat hyvän satunnaisluku generaattorin.

∗ Netscape 1.1 generoi 128 bittisen avaimen. Koodi virheen takia avaimen entropia oli vain noin 20 bittiä l. generoitu avain vastasi turvallisuudeltaan 20 bitin avainta.

∗ Aina ei voida käyttää generoitua avainta

Steganografia

• Hidden writing

• Viesti näkyvillä kun vain osaa etsiä oikein

– Esim. Ensimmäinen kirjain rivillä

• Informaatiota voidaan piilottaa melkein mihin tahansa

– Kuviin, ääneen, tekstiin

• Turvallisuus perustuu käytetyn menetelmän salaisuuteen sekä siihen että viestiä ei osata etsiä

– Piilotettavan ja piilottavan informaation määrien suhde vaikuttaa turvallisuuteen

• Vesileimaus

– Dokumentin alkuperän varmistaminen

• Kryptografiaa voidaan hyödyntää yhdessä steganografian kanssa.

Last modified: 2013/07/01 14:50