ข้อควรพิจารณา
ข้อควรพิจารณาต่อไปนี้จะต้องได้รับการแก้ไขเพื่อให้มั่นใจถึงความสมบูรณ์ของ Android Protected Confirmation หากไม่สามารถจัดการข้อควรพิจารณาเหล่านี้ได้อย่างน่าพอใจ จะไม่สามารถใช้งานการยืนยันที่ได้รับการคุ้มครองบนอุปกรณ์ได้
ข้อควรพิจารณาเกี่ยวกับเคอร์เนล Linux
การยืนยันที่ได้รับการป้องกันได้รับการออกแบบมาให้ทำงานอย่างปลอดภัยแม้ว่าเคอร์เนลของอุปกรณ์จะถูกบุกรุกก็ตาม ในขณะที่กล่องโต้ตอบการยืนยันที่ได้รับการป้องกันทำงานอยู่ เคอร์เนลไม่สามารถรบกวนความสมบูรณ์ของเนื้อหาบนหน้าจอ ความสมบูรณ์ของอินพุตของผู้ใช้ และความเป็นอะตอมมิกระหว่างอินพุตและเอาต์พุตของผู้ใช้ ในทางสถาปัตยกรรม เคอร์เนลต้องได้รับการป้องกันไม่ให้เพิ่มการตัดสินใจของผู้ใช้ และจากการปลอมแปลงกิจกรรมของผู้ใช้ตั้งแต่แรก เคอร์เนลไม่ถือว่าน่าเชื่อถือสำหรับกรณีการใช้งานนี้ เนื่องจากอาจอยู่ภายใต้การควบคุมของผู้โจมตีหรือถูกแทนที่ด้วยสิ่งที่แตกต่างไปจากเดิมอย่างสิ้นเชิง
ข้อควรพิจารณาเกี่ยวกับเฟิร์มแวร์
สามารถใช้การยืนยันที่ได้รับการป้องกันบนอุปกรณ์ได้ก็ต่อเมื่อส่วนประกอบทั้งหมดที่เกี่ยวข้องมีเฟิร์มแวร์ที่เชื่อถือได้ การยืนยันที่ได้รับการป้องกันได้รับการออกแบบมาเพื่อให้แน่ใจว่าผู้ใช้มีโอกาสอ่านข้อความที่แสดงใน Trusted UI เพื่อตัดสินใจโดยมีข้อมูลประกอบว่าจะดำเนินการธุรกรรมต่อไปหรือไม่ ไดรเวอร์แผงจอแสดงผลมีความสำคัญอย่างยิ่ง เนื่องจากอาจทำให้ผู้ใช้ไม่สามารถดู Trusted UI ได้
ข้อควรพิจารณาในการป้อนข้อมูล
เลือกวิธีการป้อนข้อมูลที่ปลอดภัยเพื่อให้แน่ใจว่าเหตุการณ์อินพุตที่สร้างโดยวิธีการป้อนข้อมูลที่เลือกนี้จะไม่ถูกส่งไปยังกล่องโต้ตอบการยืนยันที่ได้รับการป้องกัน เว้นแต่ผู้ใช้จะสร้างเหตุการณ์ในขณะที่กล่องโต้ตอบนั้นทำงานอยู่
ฮาร์ดแวร์ทางกายภาพ
ส่วนประกอบใดๆ ที่สามารถควบคุมได้ด้วยเคอร์เนลของ Android เช่น ระบบบนชิป (SoC) หรือวงจรรวมการจัดการพลังงาน (PMIC) จะต้องไม่สามารถขับเคลื่อนสายไฟที่เชื่อมต่อกับปุ่มยืนยันทางกายภาพได้
ข้อควรพิจารณาเกี่ยวกับคอนโทรลเลอร์ระบบสัมผัส
การยืนยันที่ได้รับการป้องกันสามารถใช้ปุ่มซอฟต์แวร์บนหน้าจอเป็นอินพุตได้ เมื่อใดก็ตามที่ TEE ขับเคลื่อนตัวควบคุมระบบสัมผัส จะต้องดำเนินมาตรการเพื่อฆ่าเชื้อสถานะของตัวควบคุมระบบสัมผัส
พฤติกรรมที่คาดหวัง
การขัดจังหวะ
หากระบบขัดจังหวะเซสชันการยืนยันเนื่องจากมีสายเรียกเข้าหรือเหตุการณ์พลังงาน HAL จะต้องรายงาน ResponseCode::Aborted
แอปได้รับการโทรกลับ onCanceled()
และรู้ว่าผู้ใช้ไม่ได้เลือกการกระทำ การเตือนไม่จำเป็นต้องยกเลิกเซสชัน แต่จำเป็นต้องแจ้งให้ผู้ใช้ทราบ ไม่อนุญาตให้วางซ้อนการแจ้งเตือนทุกชนิดในขณะที่กล่องโต้ตอบทำงานอยู่
ป้อนข้อมูลระยะเวลาผ่อนผัน
หลังจากที่เริ่มต้นการยืนยันที่ได้รับการป้องกันแล้ว อินพุตจะต้องคงสถานะไม่ทำงานเป็นเวลาอย่างน้อย 1 วินาทีก่อนที่จะตอบสนองต่อการโต้ตอบของผู้ใช้ ระยะเวลาผ่อนผันนี้ช่วยให้แน่ใจว่าผู้ใช้มีโอกาสที่จะตอบสนองต่อกล่องโต้ตอบการยืนยันที่ไม่คาดคิด ระยะเวลาผ่อนผันนี้ต้องบังคับใช้โดยแอปที่เชื่อถือได้
การหมุนหน้าจอ
แนวตั้งเป็นโหมดที่ได้รับคำสั่งเพียงโหมดเดียว และไม่รองรับการหมุนหน้าจอ การหมุนหน้าจอทำให้เกิดการละเมิดต่อระบบที่ถูกบุกรุก เช่น การวางปุ่มที่ทำให้เข้าใจผิด หรือการจัดการข้อความในส่วนเนื้อหา
ความล้มเหลวในการแสดงข้อความเนื้อหา
มี ขอบเขตฮาร์ดขนาด 6144 (0x1800) ไบต์ สำหรับข้อความเนื้อหา รวมถึงข้อมูลที่ไม่แสดงเพิ่มเติมและข้อมูลส่วนหัว CBOR นอกจากนี้ยังมีขอบเขตอ่อนที่ต้องบังคับใช้ หากข้อความที่แสดงผลไม่พอดีกับพื้นที่หน้าจอที่มีอยู่อย่างสมบูรณ์ ตรวจสอบให้แน่ใจว่า Protected Confirmation ถูกยกเลิกและธุรกรรมจะถูกยกเลิก หาก MessageSize
เกินขนาดสูงสุดที่อนุญาต การใช้งานของคุณจะต้องส่งคืน UIErrorMessageTooLong
เมื่อ promptUserConfirmation
แนวทางปฏิบัติที่ดีที่สุดคือการจัดรูปแบบข้อความเนื้อหาหลังจากได้รับการเรียก API ข้อความเนื้อหาจะต้องแสดงให้ผู้ใช้เห็นแบบเต็ม
จอแสดงผลรอง
จอแสดงผลรองได้รับการรองรับภายใต้เงื่อนไขบางประการ ต้องรักษาความสมบูรณ์ของเอาต์พุตและการป้อนข้อมูลของผู้ใช้ และไม่สามารถแสดงข้อมูลที่ทำให้เข้าใจผิดด้วยวิธีอื่นได้ มิฉะนั้น กล่องโต้ตอบอาจแสดงบนจอแสดงผลหลักเท่านั้น และจอแสดงผลอื่นๆ ทั้งหมดควรปิดใช้งานหรือเว้นว่างไว้ โซลูชันสตรีมมิ่งและการแชร์หน้าจอไม่ได้รับอนุญาตให้แสดงกล่องโต้ตอบหรือสร้างการยืนยัน