বায়োমেট্রিক্স

বায়োমেট্রিক্স একটি ডিভাইসের সাথে আপনার পরিচয় নিশ্চিত করার একটি আরও সুবিধাজনক, কিন্তু সম্ভাব্যভাবে কম নিরাপদ উপায় অফার করে। টায়ার্ড প্রমাণীকরণ মডেলের অধীনে, প্রাথমিক প্রমাণীকরণ (অর্থাৎ, PIN, প্যাটার্ন এবং পাসওয়ার্ডের মতো জ্ঞান-ফ্যাক্টর ভিত্তিক পদ্ধতি) সর্বোচ্চ স্তরের নিরাপত্তা প্রদান করে। বায়োমেট্রিক্স প্রমাণীকরণের সেকেন্ডারি স্তরে রয়েছে, যা সুবিধা এবং নিরাপত্তার ভারসাম্য প্রদান করে। অ্যান্ড্রয়েড সিডিডি বায়োমেট্রিক শক্তির তিনটি শ্রেণিকে সংজ্ঞায়িত করে: ক্লাস 3 (পূর্বে শক্তিশালী), ক্লাস 2 (পূর্বে দুর্বল), এবং ক্লাস 1 (পূর্বে সুবিধা)। প্রতিটি ক্লাসের পূর্বশর্ত, সুবিধা এবং সীমাবদ্ধতার একটি সেট রয়েছে - আরও বিশদ বিবরণের জন্য দয়া করে উপরে CDD দেখুন। তিনটি শ্রেণীকেই লকস্ক্রিনের সাথে একীভূত করার অনুমতি দেওয়া হয়েছে, তবে শুধুমাত্র শক্তিশালী এবং দুর্বল প্রমাণীকরণকারীদের android.hardware.biometrics API-এর সাথে একীভূত করার অনুমতি দেওয়া হয়েছে। এই টেবিলটি প্রতিটি প্রমাণীকরণকারী এবং তারা যে কার্যকারিতা সমর্থন করে তা বর্ণনা করে।

প্রমাণীকরণকারী বন্ধ পর্দা বায়োমেট্রিক প্রম্পট ইন্টিগ্রেশন কীস্টোর (সময়-ভিত্তিক কী) কীস্টোর (অপারেশন-ভিত্তিক কী)
BIOMETRIC_STRONG (ক্লাস 3) হ্যাঁ হ্যাঁ হ্যাঁ হ্যাঁ
BIOMETRIC_WEAK (শ্রেণি 2) হ্যাঁ হ্যাঁ না না
BIOMETRIC_CONVENIENCE
(ক্লাস 1)
হ্যাঁ না না না
DEVICE_CREDENTIAL হ্যাঁ হ্যাঁ হ্যাঁ হ্যাঁ (1)
  1. এই কার্যকারিতা Android 11 এ যোগ করা হয়েছে, বিস্তারিত জানার জন্য এটি দেখুন

অ্যান্ড্রয়েড ফ্রেমওয়ার্কে মুখ এবং আঙ্গুলের ছাপ বায়োমেট্রিক প্রমাণীকরণের জন্য সমর্থন অন্তর্ভুক্ত রয়েছে। অন্যান্য বায়োমেট্রিক পদ্ধতি (যেমন আইরিস) সমর্থন করার জন্য অ্যান্ড্রয়েড কাস্টমাইজ করা যেতে পারে। যাইহোক, বায়োমেট্রিক ইন্টিগ্রেশন বায়োমেট্রিক নিরাপত্তার উপর নির্ভর করবে, পদ্ধতি নয়। বায়োমেট্রিক নিরাপত্তা স্পেসিফিকেশন সম্পর্কে আরো বিস্তারিত জানার জন্য, বায়োমেট্রিক আনলক নিরাপত্তা পরিমাপ দেখুন।

উৎস

