» »

Korona sledilnik - neodvisna naprava

Korona sledilnik - neodvisna naprava

Janez-22 ::

Pred kratkim sem padel v težke debate pod temle člankom: https://slo-tech.com/novice/t776948, ko sem objavil informacijo o korona aplikaciji, zares odprtokodni, ki bi mogoče lahko tekla na mojem telefonu, ki nima niti Googla niti Appla.

Slovenska aplikacija je odprtokodna, samo je zanikrno objavljena. Temelji na nemški odprtokodni aplikaciji, ki je po mojem mnenju primerno objavljena. Moti me, da slovenska, pa tudi nemška aplikacija delujeta izključno na Googlovih ali Applovih sistemih, vsaj kolikor je meni znano. Se pravi, da smo izključeni vsi, ki imamo malo bolj obskurne operacijske sisteme in pa tisti, ki imajo stare telefone ali pa sploh nimajo pametnega telefona.

Moja ideja je naslednja:
1. Izdelava enostavne naprave: mikrokontroler - bluetooth - baterija. Sposobna da se povoha z napravami v okolici, ki imajo nameščeno aplikacijo #ostaniZdrav.
2. Če to napravo, za začetek preko usb-ja, vsakodnevno vklopim v PC, preberem vse zabeležene stike. To je že zanimiva informacija.
3. S PC-jem se dnevno povežem na vladne strežnike in si izmenjam informacije.

Če je zadeva res odprtokodna in so protokoli javni, bi tole moralo delovati. Sicer je treba ugotovit, zakaj ne. Država je dolžna omogočit svobodno (podjetniško) pobudo.

Ta zadeva sploh ne bi bila tako neuporabna, poceni napravice bi lahko razdelil vsem družinskim članom, ki se dnevno povežejo na domači PC (če hočejo). Program na PC-ju (ali kjerkoli že) bi pa tudi lahko bil bolj privlačen, če bi prikazoval recimo nekaj statistike.

Če je zadevo odprtokodna, je najbolj odprtokodna takrat, ko jo razvija skupnost. Tako, da če se komu zdi, se lahko lotimo. Jaz imam nekaj pojma o nekem drugem komunikacijskem protokolu, o bluetoothu pa nič. Časa nimam prav veliko, sodeloval pa bi.
Pa če kdo dobi podjetniško idejo v tej temi in obogati, nimam nič proti.

Tatankas ::

in ti dejansko verjameš da bi to ljudje masovno uporabljali? frizerke upokojenci,etc. še večina itjevcev se nebi s tem ukvarjala...

Janez-22 ::

Moji družinski člani, vključno s taščo, bi. Ostali naj se pa sami odločijo. Mogoče bom pa naredil reklamo in biznis. Ampak mi je ljubše, če bi bila zadeva odptokodna.

A110 ::

Tisti ki vjrame v vse to jo že uporabljamo zdaj. Tisti ki pa misli da ga bo Hojs skozi kamero gledal ponoči pa nebi uporabljal niti čisto odprtokodne javne aplikacije. Večina tako sploh ne ve na kak način aplikacija deluje

Janez-22 ::

Jaz ne morem, ker nimam primernega telefona. Ne skrbi me Hojs, samo ne strinjam se z Googlovimi pogoji uporabe, zato ga pač nimam. Pa zakaj bi tašči kupoval kompleksen in drag telefon?

pegasus ::

Ti si šele pri ideji, pri nas smo take naprave kupovali že marca. Malo si pozen...

A110 ::

Janez-22 je izjavil:

Jaz ne morem, ker nimam primernega telefona. Ne skrbi me Hojs, samo ne strinjam se z Googlovimi pogoji uporabe, zato ga pač nimam. Pa zakaj bi tašči kupoval kompleksen in drag telefon?


Saj to se vse strinjam. Ampak pri večini pa to ni ravno problem. Vecina ima vse pogoje pa aplikacije še vedno ne želijo uporabljati da Hojs/Janša nebi vedela kje so

Miki N ::

Hja pa bo taka napravica pri možeh postave veljala kot veljaven koronski "multipass"?

Ne če. Ko.


Posiljevanje s telefonskimi API je ravno zato, ker imaš to napravo itak vednos s sabo.

