Alan Mathison Turing oli matemaattinen nero, joka tutki monenlaisia asioita. Parhaiten hänet muistetaan toisen maailmansodan aikaisesta työstä. Turing oli mukana ryhmässä, joka mursi saksalaisten Enigma-salakirjoituslaitteen. Turingin asemapaikkana oli Brittein Government Code and Cypher School.
Turing määritteli tietojenkäsittelytieteeseen keskeisiä termejä ja ongelmia, aika paljon ennen kuin mainstream-tietojenkäsittelyn katsotaan alkaneen 1960-luvulla transistorin ja tietokonetekniikan miniatyrisoitumisen myötä. Tässä on itse asiassa mielenkiintoinen esimerkki siitä, että matematiikkaan perustuvat järjestelmät eivät sinänsä muutu juurikaan ajan saatossa, koska matematiikassa uusien teoreemojen todistuksen julkisuus- ja hyväksymisvaatimuksena on tiukat todistettavuuteen ja universaaliuteen liittyvät ehdot.
Turingin kuuluisimpia “pelejä” tai testejä on Turing-testi. Se testaa koneen kykyä tuottaa matkimalla ihmismäistä käytöstä. Mutta miksi Turingin ongelmat ovat keskeisiä nykyaikana?
Sain käsiini erään projektin myötä valtavan käyttäjätietokannan. Suurin osa noista käyttäjistä on tuulesta temmattuja, tietokoneella tuotettuja. Niiden ainoa tarkoitus on olla aseina sille, joka on tunnukset luonut. Jokainen haamukäyttäjä on kuin tehokas sprayaaja, valmiina töhrimään verkkoon omia jälkiään. Käyttäjiä “animoidaan” koodilla, eli esimerkiksi kymmeniätuhansia käyttäjiä voidaan samanaikaisesti ohjata tekemään asioita alkuperäisen omistajan puolesta. Jäljet johtavat usein juoksuhiekkaan, jos käyttäjän historiaa aletaan tutkia.
Nykyaikaiset blogit ovat monesti kuin käyttöjärjestelmiä: näennäisen helppouden alla on kuitenkin monimutkainen koodi pyörimässä, ja mikäli blogi jätetään päivittämättä, sen koodista löytyy reikiä joita voidaan hyväksikäyttää (exploits).
Blogaajalla on vaihtoehtona valita valmis peti (‘hosted’), jonka tietoturvakin pysyy usein ajantasaisena (koska ylläpitäjä voi kerralla päivittää automaattisesti kaikki vuokraamansa blogit). Toinen vaihtoehto on itse pystyttää serveri, ja tarjota sisältöä omalta tietokoneelta. Tällöin on melkeinpä päivittäin tarkistettava, että serverille on ajettu viimeisimmät turvapäivitykset sisään – tai esimerkiksi jätettävä poiju, joka hälyttää kun uusia päivityksiä on saatavilla.
Miten eroon haamukäyttäjistä?
Fundamentaali ongelma on siis erotella “kasvottomasta” tietokannasta todelliset käyttäjät niistä, jotka eivät oikeasti edusta luonnollista henkilöä. Usein tiedossa on vain käyttäjätunniste, sähköpostiosoite, ja mahdollisesti jotain lisätietoa.
Naiivi lähestymistapa, jos halutaan kuitenkin pitää oikeat käyttäjät elossa, on lähestyä jollain tapaa kaikkia käyttäjiä (koska päälle päin emme voi päätellä juuri mitään). Voisimme filtteröidä pois selkeästi “huonot” käyttäjät, ja sen jälkeen keskustella todennäköisesti aitojen käyttäjien kanssa.
Vastaamattomuus voi muuten riippua monesta asiasta. Kolme tulevat päällimmäisenä mieleen: henkilö matkoilla, henkilö hämääntynyt tarkistusviestistä, tai “henkilö” on botti jonka tekoälyyn ei ole ohjelmoitu vastausta juuri tämän tyyppiseen pyyntöön.
Osan tunnistaa siitä, että ne on raavittu netistä: ei kenenkään oikea sähköpostiosoite voi olla etunimi.sukunimi ät firma.com , koska meillä Suomessa ei asusta Etunimi -nimisiä henkilöitä. Jäljistä näkee hieman spam-bottien filosofiaa ja sielunelämää. Ne löytävät Internetistä erilaisilta sivuilta merkkijonoja, joissa on keskellä @ merkki. Botti ottaa tällaisen talteen, ja jatkaa sivun kahlaamista.
Suorituksen mittaus ja parantaminen
Isoja projekteja ei kannata vetää, jollei niistä voi mitata parametreja. Tässä tapauksessa haluaisimme tutkia, miten onnistunut puhdistus on ollut. Pieni koodinpätkä lienee paikallaan ensin itse työkalun luomiseksi. Ajattelin lähteä ratkaisemaan ongelmaa Pythonilla. Toinen vaihtoehto voisi olla Perl, jossa on nopeat ja hyvät merkkijonojen käsittelyominaisuudet.
Katson vielä tässä vaiheessa netistä, josko valmiita samanlaisia projekteja on olemassa. En usko, että olen ainoa ylläpitäjä jolle rojahtaa iso käyttäjätietokanta täynnä spammaajia.
Teknisesti filtterin luomisessa pieni ongelma on sovittaa letkut lähtöpään tietopankkeihin, eli erilaisiin todellisiin käytössä oleviin käyttäjätietokantoihin. Web-maailmassa näitä on ainakin jokaisella sisällönhallinta-alustalla luultavasti omansa, ja sen lisäksi erilaisilla lista / postitusohjelmilla myös omansa. Koska tiedot vaihtelevat paljonkin riippuen ihan tekniikan luomista rajoitteista siihen, kuinka paljon kukin käyttäjä haluaa antaa itsestään listalle, pitää löytää pienin alijoukko jonka voidaan aina olettaa olevan.
Leave a Reply