คุณสมบัติความปลอดภัยของ Android, คุณสมบัติความปลอดภัยของ Android

ใช้คุณสมบัติที่อธิบายไว้ในส่วนนี้เพื่อทำให้อุปกรณ์ Android ที่คุณพัฒนามีความปลอดภัยมากที่สุด

แซนด์บ็อกซ์ของแอป

แพลตฟอร์ม Android ใช้ประโยชน์จากการป้องกันตามผู้ใช้ Linux เพื่อระบุและแยกทรัพยากรของแอป ในการดำเนินการนี้ Android จะกำหนด ID ผู้ใช้ที่ไม่ซ้ำกัน (UID) ให้กับแอป Android แต่ละแอปและเรียกใช้ในกระบวนการของตัวเอง Android ใช้ UID นี้เพื่อตั้งค่า App Sandbox ระดับเคอร์เนล

การลงนามแอป

App Signing ช่วยให้นักพัฒนาสามารถระบุผู้สร้างแอปและอัปเดตแอปได้โดยไม่ต้องสร้างอินเทอร์เฟซและสิทธิ์ที่ซับซ้อน ทุกแอปที่ทำงานบนแพลตฟอร์ม Android จะต้องลงนามโดยนักพัฒนา

การรับรองความถูกต้อง

Android ใช้แนวคิดของคีย์เข้ารหัสลับที่มีการควบคุมการเข้าถึงโดยผู้ใช้ ซึ่งต้องใช้พื้นที่จัดเก็บคีย์เข้ารหัสและผู้ให้บริการและผู้ตรวจสอบสิทธิ์ผู้ใช้

บนอุปกรณ์ที่มีเซ็นเซอร์ลายนิ้วมือ ผู้ใช้สามารถลงทะเบียนลายนิ้วมือตั้งแต่หนึ่งลายนิ้วมือขึ้นไป และใช้ลายนิ้วมือเหล่านั้นเพื่อปลดล็อคอุปกรณ์และทำงานอื่นๆ ระบบย่อย Gatekeeper ดำเนินการตรวจสอบรูปแบบอุปกรณ์/รหัสผ่านใน Trusted Execution Environment (TEE)

Android 9 ขึ้นไปมี Protected Confirmation ซึ่งช่วยให้ผู้ใช้สามารถยืนยันธุรกรรมที่สำคัญได้อย่างเป็นทางการ เช่น การชำระเงิน

ไบโอเมตริกซ์

Android 9 ขึ้นไปมี BiometricPrompt API ที่นักพัฒนาแอปสามารถใช้เพื่อผสานรวมการตรวจสอบสิทธิ์แบบไบโอเมตริกเข้ากับแอปของตนในรูปแบบที่ไม่เชื่อเรื่องอุปกรณ์และแบบ modality เฉพาะไบโอเมตริกซ์ที่แข็งแกร่งเท่านั้นที่สามารถรวมเข้ากับ BiometricPrompt ได้

การเข้ารหัส

เมื่ออุปกรณ์ได้รับการเข้ารหัส ข้อมูลที่ผู้ใช้สร้างขึ้นทั้งหมดจะถูกเข้ารหัสโดยอัตโนมัติก่อนที่จะส่งไปยังดิสก์ และทั้งหมดจะอ่านถอดรหัสข้อมูลโดยอัตโนมัติก่อนที่จะกลับสู่กระบวนการเรียก การเข้ารหัสช่วยให้แน่ใจว่าแม้ว่าบุคคลที่ไม่ได้รับอนุญาตจะพยายามเข้าถึงข้อมูล พวกเขาก็จะไม่สามารถอ่านข้อมูลได้

ที่เก็บคีย์

Android นำเสนอคีย์สโตร์ที่สนับสนุนฮาร์ดแวร์ซึ่งให้การสร้าง นำเข้า และส่งออกคีย์ที่ไม่สมมาตร การนำเข้าคีย์สมมาตรแบบดิบ การเข้ารหัสและการถอดรหัสแบบไม่สมมาตรด้วยโหมดการเติมที่เหมาะสม และอื่นๆ

Linux ที่ปรับปรุงความปลอดภัย

ในฐานะส่วนหนึ่งของโมเดลความปลอดภัยของ Android นั้น Android ใช้ Security-Enhanced Linux (SELinux) เพื่อบังคับใช้การควบคุมการเข้าถึง (MAC) บังคับกับกระบวนการทั้งหมด แม้แต่กระบวนการที่ทำงานด้วยสิทธิ์ root/superuser (ความสามารถของ Linux)

สภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE)

Trusty เป็นระบบปฏิบัติการ (OS) ที่ปลอดภัยที่ให้ Trusted Execution Environment (TEE) สำหรับ Android Trusty OS ทำงานบนโปรเซสเซอร์เดียวกันกับระบบปฏิบัติการ Android แต่ Trusty ถูกแยกออกจากส่วนที่เหลือของระบบด้วยทั้งฮาร์ดแวร์และซอฟต์แวร์

บูตที่ตรวจสอบแล้ว

Verified Boot มุ่งมั่นที่จะให้แน่ใจว่าโค้ดที่เรียกใช้งานทั้งหมดมาจากแหล่งที่เชื่อถือได้ (โดยปกติคืออุปกรณ์ OEM) แทนที่จะมาจากผู้โจมตีหรือความเสียหาย โดยจะสร้างห่วงโซ่ความน่าเชื่อถือเต็มรูปแบบ เริ่มต้นจากรากฐานความน่าเชื่อถือที่ได้รับการป้องกันด้วยฮาร์ดแวร์ไปจนถึงบูตโหลดเดอร์ ไปจนถึงพาร์ติชั่นสำหรับบูตและพาร์ติชั่นอื่นๆ ที่ตรวจสอบแล้ว

