Како функционише ВАСМ преносивост и безбедност

Проверите како ВебАссембли (ВАСМ) преносивост и безбедносни модели функционишу у овом водичу за почетнике.

Обе су напредне ВебАссембли (ВАСМ) теме. Препоручујемо вам да прочитате претходне две теме у нашој серији ВебАссембли за почетнике.

Хајде да почнемо.

ВебАссембли преносивост

Преносивост ВебАссембли-а чини га спремним за Веб. У ствари, можете дефинисати ВАСМ као преносиву сандбок платформу.

Штавише, његов бинарни формат му омогућава да се извршава у различитим архитектурама скупа инструкција и оперативним системима. То значи да можете да користите ВАСМ не само на Вебу већ и ван њега.

Да бисмо разумели ВАСМ преносивост, разговараћемо о следећем:

  • Локално, ограничено и недетерминистичко окружење.
  • Специфичне карактеристике окружења извршења
  • ВАСМ веб и не-веб преносивост

Локални, ограничени и недетерминистички

ВАСМ-у је потребно ефикасно извршење и одговарајућа окружења која су локална, ограничена и недетерминистичка. Недетерминизам је рачунарство које наводи да алгоритам/компајлер/окружење даје различита понашања или резултате чак и за исти улаз. То је супротно од детерминистичког алгоритма.

Друга два аспекта, ограничени и локални, повезани су са недетерминистичким извршењем. Да би недетерминистичко извршавање функционисало, потребни су вам добро дефинисани случајеви коришћења који су „ограничени“.

Такође, ова извршења су „локална“ без утицаја ван окружења. Прочитајте њихов званични недетерминизам у документу ВебАссембли да бисте сазнали више о томе.

Специфичне карактеристике извршног окружења

Да би ВебАссембли био преносив, претпоставља се да окружење за извршавање нуди следеће карактеристике:

  • Адресираност грануларности меморије бајтова и 8-битних бајтова.
  • 32-битна два комплемента целих бројева са предзнаком. Опционо 64 бита.
  • Емулација софтвера је могућа преко неусклађеног приступа меморији или поузданог заробљавања.
  • Подршка за 32-битне и 64-битне покретне тачке као што је дефинисано у ИЕЕЕ 754-2008.
  • Гаранција извршавања свих нити са напредовањем.
  • За 64-битни приступ, васм64 би требало да обезбеди операторе атомске меморије без закључавања.
  • Оператори атомске меморије без закључавања укључују 8, 16 и 32-битне приступе.
  • васм64 подржава линеарну меморију већу од 4 ГиБ са 64-битним индексима или показивачима.
  • Литтле-ендиан бите редослед.
  Вишеслојни ССД-ови: Шта су СЛЦ, МЛЦ, ТЛЦ, КЛЦ и ПЛЦ?

Сви главни претраживачи, укључујући Цхроме, Едге, Фирефок и ВебКит, подржавају све ове еколошке захтеве.

Штавише, ВебАссембли се развија великом брзином. ВАСМ Цоммунити Гроуп и В3Ц ВебАссембли Воркинг Гроуп раде на његовој стандардизацији. То значи да се било који од ових захтева може променити у будућности.

ВАСМ Веб и не-веб преносивост

Примарна сврха ВебАссембли-а је да обезбеди преносивост и изворне перформансе на Вебу и не-вебу. У овом одељку ћемо погледати како ВАСМ то постиже.

#1. Веб Ембеддинг

ВАСМ се добро интегрише са веб екосистемом, укључујући безбедносни модел веба, преносивост веба и веб АПИ-је. Штавише, мора имати довољно простора за креативни развој (прочитајте ВебАссембли за почетнике – 2. део да бисте разумели његове циљеве)

Дакле, како ВАСМ постиже компатибилност са Вебом? Користи ЈаваСцрипт АПИ-је, омогућавајући програмерима да лако користе ЈаваСцрипт за компилацију ВебАссембли модула. Такође се брине о складиштењу и преузимању модула компајлера, управљању увозима из модула компајлера, управљању меморијом итд.

Да бисте сазнали више о томе како ВАСМ постиже веб компатибилност високог нивоа, прочитајте ово: Веб Ембеддинг – ВебАссембли.

#2. Не-Веб уграђивање

Као што је раније поменуто, ВАСМ такође ради са не-веб окружењима. Као програмер или предузеће, можете да креирате апликације високих перформанси или да пишете делове апликације којима је потребно подешавање перформанси. На пример, можете га користити на ИоТ уређајима, серверима центара података и десктоп/мобилним апликацијама.

Како не-веб апликације не могу да користе веб АПИ-је, оне се ослањају на ВАСМ-ово динамичко повезивање. Такође морате да користите тестирање функција, процес развоја софтвера који тестира вишеструке варијације функција да бисте видели шта је најбоље за корисничко искуство. Штавише, програмери могу да користе ЈаваСцрипт ВМ да поједноставе не-веб уграђивање или да развијају своје апликације без њега.

Да бисте сазнали више, прочитајте Не-Веб уградње – ВебАссембли.

ВебАссембли Сецурити

ВебАссембли је решење бинарног формата које нуди перформансе сличне изворном. Одлично функционише на вебу, али се такође може фино подесити да ради на уграђивањима која нису на вебу. Ово чини ВАСМ широко доступним у свим услугама, решењима и процесима. Међутим, то значи више безбедносних изазова.

  Како, шта, зашто и алати за коришћење

