เทคโนโลยี
KeyMeld: আইফোন এবং অ্যান্ড্রয়েডের জন্য সাধারণ কী এবং প্রকল্পের জন্য Zero Vault আর্কিটেকচার
KeyMeld নিজে থেকে Zero Vault নয়। এটি একটি স্বতন্ত্র SaaS পরিষেবা, যা ডেভেলপারকে মূল পরিষেবার বাইরেথেকে সাধারণ কী বের করে আনতে, iOS ও Android ক্লায়েন্টগুলিকে একত্রিত করতে এবং Zero Vault মডেলে নিজস্ব অ্যাপ্লিকেশনের জন্য আর্কিটেকচার তৈরি করতে সহায়তা করে।
ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশনের একটি সাধারণ সমস্যা রয়েছে, যা সাধারণত ব্যবহারকারী লক্ষ্য করে না। স্ক্রিনে তিনি একাউন্ট দেখে থাকেন এবং প্রত্যাশা করেন যে যেকোনো ডিভাইসের উপর সমানভাবে কাজ করবে। তবে iPhone এবং Android ভেতর থেকে বিভিন্ন সুরক্ষা ব্যবস্থা ব্যবহার করে এবং স্থানীয় কী-র সাথে বিভিন্নভাবে কাজ করে।
iPhone অ্যাপে অ্যাপ্লিকেশনটি স্থানীয় কীটি অ্যাপলের Keychain-এর মাধ্যমে সুরক্ষা দিতে পারে। Android-এ এর জন্য Android Keystore ব্যবহার করা হয়। এই প্রযুক্তিগুলি লক্ষ্য করে যে সংবেদনশীল কীগুলো ডিভাইসের সুরক্ষিত পরিবেশে থাকুক, তবে তারা পারস্পরিক স্থানান্তরে পুনর্ব্যবহারযোগ্য নয়।
ব্যবহারকারীর জন্য এটার কোনও গুরুত্ব নেই। তিনি শুধু চান যে, iPhone এ অ্যাপ ওপেন করুন, তারপর সেটি Android-এ ইনস্টল করুন এবং একই সুরক্ষিত ডেটার সাথে কাজ চালিয়ে যান।
ডেভেলপার এখানে একটি আর্কিটেকচারাল প্রশ্নের সম্মুখীন হন: কীভাবে উভয় প্ল্যাটফর্মে সাধারণ অ্যাক্সেস সংগঠিত করবেন, স্থানীয় ডিভাইসের কী-গুলো স্থানান্তর না করে এবং তাদের অনুলিপি নিজস্ব ব্যাকএন্ডে না রেখে?
KeyMeld-এ খুঁজে পেয়ে আমি দেখেছি যে, এই জন্য এটি একটি স্বতন্ত্র সাধারণ কী প্রস্তাব করে, যা iOS এবং Android এর অভ্যন্তরীণ সুরক্ষা ব্যবস্থা হস্তক্ষেপ করে না।
বিভিন্ন প্ল্যাটফর্মের জন্য সাধারণ কী
স্থানীয় ডিভাইসের কীটি নির্দিষ্ট মোবাইলের সাথে সম্পর্কিত এবং সংশ্লিষ্ট অপারেটিং সিস্টেমের মাধ্যমে সুরক্ষিত। এটি নির্দিষ্ট ডিভাইসের সুরক্ষিত পরিবেশে থাকে এবং স্বাধীনভাবে অন্যান্য ডিভাইসে ট্রান্সফার করার জন্য পরিকল্পিত নয়।
KeyMeld-এর ইউনিভার্সাল কী অন্য বিষয়। এটি নির্দিষ্ট প্রকল্প, অ্যাকাউন্ট এবং সুরক্ষিত পরিবেশের জন্য তৈরি করা হয় এবং বিভিন্ন প্ল্যাটফর্মে স্বীকৃত ক্লায়েন্টগুলির জন্য সাধারণ হয়ে যায়।
সেবা iPhone-এ কীটি কেটে নেয় না, Android-এ স্থানান্তর করে না এবং দুইটি আলাদা কীকে এক করে না। প্ল্যাটফর্মের সুরক্ষা অখণ্ড থাকে, এবং অ্যাপ্লিকেশনটি তার প্রকল্পের জন্য সাধারণ স্তরের অ্যাক্সেস পায়।
এটাই KeyMeld-এর আর্কিটেকচারাল ভূমিকা নির্ধারণ করে। এটি iOS এবং Android-কে সমান করে না এবং তাদের অভ্যন্তরীণ প্রক্রিয়া প্রতিস্থাপন করে না। এটি সাধারণ স্তরের জন্য ইউনিভার্সাল কী-র সাথে কাজের স্তর যোগ করে, যার মাধ্যমে প্রকল্পটি নিজে-মধ্যস্থতা পরিচালনা করার প্রয়োজন হয় না।
বিভিন্ন পণ্য ও অ্যাকাউন্টের জন্য স্বাধীন কী-চক্র তৈরি হয়। ফলে প্রতিটি প্রকল্প নিজস্ব অ্যাক্সেস ক্ষেত্র বজায় রাখে, এবং একটি ডিভাইসের একাধিক অ্যাকাউন্ট বিভক্ত থাকে।
Zero Vault প্রকল্পের মালিকানা
প্রথমত নির্দিষ্ট করে নেওয়া দরকার: Zero Vault কোনো নাম নয়, এটি একটি আর্কিটেকচারাল মডেল, যা সংযুক্ত প্রোডাক্টটি তৈরি করতে পারে।
KeyMeld একটি পৃথক SaaS-সার্ভিস হিসেবে কাজ করে। এটি অ্যাপের ব্যাকএন্ড-এর মধ্যে ইনস্টল করে না, এবং প্রকল্পের ডাটাবেসের পাশে অন্য কোনও সফটওয়্যার মোডিউল হিসেবেও স্থাপন করে না। ইউনিভার্সাল কীটি একটি আলাদা SaaS অবকাঠামোর মধ্যে পরিচালিত হয়, প্রকল্পের নিজস্ব ব্যাকএন্ডের বাইরে।
এমন মডেল কার্যকর রাখতে, প্রকল্প ও KeyMeld এর মধ্যে বিশ্বাসের সীমা স্বতন্ত্র রাখতে হবে। প্ল্যাটফর্মের ব্যাকএন্ড এবং বাহ্যিক পরিষেবার জন্য আলাদা অ্যাকাউন্ট, অনুমতি এবং প্রশাসনিক নিয়মাবলী থাকতে হবে।
এই আর্কিটেকচারে ফলস্বরূপ, এটি Zero Vault মডেল হিসেবে চিহ্নিত করা যেতে পারে: এর সার্ভার বেসটি ক্লায়েন্টের সুরক্ষিত গ opslag সঞ্চয় থেকে কীটির কোনও সংরক্ষণ করে না।
Zero Vault মানে এই নয় যে, প্রডাক্টের ব্যাকএন্ড কিছুই রাখে না। এর অ্যাকাউন্ট, সেটিংস, ব্যবসায়িক ডেটা এবং অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় সবকিছু থাকে। তবে ইউনিভার্সাল কীটি তাদের পাশে থাকে না।
সার্ভার-প্রযুক্তির ক্ষতি কেবলমাত্র মূল কীটি প্রকাশ করে না: এটি অ্যাকাউন্টগুলির সাথে বা অন্যান্য সার্ভার ডেটার সাথে সংরক্ষিত হয় না। একই সাথে, এই মডেলটি স্বয়ংক্রিয়ভাবে প্রত্যেকটি সম্ভাব্য বিভ্রাটের জন্য নিরাপদ নয়, তবে এটি নির্দিষ্ট কাজের সমাধান করে — মূল কীটিকে ক্লায়েন্টের গোপন গ opslag থেকে সরিয়ে রাখে।
একটি জীবন্ত পরিস্থিতি: এক অ্যাকাউন্ট আইফোন ও অ্যান্ড্রয়েডে
ধরি, একটি অ্যাপ্লিকেশন রয়েছে যেখানে স্থানীয় সুরক্ষিত ডেটা রয়েছে। এটা হতে পারে একটি অথেনটিকেটর, কর্পোরেট ক্লায়েন্ট বা কেবল সেই সেবা, যা সরাসরি ডিভাইসে এन्क্রিপ্টেড তথ্যের সাথে কাজ করতে চায়।
iPhone-এ অ্যাপ টি iOS-এর মাধ্যমে স্থানীয় কীটি সুরক্ষিত করে। Android-এ নিজের সুরক্ষা ব্যবস্থা ব্যবহার করে। অভ্যন্তরীণ কী গুলো আলাদা, এবং এটি স্বাভাবিক।
অন্যথায়, ডেভেলপারকে ব্রিজিং হাব বা সমান অ্যাক্সেসের জন্য পৃথক স্কিম তৈরি করতে হবে, মানে মূল কী কপি বা পরস্পরের সাথে সংযোগের জন্য আলাদা ব্যবস্থা তৈরি করতে হবে।
KeyMeld এই সমস্যার সমাধান করে, স্থানীয় কী ট্রান্সফার বা সার্ভারে সংরক্ষণ বাদ দিয়ে, একটি সাধারণ ইউনিভার্সাল কী যোগ করে।
iPhone ক্লায়েন্ট এবং অ্যান্ড্রয়েড ক্লায়েন্ট একই প্রকল্পের অধীনে, একই ইউনিভার্সাল কী-র অ্যাক্সেস পায়। সুতরাং, প্রতিটি ফোন নিজের সুরক্ষা ব্যবস্থা চালিয়ে যায়।
ব্যবহারকারীর দেখার মতো, এটা একই অ্যাকাউন্ট যেখানে বিভিন্ন ডিভাইসের মাধ্যমে অ্যাক্সেস করা হয়। সর্বোপরি, তাকে কোনটি iPhone এর ভিতর কাজ করে এবং কোনটি Android সেট তা জানা দরকার নেই।
ফোন পরিবর্তন করলে, নিজে থেকে স্থানীয় কী এক্সপোর্ট করা বা নতুন প্ল্যাটফর্মের জন্য পৃথক অ্যাকাউন্ট তৈরি করার প্রয়োজন হয় না। নতুন ক্লায়েন্ট একই প্রকল্পে যোগ দেয় এবং একই ইউনিভার্সাল কী-র অ্যাক্সেস পায়।
ব্যাকএন্ড অনুরোধের স্বীকৃতি দেয়, তবে একটি ইউনিভার্সাল কী শুধুমাত্র অনুমোদিত ক্লায়েন্টের জন্য। এটি মূল অ্যাপ্লিকেশনের সার্ভার ডাটাবেসে সংরক্ষিত হয় না।
KeyMeld নিজে অ্যাপ্লিকেশনের ডেটাবেস ট্রান্সফার বা ব্যবহারকারীর রেকর্ড সমন্বয় প্রতিস্থাপন করে না। এর কাজ নির্দিষ্ট: ক্লায়েন্টকে মূল ডেটার অ্যাক্সেসের জন্য একটি কী সরবরাহ করা। গ opslag এর বিষয়বস্তু এবং আপডেটিং এর দায়িত্ব অ্যাপ্লিকেশনের নিজস্ব।
তিন ধরণের কী ও গোপন তথ্য
আর্কিটেকচারের বিভিন্ন অংশকে বিভ্রান্ত না করার জন্য তিনটি ধারণা আলাদা করে বোঝা যায়।
স্থানীয় ডিভাইসের কী নির্দিষ্ট মোবাইলের সাথে সম্পর্কিত, iOS বা Android প্রযুক্তি দ্বারা পরিচালিত।
ইউনিভার্সাল কী এক প্রকল্প ও অ্যাকাউন্টের অনুমোদিত ক্লায়েন্টরা ব্যবহৃত। এটি প্রকল্পের স্তরে বিভিন্ন প্ল্যাটফর্মকে সংযুক্ত করে।
সার্ভিস গোপন তথ্য ব্যাকএন্ডের জন্য, যাতে KeyMeld এর সঙ্গে সুরক্ষিত যোগাযোগ হয়। এটি মোবাইল অ্যাপ বা ব্রাউজারে পাঠানো হয় না।
সার্ভিস গোপন এবং ইউনিভার্সাল কী আলাদা কাজ করে। Zero Vault আর্কিটেকচারে, ইউনিভার্সাল কী প্রোডাক্টের ডাটাবেসে সংরক্ষিত হয় না।
KeyMeld কাজের জন্য, ব্যক্তির নাম, পাসওয়ার্ড, TOTP গোপনীয়তা বা ব্যবসায়িক রেকর্ডের আকার প্রয়োজন হয় না। সার্ভিসের জন্য প্রজেক্ট, অ্যাকাউন্ট এবং ক্লায়েন্টের অ্যাক্সেস অনুমতি গুরুত্বপূর্ণ।
অ্যাক্সেস নিয়ন্ত্রণের নিয়ন্ত্রণে রাখা
ইউনিভার্সাল কী পাওয়ার অধিকার সকল ক্লায়েন্টের কাছে থাকা উচিত নয়।
যদি ডিভাইসটি বিশ্বাসযোগ্য না থাকে বা অ্যাকাউন্টের অবস্থা পরিবর্তিত হয় বা টিম অ্যাক্সেস প্রত্যাহার করে, KeyMeld এই ক্লায়েন্টের জন্য ইউনিভার্সাল কী প্রদান বন্ধ করতে পারে।
এখানে অতিরিক্ত মানে না করা উচিত। এতে স্বয়ংক্রিয়ভাবে পূর্বে ডিভাইসের স্থানীয় কী মুছে দেওয়া বা নতুন প্ল্যাটফর্মের জন্য পৃথক সুরক্ষিত গ opslag তৈরি করা বোঝানো নয়। মূল উদ্দেশ্য হলো, কী বিজ্ঞপ্তি পেতে থাকা ও নতুন ক্লায়েন্ট যোগ দেওয়ার নিয়ন্ত্রণ।
ব্যবহারকারীর জন্য, এটি বোঝায় যে, নতুন ডিভাইস সংযোগ এবং তাদের অ্যাক্সেস নিয়ন্ত্রণ একই নিয়ন্ত্রণের অধীনে।
ডেভেলপার জন্য, এর অর্থ হলো, এই লজিক আলাদাভাবে iOS ও Android এর জন্য তৈরি করতে হয় না। তবে চূড়ান্ত Zero Vault মডেল নির্ভর করে, প্রকল্পটি কি ইউনিভার্সাল কী সংরক্ষণ করে এবং নিজেদের অবকাঠামো ও বাহ্যিক SaaS কন্টুর মধ্যে বিভাজন রাখে কি না।
KeyMeld কি করে না
KeyMeld পাসওয়ার্ড ম্যানেজার নয় এবং এটি ব্যবহারকারীর TOTP রেকর্ড সংরক্ষণ করে না। এটি অ্যাপ্লিকেশনের ক্লাউড ডেটাবেস নয় এবং তার তথ্য সমন্বয় প্রতিস্থাপন করে না।
Apple Keychain বা Android Keystore এর বিকল্প নয়। এই সার্ভিস মূল প্ল্যাটফর্মের স্থানীয় প্রক্রিয়াগুলি রাখে এবং একটি সাধারণ স্তর যোগ করে।
এটি স্বয়ংক্রিয়ভাবে ব্যবহারকারীর পরিচয় সনাক্তকরণ সার্ভিসও নয়। আলাদাভাবে MeldID এর মতো কোনও সার্ভিস দ্বারা ব্যবহারকারীর তুলনা ও অনুমোদন করা যেতে পারে। KeyMeld উদ্দেশ্য হলো, অনুমোদিত ক্লায়েন্টকে একটি ইউনিফরম কী প্রদান, যা মূল অ্যাপ্লিকেশনের ব্যাকএন্ডে সংরক্ষিত হয় না।
আর, KeyMeld স্বয়ংক্রিয়ভাবে Zero Vault তৈরি করে না। এটি প্রকল্পকে একটি বাহ্যিক ইউনিভার্সাল কী কন্টুর প্রদান করে। এই আর্কিটেকচারের স্থায়িত্বের জন্য, তৈরি করা উচিত নয় যে আপনি এই ইউনিভার্সাল কী আপনার নিজস্ব সার্ভার বেসে রাখুন। বিশ্বাসের স্বতন্ত্র অঞ্চলগুলোকে আলাদা রাখতে হবে।
এটি কার কাজে লাগতে পারে
এমন অ্যাপসের জন্য, যারা একসাথে একাধিক প্ল্যাটফর্মে কাজ করে এবং স্থানীয় সুরক্ষিত ডেটা ব্যবহার করে।
এগুলো হতে পারে অথেনটিকেটর, কর্পোরেট অ্যাপ, SaaS প্রোডাক্ট, মাল্টি-ডিভাইস সেবা বা যে কোনও প্রকল্প যেখানে একটি অ্যাকাউন্ট আইফোন এবং অ্যান্ড্রয়েডে সমানভাবে কাজ করে।
ডেভেলপারদের জন্য, এর মূল প্রতিপাদ্য কম প্ল্যাটফর্ম-নির্ভর লজিক নয়। বরং, দায়বদ্ধতার বিভাজন গুরুত্বপূর্ণ। প্রোডাক্টের ব্যাকএন্ড নিজের ডেটা রাখে, এবং KeyMeld একটি বাহ্যিক SaaS হিসেবে ইউনিভার্সাল কী সরবরাহ করে এবং এর পরবর্তী বিতরণ পরিচালনা করে।
প্রকল্পের সঙ্গে পরিচিত হয়ে, আমি বলব যে, KeyMeld কে শুধু একটি প্রস্তুত Zero Vault হিসেবে দেখা নয়, বরং এটি এমন একটি টুল যা দিয়ে ডেভেলপাররা নিজেদের প্রোডাক্টের জন্য এই মডেল তৈরি করতে পারেন।
iOS এবং Android-রা তাদের নিজস্ব সুরক্ষা ব্যবস্থা চালিয়ে যায়। ক্লায়েন্টরা একটি সাধারণ ইউনিভার্সাল কী পান। এবং, যদি অ্যাপের ব্যাকএণ্ড নিজে এই কী না রাখে, তবে সেটি ক্লায়েন্টের গোপন গ opslag থেকে কী সংগ্রহের নিরাপদ স্থান না হয়ে যায়।
ব্যবহারকারীর জন্য, এটি মানে বিভিন্ন প্ল্যাটফর্মে একটি একক অ্যাকাউন্ট অ্যাক্সেস। ডেভেলপারদের জন্য, এর অর্থ হলো, সাধারণ কীকে নিজের ব্যাকএন্ডের বাইরে রাখতে পারা। এবং, প্রকল্পের জন্য সম্পূর্ণভাবে, Zero Vault আর্কিটেকচারে, যেখানে সার্ভার অ্যাপ্লিকেশনের মূল কী না রাখে।
প্রকল্পের বিষয়ে আরও: KeyMeld