Розробники Mozilla представили проект WASI (WebAssembly System Interface), що визначає програмні інтерфейси для організації взаємодії з ОС у форматі WebAssembly. Мета цього проекту — надання API, що розширить використання WebAssembly, і створення на базі цієї технології звичайних програм. Таких, що працюють поза браузером, можуть переноситись на будь-які платформи та мають високий рівень безпеки.
WASI дає можливість отримати доступ до функцій ОС, таких як файли, файлова система, мережеві сокети, таймери й генератори випадкових чисел. Розвиток API WASI передбачає незалежність від браузера, JavaScript і WebAPI. При цьому проект забезпечує належний рівень ізоляції від основної системи (застосунки запускаються у sandbox) і дозволяє визначати повноваження застосунку в стилі CloudABI й Capsicum.
Модель безпеки WASI базується на управлінні можливостями, тобто програма може виконувати тільки заздалегідь схвалені дії. За аналогією з тим, як WebAssembly обмежує доступ на рівні імпорту функцій, у WASI є контроль доступу до системних можливостей.
Файли, каталоги, сокети й інші ресурси асоціюються зі спеціальним типом файлових дескрипторів (capability), а для взаємодії з кожним із ресурсів застосунок мусить мати повноваження. Останні обробляються ієрархічно, тобто доступ до каталогу автоматично відкриває і доступ до всіх файлів у ньому.
У межах проекту також розвивається JavaScript-бібліотека polyfill з реалізацією WASI для роботи застосунків всередині браузера. Вона дає застосувати до коду в браузері модель розмежування доступу на основі «capabilities». З планів згадується створення на базі WASI системи модулів для інтеграції в застосунки ізольованих плагінів з додатковою функціональністю в форматі WebAssembly.
Ще немає коментарів