Zo werkt end-to-end versleuteld delen in teams: sleutels en rotatie

End-to-end versleuteld delen in teams draait om één idee: inhoud wordt vergrendeld met sleutels die alleen de apparaten van het team hebben, en de taak van de server is om verzegelde kopieën van die sleutels bij de juiste mensen af te leveren zonder ze te kunnen openen. Al het andere — iemand uitnodigen, iemand verwijderen, een vergeten wachtwoord herstellen — komt neer op de vraag wie een nieuwe kopie van welke sleutel voor wie verzegelt.

Het korte antwoord op de vraag die de meeste mensen eigenlijk hebben: als er een lid bijkomt, verzegelt iemand die de kanaalsleutel al heeft een kopie ervan voor de nieuwkomer. Als een lid wordt verwijderd, verwijdert de server diens kopie, en de app van een overgebleven lid maakt een nieuwe versie van de sleutel die de verwijderde persoon nooit ontvangt. Die tweede stap, sleutelrotatie, is wat cryptografische verwijdering onderscheidt van het simpelweg verbergen van een map in de interface.

Dit artikel loopt de concepten door op het niveau dat een teamleider of een beveiligingsbeoordelaar nodig heeft. Speak-Y Teams dient als uitgewerkt voorbeeld, omdat we dat ontwerp precies kunnen beschrijven, en waar andere gepubliceerde ontwerpen verschillen, vergelijken we ze.

Drie lagen sleutels, en waarom het er drie zijn

Een gedeelde vergadertranscriptie in een end-to-end versleutelde teamomgeving wordt beschermd door een keten van sleutels in plaats van één wachtwoord:

De lagen bestaan zodat veelvoorkomende handelingen goedkoop blijven. Een nieuwe opname delen raakt maar één recordsleutel. Een lid toevoegen betekent één kanaalsleutel verzegelen voor één persoon extra, niet elke transcriptie opnieuw versleutelen. Een kanaalsleutel roteren na een verwijdering verandert één sleutel en pakt de kleine recordsleutels eronder opnieuw in, terwijl de grote versleutelde inhoud blijft zoals hij is.

In Speak-Y wordt het sleutelpaar van een lid afgeleid van het versleutelingswachtwoord van het account, zodat hetzelfde wachtwoord op elk apparaat dezelfde sleutels oplevert. De bouwstenen zijn standaard "sealed boxes" met publieke sleutels en geauthenticeerde versleuteling, geen zelfbedachte cryptografie.

Schema van de drie lagen sleutels in Speak-Y Teams: recordsleutel, kanaalsleutel en sleutelpaar van het lid
De recordsleutel wordt vergrendeld met de kanaalsleutel; de kanaalsleutel wordt voor elk lid verzegeld met zijn publieke sleutel.

Wat de server bewaart en wat hij niet kan zien

De server is een brievenbus voor cijfertekst. Hij bewaart versleutelde items, de verzegelde kopieën van kanaalsleutels die aan elk lid zijn geadresseerd, en genoeg structuur om ze te routeren.

Hij kan de structuur van het team zien: hoeveel werkruimtes en kanalen er zijn, wie lid is van wat, of een kanaal openbaar of privé is, wanneer een sleutel is uitgegeven of ingetrokken, en basismetadata over elk item — grootte, duur en tijdstip. Hij kan de inhoud van transcripties en samenvattingen niet zien, en in Speak-Y ook de namen van werkruimtes en kanalen niet, want die worden versleuteld met dezelfde sleutels als de inhoud. Een kanaal met de naam "Overname — Project Valk" is op zichzelf al informatie.

Precies zijn over metadata hoort bij een eerlijke end-to-endclaim. Het woordenlijstartikel over E2EE legt uit waarom geen enkel ontwerp alles verbergt.

Speak-Y Teams-werkruimte met de naam van de werkruimte, een openbaar kanaal en een privékanaal gemarkeerd
1 — de naam van de werkruimte, 2 — een openbaar kanaal, 3 — een privékanaal. De server weet dat ze bestaan en wie lid is; de namen en de inhoud zijn versleuteld.

Wat er gebeurt als iemand erbij komt

Het lastige aan een lid toevoegen is dat de server geen sleutel kan overhandigen die hij zelf niet kan lezen. Alleen een client die de sleutel al heeft, kan een kopie verzegelen voor de publieke sleutel van de nieuwkomer, en die publieke sleutel bestaat pas zodra de uitnodiging is geaccepteerd.

Er zijn twee manieren om dit op te lossen. De eerste is wachten tot iemand in het team de app opent en de sleutels voor het nieuwe lid verzegelt. Dat werkt, maar laat een gat als degene die uitnodigde op vakantie is. Speak-Y toont dat gat als een eigen status, Wachten op de kanaalsleutel, en niet als een netwerkfout.

