Torna alle funzionalità
App mobileChat5 min read

Chat P2P Crittografata su Android

Invia testo e file direttamente ad altri dispositivi PlainApp sulla tua rete. Crittografia end-to-end con XChaCha20-Poly1305, nessun server centrale.

La schermata Chat è il messenger peer-to-peer integrato di PlainApp. Aprila e vedrai un elenco di ogni altro dispositivo PlainApp sulla tua rete — peer accoppiati, peer non accoppiati in attesa di essere accoppiati e qualsiasi canale (chat di gruppo) a cui ti sei unito o che hai creato. Tocca uno e ti trovi in una vista conversazione con bolle di messaggio, allegati di file e un indicatore di crittografia per ogni messaggio.

La chat funziona interamente sul telefono. Non c'è un server centrale, nessun account, nessuna ricerca tramite numero di telefono. I messaggi viaggiano direttamente dal tuo dispositivo al dispositivo peer attraverso il miglior trasporto disponibile — Wi-Fi Aware quando entrambi i dispositivi lo supportano, la rete locale altrimenti, con Bluetooth Low Energy come ripiego per la scoperta. Ogni messaggio è crittografato end-to-end e le chiavi non lasciano mai i dispositivi che le hanno prodotte.

Screenshot: Chat
Chat

Screenshot: Chat
Chat

Funzionalità principali

  • Messaggistica diretta peer-to-peer — testo e file inviati direttamente dal tuo dispositivo a un altro dispositivo PlainApp, senza relay intermedio.
  • Canali (chat di gruppo) — crea un canale e invita peer accoppiati. I messaggi del canale sono crittografati per ogni membro individualmente.
  • Allegati di file — allega foto, documenti o qualsiasi file dalla schermata File. I file sono crittografati e inviati attraverso lo stesso trasporto del testo.
  • Indicatore di crittografia per messaggio — ogni messaggio mostra un'icona a lucchetto una volta che è stato crittografato e riconosciuto dal peer.
  • Ripiego del trasporto — i messaggi scelgono automaticamente il miglior trasporto disponibile: LAN, Wi-Fi Aware o BLE per la scoperta.
  • Messaggi lunghi come file — qualsiasi cosa oltre 2048 caratteri viene automaticamente inviata come file di testo crittografato invece che come bolla di testo.

Procedura guidata

  1. Apri la scheda Chat dalla barra di navigazione inferiore. L'elenco mostra la chat locale (il tuo dispositivo), eventuali canali a cui ti sei unito e i peer accoppiati con stato online.
  2. Tocca un peer accoppiato per aprire la conversazione. Se un peer non è accoppiato, toccalo per avviare la procedura di accoppiamento — scansiona il codice QR del peer o accetta la richiesta di accoppiamento.
  3. Digita un messaggio nella barra di input in basso e premi invio. L'icona del lucchetto accanto al messaggio mostra lo stato di crittografia; si conferma quando il peer riconosce la ricezione.
  4. Allega un file — tocca il pulsante di allegato e scegli un file dalla schermata File. Il file viene crittografato e caricato sul peer attraverso il trasporto attivo.
  5. Controlla l'indicatore di crittografia — tocca e tieni premuto un messaggio inviato per vedere il suo stato di consegna, l'impronta della chiave di crittografia e il trasporto utilizzato.
  6. Cambia trasporto — se un peer è raggiungibile sia tramite LAN che Wi-Fi Aware, la conversazione seleziona automaticamente il più veloce. Tira giù per aggiornare e forzare una riconnessione.

Suggerimenti e trucchi

  • Accoppia entrambi i dispositivi una volta e rimangono accoppiati. I peer accoppiati si riconnettono automaticamente quando sono sulla stessa rete.
  • Crea un canale per messaggi di gruppo a più peer contemporaneamente. Ogni membro riceve una copia crittografata individualmente di ogni messaggio.
  • Se un messaggio non viene inviato, toccalo per aprire la finestra dello stato di consegna e riprovare senza riscrivere.
  • I messaggi lunghi (oltre 2048 caratteri) vengono inviati automaticamente come file di testo crittografati — non c'è bisogno di dividerli da soli.

Note su privacy e sicurezza

  • I messaggi sono crittografati end-to-end con XChaCha20-Poly1305. Le chiavi sono derivate per conversazione e non lasciano mai i dispositivi partecipanti.
  • Ogni dispositivo firma i suoi messaggi con una chiave Ed25519. Il peer verifica la firma rispetto alla chiave pubblica del mittente, che viene scambiata al momento dell'accoppiamento.
  • L'accoppiamento utilizza lo scambio di chiavi ECDH P-256 per stabilire un segreto condiviso. La stretta di mano dell'accoppiamento avviene tramite scansione di un codice QR o un canale locale a breve durata; non c'è alcun server centrale coinvolto in nessun passaggio.

Funzionalità correlate