Velen hebben onlangs door de coronacrisis voor het eerst gevideobeld of online lessen gevolgd. De meesten gebruiken daarvoor propriëtaire software, maar er zijn ook heel wat opensourceprojecten om op een veilige manier te videobellen. We vergelijken er een aantal van.

Koen Vervloesem

Als je de laatste tijd hebt gevideobeld met collega’s, leerlingen of docenten, dan was dat waarschijnlijk met Microsoft Teams, Skype, Zoom of Cisco WebEx. Die werken allemaal perfect onder Linux, daar niet van, maar het gaat om propriëtaire software.

Gelukkig bestaan er ook heel wat opensourceprojecten om te videobellen. In dit artikel bekijken we enkele daarvan. We zeggen nu al dat we geen volledigheid nastreven. We hebben de bekendste en interessantste software getest en geven hier onze ervaringen.

Jitsi Meet

Een veel vernoemde toepassing is Jitsi. Eigenlijk is dat de naam van het overkoepelende project. De toepassing waar het om gaat, is Jitsi Meet, een webapplicatie voor videoconferencing. Je klikt op de website gewoon op Go en Jitsi Meet maakt een kamer met een willekeurige naam aan, of je kiest eerst een naam (bijvoorbeeld van het kanaal dat je gesprekspartner heeft aangemaakt) voor je op Go klikt. Als je Jitsi Meet op deze manier gebruikt, hoeft niemand van de deelnemers iets speciaals te installeren: een webbrowser is voldoende. Voor wie dat wil, zijn er ook mobiele clients van Jitsi Meet voor Android en iOS. Je hoeft ook geen account aan te maken.

Je webbrowser vraagt je nu of je de website toegang tot je camera en microfoon wilt geven. Nadat je toestemming hebt gegeven, begint het videogesprek en krijg je onderaan de url te zien die je aan je gesprekspartners kunt doorgeven. Het is dezelfde url als de webpagina waarop je nu actief bent. Met een klik op Add password voeg je een wachtwoord aan de kamer toe. Je krijgt er ook een Amerikaans inbelnummer te zien. Klik je op More numbers, dan krijg je een uitgebreidere lijst, inclusief een Nederlands nummer. Zo kunnen anderen zonder internetverbinding toch aan een gesprek deelnemen, na de juiste pincode in te voeren. Uiteraard gelden voor hen dan wel de gewone telefoontarieven.

Veel mogelijkheden

De officiële server van Jitsi Meet legt geen beperkingen op. Maar bij meer dan een tiental deelnemers gaat de kwaliteit achteruit. Merk ook op dat er in Jitsi Meet geen moderator of organisator is: iedereen heeft dezelfde rechten en kan dus ook iemand anders uit de vergadering gooien.

De interface van Jitsi Meet is heel intuïtief. Zo goed als alle interface-elementen staan onderaan het beeld. Links onderaan heb je icoontjes om je scherm te delen, een virtuele hand op te steken (er komt dan een icoontje van een hand bij je video) en de chatbox te openen. In het midden kun je je microfoon in- en uitschakelen, het gesprek verlaten en de camera stoppen en starten.

Rechts kun je een mozaïekbeeld van alle deelnemers zien of één beeld in het groot. Op de i ernaast klik je om het infokader met de link van het gesprek weer te tonen. En helemaal onderaan rechts achter de drie puntjes schuilt een menu met extra acties: de videokwaliteit beheren, de volledige schermmodus, een livestream starten (helaas alleen op YouTube) of de video opnemen (helaas alleen met opslag op Dropbox), de microfoon van iedereen uitschakelen en statistieken en instellingen.

Tijdens het videobellen is de interface van Jitsi eenvoudig, maar je hebt toegang tot uitgebreide mogelijkheden.

Beveiliging en een eigen server

