আজকাল আমাদের মোবাইল ডিভাইসগুলো কার্যত একটি ডায়েরির মতো, যেখানে আমরা সবকিছু সংরক্ষণ করি: ব্যক্তিগত ছবি থেকে শুরু করে আমাদের ক্রেডিট কার্ডের বিবরণ পর্যন্ত। একারণে আমরা নিরাপত্তার বিষয়টি ভাগ্যের উপর ছেড়ে দিতে পারি না। অ্যান্ড্রয়েডে সংবেদনশীল ডেটা সুরক্ষিত করার ক্ষেত্রে, ক্ষতিকারক ব্যক্তিদের আমাদের ক্রিপ্টোগ্রাফিক কী চুরি করা থেকে বিরত রাখার জন্য অ্যান্ড্রয়েড কীস্টোর সিস্টেম একটি প্রধান হাতিয়ার হয়ে ওঠে, যা এটিকে অ্যান্ড্রয়েড নিরাপত্তার একটি মৌলিক স্তম্ভে পরিণত করে ।
মূলত, এই সিস্টেমটি একটি ডিজিটাল সিন্দুকের মতো কাজ করে। ফোনের স্টোরেজে সাধারণ টেক্সট ফাইল হিসেবে কী-গুলো সংরক্ষণ করার পরিবর্তে (যা একটি নিরাপত্তা বিপর্যয় হবে), এটি সেগুলোকে একটি সুরক্ষিত কন্টেইনারে তালাবদ্ধ করে রাখে । সবচেয়ে ভালো ব্যাপার হলো, একবার কী-টি ভেতরে চলে গেলে, আপনি এটি ব্যবহার করে বিভিন্ন জিনিস এনক্রিপ্ট বা সাইন করতে পারবেন, কিন্তু ডিভাইসটি থেকে এটি কখনোই বের করা যাবে না , এমনকি অপারেটিং সিস্টেম হ্যাক হয়ে গেলেও না।
সিস্টেমের কেন্দ্রস্থলে নিরাপত্তা কীভাবে কাজ করে?
কীস্টোর কোনো আপোস না করে দুটি অত্যন্ত সুস্পষ্ট উপায়ে কী ডেটা সুরক্ষিত রাখে। প্রথমত, এটি অ্যাপ্লিকেশন প্রসেস থেকে ডেটা নিষ্কাশন ব্লক করে ডিভাইসের বাইরের কাউকে কী ডেটা চুরি করা থেকে বিরত রাখে । দ্বিতীয়ত, এটি নিশ্চিত করে যে কেউ যদি কোনোভাবে সিস্টেমে অ্যাক্সেস পেয়েও যায়, তারা যেন কী-টি নিজেদের ইচ্ছামতো ব্যবহার করতে না পারে; অ্যাপগুলোকে অবশ্যই অনুমোদিত ব্যবহার নির্ধারণ করতে হবে যা সিস্টেম কঠোরভাবে প্রয়োগ করে।
এই ব্যবস্থাটিকে সত্যিকারের শক্তিশালী করতে, অ্যান্ড্রয়েড হার্ডওয়্যারের উপর নির্ভর করে। মূল ডেটা অ্যাপের প্রসেসের মধ্যে দিয়ে যায় না; যখন কোনো অপারেশন করার প্রয়োজন হয়, তখন ডেটা একটি বিশেষায়িত সিস্টেম প্রসেসে পাঠানো হয় । এছাড়াও, ফোনটি আধুনিক হলে, কী-গুলো ট্রাস্টেড এক্সিকিউশন এনভায়রনমেন্ট (TEE) বা সিকিওর এলিমেন্ট (SE)-এর সাথে সংযুক্ত থাকে। আপনার ডিভাইসে যদি স্ট্রংবক্স (StrongBox) থাকে , তবে নিরাপত্তা পরবর্তী স্তরে পৌঁছে যায়, কারণ এই মডিউলের নিজস্ব সিপিইউ (CPU), সুরক্ষিত স্টোরেজ এবং একটি সত্যিকারের র্যান্ডম নম্বর জেনারেটর রয়েছে, যা এটিকে এমনকি ফিজিক্যাল অ্যাটাকের বিরুদ্ধেও প্রতিরোধী করে তোলে।
কোনো কী সত্যিই হার্ডওয়্যার দ্বারা সুরক্ষিত কিনা তা নির্ধারণ করতে, ডেভেলপাররা অ্যান্ড্রয়েড ১০ এবং তার পরবর্তী সংস্করণগুলিতে `getSecurityLevel()` ব্যবহার করতে পারেন । যদি ফলাফল `TRUSTED_ENVIRONMENT` বা `STRONGBOX` হয় , তবে আমরা নিশ্চিত হতে পারি যে কী-টি মূল প্রসেসর থেকে বিচ্ছিন্ন একটি স্থানে রয়েছে।
প্রবেশাধিকার নিয়ন্ত্রণ এবং ব্যবহারের অনুমোদন
এই সিস্টেমের অন্যতম সেরা একটি বৈশিষ্ট্য হলো, প্রতিটি কী তৈরি করার সময় আপনি সেটির জন্য 'নিয়ম' নির্ধারণ করে দিতে পারেন। এই নিয়মগুলো অপরিবর্তনীয়; একবার সেট করা হলে, সেগুলো আর পরিবর্তন করা যায় না । উদাহরণস্বরূপ, আপনি একটি কী-কে শুধুমাত্র নির্দিষ্ট অ্যালগরিদম , যেমন AES বা RSA, এর সাথে কাজ করার জন্য সীমাবদ্ধ করতে পারেন, অথবা একটি সুনির্দিষ্ট সময়সীমা নির্ধারণ করে দিতে পারেন, যে সময়ের মধ্যে কী-টি বৈধ থাকবে।
কিন্তু সবচেয়ে শক্তিশালী জিনিসটি হল ব্যবহারকারী প্রমাণীকরণআপনি কী-টি এমনভাবে কনফিগার করতে পারেন যাতে এটি কেবল তখনই কাজ করে যখন ব্যবহারকারী সম্প্রতি তার পিন, প্যাটার্ন, বা ব্যবহার করে প্রমাণীকরণ সম্পন্ন করে। বায়োমেট্রিক্স (আঙুলের ছাপ বা মুখমণ্ডল)), এই বিবেচনায় যে 2D বনাম 3D ফেসিয়াল আনলক এটি বিভিন্ন স্তরের সুরক্ষা প্রদান করে। এর দুটি মোড রয়েছে: একটি যা প্রমাণীকরণের পর একটি নির্দিষ্ট সময়ের জন্য সমস্ত কী-কে অনুমোদন দেয়, এবং অন্যটি আরও কঠোর যেখানে প্রতিটি ক্রিপ্টো অপারেশন অবশ্যই পৃথকভাবে অনুমোদিত হতে হবে BiometricPrompt.
কীচেইন বনাম অ্যান্ড্রয়েড কীস্টোর প্রোভাইডার
কখনও কখনও আপনি দ্বিধায় পড়তে পারেন যে কোনটি বেছে নেবেন। যখন আপনার সিস্টেম-ব্যাপী ক্রেডেনশিয়াল প্রয়োজন হয়, তখন কীচেইন এপিআই (KeyChain API) হলো আদর্শ বিকল্প। এক্ষেত্রে, ব্যবহারকারী একটি সিস্টেম ইন্টারফেসের মাধ্যমে বেছে নেন যে তিনি কোন ক্রেডেনশিয়ালগুলো অ্যাপের সাথে শেয়ার করতে চান। মোবাইল ডিভাইসের মালিকের সুস্পষ্ট সম্মতিতে একাধিক অ্যাপ্লিকেশনের মধ্যে ক্রেডেনশিয়াল শেয়ার করার ক্ষেত্রে এটি খুবই কার্যকর।
অন্যদিকে, অ্যান্ড্রয়েড কীস্টোর প্রদানকারী এটি এমনভাবে ডিজাইন করা হয়েছে যাতে প্রতিটি অ্যাপ্লিকেশন ব্যক্তিগতভাবে তার নিজস্ব কীগুলি পরিচালনা করে। যখন আপনি চান তখন এটিই পছন্দের বিকল্প। শুধু আপনার অ্যাপ ব্যবহারকারীকে তালিকা থেকে ম্যানুয়ালি কী নির্বাচন করার প্রয়োজন ছাড়াই তাদের গোপনীয় তথ্যে অ্যাক্সেস দেওয়া হয়। এটি বাস্তবায়ন করতে, স্ট্যান্ডার্ড জাভা ক্লাস ব্যবহার করা হয়, যেমন KeyStore, KeyPairGenerator o KeyGenerator.
প্রযুক্তিগত বাস্তবায়ন: এনক্রিপশন এবং স্বাক্ষর

