Ett API för direkt TCP- och UDP-kommunikation utvecklas för Chrome

Google satte igång för att implementera ett nytt API i Chrome Raw Sockets, vilket gör att webbapplikationer kan upprätta direkta nätverksanslutningar med hjälp av TCP- och UDP-protokollen. Under 2015 försökte W3C-konsortiet redan att standardisera API:n "TCP och UDP Socket", men arbetsgruppens medlemmar nådde inte enighet och utvecklingen av detta API stoppades.

Behovet av att lägga till ett nytt API förklaras genom att tillhandahålla möjligheten att interagera med nätverksenheter som använder inbyggda protokoll som körs ovanpå TCP och UDP och som inte stöder kommunikation via HTTPS eller WebSockets. Det noteras att Raw Sockets API kommer att komplettera programmeringsgränssnitten på låg nivå WebUSB, WebMIDI och WebBluetooth som redan finns i webbläsaren, vilket möjliggör interaktion med lokala enheter.

För att undvika negativ inverkan på säkerheten tillåter Raw Sockets API endast nätverksanrop som initieras med användarens samtycke och begränsas till listan över värdar som användaren tillåter. Användaren måste uttryckligen bekräfta det första anslutningsförsöket för den nya värden. Med hjälp av en speciell flagga kan användaren inaktivera visningen av begäranden om upprepad operationsbekräftelse för upprepade anslutningar till samma värd. För att förhindra DDoS-attacker kommer intensiteten av förfrågningar via Raw Sockets att vara begränsad, och att skicka förfrågningar kommer endast att vara möjligt efter användarinteraktion med sidan. UDP-paket som tas emot från värdar som inte godkänts av användaren kommer att ignoreras och kommer inte att nå webbapplikationen.

Den initiala implementeringen tillhandahåller inte skapandet av lyssningsuttag, men i framtiden är det möjligt att tillhandahålla samtal för att acceptera inkommande anslutningar från lokalvärd eller en lista över kända värdar. Också nämnt är behovet av att skydda mot attacker "DNS-återbindning"(en angripare kan ändra IP-adressen för ett användargodkänt domännamn på DNS-nivå och få åtkomst till andra värdar). Det är planerat att blockera åtkomst till domäner som löser sig till 127.0.0.0/8 och intranätnätverk (åtkomst till localhost föreslås endast tillåtas om IP-adressen uttryckligen anges i bekräftelseformuläret).

Bland de risker som kan uppstå vid implementering av ett nytt API är dess eventuella avvisning av tillverkare av andra webbläsare, vilket kan leda till kompatibilitetsproblem. Utvecklarna av Mozilla Gecko- och WebKit-motorerna är fortfarande det gick inte sin ståndpunkt om den möjliga implementeringen av Raw Sockets API, men Mozilla hade tidigare föreslagit projektet för Firefox OS (B2G) liknande API. Om det godkänns i det första skedet, är Raw Sockets API planerat att aktiveras på Chrome OS, och först då erbjudas Chrome-användare på andra system.

Webbutvecklare positivt svarade på det nya API:et och uttryckte många nya idéer om dess tillämpning inom områden där XMLHttpRequest, WebSocket och WebRTC API:erna inte räcker till (från att skapa webbläsarklienter för SSH, RDP, IMAP, SMTP, IRC och utskriftsprotokoll till att utveckla distribuerade P2P-system med DHT (Distributed Hash Table), IPFS-stöd och interaktion med specifika protokoll för IoT-enheter).

Källa: opennet.ru

Lägg en kommentar