Android protects user data including credential-encrypted storage and authentication-bound Keystore keys with user-configured lockscreen knowledge factors (LSKFs) such as PINs, patterns, and passwords. LSKFs typically are low-entropy values such as 4 or 6-digit PINs, so protection from brute-force attacks is required.
অ্যান্ড্রয়েড, LSKF-এর উপর ব্রুট-ফোর্স অ্যাটাক চালানো আক্রমণকারীদের গতি কমাতে এবং যথেষ্ট সংখ্যক চেষ্টার পর তা ব্লক করতে ট্রাস্টেড এক্সিকিউশন এনভায়রনমেন্ট (TEE) বা সিকিওর এলিমেন্ট (SE) রেট-লিমিটার ব্যবহার করে। CDD 9.11, LSKF রেট-লিমিটারের জন্য ন্যূনতম নিরাপত্তা প্রয়োজনীয়তা এবং সুপারিশসমূহ নির্দিষ্ট করে। অ্যান্ড্রয়েড ১৬ QPR2 এবং এর পরবর্তী সংস্করণগুলো নিম্নতর অ্যান্ড্রয়েড সংস্করণগুলোর তুলনায় উল্লেখযোগ্যভাবে শক্তিশালী রেট-লিমিটিং নীতি প্রয়োগ করে। আরও বিস্তারিত জানতে, "অ্যান্ড্রয়েড ১৬ QPR2 এবং এর পরবর্তী সংস্করণগুলোতে শক্তিশালী ডিফল্ট রেট-লিমিটিং নীতি" দেখুন।
LSKFs-এর মাধ্যমে সুরক্ষিত ব্যবহারকারীর ডেটা আনলক করুন
LockSettingsService LSKF-গুলো সংরক্ষণ এবং যাচাই করার কাজ পরিচালনা করে। একজন ব্যবহারকারীর একই সময়ে কেবল একটিই সক্রিয় LSKF থাকে। একটি নতুন LSKF নির্ধারণ করা হলে আগেরটি বাতিল হয়ে যায় এবং রেট-লিমিটিং পলিসিটি প্রথম থেকে চালু হয়।
TEE বা SE-তে থাকা একটি প্রাথমিক রেট-লিমিটার, যা Gatekeeper বা Weaver-এর মধ্যে একটি, সক্রিয় LSKF-এর জন্য রেট-লিমিটিং প্রয়োগ করে। যখন কোনো ইমপ্লিমেন্টেশন উপলব্ধ থাকে, তখন LockSettingsService Weaver-কে অগ্রাধিকার দেয়।
সুরক্ষিত ব্যবহারকারীর ডেটা তখনই আনলক করা হয় যখন প্রাইমারি রেট-লিমিটারকে সঠিক LSKF প্রদান করা হয়। যদি LSKF ভুল হয়, তাহলে রেট-লিমিটার একটি ফেইলর কাউন্টার বাড়িয়ে দেয় এবং নির্দিষ্ট সংখ্যক ব্যর্থতার পর একটি টাইমআউট কার্যকর করে। টাইমআউট চলাকালীন, এটি সমস্ত অনুমান প্রত্যাখ্যান করে এবং অবশিষ্ট টাইমআউট সময় প্রদান করে।
অ্যান্ড্রয়েড ১৬ কিউপিআর২ এবং এর পরবর্তী সংস্করণগুলোতে আরও শক্তিশালী ডিফল্ট রেট-লিমিটিং নীতি।
CDD 9.11 অনুযায়ী Android 6 এবং এর পরবর্তী সংস্করণগুলোতে LSKF রেট-লিমিটিং আবশ্যক। ঐতিহাসিকভাবে, এই প্রয়োজনীয় রেট-লিমিটিং নীতিটি বেশ শিথিল ছিল। উদাহরণস্বরূপ, Android 16-এর ন্যূনতম শর্ত পূরণকারী একটি ইমপ্লিমেন্টেশনে প্রথম মিনিটে ১০টি, ৬ মিনিটে ২০টি, ২৫ মিনিটে ৫০টি, ২৪ ঘণ্টায় ১১০টি এবং ৫ বছরে ১৮০০টি পর্যন্ত অনুমানের অনুমতি দেওয়া হয়।
যদিও এই নীতিটি সুষমভাবে এলোমেলোভাবে নির্বাচিত LSKF-গুলোর জন্য যথেষ্ট নিরাপদ, বাস্তবে ব্যবহারকারীরা সুষমভাবে এলোমেলোভাবে LSKF নির্বাচন করেন না। কিছু LSKF অন্যগুলোর তুলনায় অনেক বেশি ঘন ঘন ঘটে। আক্রমণকারীরা কমতে থাকা ঘটনার ক্রম অনুসারে LSKF-গুলো চেষ্টা করে একটি উল্লেখযোগ্য সাফল্যের হার অর্জন করতে পারে।
For example, the study This PIN Can Be Easily Guessed found a success rate of 16.2% for guessing real-world PINs after 100 guesses and 35.5% for patterns. Attackers knowing user-specific information such as birthdays can achieve even higher success rates.
তাই, অ্যান্ড্রয়েড ১৬ কিউপিআর২ এবং এর পরবর্তী সংস্করণগুলো একটি শক্তিশালী ডিফল্ট এলএসকেএফ রেট-লিমিটিং পলিসি প্রদান করে। এই পলিসি অনুযায়ী প্রথম মিনিটে ৬টি, ৬ মিনিটে ৭টি, ২৫ মিনিটে ৮টি, ২৪ ঘণ্টায় ১২টি এবং ৫ বছরে ১৯টি পর্যন্ত অনুমান করা যায়। ২০টি ভুল অনুমানের পর আর কোনো অনুমান করার অনুমতি দেওয়া হয় না। সম্পূর্ণ টাইমআউট সময়সূচীটি নিচের টেবিলে দেখানো হয়েছে। ভবিষ্যতের অ্যান্ড্রয়েড সংস্করণগুলোতে এটি পরিবর্তিত হতে পারে।
| ভুল অনুমানের সংখ্যা | ভুল অনুমানের পর টাইমআউট |
|---|---|
| ০ | প্রযোজ্য নয় |
| ১-৪ | ০ সেকেন্ড |
| ৫ | ১ মিনিট |
| ৬ | ৫ মিনিট |
| ৭ | ১৫ মিনিট |
| ৮ | ৩০ মিনিট |
| ৯ | ৯০ মিনিট |
| ১০ | ৪ ঘন্টা |
| ১১ | ১২ ঘন্টা |
| ১২ | ৩৬ ঘন্টা |
| ১৩ | ৪ দিন |
| ১৪ | ১৩ দিন |
| ১৫ | ৪১ দিন |
| ১৬ | ১২৩ দিন |
| ১৭ | ১ বছর |
| ১৮ | ৩ বছর |
| ১৯ | ৯ বছর |
| ২০+ | আর কোনো অনুমান করা যাবে না। |
আপডেট করা রেট-লিমিটার
অ্যান্ড্রয়েড ১৬ কিউপিআর২ এবং এর পরবর্তী সংস্করণগুলোতে আপডেট করা গেটকিপার এবং উইভার ইমপ্লিমেন্টেশন অন্তর্ভুক্ত রয়েছে, যা টেবিলে উল্লেখিত রেট-লিমিটিং পলিসি প্রয়োগ করে।
সফটওয়্যার রেট-লিমিটার
Android 16 QPR2 and higher includes an optional secondary rate-limiter, SoftwareRateLimiter. It is implemented in the system server and lets devices offer a stronger rate-limiting policy when the TEE or SE can't be updated.
config_softwareLskfRateLimiterEnforcing কনফিগারেশন ভ্যালুর মাধ্যমে SoftwareRateLimiter এনফোর্সিং মোডে কনফিগার করুন। এনফোর্সিং মোডে, SoftwareRateLimiter তার রেট-লিমিটিং পলিসি প্রাইমারি রেট-লিমিটারের সাথে একযোগে প্রয়োগ করে। একটি নির্দিষ্ট সংখ্যক ভুল অনুমানের জন্য, টাইমআউট হবে প্রাইমারি রেট-লিমিটার এবং SoftwareRateLimiter এর প্রয়োজনীয় টাইমআউটের মধ্যে যেটি দীর্ঘতর। নন-এনফোর্সিং মোডে, SoftwareRateLimiter কোনো সেকেন্ডারি রেট-লিমিটিং পলিসি প্রয়োগ না করেই সমস্ত ভেরিফিকেশন অনুরোধ প্রাইমারি রেট-লিমিটারের কাছে পাঠিয়ে দেয়।
ডুপ্লিকেট অনুমান সনাক্তকরণ
ব্যবহারযোগ্যতা উন্নত করতে এবং আরও শক্তিশালী রেট-লিমিটিং পলিসি প্রয়োগ সক্ষম করতে, অ্যান্ড্রয়েড ১৬ কিউপিআর২ এবং এর পরবর্তী সংস্করণগুলো ডুপ্লিকেট গেস ডিটেকশন সমর্থন করে। এটি সক্রিয় থাকলে, ব্যবহারকারীরা একাধিকবার একই ভুল এলএসকেএফ (LSKF) প্রবেশ করালেও কোনো শাস্তির সম্মুখীন হন না।
বৈধ ব্যবহারকারীরা মাঝে মাঝে একই ভুল LSKF একাধিকবার প্রবেশ করান। এটিকে একাধিক অনুমান হিসেবে গণনা করা হলে অপ্রয়োজনীয় টাইমআউট ঘটে। দক্ষ আক্রমণকারীরা একটি নির্দিষ্ট LSKF একবারের বেশি চেষ্টা করে না। যে পলিসি ডুপ্লিকেট অনুমান গণনা করে না, তা দক্ষ আক্রমণকারীদের জন্য LSKF অনুমান করা সহজ না করেই বৈধ ব্যবহারকারীদের জন্য LSKF এন্ট্রির ব্যবহারযোগ্যতা উন্নত করে, যার ফলে আরও শক্তিশালী রেট-লিমিটিং পলিসি প্রয়োগ করা যায়। বৈধ ব্যবহারকারীদের টাইমআউটের সম্মুখীন হওয়ার সম্ভাবনাও কম থাকে, কারণ ব্যবহারকারীকে ডুপ্লিকেটসহ ৫টি ভুল অনুমানের পরিবর্তে ৫টি স্বতন্ত্র ভুল অনুমান প্রবেশ করাতে হয়।
Android 16 QPR2 ও তার পরবর্তী সংস্করণ, একটি Weaver ইমপ্লিমেন্টেশন এবং enforcing মোডে কনফিগার করা SoftwareRateLimiter যুক্ত ডিভাইসগুলিতে, একই ধরনের অনুমান Weaver-এ পাঠানোর আগে শনাক্ত ও বাতিল করা হয়। এই ধরনের বাতিলের কারণে ভুল অনুমানের সংখ্যা বাড়ে না। মেমরিতে সর্বোচ্চ ৫টি স্বতন্ত্র ভুল অনুমান ট্র্যাক করা হয়। ট্র্যাকার পূর্ণ হয়ে গেলে, জায়গা খালি করার জন্য সবচেয়ে নতুন অনুমানটি বাতিল করে দেওয়া হয়। সর্বশেষ ট্র্যাক না করা ভুল অনুমানটি করার ৫ মিনিট পর ট্র্যাক করা সমস্ত অনুমান বাতিল হয়ে যায়।
গেটকিপার ভুল অনুমানকে অন্যান্য যাচাইকরণ ব্যর্থতা থেকে আলাদা করে না, তাই যখন গেটকিপার প্রাথমিক রেট-লিমিটার হিসেবে কাজ করে, তখন SoftwareRateLimiter সদৃশ অনুমান শনাক্তকরণ সমর্থন করে না।
উইভার বাস্তবায়নকারীরা উইভার বাস্তবায়নে ডুপ্লিকেট অনুমান সনাক্তকরণ সমর্থন করার বিকল্প বেছে নিতে পারেন।