Technische Sicherheitsdetails
Dies ist eine Übersetzung. Im Falle von Abweichungen ist die italienische Fassung maßgeblich.
Diese Seite richtet sich an alle, die Walkie Desk aus technischer Sicht bewerten müssen. Einen Überblick finden Sie unter Sicherheit.
Sie beschreibt den Dienst so, wie er heute in der Beta ist: Wenn sich etwas ändert, aktualisieren wir sie.
Überblick
Walkie Desk besteht aus vier Teilen: dem Programm auf dem PC, der erreicht werden soll, dem Browser der Person, die sich verbindet, dem Koordinationsserver auf walkiedesk.app und einem Relay-Server (TURN), der nur verwendet wird, wenn sich die beiden Geräte nicht direkt verbinden können.
- Browser und walkiedesk.app: HTTPS und sicherer WebSocket (TLS). Darüber melden Sie sich beim Konto an und tauschen die Sitzungsparameter aus, die von den Geräten signiert sind.
- PC und walkiedesk.app: sicherer WebSocket (TLS), den der Windows-Dienst öffnet; er prüft immer das Zertifikat und den Namen des Servers, einschließlich der Sperrprüfung.
- PC und Browser: die eigentliche Sitzung (Video, Computer-Audio, Tastatur, Maus, Zwischenablage, Dateien und Chat), über WebRTC und Ende-zu-Ende-verschlüsselt. Der Koordinationsserver liegt nicht auf diesem Weg.
- Relay: Ist keine direkte Verbindung möglich, laufen dieselben verschlüsselten Pakete über den Relay-Server, der nicht die Schlüssel hat, um sie zu lesen.
Verschlüsselung
Die Sitzung verwendet WebRTC. Video und Computer-Audio laufen über SRTP, mit über DTLS ausgehandelten Schlüsseln (DTLS-SRTP); Tastatur, Maus, Zwischenablage, Dateien, Chatnachrichten und Befehle laufen in Data Channels, also SCTP innerhalb von DTLS. Die Schlüssel werden zwischen PC und Browser ausgehandelt und bleiben dort: Weder der Koordinationsserver noch der Relay-Server kennt sie.
Beim DTLS-Handshake legt jedes Gerät ein Zertifikat vor, dessen Fingerprint in den Sitzungsparametern (SDP) steht. Diese Parameter sind von den Geräten signiert (siehe unten): So weiß der Browser, dass er mit dem richtigen PC spricht, und der PC, dass er mit dem richtigen Browser spricht.
Zwischen den Geräten und walkiedesk.app läuft alles über HTTPS und sicheren WebSocket (TLS), mit HSTS.
- Video und Computer-Audio
- SRTP mit DTLS-Schlüsseln (DTLS-SRTP); Audio mit Opus codiert
- Tastatur, Maus, Zwischenablage, Dateien, Chat
- WebRTC-Data-Channels: SCTP über DTLS
- Signaturen der Geräte
- ECDSA P-256
- Hash der signierten Parameter
- SHA-256
- Kopplung, QuickSupport sowie ID und Passwort
- CPace, passwortauthentifizierter Schlüsselaustausch
- Anrufe
- DTLS-SRTP zwischen den beiden Browsern; Parameter authentifiziert mit HMAC-SHA-256 und einem mit HKDF aus einem Einmalgeheimnis abgeleiteten Schlüssel
- Kontopasswörter
- Argon2id
- Zweiter Faktor
- TOTP oder WebAuthn (Sicherheitsschlüssel oder Passkey)
- Komponenten auf dem PC
- libdatachannel, OpenSSL, libsrtp, libsodium, Opus
- Komponenten im Browser
- die WebRTC-Implementierung von Chrome, Edge oder Firefox
Wir verwenden verbreitete Open-Source-Komponenten, die wir aktuell halten; die vollständige Liste jeder Version (SBOM) mit Versionen, Lizenzen und Herkunft ist öffentlich: Softwarekomponenten.
Identität der Geräte und Signatur der Sitzungen
Jeder PC mit Walkie Desk und jeder vertrauenswürdige Browser hat ein eigenes ECDSA-P-256-Schlüsselpaar:
- Auf dem PC wird der private Schlüssel nicht exportierbar im TPM-Chip erzeugt, wenn der PC einen hat; andernfalls im Schlüsselspeicher von Windows, ebenfalls nicht exportierbar.
- Im Browser ist es ein nicht extrahierbarer WebCrypto-Schlüssel, gespeichert in IndexedDB: Die Seite kann damit signieren, ihn aber nicht auslesen.
Die vertrauenswürdigen Browser einer Person bilden eine signierte Kette: Der erste legt sie an, jeder weitere Browser kommt nur mit einem Eintrag hinzu, den ein bereits in der Kette enthaltenes Gerät signiert hat. Dafür gibt es drei Wege:
- die Bestätigung aus einem bereits vertrauenswürdigen Browser, mit einem über CPace ausgetauschten Einmalcode: Der vertrauenswürdige Browser signiert den Eintrag, nachdem die Person die Anmeldung mit der Authenticator-App oder dem Passkey bestätigt hat (Schutz gegen einen unbeaufsichtigt entsperrten Computer); der Eintrag ist sofort aktiv, und es wird eine E-Mail verschickt;
- der Passkey des Benutzers (WebAuthn, ES256 oder RS256), dieselbe Anmeldeinformation, mit der er sich anmeldet: ob gerätegebunden oder synchronisiert, er hat dieselben Befugnisse, und der Eintrag ist sofort aktiv, mit einer E-Mail. Die Anmelde-Assertion verwendet eine Challenge mit einem anderen Präfix als die Signaturen der Kette, sodass der Server eine Anmeldung nicht als Signatur ausgeben kann;
- der Wiederherstellungscode: Aus dem Code gewinnt der Browser den Wiederherstellungsschlüssel (dessen privater Teil mit dem Code verschlüsselt ist, der den Browser nie verlässt). Ein so hinzugefügter Browser wird auf den PCs erst 10 Minuten nach dem Empfang aktiv; in der Zwischenzeit erhält der Benutzer eine E-Mail mit einem Link zum Stoppen, und ein von einem vertrauenswürdigen Browser oder einem Passkey signierter Eintrag macht das Hinzufügen rückgängig.
Jeder PC prüft alle Signaturen der Kette, bevor er einen Browser akzeptiert, und zählt die 10 Minuten selbst. Der Server speichert die Kette, kann aber keinen Browser hinzufügen, weil er nicht die Schlüssel hat, um sie zu signieren. Ein PC mit einer älteren Version von Walkie Desk wendet die bisherigen Regeln an (zum Beispiel verlangt er auch den Passkey, um einen Browser zu bestätigen): Solange er nicht aktualisiert ist, weist der Benutzerbereich darauf hin und bietet nur die Vorgänge an, die dieser PC akzeptiert.
Vor jeder Sitzung signiert der PC seinen Verbindungsvorschlag und der Browser seine Antwort, einschließlich der DTLS-Fingerprints. Jede Seite prüft die Signatur der anderen mit einem Schlüssel, den sie bereits kennt, bevor sie die Parameter verwendet.
Was das schützt: Würde jemand auf dem Koordinationsweg, der Server eingeschlossen, einen DTLS-Fingerprint austauschen, um sich zwischen PC und Browser zu schalten, wäre die Signatur nicht mehr gültig und die Sitzung würde abgelehnt. Der Server bringt die Geräte zusammen, kann sich aber nicht als sie ausgeben. Was das nicht abdeckt, steht unter Bekannte Grenzen.
Was der Server sieht und was nicht
Er sieht
- die PCs (Kennung, öffentlicher Schlüssel, Computername, Version von Windows und des Programms), die Konten und die öffentlichen Schlüssel der vertrauenswürdigen Browser;
- die Daten jeder Sitzung: wer sich mit welchem PC verbindet, wann und wie lange, ob sie über das Relay läuft, ob sie aufgezeichnet wurde (ja oder nein), technische Qualitätsstatistiken;
- die technischen Logs der Server, etwa IP-Adressen und aufgerufene Seiten;
- beim Zugriff mit ID und Passwort die fehlgeschlagenen Versuche (Konto, IP-Adresse, PC, Uhrzeit) und für jeden Benutzer die Liste «Zuletzt verwendet» mit den PCs anderer, mit denen er sich verbunden hat;
- bei Anrufen, wer welchen PC wann angerufen hat, und die Verbindungsparameter (Netzwerkadressen und DTLS-Fingerprints).
Er sieht nicht
- den Inhalt der Sitzungen: Bildschirm, Computer-Audio, Tastenanschläge, Maus, Zwischenablage, übertragene Dateien und Chatnachrichten;
- Ton und Bild der Anrufe und ob Mikrofon und Webcam eingeschaltet sind;
- die Sitzungsaufzeichnungen, die auf dem Gerät der aufzeichnenden Person bleiben;
- das Passwort von QuickSupport, das Passwort für den Zugriff mit ID und Passwort und den geheimen Teil des Kopplungscodes;
- die privaten Schlüssel der PCs und der Browser.
Läuft die Sitzung über den Relay-Server, transportiert er nur verschlüsselte Pakete: Er hat nicht die Schlüssel, um sie zu lesen, und speichert weder Sitzungsinhalte noch Dateien oder Nachrichten.
Die Server stehen in Italien; Daten und Backups bleiben in der Europäischen Union. Was wir speichern, wie lange und mit welchen Anbietern: Datenschutzerklärung.
Konto
- Passwörter mit 12 bis 128 Zeichen, ohne Zusammensetzungsregeln, nur als Argon2id-Hash gespeichert.
- Für jedes Konto ist ab der Registrierung ein zweiter Faktor Pflicht: eine Authenticator-App (TOTP) oder ein Passkey (WebAuthn, auch ein Sicherheitsschlüssel), oder beides. Keine SMS und keine E-Mail als Faktor.
- Ein einziger Wiederherstellungscode (128 Bit), im Browser erzeugt: Der Server speichert nur den Hash eines mit HKDF abgeleiteten Werts, nie den Code. Wiederholte Fehlversuche sperren den Code für eine gewisse Zeit.
- Wiederholte fehlgeschlagene Anmeldeversuche werden gesperrt; Anmeldungen sowie Änderungen des Passworts oder des zweiten Faktors werden als Sicherheitsereignisse protokolliert.
- Demnächst: Anmeldung ohne Passwort, nur mit einem Passkey.
Unbeaufsichtigter Zugriff
- Ein PC mit Walkie Desk ist nicht erreichbar, solange Sie ihn nicht mit einem Konto koppeln.
- Zum Koppeln erzeugen Sie im Benutzerbereich einen Code mit 9 Zeichen und geben ihn auf dem PC ein. Der Code läuft nach wenigen Minuten ab und lässt nur sehr wenige Versuche zu. Ein Teil des Codes ist ein in Ihrem Browser erzeugtes Geheimnis, das nie den Server erreicht: PC und Browser verwenden es mit CPace, um sich gegenseitig zu erkennen und öffentliche Schlüssel auszutauschen, sodass der Server keinen PC an Ihrer Stelle koppeln kann.
- Sie können einen PC im Benutzerbereich aus Ihrem Konto entfernen, und wer den PC verwaltet, kann einem Konto den Zugriff in der Walkie-Desk-App auf dem PC entziehen.
- Während jeder Sitzung zeigt der PC standardmäßig einen roten Rahmen um den Monitor mit dem Namen der verbundenen Person und einer Schaltfläche Beenden. Wer den PC verwaltet, kann den Rahmen bei Sitzungen mit Konto ausblenden; wird die Sitzung aufgezeichnet, zeigt der PC das trotzdem an.
- Wer den PC verwaltet, legt fest, ob die Dateiübertragung erlaubt ist, jedes Mal bestätigt werden muss oder nicht erlaubt ist, und in welche Richtungen. Die Einstellung liegt auf dem PC: Weder der Server noch ein Konto kann sie erweitern.
QuickSupport
- Es läuft ohne Installation und mit den Rechten des Benutzers; die Person, der geholfen wird, braucht kein Konto.
- Es zeigt eine 9-stellige ID und ein Passwort mit 6 Zeichen. Das Passwort wird nie an den Server gesendet: Der Computer und der Browser des Technikers verwenden es mit CPace, um sich gegenseitig zu erkennen. Es gilt nur für eine Sitzung und ändert sich nach wenigen Fehlversuchen.
- Der Schlüssel des Computers wird bei jedem Start erzeugt und bleibt nur im Arbeitsspeicher des Programms: Er verschwindet, wenn Sie es schließen.
- Vor jeder Sitzung zeigt ein Fenster, wer sich verbinden möchte: Die Sitzung startet nur, wenn Sie Zulassen drücken; antwortet niemand, wird die Anfrage nach kurzer Zeit abgelehnt.
- Während der Sitzung umgibt ein roter Rahmen den Bildschirm, und die Schaltfläche Beenden schließt sie jederzeit. Der Rahmen lässt sich nicht ausblenden.
- Eine Sitzungsaufzeichnung beginnt nur, wenn die Person am PC sie in einem eigenen Fenster erlaubt, für jede Aufzeichnung neu.
- Beim Schließen löscht das Programm den temporären Ordner, den es angelegt hatte.
Gegen Betrug durch falschen technischen Support: Schutz vor Betrug.
ID und Passwort
- Ab Version 0.10.0 hat jeder PC mit Walkie Desk für Windows, Linux oder Mac neben seiner ID ein Passwort: zufällig, auf dem PC erzeugt und in der App angezeigt, oder vom Administrator des PCs festgelegt.
- Das Passwort wird nie an den Server gesendet: Der Browser der Person, die sich verbindet, und der PC verwenden es mit CPace, um sich gegenseitig zu erkennen, wie bei QuickSupport. Der Server leitet die Nachrichten weiter, kann aber weder das Passwort prüfen noch sich dazwischenschalten: Das Verbindungsangebot des PCs ist mit seinem Schlüssel signiert und mit dem Schlüssel authentifiziert, der aus dem CPace-Austausch hervorgeht.
- Wer sich verbindet, braucht ein Walkie-Desk-Konto mit zweitem Faktor und einen vertrauenswürdigen Browser; die Sitzung trägt seinen signierten Namen.
- Standardmäßig bittet der PC nach dem richtigen Passwort die Person davor um Bestätigung, in einem Fenster, das nur die physische Tastatur und Maus akzeptiert: Wer den PC bereits steuert, kann nicht an ihrer Stelle bestätigen. Die Bestätigung lässt sich nur mit einem vom Administrator des PCs festgelegten Passwort abschalten, weil das zufällige für jeden sichtbar ist, der den PC benutzt.
- Fehlversuche werden auf dem Server (pro Konto, IP-Adresse und PC) und auf dem PC begrenzt, der den Zugriff per Passwort für eine zunehmende Zeit sperrt und das in der App anzeigt; die Sperre betrifft nur den Zugriff per Passwort, nicht die gekoppelten Konten.
- Auf dem PC wird das zufällige Passwort geschützt gespeichert (unter Windows mit dem Datenschutz der Maschine, unter Linux in einer Datei, die nur der Systemadministrator lesen kann); von einem vom Administrator festgelegten Passwort wird nur ein abgeleiteter Wert gespeichert.
Computer-Audio und Anrufe
- Computer-Audio. Der PC nimmt auf, was er wiedergibt, nur wenn ein Techniker es anfordert, und sendet es als WebRTC-Audiospur (Opus über DTLS-SRTP), mit denselben Schlüsseln und denselben signierten Parametern wie das Video. Es ist zu Beginn jeder Sitzung aus, und der Rahmen auf dem PC zeigt, wer es empfängt.
- Anrufe (Beta-Funktion). Stimme und Webcam laufen nicht über das Programm auf dem PC: Nachdem die Person am PC angenommen hat, öffnet das Programm die Anrufseite von walkiedesk.app in ihrem Standardbrowser, mit einem Einmalgeheimnis in dem Teil der Adresse, den der Browser nicht an den Server sendet. Dasselbe Geheimnis erreicht den Browser des Technikers innerhalb der Sitzung, die bereits verschlüsselt und authentifiziert ist.
- Die beiden Seiten verbinden sich über eine separate WebRTC-Verbindung (DTLS-SRTP), direkt oder über den Relay-Server. Angebot und Antwort tragen einen Authentifizierungscode (HMAC) mit einem aus dem Geheimnis abgeleiteten Schlüssel, den der Server nicht kennt: Ein Server, der einen DTLS-Fingerprint austauschte, würde von beiden Seiten entdeckt.
- Der Server weiß, dass ein Anruf stattfindet, zwischen wem und wann, aber nicht, was gesagt wird; Anrufe werden nicht aufgezeichnet, und die Sitzungsaufzeichnung enthält sie nicht.
- Das Fenster, das den Anruf auf dem PC ankündigt, akzeptiert nur die physische Tastatur und Maus. Bei QuickSupport sind Anrufe nach einem Neustart als Administrator nicht verfügbar, weil der Browser sonst mit diesen Rechten starten würde.
Signierte Programme und der Codec OpenH264
Das Setup von Walkie Desk für Windows, seine Programme und QuickSupport sind vom Herausgeber iDev srl mit Authenticode signiert, mit Zeitstempel: Die Signatur bleibt auch nach Ablauf des Zertifikats überprüfbar. Die enthaltenen Bibliotheken von Drittanbietern sind nicht von uns signiert.
Der Codec OpenH264 ist nicht enthalten: Das Programm lädt ihn von der Website von Cisco herunter und verwendet ihn nur, wenn sein SHA-256-Hash dem erwarteten entspricht.
So prüfen Sie den Herausgeber und den Hash einer heruntergeladenen Datei: Sicherheit.
Updates und Supportzeitraum
- Walkie Desk für Windows aktualisiert sich ab Version 0.8.0 selbst, ohne laufende Sitzungen zu unterbrechen: Es installiert ein Update nur, wenn dessen Manifest mit dem Release-Schlüssel von Walkie Desk signiert ist und das Setup die digitale Signatur von iDev srl trägt. Walkie Desk für Linux und für Mac (in der Beta) aktualisiert sich noch nicht selbst: Neue Versionen installieren Sie über die Seite Download.
- QuickSupport wird nicht aktualisiert: Es wird jedes Mal von der Website heruntergeladen und ist daher immer die neueste Version.
- Supportzeitraum: Während der Beta erhält nur die neueste Version Korrekturen. Ab dem offiziellen Start erhält jede Version Sicherheitskorrekturen bis 12 Monate nach Erscheinen der nächsten Version, und das Produkt wird ab dem Start mindestens 5 Jahre lang unterstützt.
- Behobene Sicherheitslücken werden in den Sicherheitshinweisen veröffentlicht, mit den betroffenen Versionen und der Version, die sie behebt.
- Die Software-Stückliste jeder Version (SBOM, Format CycloneDX) ist öffentlich: Softwarekomponenten.
Automatische Updates, Signatur der Releases mit dem Release-Schlüssel, Einstellungen zum Abschalten, öffentliche Prüfung eines Releases und frühere Versionen: Updates.
Bekannte Grenzen
Der Code der Web-App, also des Benutzerbereichs und des Viewers, aus dem sich der Techniker verbindet, wird bei jedem Besuch vom Server walkiedesk.app ausgeliefert. Die Signatur der Parameter schützt die Sitzungen vor jedem, der die Koordinationsnachrichten verändert, nicht aber vor einem kompromittierten Server, der dem Browser veränderten Code ausliefert.
Aktuelle Gegenmaßnahme: eine strenge Content Security Policy, die nur Skripte derselben Domain und keine Ressourcen von Drittanbietern zulässt, mit Ausnahme der Zahlungskomponente von Stripe, nur auf der Seite «Abonnement». Ein signierter Viewer, der sich ohne Vertrauen in den Server prüfen lässt, ist als Verbesserung geplant.
Dasselbe gilt für die Anrufseite, die sich im Browser des PCs öffnet und ebenfalls von walkiedesk.app ausgeliefert wird. Ein Techniker, der den PC bereits steuert, könnte selbst eine Anrufseite ohne das Annahmefenster öffnen: Diese Möglichkeit hat er ohnehin, denn mit der Steuerung kann er jedes Programm und jede Website starten; der Browser-Tab und die Systemanzeige für das aktive Mikrofon bleiben sichtbar.
Ein Problem melden
- Offenlegungsrichtlinie: wie Sie eine Sicherheitslücke melden und was Sie erwarten können.
- Sicherheitshinweise, auch als Atom-Feed.
- Problem melden: Sicherheitslücken, Missbrauch, andere Probleme mit Sicherheit oder Datenschutz.
- E-Mail: security@walkiedesk.app.