Skip to content

Suhtlus- ja koostöövõrk Matrix 2021. aasta alguses

Matrix teatavasti on avatud protokollil ning vabal tarkvaral põhinev suhtlus- ja koostöövõrgustik, kus kasutajad ise määravad, kus ja kuidas nende andmeid hoitakse ning teenuseid hallatakse.

Väga tehnilises mõttes on tegemist hajutatud ja replikeeritud andmebaasiga (andmeid ja metateavet sünkroniseeritakse kõikide osapoolte vahel nii, et kõik osapooled jagavad sama olekut), mille levinuim kasutus on hetkel sõnumite saatmine, kuid see, mida teha saad, piirdub vaid sinu fantaasiaga. Praktikas on sõnumitele lisatud tava- ja videokõnesid, failide jagamist, vidinate kasutamist (vidin on olemuselt jututuppa lõimitud veebileht) ja eri sorti roboteid.

Serverid:

  • igaüks saab paigaldada oma Matrixi serveri ning kas seda teed oma serveriruumis oma raudvaral või kasutad VPS'i on eelistuste ja valikute küsimus
  • kui ise serverit hallata ei taha, siis võid oma konto(de) jaoks kasutada tasuta (näiteks app.element.io või chat.privacytools.io) või tasulist teenust (näiteks ems.element.io või matrix.zerocarbon.shop)
  • kui kasutad oma serverit, siis see on avatud suhtluseks muude Matrixi serveritega üle maailma (mingis mõttes sarnaselt e-postile), aga kui soovid, siis loomulikult saad välissuhtluse sulgeda ning kasutada vaid teda oma organisatsiooni või sõpruskonna jaoks
  • kui lisad oma Matrixi serveri kõrvale oma Jitsi serveri, siis saad kergesti teha oma privaatse sõnumi-, koostöö ja videokõnelahenduse
  • levinumal serveril (synapse) olemas on LDAP-i integratsioon (ei pea eri süsteemides haldama erinevaid kasutajate andmekogusid)
Kliendid:

  • levinuim ja parima funktsionaalsusega klient on Element - saadaval töölauarakendusena Windowsi, OS X ja Linuxi jaoks, mobiilirakendusena Androidi (Google Play ja F-Droid rakendusepoest) ja iOS jaoks ning veebirakendusena (brauseripõhisena)
  • ka Nheko ja FluffyChat on üsna täieliku funktsionaalsusega
  • lisaks Quaternion, NeoChat ja Fractal on aktiivselt arendamisel
  • erinevad kliendid on kasutajaliidese loomisel läinud erinevat teed ning tasub võrrelda, mis tundub sulle sobivaim
  • tervikuna on eesti keelde tõlgitud Element, Nheko ja FluffyChat
Sõnumisillad:

  • Matrix on algusest peale kavandatud avatud lahendusena ning olemas on sõnumisillad muude suhtlussüsteemidega
  • Element (endine New Vector) ehk firma, kes enamus Matrixi arendustöid on teinud, on valmistanud sõnumisillad IRC, Slack'i, Gitteri ja Rocket Chat'i jaoks
  • laiem arendajate kogukond on teinud lahendused Signal'i, Telegram'i, WhatsApp'i, XMPP, Mattermost'i, Discord'i, Facebook Messenger'i, SMS'i, e-kirjade ja paljude muude süsteemide liidestamiseks
Kasutus:

  • Matrixit on arendatud kuus aastat ning alates 2019. aastast võib öelda, et lahendus on produktsioonikindel
  • eelmine aasta nägi Matrixi kasutuselevõtmist mitmetes Euroopa riigisüsteemides (enamus Prantsusmaa riigiasutusi toimib nüüdseks ühtses Matrixi võrgus, Bundeswehr kolis kõik igapäevase 4/NR suhtluse Matrixisse) ja paarikümnes ülikoolis (Saksamaal, Rootsis, Hollandis) ning suurtes vaba tarkvara projektides (KDE ja Mozilla on üle kolinud ja Fedora, SUSE ning Gnome parasjagu testivad seda võimalust)
  • artikli kasutamise ajal on Matrixi võrgus 60000 serverit 27 miljoni kasutajaga
