տեխնոլոգիաներ
KeyMeld: ընդհանուր բանալի iPhone և Android համար և Zero Vault ճարտարապետությունը նախագիծը համար
KeyMeld ինքնուրույն չէ Zero Vault-չ. Սա առանձին SaaS ծառայություն է, որը օգնում է մշակողին դուրս բերելու համահարթ բանալին սերվիսից, միավորելու iOS և Android հաճախորդներին և կառուցելու սեփական հավելկացնելու Zero Vault մոդելը։
Կրոսպլատֆորմային հավելվածներին առկա է մի խնդիր, որը հաճախորդը սովորաբար չի նկատում։ Էկրանին նա տեսնում է նույն հաշիվը և ակնկալում է նույն գործառականությունը ցանկացած սարքից հասանելի։ Բայց ներսում iPhone-ն և Android-ը օգտագործում են տարբեր պաշտպանական մեխանիզմներ և տարբեր կերպ աշխատում տեղային բանալիների հետ։
iPhone-ում հավելվածը կարող է պաշտպանել տեղական սարքի բանալին Apple Keychain-ով։ Android-ում դրա համար է օգտագործվում Android Keystore։ Այս տեխնոլոգիաները նախատեսված են անվտանգության համար՝ կանխարգելելով զգայուն բանալիները մնալու պաշտպանված միջավայրում սարքի ներսում, բայց նրանք փոխական փոխարինվող չեն։
Սպառողին դա կարևոր չի։ Նա պարզապես ուզում է բացել հավելվածը iPhone-ում, ապա տեղադրել այն Android-ում և շարունակել աշխատել նույն պաշտպանված տվյալներով։
Մարտավարի խնդիրն այստեղ է՝ ինչպես կազմակերպել ընդհանուր հասանելիություն երկու պլատֆորմներում՝ առանց տեղական սարքի բանալիների տեղափոխման կամ նրանց պատճենների պահեստավորման սեփական սերվիսում։
KeyMeld-ում ուսումնասիրելիս ես նկատեցի, որ ծառայությունն առաջարկում է դրա համար մասնավոր հատված՝ առանձին համապարփակ բանալի, որը չի միջամտում iOS կամ Android-ի ներսի պաշտպանությանը։
Համատարած բանալի տարբեր պլատֆորմների համար
Տեղական բանալին՝ սարքի՝ կոնկրետ մոդուլի համար, ապահովվում է օպերացիոն համակարգի միջոցներով։ Դա պահվում է հատուկ սարքի պաշտպանության միջավայրում և չի նախատեսվում հեշտ տեղափոխում սարքերի միջև։
KeyMeld-ի ընդհանուր բանալի՝ համապարփակ բանալի, այլ է։ Դա ստեղծվում է կոնկրետ նախագիծ, հաշիվ և ապահով տարածք համար և դառնում ընդհանուր տարածք՝ տարբեր պլատֆորմների հաճախորդների համար։
Ծառայությունը ավտոմատ չի վերցնում բանալին iPhone-ից, փոխանցում Android-ին և չի փորձում դարձնել երկու տարբեր բանալիներից մեկը։ Պլատֆորմային պաշտպանության մեխանիզմները մնում են ինքնուրույն, իսկ հավելվածը ստանում է ընդհանուր մակարդակ՝ իր նախագծի համար։
Իսկ դա է որոշում KeyMeld-ի ճարտարապետական դերը։ Սա չի դարձնում iOS-ը և Android-ը նույն, և չի փոխարինում նրանց ներսի մեխանիզմներին։ Դա ավելացնում է ընդհանուր մակարդակ՝ համապարփակ բանալիի հետ աշխատելու համար, որի շնորհիվ նախագիծը ինքնուրույն չի ստիպված՝ լուծելու նրա միջպլատֆորմային տրամադրումը։
Բազմամփոփ արտադրանքների և հաշիվների համար ստեղծվում են անկախ բանալիների միջավայրեր։ Յուրաքանչյուր նախագիծ պահպանում է սեփական տարածք մուտքի համար, իսկ մի քանի հաշիվներ մեկ սարքում մնում են առանձնացված։
Zero Vault-ը՝ նախագծի սեփականություն
Համաձայնեցնենք՝ Zero Vault-ը չի նշանակում, որ KeyMeld-ն իր մասի անունը։ Դա ճարտարապետական մոդել է՝ որը պարտադիր կառուցում է միացված արտադրանքը։
KeyMeld-ը functioning է որպես առանձին SaaS ծառայություն։ Օգտագործել այն՝ որպես հավելվածի բեկեն կամ այլ բազայի կողքին հավելանյութ՝ չպարտադիր։ Համապարփակ բանալին սպասարկվում է առանձին SaaS հատվածում՝ KeyMeld-ում, որը գտնվում է նախագծից դուրս։
Այս մոդելն ապահովելու համար անհրաժեշտ է, որ վստահության սահմանները՝ նախագծի և KeyMeld-ի միջև, մնան անկախ։ Օգտագործվող տվյալները, իրավունքները և ադմինիստրացման մեխանիզմները բաժանվել են։
Ազատ սովորական արտահայտություն է՝ սա է՝ Zero Vault մոդելը. սերվերյան բազան չի պահպանում կլիենտական անվտանգ պահուստի բանալին։
Zero Vault-ը չի նշանակում, որ հավելվածի բեկենն ամբողջությամբ չի պահպանում տվյալներն ու չի վերականգնում անվտանգությանը։ Նրա մեջ մնում են հաշիվները, պարամետրերը, բիզնես տվյալները և այլ անհրաժեշտ պարամետրեր, բայց համապարփակ բանալին դրանց կողքին չպահպանվում է։
Սերվերային բազայի շրջափակումը հենց ինքնին չի բացահայտում համապարփակ բանալին՝ քանի որ այն չի պահվում հաշիվների կամ այլ սերվեռային տվյալների կողքին։ Դրանով հանդերձ՝ այս մոդելը չի խոստանում՝ ցանկացած համակարգի անսարքությունը բացարձակ անվտանգ է։ Նրա նպատակն է հենց այս՝ ապահովել, որ համապարփակ բանալին բացակայի հաճախորդային պահեստից։
Օդային իրավիճակ՝ մեկ հաշիվ iPhone և Android համար
Ներկայացնենք հավելված, որը ունի տեղային պաշտպանված տվյալներ։ Դա կարող է լինել ակտիվատոր, կազմակերպական այլ հավելված կամ ցանկացած ծառայություն, որը անհրաժեշտ է աշխատել՝ կոդավորված տվյալների հետ սարքում։
iPhone-ում՝ տեղական բանալին պաշտպանում է iOS-ի միջոցներով։ Android-ում՝ ինքնուրույն պաշտպանական մեխանիզմով։ Ներքին սարքի բանալիները տարբեր են, և սա բնական է։
Եթե հարկ է լինում՝ հավելանյութ՝ կիսելու տվյալները՝ կիսելու համար, կամ կրկնօրինակել այն սերվերի վրա, դա էլ մեկ այլ մոդել է։
KeyMeld-ը թույլ է տալիս հրաժարվել տեղական բանալիները փոխանցելու և սերվերում պահելուց՝ ավելացնելով ընդհանուր համապարփակ բանալի։
iPhone-ի հաճախորդն ու Android-ի հաճախորդը կերկարացնեն ընդհանուր համապարփակ բանալի՝ միևնույն նախագծի և հաշվի շրջանակներում։ Ըստ որում, յուրաքանչյուրը շարունակում է օգտագործել իրենց սեփական պաշտպանիչ միջոցները։
Սա երևույթ է, որը հաճախորդին դառնում է մեկ հաշիվ միաժամանակ երկու սարքերում։ Ինքը չի պետք՝ իմանալ, թե ինչ մեխանիզմ է գործում iPhone-ում և Android-ում։
Սակայն փոխատեղում՝ նոր սարք տեղափոխել՝ տեղական բանալին արտահանել կամ պարբերականորեն կրկնօրինակել սերվերին՝ անհրաժեշտ չէ։ Նոր հաճախորդը միանում է նույն նախագծին և ստանում է նույն համապարփակ բանալին։
Սերվերն ապահովում է հարցման ավատորությունը, բայց համապարփակ բանալին արվում է միայն թույլտվասեր հաճախորդի համար՝ առանց պահելու դյանիայի միջուրի մեջ։
KeyMeld-ը իրեն չի փոխարինում հավելվածի բեկենը կամ մուտքագրման համակարգը։ Նրա գործառույթը գալիս է՝ տրամադրել հաճախորդին այն բանալին, որը անհրաժեշտ է պաշտպանված տվյալների հետ աշխատելու համար։ Տեղական պահուստը և դրա թարմացումները պատասխանատվություն են՝ հավելվածի։
Երեք տարբեր բանալի և գաղտնաբառեր
Կան տարբեր ուղիներ՝ հասկանալու ճարտարապետության տարբեր մասնիկները։ Դրանք են՝
Տեղական սարքի բանալին՝ պատկանում է կոնկրետ սարքին և ապահովվում է iOS կամ Android միջոցներով։
Համապարփակ կամ ընդհանուր բանալին՝ օգտագործվում է նույն նախագծի և հաշվի լիիրավ հաճախորդների կողմից։ Սա կապում է տարբեր պլատֆորմները բովանդակային մակարդակում։
Անվտանգության գաղտնաբառը՝ պահանջվում է սերվերի համար՝ ապահովելու հետաքննում և վստահելի փոխանցում՝ KeyMeld-ին։ Դա չի փոխանցվում շարժական հավելվածին կամ բրաուզերին։
Սա տարբեր նպատակներ են կատարում։ Zero Vault ճարտարապետությունում համապարփակ բանալին չի պահվում՝ սերվերի տվյալների կողքին։
KeyMeld-ին անհրաժեշտ չէ օգտվողի անուն, պարოლი, TOTP պահեստի կամ բիզնես-հուշագրերի բովանդակությունը։ Ծառայությունը կարիք ունի նախագծի, հաշվի և հաճախորդի իրավունքների կապը՝ ստանալու համապարփակ բանալի։
Հասանելիությունը՝ վերահսկելի է
Համապարփակ բանալին ստանալու իրավունքը չի հանդիսանում ցանկացած հաճախորդի անսահմանափակ իրավունք։
Եթե սարքը դառնում է անվստահ, հաշիվը փոխվում է, կամ թիմն ընդհատում է օգտագործողին՝ հասանելիություն՝ KeyMeld-ը կարող է դադարեցնել մշտական տրամադրման ձևապայմանները։
Այստեղ կարևոր է նշել՝ դա չի նշանակում վստահված տեղական կրկնօրինակի արագ բացառում։ Խոսք է գնում՝ ստանալու շղթայի վերահսկողության կամ նոր հաճախորդներին միացնելու մասին։
Ճիշտ է, սա չի նշանակում՝ պահել տեղական բանալին, կամ ամբողջապես վերացնել անվտանգության մեխանիզմներին։ Այն նախատեսված է՝ վերահսկելու՝ հանվե՞լ է տվյալ խնդրով բանալին։ Սա է՝ անվտանգության վերահսկում։
Հայցվող օգտվողին առավել պարզ է հասկանալ՝ նոր սարքերի միացում և դրանց շարունակական հասանելիության վերահսկողություն՝ մի համակարգից։
Մշակողի համար՝ նման տրամաբանականության ստեղծումը տարբեր պլատֆորմների համար չի պահանջում նորից։ Բայց վերջնական Zero Vault մոդելը կախված է նրանից՝ կա՞ նախագծի մոտ համապարփակ բանալին և կա՞՝ բաժանում՝ սեփական միջավայրի և արտաքին SaaS-տարածքների միջև։
Ինչ չի անում KeyMeld
KeyMeld-ը չիկառավարում գաղտնաբառերը և չի պահպանում օգտատերերի TOTP գրառումները։ Այս ծառայությունը չի դառնում հավելվածի ամպային տվյալների բազան կամ փոխարինում սինխրոնիզացիան։
Այն չի փոխարինում Apple Keychain կամ Android Keystore։ Ծառայությունն պահպանում է տեղական պլատֆորմային մեխանիզմները և ավելացնում ընդհանուր մակարդակ՝ նախագծի համար։
Դա չի փոխարինում նաև օգտատերի նույնականացման համակարգը։ ՕԳՆՈՒՄ կարող է լինել՝ MeldID-ով, իսկ KeyMeld-ը որոշում է՝ տրամադրել՝ ամբողջական համապարփակ բանալին, առանց պահելու՝ տվյալ պրոդուկտի բեկենում։
Եվ վերջապես՝ KeyMeld-ը չի ավտոմատացնում Zero Vault-ը։ Այն ընդամենը տրամադրում է նախագծին արտաքին համապարփակ բանալի տարածք։ Այս ճարտարապետությունը պահպանելու համար՝ ծրագրավորողը չպետք է դնի այդ համապարփակ բանալին իր սերվերային բազայում։ Անվտանգ ենթակառուցվածքները պետք է ձրիhouden բաժանված։
Վլայերը՝ ով պետք է մտածի
Այդ մոտեցումը հետաքրքիր է հավելվածների համար, որոնք աշխատում են միաժամանակ մի քանի պլատֆորմի վրա և ունեն տեղական պաշտպանված տվյալներ։
Այն կարող է լինել ակտիվատորներ, կազմակերպական ծրագրեր, SaaS-պրոդուկטים, բազմամիշտ վերապատրաստվող ծառայություններ՝ երկու iPhone և Android-ի համար։
Մշակողի համար սա կարևոր է ոչ միայն պլատֆորմային տրամաբանությունը իջեցնել։ Անհրաժեշտ է պատասխանատվության բաժանում։ Պրոդուկտային բեկեն պահում է իր տվյալները, իսկ KeyMeld-ը՝ որպես արտաքին SaaS ծառայություն՝ տրամադրում և կառավարում է համապարփակ բանալին։
Հետազոտության հետո ես կասեի՝ KeyMeld-ը ոչ թե պատրաստ է Zero Vault լինել, այլ՝ գործիք, որը կարող է երթևեկել՝ այս մոդելը կառուցելու համար սեփական արտադրանքի համար։
iOS-ն ու Android-ը շարունակում են օգտագործել իրենց պաշտպանական մեխանիզմները։ Հաճախորդները ստանում են ընդհանուր համապարփակ բանալի։ Իսկ պրոդուկտը, եթե այն չի պահում այս բանալին սերվերին և պահպանում է սեփական ենթակառուցվածքն ու արտաքին SaaS-թեսթերների բաժանումը, չի դառնում բանալու պահեստ։
Հաճախորդի համար սա նշանակում է՝ նույնանման մուտք դեպի տարբեր պլատֆորմներ։ Մշակողի համար՝ հնարավորություն տեղափոխել համապարփակ բանալին իր բեկենի ետևից։ Իսկ ընդհանուր՝ Zero Vault ճարտարապետությունը, որտեղ սերվերը չի պահում հաճախորդի պաշտպանված տվյալներից բանալի։
Նաև ավել պատմություն՝ KeyMeld