Dettagli tecnici della sicurezza
Questa pagina è per chi deve valutare Walkie Desk dal punto di vista tecnico. Per una panoramica, vedi Sicurezza.
Descrive il servizio com’è oggi, in beta: quando qualcosa cambia la aggiorniamo.
Panoramica
Walkie Desk ha quattro parti: il programma sul PC da raggiungere, il browser di chi si collega, il server di coordinamento su walkiedesk.app e un server di inoltro (TURN), usato solo quando i due dispositivi non riescono a collegarsi direttamente.
- Browser e walkiedesk.app: HTTPS e WebSocket sicuro (TLS). Servono ad accedere all’account e a scambiare i parametri della sessione, firmati dai dispositivi.
- PC e walkiedesk.app: WebSocket sicuro (TLS) aperto dal servizio di Windows, che verifica sempre il certificato e il nome del server, con il controllo della revoca.
- PC e browser: la sessione vera e propria (video, tastiera, mouse, appunti), con WebRTC e cifrata end-to-end. Il server di coordinamento non è su questo percorso.
- Inoltro: se il collegamento diretto non è possibile, gli stessi pacchetti cifrati passano dal server di inoltro, che non ha le chiavi per leggerli.
Cifratura
La sessione usa WebRTC. Il video viaggia con SRTP, con le chiavi negoziate tramite DTLS (DTLS-SRTP); tastiera, mouse, appunti e comandi viaggiano nei data channel, cioè SCTP dentro DTLS. Le chiavi si negoziano fra il PC e il browser e restano lì: non le conoscono né il server di coordinamento né il server di inoltro.
Nella negoziazione DTLS ogni dispositivo presenta un certificato la cui impronta è scritta nei parametri della sessione (SDP). Quei parametri sono firmati dai dispositivi (sotto): così il browser sa di parlare con il PC giusto, e il PC con il browser giusto.
Fra i dispositivi e walkiedesk.app tutto passa su HTTPS e WebSocket sicuro (TLS), con HSTS.
- Video
- SRTP con chiavi DTLS (DTLS-SRTP)
- Tastiera, mouse, appunti
- data channel WebRTC: SCTP su DTLS
- Firme dei dispositivi
- ECDSA P-256
- Impronta dei parametri firmati
- SHA-256
- Associazione e QuickSupport
- CPace, scambio di chiavi autenticato da password
- Password degli account
- Argon2id
- Secondo fattore
- TOTP oppure WebAuthn (chiave di sicurezza o passkey)
- Componenti sul PC
- libdatachannel, OpenSSL, libsrtp
- Componenti nel browser
- l’implementazione WebRTC di Chrome, Edge o Firefox
Usiamo componenti open source diffusi e mantenuti aggiornati; l’elenco completo (SBOM) è disponibile su richiesta delle autorità.
Identità dei dispositivi e firma delle sessioni
Ogni PC con Walkie Desk e ogni browser fidato ha una propria coppia di chiavi ECDSA P-256:
- sul PC la chiave privata è creata nel chip TPM, non esportabile, quando il PC ne ha uno; altrimenti nell’archivio delle chiavi di Windows, anch’essa non esportabile;
- nel browser è una chiave WebCrypto non estraibile, conservata in IndexedDB: la pagina può usarla per firmare, ma non leggerla.
I browser fidati di una persona formano una catena firmata: il primo la crea, ogni browser successivo vi entra solo con l’approvazione di un browser già fidato (con un codice monouso) o con la chiave di recupero dell’account. Il server conserva la catena ma non può aggiungervi un browser, perché non ha le chiavi per firmarla.
Prima di ogni sessione il PC firma la sua proposta di connessione e il browser la sua risposta, comprese le impronte DTLS. Ciascuno verifica la firma dell’altro con una chiave che conosce già, prima di usare i parametri.
Che cosa protegge: se qualcuno sul percorso del coordinamento, compreso il server, sostituisse un’impronta DTLS per mettersi in mezzo fra PC e browser, la firma non sarebbe più valida e la sessione verrebbe rifiutata. Il server mette in contatto i dispositivi, ma non può sostituirsi a loro. Che cosa non copre è spiegato in Limiti noti.
Cosa vede e cosa non vede il server
Vede
- i PC (identificativo, chiave pubblica, nome del computer, versioni di Windows e del programma), gli account e le chiavi pubbliche dei browser fidati;
- i dati di ogni sessione: chi si collega a quale PC, quando e per quanto, se passa dall’inoltro, statistiche tecniche di qualità;
- i log tecnici dei server, come indirizzi IP e pagine richieste.
Non vede
- il contenuto delle sessioni: schermo, tasti, mouse, appunti;
- la password di QuickSupport e la parte segreta del codice di associazione;
- le chiavi private dei PC e dei browser.
I server sono in Italia; i dati e le copie di sicurezza restano nell’Unione europea. Che cosa conserviamo, per quanto tempo e con quali fornitori: informativa privacy.
Account
- Password da 12 a 128 caratteri, senza regole di composizione, salvata solo come impronta Argon2id.
- Secondo fattore obbligatorio per ogni account fin dalla registrazione: un’app di autenticazione (TOTP) oppure una chiave di sicurezza o una passkey (WebAuthn). Niente SMS.
- Dieci codici di recupero, salvati solo come impronta.
- I tentativi di accesso falliti ripetuti vengono bloccati; accessi, cambi di password e del secondo fattore sono registrati come eventi di sicurezza.
- In arrivo: l’accesso senza password, solo con una passkey.
Accesso non presidiato
- Un PC con Walkie Desk non è raggiungibile finché non lo associ a un account.
- Per associarlo generi nell’area utente un codice di 9 caratteri e lo inserisci sul PC. Il codice scade dopo pochi minuti e accetta pochissimi tentativi. Una parte del codice è un segreto creato nel tuo browser, che non arriva mai al server: PC e browser lo usano con CPace per riconoscersi e scambiarsi le chiavi pubbliche, quindi il server non può associare un PC al posto tuo.
- Puoi togliere un PC dal tuo account nell’area utente, e chi amministra il PC può revocare l’accesso di un account dall’app di Walkie Desk sul PC.
- Durante ogni sessione il PC mostra, per impostazione predefinita, un riquadro rosso intorno al monitor con il nome di chi è collegato e il pulsante Termina. Chi amministra il PC può nascondere il riquadro nelle sessioni con account.
QuickSupport
- Si avvia senza installazione e con i diritti dell’utente; chi riceve assistenza non ha bisogno di un account.
- Mostra un ID di 9 cifre e una password di 6 caratteri. La password non viene mai inviata al server: il computer e il browser del tecnico la usano con CPace per riconoscersi. Vale per una sola sessione e cambia dopo pochi tentativi sbagliati.
- La chiave del computer viene creata a ogni avvio e resta solo nella memoria del programma: sparisce quando lo chiudi.
- Prima di ogni sessione una finestra mostra chi vuole collegarsi: la sessione parte solo se premi Consenti; se nessuno risponde, la richiesta viene rifiutata dopo poco.
- Durante la sessione un riquadro rosso circonda lo schermo e il pulsante Termina la chiude in qualsiasi momento. Il riquadro non si può nascondere.
- Alla chiusura il programma cancella la cartella temporanea che aveva creato.
Contro le truffe del finto supporto tecnico: Protezione dalle truffe.
Programmi firmati e codec OpenH264
Il setup di Walkie Desk per Windows, i suoi programmi e QuickSupport sono firmati con Authenticode dall’editore iDev srl, con una marca temporale: la firma resta verificabile anche dopo la scadenza del certificato. Le librerie di terze parti incluse non sono firmate da noi.
Il codec OpenH264 non è incluso: il programma lo scarica dal sito di Cisco e lo usa solo se la sua impronta SHA-256 è quella attesa.
Come verificare l’editore e l’impronta di un file scaricato: Sicurezza.
Aggiornamenti e periodo di supporto
- Walkie Desk per Windows mostra un avviso nell’app della barra quando è disponibile una nuova versione. L’aggiornamento automatico è in arrivo.
- QuickSupport non si aggiorna: si scarica ogni volta dal sito, quindi è sempre l’ultima versione.
- Periodo di supporto: durante la beta riceve correzioni solo l’ultima versione. Dal lancio ogni versione riceve correzioni di sicurezza fino a 12 mesi dopo l’uscita della versione successiva, e il prodotto è supportato per almeno 5 anni dal lancio.
- Le vulnerabilità corrette sono pubblicate negli avvisi di sicurezza, con le versioni interessate e quella che le corregge.
- L’elenco dei componenti software (SBOM) è disponibile su richiesta delle autorità.
Limiti noti
Il codice della web app, cioè l’area utente e il visualizzatore da cui il tecnico si collega, è distribuito dal server di walkiedesk.app a ogni accesso. La firma dei parametri protegge le sessioni da chi altera i messaggi di coordinamento, ma non da un server compromesso che distribuisse al browser codice modificato.
Mitigazione attuale: una Content Security Policy restrittiva, che consente solo script dello stesso dominio e nessuna risorsa di terzi, salvo il componente di pagamento di Stripe nella sola pagina Abbonamento. Un visualizzatore firmato, verificabile senza fidarsi del server, è un miglioramento previsto.
Segnalare un problema
- Politica di divulgazione: come segnalarci una vulnerabilità e cosa aspettarti.
- Avvisi di sicurezza, anche come feed Atom.
- Segnalazioni: vulnerabilità, abusi, altri problemi di sicurezza o privacy.
- Email: security@walkiedesk.app.