16. syyskuuta 2013

Bitcoinista ja turvallisuudesta

Bitcoin on digitaalinen valuutta, jonka käyttö ja arvo on kasvanut räjähdysmäisesti viimeisen vuoden aikana. Bitcoin mahdollistaa sensuroimattoman ja käytännössä anonyyminkin tavan maksaa oikeastaan mitä tahansa ja missä tahansa. Maksutapahtuman voi tehdä omalta tietokoneelta tai vaikka älypuhelimesta. Bitcoinit siirtyvät hetkessä mihin tahansa maailmassa, eikä mikään taho voi sitä mitenkään estää eikä verottaa, ei nyt eikä jatkossakaan. Bitcoineja voi myös painaa paperille tai vaikka arvometallikolikoille jos haluaa ja käyttää niitä sellaisenaan vaihdannan välineenä. Parasta bitcoineissa kuitenkin on se, että niitä ei voi luoda tyhjästä lisää mielivaltaisia määriä, kuten tavallisia valuuttoja voivat keskuspankit ja liikepankitkin luoda...bitcoinit eivät ole minkään keskuspankin tai valtion kontrollissa nyt eivätkä tulevaisuudessakaan, vaan hajautetun, valtavan laskentakapasiteetin luomassa turvassa.

Bitcoin perustuu noin (raa'asti) yksinkertaistettuna SHA-256 tiivistefunktion käyttämiseen rahojen luonnissa (louhinta) ja elliptisten kurvien kryptografiaan (ECC) rahojen siirrossa ja säilytyksessä. Kaikkeen tähän tarvitaan sitten vielä satunnaista dataa, jotta homma toimii turvallisesti.

On tietysti selvä asia, että mikäli tietokone tai muu härpäke, jolla Bitcoin-sovellusta käytetään, vaarantuu esimerkiksi haittaohjelmasta, kyseisissä "lompakoissa" olevat rahat voivat olla vaarassa. Niin ikään, mikäli käytetään jotain nettipohjaista lompakkopalvelua (esim. blockchain wallet), sen vaarantuminen voi vaarantaa lompakon sisällön. Onneksi bitcoin-sovelluksissa ja nettipalveluissakin käytetään vahvaa salausta, joka suojaa salasanasi kautta lompakon sisällön suoralta väärinkäytöltä (mutta ei tietenkään mitenkään salasanasi varastavalta haittaohjelmalta). Käytännössä bitcoinin käyttö on käyttäjän toimesta mahdollista tehdä hyvinkin turvalliseksi, toisin sanoen huomattavasti turvallisemmaksi kuin mitä esimerkiksi luottokortin tai käteisen rahan käyttö nykyään on.

Bitcoinilla on kuitenkin ollut ja on yhä tietoturvaan liittyviä, ei-käyttäjälähtöisiä ongelmia. Sellaisia, joihin käyttäjä ei voi vaikuttaa oikein millään tavalla, eli ongelmia, jotka johtuvat bitcoinin sovelluksista tai bitcoinissa käytetyistä ominaisuuksista itsestään.

Sovelluksissa olevista ongelmista lienee hyvä ja tuore esimerkki Androidin bitcoin-sovelluksessa ollut tietoturvabugi, joka teki salausavaimista ei-satunnaisia ja mahdollista bitcoinien varastamisen. Ongelma oli toki helposti korjattavissa uudella sovelluksen versiolla, mutta herätti kyllä ainakin minussa pohdintaa siitä, millainen on bitcoinia väsäävien ihmisten ymmärrys salauksesta ja kyky implementoida sitä asianmukaisesti.

Perinpohjaisia ongelmia bitcoinissa ovat minusta sen käyttämät salausalgoritmit. Ne kun eivät ole minusta lainkaan riittävän turvallisia. Varsinkin, kun ottaa huomioon, että ne voisi helposti tehdä turvallisiksi tai ottaa käyttöön jonkun muun bittivaluutan, jossa ne olisi käytössä alunperinkin.

SHA1/2-tuoteperheen tiivistefunktioissa on ilmeisesti perustavaa laatua olevia bugeja tai takaportteja, siksihän uusi tiivistefunktio onkin otettu käyttöön, SHA-3 joka perustuu ihan erilaiseen systeemiin. Parasta olisi kryptovaluutta, joka käyttäisi aina automaattisesti kahta eri tiivistefunktiota, esim. juuri SHA-3 ja RIPEMD-320...todennäköisyys, että kahdesta eri tiivistefunktiosta löytyy molemmista samanlainen haavoittuvuus ja sen seurauksena MOLEMMAT lopputulokset voidaan samalla tapaa väärentää, on jo täysin tähtitieteellinen, käytännössä siis mahdoton.

ECC jota Bitcoinissa käytetään, voi olla NSA:n takaportittama. Aika hassua, että tästä ei juurikaan pidetä meteliä. Joka tapauksessa avainkoon pitäisi olla 1024bit jos halutaan turvamarginaalia mahdollisiin tulevaisuuden murtoihin ajatellen, nythän se on vain 256bit, joka on oikeasti todella vähän. Parasta olisi toki kehittää sellainen ECC:n versio, joka ei ole tullut suoraan NSA:lta kuten nyt käytössä oleva versio on (Secp256k1). Mikä se sitten olisi, onkin parempi kysymys johon en suoralta kädeltä osaa vastata.

Bitcoin on kuitenkin, näineenkin, turvallisempi ja parempi kuin vaikkapa luottokortti tai edes käteinen. Siitä on kuitenkin hankala kehittää enää turvallisempaa, koska se vaatisi koko sen perustavaa laatua olevien rakenteiden muuttamisen. Esimerkiksi SHA256:lla louhitut rahat eivät voisi kelvata vaan niiden arvo putoaisi nollaan, mikäli louhinnassa otettaisiin käyttöön jokin muu tiivistefunktio. On mielenkiintoista nähdä, miten pitkään Bitcoinia tullaan käyttämään ennen kuin se korvaantuu toisenlaisella, toivottavasti vielä turvallisemmalla systeemillä. Olettaisin kuitenkin, että Bitcoinilla on edessään ainakin kymmenen- ehkä kaksikymmentä vuotta vielä. Se on paljon, paljon enemmän kuin mitä esimerkiksi eurolla tulee missään nimessä olemaan.

Suosittelen siis yhä bitcoinia. Mutta pitäkää silmät ja korvat auki uusien bittirahojen suuntaan, sieltä voi avautua hienoja tilaisuuksia paitsi osallistua uudenlaisen rahan kehittämiseen ja käyttöön, niin myöskin sievoiseen tienistiin. Kehitys laukkaa eteenpäin. Tätä kehitystä ei voida pysäyttää ja sepäs bankstereita ja poliitikkoja niin suunnattomasti kismittääkin.

Ei kommentteja: