Walkie Desk

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.

Schema di Walkie Desk Il browser del tecnico e il PC con Walkie Desk si collegano entrambi al server di coordinamento walkiedesk.app con connessioni TLS (1 e 2). La sessione passa direttamente fra browser e PC, cifrata end-to-end (3); se il collegamento diretto non è possibile passa, sempre cifrata, dal server di inoltro TURN (4). walkiedesk.appcoordinamento Browserdel tecnico PCcon Walkie Desk Inoltro TURNsolo se serve 1 2 3 4 4
  1. Browser e walkiedesk.app: HTTPS e WebSocket sicuro (TLS). Servono ad accedere all’account e a scambiare i parametri della sessione, firmati dai dispositivi.
  2. 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.
  3. 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.
  4. 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:

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

Accesso non presidiato

QuickSupport

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

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