Walkie Desk

Détails techniques de sécurité

Ceci est une traduction. En cas de divergence, la version italienne fait foi.

Cette page s’adresse à celles et ceux qui doivent évaluer Walkie Desk d’un point de vue technique. Pour une vue d’ensemble, consultez Sécurité.

Elle décrit le service tel qu’il est aujourd’hui, en bêta : quand quelque chose change, nous la mettons à jour.

Vue d’ensemble

Walkie Desk comporte quatre éléments : le programme sur le PC à joindre, le navigateur de la personne qui se connecte, le serveur de coordination sur walkiedesk.app et un serveur relais (TURN), utilisé uniquement quand les deux appareils ne parviennent pas à se connecter directement.

Schéma de Walkie Desk Le navigateur du technicien et le PC équipé de Walkie Desk se connectent tous deux au serveur de coordination walkiedesk.app en TLS (1 et 2). La session passe directement entre le navigateur et le PC, chiffrée de bout en bout (3) ; si une connexion directe n’est pas possible, elle passe, toujours chiffrée, par le serveur relais TURN (4). walkiedesk.appcoordination Navigateurdu technicien PCavec Walkie Desk Relais TURNseulement si nécessaire 1 2 3 4 4
  1. Navigateur et walkiedesk.app : HTTPS et WebSocket sécurisé (TLS). Servent à se connecter au compte et à échanger les paramètres de la session, signés par les appareils.
  2. PC et walkiedesk.app : WebSocket sécurisé (TLS) ouvert par le service Windows, qui vérifie toujours le certificat et le nom du serveur, y compris le contrôle de révocation.
  3. PC et navigateur : la session elle-même (vidéo, son de l’ordinateur, clavier, souris, presse-papiers, fichiers et chat), via WebRTC et chiffrée de bout en bout. Le serveur de coordination ne se trouve pas sur ce chemin.
  4. Relais : si une connexion directe n’est pas possible, les mêmes paquets chiffrés passent par le serveur relais, qui n’a pas les clés pour les lire.

Chiffrement

La session utilise WebRTC. La vidéo et le son de l’ordinateur circulent en SRTP, avec des clés négociées via DTLS (DTLS-SRTP) ; le clavier, la souris, le presse-papiers, les fichiers, les messages du chat et les commandes circulent dans des data channels, c’est-à-dire du SCTP dans du DTLS. Les clés sont négociées entre le PC et le navigateur et y restent : ni le serveur de coordination ni le serveur relais ne les connaissent.

Lors de la négociation DTLS, chaque appareil présente un certificat dont l’empreinte est inscrite dans les paramètres de la session (SDP). Ces paramètres sont signés par les appareils (ci-dessous) : ainsi, le navigateur sait qu’il parle au bon PC, et le PC au bon navigateur.

Entre les appareils et walkiedesk.app, tout passe par HTTPS et WebSocket sécurisé (TLS), avec HSTS.

Vidéo et son de l’ordinateur
SRTP avec clés DTLS (DTLS-SRTP) ; audio encodé en Opus
Clavier, souris, presse-papiers, fichiers, chat
data channels WebRTC : SCTP sur DTLS
Signatures des appareils
ECDSA P-256
Empreinte des paramètres signés
SHA-256
Association, QuickSupport et ID et mot de passe
CPace, échange de clés authentifié par mot de passe
Appels
DTLS-SRTP entre les deux navigateurs ; paramètres authentifiés par HMAC-SHA-256 et une clé dérivée par HKDF d’un secret à usage unique
Mots de passe des comptes
Argon2id
Second facteur
TOTP ou WebAuthn (clé de sécurité ou clé d’accès)
Composants sur le PC
libdatachannel, OpenSSL, libsrtp, libsodium, Opus
Composants dans le navigateur
l’implémentation WebRTC de Chrome, Edge ou Firefox

Nous utilisons des composants open source largement répandus, que nous tenons à jour ; la liste complète de chaque version (SBOM), avec les versions, les licences et la provenance, est publique : Composants logiciels.

Identité des appareils et signature des sessions

Chaque PC équipé de Walkie Desk et chaque navigateur de confiance possède sa propre paire de clés ECDSA P-256 :

Les navigateurs de confiance d’une personne forment une chaîne signée : le premier la crée, et chaque navigateur suivant n’y entre qu’avec une entrée signée par un appareil déjà présent dans la chaîne. Il existe trois façons de le faire :

Chaque PC vérifie toutes les signatures de la chaîne avant d’accepter un navigateur, et décompte lui-même les 10 minutes. Le serveur conserve la chaîne mais ne peut pas y ajouter de navigateur, car il n’a pas les clés pour la signer. Un PC doté d’une version antérieure de Walkie Desk applique les règles précédentes (par exemple, il exige aussi la clé d’accès pour approuver un navigateur) : tant qu’il n’est pas mis à jour, l’espace utilisateur le signale et ne propose que les opérations acceptées par ce PC.