অ্যান্ড্রয়েড 11

  • BiometricManager.Authenticators ইন্টারফেস প্রবর্তন করে, যা ধ্রুবক প্রদান করে যা ডেভেলপাররা তাদের অ্যাপ দ্বারা গৃহীত প্রমাণীকরণের ধরন নির্দিষ্ট করতে ব্যবহার করতে পারে।
  • ACTION_BIOMETRIC_ENROLLঅভিপ্রায় ক্রিয়া যোগ করে, যা বিকাশকারীরা ব্যবহারকারীকে তাদের অ্যাপের প্রয়োজনীয়তা পূরণ করে এমন একটি প্রমাণীকরণ পদ্ধতি নথিভুক্ত করার জন্য নির্দেশ করতে ব্যবহার করতে পারে।
  • AuthenticationResult #getAuthenticationType () পদ্ধতি যোগ করে, যা বিকাশকারীরা বায়োমেট্রিক শংসাপত্র বা ডিভাইস শংসাপত্র ব্যবহার করে ব্যবহারকারী প্রমাণীকরণ করেছে কিনা তা পরীক্ষা করতে ব্যবহার করতে পারে।
  • বায়োমেট্রিক প্রম্পট ক্লাসের মধ্যে প্রমাণ-প্রতি-ব্যবহার কীগুলির জন্য অতিরিক্ত সমর্থন প্রদান করে।

অ্যান্ড্রয়েড 10

  • BiometricManager ক্লাস প্রবর্তন করে যা বিকাশকারীরা বায়োমেট্রিক প্রমাণীকরণের উপলব্ধতা জিজ্ঞাসা করতে ব্যবহার করতে পারে।
  • BiometricPrompt জন্য আঙ্গুলের ছাপ এবং মুখের প্রমাণীকরণ একীকরণ অন্তর্ভুক্ত

অ্যান্ড্রয়েড 9

  • শুধুমাত্র BiometricPrompt জন্য ফিঙ্গারপ্রিন্ট ইন্টিগ্রেশন অন্তর্ভুক্ত।
  • ফিঙ্গারপ্রিন্ট ম্যানেজার ক্লাস অবমূল্যায়ন করে। যদি আপনার বান্ডিল এবং সিস্টেম অ্যাপগুলি এই ক্লাসটি ব্যবহার করে, তবে পরিবর্তে BiometricManager BiometricPrompt ব্যবহার করতে সেগুলিকে আপডেট করুন।
  • BiometricPrompt ব্যবহার করে BiometricPromptBoundKeysTest পরীক্ষা করার জন্য FingerprintManager ম্যানেজার CTS যাচাইকারী পরীক্ষা আপডেট করা হয়েছে।

বাস্তবায়ন

ব্যবহারকারী এবং বিকাশকারীদের একটি নির্বিঘ্ন বায়োমেট্রিক অভিজ্ঞতা রয়েছে তা নিশ্চিত করতে, আপনার বায়োমেট্রিক স্ট্যাককে BiometricPrompt প্রম্পট , BiometricManager ম্যানেজার এবং ACTION_BIOMETRIC_ENROLL API-এর সাথে একীভূত করুন৷ বায়োমেট্রিক সেন্সর সহ ডিভাইসগুলিকে অবশ্যই এই শক্তির প্রয়োজনীয়তাগুলি মেনে চলতে হবে৷
বায়োমেট্রিক BiometricPrompt এবং BiometricManager APIs এর সাথে আপনার বায়োমেট্রিক স্ট্যাককে একীভূত করতে:

  1. নিশ্চিত করুন যে আপনার <Modality>Service IBiometricService#registerAuthenticator পদ্ধতির মাধ্যমে BiometricService সাথে সঠিকভাবে নিবন্ধিত হয়েছে এবং IBiometricAuthenticator ইন্টারফেস প্রয়োগ করছে। সাধারণ পদ্ধতি (আঙুলের ছাপ, মুখ) একটি সাধারণ সুপারক্লাস থেকে প্রসারিত হয়। আপনি যদি একটি অসমর্থিত মোডালিটি সংহত করতে চান তবে আঙ্গুলের ছাপ / মুখের উদাহরণ এবং বায়োমেট্রিক্সের জন্য CDD নির্দেশিকা অনুসরণ করুন।
  2. নিশ্চিত করুন যে আপনার নতুন মোডালিটি SystemUI এ সঠিকভাবে সমর্থিত। আঙুলের ছাপ এবং মুখের জন্য ডিফল্ট BiometricPrompt ব্যবহারকারী ইন্টারফেস রয়েছে। এতে আপনার ডিভাইসের জন্য প্রয়োজনীয় যেকোনো লেআউট বা থিম পরিবর্তন অন্তর্ভুক্ত করা উচিত। অর্থাৎ একটি ইন-ডিসপ্লে ফিঙ্গারপ্রিন্ট সেন্সরের জন্য সংশ্লিষ্ট লেআউট পরিবর্তন।