Janez-22 ::

pegasus, kakšna informacija, link?

A110, za večino se sekirajo komunisti (na nesrečo večine).
Jaz rabim zase in sprašujem, če še koga zanima.

To z možmi postave, je po vsej verjetnosti samo začasen odlok. Treba je vsaj razčistiti, če je obstoječa aplikacija zares odprotkodna.

Zgodovina sprememb…

  • spremenilo: Janez-22 ()

Janez-22 ::

Nisem še obupal nad svojo idejo. Niti si ne delam kakšnih utvar v zvezi z odprtokodnimi projekti. Zakaj bi se kdo ukvarjal, če je na voljo "zastonj" aplikacija.
Se mi zdi, da se odprtokodni projekti začnejo tako, da nekdo, malo trmast, želi narediti kakšno stvar malo po svoje. Če je dovolj vztrajen in temeljit, projekt zaživi in se pridružijo ostali.

Želim si torej lastno aplikacijo, ki je kompatibilna z #OstaniZdrav.
Nima telefona z Googlom ali Applom, ker sem trmast in ne sprejmem pogojev uporabe. Sem pa vseeno tehnološki navdušenec in imam na mojem "pametnem" telefonu naložen Sailfish OS. (To se včasih komu zdi tako čudno, da se počutim, kot da sem z drugega vesolja.) Kakorkoli, operacijski sistem je lep, ravno prav funkcionalen, v slovenščini, skoraj odprtokoden, osnova je navaden Linux in ima tudi podporo za Android aplikacije. Treba ga je kupit, ampak to se mi zdi normalno.

Samo ne morem naložit #OstaniZdrav aplikacije, ki je samo na Google Playu. Poleg tega mi ne dela niti nemška aplikacija, dostopna tudi na F-Droidu. Problem nemške aplikacije je, da je pisana samo za Apple/Google "Exposure Notification API".

Seveda se je našel nekdo in je za Sailfish OS spisal aplikacijo na temelju nemške. Ta na mojem telefonu deluje, vsaj tako izgleda. Ta aplikacija je še bolj zanimiva, ker vsebuje lastno izvedbo Apple/Google API-ja.
The libcontrac library is an implementation of the crypto portion of the Apple/Google Exposure Notification API (once upn a time referred to as the Contract Tracing API). It uses OpenSSL but has otherwise fairly light dependencies, and so should be compatible across a range of platforms.


Ker ima Sailfish OS v osnovi Linux, bi bila mogoče ta aplikacija dobra osnova, ki bi jo bilo mogoče poganjati na Raspberry-PIju. Vsekakor pa na nekem prenosniku z Linuxom, katerega bi lahko dal v nahrbtnik in se sprehodil naokoli. Malo iz firbca, če ne drugega. Mislim tudi, da kasneje, če bi koga mikalo, ne bi bilo nemogoče spraviti tisto "libcontrac" v kakšen mikrokontroler.

Če ima kdo še kakšno zanimivo informacijo, bi bil vesel.

Gejspodar ::

Tvoja gonja ni smiselna. Verjetno sam razumeš zakaj.

silon42 ::

Huawei je napisal svojo implementacijo, ker ne more Googlove uporabljat (API zal ni kompatibilen, BT protol pa naj bi bil)... je primer da se verjetno da integrirat na BT nivoju... ce je protokol cisto javen pa se nisem raziskoval... zaenkrat se nimam Linux telefona da bi to rabil.

LightBit ::

@Janez-22 Ali bi zadeva delala tudi na Androidu?
Ideja se mi zdi zanimiva.

Furbo ::

Zadeva je itak samo blažev žegen, zakaj bi se trudil s tem?
i5-13600K, STRIX Z790-F, 32GB DDR5, 2TB Samsung 990PRO, Toughpower GF3 1000W
RTX3070, ALIENWARE AW3821DW, DELL U3014

Alec999 ::

Janez-22 aplikacijo dobiš tudi na APKpure

styrian ::

Preden boš ti to razvil, bo populacija že precepljena in covid ne bo problem.

LightBit ::

Pa za naslednjo pandemijo. Sicer ne vem, če se bodo vsi želeli cepiti.