Uiteraard is alle communicatie volledig beveiligd via https. Voor peer-to-peer videogesprekken tussen twee personen biedt Jitsi Meet end-to-end encryptie via DTLS-SRTP, maar als de peer-to-peerverbinding niet werkt, gebeurt de verbinding via de Jitsi Videobridge. Helaas krijg je daar als gebruiker geen melding van, want die videobridge kan in principe meeluisteren.

Jitsi Meet maakt voor groepsgesprekken nog geen gebruik van end-to-end encryptie, zodat ook dan in principe de server kan meeluisteren. Maar de ontwikkelaars hebben al een bètaversie van end-to-end versleutelde groepsgesprekken klaar (jitsi.org/blog/e2ee/). Gebruik je Chromium 83 of hoger, dan kun je nu al de bètaversie inschakelen in het overflowmenu rechts onderaan. Video-opnames, live streaming en inbellen via een telefoon zijn dan wel niet meer mogelijk, omdat de server met end-to-end-encryptie geen toegang meer heeft tot de videostreams. De laatste informatie over de beveiliging van Jitsi Meet-gesprekken vind je op de website van Jitsi.

Wie de ultieme flexibiliteit of zekerheid wil, kan ook zijn eigen Jitsi-server installeren. In het Jitsi Meet Handbook staan installatie-instructies voor Debian 10 (Buster) en Ubuntu 18.04 LTS (Bionic Beaver). Jitsi Meet is ook in Docker-containers te installeren met Docker Compose.

De bètaversie van Jitsi biedt end-to-end encryptie ook voor groepsgesprekken, zodat een toevallige indringer in de groep niets kan afluisteren.

Jami

Jami, dat tot begin 2019 Ring heette, heeft een aanpak die afwijkt van de meeste andere software om te videobellen: ze heeft een gedistribueerde architectuur. Je maakt geen gebruik van een server, maar neemt rechtstreeks met je gesprekspartners contact op in een peer-to-peer netwerk. Je kunt Jami zelfs op een lokaal netwerk gebruiken zonder internetverbinding: de clients vinden elkaar dan via IP multicast. Jami gebruik je niet in je webbrowser zoals Jitsi; je dient de software te installeren. Op de website staan de downloadlinks en/of installatie-instructies voor Linux, Windows, macOS, Android en iOS. Op Ubuntu 20.04 LTS is dat bijvoorbeeld:

sudo apt install gnupg dirmngr ca-certificates curl --no-install-recommends
curl -s https://dl.jami.net/public-key.gpg | sudo tee /usr/share/keyrings/jami-archive-keyring.gpg > /dev/null
sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/jami-archive-keyring.gpg] https://dl.jami.net/nightly/ubuntu_20.04/ ring main' > /etc/apt/sources.list.d/jami.list"
sudo apt-get update && sudo apt-get install jami

Registratie

De eerste keer dat je Jami opstart, vraagt het programma je om een account aan te maken. Zonder account werkt het programma niet: je account is een eenvoudig bestand met je cryptografische sleutels om je communicatie te beveiligen. Klik op Lokale account aanmaken. Daarna vul je je profiel in. Jami vult als je profielnaam al de lokale gebruikersnaam op je computer in, en je kunt een foto toevoegen of met je webcam nemen.

Standaard staat de optie Gebruikersnaam registreren ingeschakeld. Alleen als je een unieke gebruikersnaam wilt waarmee anderen je op het netwerk kunnen vinden, dien je je te registreren. Maar je hoeft helemaal geen persoonlijke informatie zoals een e-mailadres of telefoonnummer in te vullen. Een gebruikersnaam volstaat, en vul een sterk wachtwoord in om je account te beveiligen. Je gebruikersnaam wordt overigens niet op een centrale server opgeslagen, maar in een distributed hash table met behulp van de software OpenDHT, te vergelijken met hoe BitTorrent werkt.

Na het aanmaken van je account dien je een back-up te maken, want Jami werkt met lokale accounts: een account bestaat alleen op het apparaat zelf. Klik daarom op Account exporteren. Nadat je de locatie van het bestand kiest en je wachtwoord invoert, wordt je account in een versleuteld gz-archief opgeslagen. Met dit bestand kun je achteraf altijd je account herstellen op deze of een andere computer.