De tweede is de uitnodiging laten meenemen wat de nieuwkomer nodig heeft. Een uitnodigingslink van Speak-Y bevat de werkruimtesleutel in het fragment, het deel van de URL na #, dat nooit naar de server wordt gestuurd. Kanalen bewaren een kopie van hun sleutel, vergrendeld onder de werkruimtesleutel, zodat een nieuw lid de kanalen van de werkruimte kan openen zodra hij accepteert, zonder dat iemand anders online hoeft te zijn. De prijs is dat de link zelf toegang geeft. Daarom zijn uitnodigingen eenmalig, verlopen ze, en verstuurt u ze zoals u een wachtwoord zou versturen.

Privékanalen voegen nog een regel toe: ze worden niet geopend met de werkruimtesleutel. Een lid van het privékanaal voegt iemand toe door de sleutel van dat kanaal rechtstreeks voor hem te verzegelen.

Wat er gebeurt als iemand wordt verwijderd

Hier verschillen ontwerpen het meest, en hier krijgt de vraag "is het echt end to end?" een concreet antwoord.

Toegang intrekken betekent dat de server geen gegevens meer levert aan de verwijderde persoon. Dat wordt afgedwongen door het beleid van de server, en de sleutels veranderen niet. Het beveiligingswhitepaper van 1Password beschrijft het eigen delen op deze manier en stelt onomwonden dat iemand verwijderen uit een kluis, groep of team niet cryptografisch wordt afgedwongen en dat de sleutels niet worden gewijzigd. Dat is een gedocumenteerde, bewuste afweging; wie de sleutel vooraf had bewaard, zou kluisgegevens die hij later in handen krijgt nog steeds kunnen lezen.

Sleutelrotatie betekent dat de sleutel van de verwijderde persoon niet meer werkt. Als in Speak-Y een lid uit een werkruimte wordt verwijderd:

  1. De server verwijdert direct de verzegelde sleutelkopieën van die persoon.
  2. De app van het lid dat de verwijdering uitvoert, maakt nieuwe versies van de kanaalsleutels en de werkruimtesleutel, en verzegelt die alleen voor de mensen die blijven, plus de Recovery Kit van de werkruimte.
  3. Namen van kanalen en de werkruimte worden opnieuw versleuteld onder de nieuwe versies.
  4. De kopieën van kanaalsleutels die onder de oude werkruimtesleutel waren vergrendeld, worden onder de nieuwe opnieuw vergrendeld, zodat een oude uitnodigingslink niets meer opent.
  5. Bestaande items worden op de achtergrond opnieuw ingepakt met de nieuwe sleutelversie.

Iemand verwijderen uit één privékanaal roteert de sleutel van dat kanaal op dezelfde manier.

Berichtenprotocollen volgen hetzelfde principe. Het versleutelingsoverzicht van WhatsApp (editie februari 2026) zegt dat telkens wanneer een groepslid vertrekt, alle deelnemers hun groepssleutel wissen en opnieuw beginnen. De IETF-standaard Messaging Layer Security, RFC 9420, gepubliceerd in juli 2023, brengt een groep bij een verwijdering naar een nieuwe epoch, met nieuw sleutelmateriaal dat het verwijderde lid niet kent.

Vergelijking van toegang intrekken en sleutelrotatie als een teamlid wordt verwijderd
Intrekken is serverbeleid met ongewijzigde sleutels; rotatie geeft nieuwe sleutelversies uit die de verwijderde persoon nooit ontvangt.

Wat rotatie niet kan terughalen

Rotatie beschermt de toekomst, niet het verleden. Alles wat de verwijderde persoon al heeft geopend, gedownload of gekopieerd op zijn eigen apparaat, blijft bij hem — geen enkel versleutelingsschema kan in iemands geheugen of op zijn schijf reiken. Wat rotatie garandeert is beperkter en toch waardevol: nieuwe opnames die na de verwijdering worden gedeeld, zijn voor hem onleesbaar, en de oude sleutel opent niets wat hij later van de server zou kunnen halen.

Twee gevolgen voor hoe een team werkt:

De gids voor een kennisbank voor teams behandelt hoe u beslist wat in welk kanaal thuishoort.

Als iemand zijn wachtwoord vergeet

In een systeem waarin de aanbieder geen sleutels heeft, kan support "wachtwoord vergeten" niet oplossen — dat is precies de bedoeling. Iemand in het team moet het oplossen.

Speak-Y doet dit met een Recovery Kit: bij het aanmaken van een werkruimte slaat de eigenaar een bestand op met een herstelsleutel, en elke kanaalsleutel wordt ook daarvoor verzegeld. Verliest een lid zijn wachtwoord en stelt hij een nieuw in, dan kan de houder van de Kit de kanaalsleutels opnieuw uitgeven aan zijn nieuwe sleutelpaar. De Kit herstelt alleen de toegang tot teamkanalen; persoonlijke opnames dekt hij nooit. Het is ook het gevoeligste bestand dat het team heeft, en het hoort daar waar het team zijn andere kritieke geheimen bewaart.

