Translated by Kari Kananoja (KYBS2004 course assignment at JYU.FI) Alkumusiikkia
Seuraavaan keskusteluun. Hän on työskennellyt kuusi vuotta
kryptografian parissa Karlsruhen yliopistossa - Oots.
Kiitokset esittelystä ja tervetuloa keskusteluun. Kuten Herald juuri
sanoi, olen työskennellyt kryptografian parissa suurimman osan
viimeisistä kuudesta vuodesta. Olen huomannut että monilla ihmisillä on tavallaan mielikuva
siitä mitä kryptografia ja kryptaus on. Mutta joskus tämä
mielikuva ei vastaa sitä mistä on kysymys. Niinpä tahdoinkin pitää
esittelypuheen kryptografiasta laajalle yleisölle. Siis
yleisölle, jolla ei ole aikaisempaa kosketuspintaa kryptografiaan tai jopa
yleisölle, jolla ei ole taustaa matematiikassa tai tietotekniikassa.
Kuten aiemmin sanoin, tämä puhe on osoitettu erityisesti ei-tekniselle
yleisölle, vaikka puhutaankin 36C3:sta. Meillä kuitenkin lienee melko teknislähtöinen yleisö.
Ja tämä on puhetta perusteista. En siis puhu hienoista tutkimus-
tai kehitystuloksista. Puhun pelkistä perusteista. OK.
Paitsi työskentelystä kryptografian parissa, minä nautin sovelletusta kryptografiasta, numeroteoriasta
jne, siis kaikenlaisten muistien, korruption, vikojen ja ohjelmien tutkimisesta.
OK. Tämä on kuva vanhempieni kissasta. Koska jokaisessa puheessa pitäisi olla
kuvia kissoista. Ja tämä on - Kiitos, Tämä on muistilistani
tälle puheelle. Ensimmäinen kohta, luulenpa että sen jo teimmekin. Ja muistin virkistykseksi
haluan selittää mitä kryptaus on.
mitä se tekee ja mitä se ei tee.
Haluan selittää autentikaatiota, mikä ikään kuin... mikä korjaa ongelman
mitä kryptaus ei korjaa. Haluan selittää sertifikaatteja, koska ne auttavat
paljon niin kryptauksessa kuin autentikoinnissakin. Ja lopuksi, haluan
selittää hiukan miten selittämäni aiheet toimivat yhdessä ja voidaan
yhdistää yhä hyödyllisempiin asioihin. Aloitetaanpa ensimmäisestä kohdasta
tässä. Haluan selittää kryptaamisesta. Kryptaus on periaatteessa ratkaisu
ongelmaan. Puhutaanpa ongelmasta joka meillä on, ennen kuin mennään ratkaisuun.
Ongelma on yksi klassista ongelmista, joissa kaksi osapuolta haluaa
keskustella. Me kryptaajat puhumme yleensä Alicesta ja Bobista ja Alice
haluaa lähettää viestin Bobille.. Tässä tapauksessa hyvin yksinkertaisen viestin
"Terve". Mutta kryptografiaa on käytetty diplomatiassa ja sotilaallisissa tarkoituksissa
satoja vuosia. Joten kuvitellaanpa että kyseessä onkin jokin kriittisempi viesti. Ja
ongelma joka halutaan ratkaista onkin se, että voi olla olemassa salakuuntelija joka haluaa
kuunnella yhteyttä ja lukea viestin, ja sisällön
joka on lähetetty Alicelta Bobille. Ja jotkut ajattelevat, että kryptografia toimii
jotenkin seuraavasti: tämä on aika lähellä, mutta
ei oikeastaan. Eli kuvitellaan että Alice suoritti jonkinlaisen kryptausmenetelmän
tekstilleen tuottaakseen jotain satunnaista liirumlaarumia, mitä me kutsumme
salakirjoitukseksi. Ja Alice lähettää salakirjoituksen Bobille. Ja Bobilla on
kryptauksen purkuun menetelmä, joka tietää miten kryptaus puretaan. Siis jotta kryptaus palautettaisiin
selväkieliseen muotoon. Ja nyt se pointti, jonka
jotkut ymmärtävät väärin; tieto miten purkaa kryptaus olisi
salaisuus. Mutta se ei ole totta nykyään. Vuonna 1883, henkilö nimeltään Auguste Kerckhoffs
muodosti muutaman periaatteen, jotta sotilaallisissa tarkoituksissa tehtyjen salakirjoitusten
tulisi noudattaa. Ja yksi näistä vaatimuksista tuli tunnetuksi
nimeltään Kerckhoffin periaate ja siinä sanotaan: Salakirjoituksen ei pitäisi vaatia salailua
eikä sen pitäisi olla ongelma jos salakirjoitus päätyy vääriin käsiin.
Muotoillakseni tätä hieman uudelleen; salakirjoitus jota käytät, pitäisi olla tarpeeksi turvallinen
jotta voit kertoa vihollisellesi, miten purkuprosessi
toimii ja miten itse purkuprosessi toimii, ilman että
kryptaus ei vaikutu. Tai jos vielä uudelleenmuotoilen; jos käyttämäsi salakirjoitus
on niin epävarma, ettet voi kertoa kenellekään miten se toimii, ehkä sinun ei
kannata käyttää sitä laisinkaan. Palataanpa vielä tähän kuvaan. Joten, jos
hyökkääjä tietää miten sanoman kryptauksen saa purettua, tällä ilmeisestikin hyvin yksinkertaisella
tavalla ei vielä saavuteta mitään käytettävää. Tämän takia esiteltiin avain
tälle kuvalle. Nyt kryptaus- ja purkutoiminnot
käyttävät avainta, joka menee tehtävän tuloksen sisään. Siis Alice
tekee jonkinlaisen toiminnon viestinsä kryptaamiseksi ja avaimen sisällyttämiseksi
Ja Bob, jolla on sama avain, voi kääntää kryptauksen
takaisin viestin alkuperäiseen muotoon. Kuitenkin, niin kauan kuin vain Alice ja Bob tietävät avaimen,
mutta hyökkääjä ei, hän ei voi avata kryptausta.
Yleisesti, en mene siihen, miten nämä toiminnot teknisesti suoritetaan.
Näissä laatikoissa, jotka kuvaavat it -toimintoja, sisältävät
matemaattisia tai tiedonkäsittelyllisiä toimintoja. Ja haluaisin selittää miten
ne toimivat sisäisesti, varmistaakseni laajalle yleisölle tarkoitetun puheeni ymmärtämisen.
Ongelma tässä on se, että Alicen ja Bobin täytyy sopia avaimesta etukäteen.
Eli Alice ei voi vain lähettää avainta Bobille, koska jos hän niin tekisi,
hyökkääjä. joka salakuuntelee, kuulisi avaimen myös, kuten viestinkin
Ja hyökkääjä voisi purkaa kryptauksen kuten Bobkin. Eli tämä ei
toimi, koska se on surkea yritys. Kuitenkin, jonkin aikaa
70- ja 80-luvuille saakka, ainoastaan tätä toimintatapaa käytettiin.
Sitä kutsuttiin symmetriseksi kryptaukseksi, koska voimme yksinkertaisesti kääntää toiminnot toisin päin
ja Bob voisi vastavuoroisesti lähettää viestin Alicelle, koska kryptaus ja sen purku
käyttävät samaa avainta. Ja jos on olemassa symmetrinen kryptaus, voitte arvata
että on olemassa myös asymmetrinen kryptaus, jolla
on käytössä avainpari. Toista käytetään
kryptaamiseen ja toista kryptauksen purkuun. Nyt meillä on
asymmetrinen kryptaustoiminto, jolla voimme tehdä seuraavaa. Bob
luo avainparin, ja
pitää purkuavaimen itsellään. Siksi purkuavainta kutsutaan
salaiseksi tai yksityiseksi avaimeksi. Kuitenkin, Bob voi julkaista kryptausavaimen vapaasti.
Esimerkiksi, se voidaan laittaa vaikka johonkin julkiseen rekisteriin, esim. osoitteistoon.
Ja nyt Bob voi lähettää sekä avaimen että viestin Alicelle ja salakuuntelija
saa kryptausavaimen, mikä ei ole ongelma,
koska se on muutenkin saatavilla. Ja kun tämä on tehty, Alice voi
käyttää Bobin kryptausavainta luodakseen viestin Bobille ja
Bob voi purkaa kryptauksen yksityisellä avaimellaan. Kuitenkaan,
salakuuntelija ei viestiä voi purkaa, koska
vaikka kryptausavain hänellä onkin, purkuavainta ei ole.
Tässäkin tavassa on tavallaan riskinsä
Tässäkin on ongelmansa, koska vieläkin on varmistettava, että
avaimet on toimitettu etukäteen. OK, ajatellaanpa seuraavaa: Bob
on lähettämässä julkisen kryptausavaimensa Alicelle, siinä on ongelma. Jos hyökkääjä
ei tyydykään passiiviseen kuunteluun, vaan on valmis aktiivisesti
puuttumaan yhteydenpitoon. Esimerkiksi, salakuuntelija voisi puuttua
Bobin lähettämään salausavaimeen siten, että korvaakin sen omalla avaimellaan
Alice luulisi, että avain tulee Bobilta
ja käyttää tätä korvaavaa avainta oman viestinsä lähettämisessä ja yhtäkkiä
hyökkääjä voikin taas lukea Alicen viestin. Nyt, vedetäänpä yhteen kryptauksesta,
kryptaus pääasiallisesti salaa datasisällön. Ja sen se tekee
ja se on pääasiassa se, mitä se tekee Erityisesti, se ei salaa
tosiasiaa, että yhteydenpitoa tapahtuu. Eli salakuuntelija
luonnollisestikin huomaa Alicen lähettävän viestin Bobille. Ja vaikka
salakuuntelija tietää että kommunikaatiota tapahtuu Alicen ja Bobin välillä
ja pelkästään tämä voi olla vaarallista heille molemmille. Ajatellaanpa että Alice
työskentelee tiedusteluvirastolle ja Bob on journalisti; hyökkääjä huomaa Alicen
lähettävän runsaasti dokumentteja Bobille, se voisi olla vahva merkki siitä
että Alice on tiedonantaja ja voitaisiin saattaa siitä vastuuseen. Eli jotain muuta
mitä ei ole salattu kryptauksella, on liikkuvan tiedon määrä.
Eli jos Alice lähettää vain hyvin lyhyen viestin Bobille
salakuuntelija voi päätellä että ei lähetetä 20 MB
tiedostoa tai vastaavaa. Eli kaikki tämäntyyppinen metadata on sellaista
mitä kryptauksella ei voida salata. Ja kryptauksessa on pari muutakin ongelmaa. Yksi niistä
on se, että hyökkääjä voi muuntaa viestiä. Muuntamisen suojaaminen eli autentikointi
ei ole kryptauksen tehtävä. Toinen ongelma on se, että avaimien täytyy olla
vaihdettuina etukäteen, mitä jo puhuinkin. Ja muitakin ongelmia on.
Esimerkiksi, hyökkääjä voi ottaa viestin haltuun lähetettäessä.
Ja myöhemmin lähettää viestin Bobille, tai vaikkapa estää
koko viestin lähetyksen. Eli keskeyttää lähetyksen ja poistaa sen kokonaan.
Ja tässä ensiksikin
hyökkääjä voisi vaihtaa viestin sisällön, mikä taas johtaa puheeni toiseen
osaan, mikä on autentikointi. Eli merkitäänpä kryptaus listalla
käsitellyksi. OK, eli mitä on autentikointi? Se mahdollistaa datan muutoksien
havainnoinnin. Se ei estä muutoksien tekemistä, vaan ainoastaan
muutoksien huomaamisen muutosten jälkeen. Esimerkiksi,
autentikointia olisi tarvittu, kun Alice
siis Ben lähetti julkista avaintaan Alicelle, mutta tämä ei ole laisinkaan
ainoa tilanne jossa autentikointia tarvitaan. Ajatellaanpa että Alice johtaa
hyväntekeväisyysjärjestöä. Hän vaikkapa pelastaa pakolaisia hukkumasta
Välimereen. Ja Bob haluaa lahjoittaa järjestölle, jotta se voi tätä tehdä. Sitten Alice
Alicen täytyy lähettää pankkitilinumero Bobille, jotta talletus voidaan tehdä. Ja
huomatkaa että tässä tapauksessa viesti, jonka Alice Bobille lähettää, sisältäen
pankkitilinumeron, ei ole mitenkään salaista. Sen ei tarvitse olla kryptattua,
koska tämä tieto on julkista. Kuitenkin, haluamme varmistaa, että
tieto joka Bobille lähetetään, on todellakin oikea pankkitilinumero. Estääksemme
tällaisen tapauksen jossa rikollinen voisi puuttua viestin sisältöön
ja vaihtaa pankkitilin numeron omaansa, Bob lähettäisi rahansa rikollisen
tilille Alicen tilin sijaan. Ja yksi tapa autentikointiin on jälleen
avainpari, toinen autentikointiin ja toinen
verifiointiin. Eli sen tarkistamiseen, ettei viestiä ole muuteltu. Ja
autentikointiavain täytyy pitää salaisena. Siten se on salainen/yksityinen avain, kun taas
verifiointiavain voidaan tehdä julkiseksi. Ja nyt
jos tällainen järjestely on tehty, Alice voi jatkaa viestin
lähettämistä Bobille ja lisätä siihen tiedon käsittelyä yhdessä yksityisen avaimen kanssa
luodakseen jotain jota kutsumme allekirjoitukseksi
tai digitaaliseksi allekirjoitukseksi. Alice lähettää allekirjoituksen
yhdessä tilinumeronsa kanssa. Bob käyttää allekirjoitusta
avatakseen saamansa tiedon, ja sen tulosta
käytetään päättelemään, onko tilitietoa muutettu vai onko
se aito ja alkuperäinen. Jos hyökkääjä muuttaa tilitietoa, Bob
huomaa tämän. Ja tämä pätee myös siihen, jos
hyökkääjä muuttaisikin tilitiedon sijasta allekirjoitusta.
OK? Nämä asiat on suunniteltu tavalla, mikä toivottavasti tekee mahdottomaksi
hyökkääjälle saada validia allekirjoitusta muuhun kuin
alkuperäiseen viestiin. OK. Siis ainoa asia, millä tavalla Bob
hyväksyy allekirjoituksen, on se että hyökkääjä ei ole muuttanut
tilitietoja. Ja tässä tapauksessa on turvallista Bobille siirtää rahat. OK
Ja tässä on toinen ratkaisu samaiseen ongelmaan. Ja se on
itse asiassa melko tavalla samanlainen, pitsi että nyt avaimia on vain yksi
ja sitä käytetään niin autentikointiin kuin verifiointiinkin. Ja tässä tapauksessa
asioilla on vain eri nimi. Ne toimivat täysin samalla tavalla, paitsi että
allekirjoitusta kutsutaan viestin autentikointikoodiksi tai MACiksi.
Molemmissa tapauksissa, 0oli meillä kaksi tai yksi avainta
meillä on yhä ongelma tuossa avaimen välittämisessä. Kuvitellaanpa että
kahden avaimen tapauksen prosessissa, Alice oli lähettämässä julkista avaintaan Bobille,
ja meillä olisi sama hyökkäys kuin aiemmin ja hyökkääjä ehtisi
vaihtaa Alicen avaimen ennen saapumista Bobille.
Ja jos hyökkääjä lähettää oman julkisen avaimensa
Bobille, niin luonnollisestikin hyökkääjä voi voi luoda validin allekirjoituksen
muunnetulle pankkitilitiedolle. Ja Bob hyväksyisi tämän. OK, meillä on
tämä avaimen jakelun ongelma, jossa verifiointiavain täytyy
olla Bobilla tiedossa etukäteen. Ja tämä johtaakin puheeni seuraavaan osuuteen
Merkitään autentikointi tehdyksi ja siirrytään sertifikaatteihin.
Sertifikaatti on dokumentti joka varmentaa, että tietty julkinen avain kuuluu
tietylle määreelle, kuten henkilölle tai organisaatiolle. Ja jos haluamme käyttää
sertifikaatteja, palataanpa taas aikaisempaan tapaukseen. Siis Alice
haluaa lähettää Bobille pankkitilinsä numeron, julkisen avaimensa ja allekirjoituksen
pankkitiedoille ja hyökkääjä voisi vaihtaa julkisen avaimen, pankkitiedon
ja allekirjoituksen. Ja jos nyt lisäämme tähän sertifikaatit, tarvitsemme
jotain mitä kutsutaan sertifikaattivaltuutetuksi. Ja se on
luotettu kolmas osapuoli, joka luo sertifikaatteja, jotka vahvistavat yhteyden
henkilön ja julkisen avaimen välillä. Eli ennen kuin Alice lähettää viestin Bobille,
hän lähestyy sertifikaattivaltuutettua ja sanoo: Hei sertifikaattivaltuutettu,
tämä on julkinen avaimeni, olen Alice. Ole hyvä ja anna sertifikaatti.
Ja näin valtuutettu tarkistaa että Alice on kuka hän väittää olevansa ja että
Alice todellakin omistaa tämän julkisen avaimen. Ja jos tarkistukset ovat OK,
valtuutettu luo sertifikaatin ja antaa sen Alicelle.
Sertifikaatti on dokumentti siitä että valtuutettu on
varmistanut että kuvassa näkyvä hopeinen avain kuuluu Alicelle.
Alicella on sertifikaatti ja hän voi lähettää julkisen avaimensa Bobille yhdessä
sertifikaatin kanssa. Ja Bob, jos hän tietää sertifikaatin myöntäjän julkisen avaimen,
voi tarkistaa että sertifikaatti on aito ja valtuutetun myöntämä.
Ja jos hän luottaa valtuutettuun, hän tietää
että hopeinen avain on Alicen. Ja myöhemmin,
Bob on vakuuttunut että avain on Alicen ja hän voi tarkistaa
että Alicen viestin sisältö ei ole muuttunut. Emme siis ole täysin vapaita
avaimen välittämisen ongelmasta vieläkään, koska Bobin täytyy yhä tietää
valtuutetun avain etukäteen. OK. Siis Bobin ei tarvitse
tietää Alicen avainta etukäteen, mutta valtuuttajan avain tarvitaan.
Ja käytännössä, ei ole yhtä ainoaa valtuutettua,
vaan suuri joukko ja valtuutetut
voivat luoda sertifikaatteja muille valtuutetuille jne,
Eli Bobin ei tarvitse tietää kaikkia valtuutettujen avaimia
vaan ainoastaan muutaman.
Vedetäänpä yhteen sertifikaateista. Kuten sanoin
aikaisemmin, sertifikaatit vahvistavat, että tietty julkinen avain kuuluu tietylle
osapuolelle, henkilölle tai organisaatiolle. Mutta vieläkään ei olla täysin vapaita
jakeluongelmasta, koska ihmisten täytyy tietää sertifikaattivaltuutetun
julkinen avain. Ja toinen ongelma tässä on, että toimintatapa antaa
paljon valtaa valtuutetulle, Jos siis hyökkääjä
pystyy vaarantamaan valtuutetun, hän pystyisi pakottamaan
valtuutetun luomaan valesertifikaatteja ja yhdistämään valeavaimia oikeille henkilöllisyyksille.
OK, hän voisi siis luoda valesertifikaatteja, joiden mukaan valtuutettu
olisi tarkistanut että hyökkääjän julkinen avain kuuluisi Alicelle. Ja korjaamalla
tämän ongelman valtuutetun vallasta on jotain
minkä kanssa kryptaajat painivat yhä. Eli se on ongelma vielä tänäkin päivänä. Ja
itse asiassa tämä ongelma ei ole vian teoreettinen. On olemassa joukko tapauksia
joita on tapahtunut valtuutettujan kanssa. Yksi tunnettu esimerkki on Diginotar
tapaus, jossa Diginotar -nimisen valtuuteun sertifikaatti hakkeroitiin
ja hyökkääjät loivat valesertifikaatin google.com domainille tai
muista googlen domaineista. En ihan tarkasti muista. Ja sitten nämä
sertifikaatit ilmestyivät käytössä Iranissa. Ei siis mikään teoreettinen ongelma.
Tämä itse asiassa tapahtui jo aiemmin. Tämä siis johtaa siihen mitä halusin sanoa
sertifikaateista. Mennäänpä eteenpäin ja katsotaan miten nämä asiat voidaan yhdistää
rakentaaksemme jotain monimutkaisempaa mutta myös hyödyllisempää. Eräs työkaluista jonka haluan
esitellä nimeltään autentikoitu kryptaus ja sen on periaatteessa yhdistelmä kryptausta ja
autentikointia. Jostain syystä, ihmiset käyttävät tätä ilmausta pääosin symmetrisen
salauksen yhteydessä, jolloin on oma avaimensa kryptaamiselle ja purkamiselle ja yksi
avain autentikoinnille ja verifioinnille. Mutta saman voi luoda myös
asymmetriseen tapaan. Ja tätä tehdään myös käytännössä.
Tässä tapauksessa sitä vaan ei kutsuta autentikoiduksi kryptaukseksi. Niinpä
yksi tapa rakentaa autentikoitu kryptaus on. jos Alice haluaa lähettää viestin Bobille,
hän kryptaa viestinsä käyttämällä kryptausavainta ja lähettää salatun tekstin
Bobille. sitten hän käyttää salatun tekstin kopiota ja luo
autentikointikoodin siitä käyttäen toista avaintaan. Bob tekee saman
kun Alice lähettää hänelle autentikointikoodin. Nyt
Bob voi purkaa kryptauksen avaimellaan. Ja lisäksi Bob voi tarkistaa
onko viesti muuttumaton vaiko aito, käyttämällä verifiointi-
proseduuria. OK, tällainen autentikointi ei estä muutoksia
tapahtumasta, mutta Bob voi tarkistaa onko niitä tapahtunut. Ja itse asiassa
tällainen autentikoitu kryptaus voi kasvattaa kryptauksen
turvallisuutta. OK, toinen asia mistä halusin puhua, on ns.
hybridikryptaus. Tämä on yhdistelmä symmetrista ja asymmetristä
kryptausta. Ja miksi tämä on mielenkiintoista on se, että asymmetrinen
lähettää hyvin pitkän viestin Bobille käyttämällä julkisen avaimen tapaa,
siis asymmetristä kryptausta, se veisi hyvin paljon aikaa
kryptata ja purkaa kryptaus. Kuitenkin, voidaan yhdistää
molemmat tavalla, joka tekee kryptauksen
prosessin nopeammaksi. Tämän voi tehdä niin, että jos Alice haluaa
lähettää viestin Bobille, hän aluksi luo uuden avaimen symmetriselle tavalle
Ja Alice kryptaa viestinsä tällä avaimella ja lähettää salakirjoitetun tiedon
Bobille. Jäljempänä Alice käyttää luomaansa avainta
kryptaa avaimen, joka lähetetään Bobille myös.
Nyt Bob voi purkaa salauksen käyttämällä yksityistä avaintaan
-kultainen avain ruudulla - saadakseen symmetrisen avaimen.
Ja myöhemmin Bob voi käyttää saamaansa symmetristä avainta kryptatakseen
itse viestin. Kuitekaan, yhteyttä salakuunteleva ei voi
purkaa kryptausta, koska siinä ei ole symmetristä avainta eikä voi
purkaa symmetristä avainta, koska hänellä ei ole yksityistä avainta. OK.
Tämän tyyppistä rakentelua voidaan jatkaa ja päädytään asiaan
nimeltä kuljetuskerroksen turvallisuus, TLS, Ja se on
verkkoprotokolla joka yhdistää monet näistä asioista
joita olen esitellyt. Se siis yhdistää joko symmetrisen tai hybridikryptauksen
yhdessä autentikoinnin kanssa. Eli MACit, allekirjoitukset ja muut.
Ja se lisää muutaman jutun viestin uudelleenlukemisesta.
Eli jos hyökkääjä haluaa kuunnella aiemmin nauhoittamansa viestin
TLS huomaa tämän. Se voi myös havaita, jos viestiä on tiivistetty.
Tämä siis yhteyden osalla. Se mitä TLS tekee, se
perustaa varman yhteyden kahden päätteen väliin. Sanotaanko vaikka Alicen ja Bobin
välille turvattomaan verkkoon, jota hyökkääjä pitää hallussaan. Ja yksi sovellus
jossa TLS:ää käytetään, on mailien lähetys. Esimerkiksi,
jos Alice haluaa lähettää mailin Bobille, tätä sähköpostia
ei yleensä lähetetä suoraan. Alicen maili meneekin ensin sähköpostipalvelimelle ja
se välittää vietin Bobin sähköpostipalvelimelle. Kun
Bob menee sähköpostisovellukseensa, sähköpostit latautuvat palvelimelta Bobille,
puhelimeen, työkoneelle tai mitä Bob nyt sitten käyttääkään.
Näin Alice voi luottaa siihen, että kun hän lataa mailiaan palvelimelle
yhteys on turvallinen pelkästään kryptaamalla viesti.
Tämä siis tapahtuu käyttämällä TLSää ja kaikkia siihen liittyviä asioita
kuten kryptausta, autentikointia jne. Kuitenkaan, Alice ei voi tarkistaa
käyttääkö hänen sähköpostipalvelimensa turvallista yhteyttä välittäessään viestiä Bobin
palvelimelle. Katsotaanpa vähän tarkemmin; jokainen näistä vihreistä lukoista
tarkoittaa turvattua yhteyttä. Tämä tarkoittaa että kun viesti lähetetään tai
on lähetetty turvallisen yhteyden kautta, on käytetty kryptausta
ja autentikointia lähettäjän osalta ja purkua ja verifiointia
vastaanottajan osalta. OK, jos Alice haluaa lähettää mailin Bobille,
Alice muodostaa turvatun yhteyden ja lähettää viestinsä sen kautta. Ja tämä sisältää
viestin kryptauksen ja sen autentikoinnin. Alicen palvelin
purkaa viestin ja verifioi että sisältö ei ole muuttunut. Sen jälkeen
Alicen palvelin lähettää viestin edelleen Bobin palvelimelle, kryptaten
ja autentikoiden sen. Bobin serveri purkaa ja verifioi viestin. Ja
sama prosessi jatkuu kun Bobin palvelin välittää viestin Bobille.
Kuitenkin, tässä tapauksessa vaikka viesti on kryptattu joka
kerta kun se on lähetetty verkon yli, Alicen ja Bobin palvelimet näkevät
viestin selvänä tekstinä. Koska Alice lähettää viestin, hän kryptaa sen ja
Alicen palvelin purkaa sen. Eli Alicen palvelin näkee viestin selväkielisenä.
Sama koskee Bobin palvelinta. Tätä me kutsumme kuljetuskryptaukseksi,
koska viesti salataan joka kerta sen liikkuessa verkossa.
Vastakkainen tapa, end-to-end -kryptaus, on kun Alice
ennen viestin lähetystä kryptaa viestin avaimella, jota palvelimensa ei tiedä
vaan Bobin julkisella avaimella. Alice voi jopa allekirjoittaa oman
autentikointiavaimensa. Ja sitten Alice lähettää tämän valmiiksi kryptatun
viestin turvattua yhteyttä pitkin palvelimelleen. Tämä taas sisältää kryptauksen
uudelleen ja autentikoinnin uudelleen ja Alicen palvelin purkaa
viestin ja ja verifioi sen muuttumattomuuden. Kuitenkaan, palvelin
ei voi purkaa toisen kerroksen salausta, eihän? Viesti on siis kryptattu kahdesti.
Kerran Bobin avaimella ja toisen kerran, jotta palvelin voi purkaa tämän. Ja
nyt palvelin voi purkaa toisen kerroksen kryptauksen. Mutta ensimmäinen kryptaus
on yhä olemassa, eli Alicen palvelimelta tekstiä ei voi lukea. Ja prosessi jatkuu,
kryptattu viesti kryptataan uudelleen ja Bobin palvelimella taas puretaan
ja lähetettäessä Bobille taas kryptataan ja puretaan.
Lopuksi Bob, jolla on yksityinen avain, sillä voidaan
purkaa ensimmäinen kryptaus ja näin viesti on Bobilla luettavassa muodossa.
Kuitenkaan, välissä olevat palvelimet eivät viestiä voi lukea, koska se on
kryptattu Bobin julkisella avaimella- OK, eli tällä asia olisikin käsitelty.
Tässä kuitenkin pari kappaletta asioita kotiin vietäviksi.
Ensiksikin, kryptaus kätkee datasisällön. Ja eipä se paljoa muutakaan
tee. Se ei kätke metadataa, eikä estä lähetetyn datan
muokkaamista. Se on autentikoinnin
tehtävä. Autentikointi mahdollistaa muutoksien huomaamisen,
sekä kryptaukselle että autentikoinnille. Sinulla täytyy olla etukäteen jaetut
avaimet, tai ehkä ei etukäteen, mutta jako täytyy tapahtua ennen varsinaista viestin käsittelyä.
Ja yksi tapa yksinkertaistaa tätä ongelmaa ovat sertifikaatit
jotka vahvistavat tietyn julkisen avaimen kuuluvan tietylle toimijalle.
Ja jos sinulla on kaikki nämä asiat, kryptaus, autentikointi ja
sertifikaatti, voit rakentaa verkkoprotokollan, joka huolehtii varmasta
viestin välityksestä paikasta toiseen. Ja voit käyttää niitä saadaksesi
kuljetuskryptauksen. Mutta kuljetuskryptaus on huonompi kuin end-to-end -kryptaus
siinä mielessä, että kuljetuskryptauksessa välipalvelimet pystyvät yhä
lukemaan lähetetyt viestit. Kuitenkin, end-to-end -kryptaus
ei sitä mahdollista. Ja tällä haluaisinkin nyt lopettaa ja
vastaan mielelläni kysymyksiinne. Jos tulee kysymyksiä, joita ette nyt voi kysyä
voitte lähettää niitä sähköpostitse kuvassa näkyvään osoitteeseen. Yritän
pitää osoitteen voimassa pari vuotta.
--suosionosoituksia-
Kiitokset puheestasi. Ja nyt voimmekin siirtyä kysymysosioon
Jos teillä on kysymyksiä, voitte nousta mikrofonien luo
Onko netistä tullut kysymyksiä? Meillä on runsaasti aikaa. Onko ketään?
Jos on kysymyksiä, tervetuloa. Meillä on kysymys mikrofonilla 2.
Kiitos hyvästä puheesta. Haluaisin tietää, miten voit muuttaa viestiä
joka on kunnolla kryptattu, mutta vastaanottaja huomaa, että
kryptaus ei toimi enää? Se riippuu käytettävästä kryptaamistavasta.
Mutta monessa tavassa, viestin muuttaminen
on itse asiassa melko helppoa. On oikeasti olemassa todella paljon
kryptaustapoja, jotka muuttavat vain muutaman bitin. Viesti koostuu siis
biteistä ja kryptaustavat mahdollistavat mitkä bitit muutetaan ja mitä ei.
Eli kun kryptasit viestiä, käytät kryptaustapaa valitaksesi
mitkä bitit pitää kääntää. Eli muutos nollasta ykköseksi
tai päinvastoin, lisäät sen viestiin jota lähetät
ja vastaanottaja vain poistaa tekemäsi muutoksen saadakseen alkuperäisen
sisällön, kun taas hyökkääjällä muutos ei ole tiedossa, sitä ei voi tehdä
Kuitenkin, hyökkääjä voi kääntää pari bittiä, ja tässä tapauksessa
sanotaanko Alicen kääntäneen bitin ja se käännetään uudelleen hyökkääjän
toimesta. Eli bitti on jälleen alkuperäisessä arvossaan. Ja sitten Bob, joka
tietää, miten purkaa, kääntää bitin jälleen. Ja jälleen
viesti on muuttunut. Ja parilla tavalla voit tehdä
tällaisia muutoksia viesteihin, jotta purku ei yksinkertaisesti
epäonnistu. Ainoastaan viesti saattaa olla hiukan vääränlainen.
OK. Seuraava kysymys mikrofonista 6, olkaa hyvä.
Kerroit, että kryptaus ei koske metadataa. Onko siitä mitään
ajatuksia? Ajatuksia?
Mitään ratkaisua metadatan kryptaamiseen? En tiedä.
Paljon tästä on melko hankalaa ratkaistavaksi.. Tarkoitan että sähköposteihin
ajatus aiheen kryptaamiseen, mitä ei yleensä kryptata.
Jos haluat piilottaa viestin pituuden, voit yksinkertaisesti suojata
viestin. Eli loppuun satunnaista roskaa jotta peitetään sen itseasiallinen pituus.
Juuri niin. Eli hyökkääjällä on yhä viestin väärä pituus
eli tiedetään, että viesti on enintään jonkin pituinen, mutta
ei tiedetä, mikä sen oikea pituus on. Eli jos haluat
piilottaa identiteettisi yhteydenpidossa, sinun täytyisi toimia kuten
Tor -verkossa, eli et ota yhteyttä suoraan vaan
muutaman välikäden kautta siten, että välikädet eivät tiedä
lopullista vastaanottajaa.
Kiitos
OK. Sitten meillä taitaa olla kysymys internetin kautta.
Kyllä, kysytään, että voitko sanoa mitään koituvasta
tehon kulutuksesta maailmanlaajuisesti, koskien kryptauskerroksia?
Valitettavasti en osaa sanoa. En tiedä, paljonko tehoa kuluu
kryptaamiseen. Tiedon käsittelyn kannalta, ainakin, symmetrinen
kryptaus on melko edullista, koska se ei tarvitse kuin pari
prosessorisykliä purkuun. En tiedä, kuusitoista sanaa tai jotain. Joten
voit tavallisesti purkaa satoja megatavuja sekunnissa yhdellä prosessorilla. Ainakin
modernilla koneella. Eli en tiedä numeroita, mutta voitte arvata jos jokainen
ensimmäisen maailman maissa käyttää kryptausta, niin kokonaismäärä
tehoa on melko lailla suuri.
Seuraava kysymys. Mikrofoni 2, olkaa hyvä.
Mainitsit pari kertaa että hyökkääjä voi toistaa viestin.
Ajattelepa jos Alice lähettää pankkiin pyynnön
rahan siirtämisestä. Ja joka kerta kun pankki saa sellaisen pyynnön
se tekee siirron. Silloinhan hyökkääjälle olisi hyödyllistä
tätä käyttää hyväksi, kun kerran saisi sellaisen viestin haltuunsa,
toistaa pyyntöä myöhemmin, ja lisäsiirtoja tapahtuisi.
Jos olisit vastaanottaja, se olisi melko mukavaa,
sinähän voisit tyhjentää Alicen tilin.
Sitten kysymys mikrofoni kolmelta.
Olin kuuntelemassa keskustelua elliptisestä kryptografiasta ja
pohdin, voisitko näyttää, mihin se sijoittuisi esittelemässäsi prosessissa?
Mennäänpä toiselle dialle. Tyypillisesti kryptaus on
lisätään tai ellipsoidin lisätään näihin laatikoihin.
OK. Eli näissä käsittelyissä tapahtuu paljon matematiikkaa
jota en tarkemmin selittänyt pitääkseni esityksen laajalle
kuulijakunnalle. Mutta yksi tapa realisoida sellainen kryptaustapa
on käyttää ellipsoideja näissä laatikoissa.
OK: Mikrofoni 1. Toinen rajoitus jota voisin ajatella tai mikä voisi vaikeuttaa
tätä olisivat IoT laitteet, joissa on vähän tehoa ja rajoitettu
prosessointikyky. Miten näihin voi liittää kompleksisen kryptauksen?
Meneillään on tutkimuksia kryptaustavoista
jotka ovat erityisen keveitä, eli erityisen sopivia
resurssirajoitteisille laitteille. Mutta mitä asiasta tiedän, melkein
kaikissa on jotain heikkouksia. Eli turvallisuusmielessä ne eivät
tarjoa samoja takuita kuten nämä, joita käytetään tehokkaammissa laitteissa.
Mikrofoni kaksi, ole hyvä. Hei. Mainitsit
sen laajan vallan, jota sertifikaattivaltuutetut pitävät
sertifioinnin ja autentikoinnin kohdalla. Pohdin, että mitkä ovat
mahdolliset ratkaisut tai ehdotetut ratkaisut tähän tällä hetkellä?
Mikä on tämän hetken tilanne ratkaista tuo ongelma? Yksi ratkaisu jota kehitetään, on nimeltään
sertifikaattien läpinäkyvyys. Se toimii periaatteessa
julkisen tai julkisia lokeja, joihin kaikki luodut sertifikaatit
talletetaan. Jos olet google.com tai olet Google
ja näet jonkun lisäävän Googlen sertifikaatin lokitiedostoon
ja tiedät, ettet ole sitä pyytänyt, tiedät että joku
on tehnyt valesertifikaatin. Eli aina kun pyydät sertifikaatin,
sinun täytyy tarkistaa, että se on lisätty lokitietoihin.
Vastaako tuo kysymykseesi? Kyllä. Mutta miten tuo sertifikaatin lisäys toimisi?
Esimerkiksi miten varmistetaan sertifikaatti lailliseksi?
OK. Idea on että milloin tahansa saat
sertifikaatin, se laitetaan lokiin ja jokainen joka saa sertifikaatin,
odotetaan tarkistavan että se on lokitiedoissa.
Eli valtuutettu laittaa sertifikaatin lokiin?
Niin sen odotetaan toimivan.
Kyllä. OK. Kiitos.
Ole hyvä. Sitten meillä on yksi kysymys
internetistä. Kysyjä haluaa tietää, voimmeko
tai mistä voimme saada autentikoinnin PGP avaimelle ja miten se liitetään avaimeen
jälkikäteen. Onko se mahdollista?
Se vähän riippuu. PGP:n kanssa, yleensä on niin siinä ei ole
keskitettyä sertifiointi valtuutettua tai joukkoa niitä, vaan on
olemassa tietyn lainen sosiaalinen joukko ihmisiä, jotka tuntevat ja vaihtavat
sähköposteja, joista jokaisen pitäisi autentikoida julkiset avaimensa
OK? Eli kun haluat kommunikoida jonkun kanssa jota et tunne
mutta jonka ystävä voi olla oma ystäväsi,
on voinut autentikoida tämän avaimen. Ja jos luotat
ystävääsi, voit tarkistaa, et hän on voinut luoda jonkinlaisen
sertifikaatin omalle ystävälleen. Onko lisäkysymyksiä?
Yksi vielä? Olkaa hyvä. En tiedä koskeeko kysymys puhettasi
mutta joku haluaisi tietää. Suosittelisitko
startTLSää tai SSSL/TLSää sähköpostiin? Omasta puolestani suosittelisin aina varustamaan uloimman
kryptauksella. Ensiksikin, rakennettaessa
turvallista yhteyttä sähköpostipalvelimelle ja tekemällä SMTPn
tai jotain siihen, on aina parempi perustaa suora varmennettu
yhteys kuin käyttää startTLSää.
Tämä taitaa olla tässä kysymyksien osalta, annetaanpa
Aplodit Ootsille!
- suosionosoituksia -
- musiikkia -
Translated by {FirstName}{LastName} (ITKST56 course assignment at JYU.FI) 2023