Avant chaque session, le PC signe sa proposition de connexion et le navigateur signe sa réponse, empreintes DTLS comprises. Chaque partie vérifie la signature de l’autre avec une clé qu’elle connaît déjà, avant d’utiliser les paramètres.

Ce que cela protège : si quelqu’un sur le chemin de coordination, serveur compris, remplaçait une empreinte DTLS pour s’interposer entre le PC et le navigateur, la signature ne serait plus valide et la session serait refusée. Le serveur met les appareils en relation, mais ne peut pas se faire passer pour eux. Ce que cela ne couvre pas est expliqué dans Limites connues.

Ce que le serveur voit et ne voit pas

Il voit

  • les PC (identifiant, clé publique, nom de l’ordinateur, versions de Windows et du programme), les comptes et les clés publiques des navigateurs de confiance ;
  • les données de chaque session : qui se connecte à quel PC, quand et pour combien de temps, si elle passe par le relais, si elle a été enregistrée (oui ou non), des statistiques techniques de qualité ;
  • les journaux techniques des serveurs, comme les adresses IP et les pages demandées ;
  • pour l’accès avec ID et mot de passe, les tentatives échouées (compte, adresse IP, PC, heure) et, pour chaque utilisateur, la liste « Récents » des PC d’autres personnes auxquels il s’est connecté ;
  • pour les appels, qui a appelé quel PC et quand, ainsi que les paramètres de connexion (adresses réseau et empreintes DTLS).

Il ne voit pas

  • le contenu des sessions : écran, son de l’ordinateur, frappes au clavier, souris, presse-papiers, fichiers transférés et messages du chat ;
  • l’audio et la vidéo des appels, ni si le micro et la webcam sont allumés ;
  • les enregistrements de session, qui restent sur l’appareil de la personne qui enregistre ;
  • le mot de passe de QuickSupport, celui de l’accès avec ID et mot de passe et la partie secrète du code d’association ;
  • les clés privées des PC et des navigateurs.

Le serveur relais, quand la session passe par lui, ne transporte que des paquets chiffrés : il n’a pas les clés pour les lire et ne conserve ni le contenu des sessions, ni les fichiers, ni les messages.

Les serveurs sont en Italie ; les données et les sauvegardes restent dans l’Union européenne. Ce que nous conservons, pendant combien de temps et avec quels prestataires : politique de confidentialité.

Compte

Accès sans surveillance

QuickSupport

Contre les arnaques au faux support technique : Protection contre les arnaques.

ID et mot de passe

Son de l’ordinateur et appels

Programmes signés et codec OpenH264

Le programme d’installation de Walkie Desk pour Windows, ses programmes et QuickSupport sont signés avec Authenticode par l’éditeur iDev srl, avec un horodatage : la signature reste vérifiable même après l’expiration du certificat. Les bibliothèques tierces incluses ne sont pas signées par nous.

Le codec OpenH264 n’est pas inclus : le programme le télécharge depuis le site de Cisco et ne l’utilise que si son empreinte SHA-256 est celle attendue.

Comment vérifier l’éditeur et l’empreinte d’un fichier téléchargé : Sécurité.

Mises à jour et période de support

Mise à jour automatique, signature des versions avec la clé de publication, réglages pour la désactiver, vérification publique d’une version et versions précédentes : Mises à jour.

Limites connues

Le code de l’application web, c’est-à-dire l’espace utilisateur et le viewer depuis lequel le technicien se connecte, est fourni par le serveur walkiedesk.app à chaque visite. La signature des paramètres protège les sessions contre quiconque modifierait les messages de coordination, mais pas contre un serveur compromis qui fournirait au navigateur un code modifié.

Mesure d’atténuation actuelle : une Content Security Policy stricte, qui n’autorise que les scripts du même domaine et aucune ressource tierce, à l’exception du composant de paiement de Stripe, sur la seule page Abonnement. Un viewer signé, vérifiable sans faire confiance au serveur, est une amélioration prévue.

Il en va de même pour la page d’appel qui s’ouvre dans le navigateur du PC, elle aussi servie par walkiedesk.app. Un technicien qui contrôle déjà le PC pourrait ouvrir lui-même une page d’appel sans passer par la fenêtre de réponse : c’est un pouvoir qu’il a de toute façon, puisque le contrôle lui permet de lancer n’importe quel programme ou site ; l’onglet du navigateur et l’indicateur d’utilisation du micro du système restent visibles.

Signaler un problème