Delen met iemand buiten het team

Soms moet een transcriptie een klant of een collega zonder account bereiken. Een openbare deellink van Speak-Y versleutelt een aparte kopie van het item met een eigen, nieuwe sleutel en zet die sleutel in het fragment van de URL. Wie de volledige link heeft, kan het item in een browser lezen; de server bewaart alleen cijfertekst. Wie de link intrekt, verwijdert hem van de server. Net als bij een uitnodiging is de link het geheim, en een kopie die iemand al heeft geopend, wordt niet teruggehaald.

Vier vragen voor elke leverancier

  1. Wat gebeurt er met de sleutels als een lid wordt verwijderd? "De toegang wordt ingetrokken" is een beleidsantwoord; "de sleutel wordt geroteerd" is een cryptografisch antwoord.
  2. Kan de server namen van kanalen en werkruimtes lezen? Namen zeggen vaak evenveel als de inhoud.
  3. Als een lid zijn wachtwoord vergeet, wie kan de toegang dan herstellen? Is het antwoord de leverancier, dan heeft de leverancier een sleutel.
  4. Bevat een uitnodigings- of deellink sleutelmateriaal, en verloopt hij? Beide antwoorden kunnen prima zijn, zolang de leverancier weet welk van de twee het is.
Vier vragen aan een leverancier over end-to-end versleuteld delen in teams
Sleutels bij verwijdering, namen op de server, wachtwoordherstel, en wat een uitnodigingslink bevat.

In Speak-Y is delen in teams beschikbaar in de macOS-app. Een werkruimte aanmaken kan vanaf het Pro-abonnement, en teamgenoten sluiten gratis aan op elk abonnement. De pagina over Speak-Y Teams laat zien hoe gedeelde kanalen er in het dagelijks gebruik uitzien, en waarom vergadernotities end-to-endversleuteling nodig hebben legt uit waarom de transcriptie op uw eigen apparaat moet plaatsvinden om dit alles mogelijk te maken.

FAQ

Hoe kan een team end-to-end versleutelde bestanden delen als de server ze niet kan lezen?

Elk gedeeld item wordt versleuteld met een eigen willekeurige sleutel, en die sleutel wordt vergrendeld met een kanaalsleutel. De kanaalsleutel wordt vervolgens voor elk lid apart verzegeld met de publieke sleutel van dat lid. De server bewaart alleen deze verzegelde kopieën, dus hij kan ze bij de juiste mensen afleveren maar er geen enkele van openen.

Wat gebeurt er met de versleutelingssleutels als iemand uit een teamkanaal wordt verwijderd?

In een ontwerp dat verwijdering cryptografisch afdwingt, verwijdert de server de kopie van de kanaalsleutel van de verwijderde persoon, en de app van een overgebleven lid maakt een nieuwe versie van de sleutel en verzegelt die alleen voor de mensen die blijven. Oudere items worden daarna opnieuw vergrendeld onder de nieuwe versie. Speak-Y Teams werkt zo; sommige bekende producten trekken alleen de servertoegang in en houden dezelfde sleutels.

Kan een verwijderd teamlid nog lezen wat eerder is gedeeld?

Alles wat de persoon al heeft geopend, gedownload of gekopieerd, blijft bij hem. Geen enkel versleutelingsschema kan leesbare tekst terughalen die al op iemands scherm heeft gestaan. Sleutelrotatie beschermt wat na de verwijdering wordt gedeeld en voorkomt dat de oude sleutel inhoud opent die later van de server wordt opgehaald.

Wat als een teamlid zijn wachtwoord vergeet in een end-to-end versleutelde werkruimte?

De aanbieder kan de toegang niet herstellen, omdat hij de sleutels nooit heeft gehad. Speak-Y lost dit op met een Recovery Kit: een bestand dat de eigenaar van de werkruimte opslaat bij het aanmaken van de werkruimte, en waarmee kanaalsleutels opnieuw kunnen worden uitgegeven aan een lid dat een nieuw wachtwoord heeft ingesteld. De Kit dekt niemands persoonlijke opnames.

Is een uitnodigingslink naar een versleutelde werkruimte gevoelig?

Dat kan. In Speak-Y bevat de uitnodigingslink de werkruimtesleutel in het deel van de URL na de #, dat browsers en apps nooit naar de server sturen. Uitnodigingen zijn eenmalig en verlopen, en het verwijderen van een lid roteert de werkruimtesleutel, maar zolang de link niet is gebruikt, behandelt u hem als een wachtwoord.