Dla Chrome rozwijane jest API do bezpośrednich komunikacji TCP i UDP.

Firma Google zaczęła wdrażanie nowego API w Chrome Raw Sockets, umożliwiającego aplikacjom webowym nawiązywanie bezpośrednich połączeń sieciowych przy użyciu protokołów TCP i UDP. W 2015 roku konsorcjum W3C podjęło już próbę standaryzacji API „TCP and UDP Socket„, lecz uczestnicy grupy roboczej nie osiągnęli konsensusu, co zatrzymało rozwój tego API.

Konieczność dodania nowego API wynika z potrzeby interakcji z urządzeniami sieciowymi, które korzystają z własnych protokołów działających na TCP i UDP i nie wspierają komunikacji przez HTTPS lub WebSockets. Zauważono, że API Raw Sockets uzupełni już istniejące w przeglądarce niskopoziomowe interfejsy programistyczne WebUSB, WebMIDI i WebBluetooth, umożliwiające interakcję z lokalnymi urządzeniami.

Aby zminimalizować negatywny wpływ na bezpieczeństwo, API Raw Sockets będzie dopuszczać połączenia sieciowe inicjowane tylko za zgodą użytkownika i ograniczone do listy dozwolonych hostów. Użytkownik będzie musiał wyraźnie potwierdzić pierwszą próbę nawiązania połączenia z nowym hostem. Dzięki specjalnemu flagowi użytkownik będzie mógł wyłączyć wyświetlanie powtórnych próśb o potwierdzenie operacji podczas ponownych połączeń z tym samym hostem. Aby zapobiec atakom DDoS, intensywność połączeń za pomocą Raw Sockets będzie ograniczona, a wysyłanie żądań będzie możliwe tylko po interakcji użytkownika ze stroną. Pakiety UDP otrzymane z hostów, które nie zostały zatwierdzone przez użytkownika, będą ignorowane i nie dotrą do aplikacji webowej.

Początkowa implementacja nie przewiduje tworzenia słuchających socketów, ale w przyszłości nie wyklucza się udostępnienia wywołań do odbierania przychodzących połączeń z localhosta lub listy znanych hostów. Wspomniano także o konieczności ochrony przed atakami „DNS rebinding„ (atakujący może na poziomie DNS zmienić adres IP dla zatwierdzonej przez użytkownika nazwy domeny i uzyskać dostęp do innych hostów). Dostęp do domen, które rozwiążą się na 127.0.0.0/8 oraz sieci intranetowej planuje się zablokować (odwołania do localhosta mają być dozwolone tylko po wyraźnym wprowadzeniu adresu IP w formularzu potwierdzenia).

Wśród ryzyk, które mogą wystąpić przy wprowadzaniu nowego API, podkreśla się możliwy opór ze strony producentów innych przeglądarek, co może prowadzić do problemów z kompatybilnością. Twórcy silników Mozilla Gecko i WebKit na razie nie zajęli swojego stanowiska w sprawie ewentualnej implementacji API Raw Sockets, ale firma Mozilla wcześniej już proponowała podobne API. W przypadku zatwierdzenia na pierwszym etapie API Raw Sockets planuje się uruchomienie go w Chrome OS, a następnie zaoferowanie użytkownikom Chrome w innych systemach.

Web deweloperzy pozytywnie ocenili nowe API i przedstawili wiele nowych pomysłów na jego zastosowanie w obszarach, w których API XMLHttpRequest, WebSocket i WebRTC są niewystarczające (od tworzenia klientów przeglądarkowych dla SSH, RDP, IMAP, SMTP, IRC i protokołów drukowania po opracowanie rozproszonych systemów P2P z DHT (Distributed Hash Table), wsparcie dla IPFS i interakcję z specyficznymi protokołami urządzeń IoT).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster