Olipas hupaisaa lukea Tietoviikosta tänään jymyuutinen:"Katso surulliselta listalta, lähtisikö uudehko autosi helposti varkaan matkaan", jossa kerrotaan "avaimettomien" langattomien autonavainten tietoturvariskeistä. Hupaisaa siksi, että itse kirjoitin näiden härveleiden tietoturvattomuudesta blogissani miltei päivälleen 8 vuotta sitten! Eipä se silloin toimittajia tai yleisöä tuntunut kiinnostavan. Ehkä nyt, kun TiVi uutisoi samasta asiasta 8 vuotta myöhemmin, se saa suurenkin yleisön mielenkiinnon ja ihmettelyn "Voi, miksei kukaan kertonut meille tätä merkittävää ja aika lapsellista tietoturva-aukkoa aiemmin, miten olimmekaan vuosikausia pimennossa ja miten näin mittava tietoturva-aukko ylipäätään saattoi koskaan olla mahdollinen..."
Kyllä tälle kansalle asioista valistaminen ja varoittaminen on täysin turhaa työtä. Ei näin tyhmä kansa mitään opi, ei ainakaan, jos oppi tulee minulta.
Väännetään rautalangasta: Mikä tahansa avainsysteemi, joka ei vaadi avaimen omistajan aktiivisuutta, on automaattisesti tietoturvaton. Aivan kuten on mikä tahansa muukin tietoturvaratkaisu, joka ei vaadi mitään, eli joka toimii "automaattisesti". Tälle faktalle ei mikään vippaskonsti voi tehdä yhtään mitään, vaikka kuka väittäisi markkinointipuheissaan mitä.
Tosin sekään, että systeemi vaatii käyttäjän napin painallusta, ei tee siitä maagisesti turvallista, ei etenkään, jos systeemi toimii langattomasti. Avaimessa ja vastaanottimessa pitäisi olla sisäinen, tarkka ja keskenään vielä jokaisesta oikeasta vastauksesta uudelleensynkronoituva kello ja salattu yhteys vaihtuvalla avainkoodilla ja vahvalla salauksella. Ja se tärkein juttu, joka voi olla vaikeaselkoista, mutta juuri täsmälleen näin eikä mitään muttia eikä ettiä: Jokaisen napinpainalluksen tulisi luoda satunnaiseen siksi kerraksi luotuun lukupariin (auto ja avain luovat molemmat oman satunnaisen luvun) ja siemenlukuun kryptografisesti yksisuuntaisella tiivistefunktiolla kytketty aikaleimattu avauskäsky ja sen tulisi olla voimassa vain esimerkiksi 5s ajan, jonka jälkeen se muuttuu epäkelvoksi vastaanottimessa. Homman voisi esittää kaavana, jossa x on siemenluku (512bit), z on satunnainen luku (256bit) ja t on aikamääre sekunnin tarkkuudella: sha512(x+z1+z2+t).
Tosin sekään, että systeemi vaatii käyttäjän napin painallusta, ei tee siitä maagisesti turvallista, ei etenkään, jos systeemi toimii langattomasti. Avaimessa ja vastaanottimessa pitäisi olla sisäinen, tarkka ja keskenään vielä jokaisesta oikeasta vastauksesta uudelleensynkronoituva kello ja salattu yhteys vaihtuvalla avainkoodilla ja vahvalla salauksella. Ja se tärkein juttu, joka voi olla vaikeaselkoista, mutta juuri täsmälleen näin eikä mitään muttia eikä ettiä: Jokaisen napinpainalluksen tulisi luoda satunnaiseen siksi kerraksi luotuun lukupariin (auto ja avain luovat molemmat oman satunnaisen luvun) ja siemenlukuun kryptografisesti yksisuuntaisella tiivistefunktiolla kytketty aikaleimattu avauskäsky ja sen tulisi olla voimassa vain esimerkiksi 5s ajan, jonka jälkeen se muuttuu epäkelvoksi vastaanottimessa. Homman voisi esittää kaavana, jossa x on siemenluku (512bit), z on satunnainen luku (256bit) ja t on aikamääre sekunnin tarkkuudella: sha512(x+z1+z2+t).
Pelkistetysti sanottuna, ensiksi avain ilmoittaa autolle, että "hei, minä täällä, sarjanumeroni on se ja se, haluan avata/sulkea auton" ja jos sarjanumero täsmää, auto aloittaa vastaviestinnän muodossa "ahaa, jos olet avain, niin sitten osaat kertoa, mikä on oikea vastaus, kun siemenluvusta, minun luomastani luvusta z1, joka on esim. 4257982457982348567245609235 ja sinun luomastasi luvusta z2, sekä aikamääreestä t, joka on nyt siis esim. 20190128195546 tehdään SHA512 tiiviste?". Avain ottaa nämä tiedot, keksii luvun z2, tekee laskutoimituksen ja vastaa autolle "Vastaus on (esimerkiksi) AFHEARHJADVGYTUAERTYZVJHEUGFTHO, kun z2 on esimerkiksi 469284624276420684256078082426". Auto ottaa avaimen antaman luvun z2 ja tekee saman laskutoimituksen omaa sisäistä kelloaan aikamääreenä käyttäen ja jos vastaus on sama, avain on tunnistautunut autolle ja auto on tunnistautunut avaimelle ja ovet voidaan avata. (Tarkemmin sanottuna avain ja auto voivat tehdä vaikkapa 5 eri laskutoimitusta 5 eri sekuntimäärää käyttäen ja lähettää kaikkien niiden tulokset toisilleen, jos yksikin niistä täsmää, avauskäsky on oikea. Tämä siksi, että kellot eivät välttämättä ole aivan jetsulleen samassa ajassa autossa ja avainperässä.) Auton omistajalle sitten vaikkapa erillisen turvakortin raaputuspinnan taakse tuo siemenluku varmaan talteen siltä varalta, että joskus autonavaimet hukkuvat ja pitää luoda uudet avaimet.
Tällöin mitkään "napataan yksi signaali ja syötetään se myöhemmin" hyökkäyksetkään eivät onnistu, koska myöhemmin syötetyt signaalit eivät ole enää ajallisesti kelpoja, eikä tietenkään ajanmukaista signaalia ole mahdollista luoda tietämättä salaista siemenlukua (joka ei luonnollisestikaan ikinä poistu laitteista ja joka on niissä turvapiirin suojissa lukuyrityksiä vastaan). Auton tai avaimen minkäänmoinen feikkaaminenkaan tai satunnaisluvun "korvaaminen" tunnetulla luvulla ei onnistu, kun molemmat osapuolet (auto ja avain) kumpikin luovat ja käyttävät myös itse luomaansa satunnaista lukua tuossa systeemissä. Yhteyden auton ja avaimen välillä ei tarvitse edes olla salattua, kun systeemi tehdään näin, mutta ei mikään toki estä käyttämästä vaikka AES256-salausta satunnaisilla 128bit IV:llä ihan vaan vittumaisuuden vuoksi, puhumattakaan toki vahvasta hajaspektrilähetteestä (DSSS), joilla jo itsessään tehdään toki lähetteen kaikenlainen kuuntelu ja myös häirintä mahdottomaksi toteuttaa. Tällöin systeemissä on ikäänkuin tuplasuojaus, mikä on enemmän kuin tarpeeksi kaikkia nykyisiä ja tulevia hyökkäyksiäkin vastaan. Hintaa tämmöiselle systeemille ei tulisi kuin muutamia euroja, korkeintaan pari-kolmekymmentä euroa ja se olisi ns. idiootinvarma.
Toki yllä kerrotun sijaan voitaisiin myös ottaa oppia nettimaailmasta ja käyttää auton avaamiseksi yksinkertaisesti U2F:ää, eli käytännössä tämmöistä Yubikeyn avainta. Sama avain sopisi sitten myös mainiosti kaikissa tunnetuissa nettipalveluissa turvalliseen 2-vaiheiseen tunnistautumiseen tietokoneen usb-väylän kautta. Toki kaikki NFC-höpötykset pitäisi unohtaa ja käyttää fyysistä USB-porttia auton ovessa, jonne tuo Yubikeyn tikku tökättäisiin ja josta painettaisiin nappia (muuten olemme taas takaisin ongelman ytimessä, eli ei-aikakoodatun radiosignaalin edelleenlähetyksessä). Siinäpä olisikin todella edullinen, monikäyttöinen, turvallinen ja jo hyväksi havaittu ratkaisu tähän autojen turvallisuusprobleemaan - ja samalla kertaa se ratkaisisi netinkäyttäjien 2-vaiheisen tunnistamisen ongelman!
Toki yllä kerrotun sijaan voitaisiin myös ottaa oppia nettimaailmasta ja käyttää auton avaamiseksi yksinkertaisesti U2F:ää, eli käytännössä tämmöistä Yubikeyn avainta. Sama avain sopisi sitten myös mainiosti kaikissa tunnetuissa nettipalveluissa turvalliseen 2-vaiheiseen tunnistautumiseen tietokoneen usb-väylän kautta. Toki kaikki NFC-höpötykset pitäisi unohtaa ja käyttää fyysistä USB-porttia auton ovessa, jonne tuo Yubikeyn tikku tökättäisiin ja josta painettaisiin nappia (muuten olemme taas takaisin ongelman ytimessä, eli ei-aikakoodatun radiosignaalin edelleenlähetyksessä). Siinäpä olisikin todella edullinen, monikäyttöinen, turvallinen ja jo hyväksi havaittu ratkaisu tähän autojen turvallisuusprobleemaan - ja samalla kertaa se ratkaisisi netinkäyttäjien 2-vaiheisen tunnistamisen ongelman!
Mutta niin kauan, kun edes miljardiluokan bisnestä pyörittävät autonvalmistajat eivät välitä, eivätkä tajua turvallisuudesta edes sen vertaa, että ymmärtäisivät jo maalaisjärjellä havaittavissa olevan perinpohjaisen tietoturvattomuuden, edes sen jälkeen, kun siitä on jo kohta 10 vuotta sitten rautalangasta vääntäen heille kerrottu, ei liene toivoakaan, että ne koskaan ryhtyisivät mihinkään noin suuriin tietoturvaparannuksiin. Tietoturvan taso on ja pysyy jatkossakin autoissa aivan olemattomana. Eivätkä kuluttajat toki parempaa tajua edes vaatia, joten saavat sitä, mitä ansaitsevatkin: Paskaa.