Turvalisus ja privaatsus:

  • Matrixi krüptograafia aluseks on Double Ratchet-protokoll, mille põhjal on tehtud libolm teek ning selle laiendus megolm
  • sama krüptoprotokolli kasutavad ka Signal, Whatsapp, Wire, kuid me ei saa eeldada, et kõikjal on sama teostus
  • Double Ratchet on põhjalikult auditeeritud ning loetakse turvaliseks
  • lisaks elementaarsele ühenduse krüptimisele võimaldab Matrixi spetsifikatsioon kasutada läbivat krüptimist (E2EE ehk end-to-end encryption) ja see tähendab, et ka serveri haldaja ei saa lugeda seda mis teavet osapooled vahetavad (näiteks Element'is loodud uued kahe osapoole vestlused kasutavad alati läbivat krüptimist ning rühmavestluste puhul saab seda alati sisse lülitada)
  • kui läbiv krüptimine on vestluse puhul kasutusele võetud, siis sellest loobuda enam ei saa
  • korra suletud kasutajakontot ei saa enam kasutusele võtta ega samasse serverisse uut sama kasutajat luua
  • lisaks krüptimisele võimaldavad Matrixi kliendid (Element, Nheko, FlyffyChat) ka osapooli verifitseerida - see tähendab, et kasutaja tuvastab kõik oma seadmed ja märgib nad usaldusväärseks (selleks on kasutusel mitu eri meetodit, kuid kõige lihtsam on ikoonikomplekti võrdlemine kahes eri seadmes), samamoodi kaks osapoolt saavad välises kanalis kokku, tuvastavad üksteist ning märgivad üksteist tunnustatuks (samaga tunnustades ka üksteise seadmeid)
  • kliendid kuvavad krüptimata ja verifitseerimata ühendusi selgelt eristatava ikooniga
  • Matrix+Jitsi kombinatsiooni kasutamisel videokõnedeks ei ole hetkel läbiv krüptimine kasutusel (puhtalt Jitsi kõnede puhul on see juba võimalik)
  • sinu Matrixi koduserverisse on võimalik konto juurde salvestada sinu e-posti aadressi ning see võimaldab vajadusel taastada ligipääsu kontole, kuid seda ei pea tegema (aga siis taga, et sul salasõna, salafraas ja salavõti kindlasti alles on)
  • Matrixi võrgus on võimalik kasutada isikutuvastusserverit - sisestades oma kasutajakonto juurde e-posti aadressi ja telefoninumbri saavad teised kasutajad sind nende alusel leida (kuid see ei ole kohustuslik) ning kui sa seda ka teed, siis hoitakse andmeid isikutuvastusserveris räsitud kujul ning otsingutes võrreldakse räsisid
  • sinu Matrixi koduserver logib metateavet ning osa metateavet on salvestatud ka andmebaasis - kui sa kasutad välist teenusepakkujat, siis pead arvestama nende kasutustingimustega, kuid oma serveri puhul saad ise määrata logide säilitamise aja
Muud olulised asjaolud:

  • esineda võid päris nime või aliase all, lisada võid tunnuspildi või avatari, telefoninumbri ja e-posti aadressi kasutamine pole kohustuslik
  • vestlused võivad olle kahevahelised või rühmavestlused ehk jututoad
  • jututubadest saab moodustada kogukondi
  • sõnumeid saab muuta ja kustutada (kustutamine on nagu e-kirjade puhul - propageerumine üle serverite pole garanteeritud, kuid üldiselt see toimib)
  • serverist saab seadistada sõnumite automaatset kustutamist
  • toimivad lugemisteatised ja kirjutamisteatised
  • olemas on tavapärane vestlusrakenduste tudi-mudi, nagu reageerimised, kleepsupakid ja vilkuvad gif'id
  • enamus kliente võimaldavad kontakte ja jututubasid sildistada ja grupeerida
  • osa kliente toetavad serveripoolset otsingut ja urlide eelvaadet (näiteks Element)
Õiguslikud seosed:

  • Matrixi juured ulatuvad Iisraeli-USA taustaga firmasse Amdocs, kuid alates 2017. aastast tegutstakse eraldi organisatsioonina Euroopa jurisdiktsioonis ning seosed Amdocsiga puuduvad
  • alates 2018. aastast vastutab standardi haldamise ja arendamise eest The Matrix.org Foundation
  • kõik Matrix.org ja suur enamus Element Ltd loodud teekidest, serveri- ja klienditarkvarast ning sildadest on avaldatud vaba tarkvara litsentside all
  • tänaseks päevaks on Matrix muutumas oluliseks kiviks Euroopa riikide digitaalse suveräänsuse vundamendis
Lähitulevik:

  • lisandub SSO ehk autentimine süsteemide-ülese konto alusel (näiteks võid üsna varsti oma Google-kontoga logida mõnda Matrixi serverisse, kus see on lubatud)
  • selle aasta FOSDEM toimub Matrix+Jitsi platvormil virtuaalse üritusena 8500'le ḱasutajale
  • seni demotud serverivaba ehk P2P Matrix saab produktsioonisobilikuks
Hetkel on Matrixi klientides puudu:

  • võimalus ühes pruukida ühes kliendis mitut kasutajakontot (Nheko ja Mirage oskavad seda mingis mõttes)
  • kasutaja poolt määrata sõnumite kustutamise aega (spetsifikatsioonis on see võimalus olemas)
  • luua ja saata salvestatud helisõnumeid
  • sõnumilogi salvestamine failina (nagu IRC võimaldab)

Parim Matrixi klient Riot on nüüd Element

Matrixi põhiarendajate seltskond otsustas senise firmanime New Vector, põhitoote Riot (Riot.im) ning majutusteenuse Modular asemele kasutusele võtta uue nime Element. Pikem selgitus on nende ajaveebis. Uued rakendused ja paigalduspakid ilmuvad ilmselt lähipäevil.

Võrgu ja protokolli nimeks jääb ikka Matrix ning asja olemust see ei muuda - tegemist on parima läbivalt krüptitud, hajutatud ja födereeritud vabal tarkvaral põhineva suhtlusvõrguga. Teiste klientide nimed sellest ei muutu (Fractal, Spectral, Quaternion, Nheko, Nio, Ditto, FluffyChat jne) ning kõikidel kasutajatel peaks kõik töötama nagu seni.

Upgrading Riot Web to Riot Desktop in Debian, Ubuntu, Mint and other deb-based distos

New Riot.im app was released yesterday and it's name has changed.

When running standard upgrade from command-line you see:
$ apt update && apt upgrade
The following packages have been kept back:
riot-web

When you see what is upgradable you'll notice:
$ apt list --upgradable
riot-web/stable,stable 1.6.0 amd64 [upgradable from: 1.5.15]

The solution to get upgrade done is simple:
$ apt install riot-desktop
The following packages will be REMOVED:
riot-web
The following NEW packages will be installed:
libsqlcipher0 riot-desktop

Latest release of Riot is feature-heavy and among others makes verification a lot more simple and end-to-end encryption enabled by default for all new non-public conversations.

Riot is a good client for Matrix - an open network for secure, decentralized communication.

Eesti ID-kaardi tarkvara ehk open-eid v. 20.01 kasutamine Debianis

Kui just eelmisel aastal middleware kaasamisest tekkinud ajutine kaos välja arvata, siis hetkel on Debian 10 (aka buster) id-kaardi tarkvara paigaldus uus paigaldus lihtne. Pole vaja ei kombineerida ega midagi.

wget -O /tmp/ria-public-2016.key https://installer.id.ee/media/install-scripts/C6C83D68.pub
apt-key add /tmp/ria-public-2016.key
echo '# open-eid ehk id-kaardi tarkvara' >> /etc/apt/sources.list
echo 'deb https://installer.id.ee/media/ubuntu/ bionic main' >> /etc/apt/sources.list
apt update
apt install open-eid

Stretchist üle kolides lihtsalt muuda repositoorium xenial'ist bionic'uks ning tee

apt update && apt upgrade

Varasemad artiklid id-kaardi tarkvara paigaldusest:

Leiame failipuust teatud vanusega failid ning kopeerime mujale

Mõnikord on vaja hiidsuurest failipuust vaja leida mingi vanusega failid ja mujale kopeerida. Linuximaailmas saad seda teha nii:

find . -type f -mtime -60 -exec cp -a --parents -t ~/tmp "{}" \+

Otsitavaid faile ja sihtkausta muuda vastavalt vajadusele. Antud näites " -type f -mtime -60" tähendab et otsi 60 päeva vanu faile (mtime on viimase muutmise aeg) ning "~/tmp" tähendab et tõsta nad kodukaustas tmp alamkausta.

Muudame LibreOffice Calc'is vigased numbrid õigeteks

Mõnikord juhtub, et eri allikatest LibreOffice Calc'i andmeid kopeerides märkad et numbrid pole kopeerunud numbritena vaid tekstina - joonduvad vasakule, väärtuse ees paistab ülakoma ning ühtegi arvutust ei õnnestu teha.

Lahenduseks on lihtne regexi-põhine asendus:

  • vali vajalik veerg ning klõpsi teisest menüüst otsinguvalik (Edit -> Find & Replace | Redigeerimine -> Otsi ja asenda)
  • Otsingukasti (Search | Otsitav) kirjuta .*
  • Asenduse kasti (Replace | Asendus) kirjuta &
  • Vaata et muude seadete all oleks aktiivsed (Current Selection Only | Ainult valikust) ja (Regular Expressions | Regulaaravaldised)
  • klõpsi (Replace All | Asenda kõik)

Systemd - when systemctl unmask command fails

When you are using a typical modern Linux, where systemd is the init system, then you should be able to enable/disable daemons with:

systemctl enable somename.service
systemctl disable somename.service
and mask/unmask them with:
systemctl mask somename.service
systemctl unmask somename.service
In real life you may end up with the simple fact that unmask command does not do anything (my last case was with SANE daemon - used for running scanners in Linux):

systemctl unmask saned
systemctl status saned
● saned.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)

