Tækni
KeyMeld: sameiginlegur lykill fyrir iPhone og Android og Zero Vault arkitektúr fyrir verkefni
KeyMeld er ekki sjálfgefið Zero Vault. Þetta er aðskilinn SaaS þjónusta sem aðstoðar þróunaraðila við að fela sameiginlegan lykil utan umhverfis bakenda vöru, sameina viðskiptavini iOS og Android og byggja arkitektúr fyrir eigin forrit samkvæmt Zero Vault fyrirmyndinni.
Það er til vandamál hjá fjölpallra forritum sem notandi tekur oft ekki eftir. Á skjánum sér hann eina reikninginn og býst við sömu virkni hvaðan sem hann nálgast forritið. En innan iPhone og Android nota þessar tvær kerfisleiðir mismunandi verndartæki og vinna á ólíkan hátt með staðbundna lykla.
Á iPhone getur forritið verndað staðbundinn lykil tækisins með Apple Keychain. Á Android er notað Android Keystore. Þessi tækni er hugsað til að halda viðkvæmum lykli öruggum inni í vernduðu umhverfi tækisins, en þau eru ekki vurð fyrir skiptum.
Notandinn skiptir ekki um verndarkerfi; hann óskar bara eftir að opna forritið á iPhone, setja það síðan upp á Android og halda áfram að vinna með sömu séðu gögnunum.
Hönnuður þarf að leysa arkitektúrfræðilegt spurningar: hvernig skal sameiginlegur aðgangur vera á milli tveggja kerfa, án þess að flytja lykla staðbundinna tækja eða geyma afrit þeirra í gagnagrunni bakenda vöru?
Í KeyMeld kom í ljós að þjónustan býður upp á að nota sérstakan, almennan lykil til þess, án þess að trufla innri verndarkerfi iOS og Android.
Sameiginlegur lykill fyrir mismunandi kerfi
Staðbundinn lykill tækisins tengist tilteknum síma og er varið af viðeigandi stýrikerfi. Hann stendur í vernduðu umhverfi tækisins og er ekki ætíð ætlaður til að flytja hann á milli tækja á ótryggan hátt.
Almenni lykillinn frá KeyMeld er annars vegar og hann er búinn til fyrir tiltekið verkefni, reikning og verndaða rými og verður sameiginlegur fyrir viðskiptavini með hlutdeild á mismunandi kerfum.
Þjónustan tekur ekki lykilinn frá iPhone, flytur hann yfir á Android, né reynir að sameina tvo mismunandi lykla í einn. Verndarkerfin halda áfram að vera aðskilin og forritið fær sameiginlegan aðgang fyrir sitt verkefni.
Þetta er kjarninn í arkitektúrhlutverki KeyMeld. Hann gerir ekki iOS og Android að einu og sama, né veldur hann breytingum á innri kerfum þeirra. Hann bætir við sameiginlega lagið með almennum lykli, þannig að verkefnið þarf ekki að hugsa um hvernig hann útvegar hann á milli kerfa sjálfur.
Ólíka prógrömin og reikningar fá sitt eigið umhverfi lykla. Hver verkefni heldur eftir sínum aðgangsréttindasvæði og fleiri reikningar á sömu tækjum eru áfram aðskildir.
Zero Vault tilheyrir verkefninu
Mikilvægt er að skýra: Zero Vault er ekki nafnið á KeyMeld sjálfu. Þetta er arkitektúrarmódel sem við getur byggt upp tengt forrit.
KeyMeld er sjálfstæð SaaS þjónusta. Hún er ekki sett inn í bakendakerfi forrits eða geymd nálægt gagnagrunninum sem hluti af forritinu. Almennur lykill er í þjónustuleið í gegnum SaaS kerfið, utan við bakendakerfi verkefnisins.
Til að þessi módel haldist verður að halda traustarmörkum milli verkefnisins og KeyMeld sjálfs. Ólíkar auðkenningar, aðgangsheimildir og stjórntæki eru í báðum kerfum.
Að það verði sérstakt kerfimódel sem kallast Zero Vault, felur í sér að sérhver gagnagrunnur ekki geymi lykil frá viðskiptavænum geymslum.
Zero Vault þýðir ekki að bakendakerfi vöru geymi ekkert. Það heldur áfram að geyma reikninga, stillingar, viðskiptagögn og annað sem þarf, en lyklinum sjálfum er ekki geymt með þeim.
Möguleikinn á að haska gagnagrunninn hlýtur ekki að leysa lyklinn strax, enda er hann ekki geymdur með reikningum eða öðrum gagnagrunnsliðum. Þó er ekki hægt að lofa því að ófyrirséðar bilunarástandi (dómar) séu fullkomlega óhætt, heldur er vandamál að koma í veg fyrir að almennur lykill sé aðgengilegur úr gagnakerfinu sjálfu.
Raunverulegur notkunar: einn reikningur á iPhone og Android
Við skulum ímynda okkur forrit með staðbundnum, vernduðum upplýsingum. Þetta gæti verið auðkenning, fyrirtækjaforrit eða hver önnur þjónusta sem notar dulkóðaðar upplýsingar beint á tækinu.
Á iPhone er lykillinn verndaður af iOS og á Android er eigin vernd með Android-meðferðinni. Inni í tækjunum eru mismunandi lyklar, og það er eðlilegt.
Án sérstakrar sameiginlegrar lögunnar hefðu þróunaraðilar þurft að ákveða, hvernig skýra mætti aðgang að sömu dulkóðuðu gögnunum á báðum kerfum. Varðveislukerfi væri áfram mismunandi, og vöruleiðin myndi þurfa að tengja þessa tvö kerfi sjálf.
Ákveðið hefði verið að búa til sérstakar snið fyrir iOS og Android, reynt að flytja lykla handvirkt eða geyma afrit þeirra á vefnum.
Með KeyMeld er hægt að sleppa við að flytja staðbundna lykla og geyma afrit þeirra á netinu, með því að bæta almennum lykli við.
Viðskiptavinur á iPhone og Android fær aðgang að sama almennan lykli innan viðkomandi viðskiptavarðar og reiknings. Hver tækjatæki heldur áfram að nota eigin verndartæki.
Notandi sér þetta sem eitt og sama reikninginn á báðum tækjunum. Hann þarf ekki að vita hvernig verndarkerfin virka inni í iPhone eða Android.
Þegar viðskiptavinur skipti um síma, þarf hann ekki að flytja lykilinn úr gamla tækkinu né setja upp sérstaka verndarrými fyrir nýja kerfið. Nýr viðskiptavinur tengist sama verkefni og fær aðgang að sama almennan lykli.
Bakendakerfið tekur þátt í að sannvotta beiðnina, en lykillinn sjálfur er ætlaður fyrir viðskiptavininn og er ekki geymdur í gagnagrunn verkefnisins.
KeyMeld flytur ekki verkefnagögn og einfaldlega staðfestir ekki breytingar á notendaskrám. Verkefnið er að láta viðskiptavini fá lykilinn sem þarf til að vinna með lokuð gögn. Efni geymslunnar og uppfærslur eru í höndum þess forrits sjálfs.
Þrír mismunandi lyklar og leynilegar upplýsingar
Til að auðvelda skilning á laginu, er gott að greina á milli þriggja hugsmíða.
Staðbundinn lykill tækisins tilheyrir tilteknum síma og er varið af iOS eða Android.
Almenni lykill er notaður af viðskiptavinum einnar verkefnis og reiknings, og tengir saman mismunandi kerfi á innra kerfisplaninu.
Starfsleynilegur er notaður af bakenda til öruggs samskipta við KeyMeld. Hann er ekki sendur til farsíma eða vafra.
Starfsleynilegur og almennur lykill gegna ólíkum hlutverkum. Í Zero Vault arkitektúr er ekki geymt almennur lykill í gagnagrunni verkefnisins með bakendagögnunum.
Til að KeyMeld virki þarf ekki nafnið á notanda, lykilorð, TOTP geymslu né viðskiptatengda merkingu skrár. Mikilvægt er að tenging verkefnis, reiknings og réttinda viðskiptavinarins sé aðgengileg.
Aðgangur að lykli stjórnast áfram
Óheimil aukning á almennan lykil er ekki sjálfgefin réttur hverjum viðskiptavini.
Ef öryggi tækisins eru hætt, stöðugt reikningstaða breytist eða ferill stöðvar aðgang, getur KeyMeld hætt að afhenda almennan lykil til þess viðskiptavinar.
Hér er mikilvægt að hafa í huga að þetta felur ekki endilega í sér að lykillinn sé eytt úr tækinu, heldur að takmarka þær aðferðir að fá hann áfram eða tengja nýja viðskiptavini.
Hægt er að lða það til að ný tól tengist og stjórni áfram aðgangi, án þess að þurfa að byggja sérstakt kerfi í iOS og Android. Umferðin og notkunin er samt háð því hvort verkefnið geymi almennan lykil hjá sér og hvort það aðskilur innra kerfi sitt frá SaaS kerfinu sem KeyMeld er.
Þetta felur í sér: sameiginlegt kerfi fyrir aðgangsheimildir og deilingu á yfirráðum, án þess að stinga því í annað kerfi eða geyma lykilinn á óviðkomandi stað.
Hvað KeyMeld gerir ekki
KeyMeld er ekki lykilorðastjóri og geymir ekki TOTP gögn notenda. Það er ekki skýja gagnagrunnur og tók ekki við að geyma gagna í samfélagsformi og syna samþættingu við frumforrit.
Það er ekki staðfesta Apple Keychain eða Android Keystore. Þjónustan lætur staðbundnar verndartæki haldast eins og þau eru og bætir við almennu lagi fyrir product-ið.
Þetta er heldur ekki kerfi til að auðkenna notendur sjálfir. Annar sérþjónusta, til dæmis MeldID, getur staðfest og auðkennt notendur, en KeyMeld er aðeins fyrir að útvega viðskiptavini sameiginlegan, almennan lykil, án þess að vera hluti af bakendakerfi verkefnisins.
Í lagi með það: KeyMeld breytir ekki verkefnakerfi sjálfsins í Zero Vault. Það veitir gagnagrunnskerfi utan um almennan lykil. Til að viðhalda þessari arkitektúr, þarf ekki að geyma lykilinn í gagnagrunni verkefnisins, heldur að tryggja að aðskilin traustsvæði haldist og að lykillinn sé ekki geymdur þar.
Hverjum gæti þetta verið nytsamlegt
Svo stærst gæti þetta verið gagnlegt í forritum sem starfa á mörgum kerfum samtímis og nota staðbundin, vernduð gögn.
Þetta getur verið auðkenning, fyrirtækjaforrit, SaaS-hugbúnaður, þjónustur með mörg tæki og önnur verkefni þar sem einn reikningur þarf að virka jafnt og á iPhone og Android.
Þróunaraðilum er gullið að auðvelda álag á kerfin og auka gagnsæi. Verkefnisbakendakerfið geymir gögn en KeyMeld sem ytri SaaS kerfi býður upp á almennan lykil og stjórnar möguleikanum á að veita hann áfram.
Eftir að hafa kynnst verkefninu, myndi ég lýsa KeyMeld ekki sem fullkomnu Zero Vault, heldur sem tól til að byggja slíka fyrirmynd fyrir sitt eigið forrit.
iOS og Android halda áfram að nota sín eigin verndartæki. Viðskiptavinir fá sameiginlegan almenndan lykil. Og bakendakerfið, ef það geymir ekki lykilinn sitt, og heldur afskild í milli kerfa og SaaS-kerfis, verður ekki skjalældur enda reikningar og gögn áfram adskilin.
Þetta gerir notendum kleift að hafa aðgang að gögnunum á mismunandi kerfum með einum og sama reikningi. Forriturum er mögulegt að flytja lykilinn út af bakendakerfinu og halda honum í sér. Og í heildina sést þessi arkitektúr sem Zero Vault, þar sem bakendinn geymir ekki lykilinn frá viðskiptavænum gögnunum.
Meira um verkefnið: KeyMeld