Dreigingsmodel
Wie wat kan zien, en wat hem tegenhoudt
Een dreigingsmodel is alleen nuttig als het de tegenstanders waartegen het verliest even duidelijk noemt als die het verslaat. Elke rij hieronder laat zien wat die tegenstander ziet, wat hij niet kan bereiken, welke verdediging er is en wat toch mogelijk blijft.
PrivaMesh is ontworpen tegen een beheerder die je gegevens wil, een chain-waarnemer die alles leest wat openbaar is en een bedrieger die het toevoegen van een contact probeert te onderscheppen. Het is het zwakst tegen een wereldwijde timinganalist en biedt helemaal niets tegen een gecompromitteerd apparaat.
| Tegenstander | Ziet | Kan niet | Verdediging | Nog mogelijk |
|---|---|---|---|---|
| PrivaMesh, de beheerder | Dat een account voor een verzending heeft betaald, en wanneer | Berichten lezen, ontvangers achterhalen, je contacten oplijsten of de geschiedenis reconstrueren | Geen accountdatabase of berichtenopslag; blinde tokens ontkoppelen betaling en verzending | We kunnen worden gedwongen te tonen dat een account op een bepaald moment iets heeft verzonden |
| De RPC-provider | Je IP-adres, tijdstip van verzoeken, de transacties die je indient | Iets ontsleutelen, of zien welk eenmalig adres van wie is | Het eindpunt is vervangbaar en zelf te hosten | Een provider die logt, bouwt op netwerkniveau een beeld op van wanneer je actief bent |
| Een chain-waarnemer | Opgevulde versleutelde tekst, eenmalige adressen, exacte transactietijden | Inhoud lezen, of twee berichten uit hetzelfde gesprek koppelen | Stealth-adressen, vaste opvulniveaus, optioneel dekverkeer | Zonder dekverkeer is je activiteitspatroon over tijd volledig zichtbaar |
| Een wereldwijde timinganalist | Gecorreleerde activiteit over het hele netwerk tegelijk | Ontsleutelen, of adressen cryptografisch koppelen | Dekverkeer met willekeurige tussenpozen van 3-10 minuten, indien ingeschakeld | Tegen deze tegenstander verdedigen we het slechtst; een waarnemer van het hele netwerk met onbeperkte opslag valt buiten wat enig ontwerp per bericht kan oplossen |
| Iemand met je ontgrendelde telefoon | Alles: leesbare tekst, contacten, sleutels | Berichten herstellen die de ratchet al heeft gewist | Opslag in de sleutelhanger achter Face ID of Touch ID; forward secrecy beperkt het verleden; een dwangcode wist het account in plaats van het te openen | Compromittering van het apparaat is totaal voor alles wat er nu op staat, en een dwangcode helpt alleen op het moment dat je wordt gevraagd te ontgrendelen - niet als de opslag al eerder is gekopieerd |
| Iemand met je herstelzin | Je identiteit, en kan zich voortaan als jou voordoen | Het ratchet-deel van eerdere gesprekken lezen - die sleutels waren willekeurig en bleven op het apparaat | De zin verlaat je apparaat nooit en wordt nooit verzonden | Identiteitssleutel, ondertekende prekey en PQ-prekey worden allemaal uit de zin afgeleid en er worden geen eenmalige prekeys gepubliceerd, dus het openingsbericht van elk gesprek kan worden herberekend uit de zin plus de permanente envelop op de chain. Intrekken kan ook niet |
| Een kwaadwillend contact | Alles wat je stuurt, en kan het screenshotten of doorsturen | Andere mensen met wie je praat bereiken of andere gesprekken lezen | Blokkeren en aparte sleutels per gesprek | Geen cryptografie voorkomt dat je gesprekspartner onbetrouwbaar is |
| Een bedrieger bij het toevoegen van een contact | Niets, als de verificatie slaagt | Zijn sleutel in de plaats zetten van een contact wiens bundel on-chain is ondertekend | Met de wallet ondertekende prekey-bundels, on-chain gepubliceerd, zodat geen register de sleutel van een account kan vervangen | Er is geen veiligheidsnummer of vingerafdruk om te vergelijken, dus bevestigen dat het account van de bedoelde persoon is, gebeurt volledig buiten de app en zonder hulp |
| Apple | Dat je Apple ID een abonnement heeft gekocht | Berichten of contacten zien, of de aankoop aan je verzendactiviteit koppelen | Blinde tokens zitten tussen de aankoop en elke verzending | Apple weet dat je klant bent van PrivaMesh; op iOS is dat onvermijdelijk |
| Een censor op netwerkniveau | Dat je een Solana-RPC-eindpunt hebt bereikt | Afzonderlijke berichten lezen of selectief laten vallen | RPC-eindpunten zijn vervangbaar, ook door je eigen | Wie Solana of elke RPC blokkeert, blokkeert de bezorging volledig |
Wat dit model aanneemt
Dat de cryptografische primitieven standhouden: X3DH, de Double Ratchet, AES-256-GCM en, op iOS 26, ML-KEM-768. Dat je apparaat niet al gecompromitteerd is. Dat je controleert of het contact dat je toevoegt de bedoelde persoon is. Faalt een daarvan, dan redt de rest van het ontwerp je niet.
Het neemt ook aan dat onze implementatie van die primitieven correct is - daarom is de broncode openbaar en wordt een gevonden fout betaald. De volledige lijst van wat niet gedekt is, staat bij bekende beperkingen.
Veelgestelde vragen
Waartegen verdedigt PrivaMesh het slechtst?
Tegen een wereldwijde tegenstander die het hele netwerk continu in de gaten houdt en alles bewaart. Dekverkeer verhoogt de kosten van timingcorrelatie, maar verslaat geen waarnemer op die schaal, en de chain bewaart een permanent archief om mee te werken.
Als mijn apparaat in beslag wordt genomen, wat ligt er dan bloot?
Alles wat er nu op staat: leesbare tekst, contacten en sleutels, tenzij het vergrendeld is en de aanvaller niet langs Face ID komt. Forward secrecy beperkt de schade tot wat de ratchet nog niet heeft gewist - oude berichten zijn al onherstelbaar. Word je gedwongen het zelf te ontgrendelen, dan wist een dwangcode het account in plaats van het te openen.
Kan PrivaMesh worden gedwongen mijn gegevens af te geven?
Het kan worden gevraagd. Wat er af te geven valt, is dat een account op een bepaald moment voor een verzending heeft betaald. Er is geen berichtinhoud, geen ontvanger, geen contactenlijst en geen accountgegeven, omdat niets daarvan wordt opgeslagen.
Helpt een VPN?
Ja, tegen de RPC-provider en een waarnemer op netwerkniveau, de twee tegenstanders die je IP zien. Het verandert niets aan wat op de chain wordt geschreven, en dat is al onleesbaar.