Well, in this case, check how things are:

file /lib/systemd/system/saned.service
/lib/systemd/system/saned.service: symbolic link to /dev/null
or

cd /lib/systemd/system/
ls -l sane*
lrwxrwxrwx 1 root root 9 mai 21 11:04 saned.service -> /dev/null
-rw-r--r-- 1 root root 309 mai 21 11:04 saned@.service
-rw-r--r-- 1 root root 132 mai 21 11:04 saned.socket
Which means that SANE unit file saned.service is symlinked to /dev/null and won't do anything, but there is a renamed unitfile saned@.service.

So the fix is simple - delete the symlinked one, rename the right one, enable and start the daemon:

cd /lib/systemd/system/
rm saned.service
mv saned@.service saned.service
systemctl enable saned.service
systemctl start saned.service

Eesti ID-kaardi tarkvara ehk open-eid v. 17.10 kasutamine Debianis

Nädal tagasi ilmus uus ID-kaardi tarkvara versiooninumbriga 17.10. Kui oled Debian stretch'i kasutaja, siis kõik mis on kirjas artiklis Eesti ID kaardi tarkvara ehk open-eid v. 3.12 kasutamine Debianis kehtib jätkuvalt, kuid sul võib vaja olla kahte täiendust:

Kui sul tekib uuendamise käigus veateateid, mis viitavad nimetatud teekidele, siis lisa need kas eraldi "dpkg -i xxx" stiilis, või pannes vastavad repod oma arvuti sources.list faili ning open-eid saab uuendatud versioonini 17.10. Tegemist on siis selle tarkvaraversiooniga, millega saad teha ka ID-kaardi sertifikaatide uuendused.

