Leluja

Puhelu viime torstaina.

— Respa täällä hei. Teille olisi paketti täällä.
— Tulen hakemaan, hetki.
— Miks teille tulee aina noin paljon kaikkia hienoja leluja. Saadaanko mekin joskus kokeilla niitä?

Tottahan se on. Harrastamme leluja. Respan ihastusta aiheuttanut lelu oli Parrot AR.Drone 2.0 nelikopteri.

Kyseinen kopteri on aika jännä peli. Siinä on kaksi kameraa, joista toinen pystyy ottamaan HD-tasoista 720p-kuvaa. Muita sensoreitakin on iso läjä: kiihtyvyysmittarit, magnetometri, ilmanpainemittari, ultraäänellä toimiva korkeussensori… Vaikka kopteria ohjataankin etänä, siinä on runsaasti myös paikallista älyä. LiPoly-akusta riittää sähköä noin 20 minuutin lentoon.

Hienointa tässä lelussa on kuitenkin se, että sitä pystyy kontrolloimaan myös ohjelmallisesti. Kuuluisin kirjasto taitaa olla Javascriptillä tehty ar-drone, jonka ympärille on maailmalla järjestetty NodeCopter-tapahtumia. Kenties Suomeenkin saadaan sellainen lähiaikoina…

Ennustan, että Parrotin kaltaiset etäohjattavat nelikopterit johtavat aikanaan lentokyvyn demokratisoitumiseen. Tällöin ilmaan lähtöä ei enää rajoita köykäinen kukkaro tai syntyminen eläinkunnan suuren sukupuun väärään oksaan. Pessimistit näkevät tässä valvontayhteiskunnan seuraavan askeleen; optimistit odottavat uusia innovaatioita ja parempaa elämänlaatua. Itse kuulun jälkimmäiseen ryhmään, sillä paras tapa ennustaa tulevaisuutta on luoda se itse.

On tietysti totta, että tällaisenaan Parrot on lelu. Mutta. Linux oli alkujaan lelu. MySQL oli aikanaan, kun sitä vertasi Oikeisiin Tietokantoihin, lelu. Älä aliarvioi leluja ja leikkimistä.

 // Kuva: Flickr CC, Lima Pix.

Tämän artikkelin on kirjoittanut Antti Rasinen ja sitä ovat sittemmin muokanneet muut Codenton työntekijät.

6 vinkkiä turvallisen ohjelmiston tekoon

Turvallisen ohjelmiston tuottaminen poikkeaa tavallisesta ohjelmistokehityksestä yhtä paljon kuin kassakaapin valmistaminen Ikean vaatekaapin kasaamisesta. Vaikka tehtävä on päällisin puolin sama, yhteisiä nimittäjiä ei juuri ole.

Suuri osa turvallisen ohjelmiston kehittämisen nyrkkisäännöistä ovat tuttuja muutenkin: hyvin suunniteltu on puoliksi tehty, kokeneet kehittäjät tekevät vähemmän virheitä ja käytössä koetut perinteiset työkalut sopivat uusia trendituotteita paremmin turvatuotteiden tekoon. Lisäksi turvallisella kehittämisellä ei ole juuri merkitystä, ellei tuotteen perään katsota koko sen elinkaaren ajan.

Seuraavat neuvot eivät sen sijaan ole niin itsestäänselviä, vaikka kehittäminen olisi muuten hyvin näpeissä:

1. Älä tee tietoturvaa väkisin

Parhaat softaideat eivät edellytä kovin hurjaa luottamusta tuotteen turvallisuuteen. Monet uudet tuotteet on tehty niin, että vaikein turvaosuus on suosiolla jätetty toiseen palveluun, jolloin itse tehty osio voi jäädä vaatimattomammalle turvatasolle. Tällaisia hyviä ulkopuolisia tunnistautumis- tai maksamisratkaisuja ovat esimerkiksi:

2. Älä jätä kynttilää vakan alle

Nosta turva-asiat etualalle, jos et voi niitä välttää. Jos juuri turvallisuus on ostajalle yksi tärkeistä valintakriteereistä, nosta turvan hyvä taso esiin kaikessa toiminnassa. Toisaalta tuotteet, jotka ovat selvästi turvallisempia kuin niiden asiakkaat haluavat, jäävät markkinoilla niiden tuotteiden jalkoihin, joille on osattu valita oikea turvataso. Hyviä esimerkkejä onnistuneista turvallisista tuotteista ovat:

  • Skype (turvallinen puhelu Internetissä),
  • PayPal (turvallinen luottokorttimaksaminen),
  • sekä toki erilaiset tietoturvaihmisille tehdyt tuotteet, kuten suomalaiset F-Securen, SSH:n ja Stonesoftin tuotteet.

3. Myy säästöjä, älä turvaa

Parhaat turvatuotteet tekevät halvasta ratkaisusta turvallisen ja säästävät roppakaupalla rahaa. Internetin yli tehdyt VPN-yhteydet ovat tuhansia kertoja halvempia kuin vanhat kiinteät yhteydet toimistojen välillä. Jos ratkaistava ongelma on riittävän arvokas, turvaosion voi tehdä huolella.

4. Tee valtakunnansalaisuuksille kassakaappi

Jos tärkeää tietoa on käsiteltävä, se pitää tehdä niin pienessä osassa ohjelmistoa kuin mahdollista. Esimerkiksi sosiaaliturvatunnusten käsittely- ja tallennuskoodia ei pidä levitellä ympäri ohjelmistoa, vaan se pitää säilyttää ainoastaan harvoissa ja rajatuissa kohdissa.

5. Käytä Abloy-lukkoja

Älä tee itse salausta tai muita vaativimpia tietoturvan osia vaan hanki ne valmiina ja testattuina ratkaisuina. Ohjelmiston turvallisuuden pitää perustua valmiisiin ja varmasti toimiviin komponentteihin, sillä eihän arvokiinteistöillekään suunnitella uusia lukkoja. Hyviä turvaohjelmistoja saa sekä kaupallisina tuotteina että avoimen  lähdekoodin ratkaisuina.

6. Oven kolmas lukko on usein turha

Tietoturva-asioissa joutuu aina valitsemaan mitä tehdään ja mitä jätetään tekemättä. Vain poikkeuksellisissa sotilassovelluksissa voidaan tehdä kaikki asiantuntijoiden kaipaamat turvatoimet. Liika panostus yhteen turvan osa-alueeseen on usein merkki väärästä resurssien suuntaamisesta.

Tietoturvallisen ohjelmiston tekeminen vaatii pitkällistä syventymistä. Suosittelen seuraamaan alan ajattelijoiden tajunnanvirtaa Twitterin kautta, he puolestaan nostavat esiin sekä alan uusimpia trendejä että vanhoja klassikoita omassa virrassaan. Itse seuraan Twitterissä muun muassa seuraavia tietoturvan kovia luita:

Tietoturvallisen ohjelmiston rakentaminen on yhtä vaikeaa kuin menestyselokuvan tuottaminen. Harvat siinä onnistuvat, mutta onnistujat palkitaan ruhtinaallisesti.