প্রমাণীকরণ

অ্যান্ড্রয়েড ব্যবহারকারী-প্রমাণীকরণ-গেটেড ক্রিপ্টোগ্রাফিক কীগুলির ধারণাটি ব্যবহার করে যার জন্য নিম্নলিখিত উপাদানগুলির প্রয়োজন:

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

গেটকিপার, ফিঙ্গারপ্রিন্ট এবং বায়োমেট্রিক উপাদানগুলি কীস্টোর এবং অন্যান্য উপাদানগুলির সাথে হার্ডওয়্যার-ব্যাকড প্রমাণীকরণ টোকেন (অথটোকেনস) ব্যবহার সমর্থন করে work

তালিকাভুক্তি

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

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

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

প্রমাণীকরণ

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

প্রমাণীকরণ প্রবাহ
চিত্র 1. প্রমাণীকরণ প্রবাহ
  1. কোনও ব্যবহারকারী একটি প্রমাণীকরণ পদ্ধতি সরবরাহ করে এবং সংশ্লিষ্ট পরিষেবাটি সংশ্লিষ্ট ডিমনকে অনুরোধ করে।
    • পিন, প্যাটার্ন বা পাসওয়ার্ডের জন্য LockSettingsService gatekeeperd একটি অনুরোধ করে।
    • বায়োমেট্রিক্স-ভিত্তিক প্রমাণীকরণের প্রবাহ অ্যান্ড্রয়েড সংস্করণে নির্ভর করে। অ্যান্ড্রয়েড ৮.x এবং তার থেকে কম চলমান ডিভাইসগুলিতে FingerprintService সার্ভিস fingerprintd করার জন্য অনুরোধ করে)। অ্যান্ড্রয়েড 9 এবং উচ্চতর চলমান ডিভাইসে, BiometricPrompt উপযুক্ত বায়োমেট্রিক ডেমন (উদাহরণস্বরূপ, একটি অনুরোধ তোলে fingerprintd ফিঙ্গারপ্রিন্ট জন্য অথবা faced মুখ জন্য) উপযুক্ত ব্যবহার Biometric Manager যেমন বর্গ, FingerprintManager বা FaceManager । সংস্করণ নির্বিশেষে, বায়োমেট্রিক প্রমাণীকরণ অনুরোধটি প্রেরণের পরে অ্যাসিঙ্ক্রোনিকভাবে ঘটে।
  2. ডেমনটি তার প্রতিরূপকে ডেটা প্রেরণ করে, যা একটি এথথোকেন উত্পন্ন করে:
    • পিন / প্যাটার্ন / পাসওয়ার্ড প্রমাণীকরণের জন্য, gatekeeperd পিন, প্যাটার্ন বা পাসওয়ার্ড হ্যাশটি টিইইতে gatekeeperd প্রেরণ করে। যদি টিইই-তে প্রমাণীকরণ সফল হয়, টিইই-র গেটকিপার অ্যানড্রয়েড ওএসে তার প্রতিরূপে সংশ্লিষ্ট ব্যবহারকারী এসআইডি (অউথটোকেন এইচএমএসি কী দিয়ে স্বাক্ষরিত) সম্বলিত একটি অথথোকেন প্রেরণ করে।
    • ফিঙ্গারপ্রিন্ট প্রমাণীকরণের জন্য, fingerprintd ফিঙ্গারপ্রিন্ট ইভেন্টগুলির জন্য শোনায় এবং ডেটা টিইইতে ফিঙ্গারপ্রিন্টে প্রেরণ করে। যদি টিইই-তে প্রমাণীকরণ সফল হয়, টিইই-তে ফিঙ্গারপ্রিন্ট অ্যান্ড্রয়েড ওএসে তার প্রতিরক্ষকে একটি অউথটোকেনকে (অউথটোকেন এইচএমএসি কী দিয়ে স্বাক্ষরিত) প্রেরণ করে।
    • অন্যান্য বায়োমেট্রিক প্রমাণীকরণের জন্য উপযুক্ত বায়োমেট্রিক ডিমন বায়োমেট্রিক ইভেন্টের জন্য শোনেন এবং উপযুক্ত বায়োমেট্রিক টিইই উপাদানতে প্রেরণ করেন।
  3. ডিমন স্বাক্ষরিত অথ টোকেন গ্রহণ করে এবং কীস্টোর পরিষেবাদির বাইন্ডার ইন্টারফেসে একটি এক্সটেনশনের মাধ্যমে কীস্টোর পরিষেবাদিতে এটি সরবরাহ করে। (ডিভাইসটি রিলোকড করা অবস্থায় এবং যখন ডিভাইসের পাসওয়ার্ড পরিবর্তন হয় তখন gatekeeperd কীস্টোর পরিষেবাটিও জানায়)
  4. কীস্টোর পরিষেবা অথটোকেন্সকে কীমাস্টারে পাস করে এবং গেটকিপার এবং সমর্থিত বায়োমেট্রিক টিইই উপাদানটির সাথে ভাগ করে নেওয়া কী ব্যবহার করে তাদের যাচাই করে। কীমাস্টার টোকনে টাইমস্ট্যাম্পকে শেষ প্রমাণীকরণের সময় হিসাবে বিশ্বাস করে এবং টাইমস্ট্যাম্পে একটি মূল রিলিজ সিদ্ধান্ত (কোনও অ্যাপ্লিকেশনটিকে কী ব্যবহার করার অনুমতি দেওয়ার জন্য) ভিত্তি করে।

