Dynalogical
Neem contact op085 109 1185
Dynalogical
"Leuk team en service zoals je het wilt. Een lokale sterke partij die maatwerk wil en kan leveren."
DJ Evander
Evander Kleefman
★★★★★
085 109 1185info@dynalogical.nl
←Terug naar blog
Applicaties28 september 2026·5

Lynn, de charme van MSN met de beveiliging van nu

Wie MSN Messenger heeft gebruikt, herinnert zich waarschijnlijk het geluid van een binnenkomend bericht. Of de nudge die je scherm liet schudden. MSN voelde persoonlijk maar ook een onderdeel van wie je was. Dat gevoel wilden we terugbrengen, maar dan met de privacy die je vandaag van een messenger mag verwachten.

Stef van Zwienen
Mede-eigenaar & Lead Development

Wie MSN Messenger heeft gebruikt, herinnert zich waarschijnlijk het geluid van een binnenkomend bericht. Of de nudge die je scherm liet schudden. MSN voelde persoonlijk maar ook een onderdeel van wie je was. Dat gevoel wilden we terugbrengen, maar dan met de privacy die je vandaag van een messenger mag verwachten.

Zo ontstond Lynn Messenger: een desktopapp met een klassieke en een moderne uitstraling, gebouwd op end-to-end versleuteling. Achter de vertrouwde functies zit een architectuur waarin de client berichten versleutelt en de server ze aflevert zonder de inhoud te kunnen lezen.

In dit artikel laten we zien welke keuzes we maakten en hoe de onderdelen samenwerken.

Het uitgangspunt: de server hoeft je berichten niet te lezen

Bij Lynn worden berichten op het apparaat van de verzender versleuteld. Pas op het apparaat van de ontvanger worden ze weer leesbaar. De server bewaart en verstuurt de versleutelde berichten, maar beschikt niet over de privésleutels waarmee hij de inhoud kan openen.

Die verdeling bepaalt de hele architectuur. De desktopapp verzorgt de versleuteling en de gebruikerservaring. De backend in Rust regelt onder meer accounts, aflevering, online status en de opslag van versleutelde gegevens. PostgreSQL bewaart berichten, Redis helpt bij realtime gebeurtenissen en S3-compatibele objectopslag bevat versleutelde bestanden met een maximum van 30 dagen. Hierna worden ze automatisch verwijderd.

Voor bellen is er een aparte signaling-service. Die helpt gebruikers een verbinding op te zetten. Het gesprek zelf loopt waar mogelijk rechtstreeks en end-to-end versleuteld tussen de deelnemers.

Waarom we Rust kozen voor de backend

De backend van Lynn is geschreven in Rust, met Tokio en Axum voor de asynchrone services. Die keuze past bij software waarin betrouwbaarheid en beveiliging een grote rol spelen.

Rust voorkomt tijdens het compileren veel fouten met geheugenbeheer en gelijktijdige processen. We beperken het gebruik van onveilige code verder met #![forbid(unsafe_code)]. Ook de productieconfiguratie is bewust ingericht: als het proces op een onverwachte fout stuit, stopt het in plaats van door te draaien in een onzekere toestand.

Dat neemt de noodzaak van tests en controles niet weg. Het geeft ons wel een stevige basis voor de services die berichten verwerken.

Versleuteling voor gesprekken van vandaag en morgen

Voor de versleuteling gebruiken we het Signal-protocol als basis. De sleuteluitwisseling combineert klassieke cryptografie met een post-quantum component. Daarmee houden we rekening met het scenario waarin iemand vandaag versleuteld verkeer opslaat om het later met krachtigere computers te proberen te ontsleutelen.

Na het opzetten van een gesprek zorgt de Double Ratchet ervoor dat sleutels blijven veranderen. Daardoor hangt de bescherming van een volledige chatgeschiedenis niet af van één blijvende sleutel.

De belangrijkste regel blijft eenvoudig: een leesbaar bericht en de sleutels om het te openen horen bij de gebruikers, niet op onze server.

Een kijkje onder de motorkap van Lynn Messenger

