Trusty TEE

Trusty เป็นระบบปฏิบัติการ (OS) ที่ปลอดภัยซึ่งให้สภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) สำหรับ Android ระบบปฏิบัติการ Trusty ทำงานบนโปรเซสเซอร์เดียวกันกับระบบปฏิบัติการ Android แต่ระบบปฏิบัติการ Trusty แยกออกจากระบบส่วนอื่นๆ ทั้งฮาร์ดแวร์และซอฟต์แวร์ Trusty และ Android จะทํางานควบคู่กัน Trusty มีสิทธิ์เข้าถึงโปรเซสเซอร์และหน่วยความจำหลักของอุปกรณ์อย่างเต็มรูปแบบ แต่แยกออกจากกันโดยสมบูรณ์ การแยกส่วนของ Trusty ช่วยปกป้องจากแอปที่เป็นอันตรายที่ผู้ใช้ติดตั้งไว้และช่องโหว่ที่อาจพบใน Android

Trusty เข้ากันได้กับโปรเซสเซอร์ ARM และ Intel ในระบบ ARM Trusty จะใช้ Trustzone™ ของ ARM เพื่อจำลองเสมือนหน่วยประมวลผลหลักและสร้างสภาพแวดล้อมการดำเนินการที่เชื่อถือได้อย่างปลอดภัย นอกจากนี้ เรายังมีการสนับสนุนที่คล้ายกันบนแพลตฟอร์ม Intel x86 ที่ใช้เทคโนโลยีการจำลองเสมือนของ Intel ด้วย

รูปที่ 1 แผนภาพภาพรวมของ Trusty

Trusty ประกอบด้วย

  • เคอร์เนลระบบปฏิบัติการขนาดเล็กที่มาจาก Little Kernel
  • โปรแกรมควบคุมเคอร์เนล Linux เพื่อโอนข้อมูลระหว่างสภาพแวดล้อมที่ปลอดภัยกับ Android
  • ไลบรารีพื้นที่ผู้ใช้ของ Android เพื่อสื่อสารกับแอปพลิเคชันที่เชื่อถือได้ (นั่นคือ งานที่ปลอดภัย/บริการที่ปลอดภัย) ผ่านไดรเวอร์เคอร์เนล

หมายเหตุ: Trusty และ Trusty API อาจมีการเปลี่ยนแปลง ดูข้อมูลเกี่ยวกับ Trusty API ได้ที่เอกสารอ้างอิง API

เหตุผลที่ควรใช้ Trusty

ระบบปฏิบัติการ TEE อื่นๆ มักจะจัดหาในรูปแบบบล็อกไบนารีโดยผู้ให้บริการบุคคลที่สามหรือพัฒนาขึ้นภายใน การพัฒนาระบบ TEE ภายในหรือการอนุญาตให้ใช้สิทธิ TEE จากบุคคลที่สามอาจทำให้ผู้จำหน่ายระบบวงจรรวมบนชิป (SoC) และ OEM เสียค่าใช้จ่าย ค่าใช้จ่ายทางการเงินร่วมกับระบบของบุคคลที่สามที่ไม่น่าเชื่อถือจะทําให้ระบบนิเวศของ Android ไม่เสถียร Trusty มีให้บริการแก่พาร์ทเนอร์เป็นทางเลือกโอเพนซอร์สที่เชื่อถือได้และไม่มีค่าใช้จ่ายสำหรับสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ Trusty มอบระดับความโปร่งใสที่ระบบซอฟต์แวร์แบบซอร์สโค้ดปิดไม่มีทางทำได้

Android รองรับการใช้งาน TEE หลายรูปแบบ คุณจึงไม่ต้องจำกัดตัวเองให้ใช้ Trusty ระบบปฏิบัติการ TEE แต่ละระบบมีวิธีติดตั้งใช้งานแอปพลิเคชันที่เชื่อถือได้แตกต่างกันไป ความแตกแยกนี้อาจเป็นปัญหาสำหรับนักพัฒนาแอปพลิเคชันที่เชื่อถือได้ซึ่งพยายามทำให้แอปของตนทำงานได้บนอุปกรณ์ Android ทุกเครื่อง การใช้ Trusty เป็นมาตรฐานช่วยให้นักพัฒนาแอปพลิเคชันสร้างและติดตั้งใช้งานแอปพลิเคชันได้อย่างง่ายดายโดยไม่ต้องคำนึงถึงระบบ TEE หลายระบบ TEE ที่เชื่อถือได้มอบความโปร่งใส การทํางานร่วมกัน ความสามารถในการตรวจสอบโค้ด และความสามารถในการแก้ไขข้อบกพร่องให้แก่นักพัฒนาซอฟต์แวร์และพาร์ทเนอร์ นักพัฒนาแอปพลิเคชันที่เชื่อถือได้สามารถรวมเครื่องมือและ API ที่ใช้ร่วมกันเพื่อลดความเสี่ยงในการทำให้เกิดช่องโหว่ด้านความปลอดภัย นักพัฒนาแอปเหล่านี้จะมั่นใจได้ว่าสามารถพัฒนาแอปพลิเคชันและนําไปใช้งานซ้ำในอุปกรณ์หลายเครื่องได้โดยไม่ต้องพัฒนาเพิ่มเติม

แอปพลิเคชันและบริการ

