ใช้ฟีเจอร์ที่อธิบายไว้ในส่วนนี้เพื่อทำให้อุปกรณ์ Android ที่คุณพัฒนาปลอดภัยที่สุดเท่าที่จะเป็นไปได้
แซนด์บ็อกซ์ของแอปพลิเคชัน
แพลตฟอร์ม Android ใช้ประโยชน์จากการปกป้องตามผู้ใช้ของ Linux เพื่อระบุและแยกทรัพยากรของแอป โดย Android จะกำหนดรหัสผู้ใช้ (UID) ที่ไม่ซ้ำกันให้กับแอป Android แต่ละแอปและเรียกใช้แอปในกระบวนการของตัวเอง Android ใช้ UID นี้เพื่อตั้งค่าแซนด์บ็อกซ์ของแอปพลิเคชันระดับเคอร์เนล
การลงนามแอป
การลงนามแอปช่วยให้นักพัฒนาแอปสามารถระบุผู้สร้างแอปและอัปเดตแอปได้โดยไม่ต้องสร้างอินเทอร์เฟซและสิทธิ์ที่ซับซ้อน แอปทุกแอปที่ทำงานบนแพลตฟอร์ม Android ต้องได้รับการลงนามโดยนักพัฒนาแอป
การตรวจสอบสิทธิ์
Android มีแนวคิดเรื่อง เครื่องมือตรวจสอบสิทธิ์ของผู้ใช้ ที่สามารถปลดล็อกอุปกรณ์และทำงานอื่นๆ ได้ ดังนี้
- ระบบย่อย Gatekeeper ทำหน้าที่ตรวจสอบสิทธิ์ด้วย PIN, รูปแบบ หรือรหัสผ่านของอุปกรณ์ในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE)
- คอมโพเนนต์ Weaver ซึ่งเป็นตัวเลือกจะทำการตรวจสอบสิทธิ์ด้วย PIN, รูปแบบ หรือรหัสผ่านของอุปกรณ์ในองค์ประกอบที่ปลอดภัยแยกต่างหาก หรือใน TEE
- นโยบายการจำกัดอัตราการตรวจสอบสิทธิ์ด้วย PIN, รูปแบบ หรือรหัสผ่านของอุปกรณ์ Android จะบังคับใช้ในองค์ประกอบที่ปลอดภัยหรือ TEE เป็นหลักโดย Gatekeeper และ Weaver นอกจากนี้ยังมีตัวจำกัดอัตราซอฟต์แวร์รองที่เป็นตัวเลือกด้วย
- อุปกรณ์ที่มีเซ็นเซอร์ลายนิ้วมือรองรับการใช้ลายนิ้วมือที่ลงทะเบียนไว้
- อุปกรณ์สามารถรองรับการตรวจสอบสิทธิ์ด้วยใบหน้า
นอกจากนี้ Android ยังรองรับคีย์การเข้ารหัสลับที่ได้รับการสนับสนุนจากฮาร์ดแวร์ซึ่งจะใช้ได้ก็ต่อเมื่อมีการตรวจสอบสิทธิ์ผู้ใช้ด้วยกลไกใดกลไกหนึ่งต่อไปนี้
ข้อมูลไบโอเมตริก
Android 9 ขึ้นไปมี BiometricPrompt
คลาส
ที่นักพัฒนาแอปสามารถใช้เพื่อผสานรวมการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกเข้ากับ
แอปของตนในลักษณะที่ไม่ขึ้นอยู่กับอุปกรณ์และรูปแบบ เฉพาะข้อมูลไบโอเมตริกที่ปลอดภัยเท่านั้นที่ผสานรวมกับ BiometricPrompt ได้
การเข้ารหัส
เมื่ออุปกรณ์ได้รับการเข้ารหัสแล้ว ระบบจะเข้ารหัสข้อมูลทั้งหมดที่ผู้ใช้สร้างขึ้นโดยอัตโนมัติก่อนที่จะบันทึกลงดิสก์ และการอ่านทั้งหมดจะถอดรหัสข้อมูลโดยอัตโนมัติก่อนที่จะส่งข้อมูลกลับไปยังกระบวนการที่เรียก การเข้ารหัสช่วยให้มั่นใจได้ว่าแม้บุคคลที่ไม่ได้รับอนุญาตจะพยายามเข้าถึงข้อมูล ก็จะไม่สามารถอ่านข้อมูลได้
คีย์สโตร์
Android มีคีย์สโตร์ที่ได้รับการสนับสนุนจากฮาร์ดแวร์ซึ่งมีฟังก์ชันการเข้ารหัสลับที่เก็บเนื้อหาคีย์ไว้ในสภาพแวดล้อมที่ปลอดภัย Android Keystore รองรับการสร้างและนำเข้าคีย์ทั้งแบบสมมาตรและอสมมาตร รวมถึง การเข้ารหัส การถอดรหัส การลงนาม และการตกลงคีย์แบบดั้งเดิม
Security-Enhanced Linux
Android ใช้ Security-Enhanced Linux (SELinux) เพื่อบังคับใช้การควบคุมการเข้าถึงแบบบังคับ (MAC) กับกระบวนการทั้งหมด แม้แต่กระบวนการที่ทำงานด้วยสิทธิ์ระดับรากหรือผู้ใช้ระดับสูง (ความสามารถของ Linux) ซึ่งเป็นส่วนหนึ่งของโมเดลความปลอดภัยของ Android
Trusty TEE
Trusty เป็นระบบปฏิบัติการ (OS) ที่ปลอดภัยซึ่ง มีสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) สำหรับ Android ระบบปฏิบัติการ Trusty ทำงานบนโปรเซสเซอร์เดียวกับระบบปฏิบัติการ Android แต่ Trusty จะแยกออกจากส่วนอื่นๆ ของระบบด้วยฮาร์ดแวร์และซอฟต์แวร์
การเปิดเครื่องที่ได้รับการยืนยัน
การเปิดเครื่องที่ได้รับการยืนยันออกแบบมาเพื่อให้มั่นใจว่าโค้ดที่เรียกใช้ทั้งหมด มาจากแหล่งที่มาที่เชื่อถือได้ (โดยปกติจะเป็น OEM ของอุปกรณ์) ไม่ใช่ จากผู้โจมตีหรือจากความเสียหาย การเปิดเครื่องที่ได้รับการยืนยันสร้างห่วงโซ่ความน่าเชื่อถือแบบเต็ม โดยเริ่มจากรากที่เชื่อถือได้ซึ่งได้รับการปกป้องด้วยฮาร์ดแวร์ ไปจนถึง Bootloader, พาร์ติชันการบูต และพาร์ติชันอื่นๆ ที่ได้รับการยืนยัน