Sicurezza e privacy
Dove stanno le chiavi, cosa vede il cloud, chi può aprire il configuratore e come si protegge il collegamento con la scheda.
JZ Companion è local-first: i dati e le chiavi restano dove li usi. Questa pagina riassume le scelte; i dettagli tecnici sono nel riferimento sull'abbinamento.
Le chiavi restano da te
- Sul computer (modalità cervellone): il gestore delle chiavi cifra ogni segreto con AES-256-GCM in
~/.jz-desk/chiavi. La chiave principale sta in un file con permessi 0600 fuori da~/.jz-desk(sul Mac in~/Library/Application Support/jz-desk/), così una copia della cartella dei dati non basta. In alternativa si può ricavare da una password (scrypt). - Sulla scheda (standalone): le chiavi stanno nella memoria cifrata della scheda. Le manda il portale, cifrate con il codice a 6 cifre: il portale le inoltra ma non le legge.
- Nel cloud: non arrivano mai. Il portale gestisce l'accesso, l'elenco delle schede, il blocco attivazione e le feature flag.
- Nel configuratore le chiavi non si leggono mai: si cambiano o si tolgono. Lasciare vuoto un campo segreto tiene quello salvato.
Cosa fa il cervello con la rete
Le richieste alle API dei servizi partono dal tuo computer (o dalla tua scheda) e vanno direttamente al servizio.
Ogni integrazione dichiara nel suo manifest quali domini contatta (per esempio api.linear.app) e se apre link o
usa il Bluetooth. Vedi integrazioni.
Chi può aprire il configuratore
Il configuratore e le API di amministrazione rispondono solo a questo computer. La richiesta deve arrivare da
loopback, con Host localhost o 127.0.0.1, senza intestazioni di proxy, e non mandata da un'altra pagina.
Per questo un sito aperto nel browser non può leggere né modificare niente, e un tunnel o la rete locale non
aprono l'amministrazione.
| Chi | Cosa vede |
|---|---|
| Questo computer | Tutto: configuratore e amministrazione. |
| Un telefono | Il simulatore, dopo il codice a 6 cifre generato nel configuratore. |
| Una scheda | Solo il canale cifrato, dopo l'abbinamento. |
Il collegamento con la scheda
- L'abbinamento usa un codice a 6 cifre (valido 2 minuti, 5 tentativi) con il protocollo CPace: il codice non viaggia mai in rete e chi ascolta ha un solo tentativo per indovinarlo. Via cavo basta una conferma sulla scheda.
- Da lì ogni collegamento apre un canale cifrato (ChaCha20-Poly1305) con chiavi nuove, una per verso: chi rubasse domani la chiave di abbinamento non leggerebbe le sessioni di oggi. I frame ripetuti, vecchi o manomessi vengono scartati.
- Si può revocare una scheda da entrambe le parti.
Cosa non è coperto
Non si fa credere più di quello che c'è. I limiti noti:
- Finché non ci sono flash e memoria cifrate e un firmware firmato, chi ha la scheda in mano e un cavo può leggere le chiavi di abbinamento salvate sulla scheda.
- Sul computer, un programma che gira già con il tuo utente può leggere
schede.jsone chiedere l'abbinamento via cavo (lo ferma solo il sì sullo schermo). - Chi controlla la rete può sempre impedire il collegamento: è un disservizio, non una violazione.
L'elenco completo, con i casi, è nella tabella "Cosa protegge, e da cosa" del riferimento sull'abbinamento.
La tastiera USB
La scheda si presenta al computer anche come tastiera, ma digita solo scorciatoie fisse scritte nel firmware, mai testo arrivato da fuori.
PIN di blocco
Dalle impostazioni della scheda si imposta un PIN da 4 a 8 cifre, salvato come impronta Argon2id. Dopo 5 errori di fila si aspetta, con attese crescenti (30 secondi, 1 minuto, 5 minuti, poi 15). Bloccata, la scheda mostra solo l'ora.
Log
In locale c'è tutto, strutturato, per 30 giorni, con i segreti oscurati. In cloud va solo ciò che scegli di mandare.