Architettura
Non possiamo leggere i tuoi dati
perché non passano da noi.
Esistono SaaS di anonimizzazione che mandano il tuo documento a un server "per processarlo con l'AI". È una contraddizione inaccettabile: ricaricare i dati del cliente verso un terzo per evitare di mandarli a OpenAI. PrivActa è progettata per non potere ricevere i tuoi dati, anche se volessimo.
1. Niente server PrivActa
Non esiste un'API https://api.privacta.it che riceva
i tuoi documenti. Tutta l'elaborazione (riconoscimento PII,
sostituzione, OCR, Smart Remasking) avviene sul tuo dispositivo.
Le uniche connessioni di rete che PrivActa effettua sono:
- Download lazy dei modelli ML (~13 MB OCR, 210 MB NER opzionale) da Hugging Face. Anonimo, statico, una sola volta.
- Verifica aggiornamenti (opzionale, disattivabile) verso
privacta.it/version.json. - Licensing (solo tier paganti) verso
privacta.it/licenseper validare la chiave. Nessun dato del cliente.
2. Memory safety
PrivActa è scritta in Rust per le librerie critiche e WebAssembly per l'estensione browser. Significa:
- Niente buffer overflow, double-free, use-after-free
- Niente garbage collector con timing imprevedibile
- Sandbox del browser per il bundle WASM
- Niente codice C/C++ sul critical path (libonnxruntime e libpdfium sono caricate dinamicamente solo quando OCR è attivo, e firmate)
3. Modelli firmati e versionati
Ogni modello ML scaricato (Italian-NER, PaddleOCR detection/recognition) è verificato via SHA-256 al primo download e ad ogni avvio. L'hash atteso è hard-coded nel binario PrivActa firmato Apple Developer ID / Authenticode Microsoft.
Niente esecuzione di blob non firmati. Niente caricamento dinamico di codice da internet.
4. Audit log esportabile
Tier Studio+ registra ogni anonimizzazione in SQLite locale
(~/.privacta/audit.db) con:
- Timestamp ISO 8601
- User name (da
$USERenv) - Hash SHA-256 del documento (non il contenuto)
- Conteggio entità rilevate per categoria
- Destinazione dichiarata (es.
chatgpt.com)
Esportabile in CSV o JSONL per il DPO dello studio. Utile per dimostrare la compliance al Provvedimento Garante 112/2023 in caso di ispezione.
5. Niente account, niente tracking
PrivActa non chiede email, password, telefono. Free è anonimo. Tier paganti hanno una licenza che valida la chiave senza inviare dati personali.
Niente Google Analytics, niente Mixpanel, niente Sentry, niente Hotjar. Nessun tracker nel client né nel sito.
6. Codice ispezionabile
Le parti di rilevamento PII (regex IT, modello NER) e il bundle WebAssembly sono ispezionabili. La supply chain (cargo, npm) è bloccata su versioni specifiche con lock file.
7. Distribuzione firmata
- macOS: DMG firmato con Developer ID Application + notarizzato Apple. Tutte le richieste di rete passano dalla App Sandbox.
- Windows: MSI firmato Authenticode SHA-256.
- Estensioni: firmate dai web store ufficiali (Chrome Web Store, Edge Add-ons, Firefox AMO, Safari App Store).
- iOS / Android: distribuite via App Store / Play Store con firma sviluppatore.
8. Backup & recupero
Il dizionario cifrato del Smart Remasking risiede solo sul tuo dispositivo. Se reinstalli, viene ricostruito dai dati che incontri nel flusso. Non c'è cloud da cui ripristinare.
L'audit log audit.db può essere copiato su backup
manuale come qualsiasi file. È SQLite standard, leggibile da
qualsiasi tool senza chiavi proprietarie.