WPA2 + KRACK ei tähenda midagi head - enamus maailma WiFi ühendustest on pealtkuulatavad ja kontrollitavad

Tänase päeva pommuudis on küberturvalisuse valdkonnast. Key Reinstallation Attack ehk KRACK võimaldab WPA2'd kasutavaid WiFi ühendusi pealt kuulata ning andmed muuta ja seeläbi väga palju kurja korda saata.

See on üks hullemaid andmeturva probleeme (võib olla ka kõige suurem), mis läbi aegade on leitud.

Viga on WPA2 protokollis endas ning kõik tugijaamad ja kliendid, kes selle vähegi korralikult on implementeerinud, on ka haavatavad. Ja see puudutab arvuteid, tahvelarveuteid, mobiiltelefone, külmkappe ja mida iganes, mis WPA2'ga WiFi't kasutavad. Lihtsamalt öeldes puudutab see kõiki WiFi'ga vidinaid siin maailmas.

Seni kuni tugijaamade tootjad ja kliendi-tarkvara valmistajad veaparandused valmis saavad, on 2 valikut:

  • ära kasuta WiFi't (kasuta arvutite puhul traadiga ühendust ja mobiilsete puhul 3G/4G tüüpi ühendusi)
  • ja kui kasutad WiFi't, siis jälgi, et kõik liiklus oleks VPN'iga kaetud ja/või kõik rakenduste poolt tehtavad ühendused krüpteeritud - kui sa ise ei tea kuidas seda kontrollida ja seadistada, siis küsi neilt kes teavad

