Programėlę „Korona Stop LT“ jau spėjo parsisiųsti daugiau nei 84 tūkst. lietuvių, tačiau apie susirgimus COVID-19 per programėlę praneša tik vienetai. Toks neproporcingumas ir kitos keistos programėlės detalės patraukė programinės įrangos inžinieriaus Džiugo Baltrūno dėmesį. Anot jo, dėl kelių detalių programėlės sėkmė buvo jau palaidota dar jai nepasirodžius.
Asociatyvi „Pixabay“ nuotr.
Pasigedo diskusijos
Nacionalinio visuomenės sveikatos centro (NVSC) užsakymu už 19 tūkst. eurų informacinių technologijų kompanija „Dizaino kryptis“ sukūrė programėlę COVID-19 infekcijos plitimo kontrolei, kuri veikia „Bluetooth“ ryšiu.
Kaip Delfi pasakoja šiuo metu Osle gyvenantis mokslų daktaras bei vietos nustatymo patalpose sprendimus kuriančios įmonės „Forkbeard“ programinės įrangos inžinierius Džiugas Baltrūnas, nuo pirmojo paskelbimo apie programėlės kūrimą, specialistas atidžiai sekė informaciją.
„Pirmas keistas dalykas buvo programėlės kaina: panašios programėlės daugelyje kitų Europos šalių atsiėjo keliasdešimt kartų daugiau. Didesnės investicijos nebūtinai reiškia geresnį rezultatą, tačiau nustebino tai, kad viešoje erdvėje apskritai nevyko jokios diskusijos dėl to, kurią sąlyčių fiksavimo technologiją pasirinkti, kokie skirtingų technologijų privalumai ir trūkumai, kokia kitų šalių patirtis“, – pasakoja D. Baltrūnas.
Jis sako, kad savanoriškai testavo programėlę ir taip vienas iš pirmųjų sužinojo, kad „Dizaino kryptis“ ne pati kuria, tačiau adaptuoja vokišką atviro kodo Corona Warn App (CWA) programėlę, kainavusią apie 20 mln. eurų. Anot eksperto, CWA, kaip ir didesnė dalis šiuo metu įvairiose šalyse prieinamų COVID-19 sąlyčių fiksavimui skirtų programėlių, remiasi Google Apple Exposure Notification (GAEN) sistema.
„Korona Stop LT“ programėlei galiausiai startavus lapkričio 6 d., pastebėjau, kad duomenys, kuriais remiantis programą įsidiegę vartotojai galėtų sužinoti apie artimą sąlytį su užsikrėtusiais, NVSC tarnybinėse stotyse apskritai nebuvo kaupiami. Aptikęs šią problemą, ją pranešiau asmeniui iš SAM, suteikusiam prieigą prie išankstinės programėlės versijos. Po kelių papildomų apsikeitimų laiškais problema galiausiai buvo pašalinta ir informacija apie anonimiškus užsikrėtusiųjų duomenis kitiems programėlės naudotojams pagaliau tapo prieinama lapkričio 12 dieną“, – aiškina D. Baltrūnas.
Kaip veikia programėlė
Jis detaliai paaiškina, kaip veikia programėlė. „Kiekvienas telefonas, kuriame įdiegta sąlyčių fiksavimo programa, Bluetooth Low Energy (BLE) protokolu periodiškai siunčia savo atsitiktinai sugeneruotą identifikatorių RPI (Rotating Proximity Identifier), kuris keičiamas kas 10–20 minučių tam, kad nebūtų įmanoma nustatyti dviejų telefonų sąlyčio trukmės. Tuo pat metu visi programėlę turintys telefonai stebi ir išsaugo RPI identifikatorius, girdimus iš netoliese esančių įrenginių, kartu užfiksuojant ir BLE signalo stiprumą bei trukmę. Ši informacija yra saugoma ne programėlėje, o telefono operacinėje sistemoje („Android“ ar „iOS“) ir niekada nėra niekur siunčiama.
Kiekvienas siunčiamas RPI yra užkoduojamas laikinuoju sąlyčio raktu TEK (Temporary Exposure Key), kuris keičiamas kas 24 valandas. Tokiu būdu užtikrinamas anonimiškumas. Programėlėje vartotojui pranešus apie užsikrėtimą, į sveikatos priežiūros institucijų (nes GAEN pasiekiama tik joms) serverius perduodami visi per pastarąsias 14 dienų naudoti TEK raktai, kurie tampa prieinami atsisiuntimui visiems kitiems programėlės vartotojams“, – aiškina D. Baltrūnas.
Jis pažymi, kad programėlė paprastai visus raktus atsisiunčia kartą per parą. Tuomet, sako ekspertas, yra tikrinama, ar buvo užfiksuota sąlyčių su tais telefonais, kurių TEK raktai paskelbti.
„Paskutiniu žingsniu yra pritaikomi sveikatos priežiūrų institucijų nustatyti sąlyčių kriterijai (Lietuvos atveju fiksuojami sąlyčiai, ilgesni nei 15 minučių trumpesniu nei 2 metrų atstumu, apskaičiuojamu pagal signalo stiprumą) ir vartotojui formuojamas pranešimas, kiek rizikingų sąlyčių jis turėjo ir kada užfiksuotas paskutinis rizikingas sąlytis“, – sako specialistas.
Jis pastebi, kad vartotojams prieinamų TEK raktų kiekis nėra proporcingas vartotojų ar sąlyčių kiekiui, bet yra tam tikra programėlės vartojimo indikacija. Vienam programėlės vartotojui pranešus apie užsikrėtimą, įkeliama maždaug 14 jo TEK raktų.
„Grafike pavaizduotas „Korona Stop LT“ programėlių į NSVC perduotų ir visiems vartotojams prieinamų TEK kiekis. Teoriškai vienas pranešimas apie užsikrėtimą reiškia iki 14 TEK raktų, tuo remiantis galima teigti, jog lapkričio 14 ir 16 d. per programėlę nebuvo pranešta apie nė vieną užsikrėtimą, o visomis kitomis dienomis buvo pranešta nuo 1 iki kelių užsikrėtimo atvejų. Grafikas parengtas remiantis download.koronastop.lt prieinamais duomenimis, naudojant CWA numatytą TEK raktų atsisiuntimo programinę sąsają“, – sako D. Baltrūnas.
Programėlės sėkmė jau palaidota
Nuo lapkričio 12 dienos, kai pirmieji TEK raktai tapo prieinami NVSC serveriuose, D. Baltrūnas pamatė, kad jų kiekis yra labai mažas – tik keli ar keliolika per dieną. Specialistas pasakoja, kad ėmė domėtis, kodėl taip yra. Priežastis, anot D. Baltrūno, ir nulemia, kad programėlės sėkmė buvo palaidota jai dar net nepasirodžius.
„Paaiškėjo, kad atvejo patvirtinimo kodą (APK), kurį reikia nurodyti programėlėje norint pranešti apie užsikrėtimą, NSVC siunčia ne visiems pacientams, kuriems diagnozuota Covid-19 infekcija, o tik tiems, kurie patys to paprašo. Žinant NVSC telefonų linijų apkrovimą ir įvertinant, jog dauguma vartotojo greičiausia net nežino, kad jie patys turi kreiptis dėl APK gavimo, tapo akivaizdu, kad didesnių TEK kiekių tikėtis ir neverta. Kitaip tariant, dėl SAM sumanyto veiklos modelio SMS žinutes su APK siųsti kažkodėl ne visiems, o tik to paprašiusiems, programėlės sėkmė buvo palaidota jai dar net nepasirodžius“, – sako D. Baltrūnas.
Taip pat pastebima dar viena problema: jei gyvenate su asmeniu, kuriam nustatytas COVID-19, būsite informuoti, kad turėjote ne 1 kontaktą, o, tarkime, 50.
„RPI identifikatoriai yra generuojami kas 10–20 minučių. Iš vienos pusės, taip GAEN užtikrina jūsų privatumą (niekas negalės sužinoti, ar su kitu asmeniu bendravote 20 minučių, ar dvi nepertraukiamas valandas). Iš kitos pusės, tampa neįmanoma nustatyti, su keliais užsikrėtusiais asmenimis iš tiesų turėjote sąlytį. Todėl labai svarbu tiksliai formuluoti įspėjimo žinutę. Šiuo metu Korona Stop Lt programėlėje įspėjama, su keliais užsikrėtusiais asmenimis buvo turėtas rizikingas sąlytis. Tai panašu į vertimo klaidą ir pranešimas turėtų būti pataisytas, nurodant turėtą sąlyčių, o ne asmenų kiekį“, – kodėl taip yra paaiškina D. Baltrūnas.
Gerai ir pigiai nebūna
Specialistas nesiima vertinti programėlei skirtų laiko ir pinigų sąnaudų, nes pats kūrimo procese nei tiesiogiai, nei netiesiogiai nedalyvavo.
„Žinau tik tiek, kad gerai ir pigiai nebūna. Klaidų pasitaiko visur ir visiems, jas galima pataisyti. Labiausiai stebina tai, jog procesas nebuvo viešas. Dėl to, kad iki šiol nebuvo bent kiek platesnės diskusijos ir atidesnio žvilgsnio programėlės klausimu, kalti ir mes patys. Per visą laikotarpį nuo pat pavasario iki dabar tarp IT ekspertų, paprastai pasisakančių įvairiausiais technologiniais klausimais, taip ir neatsirado tokių, kurie būtų įsigilinę į sąlyčio fiksavimo technologijas ir imtųsi tai viešai komentuoti lietuviškos programėlės kontekste. Tikiuosi, tokių dar atsiras“, – sako pašnekovas.
Anot jo, dabar svarbiausia, kad SAM ir NVSC pakeistų dabartinį programėlės veikimo modelį ir pradėtų SMS žinutes su APK siųsti visiems, kuriems patvirtinama COVID-19 infekcija.
„Šiuo metu programėlė tiesiog negali atlikti savo darbo ir negalės tol, kol per programėlę praneštų užsikrėtimų kiekis nepradės bent kiek reikšmingiau koreliuoti su visų užsikrėtusių skaičiumi“, – teigia D. Baltrūnas.
Jis pastebi, kad nors lapkričio 16 dienos duomenimis, programėlę buvo atsisiuntę apie 83 tūkst. vartotojų, lapkričio 14 ir 16 d. per programėlę apie užsikrėtimą nepranešė nė vienas vartotojas, o kitomis dienomis – vos vienas kitas. „Remiantis NVSC duomenimis, iki lapkričio 17 d. buvo išsiųsta tik maždaug 90 APK (o kiek iš jų buvo panaudoti pranešimui apie užsikrėtimą programėlėje, pats NVSC, panašu, apskritai nežino). Tai reiškia, kad šiuo metu programėlė tiesiog negali atlikti savo darbo ir negalės tol, kol per programėlę pranešamų užsikrėtimų kiekis nepradės bent kiek reikšmingiau koreliuoti su visų užsikrėtusių skaičiumi“, – pabrėžia specialistas.
Specialistas taip pat kritikuoja tai, kad šiuo metu pagrindinė siunčiama žinutė yra raginimas atsisiųsti programėlę, o spaudos konferencijų metų kaskart pristatomas programėlę atsisiuntusių vartotojų skaičius, tačiau nėra viešinama, kiek užsikrėtimų pranešama per programėlę.
„Galima daryti prielaidą, jog dalis žmonių mano, kad pakanka atsisiųsti programėlę, tad būtina aiškiai komunikuoti, jog tam, kad ji atliktų savo darbą, būtina, kad kuo didesnis kiekis užsikrėtusiųjų apie tai praneštų per programėlę.
Tam tikrų bėdų yra su NSCV tarnybine stotimi, į kurią įkeliami TEK raktai. Lapkričio 8 d. ji beveik visą dieną buvo nepasiekiama, tačiau iki šiol taip ir nebuvo paskelbtos to priežastys. Buvo svarstoma kibernetinio išpuolio versija, kas, mano vertinimu, nėra pagrįsta.
Pastarosiomis dienomis į kai kurias rakto atsisiuntimo užklausas tarnybinė stotis atsako 502 Bad Gateway klaida ir nepanašu, kad kas nors tai stebėtų ir užtikrintų, kad tokių klaidų neliktų. Tokios klaidos yra tiesiog nedovanotinos, kadangi šiuolaikinės technologijos leidžia aptarnauti šimtus tūkstančių HTTP užklausų per sekundę, o mes kalbame apie šimtus kartų mažesnį kiekį. Viena tokia klaida gali lemti tai, kad programėlei nepavyks atsisiųsti TEK raktų ir dėl šios priežasties vartotojas nebus įspėtas apie turėtą rizikingą sąlytį“, – teigia D. Baltrūnas.
Pašnekovas akcentuoja, kad svarbiausia priemonė problemų sprendimui – viešumas. „Deja, bet panašu, kad bent jau SAM jo vengia – praeitą savaitę buvau paprašytas pašalinti minėto SAM kontaktinio asmens vardą ir pavardę iš savo įrašų socialiniuose tinkluose. Nebegavau atsakymo ir į klausimą, į ką galėčiau kreiptis dėl esamo programėlės veiklos modelio pakeitimo, kad APK kodai būtų pradėti siųsti visiems.
Atsiradus viešai diskusijai, bus galima visiems kartu tartis, ar programėlės programinis kodas neturėtų tapti viešas, taip pat diskutuoti dėl kitų reikalingų programėlės patobulinimų, kad ir galimybės skelbti užsikrėtusiųjų einamosios dienos TEK raktą, kas leistų formuoti tikslesnius pranešimus rizikingą sąlytį turėjusiems asmenims“, – sako D. Baltrūnas.
Apie susirgimus pranešė 22 vartotojai
Delfi kreipėsi į NVSC dėl klausimų apie programėlę. Kaip informuoja NVSC specialistė Brigita Rašimaitė, apie užsikrėtimą COVID-19 programėlėje jau pranešė 22 naudotojai. „Atsižvelgiant į tai, kad programėlė veikia savanoriškumo principu, kad ji startavo tik kiek daugiau nei prieš savaitę ir kad ją atsisiuntusių naudotojų nėra dar pakankamai daug, tokį rezultatą vertiname kaip teigiamą ir reiškiantį žmonių pasitikėjimą bei geranoriškumą“, – teigia B. Rašimaitė.
Pasiteiravus, kodėl kodai išduodami tik jų paprašius, o ne visiems sergantiems ir ar tai nėra receptas nepasisekimui kartu įvertinus ir NVSC darbuotojų krūvį, specialistė paaiškina, kad kodų, kuriuos išduoda NVSC, įvedimas programėlėje apriboja galimybę piktavališkai pasiskelbti apie užsikrėtimą ir nepagrįstai kelti nerimą kitiems naudotojams. „Prašyti suteikti kodą galima ir reikėtų tuomet, kai su asmeniu susisiekia darbuotojas / savanoris, atliekantis epidemiologinę diagnostiką, kodus suteikiame ir tiems, kurie kreipiasi el. paštu konsultacijos@nvsc.lt (žinoma, tik tuomet, kai asmuo pateikia kontaktinius duomenis sutampančius su NVSC turimais).
Problema dėl konsultacinės linijos telefonu kilo dėl to, kad besikreipiantys asmenys neatidžiai išklauso operatoriaus balsą ir į programėlei skirtą konsultavimo liniją kreipiasi visai kitais klausimais, šiuo metu ieškoma sprendimo ir artimiausiu metu problema turėtų būti išspręsta“, – sako B. Rašimaitė.
Pasiteiravus, kodėl buvo priimtas sprendimas naudoti vokiečių atvirą kodą, o ne patiems kurti programėlę nuo nulio, B. Rašimaitė paaiškina, kad naujos programėlės kūrimas būtų kainavęs gerokai daugiau nei adaptavimas. Ji pabrėžia, kad „Corona Warn App“ projekto kaina nėra paslaptis, ji viešai paskelbta. „Naujos programėlės kūrimui būtų reikėję suburti gana nemažą komandą, kūrimas iš naujo atimtų žymiai daugiau laiko, nebuvo visiškos garantijos, kad diegėjai kurdami programėlę nepasinaudos atviru kodu ir/ar kad kūrimas pavyks sėkmingai. Programėlę adaptavusių IT specialistų nuomone, „Corona Warn App“ atviras kodas pasirodė tinkamesnis Lietuvai“, – argumentuoja pašnekovė.
Viena iš D. Baltrūno kritikų buvo tai, kad esą nevyko jokia vieša diskusija apie programėlės kūrimą. „Apie sprendimą diegti programėlę buvo paskelbta viešai tikrai, tačiau sulaukėme tik priekaištų, kodėl ji dar nesukurta, ir klausimų, kada bus sukurta. Nuoširdžiai savo pagalbą yra pasiūlę keletas studentų, tačiau tuo metu adaptavimas jau buvo gerokai pasistūmėjęs į priekį. Programėlės adaptavimo metu pasitikėjome jos diegėjais“, – paaiškina B. Ramišaitė.
Ji pabrėžia, kad tokio tipo programėlės kaip „Korona Stop LT“ gali veikti tik savanoriškumo principu, tai bendras ES šalių susitarimas, kurį paskelbė Europos Komisija. Galbūt yra painiojama su kitokio pobūdžio programėlėmis.
Tikslas – 60 proc. gyventojų
Apie programėlę lapkričio 10 dieną plačiau buvo kalbėti ir laidoje „Delfi diena“. Laidoje NVSC specialistė Brigita Rašimaitė teigė, kad „Bluetooth“ ryšį, kaip patį tinkamiausią, parekomendavo Europos Komisija (EK), tačiau kibernetinio saugumo ekspertas Darius Povilaitis sakė, kad labiau reikėtų jaudintis ne dėl programėlės saugumo, o dėl sukurto mechanizmo naudingumo.
Pasiteiravus, kiek reikia žmonių, kad parsisiųstų programėlę ir ją vartotų atsakingai, jog galėtume pasakyti, kad į ją investavome nebereikalo ir ji tikrai yra efektyvi, laidoje B. Rimašaitė atsakė, kad otimistiškiausias planas – 60 proc. gyventojų.
„Kol kas žiūrėdami ir vertindami kitų šalių patirtį, labai abejojame, ar pasieksime tokį procentą naudotojų. Matome kelias šalis, kurios pasiekė apie 40 proc. ir tai kol kas yra didžiausias pasiektas rodiklis tose valstybėse. Kaip mums seksis Lietuvoje pasižiūrėsime – dar anksti apie tai svarstyti“, – sakė B. Rašimaitė.
Povilaitis laidoje taip pat svarstė, kad šiuo metu neturime jokios priemonės, kuri padėtų sustabdyti viruso plitimą, o pati programėlė galėtų būti tobulinama. „Man atrodo, kad ši programėlė būtų labiau skirta sužinoti, ar tu turėjai kažkokį kontaktą, tačiau kitose šalyse yra naudojami mechanizmai, kurie labiau akcentuoja tų žmonių, kurie yra infekuoti arba turėjo kontaktą, kontrolę, ir tą stebėjimą galima vykdyti per mobiliojo ryšio operatorius, kitaip sakant, tavo lokacija nustatoma, kur tu esi, ir kas kažkiek laiko gali būti tikrinamas. Tai, ką dabar kartais daro policija, būtų galima daryti automatinėmis priemonėmis.
Klausimas toks: kas svarbiau – sustabdyti tuos žmones, kurie yra užsikrėtę, kad neplatintų viruso, ar sužinoti, kad tu turėjai kontaktą. Tikriausiai svarbūs abu dalykai, bet, man atrodo, šiuo metu neturime jokios priemonės, padedančios kontroliuoti, kad tas virusas neplistų. O dabartinė programėlė remiasi tiesiog geranoriškumu“, – sako saugumo ekspertas.