Come funziona
Si vede solo mentre ci sei.
DiPersona è un tavolo per le persone che conosci. Ognuno appoggia le sue cose, cioè foto, documenti e pensieri: chi è seduto le vede, e quando qualcuno si alza le sue cose se ne vanno con lui. Questa pagina racconta come funziona, senza tecnicismi, e quali limiti restano.
Ci si conosce
Il primo incontro comincia con un codice QR, se siete vicini, oppure con un link di invito mandato su un canale che usate già, come una conversazione o un’e-mail. Poi confrontate un codice sui due telefoni, di persona o con una chiamata, e confermate solo se coincide. Da quel momento i vostri telefoni si riconoscono da soli.
Il nome scritto sullo schermo, da solo, non prova chi sia l’altra persona: per questo serve il codice. L’app crea sul telefono le chiavi che proteggono l’identità e gli scambi. Non esiste una ricerca pubblica per nome, numero di telefono o indirizzo e-mail, e il server non può riconoscere qualcuno al posto tuo.
L’invito del gestore porta anche l’indirizzo e le informazioni necessarie a riconoscere il suo relay. L’app le verifica e le conserva nel proprio archivio cifrato: non devi configurare un server per accettare l’invito. Le informazioni ricevute con gli inviti restano legate ai collegamenti e ai tavoli; «I tuoi relay» mostra soltanto i relay che gestisci tu. Per usare un contatto su un altro relay occorre prima ammetterlo lì con l’invito del relativo gestore: i contatti non si spostano automaticamente fra relay.
Puoi rimuovere un relay anche quando è spento: quelli propri da «I tuoi relay», quelli ricevuti negli inviti da «Le persone» → «Gestisci collegamenti». Il telefono smette di usarlo, ma conserva persone, cose e prove necessarie al recupero. Gli altri relay continuano a essere utilizzabili. I tavoli del relay rimosso restano legati a quel server; se ne crei uno nuovo, vi incontrate sul nuovo relay e create nuovi tavoli. Rimuovere il collegamento dall’app non elimina il server e non modifica l’altro telefono.
Il tavolo si decide insieme
Un tavolo riunisce da due a dieci persone che si conoscono tutte fra loro. La proposta mostra tutti i partecipanti e ciascuno deve accettarla. Ogni cambio del gruppo è una nuova versione che tutti devono accettare di nuovo: nessuno può aggiungere una persona di nascosto, nemmeno il server.
Puoi creare un tavolo soltanto su un relay che gestisci tu, scegliendo persone già ammesse su quel relay. Chi è invitato può partecipare senza avere un proprio relay. Ogni tavolo usa il relay del suo creatore; puoi conservare fino a sedici tavoli complessivi, anche su relay diversi, e stare seduto a uno solo per volta. Sedici tavoli nell’account non significano sedici tavoli pieni contemporaneamente sullo stesso server: la capacità dipende dal relay e dal carico.
Far parte di un tavolo è diverso dall’esserci. Un invito, un avviso o una connessione attiva non bastano per vedere le cose degli altri: bisogna essere seduti.
Sedersi e alzarsi
Per sederti tieni il tavolo aperto sul telefono, che intanto continua a confermare agli altri che ci sei. Ti alzi quando esci dal tavolo, quando chiudi l’app o quando resti senza rete: in pochi secondi le tue cose smettono di essere visibili. Se l’avviso di uscita non raggiunge subito un telefono, la vista si chiude comunque alla breve scadenza già autorizzata.
Nell’app lo vedi dalle sedie. Una sedia piena vuol dire che quella persona è seduta adesso; una tratteggiata che non c’è. Nell’elenco dei tavoli le sedie sono solo apparecchiate, perché da lì non si sa chi è seduto: lo scopri entrando.
DiPersona chiede l’impronta, il volto o il PIN del telefono quando l’app si avvia da zero e dopo almeno cinque minuti in secondo piano. Se torni prima, la precedente verifica resta valida. È un blocco dell’accesso all’interfaccia, distinto dalla cifratura dell’archivio e dall’uso delle sue chiavi.
Mostrare le tue cose
Al tavolo metti foto, documenti PDF e pensieri. Le tre cose più recenti sono in evidenza, le altre stanno nella tua pila, fino a sedici per tavolo. Ogni cosa, una volta pronta, pesa al massimo 256 KiB: le foto vengono ridotte dall’app, anche partendo da file di qualche megabyte; di un PDF l’app tiene le fotografie delle prime pagine; il file originale resta dove l’hai preso.
Le persone autorizzate ricevono sul telefono anteprime da consultare mentre sei seduto. L’app non le salva automaticamente nel loro archivio. Di un documento vedono solo le prime pagine, di solito una o due, al massimo quattro; le pagine senza foto si vedono in bianco e nero. Il tavolo usa il blocco delle catture di Android. Chi può vedere il contenuto può comunque fotografarlo o riprodurlo; un’app modificata o un telefono compromesso possono conservarlo. Il blocco delle catture non è esteso a tutte le schermate: la schermata principale e «Le tue cose» possono essere catturate.
Sulle cose ci si scrive: un commento di al massimo 90 caratteri, fino a 32 per ogni cosa. I commenti restano legati alla cosa e si leggono mentre chi l’ha portata è seduto, anche se chi li ha scritti si è alzato.
Parlarsi al tavolo
Chi è seduto può anche parlare con gli altri. Le parole arrivano a tutte le persone sedute in quel momento, e l’app mostra sempre chi ti sente. Mentre la conversazione va avanti, le parole più vecchie sbiadiscono e poi spariscono.
Il software distribuito non salva la conversazione nel server o nell’archivio dei telefoni: le parole restano nella memoria dell’app finché il tavolo è aperto. Quando qualcuno si alza, l’app rimuove le sue parole anche dagli schermi degli altri; chi si siede dopo trova il tavolo pulito. La schermata usa il blocco delle catture di Android e chiede alla tastiera di non usare quanto scrivi per l’apprendimento. Queste protezioni dipendono dal sistema e dalla tastiera e non impediscono la conservazione su un dispositivo compromesso.
L’app riduce anche i segnali di rete legati alla scrittura, senza promettere che l’attività sia invisibile: lo spiega, più sotto, «Come sono protetti gli scambi».
Regalare una copia
Un regalo è una copia di una tua cosa, offerta a una persona seduta al tavolo. Se non la accetta entro un minuto, l’offerta decade. Se la accetta, l’app la salva sul suo telefono e ne verifica il salvataggio.
La copia resta sua anche quando ti alzi o smetti di mostrare la tua cosa, e non puoi ritirarla a distanza. Non comprende i commenti degli altri e non fa parte del file di recupero. Si regalano foto, documenti e pensieri: di un documento, la copia porta le fotografie delle sue pagine; quando non sono tutte, sulla copia compare per esempio «4 pagine di 11».
Lasciare un biglietto
Quando non ci sei, puoi lasciare al tavolo un biglietto: una delle cose che hai sul tavolo, disponibile per due ore anche in tua assenza. Ce n’è uno per volta per ogni tavolo e puoi ritirarlo quando vuoi. La conferma dell’invio non significa che qualcuno lo abbia letto.
Di un documento, il biglietto porta solo le pagine che si vedono al tavolo. Il server lo tiene cifrato solo in memoria, al massimo due ore: un riavvio può perderlo prima. I dettagli sono in Dati sui server.
Il biglietto è l’unica eccezione alla regola della presenza. Per farsi leggere mentre non ci sei resta legato alle chiavi del destinatario: la successiva compromissione delle chiavi necessarie può rendere leggibile una copia cifrata conservata in precedenza. Non ha la stessa protezione del traffico di una sessione E2E conclusa, descritta sotto. In entrambi i casi una persona che ha già potuto leggere può avere acquisito una copia.
Gli avvisi
Gli avvisi in background sono facoltativi: li attivi dall’app e concedi il permesso di Android. DiPersona usa un proprio ascolto, senza Google Play Services e senza altre app. Una notifica di servizio indica che l’ascolto è attivo e offre il pulsante «Disattiva».
L’avviso non contiene nomi né contenuti. Il più importante dice: «Qualcuno si è seduto a un tuo tavolo. Apri DiPersona per verificare chi è presente.» Gli altri dicono solo che c’è qualcosa da verificare: possono riguardare un invito, un recupero o attività tecnica dei collegamenti, anche quando l’altra persona riapre l’app. Il solo avviso non ne distingue il motivo e non indica necessariamente un messaggio nuovo. Nell’ingresso dell’app, per circa mezz’ora, trovi «Qualcuno si è seduto a un tuo tavolo» e quanto tempo fa: né il tavolo né la persona, solo l’ora, e solo nella memoria dell’app.
Un avviso non apre l’account e non ti fa sedere. Android e la rete possono ritardarlo o sospenderlo, e l’ascolto consuma un po’ di batteria. Aprendo DiPersona, le richieste ancora valide vengono verificate anche se l’avviso non è arrivato. Dopo un arresto forzato nelle impostazioni occorre riaprire l’app perché gli avvisi ripartano.
Le tue persone
Nella pagina delle persone trovi chi conosci. Se qualcuno cambia telefono, l’app te lo chiede: confermalo solo se l’hai sentito davvero, con una chiamata o di persona.
Puoi interrompere il collegamento con una persona con «Togli la sedia». I vecchi accessi ai tavoli e al recupero vengono revocati. Per tornare a conoscervi serve un nuovo incontro verificato e confermato su entrambi i telefoni con «Conosci di nuovo»: i vecchi collegamenti e tavoli non vengono riattivati. I blocchi imposti per ragioni di sicurezza o per un account sostituito restano esclusi da questo percorso.
Se cambi o perdi il telefono
Tre cose ti riportano il tuo account: le 12 parole, scritte su un foglio lontano dal telefono; il file di recupero, salvato nella posizione che scegli; le tue persone, che ti riconoscono.
L’app può aggiornare automaticamente il file scelto mentre è aperta e sbloccata, finché Android consente di accedere alla destinazione. Questo comprende i dati dei collegamenti con le persone e le modifiche alle associazioni dei relay, anche quando ne rimuovi uno. Nell’account trovi lo stato del file: modifiche da salvare, salvataggio in corso, file verificato o intervento necessario. La preparazione manuale sospende l’aggiornamento automatico finché la completi o la abbandoni. Un tentativo fallito non viene confermato come riuscito. Una copia inviata per email o copiata altrove non si aggiorna da sola.
- Con le 12 parole e il file ritrovi il tuo account e le informazioni su persone e tavoli presenti nel file. Per ricollegarti servono i relay registrati ancora disponibili e la conferma delle persone che riconoscono il telefono nuovo. Prima di continuare, l’app ti mostra la data dell’ultimo salvataggio del file.
- Con le sole 12 parole ritrovi il tuo account, ma non le persone. Quando le rincontri, ti riconoscono e confermano il telefono nuovo. I tavoli che avevi creato non tornano.
- Senza le 12 parole il vecchio account non si può ritrovare: nessuno può farlo, nemmeno noi. Il file da solo non si apre.
- Se hai perso tutto ricominci con un account nuovo. Al primo incontro, alle tue persone l’app chiede se sei la stessa persona con un account nuovo: decidono loro.
Il file è chiuso con una chiave che solo le 12 parole aprono, ed è firmato dal telefono a ogni aggiornamento. Contiene quello che serve a ritrovare account e collegamenti; non contiene foto, documenti, pensieri, commenti, conversazioni o regali ricevuti. DiPersona non conserva un backup di questi contenuti: il recupero non li riporta. I regali che avevi fatto restano a chi li ha ricevuti; eventuali copie esterne restano distinte. I biglietti destinati al vecchio telefono non vengono recuperati dal file di recupero.
Il file conserva anche le associazioni ai relay, compresi quelli ricevuti per invito, e le identità tecniche distinte usate per ciascuno. Sul nuovo telefono l’app deve riautorizzare queste identità e i collegamenti: un file precedente a un’associazione non può ripristinarla. Con le sole parole, senza il file aggiornato, queste associazioni non tornano automaticamente. Il recupero dell’account non ricrea un relay cancellato né recupera i dati che il suo gestore ha perso.
Come sono protetti gli scambi
Fra ogni due persone c’è un canale cifrato tutto loro: a un tavolo di cinque persone ci sono dieci canali, e nessuno passa dagli altri. Il server trasporta le buste senza possedere le chiavi per aprirle.
Le nuove sessioni E2E fra i telefoni stabiliscono chiavi temporanee, distinte dalle chiavi permanenti d’identità. Un collegamento sicuro già attivo può essere riutilizzato per più ingressi al tavolo: ogni ingresso richiede comunque nuove verifiche di presenza e autorizzazione. La successiva sottrazione della sola chiave permanente d’identità non basta a decifrare il traffico registrato di una sessione conclusa. Questo non protegge le chiavi di sessione o i dati già presenti su un telefono compromesso, né le copie acquisite da chi poteva leggere. Il biglietto non ha questa stessa protezione.
Cifrare non basta: anche la forma del traffico può raccontare qualcosa. DiPersona riduce alcuni segnali usando buste di dimensioni prefissate: messaggi del tavolo in blocchi uguali, foto e pagine in misure prestabilite, regali in quattro classi di misura. Le immagini vengono caricate in anticipo per ridurre le richieste legate alla loro apertura; le parole usano invii regolari anche quando non si scrive. Queste misure non rendono indistinguibile ogni attività: connessioni, orari, volumi, ritardi e ritentativi possono ancora rivelare informazioni. Gli invii regolari consumano dati anche nel silenzio.
Il telefono verifica anche l’autenticità del servizio a cui si collega. Queste protezioni non mettono al sicuro un telefono già compromesso. Non è stata ancora fatta una verifica indipendente della sicurezza dell’intero servizio.
Il server in mezzo
Incontri, tavoli, biglietti e avvisi passano da un relay che tiene solo in memoria ciò che deve consegnare: un riavvio lo perde. Fanno eccezione i recapiti del recupero, con le loro richieste cifrate in attesa, le autorizzazioni tecniche degli utenti ammessi al relay e le registrazioni operative, che restano su disco. Il relay vede orari, quantità di traffico e recapiti che si ripetono: Dati sui server spiega che cosa resta e per quanto; Privacy descrive responsabilità e diritti.
Un relay tutto vostro
Il pacchetto Docker permette una nuova installazione su un server scelto e gestito da te. In «I tuoi relay» scegli «Crea il tuo relay»: l’app mostra «Crea il relay dal computer», da cui copi o condividi il collegamento con te stesso. Aprilo sul computer per preparare la configurazione e creare il server nel pannello del provider. I dati pubblici del gestore arrivano attraverso il collegamento, senza file da esportare o selezionare. Dopo l’installazione apri la pagina HTTPS del nuovo server sul computer. Sullo stesso telefono da cui hai creato il collegamento scegli «Associa il tuo relay» e inquadra il QR mostrato sul computer. L’app recupera la configurazione pubblica, ne verifica l’impronta e controlla l’associazione al tuo account. Controlla l’identità e conferma. Non occorre scaricare o scegliere un file. Il telefono firma la richiesta di associazione; la sua chiave privata non passa al computer. Il relay riconosce così il suo gestore: conoscere l’indirizzo del server non autorizza a usarlo.
Puoi scaricare gratuitamente l’APK dal sito senza invito. L’app parte senza relay preconfigurati: per partecipare ricevi l’invito di un gestore, per creare tavoli installi un tuo relay. Scaricare l’app non dà accesso ai relay o ai tavoli degli altri. Il costo del server è a carico di chi lo installa, che risponde anche dei dati tecnici trattati. Le istruzioni e lo stato delle verifiche sono sul sito dipersona.app.