Android ปกป้องข้อมูลผู้ใช้ ซึ่งรวมถึงพื้นที่เก็บข้อมูลที่เข้ารหัสลับด้วยข้อมูลเข้าสู่ระบบและคีย์ Keystore ที่เชื่อมโยงกับการตรวจสอบสิทธิ์ด้วย ปัจจัยความรู้เกี่ยวกับล็อกหน้าจอ (LSKF) ที่ผู้ใช้กำหนดค่าไว้ เช่น PIN, รูปแบบ และ รหัสผ่าน โดยปกติแล้ว LSKF จะเป็นค่าเอนโทรปีต่ำ เช่น PIN 4 หรือ 6 หลัก จึงต้องมีการป้องกันการโจมตีแบบ Brute-Force
Android ใช้ตัวจำกัดอัตราของสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) หรือองค์ประกอบที่ปลอดภัย (SE) เพื่อชะลอการโจมตีแบบ Brute-Force ที่ผู้โจมตีพยายามใช้กับ LSKF และบล็อกการโจมตีดังกล่าวหากมีการพยายามมากพอ CDD 9.11 ระบุข้อกำหนดและคำแนะนำด้านความปลอดภัยขั้นต่ำสำหรับตัวจำกัดอัตราของ LSKF Android 16 QPR2 ขึ้นไปใช้นโยบายการจำกัดอัตราที่เข้มงวดกว่า Android เวอร์ชันต่ำกว่าอย่างมาก ดูรายละเอียดเพิ่มเติมได้ที่นโยบายการจำกัดอัตราเริ่มต้นที่เข้มงวดขึ้นใน Android 16 QPR2 ขึ้นไป
ปลดล็อกข้อมูลผู้ใช้ที่ได้รับการปกป้องด้วย LSKF
LockSettingsService
จะจัดการการจัดเก็บและการยืนยัน LSKF ผู้ใช้จะมี LSKF ที่ใช้งานอยู่ได้ครั้งละ 1 รายการเท่านั้น การกำหนด LSKF ใหม่จะทำให้ LSKF ก่อนหน้าใช้ไม่ได้และเริ่มนโยบายการจำกัดอัตราตั้งแต่ต้น
ตัวจำกัดอัตราหลักใน TEE หรือ SE ซึ่งเป็น Gatekeeper
หรือ Weaver, จะบังคับใช้นโยบายการจำกัดอัตราสำหรับ
LSKF ที่ใช้งานอยู่ LockSettingsService จะเลือกใช้ Weaver หากมีการใช้งาน
ระบบจะปลดล็อกข้อมูลผู้ใช้ที่ได้รับการปกป้องก็ต่อเมื่อมีการระบุ LSKF ที่ถูกต้องให้กับตัวจำกัดอัตราหลัก หาก LSKF ไม่ถูกต้อง ตัวจำกัดอัตราจะเพิ่มตัวนับความล้มเหลวและบังคับใช้การหมดเวลาหลังจากจำนวนความล้มเหลวถึงจำนวนที่กำหนด ในระหว่างการหมดเวลา ระบบจะปฏิเสธการคาดเดาทั้งหมดและแสดงระยะเวลาหมดเวลาที่เหลือ
นโยบายการจำกัดอัตราเริ่มต้นที่เข้มงวดขึ้นใน Android 16 QPR2 ขึ้นไป
CDD 9.11 กำหนดให้มีการจำกัดอัตราของ LSKF ใน Android 6 ขึ้นไป โดยทั่วไปแล้ว นโยบายการจำกัดอัตราที่กำหนดไว้ค่อนข้างยืดหยุ่น เช่น การใช้งานที่ตรงตามข้อกำหนดขั้นต่ำของ Android 16 อนุญาตให้คาดเดาได้สูงสุด 10 ครั้งในนาทีแรก 20 ครั้งใน 6 นาที 50 ครั้งใน 25 นาที 110 ครั้งใน 24 ชั่วโมง และ 1,800 ครั้งใน 5 ปี
แม้ว่านโยบายนี้จะปลอดภัยพอสมควรสำหรับ LSKF ที่เลือกแบบสุ่มอย่างสม่ำเสมอ แต่ในทางปฏิบัติแล้วผู้ใช้ไม่ได้เลือก LSKF แบบสุ่มอย่างสม่ำเสมอ LSKF บางรายการเกิดขึ้นบ่อยกว่ารายการอื่นๆ มาก ผู้โจมตีสามารถประสบความสำเร็จในอัตราที่สูงมากได้โดยลองใช้ LSKF ตามลำดับความถี่ที่ลดลง
ตัวอย่างเช่น การศึกษา This PIN Can Be Easily Guessed พบว่าอัตราความสำเร็จในการคาดเดา PIN ในโลกจริงอยู่ที่ 16.2% หลังจากคาดเดา 100 ครั้ง และ 35.5% สำหรับรูปแบบ ผู้โจมตีที่ทราบข้อมูลเฉพาะของผู้ใช้ เช่น วันเกิด จะประสบความสำเร็จในอัตราที่สูงขึ้น
ดังนั้น Android 16 QPR2 ขึ้นไปจึงมีนโยบายการจำกัดอัตราของ LSKF เริ่มต้นที่เข้มงวดขึ้น นโยบายนี้อนุญาตให้คาดเดาได้สูงสุด 6 ครั้งในนาทีแรก 7 ครั้งใน 6 นาที 8 ครั้งใน 25 นาที 12 ครั้งใน 24 ชั่วโมง และ 19 ครั้งใน 5 ปี หลังจากคาดเดาไม่ถูกต้อง 20 ครั้ง ระบบจะไม่อนุญาตให้คาดเดาอีก ตารางต่อไปนี้แสดงกำหนดเวลาการหมดเวลาทั้งหมด ซึ่งอาจมีการเปลี่ยนแปลงใน Android เวอร์ชันในอนาคต
| จำนวนการคาดเดาไม่ถูกต้อง | การหมดเวลาหลังจากการคาดเดาไม่ถูกต้อง |
|---|---|
| 0 | ไม่เกี่ยวข้อง |
| 1-4 | 0 วินาที |
| 5 | 1 นาที |
| 6 | 5 นาที |
| 7 | 15 นาที |
| 8 | 30 นาที |
| 9 | 90 นาที |
| 10 | 4 ชั่วโมง |
| 11 | 12 ชั่วโมง |
| 12 | 36 ชั่วโมง |
| 13 | 4 วัน |
| 14 | 13 วัน |
| 15 | 41 วัน |
| 16 | 123 วัน |
| 17 | 1 ปี |
| 18 | 3 ปี |
| 19 | 9 ปี |
| 20+ | ไม่อนุญาตให้คาดเดาอีก |
ตัวจำกัดอัตราที่อัปเดต
Android 16 QPR2 ขึ้นไปมีการใช้งาน Gatekeeper และ Weaver ที่อัปเดตแล้ว ซึ่งจะบังคับใช้ นโยบายการจำกัดอัตราในตาราง
ตัวจำกัดอัตราของซอฟต์แวร์
Android 16 QPR2 ขึ้นไปมีตัวจำกัดอัตราทุติยภูมิที่เป็นตัวเลือก ซึ่งคือ SoftwareRateLimiter.
โดยมีการใช้งานในเซิร์ฟเวอร์ระบบและช่วยให้อุปกรณ์เสนอนโยบายการจำกัดอัตราที่เข้มงวดขึ้นได้เมื่อ
อัปเดต TEE หรือ SE ไม่ได้
กำหนดค่า SoftwareRateLimiter ในโหมดบังคับใช้ผ่านค่ากำหนดค่า config_softwareLskfRateLimiterEnforcing
ในโหมดบังคับใช้ SoftwareRateLimiter จะใช้นโยบายการจำกัดอัตราพร้อมกับตัวจำกัดอัตราหลัก สำหรับจำนวนการคาดเดาไม่ถูกต้องที่กำหนด การหมดเวลาจะเป็นระยะเวลาที่นานกว่าระหว่างระยะเวลาที่ตัวจำกัดอัตราหลักกำหนดกับระยะเวลาที่ SoftwareRateLimiter กำหนด
ในโหมดไม่บังคับใช้ SoftwareRateLimiter จะส่งคำขอการยืนยันทั้งหมดไปยังตัวจำกัดอัตราหลักโดยไม่ใช้นโยบายการจำกัดอัตราทุติยภูมิ
การตรวจหาการคาดเดาซ้ำ
Android 16 QPR2 ขึ้นไปรองรับการตรวจหาการคาดเดาซ้ำเพื่อปรับปรุงการใช้งานและเปิดใช้การใช้นโยบายการจำกัดอัตราที่เข้มงวดขึ้น เมื่อเปิดใช้ ผู้ใช้จะไม่ถูกลงโทษสำหรับการป้อน LSKF ไม่ถูกต้องรายการเดียวกันหลายครั้ง
บางครั้งผู้ใช้ที่ถูกต้องอาจป้อน LSKF ไม่ถูกต้องรายการเดียวกันหลายครั้ง ซึ่งจะทำให้เกิดการหมดเวลาที่ไม่จำเป็นหากระบบนับเป็นการคาดเดาหลายครั้ง ผู้โจมตีที่มีความสามารถจะไม่พยายามใช้ LSKF รายการหนึ่งๆ มากกว่า 1 ครั้ง นโยบายที่ไม่นับการคาดเดาซ้ำจะช่วยปรับปรุงการใช้งานการป้อน LSKF สำหรับผู้ใช้ที่ถูกต้องโดยไม่ทำให้ผู้โจมตีที่มีความสามารถคาดเดา LSKF ได้ง่ายขึ้น ซึ่งจะช่วยให้บังคับใช้นโยบายการจำกัดอัตราที่เข้มงวดขึ้นได้ ผู้ใช้ที่ถูกต้องมีแนวโน้มที่จะไม่พบการหมดเวลา เนื่องจากผู้ใช้ต้องป้อนการคาดเดาไม่ถูกต้องที่ไม่ซ้ำกัน 5 ครั้งแทนที่จะเป็นการคาดเดาไม่ถูกต้อง 5 ครั้งซึ่งรวมถึงรายการซ้ำ
ในอุปกรณ์ที่ใช้ Android 16 QPR2 ขึ้นไป การใช้งาน Weaver และ SoftwareRateLimiter ที่กำหนดค่าในโหมดบังคับใช้ ระบบจะตรวจหาและปฏิเสธการคาดเดาซ้ำก่อนที่จะส่งไปยัง Weaver การปฏิเสธดังกล่าวจะไม่เพิ่มจำนวนการคาดเดาไม่ถูกต้อง ระบบจะติดตามการคาดเดาไม่ถูกต้องที่ไม่ซ้ำกันสูงสุด 5 ครั้งในหน่วยความจำ หากตัวติดตามเต็ม ระบบจะทิ้งรายการที่เก่าที่สุดเพื่อเพิ่มพื้นที่ ระบบจะทิ้งการคาดเดาทั้งหมดที่ติดตามไว้ 5 นาทีหลังจากมีการคาดเดาไม่ถูกต้องครั้งสุดท้ายที่ไม่ได้ติดตาม
Gatekeeper จะไม่แยกการคาดเดาผิดจากการยืนยันอื่นๆ ที่ล้มเหลว ดังนั้น SoftwareRateLimiter จึงไม่รองรับการตรวจหาการคาดเดาซ้ำเมื่อ Gatekeeper เป็นตัวจำกัดอัตราหลัก
ผู้ใช้ Weaver สามารถเลือกที่จะรองรับการตรวจหาการคาดเดาซ้ำในการใช้งาน Weaver ได้