A empresa Google a implementação de uma nova API no Chrome , permitindo que aplicativos web estabeleçam conexões de rede diretas usando os protocolos TCP e UDP. Em 2015, um consórcio do W3C já havia tentado padronizar a API "", mas os participantes do grupo de trabalho não conseguiram chegar a um consenso e o desenvolvimento dessa API foi interrompido.
A necessidade de adicionar uma nova API se justifica pela possibilidade de interação com dispositivos de rede que usam seus próprios protocolos, operando sobre TCP e UDP, e que não suportam interações via HTTPS ou WebSockets. Destaca-se que a API Raw Sockets irá complementar os interfaces de programação de baixo nível já existentes no navegador, como WebUSB, WebMIDI e WebBluetooth, que permitem a interação com dispositivos locais.
Para evitar impactos negativos na segurança, a API Raw Sockets permitirá acessos de rede apenas iniciados com o consentimento do usuário e restringidos a uma lista de hosts permitidos. O usuário deverá confirmar explicitamente a primeira tentativa de conexão com um novo host. Com uma flag especial, o usuário poderá desativar a exibição de novas solicitações de confirmação durante reconexões ao mesmo host. Para prevenir ataques DDoS, a intensidade dos acessos através de Raw Sockets será limitada, e o envio de solicitações será possível apenas após interação do usuário com a página. Pacotes UDP recebidos de hosts não aprovados pelo usuário serão ignorados e não chegarão ao aplicativo web.
A implementação inicial não prevê a criação de sockets ouvintes, mas no futuro não se exclui a possibilidade de fornecer chamadas para aceitar conexões de entrada de localhost ou de uma lista de hosts conhecidos. Também é mencionada a necessidade de proteção contra ataques "" (o atacante pode, a nível de DNS, mudar o endereço IP para um nome de domínio aprovado pelo usuário e obter acesso a outros hosts). O acesso a domínios que resolvem em 127.0.0.0/8 e redes intranet está planejado para ser bloqueado (acessos a localhost serão permitidos apenas com a entrada explícita do endereço IP em um formulário de confirmação).
Entre os riscos que podem surgir com a implementação de uma nova API, destaca-se a possível rejeição pelos fabricantes de outros navegadores, o que pode levar a problemas de compatibilidade. Os desenvolvedores dos motores Mozilla Gecko e WebKit ainda sua posição sobre a possível implementação da API Raw Sockets, mas a Mozilla já havia proposto anteriormente . Se a API Raw Sockets for aprovada na primeira fase, ela será ativada no Chrome OS, e somente depois será oferecida aos usuários do Chrome em outras plataformas.
Desenvolvedores web sobre a nova API e apresentaram muitas novas ideias sobre sua aplicação em áreas em que a API XMLHttpRequest, WebSocket e WebRTC não são suficientes (desde a criação de clientes de navegador para SSH, RDP, IMAP, SMTP, IRC e protocolos de impressão até o desenvolvimento de sistemas distribuídos P2P com DHT (Tabela de Hash Distribuída), suporte a IPFS e interação com protocolos específicos de dispositivos IoT).
Fonte: opennet.ru
