Kazalo vsebine
Najpomembnejše vnaprej: omrežje je zdržalo. Tri dni so koroško omrežje MeshCore preplavljali s spamom in lažnimi vozlišči, pa je delovalo naprej. Vidim to kot test, ki ga nikoli ne bi naročil in ki ga je omrežje kljub temu prestalo. Tukaj pripovedujem, kaj se je zgodilo, z mojega zornega kota enega od operaterjev.
Malo pred osmo v torek zvečer
10. novembra ob 19:37 se je začelo. V koroškem omrežju MeshCore so se pojavila sporočila, ki jih noben človek ne more tako hitro natipkati: na javnem kanalu in na štirih kanalih s hashtagom, na višku 19 na minuto, torej eno vsake tri sekunde. Do 00:35 jih je bilo 471, od devetih stalnih imen naprav.
Potem je bil mir. Čez noč in dopoldne je omrežje delovalo, kot da se ni nič zgodilo.
V sredo ob 17:12 se je spet začelo, tokrat s trikom. Ime naprave se je spremenilo po vsakem posameznem sporočilu. V dobrih dveh urah, do 19:16, je prišlo 377 sporočil pod 261 različnimi imeni, iz samo sedmih osnovnih imen, s 116 do 163 novimi imeni na uro. Kdor bi to rad skril, z blokirnim seznamom ne pride daleč.
Tega ni opazil le eden. Opazilo je vse omrežje. Kdor je imel odprt javni kanal, je videl, kako sporočila drvijo mimo.
Vsi časi v besedilu so v SEČ (srednjeevropskem času), grafika spodaj je v UTC. Številke izvirajo iz paketov javnega zemljevida in so izračunane, ne izmerjene na radijski zvezi.
Kaj Repeater vidi in česa ne
Zakaj se je proti temu tako težko braniti? Ker MeshCore Repeater ne ve skoraj nič.
Sporočilo na kanalu je šifrirano. Repeater vidi glavo paketa, dosedanjo pot in hash kanala. Vsebine, imena in pošiljatelja ne vidi. Paket posreduje naprej kot vsak drug.
Temu posredovanju pravimo Flood: vsak Repeater v dosegu paket ponovi, njegovi sosedi ga ponovijo spet, dokler ni povsod. Zaradi tega je omrežje brez stalnih poti robustno. Zaradi tega je tudi ranljivo. Pri radijskih parametrih omrežja CarinthiaMesh (SF8, 62,5 kHz, CR8) paket z okoli 109 bajti zasede približno eno sekundo oddajnega časa na posredovanje, vsako od teh pa plačajo vsi v dosegu z zasedenim zrakom.
Koliko je bilo v resnici?