Veilig videobellen

Door de gedistribueerde architectuur is Jami een van de weinige projecten die geen kunstgrepen hoeft uit te halen om end-to-end encryptie van groepsgesprekken te kunnen aanbieden. Dat werkt ook vanzelf. Je begint een naam of ID van een gebruiker in te typen en kunt deze persoon dan als contactpersoon toevoegen en er onmiddellijk mee chatten of (video)bellen.

Tijdens een gesprek zijn de mogelijkheden basic, maar de belangrijkste zaken zijn er. Je kunt de videokwaliteit instellen, en als je rechtsklikt kun je een schermruimte of het hele scherm delen. Overigens werkt je scherm delen nog niet als je Linux-distributie Wayland gebruikt in plaats van X11. Je kunt ook geavanceerde informatie over het gesprek tonen, inclusief de framerate, resolutie en gebruikte codecs van alle deelnemers.

Videobellen in Jami is redelijk basic, maar werkt volledig peer-to-peer.

Meerdere apparaten

Algemene instellingen vind je achter het tandwielicoontje links naast je gebruikersnaam bovenaan. In het tabblad Account vind je daar ook weer de mogelijkheid om je account te exporteren als je dat bij het aanmaken van je account niet gedaan hebt. Dat is belangrijk als je Jami op meerdere apparaten wilt gebruiken. Je kunt niet eenvoudigweg met dezelfde gebruikersnaam en wachtwoord aanmelden op beide apparaten, je hebt immers het versleuteld archief nodig.

Maar Jami biedt nog een eenvoudiger manier aan: klik op het apparaat waarop je al een account hebt in de accountinstellingen op Een ander apparaat koppelen. Vul het wachtwoord van je account in en klik dan op Exporteren op het netwerk. Na heel wat rekenwerk (heb een minuutje geduld) krijg je een alfanumerieke pincode te zien. Klik dan op het ander apparaat in plaats van op Lokale account aanmaken op Importeren van apparaat, vul hetzelfde wachtwoord in en ook die pincode. Dat moet binnen vijf minuten gebeuren. Bevestig, en daarna wordt je account toegevoegd. Let overigens op: chatgesprekken en oproepgeschiedenis worden niet gesynchroniseerd tussen meerdere apparaten met dezelfde account.

Nextcloud Talk

Voor wie wat meer wil dan alleen videobellen, is Nextcloud Talk een interessante oplossing, vooral door zijn naadloze integratie met andere componenten van Nextcloud, zoals de bestandsdeling, collaboratieve documentbewerking en kalender en contacten. Die andere componenten vallen buiten het bestek van dit artikel, maar het is wel belangrijk om dit te vermelden: een hele Nextcloud-suite installeren alleen om van Nextcloud Talk gebruik te maken is wat overkill.

Je kunt Nextcloud bij een provider afnemen of op een eigen server installeren. Er zijn pakketten voor diverse Linux-distributies te vinden, evenals een officiële Docker-image. Op Ubuntu is een eenvoudige opdracht snap install nextcloud zelfs voldoende om de nieuwste versie te installeren. Op de website van Nextcloud wordt er sterke nadruk gelegd op het self-hosted aspect, in tegenstelling met de bekende namen zoals Teams en Zoom, waar je metadata op een server terechtkomen waarover je geen controle hebt.

Samenwerken

Aan de kant van de client videobel je ofwel in de webinterface van Nextcloud Talk, ofwel gebruik je de gelijknamige mobiele app voor Android en iOS, die gratis is. De andere deelnemers hoeven niet eens een account te hebben op de Nextcloud-server: je kopieert gewoon de url van je call en bezorgt die aan je gesprekspartners, eventueel met een wachtwoord.