Inloggen zonder je wachtwoord te versturen

Ook bij het inloggen wilden we voorkomen dat de server een leesbaar wachtwoord ontvangt. Daarom gebruikt Lynn OPAQUE. Met dit protocol kunnen client en server vaststellen dat iemand het juiste wachtwoord kent, zonder dat wachtwoord zelf over de verbinding te sturen.

De clientkant draait als een Rust-module die naar WebAssembly is gecompileerd. Zo kunnen we dezelfde implementatie in de desktopapp gebruiken en afzonderlijk testen.

Minder zicht op de afzender

De inhoud van berichten versleutelen is één stap. Gegevens over wie met wie communiceert, verdienen ook aandacht. Lynn ondersteunt daarom sealed sender voor berichten waarbij de identiteit van de afzender niet in de gebruikelijke vorm aan de server wordt doorgegeven.

Dat maakt niet alle metadata onzichtbaar. Een server heeft bijvoorbeeld informatie nodig om een bericht af te leveren. We beperken die informatie waar de architectuur dat toelaat.

Bellen draait in een aparte service en werkt P2P

De signaling-service voor WebRTC-gesprekken draait los van de chatservice. Dat helpt om storingen te isoleren: een probleem met bellen hoeft het versturen van berichten niet stil te leggen.

De twee services gebruiken tokens met asymmetrische sleutels. De chatservice kan een token uitgeven met een privésleutel. De signaling-service heeft alleen de publieke sleutel en kan daarmee controleren of het token geldig is. Hij kan zelf geen geldige tokens namens de chatservice maken.

De daadwerkelijke call wordt altijd peer-to-peer opgezet. De server brengt enkel de clients in contact met elkaar om te laten weten dat er een inbound call is. Dit geldt voor zowel audio als video.

Foto’s en bestanden worden vóór het uploaden versleuteld

Een foto, spraakbericht of document wordt op het apparaat van de verzender versleuteld voordat het wordt geüpload. De versleutelde versie gaat rechtstreeks naar de objectopslag via een tijdelijke uploadlink.

De ontvanger krijgt via een end-to-end versleuteld bericht de verwijzing naar het bestand en de sleutel die nodig is om het te openen. De opslaglocatie bevat dus wel de versleutelde bytes, maar niet de sleutel om de oorspronkelijke inhoud te lezen.

Lynn bewaart daarnaast alleen de metadata die nodig is om bestanden te beheren. Verlopen gegevens en afgeleverde berichten kunnen volgens de ingestelde bewaartermijnen worden opgeruimd.

Realtime chat zonder alles op één server te laten draaien

Een messenger moet direct reageren. Berichten verschijnen zodra ze binnenkomen, je ziet wanneer iemand typt en een nudge komt meteen aan. Lynn gebruikt hiervoor WebSockets.

Wanneer gebruikers met verschillende serverprocessen verbonden zijn, verspreidt Redis de gebeurtenissen tussen die processen. PostgreSQL bewaart berichten totdat ze zijn afgeleverd. Zo blijft een bericht beschikbaar als een gebruiker tijdelijk offline is of een proces opnieuw moet starten.

Redis helpt ook bij gedeelde limieten voor verzoeken, bijvoorbeeld rond inloggen en het ophalen van sleutels. Die limieten gelden over de serverprocessen heen.

De techniek moet ook als MSN voelen

Beveiliging vormt de basis, maar de ervaring maakt Lynn herkenbaar. De desktopapp is gebouwd met Electron, React en TypeScript en heeft twee verschijningsvormen: een moderne Lynn-interface en een klassieke skin die verwijst naar Windows Live Messenger*.

In die klassieke weergave krijgt de contactenlijst een eigen venster en opent ieder gesprek apart. Ook de kleine functies zijn terug: emoticons met bekende tekens zoals (L), winks, nudges, statusberichten en de vertrouwde aanduidingen beschikbaar, bezet, afwezig en offline.

Deze functies gebruiken dezelfde versleutelde berichtinfrastructuur als gewone chatberichten. Een nudge lijkt misschien een klein detail, maar hoort technisch bij dezelfde privacykeuzes.