Običajen dan v omrežju izgleda takole: v povprečju okoli 180 paketov Flood na uro. Na višku prvega vala (noč na 11. 11., od 00 do 01) jih je bilo 390, od tega 243 od pošiljatelja, torej 62 odstotkov. Na višku drugega vala (11. 11., od 18 do 19) jih je bilo 348, od tega 200 ali 57 odstotkov.
Obremenitev Repeaterjev se je s tem približno podvojila, omrežje pa je to zlahka zdržalo: običajni promet na kanalih je tekel naprej, vseh šest Observerjev je ostalo aktivnih in omrežje je ostalo uporabno. Kot stresni test je bil to dober znak.
Še nekaj je bilo opazno v poteh drugega vala. Noben Observer ni slišal paketa z manj kot dvema Hopoma. V 40 odstotkih poti je isti Repeater stal dvakrat, pri preostalem prometu je to 13 odstotkov. In prvi Hopi so se enakomerno porazdelili med številne Repeaterje po vsej Koroški. To izgleda kot vnaprej vpisane, ponarejene poti. Operater v skupini je videl enako: pošiljatelj v glavo vpiše nekaj navideznih Hopov, da bi zmedel. Za lociranje so te poti zato brez vrednosti.
Večer v skupini
Medtem ko je tekel drugi val, se je v skupini Kärnten Funkt MeshCore dogajalo to, kar se v takih trenutkih vedno dogaja: najprej jeza, nato ideje, nato delo.
Jeza je bila resnična. Eden je menil, da se je ob tem, če bo šlo tako naprej, nesmiselno ukvarjati z vajami. Drugi je predlagal, naj kar po vsej deželi ugasnemo Repeaterje, da pošiljatelju mine veselje.
Nato je postalo konkretno in skupina je razjasnila nekaj stvari, ki bi jih moral vedeti vsak začetnik:
- Blokiranje v lastnem odjemalcu počisti samo lasten prikaz. Paketi tečejo naprej po omrežju in jedo oddajni čas. In ker se ime nenehno spreminja, ni ničesar, po čemer bi lahko filtrirali.
- Pošiljatelja ni mogoče blokirati. Mogoče je le ločiti od omrežja mesta, prek katerih vstopa. Potem pa so ven vsi drugi prav tako.
- Ugasniti ne pomeni izklopiti. Mišljeno je izklopiti posredovanje (
set repeat off). Repeater ostane dosegljiv, le ničesar več ne nosi po omrežju. Tudi to je bilo na kratko pojasnjeno, da vsi počnemo isto.
Nato se je ukrepalo. Najprej je posredovanje prenehalo na enem vstopu v okolici Spittala. Nato sem ga na Dobratschu izklopil jaz, ki je razdelilna točka med južno in zahodno Koroško ter ostalim, nazadnje pa je prenehalo na Koralpi na vzhodu, da poplava ne steče prek Lavanttalske veje naprej v Avstrijo. Eden od operaterjev je svoj Repeater za vso noč odklopil z omrežja. Kmalu po izklopu je bil mir, ali je bilo to naključje ali učinek, ne vemo. In mir ni trajal: pozneje zvečer so operaterji javili, da se je spet začelo. Ta faza ni vključena v številke tega članka.
Vsi Repeaterji so potem spet začeli delovati. Kdor izklopi na vstopu, vsem drugim vzame pot v omrežje, to je cena. Načrt, ki je nastal iz tega tehtanja, je v wikiju: wiki.carinthiamesh.com/flood-abwehr (prepoznavanje zank, omejitev Hopov, duty cycle, zasilno stikalo, iskanje pošiljatelja).
Detektivi z omejitvami
Vzporedno so operaterji začeli ožiti krog okoli pošiljatelja. Dva sta se povezala. Eden je od večera beležil vsak paket z vsemi metapodatki in podatke ponudil vsem, ki so hoteli z njimi narediti lastne analize. Drugi so razmišljali o določanju smeri s SDR in usmerjeno anteno za 869 MHz.
Potem je prišlo vprašanje, ali je iz moči sprejema mogoče razbrati razdaljo. Odgovor skupine: ne zanesljivo. Razmerje signal/šum je odvisno tudi od lokalnega šuma, boljša vrednost bi bila moč sprejema (RSSI). Operater je en dan izmeril Repeater na 18 kilometrih močneje kot enega na 8 kilometrih, oba s prosto vidljivostjo. Drugi so poročali o Repeaterjih, ki jih kljub majhni razdalji ni slišati, ker je na poti hrib, in o poteh, v katerih so se pojavili Repeaterji, ki se pravzaprav sploh ne bi smeli slišati. To se ujema s tem, kar že sumimo: pot je bila najbrž ponarejena. Triangulacija, tako zaključek, je težja, kot smo mislili.
Kdo je to, zato ne vemo.
Tretja noč: napis na zemljevidu
Potem je prišel četrtek in z njim presenečenje, ki z jemanjem sporočil ni imelo nič. V noči na 12. november je bilo na zemljevidu nenadoma videti 190 novih vozlišč, katerih položaji so skupaj sestavljali napis severno od Koroške.
Dejstva o tem: od 01:39 do 02:06, okoli 27 minut, je prispelo 356 paketov Advert, do 24 na minuto, pod 190 različnimi imeni. 90 imen se je pojavilo z enim samim Advertom, preostala z dvema do petimi. Paketi so tekli kot običajni Flood prek vseh Repeaterjev, v povprečju dolgi 124 bajtov, in pet Observerjev jih je slišalo. Potem ni prišlo nič več.
Škoda: zemljevid je popačen, dokler vozlišča po sedmih dneh ne izpadejo. Radijskemu prometu skoraj ni škodovalo, 356 paketov v pol ure omrežje prenese. Ali za tem stoji isti pošiljatelj kot pri poplavah sporočil, ostaja odprto.
Je pošiljatelj kršil pravila?
V skupini je nekdo vprašal, ali je pošiljatelj s tem kršil pravila. Za to je treba vedeti, kaj sploh velja v našem pasu.
MeshCore v Evropi deluje v pasu 869 MHz, pasu za naprave kratkega dosega (Short Range Devices). Uporabljati ga je dovoljeno brez licence, vendar ne brez pogojev. Avstrija se za to v avstrijski uredbi o uporabi frekvenc 2013 (FNV 2013) sklicuje na odločbo EU 2006/771/ES o napravah kratkega dosega. Za območje od 869,4 do 869,65 MHz tam velja: največ 500 mW oddajne moči (ERP, efektivna sevana moč) in bodisi tehnike za dostop do frekvence in zmanjševanje motenj bodisi delovni cikel največ 10 odstotkov. Uredba take zahteve navaja v stolpcu "pogoji uporabe".
Delovni cikel, po angleško duty cycle, je delež časa, v katerem posamezna naprava dejansko oddaja, merjeno čez neprekinjeno uro. 10 odstotkov ure je 360 sekund oddajnega časa. Pri naših radijskih parametrih in približno eni sekundi na paket je to okoli 360 paketov na uro in napravo.
Kaj to pomeni v praksi:
- Šteje vsota čez uro, ne hitrost. Kdor kratek čas oddaja zelo hitro in nato dolgo miruje, lahko ostane znotraj meje.
- Meja velja za vsako oddajno napravo posebej, tudi za Repeaterje. Tudi posredovani paketi štejejo kot oddajni čas.
- Meja ureja oddajni čas, ne vsebine. Spam je lahko znotraj meje in je vseeno nadležen.
- Šele kdor preseže 10 odstotkov, krši pogoje uporabe pasu. Pod tem je nezaželeno, a ni kršitev pravil.
Zdaj k računu. Računamo s paketi, ki so jih slišali naši Observerji, in z 1,0 do 1,17 sekunde oddajnega časa na paket. Meja je 10 odstotkov na uro, torej 360 sekund. Kot pošiljatelja predpostavimo eno samo napravo. Sumimo, da je za tem res stala samo ena, dokazati pa tega ne moremo.
- Val 1: v najbolj obremenjeni uri 243 paketov, približno 243 sekund oddajnega časa, torej približno 6,8 odstotka.
- Val 2: v najbolj obremenjeni uri 200 paketov, približno 200 sekund, torej približno 5,6 odstotka.
- Adverti tretje noči: 356 paketov v 27 minutah, približno 404 do 416 sekund, torej približno 11 odstotkov ure, v najhujših desetih minutah celo okoli 37 odstotkov oddajnega časa.
To je ocena, ne meritev: paketi, ki jih noben Observer ni slišal, manjkajo, resnični oddajni čas je torej lahko višji. Če je oddajalo več naprav, je bila vsaka posamezna pod mejo. Obe poplavi sporočil sta tako ostali pod 10 odstotki. Adverti so bili nad mejo, če jih je oddajala ena sama naprava.
Moj sklep: omrežje Repeaterjev mora svojo odpornost ustvariti samo. Urad pri tem komaj bo pomagal, razen če postane vprašanje uporabe frekvenc.
Kdo bere z nami in kdo obtožuje
Več operaterjev je imelo občutek, da pošiljatelj bere z nami v skupini na Telegramu. Dokazati tega ne more nihče, v odprti skupini pa tako ali tako nikogar ni mogoče izključiti.
Tu mi je pomembna ena točka: obtoževanja, neposredna ali posredna, nimajo mesta niti v mesh omrežju niti v skupini. Vsak si lahko da katero koli ime naprave. Ime ne pove ničesar o tistem, ki stoji za njim.
Na javnem kanalu se je med drugim valom kljub temu zgodilo. Tam se je ugibalo, kdo stoji za sporočili, in skupino koroških radioamaterjev se je obtožilo pavšalno, zaradi naprave, za katero bi po imenu lahko stal radioamater. Kdo v resnici stoji za tem in ali ima kaj opraviti s poplavo, ne more reči nihče.
Pozneje so se v skupini spet pojavili namigi, tudi tu brez dokaza. Moj vtis je, da prihajajo od istega glasu.
Mislim, da je možno, da je ravno to cilj. Poplava, ki operaterje nahuska drug proti drugemu, škoduje bolj kot ta, ki samo požre oddajni čas.
In v primeru nesreče?
Vprašanje, ki se je v skupini po poplavi najglasneje postavljalo, je najbolj neprijetno. Operater je opozoril, da je MeshCore prej omrežje za prebivalstvo kot za reševalne službe. Če odpove mobilno omrežje, tako strah, število sporočil nenadoma naraste in omrežje je obremenjeno, povsem brez slabega namena.
Od 13. do 15. novembra na Koroškem poteka vaja zaščite pred nesrečami Combined Success, ki jo dežela Koroška in zvezna vojska prirejata od leta 2009. Kolikor vem, tokrat odigrava potres, radioamaterji pa posredujejo poročila na 2 m in 70 cm. MeshCore za zdaj ni predviden. Pri udeležencih sem se pozanimal in predlagal, naj ga v prihodnje upoštevajo.
Zame iz tega sledi: v omrežju bi morali vaditi, kako se v primeru nesreče oddaja, z določenimi kanali in jasnimi dogovori. Predlog iz skupine: z Repeaterjev odstraniti široke Scope (*, Evropa, Avstrija) in delovati samo lokalno. Uporabil bi ga, takoj ko bi spet kaj nihalo. Uskladiti to na vseh Repeaterjih je pravo delo, in prav to bi morali vaditi, namesto da se tega učimo v primeru nesreče.
Test in kaj je pokazal