Janez-22 ::

LightBit je izjavil:

@Janez-22 Ali bi zadeva delala tudi na Androidu?
Ideja se mi zdi zanimiva.

Androida ne poznam. Ne vem, kako/če omogoča direkten dostop do bluetootha. Ne vem, če android ima openSSL knjižnico. (Govorim o libcontrac, ki je spisana za SailfishOS)

Na Androidu bi bilo mogoče zanimivo preizkusiti Corona Tracing s F-Droida:
This is a fork of the official German Corona-Warn-App (CWA) without proprietary dependencies. While the app itself is Free Software, it depends on Google's proprietary Exposure Notification Framework.

Naslednje vprašanje je, kako bi se ta aplikacija povezala s slovenskimi serverji. Nekdo na tem forumu jih je naštel, tu je cel komentar:

Pimoz je izjavil:

Ne, prek checksuma ne boste izvedeli ničesar. Edina pot vam je decompile in ročno pregledovanje, če počno kaj nenavadnega.
V info: uporabljajo tri docker containerje za posamezne service:
- https://verification.cwa.gov.si
- https://submission.cwa.gov.si
- https://svc90.cwa.gov.si

Nekaj dokumentacije je tukaj:
https://www.gov.si/assets/ministrstva/M...

Zanimiva vrstica je:
Opomba: pri naši postavitvi bosta združena Verification server in Portal server. Več informacij najdete na povezavi: https://github.com/corona-warn-app

In pa ne bi stavil glave da tegale niso spremenili:
https://github.com/corona-warn-app/cwa-...


Jaz na moji aplikaciji za Sailfish OS lahko nastavljam serverje, samo povezava na naše ne deluje, na nemške pa. Mogoče je problem v verzijah, mogoče v kakšnih nastavitvah, nisem raziskoval. Če vlada pravi, da je aplikacija odprtokodna, bi bilo tole treba razčistiti.

Janez-22 ::

Alec999 je izjavil:

Janez-22 aplikacijo dobiš tudi na APKpure


Hvala za informacijo. #OstaniZdrav sem sedaj našel tudi na Aptoidu. Sem se moral malo potrudit, ker Aptoide privzeto ne prikazuje nekompatibilnih aplikacij. Uspelo mi jo je inštalirat na Sailfish OS, ki ima podporo za android, ampak:
Your Corona-Warn-App is correctly installed, but the "COVID-19 exposure notifications" service is not available on your smartphone's operating system. This means that you cannot use the Corona-Warn-App.


Aplikacijo imam instalirano, za policiste bi mogoče bilo v redu, edino na zaslonu aplikacije mi piše: "EXPOSURE LOGGING STOPPED".

Janez-22 ::

silon42 je izjavil:

Huawei je napisal svojo implementacijo, ker ne more Googlove uporabljat (API zal ni kompatibilen, BT protol pa naj bi bil)... je primer da se verjetno da integrirat na BT nivoju... ce je protokol cisto javen pa se nisem raziskoval... zaenkrat se nimam Linux telefona da bi to rabil.

Ne vem, če mi je Huawei alternativa Googlu.
Pred kratkim mi je nekdo poceni prodal njihovo uro, ki naj bi beležila neke biometrične podatke, spalne navade, itd. Napolnim in ura prikaže ikonco za bluetooth. Če hočem, da ura sploh prikaže kaj drugega, kot to ikonco, moram instalirat Huavejevo aplikacijo za zdravje, 100MB. Grem instalirat. Takoj na prvi strani v slovenščini piše, de se moram strinjat, da grejo vsi moji biometrični podatki k Huaveju. To pomeni, da prečiščene podatke o neki populaciji dobi kitajska komunistična partija, če želi.
Ok, grem naprej. Aplikacija želi moj email, uspem ji podtakniti enega na hitro ustvarjenega. Potem hoče mojo telefonsko, ki mora biti potrjena s povratnim SMS-om. Tu se je ustavilo, ker nisem našel neke javne telefonske številke za SMS, ki ne bi bila že porabljena.