Van ontwerp naar een app die je kunt gebruiken

Een messenger bouwen vraagt meer dan een werkende chatdemo. Lynn is ingericht voor distributie op macOS, Windows en Linux, met onder meer ondertekende builds en automatische updates. Volledig geautomatiseerd.

Ook de ontwikkeling erachter telt mee. Tests draaien voordat een versie verdergaat richting productie. Daarnaast hebben we het dreigingsmodel en de belangrijkste ontwerpkeuzes vastgelegd, zodat we beveiligingsbeslissingen kunnen toetsen en uitleggen.

Waarom we deze keuzes delen

Lynn Messenger laat zien hoe we bij Dynalogical software bouwen. We beginnen bij de vraag wat een product voor mensen moet doen en werken daarna uit welke techniek daarvoor nodig is.

Bij Lynn betekende dat: het plezier van een vertrouwde messenger terugbrengen, terwijl we wachtwoorden, berichten en bestanden zo behandelen dat gebruikers de controle over hun gegevens houden. Dat vraagt soms meer werk achter de schermen. Juist dat werk bepaalt of een app ook buiten een demo goed functioneert.

Benieuwd naar Lynn en wil je het zelf gebruiken?
Bekijk hier de website 👉 https://www.lynnmessenger.nl/


Wil je bespreken hoe we zo’n aanpak voor jouw project kunnen inzetten? Neem contact met ons op.

Lynn Messenger is een eigen product van Dynalogical.

*Lynn Messenger is niet verbonden aan, gesponsord door of goedgekeurd door Microsoft. De klassieke weergave is een eerbetoon aan Windows Live Messenger en MSN, en aan de nostalgie daaromheen.

"Windows Live Messenger", "MSN" en alle bijbehorende namen, logo's en handelsmerken zijn eigendom van Microsoft Corporation. Wij claimen daarop geen enkel recht; alle rechten berusten volledig bij Microsoft. Verwijzingen dienen uitsluitend ter herkenning en als nostalgisch eerbetoon.

MSNChattenLynnLynn MessengerApplicatie
Delen
Geschreven door
Stef van Zwienen

Het team van Dynalogical helpt ondernemers met websites, webshops en applicaties die persoonlijk aanvoelen en meetbaar resultaat leveren.

Neem contact op
Verder lezen

Gerelateerde artikelen

Alle artikelen
Tips & Updates
5 juni 2026 · 3 min lezen

Samenwerking InBusiness en Dynalogical

Dynalogical en InBusiness ICT bundelen hun krachten om organisaties breder te helpen met digitale en ICT-vraagstukken. Waar Dynalogical zich richt op websites, webshops, maatwerk applicaties en koppelingen, ondersteunt InBusiness ICT bij onder andere telefonie, internet, cloud, werkplekken en ICT-beheer. Door deze samenwerking kunnen bedrijven rekenen op één sterke combinatie van digitale oplossingen, persoonlijk contact en volledige ontzorging.

Team Dynalogical→
Tips & Updates
4 mei 2026 · 4 min lezen

Een website laten maken? Vergeet je hosting niet

Wanneer je een website laat maken, draait het niet alleen om een mooi ontwerp. Hosting speelt een grote rol in hoe snel, veilig en betrouwbaar je website is. In deze blog lees je waarom goede hosting en onderhoud belangrijk zijn voor een sterke online basis.

Justin Ripassa→
Tips & Updates
8 april 2026 · 3 min lezen

Maakt AI de wereld efficiënter, of juist afstandelijker?

AI helpt bedrijven om sneller en efficiënter te werken, maar zorgt ook voor meer afstand in klantcontact. Steeds vaker spreken klanten geen mensen meer, maar systemen. Met 8 jaar ervaring in sales en customer relations blijkt juist persoonlijk contact essentieel om echt te begrijpen wat een klant nodig heeft. AI is een sterke ondersteuning, maar mag het menselijke aspect in onze ogen niet vervangen. De beste resultaten ontstaan door technologie te combineren met oprechte, persoonlijke interactie.

Justin Ripassa→