Privacy First: Open Source End To End Encryption (E2EE) op DeHub
Door DeHub Team — 2025-10-22
Hoe DeHub's end-to-end encryptie werkt
Privacybescherming 🔒 van militaire kwaliteit
Bij DeHub hebben we End-to-End Encryption (E2EE) van militaire kwaliteit geïmplementeerd om ervoor te zorgen dat je gesprekken volledig privé blijven. Wanneer je een bericht verzendt, kunnen alleen jij en je ontvanger het lezen - zelfs de servers van DeHub hebben geen toegang tot je gedecodeerde berichten.
🛡️ Wat maakt onze E2EE veilig?
Zero-Trust Architectuur
We gebruiken gecontroleerde cryptografische bibliotheken zonder afhankelijkheid uit de @ noble-suite - dezelfde cryptografische basis waarop beveiligingsexperts over de hele wereld vertrouwen:
• @noble/ciphers - Voor geverifieerde encryptie • @noble/curves - Voor elliptische curve cryptografie • @noble/hashes - Voor cryptografische hashing
Beproefde versleutelingsalgoritmen
XChaCha20-Poly1305 - Berichtversleuteling
• Moderne geverifieerde codering die wordt gebruikt door Signal, WhatsApp en beveiligde berichten-apps • Biedt zowel vertrouwelijkheid (berichten kunnen niet worden gelezen) als authenticiteit (berichten kunnen niet worden gemanipuleerd) • Razendsnelle prestaties, zelfs op mobiele apparaten
X25519 ECDH - Sleuteluitwisseling
• Elliptische kromme Diffie-Hellman voor veilige sleutelovereenkomst • Biedt perfecte voorwaartse geheimhouding - elk gesprek maakt gebruik van unieke sessiesleutels • Gebaseerd op Curve25519, met 128-bits beveiligingsniveau
HKDF-SHA256 - Sleutelafleiding
• Industriestandaard sleutelafleiding van gedeelde geheimen • Zorgt voor cryptografische scheiding tussen verschillende gesprekken • Deterministische maar veilige sleutelgeneratie
🔐 Hoe het werkt: de volledige flow
Fase 1: Eenmalige instelling (E2EE inschakelen)
Wanneer je E2EE in DeHub inschakelt, gebeurt dit als volgt:
- Verzoek om portemonneehandtekening
• U wordt gevraagd om een bericht te ondertekenen: "E2EE inschakelen voor Holder Chat" • Uw portemonnee produceert een unieke cryptografische handtekening • Deze handtekening verlaat nooit uw apparaat
- Private Key Generation
Your Wallet Signature → [SHA-256 hash] → 32-byte seed → [HKDF afleiding] → Your Private Key (32 bytes) • Your private key is derived from your wallet signature • Never transferred to DeHub servers • Never stored anywhere except your device
- Aanmaken van openbare sleutel
Privésleutel → [X25519-bewerking] → Openbare sleutel (32 bytes) → [Base64-codering] → Geüpload naar DeHub-database • Uw openbare sleutel is wiskundig gekoppeld aan uw persoonlijke sleutel • Veilig om openbaar te delen - deze wordt door anderen gebruikt om berichten voor u te versleutelen • Opgeslagen in de database van DeHub zodat anderen deze kunnen vinden
Wat wordt er opgeslagen: • Op uw apparaat (IndexedDB): privésleutel, sessiesleutels (24-uurs cache) • Op DeHub-servers: openbare sleutel, E2EE-status ingeschakeld, tijdstempel voor het maken van sleutels
Fase 2: Een gesprek starten
Wanneer je chat met iemand die ook E2EE heeft ingeschakeld:
Uw privésleutel (van uw apparaat) + hun openbare sleutel (van DeHub-database) → [X25519 ECDH Magic] → Gedeeld geheim (32 bytes) → [HKDF met gesprekscontext] → Sessiesleutel (32 bytes)
Belangrijkste kenmerken: • Perfecte voorwaartse geheimhouding - Elk gesprek heeft een unieke sessiesleutel • Prestatieoptimalisatie - Sessietoetsen worden 24 uur in de cache opgeslagen • Beide partijen krijgen dezelfde sleutel - ook al zijn ze onafhankelijk afgeleid!
Fase 3: Een bericht verzenden
Wanneer u "Hallo, wereld!" typt en verzendt:
- Berichtvoorbereiding
"Hallo, wereld!" → [UTF-8-codering] Bytes → in platte tekst: [72, 101, 108, 108, 111, ...]
- Encryption
Plaintext bytes + Session Key + Random Nonce (24 bytes, vers gegenereerd) → [XChaCha20-Poly1305-encryptie] → Ciphertext + Authentication Tag (16 bytes) → [Base64-codering] → Klaar voor DeHub-servers
- Opslag - DeHub's database slaat op:
✅ Wie het heeft verzonden (uw adres) ✅ Wie het ontvangt (adres van de ontvanger) ✅ Wanneer het is verzonden (tijdstempel) ✅ Versleutelde wartaal (de cijfertekst) ❌ Wat het zegt (volledig onleesbaar)
Wat DeHub ziet: we kunnen metagegevens zien (wie, wanneer, het aantal berichten), maar nooit de werkelijke inhoud - het is gewoon gecodeerde wartaal voor ons!
Fase 4: Een bericht ontvangen
Wanneer iemand je een versleuteld bericht stuurt:
- Ophalen uit database
DeHub haalt op: encrypted_content + nonce + versie
- Sessiesleutel ophalen
Cache controleren → Als gevonden, gebruik deze dan ↓ Als niet gevonden Nieuwe sessiesleutel afleiden met behulp van ECDH (hetzelfde als fase 2)
- Decryptie
Ciphertext + Authentication Tag + Nonce + Session Key → [XChaCha20-Poly1305 decryptie] → Platte tekst bytes (authenticatie geverifieerd!) → [UTF-8 decodering] → "Hello, world!" verschijnt op je scherm
Beveiligingsverificatie: ✅ Authenticiteit geverifieerd - De authenticatielabel bewijst dat er niet met het bericht is geknoeid ✅ Correcte afzender - Alleen iemand met de privésleutel van de afzender kan deze versleutelingstekst maken ✅ Replay Protection - Unieke nonce voorkomt dat oude berichten opnieuw worden afgespeeld
🛡️ Wat E2EE Beveiligt vs. Wat Het Niet Beveiligt
✅ Volledig Beveiligd
• Berichtinhoud - Volledig gecodeerd voordat u uw apparaat verlaat • Berichtintegriteit - Kan niet worden gewijzigd zonder detectie • Privésleutels - Verlaat nooit uw apparaat, nooit verzonden • Voorwaartse geheimhouding - Unieke sleutels per gesprek • Authenticiteit - Gegarandeerde identiteit van de afzender
⚠️ Metadata (Zichtbaar voor DeHub)
Net als alle E2EE-systemen (Signal, WhatsApp, etc.), moet sommige metadata zichtbaar zijn voor het functioneren van de app:
• Wie u berichten stuurt (adressen afzender/ontvanger) • Wanneer berichten worden verzonden (tijdstempels) • Hoeveel berichten worden uitgewisseld (aantal berichten) • Berichttype (tekst/afbeelding/stem - maar niet de inhoud)
Waarom? Deze metagegevens zijn nodig voor het routeren en bezorgen van berichten. Zonder dit zouden we je berichten niet kunnen bezorgen!
🚀 Huidige Status & Roadmap
Nu ✅ live
✅ Op portemonnee gebaseerde sleutelgeneratie (geen wachtwoorden!) ✅ Automatische DM-encryptie/decryptie ✅ Sessietoets caching ✅ Perfecte voorwaartse geheimhouding ✅ E2EE-statusbadges ✅ Achterwaartse compatibiliteit met niet-versleutelde berichten
🚧 Binnenkort beschikbaar
🔜 Groepsberichtversleuteling - Versleutelde groepschats 🔜 Mediaversleuteling - Afbeeldingen, GIF's, spraakberichten Sleutelverificatie -🔜 Verifieer de identiteit van uw contactpersoon met QR-codes Sleutelback-up en -herstel🔜 - Maak veilig een back-up van uw versleutelingssleutels 🔜 Multi-device sync - Gebruik E2EE op verschillende apparaten
💡 Waarom dit belangrijk is
DeHub kan nooit:
❌ Lees je berichten ❌ Toegang tot je privésleutels ❌ Ontcijfer je gesprekken ❌ Deel je berichtinhoud met iedereen
Zelfs als:
🚨 De servers van DeHub zijn gehackt 🚨 We hebben een overheidsbevel gekregen 🚨 Een malafide werknemer probeert toegang te krijgen tot gegevens
Uw berichten blijven versleuteld en onleesbaar. Dat is de kracht van echte end-to-end encryptie.
🎯 DeHub's toewijding aan privacy
Bij DeHub geloven we dat privacy een fundamenteel recht is. Onze E2EE-implementatie zorgt ervoor dat uw gesprekken echt privé worden beschermd door wiskunde, niet alleen door beleid. We hebben gekozen voor toonaangevende cryptografische bibliotheken en algoritmen om je hetzelfde beveiligingsniveau te bieden dat wordt gebruikt door Signal, WhatsApp en andere privacygerichte berichtenplatforms.
Uw berichten. Uw privacy. Altijd.
DeHub openen