แอปพลิเคชันที่เชื่อถือได้หมายถึงคอลเล็กชันไฟล์ไบนารี (ไฟล์ที่เรียกใช้งานได้และไฟล์ทรัพยากร) ไฟล์ Manifest แบบไบนารี และลายเซ็นการเข้ารหัส ขณะรันไทม์ แอปพลิเคชัน Trusty จะทำงานเป็นกระบวนการแยกต่างหากในโหมดที่ไม่มีสิทธิ์ภายใต้เคอร์เนล Trusty แต่ละกระบวนการจะทำงานในแซนด์บ็อกซ์หน่วยความจำเสมือนของตนเองโดยใช้ความสามารถของหน่วยการจัดการหน่วยความจำของโปรเซสเซอร์ TEE บิลด์ของฮาร์ดแวร์จะเปลี่ยนกระบวนการที่ Trusty ปฏิบัติตาม แต่ตัวอย่างเช่น เคอร์เนลจะกำหนดเวลากระบวนการเหล่านี้โดยใช้ตัวจัดตารางเวลาแบบ Round-Robin ตามลําดับความสําคัญซึ่งขับเคลื่อนโดยการนับเวลาของนาฬิกาที่ปลอดภัย แอปพลิเคชันที่เชื่อถือได้ทั้งหมดมีลำดับความสำคัญเดียวกัน

รูปที่ 2 ภาพรวมของแอปพลิเคชันที่เชื่อถือได้

แอปพลิเคชันที่เชื่อถือได้ของบุคคลที่สาม

ปัจจุบันแอปพลิเคชัน Trusty ทั้งหมดพัฒนาโดยบุคคลที่สามรายเดียวและแพ็กเกจมาพร้อมกับอิมเมจเคอร์เนล Trusty บูตโหลดเดอร์จะลงชื่อและยืนยันทั้งรูปภาพระหว่างการบูต ขณะนี้ Trusty ยังไม่รองรับการพัฒนาแอปพลิเคชันของบุคคลที่สาม แม้ว่า Trusty จะเปิดใช้การพัฒนาแอปพลิเคชันใหม่ แต่ก็ต้องดำเนินการอย่างระมัดระวังอย่างยิ่ง เนื่องจากแอปพลิเคชันใหม่แต่ละรายการจะเพิ่มพื้นที่ฐานการคำนวณที่เชื่อถือได้ (TCB) ของระบบ แอปพลิเคชันที่เชื่อถือได้สามารถเข้าถึงข้อมูลลับของอุปกรณ์และสามารถทําการคํานวณหรือการเปลี่ยนรูปแบบข้อมูลได้ ความสามารถในการพัฒนาแอปพลิเคชันใหม่ๆ ที่ทำงานใน TEE จะเปิดโอกาสใหม่ๆ มากมายในการสร้างนวัตกรรม อย่างไรก็ตาม เนื่องจากคำจำกัดความของ TEE นั้น แอปพลิเคชันเหล่านี้จึงไม่สามารถเผยแพร่ได้หากไม่มีการระบุความน่าเชื่อถือรูปแบบใดรูปแบบหนึ่ง โดยปกติแล้ว ลายเซ็นนี้จะอยู่ในรูปแบบลายเซ็นดิจิทัลโดยนิติบุคคลที่ผู้ใช้ผลิตภัณฑ์ที่ใช้แอปพลิเคชันเชื่อถือ

การใช้งานและตัวอย่าง

สภาพแวดล้อมการดำเนินการที่เชื่อถือได้กำลังกลายเป็นมาตรฐานในอุปกรณ์เคลื่อนที่อย่างรวดเร็ว ผู้ใช้พึ่งพาอุปกรณ์เคลื่อนที่มากขึ้นเรื่อยๆ ในชีวิตประจําวัน และความต้องการด้านความปลอดภัยก็เพิ่มขึ้นอย่างต่อเนื่อง อุปกรณ์เคลื่อนที่ที่มี TEE จะปลอดภัยกว่าอุปกรณ์ที่ไม่มี TEE

ในอุปกรณ์ที่มีการใช้งาน TEE มักจะเรียกตัวประมวลผลหลักว่า "ไม่เชื่อถือได้" ซึ่งหมายความว่าจะเข้าถึงพื้นที่บางส่วนของ RAM, รีจิสเตอร์ฮาร์ดแวร์ และฟิวส์แบบเขียนได้ครั้งเดียวที่ผู้ผลิตจัดเก็บข้อมูลลับ (เช่น คีย์การเข้ารหัสเฉพาะอุปกรณ์) ไว้ไม่ได้ ซอฟต์แวร์ที่ทำงานบนโปรเซสเซอร์หลักจะมอบหมายการดำเนินการที่ต้องใช้ข้อมูลลับไปยังโปรเซสเซอร์ TEE

ตัวอย่างที่รู้จักกันอย่างแพร่หลายที่สุดในระบบนิเวศของ Android คือเฟรมเวิร์ก DRM สำหรับเนื้อหาที่ได้รับการคุ้มครอง ซอฟต์แวร์ที่ทำงานบนโปรเซสเซอร์ TEE สามารถเข้าถึงคีย์เฉพาะอุปกรณ์ที่จําเป็นสําหรับถอดรหัสเนื้อหาที่ได้รับการปกป้อง หน่วยประมวลผลหลักจะเห็นเฉพาะเนื้อหาที่เข้ารหัส ซึ่งจะมอบความปลอดภัยในระดับสูงและการป้องกันการโจมตีจากซอฟต์แวร์

TEE ยังมีการใช้งานอื่นๆ อีกมากมาย เช่น การชําระเงินผ่านอุปกรณ์เคลื่อนที่ ธนาคารที่ปลอดภัย การตรวจสอบสิทธิ์แบบหลายปัจจัย การป้องกันการรีเซ็ตอุปกรณ์ พื้นที่เก็บข้อมูลถาวรที่ได้รับการป้องกันจากการเล่นซ้ำ การจัดการ PIN และลายนิ้วมือที่ปลอดภัย ตลอดจนการตรวจหามัลแวร์