Sicurezza e architettura
Ultimo aggiornamento: 16 ottobre 2026
Questa è una traduzione; fa fede il testo francese.
Bouraq è un servizio fornito da Intelectra. Questa pagina è destinata ai team di sicurezza che devono approvare Bouraq prima del suo utilizzo. Descrive il sistema così come funziona oggi, limiti compresi. Per qualsiasi domanda a cui questa pagina non risponde: contact@getbouraq.com. Per autorizzarlo, il dossier di approvazione riunisce flussi, controlli, progetto pilota e moduli.
In breve
- Andata tramite la luce: Bouraq Prism, un file HTML aperto dal disco, cifra i file con la chiave dell'account e li mostra come codici QR; una fotocamera ammessa li legge e li invia allo spazio dell'account, dove vengono ricomposti e verificati (sha256).
- Ritorno tramite un canale a Sua scelta: il repository GitHub o GitLab privato dell'utente, oppure una chiavetta USB. Il ritorno non passa mai dai nostri server.
- Nulla da installare, nessun accesso di rete aperto: nessun agente, nessun eseguibile, nessuna sincronizzazione in background. Il PC offline emette solo luce.
- Oggi nessuna cifratura end-to-end: il nostro server detiene la chiave di ogni account e decifra i file per ricomporli. Si veda «Cosa vede il nostro server».
- Hosting nell'Unione europea: Hetzner, data center di Helsinki (Finlandia).
Flusso dei dati
Andata (PC offline → spazio dell'utente):
- Sul PC offline, Prism comprime i file (zlib) e li cifra con la chiave dell'account (XSalsa20-Poly1305), nome del file compreso, poi li suddivide in codici QR numerati con un controllo di integrità.
- L'app Bouraq legge i codici con la fotocamera di un telefono o la webcam di un computer e li invia via HTTPS al server, associati all'account connesso.
- Il server riassembla il flusso, lo decifra con la chiave dell'account, verifica l'impronta sha256 e deposita il file nello spazio dell'account.
- Sul PC personale, l'utente scarica il file dal proprio spazio, in un browser.
Ritorno (PC personale → PC offline): Prism impacchetta la cartella modificata in un unico file di testo (Repomix) e lo invia al repository privato dell'utente, oppure lo salva per una chiavetta USB. Sul PC offline, Prism verifica ogni percorso prima di scrivere e non elimina mai alcun file. Questo tragitto non tocca i nostri server.
Cosa vede il nostro server
Per ricomporre e verificare un trasferimento, il server lo decifra: vede quindi il file, il suo nome e la sua dimensione. Il file è conservato nello spazio dell'account fino a 7 giorni dopo il suo arrivo, poi eliminato; con l'opzione «Delete after download» viene eliminato non appena è stato scaricato per intero, e restano solo il nome, la dimensione, l'impronta e la ricevuta; un trasferimento che supera la quota viene eliminato non appena viene ritirato e al più tardi dopo 24 ore. L'applicazione non dichiara alcuna cifratura dei dati a riposo.
Il server non vede mai: il ritorno (repository privato o chiavetta USB), il token di accesso a GitHub o GitLab, né alcun file del PC offline che l'utente non abbia scelto.
Se la Sua organizzazione richiede che il contenuto non sia mai leggibile da terzi, Bouraq può funzionare su un server sotto il Suo controllo: ci scriva.
Crittografia e account
- Cifratura dei trasferimenti: XSalsa20-Poly1305 (secretbox di TweetNaCl), una chiave casuale di 32 byte per account, un nonce casuale di 24 byte per trasferimento. Un codice QR fotografato non rivela nulla del contenuto senza la chiave.
- Chiave versionata: rinnovare Prism dall'app cambia la chiave, e il server rifiuta poi le copie precedenti.
- Integrità: un controllo per ogni codice e un'impronta sha256 del file intero, verificata prima che il file sia messo a disposizione.
- Trasporto: solo HTTPS (TLS 1.2 e 1.3, certificati Let's Encrypt).
- Password: hash scrypt; i tentativi di accesso sono soggetti a limiti di frequenza. Sessione del browser tramite un cookie HttpOnly, Secure, SameSite=Lax, valido al massimo 30 giorni.
- Autenticazione a due fattori (TOTP, RFC 6238) per ogni account, con qualsiasi app di autenticazione; un'organizzazione può renderla obbligatoria per i propri amministratori. Anche un token per la riga di comando richiede il codice.
Il file Bouraq Prism
Prism è un unico file HTML di circa 490 KB che l'utente apre dal disco. Il Suo team può leggerlo prima dell'uso: tutto il codice è nel file.
- Content Security Policy:
default-src 'none'; le uniche connessioni consentite sonoapi.github.comegitlab.com, e solo quando l'utente usa il ritorno tramite repository privato. - Prima di ogni invio o recupero, Prism chiede al fornitore se il repository è privato e rifiuta un repository pubblico o interno.
- Librerie incluse, con versioni bloccate e verificate tramite hash: pako 2.1.0, fflate 0.8.2, qrcode-generator 1.4.4, js-sha256 0.11.1, TweetNaCl 1.0.3.
- La copia personalizzata contiene la chiave dell'account: va custodita come una credenziale.
- Verifichi la copia prima di introdurla: il Suo spazio mostra l'impronta SHA-256 della Sua copia (
certutil -hashfile <file> SHA256su Windows,shasum -a 256su macOS,sha256sumsu Linux). Ogni copia distribuita entra nel registro di audit con quell'impronta e la versione della sua chiave; anche un rinnovo della chiave vi viene registrato e revoca le copie precedenti. - Versione firmata: l'istanza pubblica la dichiarazione firmata del modello di ogni versione di Prism (/.well-known/bouraq-prism.json). Il comando
bouraq-verify.py prismdello script di verifica rimuove da una copia la sua unica riga di account e dimostra che tutto il resto è esattamente quel codice, byte per byte, senza mai mostrare la chiave. - Ogni codice mostrato da Prism riporta, sotto il suo numero, l'account e i primi 8 caratteri dell'impronta sha256 del file, la stessa del registro di audit: un trasferimento autorizzato è riconoscibile sullo schermo, e un uso discreto sarebbe visibile ai colleghi.
Hosting e sub-responsabili del trattamento
- Hetzner Online GmbH: server, database e file, data center di Helsinki (Finlandia, UE).
- Cloudflare, Inc.: nomi di dominio e ricezione delle e-mail inviate a contact@getbouraq.com.
- Stripe: pagamento e abbonamento; i dati della carta non ci arrivano mai.
- Google Workspace: la nostra casella di posta, dove arrivano le Sue e-mail.
- La misurazione dell'audience è ospitata sul nostro server, senza strumenti di tracciamento esterni.
I dettagli sui dati e sui periodi di conservazione sono nell'informativa sulla privacy.
Governance e uso autorizzato
Bouraq è un canale di trasferimento neutro: non sfrutta alcuna vulnerabilità e non disattiva alcun controllo. I nostri termini e condizioni consentono solo il trasferimento di contenuti che l'utente ha il diritto di spostare.
- Ogni trasferimento appartiene a un account nominativo, ha data e ora ed è identificato dalla sua impronta sha256.
- Autorizzazione documentata: ogni account registra chi lo ha autorizzato a far uscire dati, il ruolo di questa persona, l'ambito e il periodo. L'autorizzazione entra nel registro di audit, accompagna ogni trasferimento consegnato e compare sulla sua ricevuta; un'organizzazione può rifiutare qualsiasi trasferimento privo di un'autorizzazione in corso di validità.
- Registro di audit dei trasferimenti in cui ogni manomissione è rilevabile (ogni voce sigilla la precedente tramite hash): consegne, errori con il relativo motivo e download, con account, nome del file, dimensione, sha256 e ora, mai il contenuto. Il Suo amministratore lo esporta in CSV o JSON Lines per il Suo SIEM, e ogni account esporta le proprie voci (per il cliente i cui file sono usciti); conservato 365 giorni.
- Una ricevuta firmata per ogni file consegnato: nome, dimensione, sha256, account, ora, versione della chiave e la voce corrispondente del registro di audit, firmati con la chiave Ed25519 dell'istanza. Un auditor, un cliente o un tribunale la verifica senza di noi, con la chiave pubblica pubblicata su /.well-known/bouraq-receipt-key; un solo byte modificato invalida la firma.
- Verificabile senza di noi: uno script autonomo (Python, solo libreria standard, senza rete) controlla un'esportazione del registro di audit e la firma di una ricevuta, e confronta un file con la sua ricevuta.
- Approvazione di ogni trasferimento (opzione per le organizzazioni): un file arrivato attende che un amministratore dell'organizzazione, diverso dal mittente, lo approvi o lo rifiuti, con motivazione; un rifiuto elimina il file. Ogni decisione è firmata: chi approva digita di nuovo la propria password, e il proprio codice se ha un secondo fattore; la decisione entra nel registro di audit con il modo in cui è stata firmata.
- Tipi di file ammessi (opzione per le organizzazioni): possono uscire solo i tipi che Lei indica; una cartella inviata come ZIP viene verificata file per file, senza estrarla. Un file rifiutato non viene mai scritto e il rifiuto entra nel registro di audit con il relativo motivo. Il controllo riguarda i tipi dichiarati; non è un'analisi antimalware. Un'organizzazione può anche far rifiutare le immagini mediche (DICOM, dati dei pazienti), riconosciute dal loro contenuto anche se rinominate o compresse in un file ZIP, e i file di testo che riportano una dicitura di protezione (Diffusion Restreinte, VS-NfD, OFFICIAL-SENSITIVE, CUI…): una rete di sicurezza contro gli errori, non un sistema di classificazione.
- Ogni direzione si autorizza separatamente (opzione per le organizzazioni): l'esportazione può essere abilitata da sola; le copie di Prism distribuite offrono allora solo «Send out», senza «Pack & send back» né «Bring back», e il canale di ritorno del server è chiuso. Il ritorno tramite repository o chiavetta USB non tocca mai i nostri server, quindi la Sua policy su supporti e repository resta il controllo che conta.
- Dispositivi con nome e revocabili: ogni telefono o browser connesso è elencato con un nome (modificabile, per esempio «Telefono di lavoro») e il suo ultimo utilizzo; ogni trasferimento registra il dispositivo che lo ha trasportato, nel registro di audit e sulla sua ricevuta; un dispositivo smarrito si disconnette con un clic.
- L'amministratore di un'istanza crea gli account, fissa le quote, rinnova le chiavi e disconnette una sessione a distanza. Sul servizio condiviso, un'organizzazione ha i propri amministratori: aggiungono e rimuovono colleghi nei limiti dei propri posti utente, cambiano i ruoli, vedono per ogni membro l'ultimo utilizzo, i dispositivi, il secondo fattore e l'autorizzazione documentata, e fissano la propria policy di trasferimento (approvazione, tipi di file, autorizzazione documentata, direzioni, secondo fattore), mai più permissiva di quella del servizio; ogni modifica entra nel registro di audit, di cui l'organizzazione esporta la propria parte (CSV, JSON Lines) per il proprio SIEM. Un riesame degli accessi segnala i membri senza secondo fattore, inattivi da 90 giorni o senza un'autorizzazione in corso di validità, e il riesame svolto viene annotato nel registro di audit.
- Per un'organizzazione: un'istanza dedicata o un'installazione sui Suoi server, su richiesta.
Segnalare una vulnerabilità
Scriva a contact@getbouraq.com descrivendo il problema; rispondiamo rapidamente e La teniamo al corrente della correzione. La preghiamo di non accedere ai dati di altri utenti. Contatto in formato leggibile da macchina: /.well-known/security.txt.