[ของใหม่ Android 7.0] Direct Boot ระบบบูตใหม่ บูตได้แม้เครื่องเข้ารหัสดิสก์ไว้

by mk
25 August 2016 - 06:47

ฟีเจอร์ใหม่ที่น่าสนใจอีกอย่างของ Android 7.0 Nougat คือ Direct Boot หรือการอนุญาตให้แอพบางตัวทำงานบางอย่างได้ทันทีหลังรีบูต โดยไม่ต้องรอให้ผู้ใช้ล็อกอินเข้าระบบครั้งแรกก่อน

อุปกรณ์ Android ช่วงหลังเริ่มเข้ารหัสข้อมูลทั้งเครื่อง (full-disk encryption) เพื่อความปลอดภัยและความเป็นส่วนตัว หลังจากบูตเครื่องขึ้นมา ระบบปฏิบัติการจะไม่สามารถเข้าถึงข้อมูลของผู้ใช้ได้เลยจนกว่าผู้ใช้จะล็อกอินตอนบูตเครื่อง (คนละอย่างกับล็อกอินหน้าล็อกสกรีน) การล็อกอินของผู้ใช้จะปลดล็อคการเข้ารหัสข้อมูลในเครื่อง จากนั้นระบบปฏิบัติการและแอพต่างๆ ถึงค่อยเริ่มทำงาน

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

Android 7.0 แก้ปัญหานี้โดยเปลี่ยนวิธีการเข้ารหัสข้อมูล จากเดิมเข้ารหัสทั้งไดรฟ์ มาเป็นการเข้ารหัสแยกตามไฟล์ (file-based encryption) แทน

หลักการทำงานของมันคือแยกระดับของไฟล์ที่เข้ารหัสเป็น 2 ประเภท

  • Credential encrypted storage การเข้ารหัสโดยต้องใช้การยืนยันตัวตนของผู้ใช้ในการถอดรหัส (แบบเดิมของ Android 6.0) ใช้กับไฟล์ข้อมูลส่วนตัว
  • Device encrypted storage การเข้ารหัสไฟล์ระบบ ที่ไม่ใช่ข้อมูลส่วนตัวของผู้ใช้ เก็บคีย์การถอดรหัสไว้ที่ฮาร์ดแวร์เลย ไม่ต้องรอการใส่รหัสของผู้ใช้ (ของใหม่ใน 7.0)

จากนั้น Android 7.0 จะมีโหมดการบูตแบบใหม่ที่เรียกว่า Direct Boot อนุญาตให้เข้าถึงไฟล์กลุ่ม Device encrypted storage ได้โดยไม่ต้องรอการยืนยันตัวตน ดังนั้น Android 7.0 จะสามารถบูตตัวเองขึ้นมาได้ถึงหน้าจอล็อกอินก่อนเข้าโฮมสกรีน ตัวระบบปฏิบัติการทำงานได้ปกติ ยกเว้นเข้าไม่ถึงข้อมูลในส่วน Credential encrypted storage เท่านั้น

Android 7.0 ยังอนุญาตให้แอพบางตัว มาร่วมรันตอน Direct Boot และสามารถทำงานบางอย่างได้ด้วย เช่น แอพนาฬิกาปลุก แอพโทรศัพท์หรือแอพ SMS ซึ่งนักพัฒนาแอพจำเป็นต้องปรับแก้แอพของตัวเองให้รองรับฟีเจอร์ Direct Boot ก่อนถึงจะใช้งานได้

ฟีเจอร์ file-based encryption และ Direct Boot จะใช้งานได้กับฮาร์ดแวร์ใหม่ที่มาพร้อม Android 7.0 ส่วนเครื่องเก่าที่อัพเกรดเป็น 7.0 แล้วอยากใช้ฟีเจอร์นี้ จะต้องเปลี่ยนวิธีเข้ารหัสไฟล์จาก full-disk encryption มาเป็น file-based encryption ก่อน ซึ่งแปลว่าต้อง wipe ข้อมูลทั้งหมดในเครื่องด้วย

ที่มา - Android Developers, Android Developers Training, Ars Technica

Blognone Jobs Premium