Для Chrome розвивається API для прямих TCP та UDP комунікацій

компанія Google приступила до реалізації в Chrome нового API Сирі розетки, що дозволяє веб-застосункам встановлювати прямі мережеві з'єднання з використанням протоколів TCP і UDP. У 2015 році консорціумом W3C вже була спроба стандартизації API «TCP та UDP SocketАле учасники робочої групи не досягли консенсусу і розробка даного API була зупинена.

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

Для виключення негативного впливу на безпеку API Raw Sockets буде допускати мережні звернення лише ініційовані за згодою користувача та обмежені списком дозволених користувачем хостів. Користувач повинен буде явно підтверджувати першу спробу з'єднання нового хоста. За допомогою спеціального прапора користувач зможе вимкнути виведення повторних запитів підтвердження операції при повторних з'єднаннях до того ж хосту. Для запобігання DDoS-атакам інтенсивність звернень через Raw Sockets буде лімітована, а відправка запитів можлива тільки після взаємодії користувача зі сторінкою. UDP-пакети, отримані з хостів, не схвалених користувачем, будуть ігноруватись і не доходити до web-додатку.

Початкова реалізація не передбачає створення слухачів, але в майбутньому не виключається надання викликів для прийому вхідних з'єднань з localhost або списку відомих хостів. Також згадується необхідність захисту від атак.Повторна прив'язка DNS» (така може на рівні DNS змінити IP-адресу для схваленого користувачем доменного імені та отримати доступ до інших хостів). Доступ до доменів, що резолвуються в 127.0.0.0/8, і інтранет мережі планується блокувати (звернення до localhost пропонується дозволити лише при явному введенні IP-адреси у формі підтвердження).

Серед ризиків, які можуть виникнути під час реалізації нового API, відзначається його можливе неприйняття виробниками інших браузерів, що може призвести до проблем із сумісністю. Розробники двигунів Mozilla Gecko і WebKit поки не виробили свою позицію щодо можливої ​​реалізації API Raw Sockets, але компанія Mozilla раніше для проекту Firefox OS (B2G) вже пропонувала схожий API. У разі затвердження на першому етапі API Raw Sockets планується активувати в Chrome OS, а потім запропонувати користувачам Chrome в інших системах.

Web-розробники позитивно відгукнулися про новий API і висловили багато нових ідей про його застосування в областях, в яких API XMLHttpRequest, WebSocket та WebRTC недостатньо (від створення браузерних клієнтів для SSH, RDP, IMAP, SMTP, IRC та протоколів виведення на друк до розробки розподілених P2P-систем з DHT (Distributed Hash Table), підтримки IPFS та взаємодії зі специфічними протоколами IoT-пристроїв).

Джерело: opennet.ru

Додати коментар або відгук