За Chrome се разработва API за директни TCP и UDP комуникации

Google започна за внедряване на нов API в Chrome Сурови гнезда, което позволява на уеб приложенията да установяват директни мрежови връзки, използвайки TCP и UDP протоколите. През 2015 г. консорциумът W3C вече се опита да стандартизира API "TCP и UDP гнездо“, но членовете на работната група не постигнаха консенсус и разработването на този API беше спряно.

Необходимостта от добавяне на нов API се обяснява с предоставянето на възможност за взаимодействие с мрежови устройства, които използват естествени протоколи, работещи върху TCP и UDP, и не поддържат комуникация чрез HTTPS или WebSockets. Отбелязва се, че Raw Sockets API ще допълни вече наличните в браузъра интерфейси за програмиране на ниско ниво WebUSB, WebMIDI и WebBluetooth, които позволяват взаимодействие с локални устройства.

За да се избегне отрицателно въздействие върху сигурността, API за необработени сокети ще позволи само мрежови повиквания, инициирани със съгласието на потребителя и ограничени до списъка с разрешени от потребителя хостове. Потребителят ще трябва изрично да потвърди първия опит за свързване за новия хост. Използвайки специален флаг, потребителят може да деактивира показването на заявки за потвърждение на повтарящи се операции за повтарящи се връзки към един и същ хост. За да се предотвратят DDoS атаки, интензивността на заявките чрез Raw Sockets ще бъде ограничена и изпращането на заявки ще бъде възможно само след взаимодействие на потребителя със страницата. UDP пакетите, получени от хостове, които не са одобрени от потребителя, ще бъдат игнорирани и няма да достигнат до уеб приложението.

Първоначалната реализация не предвижда създаването на слушащи сокети, но в бъдеще е възможно да се предоставят повиквания за приемане на входящи връзки от localhost или списък с известни хостове. Също така се споменава необходимостта от защита срещу атаки "DNS повторно свързване"(нападателят може да промени IP адреса за одобрено от потребителя име на домейн на ниво DNS и да получи достъп до други хостове). Предвижда се блокиране на достъпа до домейни, които разрешават 127.0.0.0/8 и интранет мрежи (достъпът до localhost се предлага да бъде разрешен само ако IP адресът е изрично въведен във формуляра за потвърждение).

Сред рисковете, които могат да възникнат при внедряването на нов API, е възможното му отхвърляне от производителите на други браузъри, което може да доведе до проблеми със съвместимостта. Разработчиците на двигателите Mozilla Gecko и WebKit все още са не се получи позицията си относно възможното внедряване на API за необработени сокети, но Mozilla преди това предложи за проекта Firefox OS (B2G) подобен API. Ако бъде одобрен на първия етап, Raw Sockets API се планира да бъде активиран в Chrome OS и едва след това да се предлага на потребителите на Chrome в други системи.

Уеб разработчици положително отговориха на новия API и изразиха много нови идеи за приложението му в области, където API на XMLHttpRequest, WebSocket и WebRTC не са достатъчни (от създаване на браузър клиенти за SSH, RDP, IMAP, SMTP, IRC и протоколи за печат до разработване на разпределени P2P системи с DHT (Разпределена хеш таблица), IPFS поддръжка и взаимодействие със специфични протоколи на IoT устройства).

Източник: opennet.ru

Добавяне на нов коментар