Nekako imam predsodke proti tej druščini. Ljudje so pa tudi že čisto otopeli od stalnega pritiskanja tistega gumba "I Agree". Kao, da itak vsi tako delajo. Hvalabogu imamo na zahodu kar nekaj bolj svobodne alternative.

Alec999 ::

Beleženje izpostavljenosti omejeno, napiše pri meni, če imam izklopljen BlueTooth.

Janez-22 ::

Moj telefon, ki nima androida, ima Saifish OS. To je čisto nekaj drugega. In Sailfish OS (zaenkrat) nima Google API-ja, katerega uporablja aplikacija #OstaniZdrav.

val46 ::

In ti resnično misliš, da bo kitajsko komunistično partijo, ali morda koga na googlu ali applu res zanimalo, kaj počne en janez v sloveniji? Ja, morda če se piše Janša, drugače pa dvomim...:))

Janez-22 ::

val46 je izjavil:

In ti resnično misliš, da bo kitajsko komunistično partijo, ali morda koga na googlu ali applu res zanimalo, kaj počne en janez v sloveniji? Ja, morda če se piše Janša, drugače pa dvomim...:))

Briga njih zame. Napisal sem: "prečiščene podatke o neki populaciji dobi kitajska komunistična partija".

val46 ::

Ja in? Kaj si naj bi ta komunistična partija kitajske pomagala s temi podatki? Teh par 100 slovencev ki ima huawei(pa še to sam zadnje modele, prej so tudi huawei uporabljali googlov android) je za njih kaj? Jih zanima verjetno koliko m prehodijo na dan? kako spijo ponoči? kolk krat na teden obiščejo slotech forum na teden? Kaj tretjega? Razumem da se nočeš razdajat in kazat vsem svojih navad in običajev, ampak, če nisi nek terorist, kriminalec ali pa na res neki visoki poziciji v politiki in če ravno ne preveč odstopaš od nekih splošno sprejetih družbenih norm, se nimaš kaj bat in sekirat. Zdej, če nekoga zanima da sm jst bil v trgovini zadnja dva meseca 2x več ali manj kot je navada povrpečnega slovenca, pa naj ga. Jaz se s tem ne obremenjujem.

r3dkv1c4 ::

A110 je izjavil:

Tisti ki vjrame v vse to jo že uporabljamo zdaj. Tisti ki pa misli da ga bo Hojs skozi kamero gledal ponoči pa nebi uporabljal niti čisto odprtokodne javne aplikacije. Večina tako sploh ne ve na kak način aplikacija deluje

Ti verjameš bučam, izključno zato imaš app na telefonu.
Vsaka stvar ima svojo mejo.

You can ban me, but you can't shut me down!

Janez-22 ::

Tole s Huawejem je malo off-topic, pa ne čisto. V osnovi je šlo za tole informacijo:

silon42 je izjavil:

Huawei je napisal svojo implementacijo, ker ne more Googlove uporabljat (API zal ni kompatibilen, BT protol pa naj bi bil)... je primer da se verjetno da integrirat na BT nivoju... ce je protokol cisto javen pa se nisem raziskoval... zaenkrat se nimam Linux telefona da bi to rabil.


Jaz k Huaveju ne grem niti gledat, ker pri takih še nisem videl uporabne odprte kode.
Potem sem opisal, kaj sem počel s Huawejevo uro. Tista ura rabi aplikacijo Huawei Health, ki deluje na vseh telefonih, ne samo na Huawejevih. In za moje pojme je popolnoma nesprejemljiva. Zakaj se Kitajci tako agresivno trudijo spremljati zdravje ne tako majhnega števila uporabnikov njihovih ur?

Val46, če malo pogledaš ne tako davno zgodovino, ni tako nedolžno, če ima nek sporen političen sistem takšno moč.

val46 ::

Spet, o kakšni moči ti govoriš? O tem da vedo, da povprečen europejc ali zahodnjak, če tako hočeš, spi med 7 in 8h dnevno? Da spet ta povprečen zahodnjak prehodi okrog 8 do 10 tisoč korakov na dan? ali da mu srce bije z 72imi udarci na minuto? Te morda skrbi, da bo en kitajc vedu, da si bil ti v zadnjem mesecu 2x v mercatorju in 3x v lidlu? Morda enkrat peš na Šmarni Gori? Mislim, res ne vem kaj se bojiš in kaj si lahko s temi podatki pomagajo? A misliš da če imajo namen napasti slovenijo, jo bodo napadli takrat, ko jim bo Huawei reku, da dajmo jo okrog 3h zjutraj, ker takrat največ slovencev spi? No, vsaj tisti slovenci, ki uporabljajo njihov APP...

