Beveiliging
De meeste telefoons hebben geen duress-pin, dus bouwden we noodwissen in Morse Messenger
Bijgewerkt op 7 november 202610 min lezen
Kort antwoord: alleen GrapheneOS heeft een ingebouwde duress-pin. iPhones, Samsung-telefoons en Pixels met de eigen software van Google hebben er geen. Morse Messenger kan de rest van je telefoon niet beschermen, maar je chats in Morse wel: zet noodwissen aan, en met twee tikken wis je alles in Morse, zelfs vanaf het vergrendelscherm van de app, zonder te ontgrendelen. Je één-op-één-chats verdwijnen ook van de telefoons van je contacten. Een echte duress-pin voor Morse komt eraan.
Hier lees je wat een duress-pin is, waarom je telefoon er waarschijnlijk geen heeft, en hoe we noodwissen hebben gebouwd: wat het wist, wat er op de telefoons van je contacten gebeurt, en waar de grenzen liggen.
Wat is een duress-pin?
Een duress-pin (duress is Engels voor dwang) is een tweede ontgrendelcode. Je stelt hem in naast je gewone code. Zet iemand je ooit onder druk om je telefoon te ontgrendelen, dan typ je in plaats daarvan de duress-pin, en de telefoon wist zichzelf in plaats van open te gaan.
Het idee erachter is simpel. End-to-end-encryptie beschermt je berichten onderweg, en een vergrendelde telefoon beschermt ze zolang ze erop staan. Geen van beide helpt nog zodra iemand je dwingt hem te ontgrendelen. Op dat moment is wissen de enige bescherming die je nog hebt.
En het gaat niet alleen om jou. In je chats staan ook de woorden van anderen: de vriend die je iets in vertrouwen vertelde, je familie, de mensen met wie je werkt. Wissen beschermt hen ook.
Een paar momenten waarop het ertoe doet:
- Iemand grijpt je telefoon terwijl die open is, of dwingt je hem te openen.
- Een partner die je telefoon controleert. Voor iemand in een controlerende relatie kan een chat met een vriend of een hulpverlener op die telefoon gevaarlijk zijn.
- Journalisten, activisten en iedereen aan wie mensen iets gevoeligs toevertrouwen. Werk je met bronnen, dan behandelt onze gids berichten voor journalisten de rest.
Heeft jouw telefoon een duress-pin?
Vrijwel zeker niet. GrapheneOS, een alternatief Android-systeem voor Pixel-telefoons, voegde er in 2024 een toe. Typ je hem in waar de telefoon ook om zijn pincode vraagt, dan zal hij “het toestel onomkeerbaar wissen”, in de woorden van GrapheneOS zelf.
iPhones, Samsung-telefoons en Pixels met de eigen software van Google hebben niets vergelijkbaars. Op een iPhone komt een instelling die het toestel wist na 10 mislukte pogingen met de toegangscode het dichtst in de buurt, maar die helpt niet als iemand je dwingt de juiste in te typen. En een hele telefoon wissen neemt alles mee: je foto's, je andere apps, gewoon alles.
Berichtenapps vullen dat gat meestal ook niet. De meeste laten je alleen je account verwijderen of je chats wissen vanuit de app, en de mensen met wie je praatte, houden meestal hun kopie.
Noodwissen in Morse Messenger
Dus hebben we het in Morse gebouwd. Noodwissen staat standaard uit, want een knop die alles wist, moet geen knop zijn die je per ongeluk raakt. Zo zet je het aan:
- 1Open het tabblad Jij, en dan Privacy & Beveiliging.
- 2Tik op Paniekknop. Die krijgt in onze volgende update zijn nieuwe naam, Noodwissen.
- 3Zet Paniekknop tonen aan. Als je wilt, zet je daarnaast Ook opgeslagen foto's en video's wissen aan.
Vanaf dan staat er een wisknop in de app en op het vergrendelscherm van Morse. Met twee tikken wis je alles: de knop, en dan Alles wissen. Je hoeft Morse niet eerst te ontgrendelen.
Morse is beschikbaar voor iPhone. Noodwissen zit ook in de Android-app, die binnenkort verschijnt.
Wat er na de twee tikken gebeurt
Binnen een paar seconden:
- 1Morse vraagt onze server om je account te verwijderen, zolang je telefoon nog verbinding heeft.
- 2Het vernietigt de sleutel die de database van Morse opent. Elk bericht en elk contact erin wordt in één klap onleesbaar.
- 3Het verwijdert de databasebestanden en alles waar de sleutel niet voor geldt: foto's en video's die je hebt geopend, spraak- en camera-opnames, tijdelijke bestanden, meldingen op je scherm, de badge van de app, en je klembord als daar nog iets op staat dat je in Morse hebt gekopieerd.
- 4Het controleert of er niets is achtergebleven, en pakt alles wat het heeft overleefd nog een keer aan.
- 5De telefoons van je contacten verwijderen je één-op-één-chat met hen, en jou uit hun contacten.
Noodwissen, stap voor stap
Morse ontgrendelen
Alles wissen?
Alles wissenAlles wissen…
Je account wordt verwijderd op onze server
De sleutel wordt vernietigd: de database wordt ruis
Om 8 uur dan?x7#qL9@vR2!kZp8&Bestanden, meldingen en klembord worden verwijderd
Een laatste controle: er is niets over
Je chat verdwijnt van de telefoons van je contacten
Daarna staat Morse weer op zijn welkomstscherm, alsof de app net is geïnstalleerd. En er valt ook niets terug te halen: de sleutels die de gegevens van Morse openen, worden alleen voor jouw telefoon opgeslagen, dus zelfs een back-up ervan is op een ander apparaat niet te lezen.
Hoe het werkt, voor wie het technisch wil weten
Waarom een sleutel vernietigen in plaats van bestanden verwijderen? Op het flashgeheugen van een telefoon is een bestand na het verwijderen niet betrouwbaar weg. De chip verspreidt zijn schrijfacties zodat hij gelijkmatig slijt, dus oude gegevens kunnen blijven hangen op plekken waar een app niet bij kan. Daarom vertrouwt Morse niet op verwijderen. De database is versleuteld op je telefoon, met een sleutel in de beveiligde sleutelopslag van de telefoon. Vernietig die sleutel, en wat er nog op de chip staat, is ruis. Dat heet een crypto-erase, en het duurt met tienduizend berichten niet langer dan met tien.
Maar is die sleutel dan niet gewoon nog meer gegevens op dezelfde chip? Terechte vraag, en de pinvergrendeling is het antwoord. Staat de pinvergrendeling van Morse aan, dan zit de databasesleutel zelf twee keer op slot: met je pincode, en met een sleutel die wordt bewaard door de Secure Enclave op de iPhone of de Android Keystore op Android, en die nooit uit de telefoon gekopieerd kan worden. Het wissen verwijdert ook die hardwaresleutel. Dus zelfs als er ergens op de chip een vergrendelde kopie van de databasesleutel blijft hangen, bestaat er niets meer dat hem kan openen.
Waarom één sleutel verwijderen genoeg is
Je pincode
Hardwaresleutel
Secure Enclave of Android Keystore. Verlaat nooit de telefoon.
Verwijderd door het wissen
Databasesleutel
Er kan een vergrendelde kopie op de chip blijven hangen. Niets kan hem nog openen.
Je berichten
Waarom het op het vergrendelscherm kan? Omdat je een sleutel niet nodig hebt om hem te vernietigen. Wissen opent de database nooit, dus Morse kan het doen zonder je pincode. Het enige wat het wissen nodig heeft terwijl Morse vergrendeld is, is toestemming om je account op onze server te verwijderen. Morse bewaart daarvoor een verwijdertoken, dat ook leesbaar is als de app vergrendeld is. Dat token is alleen goed voor het verwijderen van het account: het kan niets lezen of versturen.
Waarom de server eerst: de telefoons van je contacten horen alleen via onze server dat je weg bent. Dus vraagt Morse het eerst aan de server, terwijl je telefoon nog verbinding heeft, en wacht het maar kort. Een traag netwerk houdt het wissen op je telefoon nooit op: komt er geen antwoord, dan wordt je telefoon toch gewist.
Vóór dat alles stopt Morse alles wat het op de achtergrond doet, zodat niets midden in het wissen nieuwe gegevens wegschrijft. Daarna gaat het account, dan de sleutel, dan de bestanden, en tot slot volgt de controle.
Opgeslagen foto's waren het lastige deel. Een iPhone kan geen lijst geven van “de foto's die deze app heeft opgeslagen”, dus houdt Morse bij elke foto die het opslaat zijn eigen lijst bij, en gebruikt die lijst om ze te verwijderen. iOS vraagt je om het verwijderen van foto's te bevestigen. Dat is een regel van Apple, dus wist Morse eerst je chats en kan die vraag niets ophouden. Op Android 10 en nieuwer verwijdert Morse de foto's en video's die het in zijn eigen mappen heeft opgeslagen.
Wil je het volledige plaatje van hoe Morse je gegevens opslaat en beschermt? Dat staat in onze whitepaper over de beveiliging (in het Engels).
De details waar het meeste werk in zat
Wissen klinkt simpel: alles verwijderen. Het meeste werk zat in de plekken waar “alles” zich verstopt, en in de dingen die in de weg kunnen zitten:
- Midden in het wissen kan er een bericht binnenkomen. Op de iPhone worden meldingen afgehandeld door een klein, apart proces dat op elk moment wakker kan worden, en een bericht dat het opsloeg terwijl de database werd vernietigd, zou kunnen overleven. Daarom zegt het wissen tegen dat proces dat het moet stoppen met schrijven, nog voordat er iets wordt verwijderd.
- Een deel van het opruimen loopt via de eigen diensten van de telefoon: het weghalen van de badge van de app, van de meldingen op je scherm, van de suggesties die je telefoon uit je chats heeft geleerd. Die kunnen traag reageren. Geen ervan mag het wissen ophouden: elk krijgt een korte tijdslimiet, en het wissen gaat verder.
- Een bestand is niet weg zolang er nog iets naar verwijst. Om video's af te spelen, maakt de app extra koppelingen naar ontsleutelde bestanden, dus alleen de mediamap verwijderen zou die video's op de telefoon hebben laten staan. Het wissen maakt in plaats daarvan de hele tijdelijke map leeg, wat er ook in staat.
- Om de foto's te wissen die Morse heeft opgeslagen, is op de iPhone volledige toegang tot je fotobibliotheek nodig, en daar vraagt Morse anders nooit om. Daarom is het een aparte schakelaar: je geeft die toegang alleen als je wilt dat die foto's ook worden gewist.
Hoe we zorgen dat er niets wordt vergeten
Het wissen is maar zo goed als de lijst erachter. Een messenger bewaart dingen op meer plekken dan je zou denken: de database, de sleutelopslag van de telefoon, instellingen, caches, tijdelijke bestanden, de delen van de app die op de achtergrond draaien. Ze staan stuk voor stuk op één lijst, op iPhone en op Android, met tests.
Die lijst kan alleen achterlopen als de app groeit, dus hebben we het moeilijk gemaakt om iets te vergeten: een regel in onze codebase zegt dat geen nieuwe plek om gegevens op te slaan wordt uitgebracht zonder dat die aan het wissen is toegevoegd, met een test, in dezelfde wijziging.
En het wissen gaat er nooit van uit dat het gelukt is. Als het klaar is, controleert het elk item op de lijst, en pakt het alles wat er nog staat nog een keer aan.
Wat er op onze server gebeurt
Aan onze kant verwijdert het wissen je account en alles wat eraan vastzit: je sleutels, berichten die nog wachten om aan jou te worden bezorgd, je registratie voor pushmeldingen, je versleutelde profiel en profielfoto, je openstaande contactverzoeken en je profielen in groepen. Daarna laat de server de telefoons van je contacten weten dat je weg bent.
De gegevens van je App Store-abonnement blijven bewaard, gemarkeerd als gebruikt en niet langer gekoppeld aan je Morse ID, zodat ze niet naar een nieuw account kunnen worden overgezet. Je berichten waren op onze server om te beginnen al nooit leesbaar: die geeft altijd alleen versleutelde berichten door.
Waartegen het beschermt, en waartegen niet
Je kunt de grenzen beter nu kennen dan ze op het slechtste moment ontdekken:
Iemand opent Morse op je telefoon
- Na het noodwissen
- Niets te zien: Morse staat weer op zijn welkomstscherm
Iemand kopieert de opslag van je telefoon
- Na het noodwissen
- De gegevens van Morse zijn niet te lezen: de sleutel die ze opende, is weg
Je één-op-één-chats op de telefoons van je contacten
- Na het noodwissen
- Verwijderd, zodra onze server je account heeft verwijderd
Je telefoon heeft geen verbinding als je wist
- Na het noodwissen
- Je telefoon wordt volledig gewist, maar de telefoons van je contacten krijgen geen bericht, dus houden ze hun kopie
Iemand kijkt mee terwijl je erop drukt
- Na het noodwissen
- Die ziet dat je het doet. Daar is een duress-pin voor
Berichten die je in groepschats hebt gestuurd
- Na het noodwissen
- Die blijven in die groepen
Screenshots, of alles wat iemand uit Morse heeft gekopieerd
- Na het noodwissen
- Buiten ons bereik
De rest van je telefoon
- Na het noodwissen
- Blijft staan: noodwissen wist alleen Morse
| Na het noodwissen | |
|---|---|
| Iemand opent Morse op je telefoon | Niets te zien: Morse staat weer op zijn welkomstscherm |
| Iemand kopieert de opslag van je telefoon | De gegevens van Morse zijn niet te lezen: de sleutel die ze opende, is weg |
| Je één-op-één-chats op de telefoons van je contacten | Verwijderd, zodra onze server je account heeft verwijderd |
| Je telefoon heeft geen verbinding als je wist | Je telefoon wordt volledig gewist, maar de telefoons van je contacten krijgen geen bericht, dus houden ze hun kopie |
| Iemand kijkt mee terwijl je erop drukt | Die ziet dat je het doet. Daar is een duress-pin voor |
| Berichten die je in groepschats hebt gestuurd | Die blijven in die groepen |
| Screenshots, of alles wat iemand uit Morse heeft gekopieerd | Buiten ons bereik |
| De rest van je telefoon | Blijft staan: noodwissen wist alleen Morse |
Je kunt het niet ongedaan maken. Het account is weg, en je hebt een nieuw account nodig.
Hierna: een duress-pin voor Morse
Noodwissen is voor het moment ervoor. Een duress-pin is voor het moment zelf: een tweede pincode voor het vergrendelscherm van Morse, die je kunt typen als iemand je dwingt de app te openen, en die alles wist in plaats van de app te openen. Die komt in een toekomstige update.
Tot die tijd houden twee dingen klein wat er op het spel staat. Zet verdwijnende berichten aan voor de chats die ertoe doen, zodat er om te beginnen minder op je telefoon staat. En Morse heeft geen gekoppelde apparaten, dus niemand kan je berichten lezen vanaf een andere telefoon door er stiekem een toe te voegen terwijl die persoon jouw telefoon vasthoudt.
Kort samengevat
De meeste telefoons kunnen zichzelf niet wissen als je gedwongen wordt ze te ontgrendelen, en de meeste messengers kunnen je chats niet snel even wissen. Morse Messenger kan het wel: twee tikken, vanuit de app of vanaf het vergrendelscherm, en je één-op-één-chats verdwijnen ook van de telefoons van je contacten.
Zet het aan voordat je het nodig hebt: op het tabblad Jij, onder Privacy & Beveiliging, Paniekknop. En ben je benieuwd hoe we Morse verder bouwen? We schreven over het bouwen van een messenger zonder telefoonnummers (in het Engels).
Bronnen
- 1.Duress PIN/PasswordGrapheneOS, overzicht van de functies (in het Engels).
- 2.GrapheneOS release 2024053100GrapheneOS, mei 2024: de release die de duress-pin toevoegde (in het Engels).
- 3.Set a passcode on iPhoneApple, iPhone-gebruikershandleiding.
FAQ
Veelgestelde vragen
Lees verder
- Kan iemand je WhatsApp-berichten lezen vanaf een andere telefoon? Zo check je hetJa, en meestal zonder dat er ook maar iets aan versleuteling wordt gekraakt. De drie manieren waarop het gebeurt, hoe je elke app in een paar minuten controleert, en hoe je mensen buitensluit.
- Is Telegram end-to-end versleuteld?Kort antwoord: alleen soms. Welke Telegram-chats end-to-end versleuteld zijn, welke niet, en hoe je het aanzet.
- De veiligste berichtenapps in 2026Signal, WhatsApp, Telegram, Threema, Session, SimpleX en Morse, eerlijk vergeleken, haken en ogen inbegrepen.