Te tri dni vidim kot test in končal se je dobro. Poplavo, lažna vozlišča in ponarejene poti je omrežje zlahka zdržalo, ostali promet je tekel naprej. Vsaj tako pomembno kot tehnika je bilo to, kar se je zgodilo med nami uporabniki MeshCore: hitro smo se uskladili, ne da bi moral kdo odločati. Ob koncu teh dni je eden od nas ugotovil, da držimo skupaj in sodelujemo. Temu je malo dodati. Pri nas sodeluje vsak, ki ima napravo, v društvu ali zasebno, in to je pravi obrambni zid. Sama tehnika bi tu pomagala malo.
Test je pokazal tudi, na čem bi morali delati: enotna minimalna obramba na vseh Repeaterjih, vadeni postopek za primer nesreče in več Observerjev, ki delijo podatke.
In sredi vznemirjenja je v četrtek opoldne prišlo vprašanje iz skupine, ki je zvenelo povsem drugače: kaj menimo o Repeaterju pri Feldkirchnu, z neposredno vidljivostjo proti Magdalensbergu in navzgor proti Ossiachu? Odgovoril sem: dobra ideja, in vprašal, ali za to že obstaja lokacija ali je za zdaj samo ideja, in kaj bi bilo treba od opreme.
Omrežje raste naprej.
Kaj lahko odnesemo
Postopek ob napadu v šestih korakih
- Stanje dokazati s štetji, brez vsebine sporočil.
- Obvestiti operaterje in začasno ničesar ne spreminjati.
- Minimalna obramba enotno na vseh Repeaterjih.
- Vstop časovno omejeno izklopiti (
set repeat off), če je treba. - Zožiti vir, nagovoriti namesto pribiti na steber sramote.
- Nato dokumentirati.
Kaj deluje in kaj ne
- Zasebni kanal ščiti vsebino, ne pa pred poplavo.
- Scope razvršča, vendar ne ščiti, ker je kodo mogoče izračunati iz imena regije.
- Poti in moči sprejema so za lociranje samo namig, ne sled, še posebej ne pri ponarejenih glavah.
- Učinkovit je samo ukrep, ki omeji količino in doseg paketov Flood. V primeru nesreče je to časovno omejen izklop posredovanja na vstopni točki, s ceno, da vsi drugi tam ostanejo zunaj.
Poziv
- Drugih imen ne brati kot razlog za sum in nikjer ne obtoževati brez dokaza.
- Omrežje ne pripada nikomur samemu. Živi od dogovorov skupnosti, na primer pri poimenovanju naprav. Kdor sodeluje, jih spoštuje in omrežja ne prikazuje kot svojega.
- Repeaterje konfigurirati enotno in stanje strojne programske opreme držati vidno.
- Upravljati lastne Observerje in deliti podatke: kdor beleži pakete, lahko pozneje dokaže, kaj se je zgodilo.
- Kdor se drži oddajne moči in duty cycla, ravna znotraj pravil, pa lahko omrežje kljub temu trpi. Zato so potrebni dogovori.
73, Michi OE8YML
Opomba o transparentnosti
Ta članek sem napisal in preveril s podporo umetne inteligence (Claude, Anthropic) na podlagi mojih analiz in opažanj iz skupine operaterjev. Vse številke so izračunane iz paketov javnega zemljevida (map.carinthiamesh.com), ne izmerjene na radijski zvezi, oddajni časi so ocene ob navedenih predpostavkah. Prispevek ne vsebuje vsebin sporočil, ključev ali položajev zasebnih oseb. Kdo stoji za sporočili in lažnimi vozlišči, ni znano. Obe naslovni sliki je ustvarila umetna inteligenca in sta samo za ilustracijo. Popravke in dopolnitve z veseljem sprejmem na [email protected].





