Firma Google wdrażanie nowego API w Chrome , 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 „„, 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 „„ (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 swojego stanowiska w sprawie ewentualnej implementacji API Raw Sockets, ale firma Mozilla wcześniej już proponowała . 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 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
