Tutkijat ratkaisivat yleisissä salauskirjastoissa havaitsemansa tietoturvaongelman
Välimuistin eri tasot sisältävät pienempiä ja nopeampia muisteja.
Kryptografiset protokollat varmistavat turvallisuuden internetissä. Niistä tärkeimmät ovat TLS, joka varmistaa tiedon turvallisen kulkemisen ja SSH, joka puolestaan turvaa sisäänkirjautumisen palvelimiin.
– TLS-protokollaa käytetään varmentamaan yhteys esimerkiksi verkkopankin ja asiakkaan välillä. Heikkoudet TLS-toteutuksessa voivat mahdollistaa sen, että hyökkääjä perustaa valesivuston, joka näyttää ja käyttäytyy täsmälleen samoin kuin alkuperäinen verkkopankkisivusto, kertoo Aalto-yliopiston tietotekniikan laitoksen opiskelija ja tutkija Cesar Pereida Garcia.
Monet salausprotokollat käyttävät OpenSSL:aa, joka on laajalti käytetty kryptografisten algoritmien kirjasto. Kriittistä tietoa salausteknisistä algoritmeista voidaan kuitenkin vuotaa sivukanavien kautta.
– Jos algoritmia ei ole suunniteltu ja toteutettu hyvin, hyökkääjä voi eri informaatiokanavia seuraamalla oppia, mitä tietokone on tekemässä, samalla kun tietokone suorittaa algoritmia. Esimerkiksi tietokoneen aiheuttama elektromagneettinen säteily on yksi sivukanavista, kertoo professori N. Asokan tietotekniikan laitokselta.
Tutkijoiden havaitsema sivukanavien kautta tapahtuva hyökkäys kohdistui OpenSSL:n DSA-algoritmia vastaan, jota käytetään yleisesti todentamaan viestejä. Hyökkäyksen havaitsivat Pereida Garcian lisäksi apulaisprofessori Billy Brumley Tampereen teknillisestä yliopistosta sekä Yuval Yarom Adelaiden ja NICTAn yliopistoista.
Allekirjoitusavain
Viimeisimmässä Intelin tietokonearkkitehtuurissa on kolme tasoa välimuisteja. Jos dataa tuhotaan välimuistista yhdellä tasolla, se tuhoutuu samalla kaikista korkeamman tason välimuisteista. Prosessorin sisältämä alimman tason välimuisti LLC (last level cache) on jaettu kaikkien prosessorien ytimien kesken.
– Todentamiseen käytettävän DSA:n kriittiset operaatiot koostuvat potenssiin korotuksista, jotka käytännössä suoritetaan sarjana neliöinti- ja kertolaskuoperaatioita. Jokaiseen operaatioon liittyvä ohjelmakoodi on ainutlaatuisessa muistiosoitteessa. Havaitun ohjelmistovian takia operaatioiden tarkka järjestys riippuu allekirjoitusavaimesta. Aktiivinen hyökkääjä voi yhdellä prosessoriytimellä suoritettavan ohjelmakoodin avulla seurata jaetun LLC-välimuistin käyttöä. Tämän avulla hän voi oppia toisella ytimellä ajettavien DSA-operaatioiden järjestyksen ja tästä päätellä uhrinsa DSA-algoritmin allekirjoitusavaimen, selventää Pereida Garcia.
– On yksinkertaista testata, käyttäytyykö koodi tarkoitetulla tavalla, ja se olisi pitänyt tehdä jo vuonna 2005, kun OpenSSL:ässä todettiin aikaisempia sivukanavahyökkäyksiä, Billy Brumley lisää.
Haavoittuvuuden korjaaminen
OpenSSL-kirjaston kehittäjiä tiedotettiin haavoittuvuudesta 23.5.2016, ja tietoturvaongelma ratkaistiin Pereida Garcian ehdottamalla tavalla.
– Koodin korjaaminen oli melko yksinkertaista sen jälkeen, kun ohjelmistovika oli löydetty. Nyt algoritmin neliöinti- ja kertolaskuoperaatiovaiheen kesto on aina sama riippumatta allekirjoitusavaimen arvosta, eikä aktiivinen hyökkääjä pysty enää päättelemään uhrinsa allekirjoitusavainta, kertoo Pereida Garcia lopuksi.
Kaksi muuta OpenSSL:aan perustuvaa salauskirjastoa, Googlen BoringSSL ja FreeBSD:n LibreSSL, ovat myös jo ottaneet käyttöön Pereida Garcian tarjoaman ratkaisun.
Cesar Pereida Garcia osallistuu Erasmus Mundus NordSecMob -opiskelijaohjelmaan. Projektia tukee myös TEKESin CyberTrust-hanke.
Lisätietoja:
Cesar Pereida García
Aalto-yliopisto
[email protected]
Billy Bob Brumley
Tampereen teknillinen yliopisto
p. 050 553 2851
[email protected]
- Julkaistu:
- Päivitetty: