Tietojärjestelmien kehityksessä on usein tilanteita, joissa olisi tarpeen käyttää asiakkaan tuotantojärjestelmän sisältämiä tietoja kehitys- tai testaustyössä. Käyttöä kuitenkin rajoittaa se, että tiedot voivat olla salassa pidettäviä, esimerkiksi liikesalaisuuksia, talouslukuja tai henkilötietoja. Ohessa esimerkki, miten ongelma on ratkaistu erään eläkejärjestelmän tapauksessa.
Eläkkeiden käsittelyjärjestelmällä käsittelijät tekevät eläkepäätöksiä hakemusten perusteella. Keskeisiä käsitteitä ovat henkilöasiakas ja tämän asiat. Käsittelyprosessit ovat pitkäkestoisia koostuen automaattisista (käyttötapaukset) ja manuaalisista vaiheista (tietojen syöttö näytöiltä). Välillä voidaan odottaa tietoa jostain kanavasta, kuten postista, sähköpostista tai verkkopalvelusta, tai vaihtaa tietoa muiden järjestelmien kanssa sähköisten rajapintojen kautta. Lopputuloksena syntyy suuri joukko erilaisia automaattisesti tuotettuja asiakirjoja, joita voidaan muokata käsin ennen päätöksen toimitusta vastaanottajalle.
Eläkkeisiin liittyy valtava määrä erilaisia lakeja ja EU-säädöksiä, mikä tekee niiden käsittelyjärjestelmästä erittäin monimutkaisen. Järjestelmässä on noin 800 tietokantataulua, satoja näyttöjä, käyttötapauksia ja tuotettuja dokumentteja, sekä tuhansia niihin liittyviä käsittelysääntöjä. Tuotantokannassa on miljoonia henkilöitä, mutta suorituskykysyistä kehitysympäristöön tuodaan näistä vain murto-osa. Tästä seuraa, että tuotantojärjestelmässä on usein vikoja, joita ei saada toistettua kehitysympäristössä, koska juuri tarvittavanlaista tapausta ei löydy valmiina ja oikeanlaisen tapauksen luonti tyhjästä on erittäin työlästä. Tai ei tiedetä riittävän tarkkaan millainen sen pitäisi olla, jotta vika toistuisi.
Joissakin tapauksissa ei ole mitään ongelmaa kopioida tuotantokantaa kehitys- tai testiympäristöön. Jos se kuitenkin sisältää henkilötietoja, joita kehittäjällä ei ole lupaa nähdä, ei voida siirtää koko kantaa tai edes osaa siitä sellaisenaan. Tällaisia salattavia tietoja voivat olla esimerkiksi henkilötunnus, nimi, yhteystiedot (osoite, puhelinnumero, sähköpostiosoite ym.) ja tilinumero. Erityistä varovaisuutta vaaditaan silloin, jos henkilöllä on turvakielto. Työkyvyttömyyseläkkeiden tai kuntoutusten tapauksiin voi liittyä myös arkaluontoista tietoa, kuten lääketieteellisiä diagnooseja, joista ilmenee esimerkiksi päihteiden käyttö tai mielenterveysongelmat. Ei haluta, että näitä voitaisiin yhdistää todelliseen henkilöön. Myös GDPR:n takia halutaan siirtää mahdollisimman vähän aitoa tietoa. Jos tuotantotietojen siirto käsittää paljon käsin tehtäviä vaiheita, vaarana on, että salattavia tietoja päätyy kehitys/testi -ympäristöihin.
Kyseisen eläkejärjestelmän kohdalla on päädytty seuraavaan ratkaisuun: ei siirretä kaikkia tuotantokannan tietoja vaan vain sen henkilön asiat ja tiedot, jonka kohdalla selvitettävä vika ilmenee. Tai jos prosessi on edennyt niin pitkälle, että vika ei enää toistu, liiketoiminnan asiantuntijat voivat koettaa etsiä toisen vastaavan tapauksen. Joskus henkilöitä voi olla enemmän kuin yksi, esimerkiksi jos siirrettävällä on edunvalvoja tai kyseessä on perhe-eläkkeen edunjättäjä, jolloin siirretään myös edunsaajat (leski ja lapset). Siirron suorittaa erillinen sovellus, johon on koodattu tarvittavat säännöt. Tällöin ei olla pelkästään sovitun protokollan varassa ja riski salassa pidettävien tietojen vuotamisesta pienenee. Salattavat tiedot voidaan jättää siirtämättä, jos ne eivät ole toiminnan kannalta välttämättömiä. Jos ovat, voidaan generoida sotketut arvot tai siirtää ne muokkaamattomina, mikäli ne eivät ole yhdistettävissä henkilöön, kuten esimerkiksi tiedot ansioista.
Henkilötunnus on sikäli hankala, että se kuuluu salattaviin tietoihin, mutta siitä päätellään henkilön ikä ja sukupuoli. Ongelma on ratkaistu niin että sotketaan vain henkilötunnuksen loppuosa, kuitenkin siten että sukupuoli säilyy. Henkilötunnus on ongelmallinen myös ulkoisten rajapintojen osalta, koska sitä käytetään usein hakuavaimena. Rajapintojen takana olevista järjestelmistä tarvitaankin siksi usein omat, oikeita järjestelmiä jäljittelevät versiot, jotka palauttavat salattavista tiedoista sotketut arvot. Siirron suorittavan sovelluksen pitää siis huolehtia samojen sotkettujen tietojen toimittamisesta feikkirajapintojen käyttöön. Sotkettujen tietojen osalta pitää vielä päättää, riittääkö jokin vakioarvo vai pitääkö arvon olla uniikki, jolloin arvoa voidaan käyttää hakuavaimena. Esimerkiksi voi olla hyväksyttävää, että kaikkien henkilöiden tilinumero on sama, mutta olisi epäkäytännöllistä, jos kaikki henkilöt olisivat samannimisiä.
Yhteenvetona voidaan todeta, että käytettäessä tuotantotietoa kehitystyössä saadaan usein helpommin selvitettyä hankalia vikoja. Tuotantotiedon siirrossa on kuitenkin noudatettava mitä suurinta huolellisuutta. Jos tietojen siirto ympäristöstä toiseen tapahtuu manuaalisesti, se lisää sellaisten virheiden mahdollisuutta, jotka johtavat tietoturvaongelmiin. Mitä automatisoidummin tuotantotiedon siirto tehdään, sitä pienempi on riski, että salattavaa tietoa vuotaa ulos järjestelmästä.
Tämän blogikirjoituksen on kirjoittanut asiantuntijamme Jussi Siirilä.
Mikäli haluat keskustella ohjelmistokehitystarpeistanne, ole yhteydessä.