Opiskelija korjasi salauskoodin

Aalto-yliopiston erasmusopiskelija Cesar Pereida Garcia ratkaisi OpenSSL-salauskirjaston turvaongelma, jonka avulla hyökkääjä pystyi päättelemään allekirjoitusavaimen. Haavoittuvuus poistui, kun salauskirjaston koodia muokattiin uudelleen.

Kryptografiset protokollat varmistavat turvallisuuden internetissä. Niistä tärkeimmät ovat TLS, joka varmistaa tiedon turvallisen kulkemisen ja SSH, joka puolestaan turvaa sisäänkirjautumisen palvelimiin.

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. 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 Aalto-yliopiston tietotekniikan laitoksen opiskelija ja tutkija Pereida Garcian lisäksi apulaisprofessori Billy Brumley Tampereen teknillisestä yliopistosta sekä Yuval Yarom Adelaiden ja NICTAn yliopistoista. OpenSSL-kirjaston kehittäjiä tiedotettiin haavoittuvuudesta 23.5.2016, ja tietoturvaongelma Cesar 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.

Suorittimen välimuisteissa piilee vaara

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, kertoo Aalto-yliopiston tietotekniikan laitoksen opiskelija ja tutkija.

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.

Cesar Pereida Garcia osallistuu Erasmus Mundus NordSecMob -opiskelijaohjelmaan. Projektia tukee myös TEKESin CyberTrust-hanke.

LISÄÄ: Artikkeli (LINKKI), US-CERT/NIST kansallinen haavoittuvuustietokanta (LINKKI) ja  Tekes Cyber Trust (LINKKI)

http://issuu.com/uusiteknologia.fi/docs/1_2016?e=19307983/35580639