Informativa sulla privacy
Ai sensi del Regolamento (UE) 2016/679 (GDPR) e del D.Lgs. 196/2003 come modificato dal D.Lgs. 101/2018
- Titolare del trattamento
- Architettura zero-knowledge
- Dati trattati localmente
- Dati trattati sul server (sincronizzazione opzionale)
- Lista d'attesa pre-lancio
- Programma beta tester
- Base giuridica del trattamento
- Misure di sicurezza e crittografia
- Terze parti e trasferimenti internazionali
- Trattamento di dati di minori
- Diritti dell'interessata
- Periodo di conservazione
- Decisioni automatizzate e profilazione (art. 22)
- Notifica di violazioni dei dati (artt. 33-34)
- Modifiche alla presente informativa
- Contatti
01Titolare del trattamento
Il Titolare del trattamento ai sensi dell'art. 4, par. 1, n. 7 del GDPR è:
Intima
Contatto: intima@sappadev.it
Nota fondamentale. Intima è progettata secondo il principio privacy by design and by default (art. 25 GDPR). Per la grande maggioranza degli utilizzi, quando la funzione di sincronizzazione è disattivata, il Titolare non riceve, elabora né ha accesso ad alcun dato personale dell'utente. I dati sanitari rimangono esclusivamente sul dispositivo dell'utente finale e sono inaccessibili a chiunque al di fuori di quest'ultimo.
02Architettura zero-knowledge
Intima è costruita su un'architettura zero-knowledge: ogni eventuale dato trasmesso ai server è crittografato end-to-end sul dispositivo dell'utente prima della trasmissione. Il server riceve e conserva esclusivamente testo cifrato opaco, rispetto al quale il Titolare non possiede alcuna chiave di decrittazione e non è pertanto in grado, nemmeno su richiesta di autorità giudiziarie, di accedere ai contenuti in chiaro.
La chiave di crittografia viene generata casualmente sul dispositivo al momento dell'attivazione della sincronizzazione e non viene mai trasmessa a server terzi. Il server di sincronizzazione non è tecnicamente in grado di risalire ai dati in chiaro anche in caso di compromissione totale dell'infrastruttura.
Protocollo verificabile pubblicamente.Il codice del server, lo schema del database e le politiche di accesso (RLS) sono pubblicati come open source (AGPL-3.0) e liberamente verificabili da chiunque all'indirizzo: github.com/sappafrancesco/intima-server
03Dati trattati localmente sul dispositivo
Quando la sincronizzazione è disattivata (modalità predefinita), tutti i dati sono trattati esclusivamente sul dispositivo dell'utente, all'interno di un database SQLite protetto dal sistema operativo. Il Titolare non ha alcun accesso a tali dati.
Tipologie di dati trattati in locale
- Dati sul ciclo mestruale: date di inizio e fine periodo, durata, andamento storico.
- Dati fisiologici: temperatura basale del corpo (BBT), muco cervicale, intensità del flusso.
- Dati sull'umore e sui sintomi: stati emotivi selezionati dall'utente, sintomi fisici.
- Dati farmacologici: assunzione di contraccettivi orali o altri farmaci tracciati.
- Dati anagrafici parziali: nome (soprannome) e età, forniti volontariamente in fase di onboarding per personalizzare l'interfaccia; non associati a identità reale.
- Preferenze applicative: impostazioni di tracciamento, obiettivi selezionati, configurazione delle notifiche.
Finalità del trattamento locale
- Tracciamento e visualizzazione del ciclo mestruale e dei sintomi correlati.
- Calcolo statistico e previsionale del ciclo tramite algoritmi probabilistici on-device (nessun dato inviato a modelli cloud).
- Erogazione di notifiche locali contestuali (promemoria temperatura, avvisi di fase).
Base giuridica (trattamento locale):consenso esplicito ai sensi dell'art. 9, par. 2, lett. a) GDPR per i dati relativi alla salute, espresso dall'utente all'atto dell'installazione e configurazione dell'applicazione. In assenza di tale consenso, l'applicazione non raccoglie alcun dato.
04Dati trattati sul server (sincronizzazione opzionale)
La funzionalità di sincronizzazione è opzionale e disattivata per impostazione predefinita. Il suo utilizzo è soggetto a consenso esplicito separato. Quando attivata, il server tratta esclusivamente i seguenti elementi:
Dati tecnici ricevuti dal server
- Identificatore anonimo (UUID):generato casualmente dal sistema operativo al momento dell'attivazione della sincronizzazione, privo di qualsiasi collegamento a dati anagrafici reali. Non è un account. Non richiede email, numero di telefono o documento d'identità.
- Testo cifrato opaco: i dati sanitari, crittografati con AES-256-GCM sul dispositivo prima della trasmissione. Il server non è in grado di decrittare tali dati.
- Metadati tecnici minimi: timestamp di ultima sincronizzazione, versione del protocollo, dimensione del payload cifrato. Nessun metadato sanitario viene trasmesso in chiaro.
Funzione Bridge (condivisione medica)
Quando l'utente crea un link cifrato per condividere dati con il ginecologo, il server conserva temporaneamente il testo cifrato associato a un ID casuale. La chiave di decrittazione viaggia esclusivamente nel frammento # dell'URL e non viene mai inviata al server. Il link scade automaticamente.
Segnalazioni e feedback (opt-in)
L'app offre la possibilità di inviare volontariamente segnalazioni di problemi o feedback all'indirizzo del nostro server. Prima dell'invio, l'app mostra esattamente i dati che verranno trasmessi e richiede la conferma dell'utente.
Vengono raccolti unicamente:
- Versione dell'app e piattaforma (android / ios).
- Categoria della segnalazione: crash, bug, feedback, suggerimento, beta.
- Codice errore anonimizzato (8 caratteri esadecimali derivati dal tipo di eccezione, mai il messaggio di errore o lo stack trace completo).
- Testo scritto dall'utente (opzionale, max 500 caratteri): solo se l'utente ha esplicitamente digitato un messaggio.
- Valutazione di soddisfazione (opzionale, intero 1-5): solo se l'utente seleziona esplicitamente un voto.
- Flag beta (booleano): indica se la segnalazione proviene da una build beta, senza identificare il dispositivo.
- Bucket di tier (scoperta / inizio / standard) per instradamento interno.
Non vengono mai raccolti: ID utente, ID dispositivo, indirizzo IP, dati del ciclo, stack trace completo o qualsiasi dato sanitario. Le segnalazioni sono completamente anonime e non collegabili all'identità dell'utente. Base giuridica: art. 6, par. 1, lett. a) GDPR, consenso esplicito.
Controllo aggiornamenti
All'avvio, l'app effettua una richiesta al nostro server per verificare la disponibilità di nuove versioni. La richiesta contiene esclusivamente la piattaforma (android o ios) e la versione corrente dell'app. Non vengono trasmessi ID utente, ID dispositivo o dati di salute. L'indirizzo IP raggiunge i log del proxy e viene automaticamente purgato entro 24 ore, senza essere mai scritto nel database applicativo.
Dati non trattati dal server
- Indirizzo email, numero di telefono, nome, cognome, data di nascita.
- Indirizzi IP o dati di geolocalizzazione a livello applicativo.
- Dati sanitari in chiaro.
- Cookie di tracciamento, pixel di conversione, identificatori pubblicitari.
- Qualsiasi dato trasmesso a terze parti per finalità di marketing o profilazione.
05Lista d'attesa pre-lancio
Prima del lancio ufficiale dell'app, offriamo la possibilità di iscriversi a una lista d'attesa tramite il sito web intima.sappadev.it. L'iscrizione è completamente volontaria.
Dati raccolti
- Indirizzo email:conservato in formato testuale normalizzato (minuscolo, senza spazi) per consentire l'invio di una singola notifica al momento del lancio. Non viene usato per marketing continuativo, profilazione o comunicazioni successive senza ulteriore consenso.
- Fonte di iscrizione:etichetta interna che indica da quale sezione del sito è avvenuta l'iscrizione (es. hero, download). Non contiene dati personali.
- Timestamp:data e ora dell'iscrizione, conservati per ordinamento interno e conformità.
Finalità e base giuridica
I dati sono trattati esclusivamente per inviare una comunicazione alla disponibilità dell'app. Base giuridica: art. 6, par. 1, lett. a) GDPR , consenso esplicito fornito al momento dell'iscrizione.
Conservazione
I dati della lista d'attesa sono conservati fino alla notifica di lancio, dopodiché vengono eliminati entro 30 giorni. Puoi richiedere la cancellazione in qualsiasi momento scrivendo a intima@sappadev.it.
Deduplicazione
Il sistema memorizza ogni indirizzo email una sola volta. Un secondo tentativo di iscrizione con la stessa email non genera un secondo record né un messaggio di errore (nessuna enumerazione degli indirizzi registrati).
06Programma beta tester
Le build contrassegnate come beta(distribuite tramite TestFlight o Google Play Internal Testing) includono un sistema di raccolta feedback contestuale descritto nella sezione 04 (Segnalazioni e feedback). Il programma beta non modifica l'architettura zero-knowledge dell'app.
Differenze rispetto alla versione di produzione
- Le segnalazioni di crash automatiche sono attive anche in modalità debug nelle build beta, per facilitare la diagnosi di problemi in fase di test. L'utente può verificare cosa viene inviato nella schermata "Feedback beta" dell'app.
- L'app può mostrare prompt contestuali (es. dopo il primo ciclo inserito, dopo 7 giorni d'uso) che invitano a lasciare un feedback. Questi prompt non raccolgono dati: aprono semplicemente il form di segnalazione. Lo stato dei prompt è salvato localmente sul dispositivo e non trasmesso.
- I feedback inviati da build beta sono contrassegnati internamente con il flag
is_beta = trueper separare i dati di test dalla produzione. Non contengono informazioni aggiuntive identificative.
Nessun strumento di terze parti
Il programma beta non integra SDK di terze parti per il crash reporting (niente Crashlytics, Sentry, Instabug, Firebase o simili). Tutti i dati di feedback passano esclusivamente per il nostro server, soggetto alla stessa informativa sulla privacy della versione di produzione.
Come uscire dal programma
Per uscire dal programma beta è sufficiente disinstallare la build beta e installare la versione di produzione. Nessun dato locale viene trasferito automaticamente. I feedback già inviati restano nel database in forma anonima e non cancellabile per singolo utente (non essendo collegabili a un'identità).
07Base giuridica del trattamento
Art. 9, par. 2, lett. a) GDPR: consenso esplicito per dati sulla salute. Revocabile eliminando i dati dall'app.
Art. 6, par. 1, lett. b) GDPR: necessità contrattuale per l'erogazione del servizio richiesto. Art. 9, par. 2, lett. a) per la componente sanitaria.
Art. 6, par. 1, lett. a) GDPR: consenso, acquisito tramite il sistema di autorizzazione nativo del dispositivo (iOS / Android).
Art. 6, par. 1, lett. a) GDPR: consenso esplicito dell'utente Titolare, revocabile in qualsiasi momento dalle impostazioni.
Art. 6, par. 1, lett. b) GDPR: necessità contrattuale. Il dato trattato è esclusivamente la conferma d'acquisto (UUID + product_id).
Art. 9, par. 2, lett. a) GDPR: consenso esplicito per l'importazione da Apple Health o Google Health Connect. Revocabile dalle impostazioni di sistema del dispositivo.
Revoca del consenso (art. 7, par. 3 GDPR)
L'interessata ha il diritto di revocare il proprio consenso in qualsiasi momento, senza pregiudicare la liceità del trattamento precedente. La revoca può essere esercitata:
- Dati locali: tramite Impostazioni → Zona pericolosa → Elimina tutti i dati, oppure disinstallando l'Applicazione.
- Sincronizzazione: tramite Impostazioni → Sincronizzazione → Disattiva e cancella dati dal server.
- Funzione Partner / Account genitore: tramite Impostazioni → Partner / Genitore → Revoca accesso, con effetto immediato.
- Notifiche: tramite le impostazioni di sistema del dispositivo.
06Misure di sicurezza e crittografia
Il Titolare ha adottato misure tecniche e organizzative adeguate ai sensi dell'art. 32 GDPR, proporzionate alla natura estremamente sensibile dei dati trattati (art. 9 GDPR, dati sulla salute):
Misure tecniche
- Cifratura end-to-end con AES-256-GCM per i nuovi backup, con integrità garantita dal tag di autenticazione GCM.
- Archiviazione delle chiavi nell'enclave hardware del dispositivo (iOS Secure Enclave / Keychain, Android Keystore), inaccessibile a qualsiasi altra applicazione.
- Autenticazione locale tramite biometria (Face ID, Touch ID, impronta digitale) o PIN, non trasmesso al server.
- Nessun backup cloud non cifrato:
android:allowBackup="false"su Android; dati sensibili esclusi dai backup automatici iOS tramite configurazione esplicita. - Transport Layer Security: tutte le comunicazioni usano TLS 1.2+ con validazione certificato. Cleartext traffic esplicitamente disabilitato.
- Blocco schermata: l'applicazione richiede autenticazione a ogni avvio.
Misure organizzative
- Nessun membro del team ha accesso ai dati sanitari in chiaro, architetturalmente impossibile.
- Il codice sorgente del server è open source (AGPL-3.0) e verificabile su GitHub.
- Nessun sistema di analytics o error tracking con trasmissione di dati personali è integrato nell'applicazione.
07Terze parti e trasferimenti internazionali
Supabase (fornitore infrastruttura, solo per sync opzionale)
L'infrastruttura di sincronizzazione è basata su Supabase(Supabase Inc., USA), con datacenter configurato in Svizzera (regione Europa Centrale, Zurigo). La Svizzera beneficia di una decisione di adeguatezza della Commissione Europea e della propria normativa nazionale (nLPD/nFADP, in vigore dal 1° settembre 2023), equivalente al GDPR. Il contratto con Supabase include clausole contrattuali tipo (SCC) ai sensi della Decisione di Esecuzione (UE) 2021/914.
Garanzia zero-knowledge: Supabase riceve esclusivamente testo cifrato opaco (AES-256-GCM) prodotto interamente sul dispositivo prima della trasmissione. Il suo ruolo è limitato alla memorizzazione sicura di blob binari anonimi associati a UUID casuali.
Apple Inc. e Google LLC (pagamenti in-app)
La funzione Partner è disponibile come acquisto una tantum tramite App Store o Google Play. Intima non riceve né conserva dati di pagamento. Il Titolare riceve esclusivamente la conferma dell'avvenuto acquisto, associata all'identificatore anonimo (UUID) dell'utente.
Apple Health (HealthKit) e Google Health Connect, importazione opzionale
L'applicazione offre la funzionalità opzionale di importazione di dati da Apple Health (iOS) e Google Health Connect (Android). Questa funzionalità è disattivata per impostazione predefinita e richiede consenso esplicito separato tramite il sistema nativo di autorizzazione del dispositivo.
In caso di attivazione, Intima legge esclusivamentei dati selezionati dall'utente (temperatura corporea/BBT, peso, ore di sonno, flusso mestruale) e non scrive mai dati su Apple Health o Health Connect. I dati importati vengono cifrati sul dispositivo con le stesse garanzie zero-knowledge di tutti gli altri dati dell'applicazione e non vengono trasmessi al server Intima né a terze parti.
Il trattamento dei dati all'interno di Apple Health e Google Health Connect è regolato rispettivamente dalla Privacy Policy di Apple Inc. e dalla Privacy Policy di Google LLC, che si applicano in via prioritaria ai dati presenti in tali sistemi. Intima non è responsabile del trattamento effettuato da tali piattaforme. L'utente può revocare i permessi di lettura in qualsiasi momento dalle impostazioni di sistema del dispositivo.
Base giuridica:art. 9, par. 2, lett. a) GDPR, consenso esplicito per l'importazione di dati sulla salute da piattaforme di terze parti.
Dati non condivisi con terze parti
Il Titolare non vende, cede, affitta né condivide con soggetti terzi a fini commerciali alcun dato relativo agli utenti. Non sono integrati sistemi di advertising, tracciamento comportamentale, analytics di terze parti o SDK pubblicitari.
08Trattamento di dati di minori e account genitore
Soglia di età e consenso genitoriale (art. 8 GDPR)
Per i soggetti di età inferiore a 14 anni, ai sensi dell'art. 8 GDPR e dell'art. 2-quinquies del Codice Privacy, il consenso deve essere prestato o autorizzato da un Titolare della responsabilità genitoriale. L'applicazione implementa tale requisito tramite una procedura di collegamento account genitore durante la configurazione iniziale.
Account genitore: architettura zero-knowledge
- L'utente minore genera un codice QR contenente un shared_secret a 256 bit. Il codice QR non transita mai attraverso server, viene mostrato fisicamente al genitore.
- Il dispositivo del genitore acquisisce il shared_secret esclusivamente dal codice QR e lo conserva nella memoria sicura locale.
- Il dispositivo minore cifra localmente solo i campi esplicitamente autorizzati e trasmette il testo cifrato al server. Il server non possiede alcuna chiave e non può accedere al contenuto.
- L'utente minore controlla in ogni momento quali categorie di dati sono condivise e può revocare l'accesso dalle impostazioni.
Compimento del quattordicesimo anno d'età
Al compimento dei 14 anni, l'applicazione notifica l'utente tramite comunicazione in-app e offre la possibilità di mantenere o revocare l'accesso del genitore. Da tale data, l'utente è considerata pienamente capace di prestare autonomamente il proprio consenso.
09Diritti dell'interessata
In qualità di interessata ai sensi del Capo III GDPR (artt. 15-22), hai diritto di:
Tutti i dati sono visibili direttamente nell'app sul tuo dispositivo.
Modificabile direttamente dall'app in qualsiasi momento.
Tramite Impostazioni → Zona pericolosa → Elimina tutti i dati o disinstallando l'app.
Esporta i dati in formato JSON tramite Impostazioni → Dati → Esporta backup.
Disattiva la sincronizzazione opzionale dalle impostazioni in qualsiasi momento.
Disattiva funzionalità specifiche (sync, notifiche, partner) dalle impostazioni.
Per esercitare i diritti relativamente ai dati eventualmente trattati dal Titolare (solo in caso di sync attiva), scrivi a intima@sappadev.it. Il Titolare risponde entro 30 giorni ai sensi dell'art. 12 GDPR.
Hai altresì diritto di proporre reclamo al Garante per la protezione dei dati personali, Piazza Venezia 11, Roma - www.garanteprivacy.it
10Periodo di conservazione
Dati locali:conservati sul dispositivo fino all'eliminazione esplicita o alla disinstallazione. Il Titolare non ha controllo su tali dati.
Dati server (sync opzionale): i blob cifrati sono conservati fino alla richiesta di cancellazione tramite Impostazioni → Elimina dati dal server, oppure mediante richiesta scritta a intima@sappadev.it. La cancellazione avviene entro 30 giorni dalla richiesta.
Identificatori anonimi:gli UUID vengono eliminati contestualmente alla cancellazione dell'account anonimo, senza possibilità di ricondurli a persona fisica.
Lista d'attesa:gli indirizzi email sono conservati fino all'invio della notifica di lancio, poi eliminati entro 30 giorni. Cancellazione anticipata disponibile su richiesta a intima@sappadev.it.
Feedback e segnalazioni:i dati anonimi di feedback (inclusi quelli beta) sono conservati a tempo indeterminato in forma aggregata per finalità di miglioramento del prodotto. Non essendo collegabili a un'identità, non è tecnicamente possibile cancellare un singolo record su richiesta.
11Decisioni automatizzate e profilazione (art. 22 GDPR)
L'applicazione utilizza algoritmi probabilistici eseguiti interamente sul dispositivo dell'utente per stimare la durata del ciclo, la finestra fertile e la data prevista della mestruazione successiva. Tali elaborazioni:
- non costituiscono decisioni automatizzate ai sensi dell'art. 22 GDPR, in quanto non producono effetti giuridici né effetti significativi analoghi;
- sono esclusivamente strumentali alla visualizzazione di informazioni personali già inserite dall'utente stessa;
- non vengono mai trasmesse a server terzi né utilizzate per profilazione commerciale.
Garanzia strutturale. Poiché i dati sanitari sono cifrati localmente e il server non dispone di alcuna chiave di decrittazione, qualsiasi profilazione da parte del Titolare è tecnicamente impossibile, indipendentemente da qualsiasi dichiarazione di intenti.
12Notifica di violazioni dei dati personali (artt. 33-34 GDPR)
In caso di violazione dei dati personali che comporti un rischio per i diritti e le libertà delle interessate, il Titolare notificherà la violazione al Garante per la protezione dei dati personali entro 72 oredal momento in cui ne è venuto a conoscenza, ai sensi dell'art. 33 GDPR.
Impatto dell'architettura zero-knowledge sul rischio di violazione
- Compromissione del server Supabase:un malintenzionato accede esclusivamente a blob cifrati con AES-256-GCM associati a UUID anonimi, senza possibilità di risalire ai contenuti sanitari o all'identità delle utenti. Il rischio per i diritti e le libertà risulta basso in questo scenario.
- Compromissione del dispositivo dell'utente:costituisce il principale vettore di rischio residuo, in quanto la chiave di crittografia risiede sull'enclave hardware del dispositivo.
13Modifiche alla presente informativa
Il Titolare si riserva il diritto di modificare la presente informativa in qualsiasi momento. Le modifiche sostanziali saranno notificate tramite avviso in-app. In caso di modifiche che amplino le finalità del trattamento o introducano nuove categorie di dati sensibili, sarà richiesto un nuovo consenso esplicito ai sensi dell'art. 7 GDPR.
14Contatti
Per qualsiasi richiesta relativa al trattamento dei dati personali:
- Email privacy: security.intima@sappadev.it
- Email generale: intima@sappadev.it
Il Titolare non ha nominato un Responsabile della Protezione dei Dati (DPO) in quanto non ricorrono le condizioni di obbligatorietà di cui all'art. 37 GDPR.
Termini e condizioni · intima@sappadev.it