Zdej pa, da ne bom sam rabil gledat, že ko si napisal,...povej oz. daj kak konkreten primer, še raje link, da vidimo kakšno moč ima lahko bilokateri političen sistem, če bo vedu, kdaj jst spim, kolk prehodim itd.

Janez-22 ::

Imaš pravico do svojega mnenja.

Janez-22 ::

Kakšno moč ima političen sistem, da se odloči človek, kot je Jack Ma, izginiti? Ali pa so se odločili drugi, ne vem.
val46, raziskuj sam, jaz se s tem ne ukvarjam preveč, ker se nerad ukvarjam s stvarmi na katere nimam vpliva. Tudi nimam težav z razumevanjem sveta okoli sebe. Če že, si preberem kaj verodostojnega in trajnejšega in izogibam se življenju v mehurčkih, pa naj bodo levi, desni, googlovi, kitajski ali karkoli že.

Tu je tema o neodvisni napravi za kovid sledilnik. kot sem že omenil, nimam veliko časa in se s tem zaenkrat ne nameravam ukvarjat. Sem pa nekaj malega raziskoval, zato bom opisal nekaj zaključkov in idej, do katerih sem prišel.

Projekt ne bi bil tako grozno zahteven, da ga ne bi mogel izpeljati nekoliko bolj sposoben srednješolec, vsaj z delnimi rezultati. Standardi so odprti, koda tudi, posebnih stroškov ni, razen investicije v znanje in izkušnje.

Če že naprava, kot je poceni korona sledilnik, ne bi uspela, bi ostalo vsaj znanje in izkušnje. Če je izbira med tem in pa neproduktivnim sedenjem na kavču, potem prvo hitreje omogoči kakšno žurko v Mehiki. (Ne morem, da ne bi malo provociral, nekatere to tukaj bolj rajca kot pa suhoparna tehnika.)

----

PRINCIP DELOVANJA KORONA SLEDILNIKA

Povezava https://www.flypig.co.uk/contrac vsebuje ogromno zanimivih informacij, vključno s kodo.

Tudi na Slo-Techu je bilo že kar nekaj napisanega:
Aplikacija vsakih 24 ur generira naključni dnevni ključ (TEK - Temporary Exposure Key), ki se hrani v telefonu 14 dni. Vsakih 15 minut nato aplikacija s pomočjo kriptografskih algoritmov zgenerira tim. oddajno kodo RPI (Rolling Proximity Identifyer), ki se nato izmenjuje med mobilnimi telefoni preko Bluetootha. Oddajne kode drugih telefonov v bližini, ki jih aplikacija zazna, se ne pošiljajo nikamor, pač pa ostanejo shranjene v aplikaciji. Evidenca stikov se sicer iz telefona samodejno pobriše v 14 dneh.


Nisem 100% preveril, ampak:
    RPI ključi se izmenjujejo in dveh RPI ključev ni možno med sabo povezati, ker so šifrirani. Dnevnih TEK ključev tudi ni možno povezati med sabo in ostajajo 14 dni na telefonu, razen če zbolimo in se jih odločimo prenesti na državni strežnik.

    Ta funkcionalnost deluje na Android in Apple telefonih in kolikor vem, deluje brez katerekoli aplikacije. Se pravi, da ko aplikacijo naložimo, imamo že 14 dni zgodovine. Kar zna biti koristno.

    Kolikor vem, če bi nekdo dostopal do TEK in RPI ključev na dveh telefonih, bi lahko vedel da sta bila v stiku in kdaj. Za "kdaj" nisem čisto prepričan, ker ne vem, če Android omogoča branje časovne značke na ključih. Prosim, ne delat tukaj teorij zarot.



ŠIFRIRNI ALGORITEM Google/Apple oz. Linux alternativa

