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 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. 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