Comment contourner Firefox pour résoudre l’absence de prise en charge de WebUSB
(github.com/ArcaneNibble)- Ce proof-of-concept montre qu’une page web peut communiquer avec un périphérique USB même sans WebUSB, en faisant agir un Raspberry Pi Pico comme une clé de sécurité U2F afin d’exploiter la prise en charge existante des clés de sécurité par le navigateur
- Le Pico n’assure aucune fonction de sécurité réelle et cache des données arbitraires dans le key handle du message
U2F_AUTHENTICATEainsi que dans la zone de signature ECDSA, ce qui permet de piloter la LED et de lire l’état de la brocheGP22 - Le key handle U2F est conçu comme un blob de données opaque appartenant au dongle de sécurité, et cette fonction, prévue pour permettre à des dongles bon marché de gérer des inscriptions sur plusieurs sites avec une mémoire limitée, est détournée pour y dissimuler des données
- Cette méthode n’est pas une faille donnant accès à un périphérique USB arbitraire ; elle ne fonctionne qu’avec des appareils qui enfreignent délibérément les règles, mais le problème du modèle de sécurité USB demeure, puisqu’un périphérique USB malveillant peut toujours se faire passer pour un clavier ou une souris
- Au-delà de la prise en charge ou non de WebUSB dans Firefox, la question s’élargit à la manière de construire une plateforme informatique saine et un écosystème que développeurs et utilisateurs peuvent réellement comprendre et maîtriser
Démonstration d’accès à un périphérique USB sans WebUSB
- Il s’agit d’un proof-of-concept montrant comment une page web peut communiquer avec un périphérique USB sans passer par les débats politiques autour de WebUSB ni par des demandes de consentement utilisateur
- La démo rapide consiste à flasher
u2f-hax.uf2sur la version RP2040 du Raspberry Pi Pico, puis à ouvririndex.htmlen localhost ou dans un autre secure context - Les boutons
On!etOff!de la page basculent la LED du Pico - L’état de la broche
GP22est mis à jour périodiquement sur la page, et peut être testé en la court-circuitant avec le pad GND adjacent à l’aide d’un fil ou d’un morceau de métal
Fonctionnement : se faire passer pour une clé de sécurité U2F
- Le Pico est émulé comme un dongle U2F, c’est-à-dire comme une clé de sécurité physique de double authentification
- Au lieu d’assurer de vraies fonctions de sécurité, il dissimule des données arbitraires dans le message
U2F_AUTHENTICATE- Les données sont placées dans le key handle et dans la zone de signature
- Si le key handle commence par
0xfeedface, le Pico considère immédiatement que la présence de l’utilisateur a été confirmée et renvoie les données
- Du point de vue du navigateur, il s’agit simplement d’utiliser les fonctions existantes d’interaction avec une clé de sécurité
Pourquoi le key handle U2F peut être détourné
- Le key handle d’U2F est, en théorie, un blob de données opaque appartenant au dongle de sécurité
- Le flux classique est le suivant
- Le dongle renvoie un key handle lors de l’enregistrement
- La relying party le stocke tel quel
- Lors de l’authentification, elle renvoie cette même valeur au dongle de sécurité
- Cette fonction est liée à une conception permettant à des dongles bon marché à mémoire limitée de gérer de nombreuses inscriptions sur différents sites
- Le dongle stocke en interne une clé de chiffrement master unique
- Lors d’un nouvel enregistrement, il génère une paire de clés publique/privée et renvoie la clé publique
- Il renvoie comme key handle la clé privée chiffrée avec la clé master
- Lors de l’authentification, il déchiffre le key handle reçu avec la clé master afin d’utiliser la clé privée
- Pour ne pas imposer d’algorithme interne particulier, le key handle est traité comme opaque, et c’est précisément cette propriété qui est exploitée pour dissimuler des données arbitraires
Les données renvoyées sont emballées comme une signature ECDSA
- Pour renvoyer des données, des données arbitraires sont dissimulées sous la forme d’une signature ECDSA
- Une signature ECDSA est un tuple de deux nombres
(r, s), chacun calculé par rapport àn, l’ordre du point de base de la courbe elliptique - Les nombres qui entrent dans l’intervalle de l’ordre du point de base de secp256r1 sont emballés en ASN.1
- Il est parfois possible de distinguer une vraie signature ECDSA correctement calculée, mais aucun composant autre que la relying party n’a de raison forte d’aller au-delà des vérifications de validité de base
- Le comportement diffère selon les navigateurs
- Chrome semble vérifier que les nombres de la signature sont dans l’intervalle
0àn - Firefox ne semble même pas effectuer cette vérification de plage
- Chrome semble vérifier que les nombres de la signature sont dans l’intervalle
- Pour passer de manière fiable la vérification minimale de Chrome, le premier octet de chaque nombre est sacrifié et fixé à
0x7f- Cela garantit que le nombre est toujours positif et inférieur à
n - La pile logicielle jusqu’au JavaScript du navigateur transmet ensuite ces nombres « suffisamment valides » tels quels
- Cela garantit que le nombre est toujours positif et inférieur à
Faille de sécurité ou modèle de sécurité USB ?
- Cette technique n’est pas une faille permettant d’accéder à n’importe quel périphérique USB
- Elle ne fonctionne qu’avec des appareils qui enfreignent volontairement les règles et constitue donc, au fond, un périphérique délibérément rendu vulnérable
- En revanche, sur la plupart des plateformes, le modèle de sécurité autour des périphériques USB reste globalement discutable
- Si l’on branche un périphérique USB malveillant, il peut agir via des interfaces comme un clavier ou une souris pour effectuer ce qu’un utilisateur pourrait faire
- Il ne faut pas connecter à un ordinateur, un téléphone ou tout autre appareil des périphériques inconnus et non fiables
Une remise en question des plateformes et de l’écosystème
- L’objectif du proof-of-concept ne se limite pas à un simple « parce qu’on peut le faire » personnel, mais vise à mettre en lumière l’état actuel des plateformes informatiques
- Du point de vue d’un fabricant de gadgets, on souhaite que l’utilisateur final puisse utiliser un nouveau périphérique avec le moins de friction possible
- L’écosystème actuel des ordinateurs et des gadgets présente un décalage entre ce que les utilisateurs s’attendent intuitivement à pouvoir faire et ce qui est réellement possible
- On s’attend à ce qu’une « clé de sécurité » ressemble à un produit bien emballé et à usage unique, alors qu’en réalité elle peut exécuter du code arbitraire, prendre n’importe quelle apparence et adopter un comportement arbitraire
- USB Rubber Ducky et O.MG Cable sont aussi des exemples qui touchent à ce problème
- Le caractère « Universal » de l’USB présente à la fois des avantages et des inconvénients
- Ni les humains ni les ordinateurs ne disposent d’un bon moyen simple et fiable de distinguer si un périphérique USB agit dans l’intérêt de l’utilisateur, contre lui, ou comme conséquence d’une plus grande puissance et de comportements émergents
- Le Web est le moyen le plus simple de distribuer des logiciels destinés à s’exécuter sur l’ordinateur de quelqu’un d’autre
- Les développeurs ont moins besoin d’apprendre les détails de toutes les plateformes cibles, mais en contrepartie ils apprennent aussi moins les conventions et attentes propres à chacune
- La discussion devrait aller au-delà de « pourquoi Firefox n’implémente-t-il pas WebUSB ? » ou de « va-t-il perdre encore plus de terrain face à Chrome ? » pour se déplacer vers la construction délibérée de plateformes saines à l’échelle de l’informatique dans son ensemble, des ordinateurs de bureau et portables aux tablettes, téléphones, objets connectés et maisons intelligentes
1 commentaires
Avis sur Hacker News
Firefox ne prend pas en charge la communication avec des périphériques USB arbitraires, alors que Chrome dispose de WebUSB pour cela.
En revanche, Firefox prend bien en charge la communication avec des clés de sécurité U2F via USB.
Ce projet tente de faire passer un microcontrôleur pour une clé de sécurité U2F, afin de communiquer avec lui par USB depuis Firefox.
Avec l’API JavaScript Credentials (https://developer.mozilla.org/en-US/docs/Web/API/Credential_...) et quelques astuces, il envoie des données et reçoit des réponses.
Mais cela peut tout de même servir à créer des périphériques personnalisés qu’une page web peut utiliser sans invite de consentement.
Personnaliser via WebUSB un clavier avec un firmware QMK/Via relève presque du cauchemar.
Pour que le navigateur puisse communiquer avec le firmware, il faut en pratique rendre un périphérique
/dev/hidrawlisible par tout le monde, ce qui ouvre la porte à toutes sortes de bidouilles de keylogging.Le mode d’utilisation est très dérangeant, et les outils de personnalisation hors ligne sont tous basés sur Electron, donc l’avantage n’est pas énorme.
Le contournement le plus raisonnable consiste à créer la disposition de clavier souhaitée sur un site web à partir d’un modèle JSON, à télécharger le JSON obtenu, puis à flasher le firmware sur le clavier avec un outil de flash doté des droits sudo.
Malgré tout, ce serait bien d’avoir une méthode moins dérangeante.
main()en cours d’exécution.Les claviers pourraient probablement faire quelque chose de similaire.
Il suffirait que le système de fichiers signale une erreur si un JSON invalide est écrit, et que le système de fichiers émulé ait des attributs de sécurité n’autorisant l’écriture qu’aux administrateurs.
Pas besoin de sudo : il suffirait d’approuver une invite d’autorisation au moment de télécharger ou copier la nouvelle configuration sur le lecteur flash virtuel.
Au moins Caps Lock semble pouvoir être réglé depuis JavaScript, ce qui en fait en pratique un bus de communication d’une largeur de 1 bit.
Avec les outils ordinaires du système d’exploitation, on pourrait aller jusqu’à 3 bits.
Le cœur du modèle de permissions, c’est que la famille de navigateurs sert d’intermédiaire pour l’accès au matériel.
Évidemment, pour que le navigateur puisse faire cela, il faut lui donner l’accès au matériel dès le départ.
On peut refuser de faire confiance au navigateur comme administrateur de la couche d’abstraction matérielle, mais c’est bien le modèle attendu par Via.
Je ne vois pas pourquoi ce serait plus « dérangeant » que de donner au navigateur l’accès à la caméra, au micro ou à la lecture du stockage.
Même sur un Chromebook d’entreprise verrouillé, je peux aller sur https://usevia.app et modifier un clavier QMK sans problème, alors que je n’ai évidemment aucun accès aux nœuds
/devsur cette machine.QMK repose entièrement sur le flash manuel.
Cela dit, j’ai été surpris de voir à quel point il est facile de personnaliser par le code la disposition, les couches et l’éclairage, en grande partie grâce au soutien de la communauté.
Ce n’est pas aussi pratique que Via, mais il y a tout de même un éditeur graphique de keymap, il compile le firmware, et c’est beaucoup moins lourd.
J’ai eu une bonne expérience avec les cartes Keeb.io.
Ce fil de commentaires est intéressant parce qu’il mélange des personnes qui disent à quel point WebUSB est agréable à utiliser, et d’autres qui ne l’utilisent pas et ne comprennent pas pourquoi il serait nécessaire.
Personnellement, j’ai trouvé ça excellent.
La plupart des utilitaires WebUSB que j’utilise existent aussi sous forme d’apps à installer, mais je m’en sers si rarement que la version web est beaucoup plus simple que d’installer l’app, la mettre à jour, puis la lancer.
Avoir une app de moins à installer est aussi un avantage.
J’aurais pensé que ce serait populaire auprès des gens lassés de devoir installer une app pour chaque objet.
C’est donc une arme à double tranchant.
Confort et sécurité font rarement bon ménage.
C’est utile et facile, mais c’est aussi un terrain idéal pour l’apparition de vulnérabilités.
Il faut arrêter l’embonpoint du web.
Le navigateur ne doit pas devenir l’évier fourre-tout contenant tout ce que n’importe qui dans l’industrie tech veut y mettre.
Installer une application native n’est pas si difficile.
Strictement parlant, ce n’est pas de l’USB mais du HID, mais l’idée est similaire.
C’est un peu hors sujet, mais l’essentiel de ce fil semble porter sur WebUSB en général plutôt que sur l’article d’origine
Cela dit, le hack présenté dans l’article est vraiment assez chouette
D’un côté, WebUSB est vraiment nécessaire, mais de l’autre, je n’ai vraiment pas envie que WebUSB soit mis entre les mains des utilisateurs ordinaires
En pratique, les pop-ups de consentement n’ont pas fonctionné, et les gens acceptent n’importe quoi sans même s’en rendre compte
Ils disent « je n’ai cliqué sur rien », mais on finit par fermer 50 notifications push de spam et supprimer les autorisations push d’une douzaine de sites de « news »
Franchement, le modèle de permissions à la Internet Explorer me plaît jusqu’à un certain point
Pour activer certaines fonctionnalités, il fallait marquer un site comme « de confiance »
C’était difficile à trouver, ça prenait un peu de temps, c’était un peu déroutant, et une fenêtre modale au style système affichait une grosse icône d’avertissement assez effrayante
Si, pour utiliser des API dangereuses comme WebUSB ou WebBluetooth, il fallait passer par une procédure consistant à marquer le site comme « de confiance », beaucoup moins de gens l’activeraient par erreur
L’expérience utilisateur resterait meilleure que l’installation d’une application native, avec le sandboxing en prime, donc ce compromis semble en valoir la peine
L’utilisateur âgé moyen n’a absolument aucune idée de ce que sont les notifications web
Avec le temps, il active par erreur les notifications de sites web louches et croit vraiment aux notifications de spam web qui arrivent sur son téléphone, du genre « HELLO YOUR PHONE HAS VIRUS DOWNLOAD "CLEANER APP" TO FIX BEFORE PHONE DIE »
Certaines personnes semblent avoir un superpouvoir pour casser les choses
Si quelque chose n’est pas rendu littéralement impossible, elles trouveront forcément un moyen de le faire par erreur
Elles suivent des guides qui modifient des réglages qu’elles ne comprennent pas, lancent des fonctionnalités qu’elles ne comprennent pas et accordent des accès qu’elles ne comprennent pas
Peu importe à quel point on complique la procédure, combien d’avertissements on ajoute et combien d’efforts on fait pour empêcher ce genre de bêtise : cela arrive quand même
Le problème, c’est qu’il existe aussi des gens qui savent ce qu’ils font et qui l’utilisent intentionnellement
Ces personnes peuvent apprécier des fonctionnalités puissantes qu’il ne faudrait jamais donner à un idiot
Mais le plus pénible, c’est qu’en exposant ce pouvoir, il est difficile, en pratique, d’éviter d’être submergé par des gens qui font des choses stupides
Un gros problème est qu’on ne comprend pas vraiment à quel point beaucoup d’utilisateurs ne comprennent absolument pas ce qu’ils font
Google ne sait pas concevoir des logiciels sûrs pour ces personnes
Les procédures pénibles peuvent sembler inutiles, mais elles ont souvent un objectif clair
Vérifier que l’intention de l’utilisateur est bien ferme
Apple a récemment implémenté certaines API web de façon à ce qu’elles ne fonctionnent que si le site web a été installé, et cela ressemble à une stratégie qui comprend la conception pour des humains
Elle permet d’accéder à des fonctionnalités PWA utiles, mais pas de laisser n’importe quel site les utiliser arbitrairement
Il y a une étape supplémentaire compréhensible par une personne ordinaire
Une PWA installée reste visible sur l’écran d’accueil, ce qui rappelle visuellement l’autorisation accordée et constitue un signal clair que l’utilisateur voulait cet accès
Beaucoup de gens doivent interagir avec des appareils, et aujourd’hui les applications distribuées via des App Store fermés sont souvent, de fait, la seule option
Pour diffuser à davantage de personnes un moyen d’accéder à des appareils qui ne sont plus officiellement pris en charge, WebUSB est de très loin la méthode la plus simple
Dans un autre monde où Chrome ne le prendrait pas en charge, l’utilisateur ordinaire aurait dû être capable d’installer et d’exécuter [python or other scripting language]
Si le développeur était vraiment motivé, il aurait peut-être dû fournir une application desktop, ou passer par le long et coûteux processus de soumission à l’App Store
Je pense qu’il est possible de créer une UI sûre pour WebUSB, et je ne vois pas bien non plus quels appareils branchés par l’utilisateur moyen pourraient être compromis
WebUSB ne devrait pas permettre de prendre le contrôle d’un clavier ou d’une souris (HID), d’un support de stockage, du Wi-Fi, de l’audio, d’une carte à puce ou d’un appareil U2F
En revanche, il est très utile pour les imprimantes d’étiquettes propriétaires, toutes sortes de jouets et d’appareils, ainsi que pour programmer et flasher des microcontrôleurs
C’est facile et pratique à utiliser, mais cela permet aussi de donner par erreur un accès très large à un tiers non fiable
Accorder une permission à une page devrait, comme vous l’avez dit, être un flux explicitement lancé par l’utilisateur depuis le panneau des permissions
Il devrait en aller de même pour les applications desktop sandboxées
Si une application veut enregistrer l’écran en continu, elle devrait obtenir explicitement cette permission depuis le panneau de contrôle des autorisations
Elle ne devrait pas pouvoir afficher une boîte de dialogue modale qui pousse les gens à cliquer simplement sur « yes »
Dans de nombreux cas, les gens ne comprennent pas techniquement ce qu’on leur demande
USB Serial est vraiment excellent
Il met enfin fin à ces pénibles apps Electron à usage unique
Il existe maintenant des outils pour configurer des appareils depuis le navigateur, et c’est très bien
Il suffit de regarder ESPHome et les centaines de projets qui s’appuient dessus, Betaflight, ELRS, Flipper
Je comprends que WebKit soit peu pris en charge puisque c’est Apple qui le développe, et je comprends aussi qu’ils soient prudents s’il s’agit d’autoriser l’accès aux périphériques
Mais Firefox, c’est différent
Firefox a toujours eu un sérieux manque de prise en charge des “connexions” matérielles et n’a pas été très accueillant pour les développeurs depuis longtemps, si bien que j’ai fini par ne plus l’utiliser
Dire que le consentement de l’utilisateur ne suffit pas pour autoriser l’accès aux appareils comme raison de ne pas le prendre en charge, ça n’a aucun sens
Ils auraient au moins pu le mettre derrière un flag développeur
Blink a prouvé qu’on pouvait le rendre sûr
Ils semblent s’entêter sans raison et ne pas voir les cas d’usage qui rendraient le navigateur utile
https://developer.mozilla.org/en-US/docs/Web/API/Serial
https://mozilla.github.io/standards-positions/
Les identifiants U2F sont censés être impossibles à phisher
C’est parce que l’API U2F du navigateur inclut le nom de domaine dans la requête envoyée au jeton
Mais avec WebUSB, un site pouvait demander un jeton pour n’importe quel nom de domaine
Comme U2F et WebUSB affichaient tous deux des boîtes de consentement utilisateur assez similaires, il était pratiquement impossible d’éviter que certains utilisateurs se trompent
Aussi incroyable que cela paraisse, la solution de Google a été de placer de nombreux appareils sur une liste de blocage WebUSB
Désormais, les fabricants d’appareils U2F doivent demander à Google d’ajouter chaque nouveau produit à la liste de blocage lorsqu’ils le lancent
Tout le monde aime l’idée que le navigateur soit un bac à sable sûr permettant d’exécuter du code non fiable, mais je ne comprends pas pourquoi tant de gens veulent percer autant de trous dans ce bac à sable
[1] https://www.yubico.com/support/security-advisories/ysa-2018-...
[2] https://github.com/WICG/webusb/blob/main/blocklist.txt
Je ne pense pas que le risque de fingerprinting vaille la peine pour les quelques dizaines d’utilisateurs finaux qui n’auraient pas à télécharger une app Electron pour interagir avec du matériel physique
Implémenter une fonctionnalité puis la verrouiller derrière un toggle développeur, c’est délirant
Cela revient à gaspiller des centaines d’heures de développement qui pourraient servir à quelque chose d’utile, juste pour exposer une fonctionnalité que personne ne trouvera de toute façon
En tant que développeur, cela ne me dérange pas que ce genre d’API réservée à Chrome reste dans Chrome
De toute façon, il faut garder un navigateur Chromium sous la main pour les sites qui cassent réellement dans Firefox, donc autant l’utiliser pour les opérations Web USB
C’est une démo technologique intéressante, mais ce n’est pas le rôle d’un navigateur
Le fait que personne n’ait ajouté WebUSB sous forme d’extension Firefox semble aussi montrer que, même pour ceux qui l’utilisent, cela ne vaut pas le temps de développement
Des problèmes de confidentialité et de sécurité ont été soulevés
Web Serial n’est pas un standard du Web, et ne pourra pas le devenir tant que Mozilla ou Apple ne considéreront pas que ces problèmes sont résolus
Google ne peut pas en faire seul un standard du Web ; un standard nécessite un consensus
La discussion côté Mozilla est ici : https://github.com/mozilla/standards-positions/issues/336
La discussion côté WebKit est ici : https://github.com/WebKit/standards-positions/issues/199
J’ai du mal à imaginer abandonner Firefox pour la navigation web à cause de webusb
Il faut que ce soit un logiciel téléchargeable, qui ne dépende pas d’un serveur externe
Cela dit, si l’appareil dépend dès le départ des serveurs de cette entreprise pour fonctionner, alors ne pas avoir à télécharger ni à faire confiance à un logiciel est un avantage
Le fait que du code exécuté dans un navigateur ne puisse pas utiliser de ports USB est peut-être plutôt une bonne chose
Parce que je n’ai plus besoin de lancer une VM Windows pour exécuter des mises à jour de firmware ou des outils utilitaires de fabricants de matériel audio qui le prennent en charge, comme Novation
WebUSB devrait permettre la même chose pour davantage de types d’appareils, mais il faut évidemment un mécanisme d’autorisations approprié
Pour les personnes qui flashent souvent des appareils, l’avantage est évident
Mais l’utilisateur ordinaire, c’est-à-dire les quelque 3 milliards d’autres personnes, s’en moque complètement
Percer des trous dans le bac à sable pour eux est, au mieux, imprudent
La solution pourrait être un outil séparé dédié à cet usage, peut-être même un navigateur séparé
Quelque chose comme Flash Browser
Il pourrait inclure des outils supplémentaires pour aider à cette tâche
Par exemple des listes d’autorisation ou de blocage préconfigurées, des favoris vers les outils de flashage courants, et de la documentation
On pourrait offrir une meilleure expérience que d’ajouter WebUSB brut de force dans le navigateur
Je comprends les controverses et critiques autour de ce “standard”, mais quand je l’ai utilisé pour flasher GrapheneOS sur un téléphone Pixel, c’était l’installation d’OS la plus agréable, simple et rapide que j’aie jamais faite sur un appareil
Littéralement : on branche, on clique, et c’est prêt
Le fait que la clé privée soit chiffrée avec une clé « maître », puis que la clé privée chiffrée soit renvoyée comme handle de clé, est surprenant
Cela doit effectivement fonctionner
Donner à un attaquant des occasions illimitées de tenter de déchiffrer la clé privée qu’il a en main me semble voué à se retourner contre soi un jour ou l’autre, mais qu’est-ce que j’en sais
Par exemple, une autre approche consisterait à générer la clé privée par dérivation déterministe à partir du handle de clé
Un attaquant pourrait aussi la brute-forcer, tout comme la clé chiffrée propre à un site stockée dans le handle de clé
Le point essentiel est qu’un authentificateur sans état est, par définition, déterministe globalement, c’est-à-dire sur l’ensemble des secrets et des sites
Avec une paire entrée-sortie, on peut tenter de brute-forcer le secret interne
La solution consiste à rendre cet état interne suffisamment grand pour que ce soit informatiquement impossible
Je me demande quelle est la controverse politique autour de WebUSB
C’est une API propre à Blink créée par Google, et Mozilla comme Apple l’ont rejetée pour des raisons de confidentialité et de sécurité
Sans deux implémentations indépendantes, cela ne peut pas devenir un standard du Web, et Google n’a convaincu personne en dehors de Google de l’implémenter
Pourtant, sur de nombreux sites web, Firefox et Safari sont présentés comme s’ils « ne prenaient pas en charge » cette API
“This specification was published by the Web Platform Incubator Community Group. It is not a W3C Standard nor is it on the W3C Standards Track.”
— https://wicg.github.io/webusb/
“WebKit declined to implement several APIs, including WebUSB, due to concerns over fingerprinting”
“We have previously stated privacy concerns, thus the concerns: privacy label. We agree with Mozilla's security concerns raised in their standards position issue, thus the concerns: security label.”
— https://github.com/WebKit/standards-positions/issues/68
“Because many USB devices are not designed to handle potentially-malicious interactions over the USB protocols and because those devices can have significant effects on the computer they're connected to, we believe that the security risks of exposing USB devices to the Web are too broad to risk exposing users to them or to explain properly to end users to obtain meaningful informed consent. It also poses risks that sites could use USB device identity or data stored on USB devices as tracking identifiers.”
— https://mozilla.github.io/standards-positions/#webusb
Le navigateur peut déjà accéder aux périphériques USB nécessaires via les interfaces habituelles de l’OS
Le clavier et la souris en sont des exemples évidents
Je ne vois pas pourquoi un site web devrait avoir besoin d’un accès direct séparé
Les seuls cas d’usage semblent être de donner un accès à des programmeurs web qui ont la flemme d’utiliser une application autonome, ou d’offrir une méthode supplémentaire pour suivre les utilisateurs
Je n’ai envie de faire confiance à aucun des deux
Je ne fais déjà pas assez confiance à Google et Mozilla pour leur donner ce type d’accès, alors encore moins à un inconnu quelconque qui a créé un site web
Tout ne doit pas forcément être accessible depuis le Web
Je ne sais pas où tracer la limite, mais pour moi l’accès USB la franchit
En général, ce sont ceux qui veulent des fonctionnalités tout de suite qui gagnent ce bras de fer
Parce que les failles de sécurité ont l’air hypothétiques jusqu’à ce qu’elles soient exploitées en conditions réelles
Plus c’est le cas, plus la dépendance à Chrome devient profonde
Moi non plus, je n’en veux pas