অ্যাথটোকেন ফর্ম্যাট

ভাষা এবং উপাদান জুড়ে টোকেন শেয়ারিং এবং সামঞ্জস্য নিশ্চিত করার জন্য, AuthToken বিন্যাসে বর্ণনা করা হয়েছে hw_auth_token.h । ফর্ম্যাটটি হ'ল স্থির আকারের ক্ষেত্রগুলির সাথে একটি সাধারণ সিরিয়ালাইজেশন প্রোটোকল।

মাঠ প্রকার প্রয়োজনীয় বর্ণনা
অ্যাথটোকেন সংস্করণ 1 বাইট হ্যাঁ নীচের সমস্ত ক্ষেত্রের জন্য গ্রুপ ট্যাগ।
চ্যালেঞ্জ -৪-বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যা না রিপ্লে আক্রমণ রোধ করার জন্য একটি এলোমেলো পূর্ণসংখ্যা। সাধারণত একটি অনুরোধ করা ক্রিপ্টো অপারেশনের আইডি। বর্তমানে লেনদেনের ফিঙ্গারপ্রিন্ট অনুমোদনের দ্বারা ব্যবহৃত হয়। যদি উপস্থিত থাকে তবে অউথটোকেন কেবল একই চ্যালেঞ্জযুক্ত ক্রাইপ্টো অপারেশনের জন্য বৈধ।
ব্যবহারকারী এসআইডি -৪-বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যা হ্যাঁ ননরিপিটিং ব্যবহারকারী শনাক্তকারী ডিভাইস প্রমাণীকরণের সাথে সম্পর্কিত সমস্ত কীগুলিতে ক্রিপ্টোগ্রাফিকভাবে বাঁধা। বিশদ জন্য, দারোয়ান দেখুন
প্রমাণীকরণকারী আইডি (এএসআইডি) নেটওয়ার্ক ক্রমে 64-বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যা না শনাক্তকারী নির্দিষ্ট নির্দিষ্ট প্রমাণীকরণের নীতিতে আবদ্ধ করতে ব্যবহৃত হয়। সমস্ত প্রমাণীকরণকারীর ASID এর নিজস্ব মূল্য রয়েছে যা তারা তাদের নিজস্ব প্রয়োজনীয়তা অনুসারে পরিবর্তন করতে পারে।
প্রমাণীকরণকারী প্রকার নেটওয়ার্ক ক্রমে 32-বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যা হ্যাঁ
  • 0x00 গেটকিপার।
  • 0x01 হ'ল ফিঙ্গারপ্রিন্ট।
টাইমস্ট্যাম্প নেটওয়ার্ক ক্রমে 64-বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যা হ্যাঁ অতি সাম্প্রতিক সিস্টেম বুট হওয়ার পরে সময় (মিলিসেকেন্ডে) in
অথথোকেন এইচএমএসি (SHA-256) 256-বিট ব্লব হ্যাঁ এইচএমএসি ক্ষেত্রটি বাদে সমস্ত ক্ষেত্রের চাবিযুক্ত SHA-256 ম্যাক।

ডিভাইস বুট প্রবাহ

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

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

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

কিছু টিআইই-তে আইপিসি অবকাঠামোর অভাব হওয়ায় টিইই-তে অ্যাপলেটগুলির মধ্যে কোনও যোগাযোগ ঘটে না। এটি সিস্টেমে প্রমাণীকরণ টেবিলের জ্ঞান থাকার কারণে কীস্টোর পরিষেবাটি দ্রুত ব্যর্থ হওয়ার অনুরোধগুলি অস্বীকার করার অনুমতি দেয়, একটি সম্ভাব্য ব্যয়বহুল আইপিসিকে টিইইতে সংরক্ষণ করে।