De gespreksfunctionaliteit zelf is redelijk basic, maar zoals gezegd ligt de meerwaarde van Nextcloud Talk vooral in de integratie met de andere componenten van Nextcloud. Zo kun je eenvoudig een bestand vanuit de bestandsbeheerder van Nextcloud delen met de deelnemers van een Talk-gesprek, en zelfs via drag&drop bestanden delen. Ook kun je in hetzelfde venster documenten openen en samen bewerken. Gebruik je videoconferenties vooral om samen te werken aan documenten, dan is Nextcloud Talk dus heel handig.

Nextcloud Talk is vooral handig als je met anderen wilt samenwerken aan documenten.

End-to-end encrypted

Standaard zijn alle gesprekken in Nextcloud Talk peer-to-peer en end-to-end encrypted: de communicatie verloopt via WebRTC. Het bedrijf Nextcloud draait een eigen STUN/TURN-server om de communicatie achter firewalls mogelijk te maken. Maar al wat die doet, is het IP-adres van de client achterhalen en de versleutelde pakketjes doorsturen. Door de peer-to-peer werking zit er uiteraard wel een limiet op het aantal deelnemers, want alle videostreams moeten naar alle deelnemers gestuurd worden, wat veel netwerkverkeer is. Een typische Nextcloud Talk-installatie zou enkele tientallen videoconferenties met een vijftal deelnemers moeten aankunnen.

High Performance Back-end

Om de prestatieproblemen bij grotere aantal deelnemers de baas te kunnen, biedt Nextcloud een High Performance Back-end (HPB) aan. Dan werk je niet meer peer-to-peer, maar sturen alle deelnemers hun videostream naar de HPB en stuurt die selectief de benodigde videostreams naar de clients die deze nodig hebben. Dit moet tot 50 actieve deelnemers mogelijk maken, in een webinar met eenrichtingsvideoverkeer zelfs honderden. Je kunt voor de HPB bij Nextcloud een contract aangaan of de HPB op een eigen server installeren: sinds kort is deze ook opensource.

Maak je gebruik van de HPB, dan is er geen end-to-end encryptie van de videogesprekken meer: de videostreams gaan wel versleuteld naar de HPB en vertrekken daarvan versleuteld naar de andere deelnemers, maar de server zelf decrypteert deze om zijn werk te kunnen doen. Navraag bij Nextcloud leert ons dat de ontwikkelaars wel naar end-to-end encryptie met gebruik van de HPB zullen kijken, maar dat dit geen prioriteit heeft omdat ze ervan uitgaan dat je Nextcloud op je eigen server installeert en dat die dan te vertrouwen is.

En verder

Deze drie zijn niet de enige opensourceprogramma’s om te videobellen, maar wel drie met elk een heel eigen aanpak. Een ander interessant opensourceproject is Wire. Dit biedt een messenger, voice en video, inclusief videoconferencing, en dit alles end-to-end encrypted. De website legt de nadruk op hun eigen dienst, maar je kunt ook je eigen Wire-server draaien. Er zijn clients voor Linux, Windows, macOS, Android en iOS en je kunt het ook gewoon in je webbrowser gebruiken. Wire heeft een sterke focus op de bedrijfswereld en blinkt dan ook uit in beheerfuncties.

Ook bestaan er diverse opensourceprogramma’s die zich op een specifiek doelpubliek richten. Zo focust BigBlueButton zich op online leren. Docenten kunnen er live een whiteboard mee beschrijven voor hun online studenten, en die laatsten kunnen hetzelfde whiteboard beschrijven. Net als in een klas dus. Maar er is weinig informatie te bevinden over de beveiliging en het project lijkt geen aandacht te hebben voor end-to-end encryptie. Het is duidelijk dat je niet hoeft beperkt te zijn tot propriëtaire software als je op Linux wilt genieten van videoconferenties, en er bestaan heel veilige en krachtige opensourceoplossingen. Nu alleen nog je contactpersonen hiervan overtuigen!