ВАСМ безбедносни изазови и ризици

Иако се ВебАссембли сматра безбедним и ефикасним, он долази са више безбедносних ризика, укључујући:

  • ВебАссембли сандбок
  • Управљање меморијом
  • Замагљивање кода
  • Провере интегритета

#1. ВебАссембли Сандбок

ВАСМ се извршава унутар веб претраживача, баш као и ЈаваСцрипт. Користи исту виртуелну машину (ВМ) као ЈаваСцрипт. Пешчаник ефикасно обезбеђује безбедно окружење за извршавање и омета оно што се покреће испод хаубе.

Дакле, ако ЈаваСцрипт/ВебАссембли код садржи злонамерни код, тешко га је открити јер је црна кутија. Такође, ВАСМ код је у бинарном формату спремном за покретање; ради брже, што отежава антивирусним решењима да траже злонамерни код. На пример, код може да садржи нежељене рекламе или могућност преусмеравања корисника на нежељене сајтове са малвером.

Поред тога, претерано ослањање ВебАссембли-а на ЈаваСцрипт да би се покренуо на Вебу такође значи да он наслеђује рањивости ЈаваСцрипт-а. Зато, као програмер, морате да се придржавате ЈаваСцрипт-ових мера предострожности и мера када кодирате ВАСМ.

#2. Управљање меморијом

Управљање меморијом у ВАСМ-у је незгодно. Прво, не приступа директно физичкој меморији док се извршава унутар ВМ-а. Зато користи меморију хост машине.

Друго, чишћење меморије у ВАСМ-у захтева експлицитан процес, док се, у поређењу, ЈаваСцрипт чисти сам.

Поред тога, када ВАСМ функција враћа излаз у ЈаваСцрипт, она враћа показивач на позицију унутар додељеног ВАСМ меморијског простора. Дакле, ако се декларисана меморија напуни, ВАСМ програм може да се сруши, уништавајући корисничко искуство. Да би то спречили, програмери морају да користе средства за дезинфекцију за отклањање грешака у свом коду или да користе ланце алата као што је емсцриптен.

#3. Обфусцатион кода

Извршење ВАСМ-овог сандбок-а чини његов код замагљеним. Поред тога, ВАСМ бинарни формат такође није читљив, што отежава обрнути инжењеринг, који је неопходан за идентификацију злонамерног кода.

Ово отежава отклањање грешака у ВебАссембли коду због недостатка формата који је читљив за људе. Ово отвара многе безбедносне рупе, укључујући способност хакера да сакрију код који краде осетљиве информације или врши убацивање кода како би преузели главну машину.

  Како да видите колико РАМ-а има на вашем рачунару (и његову брзину)

#4. Провере интегритета

Сви подаци који се преносе преко Веба су подложни каљењу података. На пример, хакери могу да изврше напад човека у средини да би променили вредности података. То је проблем за ВАСМ, с обзиром да нема одговарајући начин за проверу интегритета.

Међутим, може да ради са ЈаваСцрипт-ом за проверу интегритета. Други начин да се идентификују потенцијалне рањивости ВАСМ кода је коришћење алата за интеграцију као што је Јит. То осигурава да код нема лоших актера и да не може да утиче на апликације или околну инфраструктуру у облаку.

Разумевање ВАСМ безбедносног модела

ВебАссембли озбиљно схвата безбедност. Зато су у званичним документима ВАСМ-а поменули да њихов безбедносни модел води рачуна о два важна циља:

  • Уверите се да нема грешака или злонамерних модула који утичу на кориснике
  • Уверите се да програмери могу да ублаже било какве безбедносне ризике и креирају безбедне апликације, а да притом осигурате да се тачка 1 увек одржава.
  • ВАСМ безбедносни модел зна да се ВебАссембли апликације извршавају независно, а да не могу да побегну из окружења заштићеног окружења. Међутим, АПИ-ји могу отворити начин за напад на окружење домаћина.

    Друга техника отпорна на грешке укључује детерминистичко извршавање апликација са ограниченим очекивањима. Осигуравањем оба услова, већина извршавања апликација се сматра безбедним.

    Да би побољшали безбедност, програмери би требало да примењују политику истог порекла за проток информација. Ако развијате за не-веб, морате користити ПОСИКС безбедносни модел. Ако желите да прочитате више о његовом безбедносном моделу, погледајте: Безбедност – ВебАссембли.

    ВебАссембли системски интерфејс (ВАСИ)

    ВАСИ (Тхе ВебАссембли Систем Интерфаце) такође игра кључну улогу у ВАСМ не-веб уграђивању јер побољшава безбедност. То је модуларни системски интерфејс који нуди узбудљиве безбедносне карактеристике и преносивост.

    У ствари, сада је део Повеље подгрупе за интерфејс система ВебАссембли и стога је стандардизован. Због ВАСИ-ја, ВАСМ је широко прихваћен у различитим рачунарским областима на рубовима/серверима. Такође, ВАСИ поједностављује безбедност при преласку на не-веб уграђивање из окружења за уграђивање на веб.

    Завршне речи

    Преносивост и безбедност ВебАссембли-а су две велике теме. У трећем делу ВебАссембли-а за почетнике покушали смо да га поједноставимо и разложимо, посебно за почетнике.

    Следеће, можете погледати ЈаваСцрипт варалице за програмере и ученике.