Salattuja purskeita

Artikkeli on alun perin julkaistu Skrollin numerossa 2013.2.

Kuinka turvallista on langattoman näppäimistön käyttäminen ilkeän Even naapurina asuvalle Alicelle?

Moni tietokoneen oheislaite toimii nykyään langattomasti radioyhteydellä. Koska sivulliset voivat kuunnella kaikkea radioliikennettä varsin vaivatta ja huomaamattomasti, on liikenne yleensä tehty kuuntelukelvottomaksi salauksella.

Etsin kokeilumielessä käsiini vanhan Logitech iTouch -näppäimistön vuodelta 2000. Se lähettää näppäinpainallukset 27 megahertsin taajuudella vastaanottimelle, joka liitetään PS/2-porttiin. Nykyaikaisiin USB-palikoihin verrattuna vastaanotin on suurikokoinen, ja sen toiminnasta ja taajuuksista voi päätellä jotakin jo piirilevyä tutkimalla. Piirilevyllä on mm. kvartsikiteitä eri ominaistaajuuksilla ja integroitu FM-vastaanotinpiiri. On siis aihetta olettaa, että tieto painetusta näppäimestä siirtyy radiokantoaallon taajuuden muutoksina.

Helpommin toiminta selviää kuuntelemalla radiota. 27 megahertsin taajuutta voi kuunnella millä tahansa matkaradiolla, jossa on 11 metrin lyhytaaltoalue. Signaali kuuluukin samassa huoneessa olevasta radiostani purskeina taajuudella 27,140 MHz ja on hyvin voimakas. Näppäintä painaessa kuuluu yksi purske, ylös nostaessa toinen. Lisäksi näppäimen pohjassa pitäminen tuottaa jatkuvan sarjan lyhyempiä ääniä. Näppäimistön sivussa on nappi, jossa lukee ”Connect”. Sen voisi kuvitella liittyvän salausavainten uusimiseen.

Matkaradio on kuitenkin tehty AM-yleisradiolähetysten kuunteluun ja ääni on alipäästösuodatettua. Osa informaatiosta saattaa olla kadonnut suodatuksessa. Paremman kaistanleveyden saan halvalla USB-digi-TV-sovittimella, jonka RTL2838-vastaanotinpiirin voi virittää yllättävän mielivaltaiselle taajuudelle RTL-SDR-ohjelmistoradion avulla. Käsken laitteen myös ohittamaan omat TV purkupiirinsä ja kaatamaan raa’an näytevirran reaaliajassa tietokoneelleni. Näytevirta on radiosignaalin 8+8-bittinen vaihe-kvadratuuriesitys (I/Q), jonka reaaliosan voi tässä tapauksessa vähäisin vääristymin tulkita PCM:ksi ja tallentaa vaikkapa WAV-muotoon. Näin voin tarkastella ja käsitellä signaalia niin kuin se olisi ääntä.

Spektrogrammi näytevirrasta paljastaa, että signaali todella on FM-lähetteen erikoistapaus, binäärinen taajuudensiirtoavainnus (FSK) kahden kilohertsin siirtymällä. FSK:ssa kantoaallon taajuus vaihtelee kahden arvon välillä, joista toinen vastaa ykköstä ja toinen nollaa. Bittiviivoittimella mitaten näyttäisi, että datanopeus on noin 870 bps. Kirjoitan siis C:llä ohjelman, jossa on 870 hertsin sinioskillaattori ja vaihelukittu silmukka (PLL) pitämässä siniaaltoa lukittuna dataan. Oskillaattorin nousevan nollakohdan hetkellä ohjelma tulostaa nollan tai ykkösen riippuen signaalin senhetkisestä taajuudesta, joka saadaan Fourier-muunnoksella.

Yksi näppäimenpainallus tuottaa noin 85 bittiä dataa. Sanoman pituus vaihtelee hieman, joten on mahdollista, että FSK:n päällä on vielä jokin koodaus. Alkuosat biteistä näyttävät pysyvän aina samoina, joten ne lienevät tahdistus-, osoite- tai tunnistekenttiä. Bittijonon loppuosa muuttuu näppäinpainallusten välillä, erityisesti jos painetaan eri näppäimiä. Se sisältää mahdollisesti PS/2-näppäinkoodin, mutta koodaus ei ole ilmiselvä.

Minkäänlaista salausta liikenteessä ei ole. Viestit nimittäin korreloivat voimakkaasti painetun näppäimen kanssa: tietyn näppäimen painamisen aiheuttaa aina suunnilleen samanlaisen bittijonon. Melko yksinkertainenkin salaus riittäisi piilottamaan korrelaation. Connect-nappi ei siis myöskään liity avainneuvotteluun.

Tuntemattomat muuttuvat kentät viesteissä ovat mahdollisesti laskureita ja tarkistussummia. Ne voidaan sivuuttaa, kun jokaisesta näppäimestä tallennetaan muutamia viestejä: viesteistä luodaan tyyppiesimerkki tai keskiarvo, ja nämä keskiarvot tallennetaan luetteloon yhdistettynä vastaavaan näppäimeen. Tämän jälkeen salakuunteleva Eve voi verrata kuulemaansa dataa kaikkiin luettelon bittijonoihin ja pisteyttää kaikki vaihtoehdot esimerkiksi Levenshtein-etäisyyttä käyttäen. Pienimmän etäisyyden saanut näppäin tulostetaan näytölle keylogger-tyylisesti.

Logitech iTouch -näppäimistöllä kirjoittaminen on siis verrattavissa siihen, että huutaisi salasanansa ja sähköpostiviestinsä huoneen yli niin lujaa, että naapuritkin kuulevat.

On toki mahdollista, ettei salakuuntelija pääse etukäteen käsiksi näppäimistöön eikä voi kokeilla kaikkia näppäimiä yksitellen. Tämä on kuitenkin pelkkä hidaste. Ilkeä Eve voi tilastoida vastaanottamiensa bittijonojen esiintymistiheydet ja verrata niitä vaikkapa suomen kielen tunnettuihin merkkitiheyksiin. Tämä tunnetaan frekvenssianalyysinä. Näin on mahdollista lopulta päätellä bittijonoja vastaavat näppäinpainallukset, vaikka protokollakin olisi tuntematon.

Nykyisin langattomat oheislaitteet ovat siirtyneet 27 megahertsistä 2,4 gigahertsin alueelle ja liikenteen salauskin on todennäköisesti kehittynyt. Taajuus ei toki vaikeuta kuuntelua eikä ole tietoturvaa parantava tekijä, joskaan juuri käyttämäni TV-vastaanotin ei ilman muutoksia aivan sinne asti virity. Jotkin oheislaitteet käyttävät salattua Bluetoothia tai muita yleisiä protokollia. Oma sohvanäppäimistöni käyttää Logitechin Unifying-tekniikkaa, joka väittää salaavansa liikenteen 128-bittisellä AES:llä. Sen avainneuvottelussa on kuitenkin mielenkiintoisen epäilyttäviä vaiheita, jotka saattavat tuoda tälle jutulle jatkoa.


Teksti: Oona Räisänen
Kuvat: Oona Räisänen