Note legali
Informativa sulla privacy
Che cosa l'app MiExpenses e questo sito fanno con i dati. Scritta leggendo l'app e il server, non compilando un modello, e per questo nomina le cose che un modello avrebbe lasciato fuori.
Ultimo aggiornamento:
1Chi è il responsabile
MiExpenses è costruita e gestita da una persona sola, Alexander Volkov. Dietro non c'è alcuna società. È lui il titolare del trattamento per tutto quello che è descritto qui, e domande, richieste di una copia dei propri dati e richieste di cancellazione vanno tutte allo stesso indirizzo: contacts@mve.suxlv2.space.
2Che cosa copre questo documento
Copre l'app Android MiExpenses e questo sito. Il sito è fatto di pagine statiche: non esegue script, non carica caratteri, immagini o file da altri host e non fa alcuna richiesta a nessuno tranne che al server che ti consegna la pagina. Leggerlo non imposta cookie e non dice a nessuno che sei passato di qui. Tutto quello che segue riguarda l'app.
3Che cosa ci dai tu
L'app ha bisogno di un account, quindi la prima cosa che chiede è un indirizzo e-mail e una password, oppure un accesso con Google. Accedere con Google ci dà lo stesso unico campo: dalla credenziale Google l'app legge soltanto l'indirizzo e-mail, e il token di Google resta sul telefono. Il resto è quello che scegli tu durante la configurazione iniziale.
Conservati sull'account:
- Il tuo indirizzo e-mail. È il nome dell'account, e la chiave sotto cui è conservato tutto il resto.
- Il tuo paese. Scelto durante la configurazione iniziale, oppure riempito dalla ricerca descritta più avanti.
- La tua valuta. Gli importi inseriti in altre valute vengono convertiti in essa per i totali.
- La tua unità di distanza: chilometri o miglia.
- La tua unità di volume: litri, galloni GB o galloni US.
- Se MiExpenses Premium è attivo sull'account.
4Che cosa registri nell'app
Tutto quello che inserisci su un veicolo e sui suoi costi è conservato sul nostro server, non soltanto sul tuo telefono. Questo comprende campi che spesso si dà per scontato restino sul dispositivo.
- Veicolo: nome, tipo, marca, modello, anno, cilindrata, capacità dei serbatoi e tipi di carburante, valore del contachilometri e, se li compili, la targa e il numero di telaio.
- Spesa: data, categoria e sottocategoria, contachilometri, importo e valuta, e il commento in testo libero.
- Rifornimento: in più a tutto questo, il prezzo per unità, il volume, il tipo di carburante e i contrassegni di serbatoio pieno e di esclusione dalle statistiche.
- Promemoria, le sottocategorie di spesa che crei e le registrazioni di condivisione.
- Le risposte inviate dall'app: la valutazione a stelle, il tuo testo e il tuo identificativo utente.
- I limiti mensili e i modelli di spesa si comportano diversamente. Arrivano al server soltanto finché MiExpenses Premium è attivo sull'account; senza, restano sul telefono, ed è anche per questo che un secondo telefono non li mostra.
5Che cosa raccoglie l'app da sola
Tre cose succedono senza che tu le abbia chieste, e due di esse non si possono disattivare dall'interno dell'app.
- Un token push. Firebase Cloud Messaging emette un token per la tua installazione, e l'app lo invia al nostro server insieme al tuo indirizzo e-mail, che è la chiave sotto cui viene conservato. Viene inviato dopo l'accesso, quando il token cambia e dopo un riavvio, che tu abbia consentito le notifiche o no.
- Una ricerca del paese in base all'indirizzo IP. Durante la configurazione iniziale, e a ogni avvio della schermata iniziale con una connessione funzionante, l'app chiede a un servizio di geolocalizzazione di terze parti a quale paese appartiene il tuo indirizzo IP. Di servizi di questo tipo ne vengono usati tre, e l'app li prova a turno finché uno risponde; nessuno di essi è nostro, e ciascuno di essi vede il tuo indirizzo IP. Questo documento non li nomina: quale di essi risponda è un dettaglio implementativo, mentre quello che esce dal tuo telefono è lo stesso in ogni caso. Niente chiede il tuo consenso, non c'è alcuna impostazione per disattivarlo, e la risposta viene scritta nel tuo profilo solo quando il tuo paese non è ancora impostato.
- Pubblicità. L'SDK Google Mobile Ads viene avviato ogni volta che si apre la schermata iniziale, comprese le sessioni in cui non viene mai richiesto alcun annuncio. Nell'app c'è esattamente un posizionamento: un video con premio a schermo intero prima che si apra l'elenco delle statistiche mondiali, mostrato agli account senza il contrassegno di account a pagamento. La richiesta è costruita con le impostazioni predefinite, quindi non è contrassegnata come non personalizzata, e non viene mostrato alcun modulo di consenso. Quello che quell'SDK raccoglie va a Google, non a noi, e sono i termini di Google a coprirlo.
6Analisi e segnalazioni di crash
L'SDK Firebase Analytics fa parte della build, ma un flag nel manifest dell'app disattiva la raccolta dei dati. L'app inoltre non invia eventi di analisi propri: nel suo codice sorgente non c'è nemmeno una chiamata di evento o di proprietà utente.
Non c'è alcuna segnalazione di crash né alcun monitoraggio delle prestazioni: niente Crashlytics, niente equivalente di terze parti, e nemmeno un gestore di crash fatto in casa. Se l'app va in crash sul tuo telefono, nessuna stack trace arriva a noi e noi non veniamo a saperlo. L'unico modo in cui sentiamo parlare di un problema è che tu ci scriva.
7Statistiche mondiali
L'app ha una schermata che mette un veicolo accanto alla stessa marca e allo stesso modello posseduti da altre persone. Funziona perché il nostro server tiene una riga per ogni veicolo che ne ha i requisiti e mostra quell'elenco alle altre persone che usano l'app.
Un veicolo entra nell'elenco solo dopo almeno dieci registrazioni, trenta giorni di storico, attività negli ultimi sessanta giorni e almeno mille unità di distanza. Anche la sua marca e il suo modello devono essere nel catalogo del server, e l'account deve portare il contrassegno di account a pagamento dalla nostra parte. Le righe non vengono mediate tra loro: ogni riga è un veicolo.
Che cosa contiene una riga, e che cosa non contiene:
- Un identificativo numerico del proprietario, il paese, la marca, il modello e l'anno di fabbricazione.
- I totali di quel veicolo: distanza, volume di carburante e costo.
- Non contiene la targa, il numero di telaio, il tuo indirizzo e-mail né alcuna singola spesa.
- Nell'app non c'è alcun interruttore che tenga il tuo veicolo fuori da questo elenco.
8L'acquisto di Premium
Se acquisti MiExpenses Premium, del pagamento si occupa Google Play: noi non vediamo né la tua carta né i tuoi dati di fatturazione, e da noi non passa denaro. Due cose però ci riguardano. A Google Play viene dato il numero con cui è archiviato il tuo account, così che possa dire al nostro server a quale account appartiene un acquisto; e l'app invia al nostro server il gettone d'acquisto emesso da Google Play, che il server verifica presso Google e dopo di che contrassegna l'account come pagato. Quel contrassegno è conservato sul tuo account, ed è ciò che apre le funzioni a pagamento su ogni dispositivo su cui accedi.
9Dove vanno i dati
Tutto quello che l'app conserva va sui server dello sviluppatore stesso, via HTTPS. I punti di ingresso sono due; l'app sceglie da sola tra loro, e tu puoi fissarne uno nelle impostazioni. Nella catena non c'è alcuna archiviazione in cloud di terze parti: niente Google Drive, niente Dropbox, nessun servizio di file di alcun genere. Questo documento non nomina né gli indirizzi di quei server né un paese di conservazione: gli indirizzi sono infrastruttura che può cambiare senza che nulla cambi per te, e il paese sarebbe un'affermazione che non possiamo sostenere con nulla che tu possa verificare.
I dati escono dal tuo telefono verso:
- Il nostro backend, via HTTPS. Lì vivono il tuo account, i veicoli, le spese, i promemoria, le categorie e le registrazioni di condivisione.
- Firebase Authentication, per l'accesso con e-mail e per l'accesso con Google.
- Firebase Cloud Messaging, per il token push e per i messaggi di risveglio, che non portano dati personali propri.
- Google AdMob, per l'unico video con premio descritto sopra.
- Uno di tre servizi di geolocalizzazione di terze parti, per la ricerca del paese in base all'indirizzo IP.
- Google Play, per l'acquisto di MiExpenses Premium e per verificare che sia ancora valido.
10Come è protetto
Il traffico tra l'app e il server è HTTPS, e la build pubblicata rifiuta l'HTTP in chiaro. Le password sono gestite da Firebase Authentication e non arrivano mai al nostro server, che non ha un campo password né una colonna password; per l'accesso con e-mail Firebase richiede inoltre un indirizzo confermato. Sul telefono, la copia in cache del record del tuo account nel file delle impostazioni è cifrata con AES/GCM sotto una chiave creata e custodita nell'Android Keystore, così non può essere letta da un file delle impostazioni copiato altrove.
Questo è tutto l'elenco, e vale la pena essere precisi su che cosa non è. Non è cifratura end-to-end e non è zero knowledge: sul server i dati sono leggibili, e lo sviluppatore può leggerli. Il database delle spese sul tuo telefono è un normale database non cifrato, protetto dalla sandbox delle app di Android e dalla cifratura del dispositivo stesso. Il certificate pinning non è usato. Se un dettaglio è talmente delicato che tutto questo fa la differenza, la risposta sicura è non scriverlo.
11Condivisione di un veicolo
Puoi dare a un'altra persona registrata l'accesso a uno dei tuoi veicoli a uno di tre livelli: visualizzazione, modifica o passaggio di proprietà. La condivisione funziona su un veicolo intero. Le singole registrazioni non possono esserne trattenute.
- L'invito viene creato a partire da un indirizzo e-mail che scrivi tu, e quell'indirizzo è conservato sul nostro server come parte della registrazione di condivisione.
- Un invito ancora in attesa muove già i dati. Dal momento in cui l'invito esiste il server tratta quell'account come dotato di accesso, quindi il suo telefono scarica e conserva il veicolo e le sue voci alla sincronizzazione successiva. L'app tiene il veicolo nascosto a quella persona finché non accetta, ma per allora i dati sono già sul suo dispositivo.
- Una volta accettato l'invito, quella persona vede la scheda del veicolo, ogni spesa e ogni promemoria collegati a esso comprese le voci inserite dagli altri partecipanti, e le tue categorie di spesa.
- Una voce contrassegnata Escludi dalle statistiche non è una voce privata. È conservata e sincronizzata come qualsiasi altra, è visibile a chiunque abbia il veicolo in condivisione e compare nell'esportazione CSV.
- Revocare l'accesso rimuove immediatamente il veicolo dall'app dell'altra persona e le impedisce di cambiare qualsiasi altra cosa. Non arriva a toccare quello che il suo telefono ha già scaricato, e la registrazione di condivisione stessa resta sul nostro server contrassegnata come eliminata.
- Il passaggio di proprietà è definitivo e non si può annullare. Il PIN che lo conferma è conservato sul nostro server in chiaro e confrontato senza distinzione tra maiuscole e minuscole, quindi consideralo una stretta di mano, non una password.
12Backup del dispositivo
Dalla versione 5.0.0 l'app si esclude dal framework di backup di Android: sia il backup in cloud nel tuo account Google sia il trasferimento da dispositivo a dispositivo sono disattivati per ogni parte dei dati dell'app. Le versioni fino alla 4.1.0 compresa non si escludevano, quindi se usi l'app da un po' di tempo, una copia del suo database locale e delle sue impostazioni può già trovarsi in un backup di Google. Quella copia sta nel tuo account Google, non nel nostro, e si rimuove nel modo in cui Google permette di rimuovere i backup delle app. Gli strumenti di trasferimento realizzati dai produttori di telefoni lavorano fuori dal framework di backup di Android e non sono coperti da questa impostazione.
13Per quanto tempo è conservato, e cancellazione
I dati restano sul server per tutto il tempo in cui l'account esiste. Eliminare un veicolo, una spesa, un promemoria, una categoria o una registrazione di condivisione dentro l'app è una cancellazione logica sul server: la riga smette di essere mostrata e smette di sincronizzarsi, ma viene conservata e contrassegnata come eliminata.
Nell'app non c'è una schermata per cancellare il proprio account, e nemmeno il server ha un endpoint che lo faccia. La cancellazione è una richiesta via e-mail a contacts@mve.suxlv2.space, a cui risponde l'unica persona che legge quell'indirizzo. Questa è tutta la procedura, e far finta del contrario sarebbe più facile da scrivere che da mantenere.
In concreto:
- Eliminare dentro l'app: la voce lascia la tua app e quella di chiunque abbia ricevuto la condivisione, e resta sul server contrassegnata come eliminata.
- Uscire dall'account: non viene cancellato nulla da nessuna parte. Le voci ancora in coda per l'invio vanno perse se esci prima che siano partite, e l'app ti avverte prima di farlo.
- Disinstallare: la copia locale se ne va. Accedere di nuovo riporta indietro quello che il server ha, limiti mensili e modelli di spesa compresi se Premium li aveva salvati lì; tutto quello che al server non è mai arrivato è perduto.
- Cancellare l'account e i suoi dati sul server: scrivi a contacts@mve.suxlv2.space.
14I tuoi diritti
Puoi chiedere che cosa è conservato su di te, chiedere una correzione, chiedere una copia, chiedere la cancellazione oppure opporti a una parte del trattamento. Per tutto questo c'è un indirizzo solo: contacts@mve.suxlv2.space. Scrivi dall'indirizzo con cui l'account è registrato, perché quell'indirizzo è l'unico identificativo che abbiamo di te.
- Accesso e copia. L'app esporta un veicolo alla volta in CSV o in un rapporto PDF, e il CSV è il più completo dei due. Per tutto quello che l'esportazione non copre, chiedi via e-mail.
- Correzione. La maggior parte dei campi si può correggere nell'app stessa. Dove non si può, chiedi via e-mail.
- Cancellazione. Via e-mail, come descritto nella sezione qui sopra.
- Opposizione. Via e-mail, compresa l'opposizione alla comparsa del tuo veicolo nell'elenco delle statistiche mondiali: nell'app non c'è alcun interruttore per questo, quindi dev'essere una richiesta.
15Modifiche a questa informativa
Quando questo documento cambia, cambia con esso la data in cima alla pagina, e quella data è l'unico segnale: l'app non ti spinge addosso gli aggiornamenti dell'informativa. Se una modifica dovesse mai comportare la raccolta di qualcosa di nuovo, verrà descritta qui con lo stesso dettaglio di tutto il resto, prima che la modifica arrivi nell'app.

