Pro Chrome se vyvíjí API pro přímou komunikaci TCP a UDP

Google začala implementovat nové rozhraní API v prohlížeči Chrome Surové zásuvky, který umožňuje webovým aplikacím navazovat přímá síťová připojení pomocí protokolů TCP a UDP. V roce 2015 se konsorcium W3C již pokusilo standardizovat API “Socket TCP a UDP“, ale členové pracovní skupiny nedosáhli konsensu a vývoj tohoto API byl zastaven.

Potřeba přidat nové API je vysvětlena poskytnutím možnosti interakce se síťovými zařízeními, která používají nativní protokoly běžící nad TCP a UDP a nepodporují komunikaci přes HTTPS nebo WebSockets. Je třeba poznamenat, že Raw Sockets API doplní nízkoúrovňová programovací rozhraní WebUSB, WebMIDI a WebBluetooth již dostupná v prohlížeči, která umožňují interakci s místními zařízeními.

Aby se předešlo negativnímu dopadu na bezpečnost, Raw Sockets API umožní pouze síťová volání zahájená se souhlasem uživatele a omezená na seznam hostitelů povolených uživatelem. Uživatel bude muset výslovně potvrdit první pokus o připojení nového hostitele. Pomocí speciálního příznaku může uživatel zakázat zobrazování opakovaných požadavků na potvrzení operace pro opakovaná připojení ke stejnému počítači. Aby se zabránilo DDoS útokům, bude omezena intenzita požadavků přes Raw Sockets a odesílání požadavků bude možné pouze po interakci uživatele se stránkou. Pakety UDP přijaté od hostitelů neschválených uživatelem budou ignorovány a nedostanou se do webové aplikace.

Prvotní implementace nepočítá s vytvářením naslouchacích soketů, ale v budoucnu je možné poskytovat volání pro přijímání příchozích spojení z localhost nebo seznam známých hostitelů. Zmíněna je také potřeba chránit se před útoky“Rebinding DNS"(Útočník může změnit IP adresu uživatelem schváleného názvu domény na úrovni DNS a získat přístup k dalším hostitelům). Plánuje se blokování přístupu k doménám, které rozlišují na 127.0.0.0/8 a intranetové sítě (povolení přístupu na localhost navrhujeme pouze v případě, že je IP adresa výslovně uvedena v potvrzovacím formuláři).

Mezi rizika, která mohou při implementaci nového API nastat, je jeho případné odmítnutí výrobci jiných prohlížečů, což by mohlo vést k problémům s kompatibilitou. Vývojáři enginů Mozilla Gecko a WebKit jsou stále nevyšlo svůj postoj k možné implementaci Raw Sockets API, ale Mozilla již dříve navrhla pro projekt Firefox OS (B2G) podobné API. Pokud bude schváleno v první fázi, plánuje se aktivace rozhraní Raw Sockets API v systému Chrome OS a teprve poté nabídnutí uživatelům Chrome na jiných systémech.

Weboví vývojáři pozitivně reagoval na nové API a vyjádřil mnoho nových nápadů o jeho aplikaci v oblastech, kde API XMLHttpRequest, WebSocket a WebRTC nestačí (od vytváření klientů prohlížeče pro SSH, RDP, IMAP, SMTP, IRC a tiskové protokoly až po vývoj distribuovaných P2P systémů s DHT (Distributed Hash Table), podpora IPFS a interakce se specifickými protokoly zařízení IoT).

Zdroj: opennet.ru

Přidat komentář