ACTION_BIOMETRIC_ENROLL API-এর সাথে আপনার বায়োমেট্রিক স্ট্যাককে একীভূত করতে:

  1. আপনার তালিকাভুক্তির প্রবাহ উপস্থাপন করতে বায়োমেট্রিক এনরোল অ্যাক্টিভিটি পরিবর্তন করুন। মনে রাখবেন যে আপনার বায়োমেট্রিকটি কেবলমাত্র তখনই উপস্থাপন করা যেতে পারে যদি এটি অনুরোধ করা শক্তি পূরণ করে। যদি আপনার ডিভাইস একাধিক সমর্থন করে, তাহলে এই ক্রিয়াটি এমন একটি তালিকা উপস্থাপন করবে যা ব্যবহারকারী বেছে নিতে পারেন।
বায়োমেট্রিক প্রম্পট আর্কিটেকচার
চিত্র 1. বায়োমেট্রিক প্রম্পট আর্কিটেকচার

HAL বাস্তবায়ন নির্দেশিকা

এই বায়োমেট্রিক HAL নির্দেশিকাগুলি অনুসরণ করুন যাতে বায়োমেট্রিক ডেটা ফাঁস না হয় এবং কোনও ব্যবহারকারীকে কোনও ডিভাইস থেকে সরানো হলে তা সরানো হয়:

  • নিশ্চিত করুন যে কাঁচা বায়োমেট্রিক ডেটা বা ডেরিভেটিভস (যেমন টেমপ্লেট) নিরাপদ বিচ্ছিন্ন পরিবেশের (যেমন TEE বা নিরাপদ উপাদান) বাইরে থেকে অ্যাক্সেসযোগ্য নয়। সমস্ত সঞ্চিত ডেটা শুধুমাত্র TEE (ট্রাস্টেড এক্সিকিউশন এনভায়রনমেন্ট) এর কাছে পরিচিত একটি ডিভাইস-নির্দিষ্ট কী দিয়ে এনক্রিপ্ট করা আবশ্যক। যদি হার্ডওয়্যার এটিকে সমর্থন করে, তবে নিরাপদ বিচ্ছিন্ন পরিবেশে হার্ডওয়্যার অ্যাক্সেস সীমিত করুন এবং একটি SELinux নীতির মাধ্যমে এটিকে সুরক্ষিত করুন। যোগাযোগের চ্যানেল (উদাহরণস্বরূপ, SPI, I2C) সমস্ত ডিভাইস ফাইলে একটি সুস্পষ্ট SELinux নীতি সহ শুধুমাত্র নিরাপদ বিচ্ছিন্ন পরিবেশে অ্যাক্সেসযোগ্য করুন।
  • তথ্য লঙ্ঘন এবং অন্যান্য আক্রমণ প্রতিরোধ করতে নিরাপদ বিচ্ছিন্ন পরিবেশের মধ্যে বায়োমেট্রিক অধিগ্রহণ, তালিকাভুক্তি এবং স্বীকৃতি অবশ্যই ঘটতে হবে। এই প্রয়োজনীয়তা শুধুমাত্র ক্লাস 3 (পূর্বে শক্তিশালী) এবং ক্লাস 2 (পূর্বে দুর্বল) বায়োমেট্রিক্সের ক্ষেত্রে প্রযোজ্য।
  • রিপ্লে আক্রমণ থেকে রক্ষা করতে, একটি ব্যক্তিগত, ডিভাইস-নির্দিষ্ট কী দিয়ে বায়োমেট্রিক টেমপ্লেট সাইন ইন করুন। অ্যাডভান্সড এনক্রিপশন স্ট্যান্ডার্ড (AES) এর জন্য, সর্বনিম্ন ফাইল-সিস্টেম পাথ, গোষ্ঠী এবং বায়োমেট্রিক আইডি সহ একটি টেমপ্লেটে স্বাক্ষর করুন যাতে টেমপ্লেট ফাইলগুলি অন্য ডিভাইসে বা একই ডিভাইসে নথিভুক্ত করা ব্যবহারকারী ব্যতীত অন্য কারও জন্য অকার্যকর হয়। . উদাহরণস্বরূপ, একই ডিভাইসে বা অন্য ডিভাইস থেকে অন্য ব্যবহারকারীর বায়োমেট্রিক ডেটা অনুলিপি করা প্রতিরোধ করুন।
  • আপনি যদি TEE এর বাইরে ডেটা সঞ্চয় করতে চান, তাহলে setActiveUser() HIDL method দ্বারা প্রদত্ত ফাইল-সিস্টেম পাথ ব্যবহার করুন বা ব্যবহারকারীকে সরানো হলে সমস্ত ব্যবহারকারী টেমপ্লেট ডেটা মুছে ফেলার অন্য উপায় প্রদান করুন৷ কারণ ব্যবহারকারীর তথ্য ফাঁস রক্ষা করা হয়. যে ডিভাইসগুলি এই পথটি ব্যবহার করে না সেগুলি ব্যবহারকারীকে সরানোর পরে অবশ্যই পরিষ্কার করতে হবে৷ এটি CDD-এর দ্বারা প্রয়োজনীয় যে বায়োমেট্রিক ডেটা এবং ডেরিভেটিভ ফাইলগুলি এনক্রিপ্টেড সংরক্ষণ করা হবে - বিশেষ করে যদি TEE তে না থাকে তবে নিরাপদ বিচ্ছিন্ন পরিবেশের স্টোরেজ প্রয়োজনীয়তার কারণে এটি অসম্ভাব্য হলে, ব্যবহারকারীকে সরানো হলে বা ডিভাইসটি সরানো হলে ডেটা অপসারণ নিশ্চিত করতে হুক যুক্ত করুন। মুছে ফেলা হয় LockSettingsService.removeBiometricsForUser() দেখুন

