Gleðifregnir!
Kóðinn að appinu hefur verið opnaður og finnst hér: https://github.com/aranja/rakning-c19-app
Um helgina áttum við @smari samtal við Aranja, um það hvernig væri best að standa að þessu til þess að loka fyrir alla tortryggni gagnvart rakningarappinu. Að ofan er að finna allan kóða að appinu sem fer inn á síma hjá fólki. Appið sendir síðan upplýsingarnar á móttökuvef, sem er kallaður „API“. Það stendur til að opna þann kóða líka, en hann er hinsvegar ekki nauðsynlegur til að sýna fram á hvernig appið virkar. Aðalatriðið er að kóðinn að appinu sé opinn, og hann hefur núna allur verið gerður aðgengilegur, sem er mikið gleðiefni, en ég ítreka að það stendur til að gefa móttökuvefinn út opinn líka. Ég fer aðeins nánar út í þetta síðar í þessu innleggi.
Sjálfur er ég búinn að gramsa í kóðanum og finna þá punkta sem taka upp GPS staðsetningar, geyma þær og senda. Appið er ekki flókið, heldur er frekar auðvelt að rekja sig í gegnum hvar hlutirnir séu (þ.e. fyrir forritara). Hér eftir er smá tæknileg greinargerð frá mér við að skoða kóðann. Ekki er víst að þetta meiki sens fyrir öðrum en tæknimönnum, en ég legg nú samt til að fólk reyni, því tæknimenn eru bara venjulegt fólk sem reyndi á einhverjum tímapunkti að skilja svona hluti og tókst það.
(Allur kóðinn er undir src
möppunni.)
Í skránni tracking.js
má finna kóðann sem tekur upp staðsetningarnar. Hann er ágætlega skjalaður og útskýrt er hvað gerir hvað. Notast er við skipanasafn (e. library) sem heitir @mauron85/react-native-background-geolocation
til þess að taka upp hnitin, og það skipanasafn er einnig opinn hugbúnaður, sem er hægt að lesa.
Nokkur lykilatriði um tracking.js
.
Breytan LOCATION_AGE_LIMIT
segir til um hversu lengi er haldið utan um gögn, og þar eru tilgreindar þær tvær vikur aftur í tímnn sem talað hefur verið um. Í sömu skrá er fallið getPoints
sem er notað til að sækja uppsöfnuð hnitin þegar það á að senda þau. Eins og sést í fallinu getPoints
er gögnum sleppt sem eru eldri en tveggja vikna, þ.e. skv LOCATION_AGE_LIMIT
. Þannig getum við staðfest að einungis hnit seinustu tveggja vikna eru send, þegar þau eru send.
Einnig er þarna hægt að glöggva sig á þeim GPS stillingum sem eru notaðar, en ég hef ekki orðið var við sérstakan áhuga á þeim og sleppi því umfjöllun um þær. Það eru hlutir eins og nákvæmni og þess háttar.
Síðan má leita í kóðanum að því hvar getPoints
er notað, og sést þá að það er einungis notað í skránni router/logged-in/screens/RequestDataScreen.js
.
Sú skrá er skjámyndin þar sem síminn biður notandann um að senda inn gögnin, eins og sést við að opna þá skrá og skoða. Þannig getum við staðfest að gögnin eru einungis send með vitund og vilja notandans, og að notandinn sé spurður í hvert það tilfelli sem þau eru send.
Einnig kemur fram í kóðanum hvert gögnin eru send, en það er á https://api.tracking.covid.is
, sem er staðfest undirlén COVID-19-vefsins, sem er á vegum yfirvalda.
Af yfirferðinni tel ég ljóst að appið virkar eins og mér hafði verið lýst því áður af tæknimanni (sbr. fyrra innleggi hér í spjallkerfinu), þegar notandinn er beðinn um að senda inn gögnin. Hvergi í kóðanum er að sjá neitt sem sendir gögn til móttökuvefsins, eða nokkurt annað, undir öðrum kringumstæðum, og sömuleiðis sýnir kóðinn fram á að þeim sé einungis safnað tvær vikur aftur í tímann, enda ekki gagnleg til smitrakningar ef þau eru eldri.
Ef einhver vill spyrja nánar út í kóðann get ég reynt að svara eftir bestu getu.
Að lokum langar mig samt að fjalla aðeins um móttökuvefinn, sem verður gerður opinn seinna, en ég tel ekki nauðsynlegan til að sýna fram á virkni appsins.
Ég hef sjálfur fengið afrit af móttökuvefnum og er með hann á tölvunni hjá mér, en þau vilja bíða með að gefa hann út alveg opinn vegna þess að þau vilja ganga betur frá honum af öryggisástæðum sem ég ætla ekki að fjalla um hérna - en að mínu mati eru málefnaleg og skynsamleg. Viðbót: Það er ekki vegna þess að öryggisgallar séu í þeim kóða, heldur vegna þess að hvernig hann er birtur þarf að taka tillit til samhengis hans við önnur verkefni, sem ekki eru opin. Að mínu mati skiptir hann hinsvegar minnstu máli, vegna þess að alveg sama hvað stendur í honum, getur mótttakandi gagnanna auðvitað alltaf afritað þau eitthvert annað ef hann beinlínis ætlar sér. Þannig er ekki hægt að nota kóðann að móttökuvefnum til að sýna fram á það hvernig mótttökuaðilinn kýs að fara með gögnin; til þess þarf alltaf að treysta honum til að fara með þau samkvæmt því sem hann segir. Enginn kóði og ekkert ferli getur sannað að smitrakningarteyminu sé treystandi.
En hvað varðar appið, þá er það núna opið, og hvaða forritari sem er getur lesið kóðann og reyndar líka stungið upp á lagfæringum.
Sem leiðir mig að síðasta punktinum, sem er ákall til forritara, um að senda inn tillögur að breytingum ef þeir sjá eitthvað sem betur mætti fara.