Izvedba šifrirnega algoritma in shrambe za ključe je libcontrac s te spletne strani. Ta Linux knjižnica pripravi/sprejema ključe, ki se izmenjujejo preko bluetootha. (Bluetooth ni del knjižnice.) Knjižnica tudi preveri ujemanja.

Se mi zdi, da je bila knjižnica "libcontrac" narejena bolj kot prototip za aplikacijo "harbour-contrac", je pa precej dobro narejena in dokumentirana. Takole sem jo namestil na Ubuntu. (Če kdo nima pojma o Linuxu, pa bi rad začel, predlagam tole Izobraževanje.)

sudo apt install libssl-dev check # mogoče pri kom še kaj manjka
git clone https://github.com/llewelld/libcontrac.git
cd libcontrac
autoreconf --install
./configure
make
sudo make install
sudo ln -s /usr/local/include/libcontrac /usr/local/include/contrac


Kratek programček, ki zgenerira RPI ključe, ki bi jih lahko oddajala enostavna Bluetooth naprava (datoteka generateRPI.c):
#include <stddef.h>
#include <stdio.h>

#include "libcontrac/contrac.h"
#include "libcontrac/dtk_list.h"
#include "libcontrac/rpi_list.h"
#include "libcontrac/match.h"

int main(void) {
    // API: https://www.flypig.co.uk/docs/libcontrac/
    Contrac *contrac = contrac_new();
    contrac_generate_tracing_key(contrac);
    contrac_update_current_time(contrac);

    unsigned char const *tk = contrac_get_tracing_key(contrac);
    printf("Dnevni ključ TEK:\n");
    for (int i = 0; i < TK_SIZE; i++) printf("%02X ", tk[i]);

    printf("\n\nRPI ključi za vsakih 10 minut:\n");
    for (uint8_t n = 0; n < 144; n++) {
        contrac_set_time_interval_number(contrac, n);
        unsigned char const *rpi = contrac_get_proximity_id(contrac);
        for (int i = 0; i < RPI_SIZE; i++) printf("%02X ", rpi[i]);
        printf("\n");
    }
}


Prevod in zagon:
export LD_LIBRARY_PATH=/usr/local/lib
gcc generateRPI.c -o generateRPI -lcontrac
./generateRPI


Rezultat:
Dnevni ključ TEK:
0C DC 16 DA 42 4E CB 74 76 23 B8 28 1A 32 56 37 2A 4A 9C 50 6A 31 7C EE FE 8D DC A2 52 CF A5 7C

RPI ključi za vsakih 10 minut:
F3 C8 35 58 25 FF 03 5F F5 66 85 DB D2 EC 0F 7A
05 53 1E 67 C6 1E D0 2F EF 8E 3E FF 9C 87 FB 8F
C8 DB A8 1E FA 36 FB 2A 46 9A 81 8D 9F 2E DC B9
...



PREPROSTA BLUETOOTH NAPRAVA
Potreben bi bil modulček z enostavnim in varčnim mikrokontrolerjem in Bluetooth Low Energy (BLE) modulom. Vanj bi dnevno naložil zgoraj generirane RPI ključe in z njega pobral RPI ključe seznanjenih naprav.

Na Linux prenosniku, ki ima BLE modul (prenosnik ne sme biti prestar), se da snifati z ukazom "bluetoothctl".

Jaz se z bluetoothom nisem dosti ukvarjal in se zaenkrat ne nameravam, tako da z mojo idejo tukaj zaključujem. Če bi imel čas, bi najbrž nadaljeval.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

OstaniZdrav - slovenska aplikacija za sledenje stikom (strani: 1 2 3 )

Oddelek: Novice / Varnost
11524648 (12933) DeeJay
»

MJU objavil popravljeno izvorno kodo #OstaniZdrav (strani: 1 2 3 )

Oddelek: Novice / NWO
10322228 (11261) gregyk
»

Korona aplikacija - na Huawei brez googla

Oddelek: Mobilne tehnologije
151187 (653) shadeX
»

OstaniZdrav - slovenska aplikacija za sledenje stikom (II) (strani: 1 2 3 4 5 6 7 8 )

Oddelek: Novice / Zasebnost
36445665 (30597) darkolord

Več podobnih tem