Google à l'implémentation de la nouvelle API dans Chrome , qui permet aux applications web d'établir des connexions réseau directes via les protocoles TCP et UDP. En 2015, le consortium W3C avait déjà tenté de normaliser l'API.", mais les membres du groupe de travail ne sont pas parvenus à un consensus et le développement de cette API a été arrêté.
La nécessité d'une nouvelle API s'explique par la nécessité de permettre l'interaction avec les périphériques réseau utilisant des protocoles propriétaires fonctionnant sur TCP et UDP et ne prenant pas en charge l'interaction via HTTPS ou WebSockets. Il est à noter que l'API Raw Sockets complétera les API de bas niveau existantes du navigateur, WebUSB, WebMIDI et WebBluetooth, qui permettent l'interaction avec les périphériques locaux.
Pour éviter tout impact négatif sur la sécurité, l'API Raw Sockets autorisera uniquement les requêtes réseau initiées avec le consentement de l'utilisateur et limitées à une liste d'hôtes approuvés par celui-ci. L'utilisateur devra confirmer explicitement la première tentative de connexion à un nouvel hôte. Grâce à un indicateur spécial, l'utilisateur pourra désactiver les demandes de confirmation répétées pour les connexions répétées au même hôte. Pour prévenir les attaques DDoS, le débit des requêtes Raw Sockets sera limité et les requêtes ne seront envoyées qu'après interaction de l'utilisateur avec la page. Les paquets UDP reçus d'hôtes non approuvés par l'utilisateur seront ignorés et n'atteindront pas l'application web.
L'implémentation initiale ne prévoit pas la création de sockets d'écoute, mais il sera possible ultérieurement de fournir des appels pour accepter les connexions entrantes depuis localhost ou une liste d'hôtes connus. La nécessité d'une protection contre les attaques est également mentionnée.(Un attaquant peut modifier l'adresse IP d'un nom de domaine approuvé par l'utilisateur au niveau DNS et accéder à d'autres hôtes.) L'accès aux domaines se résolvant en 127.0.0.0/8 et au réseau intranet est prévu pour être bloqué (il est proposé d'autoriser l'accès à localhost uniquement en saisissant explicitement l'adresse IP dans le formulaire de confirmation).
Parmi les risques liés à la mise en œuvre de la nouvelle API figure son rejet éventuel par d'autres éditeurs de navigateurs, ce qui pourrait entraîner des problèmes de compatibilité. Les développeurs des moteurs Mozilla Gecko et WebKit travaillent actuellement sur la question. sa position sur l'implémentation possible de l'API Raw Sockets, mais Mozilla l'a déjà proposé pour le projet Firefox OS (B2G) Si elle est approuvée lors de la première phase, l'API Raw Sockets devrait être activée dans Chrome OS, puis proposée aux utilisateurs de Chrome sur d'autres systèmes.
Développeurs Web ont répondu à la nouvelle API et ont proposé de nombreuses nouvelles idées pour son application dans les domaines où les API XMLHttpRequest, WebSocket et WebRTC sont insuffisantes (de la création de clients de navigateur pour les protocoles SSH, RDP, IMAP, SMTP, IRC et d'impression au développement de systèmes P2P distribués avec DHT (Distributed Hash Table), prise en charge IPFS et interaction avec des protocoles d'appareils IoT spécifiques).
Source: opennet.ru