কাস্টমাইজেশন

যদি আপনার ডিভাইস একাধিক বায়োমেট্রিক্স সমর্থন করে, ব্যবহারকারীর সেটিংসে একটি ডিফল্ট নির্দিষ্ট করতে সক্ষম হওয়া উচিত। আপনার BiometricPrompt বাস্তবায়নের জন্য ডিফল্ট হিসাবে ক্লাস 3 (পূর্বে শক্তিশালী) বায়োমেট্রিক পছন্দ করা উচিত যদি না ব্যবহারকারী এটিকে স্পষ্টভাবে ওভাররাইড করে, তারপর বায়োমেট্রিকের সাথে সম্পর্কিত ঝুঁকিগুলি ব্যাখ্যা করে একটি সতর্ক বার্তা প্রদর্শন করা প্রয়োজন (উদাহরণস্বরূপ, আপনার একটি ফটো আপনার ডিভাইস আনলক করতে পারে )

বৈধতা

আপনার বায়োমেট্রিক বাস্তবায়ন নিম্নলিখিত পরীক্ষা পাস করতে হবে:

উপরন্তু, যদি আপনার ডিভাইসটি একটি AOSP HIDL ( আঙ্গুলের ছাপ @ 2.1 , আঙ্গুলের ছাপ @ 2.2 , face1.0 ) আছে এমন একটি বায়োমেট্রিক সমর্থন করে, তবে এটি অবশ্যই তার প্রাসঙ্গিক VTS পরীক্ষা ( আঙ্গুলের ছাপ , মুখ ) পাস করতে হবে।