Apple iOS:n tietoturvasta (osa 1)

Tämä kirjoitus perustuu Applen syyskuussa 2015 julkaisemaan 60-sivuiseen white paperiin iOS Security - iOS 9.0 or later. Kirjoituksen tarkoituksena ei ole käsitellä koko dokumenttia ja iOS-laitteiden tietoturvaa vaan nostaa sieltä esille mielenkiintoisia ratkaisuja ja myös mahdollisia ongelmia. Apple on julkaissut myös aiempia versiota kyseistä dokumentista, mutta keskityn tässä kirjoituksessa ainoastaan uusimpaan versioon. Pidättäydyn myös käsittelemään Applen laitteita, jotka käyttävät vähintään käyttöjärjestelmäversiota iOS 9.0 ja vähintään A7-sukupolven järjestelmäpiiriä. Käytännössä tämä tarkoittaa puhelinversiota iPhone 5s tai uudempaa eli puhelimia, joissa on sormenjälkiskanneri (Touch ID).
Jatka lukemista…

IoT-laitteet turvallisesti lähiverkossa

Kukaan ei ole voinut kokonaan välttyä Asioiden Internetiltä, Internet of Thingisiltä tai tuttavallisemmin IoT:ltä. IoT elää tällä hetkellä nousukautta ja markkinoilla on paljon eri periaatteilla toimivia laitteita ja toisaalta vähän standardisaatiota. IoT on laaja kenttä ja keskityn tässä vain lähiverkkoteknologioita (Ethernet, WiFi) kommunikaatiossa käyttäviin kuluttajatuotteisiin. IoT-laitteista on löydetty haavoittuvuuksia mm. Suomessa myytävistä etäohjattavista pistorasioista ja markkinatilanne indikoi, että laitteiden laatu ei aivan hetkeen ole myöskään parantumassa. IoT-laitteet ovat sikäli loistava hyökkäysvektori potentiaaliselle pahantekijälle, että ihmiset hyväksyvät helposti niiden olevan “mustia laatikoita” ja niiden hyviin ominaisuuksiin kuuluu usein myös helppo asennettavuus, joka saa ihmiset unohtamaan niiden uhat.
Jatka lukemista…

Mihin ohjelmistomäärittelyjä tarvitaan?

Ohjelmistomäärittelyitä ovat vaatimusmäärittelyt, toiminnalliset kuvaukset, suunnitteludokumentit, tekniset kuvaukset sekä käyttö- ja ylläpito-ohjeet. Toisaalta määrittelyitä ovat usein myös palaverimuistiinpanot, sähköpostiketjut ja käytäväkeskustelut. Määrittelyt ovat myös muodoltaan moninaisia. Ne voivat olla listoja, taulukoita, muodollisia dokumentteja, kaaviota, piirroksia tai valokuvia fläppitauluista. Yhteistä niille on kuitenkin se, että ne pyrkivät omalla tavallaan kuvaamaan joko sitä millainen ohjelmiston tulisi olla tai sitä millainen se on. On selvää että edeltävät esimerkit eivät kata kaikkia ohjelmistomäärittelyn muotoja sillä tässäkin voidaan siteerata Charles Darwinin Lajien synnyn kuuluisaa lausetta: “endless forms most beautiful and most wonderful”.
Jatka lukemista…

Fronttidevaus on vaikeampaa kuin koskaan...vai sittenkin helpompaa kuin koskaan?

Gulp. Sass. ES6. Mocha. Webpack. React. NPM. Redux. Babel. Less. PostCSS. Flexbox. Websocketit. Vaikuttavan kuuloista namedroppailua voisi jatkaa vaikka kuinka pitkään. Nykypäivänä web-frontend-kehityksen opiskelun aloittaminen nollatiedoista lähtien vaikuttaa monumentaaliselta tehtävältä, ja sitä se kieltämättä onkin. Kun itse aloittelin webbisivujen koodailun joskus kymmenisen vuotta sitten, HTML oli HTML:ää, CSS CSS:ää ja JS JS:ää, niitä kirjoitettiin tekstieditorilla tekstitiedostoihin ja palvelin tarjosi ne käyttäjille sellaisenaan. Devaajan sormista loppukäyttäjän silmiin oli todella lyhyt matka ja kaikki oli yksinkertaista.
Jatka lukemista…

Hugo - Staattinen sivugeneraattori

Kun Aluparkin verkkosivuja uudistettiin syksyllä 2015 päätavoitteena oli saada sivuille blogi. Lisäksi haluttiin jakaa vanha pitkä etusivu useammaksi alasivuksi. Vanhat sivut oli toteutettu artesaanihengessä lähes täysin staattisella HTML:lla. Dynaamista toiminallisuutta edusti 24 riviä JavaScriptiä, joka uudelleenjärjesti ukkojen naamat satunnaisesti. Preprosessointipuolella oli käytössä Gulp, SASS ja Bower. Uudet verkkosivut Uusin verkkosivujen toteutusvaihtoehtoja vertaillessa esillä olivat seuraavat vaihtoehdot: Käsintehty HTML. Liian työläs ylläpitää vaikka siihen ottaisikin kevyet template-ominaisuudet mukaan PHP:n avulla. Wordpress. Luonteva vaihtoehto, koska se on osa Aluparkin tarjontaa.
Jatka lukemista…

Ajatustyökalut, osa 1: FoldingText for Atom

Tuumaustyökalut on jaettavissa karkeasti kahteen ryhmään: mindmap-sovellukset (tai ihan paperiversiokin), ja outlining-tyyppiset (paperilla niitä perinteisiä “ranskalaisia viivoja”). Tässä artikkelissa esittelen yhden viimeisimmistä löydöistäni, ehkä enemmän näppäimistöorientoituneille suunnatun Atom-editorin lisäosan, FoldingText for Atomin. FoldingText edustaa edellämainituista kategorioista outlining-työkaluja. Periaatteessahan ranskalaisia viivoja on helppo kirjoitella tekstieditoriin kuin tekstieditoriin, mutta FoldingText helpottaa esimerkiksi asioiden järjestämisessä ja sisäkkäisyyden manipuloinnissa. Asentaminen FoldingText for Atom asentuu kuten mikä tahansa muukin Atom-lisäosa: Atomin Settings-näkymän Install-tabin kautta. Paketin nimi on foldingtext-for-atom.
Jatka lukemista…

Realistiset tietomäärät kehityksessä

Minkälaiselle tietomäärälle tietojärjestelmäsi on suunniteltu? Valitettavan usein asiaa ei ole huomioitu lainkaan tai analyysin tuloksia ei ole otettu huomioon muussa määrittelyssä, kehityksessä ja testauksessa. Usein tietomäärien vaikutukset nousevat esille vasta projektin loppuvaiheessa tehtävässä suorituskykytestauksessa. Vasta tässä vaiheessa löytyvät ongelmat ovat kuitenkin usein hankalia ja kalliita korjata. Tyypillisesti tietomäärien aiheuttavat ongelmat ovat suorituskykyongelmia. Esimerkiksi tietokantakyselyiden hidastumista ja näkymien hidasta aukeamista. Pahimmillaan suuret tietomäärät voivat kaataa järjestelmän kokonaan. Toinen, usein ylenkatsottu ongelma, ovat käyttöliittymäsuunnitteluun liittyvät kysymykset.
Jatka lukemista…