Beveiliging en architectuur
Laatst bijgewerkt: 16 oktober 2026
Dit is een vertaling; de Franse tekst is leidend.
Bouraq is een dienst van Intelectra. Deze pagina is bedoeld voor de securityteams die Bouraq moeten goedkeuren voordat het wordt gebruikt. Ze beschrijft het systeem zoals het vandaag werkt, inclusief de beperkingen. Vragen die hier niet worden beantwoord: contact@getbouraq.com. Voor de goedkeuring bundelt het goedkeuringsdossier gegevensstromen, beheersmaatregelen, pilot en formulieren.
In het kort
- Heenweg via licht: Bouraq Prism, een HTML-bestand dat vanaf de schijf wordt geopend, versleutelt bestanden met de sleutel van het account en toont ze als QR-codes; een toegestane camera leest ze en stuurt ze naar de ruimte van het account, waar ze worden samengevoegd en gecontroleerd (sha256).
- Terugweg via een kanaal dat u kiest: de privé GitHub- of GitLab-repository van de gebruiker, of een USB-stick. Deze weg loopt nooit via onze servers.
- Niets te installeren, geen netwerktoegang geopend: geen agent, geen uitvoerbaar bestand, geen synchronisatie op de achtergrond. De offline pc zendt alleen licht uit.
- Momenteel geen end-to-endversleuteling: onze server bewaart de sleutel van elk account en ontsleutelt de bestanden om ze samen te voegen. Zie „Wat onze server ziet”.
- Gehost in de Europese Unie: Hetzner, datacenter in Helsinki (Finland).
Gegevensstroom
Heenweg (offline pc → ruimte van de gebruiker):
- Op de offline pc comprimeert Prism de bestanden (zlib), versleutelt ze inclusief bestandsnaam met de sleutel van het account (XSalsa20-Poly1305) en verdeelt ze daarna over genummerde QR-codes met een integriteitscontrole.
- De Bouraq-app leest de codes met de camera van een telefoon of de webcam van een computer en stuurt ze via HTTPS naar de server, gekoppeld aan het aangemelde account.
- De server voegt de stroom weer samen, ontsleutelt hem met de sleutel van het account, controleert de sha256-vingerafdruk en plaatst het bestand in de ruimte van het account.
- Op de persoonlijke pc downloadt de gebruiker het bestand in een browser uit de eigen ruimte.
Terugweg (persoonlijke pc → offline pc): Prism verpakt de gewijzigde map in één tekstbestand (Repomix) en stuurt het naar de privérepository van de gebruiker, of slaat het op voor een USB-stick. Op de offline pc controleert Prism elk pad voordat het iets wegschrijft, en het verwijdert nooit een bestand. Deze route raakt onze servers niet.
Wat onze server ziet
Om een overdracht samen te voegen en te controleren, ontsleutelt de server die: hij ziet dus het bestand, de naam en de grootte ervan. Het bestand blijft na aankomst maximaal 7 dagen in de ruimte van het account staan en wordt daarna verwijderd; met de optie „Delete after download” wordt het verwijderd zodra het volledig is gedownload, en blijven alleen de naam, de grootte, de vingerafdruk en het ontvangstbewijs over; een overdracht boven het quotum wordt verwijderd zodra die is opgehaald, en uiterlijk na 24 uur. De applicatie claimt geen versleuteling van opgeslagen gegevens (at rest).
De server ziet nooit: de terugweg (privérepository of USB-stick), het toegangstoken voor GitHub of GitLab, of bestanden op de offline pc die de gebruiker niet heeft gekozen.
Eist uw organisatie dat inhoud nooit leesbaar is voor een derde, dan kan Bouraq draaien op een server die u zelf beheert: schrijf ons.
Cryptografie en accounts
- Versleuteling van overdrachten: XSalsa20-Poly1305 (TweetNaCl secretbox), een willekeurige sleutel van 32 bytes per account, een willekeurige nonce van 24 bytes per overdracht. Een gefotografeerde QR-code onthult zonder de sleutel niets van de inhoud.
- Sleutel met versienummer: wordt Prism vanuit de app vernieuwd, dan verandert de sleutel en weigert de server daarna eerdere kopieën.
- Integriteit: een controle per code en een sha256-vingerafdruk van het hele bestand, gecontroleerd voordat het bestand beschikbaar wordt gesteld.
- Transport: alleen HTTPS (TLS 1.2 en 1.3, certificaten van Let's Encrypt).
- Wachtwoorden: scrypt-hashes; het aantal inlogpogingen is beperkt. Browsersessie via een cookie met HttpOnly, Secure en SameSite=Lax, maximaal 30 dagen geldig.
- Tweefactorauthenticatie (TOTP, RFC 6238) voor elk account, met elke authenticator-app; een organisatie kan die verplicht stellen voor haar beheerders. Ook een token voor de opdrachtregel vereist de code.
Het bestand Bouraq Prism
Prism is één HTML-bestand van ongeveer 490 KB dat de gebruiker vanaf de schijf opent. Uw team kan het vóór gebruik lezen: alle code staat in het bestand.
- Content Security Policy:
default-src 'none'; de enige toegestane verbindingen zijnapi.github.comengitlab.com, en alleen wanneer de gebruiker de terugweg via een privérepository gebruikt. - Voordat Prism iets verstuurt of ophaalt, vraagt het de provider of de repository privé is, en weigert het een openbare of interne repository.
- Meegeleverde bibliotheken, met vastgezette versies en gecontroleerd via hash: pako 2.1.0, fflate 0.8.2, qrcode-generator 1.4.4, js-sha256 0.11.1, TweetNaCl 1.0.3.
- De gepersonaliseerde kopie bevat de sleutel van het account: bewaar die zoals inloggegevens.
- Controleer de kopie voordat u die naar binnen brengt: uw ruimte toont de SHA-256-vingerafdruk van uw kopie (
certutil -hashfile <file> SHA256op Windows,shasum -a 256op macOS,sha256sumop Linux). Elke uitgegeven kopie komt met die vingerafdruk en de sleutelversie in het auditlogboek; ook een sleutelvernieuwing wordt daar vastgelegd en trekt de oudere kopieën in. - Ondertekende versie: de instantie publiceert de ondertekende verklaring van het sjabloon van elke Prism-versie (/.well-known/bouraq-prism.json). De opdracht
bouraq-verify.py prismvan het verificatiescript verwijdert uit een kopie de enige accountregel en bewijst dat al het overige precies die code is, byte voor byte, zonder ooit de sleutel te tonen. - Elke code die Prism toont, draagt onder zijn nummer het account en de eerste 8 tekens van de sha256-vingerafdruk van het bestand, dezelfde als in het auditlogboek: een geautoriseerde overdracht is op het scherm herkenbaar, en onopvallend gebruik zou zichtbaar zijn voor collega's.
Hosting en subverwerkers
- Hetzner Online GmbH: server, database en bestanden, datacenter in Helsinki (Finland, EU).
- Cloudflare, Inc.: domeinnamen en ontvangst van e-mails aan contact@getbouraq.com.
- Stripe: betaling en abonnement; kaartgegevens bereiken ons nooit.
- Google Workspace: onze mailbox, waar uw e-mails binnenkomen.
- De bezoekersmeting draait op onze eigen server, zonder externe trackingtool.
Details over de gegevens en de bewaartermijnen staan in het privacybeleid.
Governance en geautoriseerd gebruik
Bouraq is een neutraal overdrachtskanaal: het misbruikt geen kwetsbaarheid en schakelt geen beveiligingsmaatregel uit. Onze voorwaarden staan alleen de overdracht toe van inhoud die de gebruiker mag verplaatsen.
- Elke overdracht hoort bij een account op naam, krijgt een tijdstempel en wordt geïdentificeerd door haar sha256-vingerafdruk.
- Vastgelegde autorisatie: elk account legt vast wie het heeft geautoriseerd om gegevens naar buiten te brengen, met diens rol, de reikwijdte en de periode. Die autorisatie komt in het auditlogboek, gaat mee met elke afgeleverde overdracht en staat op het ontvangstbewijs ervan; een organisatie kan elke overdracht zonder geldige autorisatie weigeren.
- Auditlogboek van de overdrachten waarin elke wijziging aantoonbaar is (elke vermelding verzegelt de vorige met een hash): afleveringen, mislukte overdrachten met de reden ervan en downloads, met account, bestandsnaam, grootte, sha256 en tijdstip, nooit de inhoud. Uw beheerder exporteert het als CSV of JSON Lines voor uw SIEM, en elk account exporteert zijn eigen vermeldingen (voor de klant van wie de bestanden zijn vertrokken); bewaard gedurende 365 dagen.
- Een ondertekend ontvangstbewijs voor elk afgeleverd bestand: naam, grootte, sha256, account, tijdstip, sleutelversie en de bijbehorende vermelding in het auditlogboek, ondertekend met de Ed25519-sleutel van de instantie. Een auditor, een klant of een rechtbank controleert het zonder ons, met de openbare sleutel op /.well-known/bouraq-receipt-key; één gewijzigde byte maakt de handtekening ongeldig.
- Controleerbaar zonder ons: een zelfstandig script (Python, alleen de standaardbibliotheek, zonder netwerk) controleert een export van het auditlogboek en de handtekening van een ontvangstbewijs, en vergelijkt een bestand met zijn ontvangstbewijs.
- Goedkeuring van elke overdracht (optie voor organisaties): een binnengekomen bestand wacht tot een beheerder van de organisatie, niet de afzender, het met opgave van reden goedkeurt of afwijst; een afwijzing verwijdert het bestand. Elke beslissing wordt ondertekend: wie goedkeurt, voert het wachtwoord opnieuw in, en de code bij een tweede factor; de beslissing komt in het auditlogboek, met de manier waarop ze is ondertekend.
- Toegestane bestandstypen (optie voor organisaties): alleen de typen die u opgeeft, mogen naar buiten; een map die als ZIP wordt verstuurd, wordt bestand voor bestand gecontroleerd, zonder uitpakken. Een geweigerd bestand wordt nooit weggeschreven en de weigering komt met de reden in het auditlogboek. De controle kijkt naar de gedeclareerde bestandstypen; het is geen malwarescan. Een organisatie kan ook medische beelden (DICOM, patiëntgegevens) laten weigeren, die aan hun inhoud worden herkend, ook als ze zijn hernoemd of in een ZIP-bestand zijn verpakt, en tekstbestanden met een beschermingsmarkering (Diffusion Restreinte, VS-NfD, OFFICIAL-SENSITIVE, CUI…): een vangnet tegen vergissingen, geen classificatiesysteem.
- Elke richting wordt afzonderlijk toegestaan (optie voor organisaties): de export kan als enige worden opengesteld; uitgegeven Prism-kopieën bieden dan alleen „Send out”, zonder „Pack & send back” of „Bring back”, en het terugkanaal van de server is gesloten. De terugweg via repository of USB-stick raakt onze servers nooit, dus uw beleid voor media en repository's blijft de maatregel die telt.
- Benoemde, intrekbare apparaten: elke aangemelde telefoon of browser staat in de lijst met een naam (aanpasbaar, bijvoorbeeld „Werktelefoon”) en het laatste gebruik; elke overdracht legt het apparaat vast dat haar heeft overgebracht, in het auditlogboek en op het ontvangstbewijs; een verloren apparaat wordt met één klik afgemeld.
- De beheerder van een instantie maakt accounts aan, stelt quota in, vernieuwt sleutels en meldt een sessie op afstand af. Op de gedeelde dienst heeft een organisatie eigen beheerders: zij voegen collega's toe en verwijderen ze binnen hun aantal gebruikersplaatsen, wijzigen rollen, zien per lid het laatste gebruik, de apparaten, de tweede factor en de vastgelegde autorisatie, en stellen hun eigen overdrachtsbeleid in (goedkeuring, bestandstypen, vastgelegde autorisatie, richtingen, tweede factor), nooit soepeler dan dat van de dienst; elke wijziging komt in het auditlogboek, waarvan de organisatie haar eigen deel exporteert (CSV, JSON Lines) voor haar SIEM. Een toegangsbeoordeling markeert leden zonder tweede factor, leden die 90 dagen niet actief zijn en leden zonder geldige autorisatie, en de uitgevoerde beoordeling wordt vastgelegd in het auditlogboek.
- Voor een organisatie: een eigen instantie of een installatie op uw eigen servers, op aanvraag.
Een kwetsbaarheid melden
Schrijf naar contact@getbouraq.com met een beschrijving van het probleem; wij antwoorden snel en houden u op de hoogte van de oplossing. Wij vragen u geen gegevens van andere gebruikers te benaderen. Machineleesbaar contact: /.well-known/security.txt.