Beveiliging en versleuteling
Een sessie op afstand toont iemands scherm en laat u op diens computer werken. ShareDesk is zo gebouwd dat alleen de twee computers in de sessie die kunnen zien, dat de klant beslist wie er binnenkomt en dat elke stap te controleren is.
- End-to-end versleuteld. Scherm, geluid, invoer, klembord, chat, bestanden, terminal en tunnels gaan versleuteld rechtstreeks tussen de twee computers. De sleutels verlaten ze nooit.
- Onze server brengt alleen in contact. Hij helpt de twee computers elkaar te vinden en geeft het verbindingsverzoek door. Hij kan de sessie niet zien en niet ontsleutelen.
- Geverifieerde apparaten. Elke installatie heeft een eigen sleutel. Beide kanten bewijzen wie ze zijn, en met een beveiligingscode kunt u dat op beide schermen vergelijken.
- De klant houdt de controle. Niemand komt binnen zonder een ja of een wachtwoord dat de eigenaar heeft ingesteld, een banner toont elke sessie, en één klik beëindigt haar.
1. End-to-end versleuteling
Elke sessie is end-to-end versleuteld met de open standaarden die ook videobeldiensten gebruiken (WebRTC). De versleuteling staat altijd aan en kan niet worden uitgeschakeld:
- Het scherm gaat als SRTP-stream, versleuteld met AES-GCM; de sleutels worden via DTLS rechtstreeks tussen de twee computers afgesproken.
- Al het andere – muis en toetsenbord, klembord, chat, geluid, bestandsoverdrachten, de terminal en tunnels naar andere apparaten – gaat via met DTLS versleutelde kanalen van dezelfde verbinding.
- De sleutels bestaan alleen op de twee computers. Ze worden voor elke verbinding opnieuw aangemaakt en nooit naar onze server of naar een relay gestuurd.
2. Wat onze server doet – en wat niet
Voordat twee computers rechtstreeks kunnen communiceren, moeten ze elkaar vinden. Dat is de enige taak van onze server:
- Hij geeft het verbindingsverzoek door: naam, bedrijf en foto van de technicus en het IP-adres waarvan het verzoek komt, zodat de klant kan beslissen.
- Hij geeft de technische gegevens door die beide computers nodig hebben om elkaar te bereiken. Die worden verwijderd zodra ze zijn opgehaald; wat overblijft, wordt binnen enkele minuten gewist.
- Dit alles loopt via HTTPS. Een ShareDesk-ID kan alleen door de eigen computer worden gebruikt, zodat niemand zich als iemand anders kan voordoen.
- De sessie zelf ontvangt hij nooit: geen scherm, geen invoer, geen bestanden, geen chat.
Als een netwerk geen directe verbinding toestaat, loopt de sessie via een relay. Een relay stuurt alleen de al versleutelde gegevens door; hij heeft geen sleutels en kan ze niet lezen.
3. Geverifieerde apparaten en de beveiligingscode
Versleuteling is maar zoveel waard als de zekerheid dat u met de juiste computer communiceert. ShareDesk controleert dat zelf:
- Elke ShareDesk-installatie heeft een eigen apparaatsleutel (ECDSA P-256), bewaard in de sleutelhanger van de Mac of, op Windows, beschermd door het systeem.
- Aan het begin van elke sessie ondertekenen beide computers precies deze verbinding met hun apparaatsleutel, binnen het versleutelde kanaal. Een computer die zijn sleutel niet kan bewijzen, krijgt geen sessie.
- Bekende computers worden onthouden. Duikt een bekende ShareDesk-ID plotseling op met een andere sleutel, dan beëindigt de ShareDesk-app de sessie in plaats van stilzwijgend door te gaan.
- Beide kanten tonen een beveiligingscode van zes cijfers. Is die op beide schermen gelijk, dan zit er niemand tussen.
In de webviewer is de verbinding op dezelfde manier versleuteld, maar een browser heeft geen eigen apparaatsleutel. Zulke sessies worden op de computer van de klant gemarkeerd als “niet geverifieerd (browser)”.
4. De klant beslist
- Elk verzoek wordt getoond. De klant ziet naam, bedrijf en foto van de technicus, de ShareDesk-ID en waar het verzoek vandaan komt, en kiest wat de technicus mag doen. “Accepteer” wordt pas na een moment actief en kan niet met de Return-toets worden geactiveerd, zodat niets per ongeluk wordt geaccepteerd. Onbeantwoorde verzoeken verdwijnen na 60 seconden.
- Zeven afzonderlijke toestemmingen: besturing, klembord, bestanden, geluid, privacyscherm, terminal en tunnels. Elke toestemming kan voor of tijdens een sessie worden uitgezet; zonder “besturing” kan de technicus alleen meekijken.
- Altijd zichtbaar. Tijdens een sessie toont een banner wie er verbonden is, met een knop om te beëindigen en een knop om het scherm te verbergen. Neemt de technicus de sessie op, dan meldt de banner dat.
- De microfoon van de klant. Technici horen de klant alleen zolang de microfoon van de klant aan staat. De banner toont dat, en de klant kan hem op elk moment uitzetten. Staat de sessie het niet toe, dan wordt het eerst gevraagd aan wie achter de computer zit; in een onbeheerde sessie waarin niemand binnen 30 seconden antwoordt, gaat hij aan.
- Blokkeren en beperken. ID’s kunnen worden geblokkeerd; toestaan- en blokkeerlijsten accepteren ID’s en IP-adressen. Herhaaldelijk afgewezen verzoeken van dezelfde ID worden door de server tegengehouden.
- Alleen een wachtwoord voor onbeheerde toegang, een eenmalig wachtwoord of een technicus die de klant bewust vertrouwt, slaat de vraag over – zie hieronder.
5. Onbeheerde toegang
Om uw eigen computers te bereiken zonder dat er iemand achter het scherm zit, stelt u er een wachtwoord op in. ShareDesk verstuurt dit wachtwoord nooit:
- De computer bewaart niet het wachtwoord zelf, alleen een daarvan afgeleide waarde, in zijn sleutelhanger, alleen leesbaar op dat apparaat.
- Om verbinding te maken, beantwoordt de app van de technicus een willekeurige eenmalige challenge (HMAC-SHA256) en bewijst zo dat hij het wachtwoord kent, zonder het prijs te geven. Een bewijs kan niet opnieuw worden afgespeeld en is gebonden aan de versleutelde verbinding.
- Na vijf verkeerde wachtwoorden of codes wordt de ID tien minuten geblokkeerd.
- Tweestapsverificatiecodes (TOTP, zoals bij authenticator-apps) kunnen daarnaast worden vereist; elke code werkt maar één keer.
- In het inlogvenster na een herstart zijn alleen het scherm en de besturing beschikbaar – geen bestanden, terminal of tunnels.
- Optioneel vergrendelt de Mac zichzelf als de laatste sessie eindigt.
Bewaart u als ingelogde gebruiker een wachtwoord voor onbeheerde toegang in uw adresboek, dan wordt de afgeleide sleutel bij uw account opgeslagen en gedeeld met de teamleden met wie u die computer deelt, zodat ook zij verbinding kunnen maken. Gebruik een sterk wachtwoord en deel zulke computers alleen met mensen die toegang horen te hebben.
6. Technicusaccounts
Accounts zijn optioneel; ze zijn bedoeld voor teams die een gedeeld adresboek, profielen en een sessielogboek willen.
- Wachtwoorden worden alleen als bcrypt-hash opgeslagen en moeten minstens tien tekens lang zijn.
- Een aanmelding is hooguit 180 dagen geldig; uitloggen beëindigt haar meteen. De server bewaart er alleen een hash van, en de Mac bewaart haar in de sleutelhanger.
- Herhaalde mislukte inlogpogingen worden per adres en per account vertraagd.
- Uitnodigingslinks verlopen na 30 dagen.
- Tweestapsverificatie kan voor elk account worden ingeschakeld: na het wachtwoord een code uit een authenticator-app of een eenmalige herstelcode. Ook de Mac- en Windows-apps vragen erom.
- Met toegangssleutels loggen technici in op het webaccount met Touch ID, Face ID, Windows Hello of hun telefoon in plaats van een wachtwoord; een toegangssleutel geldt als tweestapsverificatie.
7. Ondertekende apps en updates
- De Mac-app is ondertekend met een Apple Developer ID, gebruikt de hardened runtime en is door Apple genotariseerd.
- Updates zijn ondertekend (Ed25519). De app installeert een update alleen als de handtekening bij onze sleutel past – op Mac en op Windows.
8. Gegevens en locatie
- Onze servers worden beheerd door MarketVision AG in Zwitserland.
- Zonder account bewaart de server niets over uw sessies, afgezien van de kortstondige verbindingsgegevens hierboven. Met een account slaat hij uw adresboek, profielen en – als u het synchroniseert – uw sessielogboek op; het privacybeleid somt alles op, inclusief diagnoserapporten en hoe lang gegevens worden bewaard.
- De app gebruikt geen tracking, analytics of advertenties. De website gebruikt Google Tag Manager met een toestemmingsbanner; het privacybeleid beschrijft dit.
9. Een kwetsbaarheid gevonden?
Laat het ons weten voordat u haar publiceert: info@marketvision.ch. Beschrijf wat u hebt gevonden en hoe het te reproduceren is; we antwoorden en lossen het zo snel mogelijk op.