Yleisissä salauskirjastoissa havaittu tietoturvaongelma ratkaistu

Yleisissä salauskirjastoissa havaitut haavoittuvuudet poistuivat, kun salauskirjaston koodia muokattiin niin, ettei aktiivinen hyökkääjä pysty päättelemään uhrinsa allekirjoitusavainta.

Kryptografiset protokollat varmistavat turvallisuuden netissä. 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 yliopiston tiedotteessa.

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 NICTA:n yliopistoista.

Olisi pitänyt tehdä jo vuonna 2005

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, selittää 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 toteaa.

Korjaus nyt käytössä

OpenSSL-kirjaston kehittäjiä tiedotettiin haavoittuvuudesta 23. toukokuuta 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.

Kaksi muuta OpenSSL:aan perustuvaa salauskirjastoa, Googlen BoringSSL ja FreeBSD:n LibreSSL, ovat myös jo ottaneet käyttöön Pereida Garcian tarjoaman ratkaisun.

Kommentit

Miksi kommentit eivät näy? »Kommentoinnin säännöt