,

ใช้คุณสมบัติที่อธิบายไว้ในส่วนนี้เพื่อทำให้อุปกรณ์ Android ที่คุณพัฒนามีความปลอดภัยมากที่สุด

แซนด์บ็อกซ์ของแอป

แพลตฟอร์ม Android ใช้ประโยชน์จากการป้องกันตามผู้ใช้ Linux เพื่อระบุและแยกทรัพยากรของแอป ในการดำเนินการนี้ Android จะกำหนด ID ผู้ใช้ที่ไม่ซ้ำกัน (UID) ให้กับแอป Android แต่ละแอปและเรียกใช้ในกระบวนการของตัวเอง Android ใช้ UID นี้เพื่อตั้งค่า App Sandbox ระดับเคอร์เนล

การลงนามแอป

App Signing ช่วยให้นักพัฒนาสามารถระบุผู้สร้างแอปและอัปเดตแอปได้โดยไม่ต้องสร้างอินเทอร์เฟซและสิทธิ์ที่ซับซ้อน ทุกแอปที่ทำงานบนแพลตฟอร์ม Android จะต้องลงนามโดยนักพัฒนา

การรับรองความถูกต้อง

Android ใช้แนวคิดของคีย์เข้ารหัสลับที่มีการควบคุมการเข้าถึงโดยผู้ใช้ ซึ่งต้องใช้พื้นที่จัดเก็บคีย์เข้ารหัสและผู้ให้บริการและผู้ตรวจสอบสิทธิ์ผู้ใช้

บนอุปกรณ์ที่มีเซ็นเซอร์ลายนิ้วมือ ผู้ใช้สามารถลงทะเบียนลายนิ้วมือตั้งแต่หนึ่งลายนิ้วมือขึ้นไป และใช้ลายนิ้วมือเหล่านั้นเพื่อปลดล็อคอุปกรณ์และทำงานอื่นๆ ระบบย่อย Gatekeeper ดำเนินการตรวจสอบรูปแบบอุปกรณ์/รหัสผ่านใน Trusted Execution Environment (TEE)

Android 9 ขึ้นไปมี Protected Confirmation ซึ่งช่วยให้ผู้ใช้สามารถยืนยันธุรกรรมที่สำคัญได้อย่างเป็นทางการ เช่น การชำระเงิน

ไบโอเมตริกซ์

Android 9 ขึ้นไปมี BiometricPrompt API ที่นักพัฒนาแอปสามารถใช้เพื่อผสานรวมการตรวจสอบสิทธิ์แบบไบโอเมตริกเข้ากับแอปของตนในรูปแบบที่ไม่เชื่อเรื่องอุปกรณ์และแบบ modality เฉพาะไบโอเมตริกซ์ที่แข็งแกร่งเท่านั้นที่สามารถรวมเข้ากับ BiometricPrompt ได้

การเข้ารหัส

เมื่ออุปกรณ์ได้รับการเข้ารหัส ข้อมูลที่ผู้ใช้สร้างขึ้นทั้งหมดจะถูกเข้ารหัสโดยอัตโนมัติก่อนที่จะส่งไปยังดิสก์ และทั้งหมดจะอ่านถอดรหัสข้อมูลโดยอัตโนมัติก่อนที่จะกลับสู่กระบวนการเรียก การเข้ารหัสช่วยให้แน่ใจว่าแม้ว่าบุคคลที่ไม่ได้รับอนุญาตจะพยายามเข้าถึงข้อมูล พวกเขาก็จะไม่สามารถอ่านข้อมูลได้

ที่เก็บคีย์

Android นำเสนอคีย์สโตร์ที่สนับสนุนฮาร์ดแวร์ซึ่งให้การสร้าง นำเข้า และส่งออกคีย์ที่ไม่สมมาตร การนำเข้าคีย์สมมาตรแบบดิบ การเข้ารหัสและการถอดรหัสแบบไม่สมมาตรด้วยโหมดการเติมที่เหมาะสม และอื่นๆ

Linux ที่ปรับปรุงความปลอดภัย

ในฐานะส่วนหนึ่งของโมเดลความปลอดภัยของ Android นั้น Android ใช้ Security-Enhanced Linux (SELinux) เพื่อบังคับใช้การควบคุมการเข้าถึง (MAC) บังคับกับกระบวนการทั้งหมด แม้แต่กระบวนการที่ทำงานด้วยสิทธิ์ root/superuser (ความสามารถของ Linux)

สภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE)

Trusty เป็นระบบปฏิบัติการ (OS) ที่ปลอดภัยที่ให้ Trusted Execution Environment (TEE) สำหรับ Android Trusty OS ทำงานบนโปรเซสเซอร์เดียวกันกับระบบปฏิบัติการ Android แต่ Trusty ถูกแยกออกจากส่วนที่เหลือของระบบด้วยทั้งฮาร์ดแวร์และซอฟต์แวร์

บูตที่ตรวจสอบแล้ว

Verified Boot มุ่งมั่นที่จะให้แน่ใจว่าโค้ดที่เรียกใช้งานทั้งหมดมาจากแหล่งที่เชื่อถือได้ (โดยปกติคืออุปกรณ์ OEM) แทนที่จะมาจากผู้โจมตีหรือความเสียหาย โดยจะสร้างห่วงโซ่ความน่าเชื่อถือเต็มรูปแบบ เริ่มต้นจากรากฐานความน่าเชื่อถือที่ได้รับการป้องกันด้วยฮาร์ดแวร์ไปจนถึงบูตโหลดเดอร์ ไปจนถึงพาร์ติชั่นสำหรับบูตและพาร์ติชั่นอื่นๆ ที่ตรวจสอบแล้ว