Mida tähendab "kõik rakenduste poolt tehtavad ühendused krüpteeritud"? Näiteks seda, kus iganes liigutad privaatset teavet või ei taha et kolmas osapool saaks seda lugeda, siis:

  • vaata et sinu veebibrauseris url algaks https-iga ja et sa pole brauseris ssl'i teemalisi vigu maha keeranud
  • vaata et sinu e-posti kliendis kirjade lugemine IMAP või POP3'ga oleks krüpteeritud
  • vaata et sinu e-posti kliendis kirjade saatmine SMTP'ga oleks krüpteeritud
  • vaata, et sinu lemmik-sõnumiklient kasutaks krüptograafiat

Õnneks on tarkvara paikamine juba alanud. Näiteks wpa_supplicant (alusteek Androidis ja Linuxis) on paigad juba avaldanud, kuid alati on õhus küsimus, et millal need sinu vastavate WiFi-suutlike seadmeteni jõuavad.

Täiendatud 21:50

Läbi aegade suurimale arvutiturvaprobleemile on saanud osaks ka pretsedenditu ja koordineeritud lahenduse otsimine. Viimase paari kuu jooksul on teavitatud kõiki olulisimaid operatsioonisüsteemiarendajaid ning tänasel pärastlõunal (i.e. peale turvavea avalikustamist) on ükshaaval hakanud ka turvaparandusi ilmuma (sh Windowsile ja mitmele Linuxile). Oluline oleks et ka tugijaamade tootjad järgi tuleksid ning kasutajad oleksid suutelised ka neid uuendusi tegema.

Seega uuendage niipea, kui see teil võimalik on.

Nimetame fotod ümber EXIF-metainfo alusel

Sul on kaustatäis kaamerast võetud fotosid, mille nimed on mõttetud (img_12345.jpg stiilis), kuid sa tahad et nimi oleks hoopis teemakohane ja sisaldaks pildi tegemise aega. Eeldades et failides on EXIF-metainfo alles, siis Linuxis on see käsurealt tehes imelihtne (punkt lõpus tähistab selle kausta sisu, kus sa asud):

exiftool -d miski-nimi-%Y%m%d-%H%M%S%%-c.%%e "-filename

Kui exiftool arvutis on puudu, siis libimage-exiftool-perl paigaldamine aitab. Antud näite puhul loetakse ajatempel DateTimeOriginal väljalt, kuid kaamerast sõltuvalt võib see puududa ja siis märgi vajalikuks lähteväljaks CreateDate või isegi FileModifyDate.