ٹیکنالوجی
KeyMeld: آئی فون اور اینڈرائیڈ کے لیے مشترکہ کلید اور پروجیکٹ کے لیے زیرو وولٹ کی آرکٹیکچر
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 ایک علیحدہ SaaS سروس کے طور پر کام کرتا ہے۔ اسے ایپ کے بیک اینڈ کے اندر انسٹال نہیں کیا جاتا، اور اسے پروجیکٹ کے ڈیٹا بیس کے قریب ایک اضافی سافٹ ویئر کے طور پر نہیں رکھا جاتا۔ یونیورسل کلید کو ایک علیحدہ SaaS کنٹور میں خدمات فراہم کی جاتی ہے، جو پروڈکٹ کے بیک اینڈ سے باہر ہوتا ہے۔
اس ماڈل کو برقرار رکھنے کے لیے، پروجیکٹ اور KeyMeld کے درمیان اعتماد کی سرحدیں خود مختار رہنی چاہئیں۔ بیک اینڈ کے پاس اور خارجی سروس کے پاس مختلف شناختی تفصیلات، رسائی حقوق اور انتظامی نظام ہونے چاہئیں۔
یہی اس آرکٹیکچر میں Zero Vault کا تصور ہے: اس کے سرور بیس کلائنٹ کے محفوظ کنٹینر سے کلید نہیں رکھتا۔
Zero Vault کا مطلب یہ نہیں کہ پروڈکٹ کا بیک اینڈ بالکل کچھ نہیں رکھتا۔ اس میں اکاؤنٹس، ترتیبات، بزنس ڈیٹا اور ایپ کے لیے ضروری دیگر معلومات شامل رہتی ہے۔ لیکن، اس کے ساتھ یونیورسل کلید موجود نہیں ہوتی۔
سرور بیس کا متاثر ہونا، خود ہی، یونیورسل کلید کو ظاہر نہیں کرتا: یہ اکاؤنٹس اور دیگر سرور ڈیٹا کے ساتھ محفوظ نہیں رہتی۔ اس ماڈل کا مقصد خاص طور پر یہ ہے کہ کلائنٹ کے محفوظ کنٹینر سے یونیورسل کلید کو پروڈکٹ کے ڈیٹا بیس سے ہٹایا جا سکے۔
زندہ عملی منظر: ایک ہی اکاؤنٹ iPhone اور Android پر
فرض کریں، ایک ایپ ہے جس میں مقامی محفوظ شدہ ڈیٹا ہے۔ یہ کسی اینٹریفیکٹر، کارپوریٹ کلائنٹ یا کوئی بھی سروس ہو سکتی ہے جسے براہ راست آلے پر انکرپٹ شدہ معلومات سے کام کرنے کی ضرورت ہے۔
iPhone پر، ایپ مقامی کلید کو iOS کے ذریعے محفوظ کرتی ہے۔ Android کے لیے، Android کے خود کے تحفظ کے طریقہ کار استعمال ہوتے ہیں۔ اندرونی کلیدیں مختلف ہوتی ہیں، اور یہ نارمل ہے۔
اگر کوئی علیحدہ، مشترکہ پرت نہ ہو تو، ڈویلپر کو یہ سب کچھ منظم کرنے کے لیے ایک حل تیار کرنا پڑتا۔ پلیٹ فارم کے خاص تحفظ کے نظام کے اندر، کلیدیں الگ الگ رہتی ہیں، اور ایپ کو خود انہیں مربوط کرنا ہوتا ہے۔
وہ عارضی طور پر iOS اور Android کے لیے علیحدہ اسکیمیں بنا سکتے ہیں، مقامی کلیدوں کو دستی طور پر منتقل کرنے یا server پر کاپی رکھنے کی کوشش کر سکتے ہیں۔
KeyMeld اس مشکل کا حل فراہم کرتا ہے، مقامی کلیدوں کو منتقل کرنے یا ان کی کاپیاں رکھنے سے انکار کرتا ہے، اور ایک مشترکہ یونیورسل کلید شامل کرتا ہے۔
کلا ئنٹ iPhone کا اور Android کا ایک ہی یونیورسل کلید تک رسائی حاصل کرتا ہے، اور یہ سب ایک مصدقہ پروجیکٹ اور اکاؤنٹ کے تحت ہوتا ہے۔ ہر فون اپنی حفاظت کا طریقہ کار جوں کا توں رکھتے ہوئے۔
یہ ایک واحد اکاؤنٹ کی طرح دکھائی دیتا ہے، جو مختلف آلہ جات پر کام کرتا ہے۔ صارف کو یہ نہیں معلوم ہوتا کہ iPhone کے اندر کونسا طریقہ کار استعمال ہوتا ہے اور Android پر کونسی سیکیورٹی ہے۔
جب فون بدلتا ہے، تو مقامی کلید کو بیرونی سے برآمد کرنے یا محفوظ ذخیرہ کی نئی شکل بنانے کی ضرورت نہیں ہے۔ نیا کلائنٹ اسی پروجیکٹ سے جُڑتا ہے اور اسی یونیورسل کلید کا استعمال کرتا ہے۔
بیک اینڈ درخواست کی تصدیق میں حصہ لیتا ہے، لیکن یونیورسل کلید صارف کے مجاز کلائنٹ کے لیے مخصوص ہوتی ہے، اور اسے پروڈکٹ کے سرور بیس میں محفوظ نہیں کیا جاتا۔
KeyMeld کا اصل کام، ایپ کے ڈیٹا اسٹور کو منتقل کرنا یا صارف کے ریکارڈز کی ہم آہنگی کرنا نہیں ہے۔ یہ صرف یہ فراہم کرتا ہے کہ کلائنٹ کو وہ کلید دی جائے جو محفوظ ڈیٹا کے کام کے لیے ضروری ہو۔ اسٹوریج کا مواد اور اس کی تازہ کاری خود پروڈکٹ کی ذمہ داری ہے۔
تین قسم کے مختلف کلیدیں اور سیکریٹس
آرکٹیکچر کے مختلف حصوں کو سمجھنے کے لیے، تین اصطلاحات سے واقف ہونا کافی ہے۔
مقامی کلید مخصوص فون سے تعلق رکھتی ہے اور iOS یا Android کے ذریعے محفوظ کی جاتی ہے۔
یونیورسل کلید ایک پروجیکٹ اور اکاؤنٹ کے مجاز کلائنٹس استعمال کرتے ہیں، اور یہ پروڈکٹ کی سطح پر مختلف پلیٹ فارمز کو جوڑتی ہے۔
مخفیہ، سروس سیکریٹ، جو بیک اینڈ کو KeyMeld کے محفوظ تعامل کے لیے درکار ہوتا ہے۔ یہ موبائل ایپ یا براؤزر کو منتقل نہیں کیا جاتا۔
سیکریٹ اور یونیورسل کلید مختلف کام انجام دیتے ہیں۔ Zero Vault آرکٹیکچر میں، یونیورسل کلید کو پروڈکٹ کے ڈیٹا بیس میں بطور سیکریٹ محفوظ نہیں کیا جاتا۔
KeyMeld کے کام کے لیے، کسی شخص کا نام، اس کا پاس ورڈ، TOTP اسٹورج یا ریکارڈز کا کاروباری مفہوم ضروری نہیں۔ سروس کو صرف تین چیزوں کی ضرورت ہوتی ہے: پروجیکٹ، اکاؤنٹ اور کلائنٹ کو یونیورسل کلید حاصل کرنے کا حق۔
رسائی کا کنٹرول برقرار رہتا ہے
یونیورسل کلید کا وصول کرنا کسی بھی کلائنٹ کا غیرمشروط حق نہیں ہے۔
اگر آلہ اس قابلِ اعتماد نہ رہے یا، اکاؤنٹ کی حالت بدل جائے یا، اجازت واپس لی جائے، تو KeyMeld اس کلائنٹ کو مزید یونیورسل کلید کی فراہمی روک سکتا ہے۔
یہاں بہت زیادہ اندازہ لگانے سے پرہیز کریں۔ اس کا مطلب یہ نہیں کہ پہلے سے موجود مقامی کلید کو خود بخود حذف کر دیا جائے۔ یہ زیادہ تر کنٹرول کرنے کے بارے میں ہے کہ کون کون سے کلائنٹس کلید حاصل کر سکتے ہیں اور کون اسے استعمال کر سکتا ہے۔
صارف کے لیے، یہ ایک واحد نظام ہے جس میں نئے آلات شامل کرنا اور ان کے رسائی کو کنٹرول کرنا ممکن ہے۔
ڈویلپر کے لیے، یہ لوجک خود سے iOS اور Android دونوں کے لیے بنانا ضروری نہیں۔ پھر بھی، Zero Vault کا اصل ماڈل اس بات پر منحصر ہے کہ پروجیکٹ یونیورسل کلید اپنے پاس رکھتا ہے یا نہیں، اور کہ کیا اس کی اپنی انفراسٹرکچر اور بیرونی SaaS کنٹور کے درمیان تفریق برقرار ہے یا نہیں۔
KeyMeld کیا نہیں کرتا
KeyMeld پاس ورڈ مینیجر نہیں ہے، اور یہ صارفین کے TOTP ریکارڈز کو محفوظ نہیں کرتا۔ یہ ایپلیکیشن کا کلاؤڈ بیسڈ ڈیٹا بیس بھی نہیں ہے اور اس کی تیاری کے لیے اس کے مواد کی ہم آہنگی کو بدلتا بھی نہیں۔
یہ Apple Keychain یا Android Keystore کا متبادل نہیں ہے۔ سروس مقامی پلیٹ فارم کے نظاموں کو اپنی جگہ رکھنے دیتی ہے اور ایک مشترکہ سطح فراہم کرتی ہے۔
یہی نہیں، بلکہ یہ شناخت کا ایک لازمی ذریعہ بھی نہیں ہے۔ صارف کی شناخت اور تصدیق کے لیے کوئی علیحدہ سروس ہو سکتی ہے، جیسے MeldID، جبکہ KeyMeld کا ہدف ہے کہ مجاز کلائنٹ کو ایک واحد، یونیورسل کلید فراہم کرے، بغیر اسے پروڈکٹ کے بیک اینڈ میں رکھے۔
آخری بات، KeyMeld Zero Vault کو خود بخود نہیں بناتا۔ یہ پروجیکٹ کو خارجی کنٹور فراہم کرتا ہے، جو یونیورسل کلید کا ماڈل ہے۔ تاکہ اس آرکٹیکچر کو برقرار رکھا جائے، ڈویلپر کو اپنی سرور بیس میں یونیورسل کلید نہیں رکھنی چاہیے اور اپنی انفراسٹرکچر سے اور بیرونی SaaS کے درمیان حد بندی برقرار رکھنی چاہیے۔
یہ کس کے لیے مفید ہوسکتا ہے
ایسے ایپلیکیشنز کے لیے جو بیک وقت کئی پلیٹ فارمز پر کام کرتی ہیں اور مقامی محفوظ ڈیٹا استعمال کرتی ہیں، یہ مفید ہے۔
یہ ہوسکتا ہے، توثیق فراہم کرنے والے، کارپوریٹ ایپلیکیشنز، SaaS پروڈکٹس، متعدد آلات کے ساتھ خدمات، اور کوئی بھی منصوبہ جہاں ایک ہی اکاؤنٹ کو iPhone اور Android دونوں پر ایک جیسا کام کرنا ہو۔
ڈویلپر کے لیے، سب سے اہم چیز پلیٹ فارم کی متعلقہ منطق کو کم کرنا نہیں بلکہ ذمہ داریوں کو تقسیم کرنا ہے۔ پروڈکٹ کا بیک اینڈ اپنے ڈیٹا کو رکھتا ہے، اور KeyMeld ایک بیرونی SaaS سروس کے طور پر یونیورسل کلید فراہم کرتا ہے اور اس کی مکمل کنٹرول کو سنبھالتا ہے۔
پروجیکٹ سے واقف ہونے کے بعد، میں اسے Zero Vault کے طور پر مکمل حل کے طور پر نہیں، بلکہ ایک اوزار کے طور پر دیکھتا ہوں، جس سے ڈویلپر اپنی پروڈکٹ کے لیے ایسی ماڈل بنا سکتا ہے۔
iOS اور Android اب بھی اپنی سیکیورٹی کے طریقہ کار استعمال کرتے ہیں۔ کلائنٹ کو ایک مشترکہ یونیورسل کلید ملتی ہے۔ اور اگر بیک اینڈ اسے اپنے پاس نہ رکھے اور اپنی انفراسٹرکچر اور KeyMeld کے درمیان فرق کو برقرار رکھے، تو اس سے کلائنٹ اسٹوریج کا کلید کا لاکر بننا ثابت نہیں ہوتا۔
یہ صارف کو مختلف پلیٹ فارمز پر ایک سی کل رسائی کا مطلب دیتا ہے۔ اور ڈویلپر کو، اپنے بیک اینڈ سے یونیورسل کلید نکالنے کا موقع۔ اور پورے پروجیکٹ کے لیے، Zero Vault آرکٹیکچر، جس میں ایپ سرور کلائنٹ کے محفوظ ڈیٹا کے کلید کو نہیں رکھتا۔
پروجیکٹ کے بارے میں مزید: KeyMeld