সিমেট্রিক ডেটা এনক্রিপশনের জন্য AES-GCM হলো সবচেয়ে প্রস্তাবিত পদ্ধতি । এই পদ্ধতিটি কেবল গোপনীয়তাই বজায় রাখে না, বরং এনক্রিপ্ট করা বাইটগুলোর কোনো পরিবর্তন করা হয়েছে কিনা তা শনাক্ত করার মাধ্যমে ডেটার অখণ্ডতাও নিশ্চিত করে। এটি মনে রাখা অত্যন্ত গুরুত্বপূর্ণ যে, প্রতিটি অপারেশন একটি অনন্য ইনিশিয়ালাইজেশন ভেক্টর (IV) তৈরি করে , যা অপারেশনটি বিপরীত করার জন্য এনক্রিপ্ট করা ডেটার সাথে অবশ্যই সংরক্ষণ করতে হবে।
আপনার যদি ডিজিটাল স্বাক্ষরের প্রয়োজন হয়, তবে আরএসএ (RSA ) ব্যবহার করাই সর্বোত্তম উপায় । কীস্টোরের মধ্যে একটি কী পেয়ার (পাবলিক এবং প্রাইভেট) তৈরি করা হয়। তথ্য স্বাক্ষর করার জন্য প্রাইভেট কী-টি সুরক্ষিত হার্ডওয়্যারে লক করে রাখা হয় , অন্যদিকে বার্তাটি পরিবর্তিত হয়নি এবং এটি মূল উৎস থেকেই এসেছে—তা যাচাই করার জন্য পাবলিক কী-টি বিতরণ করা যেতে পারে।
সিস্টেমের অভ্যন্তরীণ স্থাপত্য এবং বিবর্তন
অভ্যন্তরীণভাবে, সিস্টেমটি একটি জটিল যন্ত্র। অ্যান্ড্রয়েড কীস্টোর এটি অ্যাপটির দৃশ্যমান রূপ, কিন্তু এটি যোগাযোগ করে কীস্টোর ডেমন বাইন্ডারের মাধ্যমে। এই ডেমনটি পরিচালনা করে keyblobs (এনক্রিপ্টেড কী) এবং এর উপর নির্ভর করে KeyMint-এর HAL (পূর্বে কীমাস্টার) সুরক্ষিত জগতে গুরুত্বপূর্ণ কাজ সম্পাদন করার জন্য।
পথটা ছিল দীর্ঘ: অ্যান্ড্রয়েড ৬.০ থেকে, যা অ্যাক্সেস কন্ট্রোল এবং AES/HMAC প্রিমিটিভ চালু করেছিল; এরপর অ্যান্ড্রয়েড ৭.০, যাতে ছিল কী সার্টিফিকেশন এবং ভার্সন লিঙ্কিং (যাতে কোনো আক্রমণকারী ওএস-কে একটি ঝুঁকিপূর্ণ সংস্করণে ডাউনগ্রেড করতে না পারে); এবং সবশেষে অ্যান্ড্রয়েড ১২। এই সর্বশেষ সংস্করণে, নিরাপত্তা বাড়ানোর জন্য ডেমনটিকে রাস্ট (Rust) -এ নতুন করে লেখা হয়েছে এবং কীমিন্ট (KeyMint)-এর HAL চালু করা হয়েছে, যা ECDH কী অ্যাগ্রিমেন্ট এবং কী ব্যবহারের সীমা সমর্থন করে।
ফরেনসিক দৃষ্টিকোণ এবং নিষ্কাশন ঝুঁকি
যদিও কীস্টোরটি খুবই শক্তিশালী, কম্পিউটার ফরেনসিকের জগতে এর থেকে তথ্য বের করার বিভিন্ন পদ্ধতি রয়েছে। কীগুলো এনক্রিপ্ট করা অবস্থায় সংরক্ষিত থাকে। /misc/keystore/ (অথবা অ্যান্ড্রয়েড ১২ থেকে একটি SQLite ডেটাবেসে)। সেগুলোকে সুরক্ষিত রাখতে, একটি কী এনক্রিপশন কী (KEK) সুরক্ষিত হার্ডওয়্যারের নির্দিষ্ট মান থেকে উদ্ভূত।
কিছু ডিজিটাল ফরেনসিক বিশেষজ্ঞ প্রসেসর-নির্দিষ্ট দুর্বলতার (যেমন MTK বা Qualcomm) মাধ্যমে হার্ডওয়্যার ভ্যালু বের করে অফলাইনে ডিক্রিপশনের চেষ্টা করেন। যদি তারা KEK (কীস্টোর কী) পেতে সক্ষম হন, তবে তারা কীস্টোরের কীগুলো ডিক্রিপ্ট করতে পারেন এবং ফলস্বরূপ Signal বা Element-এর মতো অ্যাপ্লিকেশনগুলোর এনক্রিপ্টেড ডেটাবেস অ্যাক্সেস করতে পারেন , যেগুলো সাধারণত তাদের Realm ডেটাবেসের মাস্টার কী সুরক্ষিত রাখতে কীস্টোর ব্যবহার করে থাকে।