IzpÄtiet WebAssembly lineÄrÄs atmiÅas aizsardzÄ«bas domÄnu un segmentÄtas piekļuves atmiÅai sarežģītÄ«bu, kas ir bÅ«tiska droÅ”u un uzticamu lietojumprogrammu veidoÅ”anai visÄ pasaules tÄ«meklÄ«.
WebAssembly lineÄrÄs atmiÅas aizsardzÄ«bas domÄni: segmentÄta piekļuve atmiÅai uzlabotai droŔībai
WebAssembly (Wasm) ir mainÄ«jis veidu, kÄ mÄs veidojam un izvietojam lietojumprogrammas tÄ«meklÄ« un Ärpus tÄ. TÄ efektivitÄte, pÄrnesamÄ«ba un droŔības funkcijas padara to par arvien populÄrÄku izvÄli plaÅ”am lietojumu klÄstam, sÄkot no tÄ«mekļa pÄrlÅ«kprogrammÄm un beidzot ar malu skaitļoÅ”anu. Wasm droŔības modeļa stÅ«rakmens ir tÄ lineÄrÄs atmiÅas arhitektÅ«ra un atmiÅas aizsardzÄ«bas domÄnu ievieÅ”ana. Å is emuÄra ieraksts iedziļinÄs Å”o domÄnu koncepcijÄ un tajÄ, kÄ segmentÄta piekļuve atmiÅai veicina droÅ”Äku un robustÄku izpildes vidi.
WebAssembly atmiÅas modeļa izpratne
Pirms atmiÅas aizsardzÄ«bas domÄnu izpÄtes ir svarÄ«gi izprast Wasm pamatÄ esoÅ”o atmiÅas modeli. AtŔķirÄ«bÄ no vietÄjÄm lietojumprogrammÄm, Wasm moduļi darbojas sandboksa vidÄ, galvenokÄrt izmantojot lineÄro atmiÅas telpu. Tas nozÄ«mÄ, ka Wasm modulis piekļūst atmiÅai, izmantojot vienu, nepÄrtrauktu baitu bloku.
- LineÄrÄ atmiÅa: NepÄrtraukts atmiÅas bloks, kas ir pieejams Wasm modulim. Tas ir organizÄts kÄ baitu secÄ«ba.
- AtmiÅas lappuses: LineÄrÄ atmiÅa parasti ir sadalÄ«ta fiksÄta izmÄra lappusÄs (parasti 64KB). Tas atvieglo pÄrvaldÄ«bu un pieŔķirÅ”anu.
- Piekļuve: Wasm kods mijiedarbojas ar atmiÅu, izmantojot tÄdus norÄdÄ«jumus kÄ `i32.load`, `i64.store` utt. Å ie norÄdÄ«jumi norÄda piekļūtÄ datu adresi un lielumu.
Å is lineÄrÄs atmiÅas modelis nodroÅ”ina bÅ«tisku izolÄcijas slÄni. Wasm modulis tieÅ”i neiedarbojas ar resursdatora sistÄmas atmiÅu, novÄrÅ”ot tÄ bojÄÅ”anu resursdatora vai citiem moduļiem. TomÄr lineÄrÄs atmiÅas pamatstruktÅ«ra pati par sevi neiekļauj aizsardzÄ«bu pret ļaunprÄtÄ«gu kodu modulÄ«, piemÄram, lasīŔanu vai rakstīŔanu patvaļīgÄs adresÄs tÄ pieŔķirtajÄ atmiÅÄ.
NepiecieÅ”amÄ«ba pÄc atmiÅas aizsardzÄ«bas
Lai gan lineÄrÄs atmiÅas modelis ir nozÄ«mÄ«gs solis ceÄ¼Ä uz droŔību, tas nav pilnÄ«gs risinÄjums. Bez papildu droŔības pasÄkumiem Wasm modulis potenciÄli varÄtu izmantot savas ievainojamÄ«bas, lai:
- Piekļūtu Ärpus robežÄm esoÅ”ai atmiÅai: MÄÄ£inÄt lasÄ«t vai rakstÄ«t atmiÅas reÄ£ionos Ärpus savas pieŔķirtÄs telpas, potenciÄli izraisot datu bojÄjumus vai informÄcijas noplÅ«di.
- PÄrrakstÄ«t kritisko informÄciju: MainÄ«t datu struktÅ«ras, kas ir bÅ«tiskas moduļa darbÄ«bai vai pat paÅ”u Wasm izpildlaiku.
- Ieviest atmiÅas bojÄjumus: IzraisÄ«t avÄrijas vai negaidÄ«tu darbÄ«bu un paverot durvis uz nozÄ«mÄ«gÄkiem kļūdu labojumiem.
Lai mazinÄtu Å”os riskus, WebAssembly izmanto vairÄkus mehÄnismus, tostarp atmiÅas aizsardzÄ«bas domÄnus un, kas ir ļoti svarÄ«gi, segmentÄtu piekļuvi atmiÅai. Å Ä«s funkcijas ierobežo darbÄ«bas, ko Wasm modulis var veikt savÄ lineÄrÄs atmiÅas telpÄ, un stiprina vispÄrÄjo droŔības profilu.
AtmiÅas aizsardzÄ«bas domÄnu ievieÅ”ana
AtmiÅas aizsardzÄ«bas domÄns saistÄ«bÄ ar WebAssembly attiecas uz mehÄnismu, kas nodroÅ”ina robežas un piekļuves kontroli Wasm moduļa lineÄrÄs atmiÅas telpÄ. Tas darbojas kÄ vÄrtu sargs, nodroÅ”inot, ka moduļa kods var piekļūt tikai tiem atmiÅas reÄ£ioniem, kam tam ir atļauts.
Lai gan ievieÅ”anas specifika atŔķiras atkarÄ«bÄ no Wasm izpildlaika un pamatÄ esoÅ”Äs operÄtÄjsistÄmas vai aparatÅ«ras, pamatkoncepcija ir konsekventa. AtmiÅas aizsardzÄ«bas domÄns parasti ietver Å”Ädus elementus:
- AtmiÅas segmentÄcija: LineÄrÄs atmiÅas sadalīŔana loÄ£iskos segmentos vai reÄ£ionos.
- Piekļuves kontroles saraksti (ACL): Atļauju definÄÅ”ana, kas saistÄ«tas ar katru atmiÅas segmentu, norÄdot, kÄdas operÄcijas (lasīŔana, rakstīŔana, izpilde) ir atļautas.
- Izpildlaika ievieÅ”ana: Wasm izpildlaiks aktÄ«vi ievieÅ” Å”o piekļuves kontroli izpildlaikÄ. Katra piekļuve atmiÅai tiek pÄrbaudÄ«ta pret ACL, lai noteiktu, vai operÄcija ir atļauta.
DomÄjiet par to kÄ par virtuÄlu žogu ap mÄjas sekcijÄm. Katrai sekcijai (atmiÅas segmentam) ir savi noteikumi par to, kurÅ” var iekļūt un ko viÅi var darÄ«t. Izpildlaiks ir apsargs, kas pastÄvÄ«gi pÄrbauda, vai iekÅ”Ä esoÅ”ie cilvÄki ievÄro noteikumus.
SegmentÄta piekļuve atmiÅai detalizÄti
SegmentÄta piekļuve atmiÅai ir galvenais aspekts atmiÅas aizsardzÄ«bÄ WebAssembly ietvaros. TÄ nodroÅ”ina detalizÄtÄku kontroli pÄr to, kÄ Wasm moduļi mijiedarbojas ar savu lineÄro atmiÅu. TÄ vietÄ, lai vienkÄrÅ”i pieŔķirtu vai noraidÄ«tu piekļuvi visam atmiÅas reÄ£ionam, segmentÄta piekļuve nodroÅ”ina smalkÄku atļauju segmenta lÄ«menÄ«.
LÅ«k, kÄ segmentÄta piekļuve atmiÅai parasti darbojas:
- AtmiÅas segmentÄcija: LineÄrÄ atmiÅa tiek sadalÄ«ta vairÄkos segmentos. Å iem segmentiem var bÅ«t dažÄdi izmÄri, un tos var sakÄrtot tÄ, lai tie atbilstu moduļa datu struktÅ«rÄm un funkcionÄlajÄm jomÄm.
- Segmenta atribÅ«ti: Katrs segments ir saistÄ«ts ar atribÅ«tu kopumu, kas definÄ tÄ mÄrÄ·i un piekļuves tiesÄ«bas. AtribÅ«tu piemÄri var bÅ«t:
- Tikai lasÄms: Segmentu var tikai nolasÄ«t, nevis rakstÄ«t. NoderÄ«gs pastÄvÄ«gu datu vai koda glabÄÅ”anai.
- Tikai rakstÄms: Segmentu var tikai rakstÄ«t, nevis lasÄ«t (mazÄk izplatÄ«ts, bet var izmantot).
- IzpildÄms: SegmentÄ var glabÄt izpildÄmo kodu. (Prasa papildu droŔības pÄrbaudes, lai novÄrstu koda ievietoÅ”anu).
- Datu segments: GlabÄ inicializÄtus vai neinicializÄtus datus.
- Piekļuves pÄrbaudes: Kad Wasm modulis mÄÄ£ina piekļūt noteiktai atmiÅas atraÅ”anÄs vietai, Wasm izpildlaiks veic Å”Ädas darbÄ«bas:
- Adreses validÄcija: PÄrliecinÄs, ka atmiÅas adrese atrodas pieŔķirtÄs lineÄrÄs atmiÅas robežÄs.
- Segmenta uzmeklÄÅ”ana: Nosaka, kuram segmentam pieder atmiÅas adrese.
- Atļaujas pÄrbaude: SkatÄs segmentam piesaistÄ«tos atribÅ«tus, lai redzÄtu, vai pieprasÄ«tÄ operÄcija (lasīŔana, rakstīŔana, izpilde) ir atļauta.
- IevieÅ”ana: Ja piekļuve nav atļauta (t.i., atļaujas pÄrbaude neizdodas), Wasm izpildlaiks izraisÄ«s kļūdu, parasti atmiÅas piekļuves pÄrkÄpumu. Tas novÄrÅ” ļaunprÄtÄ«ga koda turpinÄÅ”anu.
PiemÄrs: IedomÄjieties Wasm moduli, kas apstrÄdÄ finanÅ”u darÄ«jumus. JÅ«s varÄtu sadalÄ«t atmiÅu Å”Ädos segmentos:
- DarÄ«jumu datu segments: GlabÄ sensitÄ«vu darÄ«jumu informÄciju. Å is segments parasti ir atzÄ«mÄts kÄ tikai lasÄms vai tikai rakstÄms atkarÄ«bÄ no operÄcijas.
- Koda segments: Satur Wasm kodu, kas atbild par darÄ«jumu apstrÄdi. Å im segmentam jÄbÅ«t atzÄ«mÄtam kÄ izpildÄmam.
- KonfigurÄcijas datu segments: GlabÄ konfigurÄcijas iestatÄ«jumus. Var bÅ«t tikai lasÄms, ja iestatÄ«jumiem nevajadzÄtu mainÄ«ties, vai arÄ« lasÄms/rakstÄms, ja konfigurÄjams.
IevieÅ”ot atmiÅas aizsardzÄ«bas domÄnus ar segmentÄtu piekļuvi atmiÅai, sistÄma var stingri kontrolÄt piekļuvi Å”iem svarÄ«gajiem datiem un koda segmentiem, ievÄrojami uzlabojot droŔību.
PraktiskÄs sekas un piemÄri
AtmiÅas aizsardzÄ«bas domÄnu un segmentÄtas piekļuves atmiÅai izmantoÅ”ana nodroÅ”ina bÅ«tiskas droŔības priekÅ”rocÄ«bas dažÄdos scenÄrijos.
- Sandboksa tÄ«mekļa lietojumprogrammas: TÄ«mekļa pÄrlÅ«kprogrammÄs Wasm moduļi tiek plaÅ”i izmantoti klienta puses koda izpildei. SegmentÄta piekļuve nodroÅ”ina, ka ļaunprÄtÄ«gs modulis nevar piekļūt pÄrlÅ«kprogrammas iekÅ”Äjiem datiem, citÄm tÄ«mekļa lapÄm vai citÄm sistÄmas daļÄm vai tos mainÄ«t.
- Malu skaitļoÅ”anas droŔība: Malu ierÄ«cÄs bieži tiek palaisti Wasm moduļi, lai apstrÄdÄtu datus lokÄli. AtmiÅas aizsardzÄ«ba ir bÅ«tiska, lai novÄrstu kompromitÄta moduļa iejaukÅ”anos citÄs lietojumprogrammÄs vai sensitÄ«vos datos, kas atrodas ierÄ«cÄ. PiemÄram, IoT vÄrtejÄ bojÄts Wasm modulis nedrÄ«kstÄtu varÄt lasÄ«t vai rakstÄ«t datus, kas pieder droÅ”iem sakariem.
- Serverless funkcijas: Bezservera platformas bieži izmanto Wasm, lai Ätri un efektÄ«vi izpildÄ«tu funkcijas. SegmentÄta piekļuve ir nepiecieÅ”ams komponents, lai izolÄtu katras funkcijas atmiÅas telpu un novÄrstu jebkÄdu nejauÅ”u vai tīŔu iejaukÅ”anos no citÄm funkcijÄm.
- Starpplatformu programmatÅ«ras izstrÄde: Veidojot starpplatformu lietojumprogrammas, izstrÄdÄtÄji var izmantot Wasm pÄrnesamÄ«bas un droŔības funkcijas. Izmantojot atmiÅas aizsardzÄ«bas domÄnus, viÅi var mazinÄt potenciÄlÄs ievainojamÄ«bas dažÄdÄs operÄtÄjsistÄmÄs.
PiemÄra scenÄrijs: Apsveriet Wasm moduli, kas paredzÄts lietotÄju autentifikÄcijas apstrÄdei. Modulim varÄtu bÅ«t segments, kurÄ tiek glabÄti lietotÄja akreditÄcijas dati (paroles, droŔības žetoni). Izmantojot atmiÅas aizsardzÄ«bu, Å”o segmentu var atzÄ«mÄt kÄ tikai lasÄmu. Tas neļaus modulim neapzinÄti vai ļaunprÄtÄ«gi rakstÄ«t Å”ajÄ segmentÄ, pat ja kÄds cits kods moduļa iekÅ”ienÄ satur kļūdu. TurklÄt moduli varÄtu ierobežot no jebkÄda koda ielÄdes vai izpildes no Ŕī konkrÄtÄ atmiÅas segmenta, vÄl vairÄk stiprinot droŔību.
GlobÄls piemÄrs: ApskatÄ«sim globÄlu maksÄjumu apstrÄdes sistÄmu. Å Äda sistÄma varÄtu izmantot Wasm moduļus, lai veiktu kriptogrÄfiskas operÄcijas, piemÄram, sensitÄ«vu finanÅ”u datu Å”ifrÄÅ”anu un atÅ”ifrÄÅ”anu. AtmiÅas aizsardzÄ«bas domÄni nodroÅ”ina, ka Wasm moduļi ir izolÄti un nevar lasÄ«t, rakstÄ«t vai izpildÄ«t neatļautu kodu, tÄdÄjÄdi aizsargÄjot pret izplatÄ«tÄm ievainojamÄ«bÄm, piemÄram, bufera pÄrpildÄm vai koda ievietoÅ”anas uzbrukumiem, kas varÄtu apdraudÄt klientu finanÅ”u datus.
AtmiÅas aizsardzÄ«bas ievieÅ”ana: izaicinÄjumi un apsvÄrumi
Lai gan atmiÅas aizsardzÄ«bas domÄni un segmentÄta piekļuve piedÄvÄ ievÄrojamas droŔības priekÅ”rocÄ«bas, to ievieÅ”ana rada noteiktas problÄmas, kuras izstrÄdÄtÄjiem un izpildlaika ieviesÄjiem ir jÄrisina:
- VeiktspÄjas reÄ£ija: Izpildlaika pÄrbaudes, kas nepiecieÅ”amas atmiÅas piekļuves kontrolei, var ieviest nelielu veiktspÄjas reÄ£iju. Izpildlaika ieviesÄjiem ir jÄoptimizÄ Å”Ä«s pÄrbaudes, lai samazinÄtu to ietekmi uz lietojumprogrammas Ätrumu.
- SarežģītÄ«ba: AtmiÅas segmentu un piekļuves kontroles sarakstu pÄrvaldīŔana var palielinÄt attÄ«stÄ«bas procesa sarežģītÄ«bu. IzstrÄdÄtÄjiem ir rÅ«pÄ«gi jÄizstrÄdÄ atmiÅas izkÄrtojums un segmentu pieŔķīrums, lai sasniegtu vÄlamÄs droŔības garantijas.
- Izpildlaika saderÄ«ba: DažÄdiem Wasm izpildlaikiem var bÅ«t dažÄdi atbalsta lÄ«meÅi uzlabotÄm atmiÅas aizsardzÄ«bas funkcijÄm. IzstrÄdÄtÄjiem ir jÄapsver mÄrÄ·a izpildes vides saderÄ«ba un funkciju kopa.
- Uzbrukuma virsma: Pats atmiÅas aizsardzÄ«bas mehÄnisms ievieÅ” uzbrukuma virsmu. Izpildlaika ieviesÄjiem ir jÄnodroÅ”ina, ka piekļuves kontrole un segmentu ievieÅ”ana ir droÅ”a no uzbrukumiem, kas varÄtu apiet aizsardzÄ«bu.
- RÄ«ki: Ir bÅ«tiski izmantot robustus rÄ«kus Wasm lietojumprogrammu atkļūdoÅ”anai un profilÄÅ”anai ar iespÄjotu atmiÅas aizsardzÄ«bu. Å ie rÄ«ki var palÄ«dzÄt izstrÄdÄtÄjiem identificÄt atmiÅas piekļuves pÄrkÄpumus, analizÄt droŔības ievainojamÄ«bas un optimizÄt lietojumprogrammu veiktspÄju.
Neskatoties uz izaicinÄjumiem, atmiÅas aizsardzÄ«bas priekÅ”rocÄ«bas ievÄrojami pÄrsniedz trÅ«kumus, Ä«paÅ”i droŔībai kritiskÄs lietojumprogrammÄs.
Paraugprakses Wasm atmiÅas aizsardzÄ«bai
Lai maksimÄli palielinÄtu Wasm atmiÅas aizsardzÄ«bas funkciju efektivitÄti, izstrÄdÄtÄjiem un ieviesÄjiem jÄievÄro Å”Äda paraugprakse:
- Dizains minimÄlai privilÄÄ£ijai: PieŔķiriet katram Wasm modulim tikai nepiecieÅ”amÄs minimÄlÄs atļaujas. Izvairieties pieŔķirt lasīŔanas, rakstīŔanas vai izpildes piekļuvi atmiÅas segmentiem, ja vien tas nav absolÅ«ti nepiecieÅ”ams.
- RÅ«pÄ«ga segmentÄcija: RÅ«pÄ«gi izstrÄdÄjiet atmiÅas segmentus, lai tie atbilstu moduļa funkcionalitÄtei un datu struktÅ«rÄm. Katram segmentam jÄatspoguļo loÄ£iska datu vai koda vienÄ«ba ar skaidri definÄtÄm piekļuves prasÄ«bÄm.
- RegulÄrs audits: Veiciet regulÄrus Wasm moduļu un izpildes vides droŔības auditus, lai identificÄtu potenciÄlÄs ievainojamÄ«bas un nodroÅ”inÄtu, ka atmiÅas aizsardzÄ«bas mehÄnismi ir pareizi ieviesti.
- Izmantojiet izveidotas bibliotÄkas: Izmantojiet labi pÄrbaudÄ«tas Wasm bibliotÄkas un ietvarus, jo Ä«paÅ”i tos, kas piedÄvÄ iebÅ«vÄtÄs droŔības funkcijas.
- Sekojiet lÄ«dzi jaunumiem: Sekojiet lÄ«dzi jaunÄkajiem sasniegumiem Wasm droŔībÄ un attiecÄ«gi atjauniniet izpildlaikus un moduļus, lai novÄrstu jaunatklÄtÄs ievainojamÄ«bas.
- TestÄÅ”ana: RÅ«pÄ«gi testÄjiet Wasm moduļus, tostarp droŔības testus, lai nodroÅ”inÄtu, ka atmiÅas aizsardzÄ«bas mehÄnismi darbojas paredzÄti. Izmantojiet fuzzingu un citas testÄÅ”anas metodes, lai atklÄtu negaidÄ«tas ievainojamÄ«bas.
- Koda pÄrskats: Vienaudžu pÄrskatÄ Wasm moduļa kods, lai identificÄtu potenciÄlos droŔības trÅ«kumus un nodroÅ”inÄtu, ka kods atbilst droÅ”iem kodÄÅ”anas standartiem.
- Sandbokss: NodroÅ”iniet, ka Wasm moduļi tiek izpildÄ«ti sandboksa vidÄ, vÄl vairÄk izolÄjot moduļus no resursdatora sistÄmas.
- InstrumentÄÅ”ana un uzraudzÄ«ba: IevieÅ”iet reÄ£istrÄÅ”anu un uzraudzÄ«bu, lai izsekotu atmiÅas piekļuves pÄrkÄpumiem, negaidÄ«tai darbÄ«bai un citiem droŔības notikumiem.
- Izmantojiet izpildlaika specifiskÄs funkcijas: Izmantojiet uzlabotÄs funkcijas mÄrÄ·a Wasm izpildes vidÄ, lai vÄl vairÄk stiprinÄtu droŔību, piemÄram, piekļuves kontroli un izpildlaika izolÄciju.
WebAssembly atmiÅas aizsardzÄ«bas nÄkotne
WebAssembly ir strauji attÄ«stÄ«ga tehnoloÄ£ija, un tÄs droŔības funkcijas tiek nepÄrtraukti uzlabotas. Paredzams, ka turpmÄkÄ atmiÅas aizsardzÄ«bas attÄ«stÄ«ba ietvers:
- PrecÄ«zÄka kontrole: IzsmalcinÄtÄki mehÄnismi atmiÅas segmentu un piekļuves atļauju definÄÅ”anai un pÄrvaldīŔanai.
- AparatÅ«ras atbalstÄ«ta droŔība: IntegrÄcija ar aparatÅ«ras droŔības funkcijÄm, piemÄram, atmiÅas aizsardzÄ«bas vienÄ«bÄm (MPU), lai uzlabotu izpildlaika veiktspÄju un stiprinÄtu droŔību.
- StandartizÄcija: TurpmÄka atmiÅas aizsardzÄ«bas funkciju standartizÄcija dažÄdos Wasm izpildlaikos, lai uzlabotu pÄrnesamÄ«bu un savstarpÄjo izmantojamÄ«bu.
- Uzlaboti rÄ«ki: Papildu uzlabotu rÄ«ku parÄdīŔanÄs Wasm moduļu atkļūdoÅ”anai, auditÄÅ”anai un testÄÅ”anai, kas atvieglos izstrÄdÄtÄjiem droÅ”u lietojumprogrammu veidoÅ”anu un izvietoÅ”anu.
- Atbalsts uz spÄjÄm balstÄ«tai droŔībai: Var izmantot iespÄjas, lai ierobežotu moduļa spÄju veikt noteiktas operÄcijas, kas nodroÅ”ina robustÄku droŔību.
Å ie sasniegumi vÄl vairÄk nostiprinÄs WebAssembly pozÄ«ciju kÄ droÅ”u un uzticamu platformu plaÅ”a lietojumprogrammu klÄsta veidoÅ”anai, sÄkot no tÄ«mekļa pÄrlÅ«kprogrammÄm un beidzot ar sarežģītÄm programmatÅ«ras sistÄmÄm. TehnoloÄ£ijÄm attÄ«stoties globÄli, droŔības uzlaboÅ”ana bÅ«s vissvarÄ«gÄkÄ.
SecinÄjums
WebAssembly lineÄrÄ atmiÅas arhitektÅ«ra apvienojumÄ ar atmiÅas aizsardzÄ«bas domÄniem un segmentÄtu piekļuvi atmiÅai nodroÅ”ina spÄcÄ«gu pamatu droÅ”u un uzticamu lietojumprogrammu veidoÅ”anai. Å Ä«s funkcijas ir bÅ«tiskas droŔības risku mazinÄÅ”anai un aizsardzÄ«bai pret ļaunprÄtÄ«giem uzbrukumiem. Izprotot un pareizi ievieÅ”ot Å”os mehÄnismus, izstrÄdÄtÄji var izveidot robustus, sandboksa Wasm moduļus, kurus ir droÅ”i izvietot visÄ pasaules tÄ«meklÄ« un dažÄdÄs skaitļoÅ”anas vidÄs. TÄ kÄ Wasm turpina attÄ«stÄ«ties, tÄ droŔības iespÄjas turpinÄs uzlaboties, padarot to par vÄrtÄ«gu rÄ«ku izstrÄdÄtÄjiem visÄ pasaulÄ.