MAJ : Protocole d'authentification pour l'USB Type-C

Tags : USB; USB 3; USB 3.1;
Publié le 18/04/2016 à 19:58 par
Imprimer

L'USB-IF vient d'ajouter un nouveau document à la spécification USB 3.1 . Baptisée USB Type-C Authentication Specification, il s'agit d'une spécification optionnelle qui rajoute la possibilité pour un hôte USB d'authentifier les câbles et les périphériques USB. Nous vous avions parlé de l'arrivée de ce protocole en août dernier.

Si l'on peut penser instantanément aux dérives que pourrait provoquer une norme de ce type - certains constructeurs de PC Portables n'autorisant pas l'utilisation de chargeurs tiers par exemple - en pratique les conséquences devraient être un peu plus nuancées, pour ne pas dire positives.

La question de la sécurité a toujours été un problème avec l'USB. Comme la majorité des protocoles mis au point durant les années 90, la question de la sécurité n'a tout simplement jamais été prise en compte dans la spécification. La multiplication incessante des protocoles gérés par l'USB (HID, vidéo, audio, réseau...) complexifiant un peu plus la donne.

Au fil des années, on a pu voir s'empiler un bon nombre de failles, certaines particulièrement importantes comme BadUSB . Le concept est relativement simple à comprendre, l'implémentation de base s'agissait d'une attaque du contrôleur de stockage Phison, très répandu dans les clefs USB (voir notre comparatif). La faille repose sur la possibilité (bien utile) de connecter plusieurs périphériques via un hub.

La modification du firmware transforme ainsi la clef en deux périphériques connectés en simultanée (ou ultérieurement, tout est imaginable), le second périphérique pouvant être un "faux" clavier par exemple ou une fausse carte réseau. De la même manière, des chargeurs "publics" peuvent être modifiés pour insérer un autre périphérique et compromettre l'hôte USB.

Avec l'arrivée de l'USB Type-C et de la dernière version de la norme de chargement (USB-PD 2.0), la situation s'est complexifiée puisque sont arrivés sur le marché un grand nombre de chargeurs et câbles non seulement défaillants, mais parfois excessivement dangereux. En effet si l'USB limitait dans sa version originale à 5 watts la puissance fournie aux périphériques (15W dans un second temps), l'USB-PD 3.0 fait passer le seuil à 100 watts, autorisant le chargement de PC portables (par exemple les Macbook et les Chromebook), mais multipliant surtout les erreurs de design dans les câbles et les adaptateurs Type-A vers Type-C.

Une situation tellement catastrophique qu'un ingénieur de chez Google, Benson Leung, s'est distingué en achetant et testant les différents modèles disponibles sur le marché pour vérifier s'ils étaient conformes aux spécifications. Il maintient ainsi une liste de câbles certifiés dans ce document en ligne .

Les mauvais designs ne sont cependant pas l'apanage de l'USB Type-C puisqu'à été découvert il y a quelques jours un chargeur USB laissant passer directement le 230V vers les prises USB . Electrisant !

Et si l'on ajoute des idées surréalistes comme WebUSB , une initiative de Google pour autoriser la création de drivers USB... en Javascript (!), il est difficile de penser qu'il n'est pas indispensable d'améliorer rapidement la sécurité de l'USB.

Regroupant toute l'industrie (d'Intel à Microsoft en passant par AMD, Apple, Google, STMicro... et même VIA !), la spécification décrit un système d'authentification optionnel basé sur un système de certificats présents dans les périphériques, l'hôte ayant charge de valider leur authenticité. Le protocole s'adapte à la fois aux périphériques (qui utilisent les voies de transferts de "données") et aux chargeurs.

Ce qui se passe en cas de périphérique non conforme reste la responsabilité du système d'exploitation de l'hôte USB. En cas de branchement d'un chargeur non certifié, le système d'exploitation pourra par exemple avertir l'utilisateur d'un problème potentiel, lui laissant le choix d'autoriser ou non la connexion. La spécification décrit également un scénario d'entreprise ou les systèmes d'exploitations pourront être configurés pour n'autoriser le branchement que de certaines clefs USB dont le certificat a été autorisé par le département informatique de l'entreprise.

De nombreux scénarios sont envisageables et si l'on peut craindre qu'un constructeur tente de fermer l'USB a ses seuls périphériques, la norme semble avoir été pensée pour maximiser l'interopérabilité. Il sera important de voir dans les mois à venir de quelle manière seront implémentés précisément les restrictions dans les systèmes d'exploitation, en notant qu'a plusieurs reprises, la spécification sous entend un cas particulier pour la "certification" USB.

L'USB-IF propose en effet depuis des années des certifications pour les différents produits (via des compliance workshop ), qui se traduisaient simplement par le droit d'utiliser ou non le logo USB (un "droit" facilement contournable pour les contrefaçons). Tout laisse penser que l'USB-IF signera lui même un certificat (un périphérique peut en contenir plusieurs) pour les périphériques ayant passé les tests de conformité même si la chose n'a pas été explicité clairement.

Le communiqué de presse , tout comme la spécification font ainsi référence à plusieurs reprises au cas des chargeurs USB-PD certifiés, laissant penser que l'interopérabilité des chargeurs a bel et bien été prise en compte. C'est en tout cas en ce sens que l'USB-IF semblait se diriger l'été dernier.

MAJ 18/04 : L'USB-IF nous a confirmé qu'il signerait lui même un certificat principal pour chaque revendeur, certificat qui servira de base à la signature de certificats signés par les revendeurs eux mêmes conformément à une procédure définie (un champ dans le certificat permet de s'assurer que le produit à passé les tests de conformité si nécéssaire, via Internet). Les systèmes d'exploitation pourront donc simplement valider tous les produits "conformes" et autoriser l'interopérabilité, ce qui est le but de ce protocole.

Vos réactions

Top articles