Triển khai xác nhận được bảo vệ

Những yếu tố nên cân nhắc

Bạn phải giải quyết các vấn đề sau đây để đảm bảo tính toàn vẹn của API Xác nhận bảo vệ của Android. Nếu không thể giải quyết thỏa đáng các vấn đề cần cân nhắc này, thì bạn không thể triển khai tính năng Xác nhận được bảo vệ trên thiết bị.

Những điểm cần cân nhắc về nhân Linux

Protected Confirmation được thiết kế để hoạt động an toàn ngay cả khi hạt nhân của thiết bị bị xâm phạm. Khi hộp thoại Xác nhận được bảo vệ đang hoạt động, hạt nhân không thể can thiệp vào tính toàn vẹn của nội dung màn hình, tính toàn vẹn của dữ liệu đầu vào của người dùng và tính nguyên tử giữa dữ liệu đầu vào và đầu ra của người dùng. Về mặt cấu trúc, trước tiên, hạt nhân phải được ngăn chặn để không tăng cường quyết định của người dùng và không giả mạo các sự kiện của người dùng. Hạt nhân không được coi là đáng tin cậy cho trường hợp sử dụng này, vì hạt nhân có thể nằm dưới quyền kiểm soát của kẻ tấn công hoặc bị thay thế bằng một hạt nhân hoàn toàn khác.

Những điều cần cân nhắc về chương trình cơ sở

Bạn chỉ có thể triển khai tính năng Xác nhận được bảo vệ trên một thiết bị nếu tất cả các thành phần liên quan đều có phần mềm cơ sở đáng tin cậy. Tính năng Xác nhận được bảo vệ được thiết kế để đảm bảo rằng người dùng có cơ hội đọc thông báo hiển thị trong Giao diện người dùng đáng tin cậy để đưa ra quyết định sáng suốt về việc có tiếp tục giao dịch hay không. Trình điều khiển bảng hiển thị đặc biệt quan trọng vì điều này có thể khiến người dùng không xem được Giao diện người dùng đáng tin cậy.

Những điều cần cân nhắc về dữ liệu đầu vào

Chọn một phương thức nhập an toàn để đảm bảo rằng các sự kiện nhập do phương thức nhập đã chọn này tạo ra sẽ không được truyền đến hộp thoại Xác nhận được bảo vệ, trừ phi người dùng tạo sự kiện trong khi hộp thoại đó đang hoạt động.

Phần cứng thực

Mọi thành phần có thể được nhân kernel Android kiểm soát, chẳng hạn như hệ thống trên chip (SoC) hoặc mạch tích hợp quản lý nguồn (PMIC), đều không được điều khiển dây kết nối với nút xác nhận thực.

Những điều cần cân nhắc về bộ điều khiển cảm ứng

Protected Confirmation có thể sử dụng các nút phần mềm trên màn hình làm phương thức nhập. Bất cứ khi nào bộ điều khiển cảm ứng được TEE điều khiển, bạn phải thực hiện các biện pháp để dọn dẹp trạng thái của bộ điều khiển cảm ứng.

Hành vi dự kiến

Gián đoạn

Nếu hệ thống làm gián đoạn phiên xác nhận do một cuộc gọi điện thoại hoặc sự kiện nguồn điện sắp diễn ra, thì HAL phải báo cáo ResponseCode::Aborted. Ứng dụng nhận được lệnh gọi lại onCanceled() và biết rằng người dùng không chọn thao tác nào. Chuông báo không cần huỷ phiên hoạt động nhưng cần thông báo cho người dùng. Không được phép có lớp phủ thông báo thuộc bất kỳ loại nào trong khi hộp thoại đang hoạt động.

Nhập thời gian ân hạn

Sau khi quy trình Xác nhận được bảo vệ được bắt đầu, phương thức nhập cần vẫn ở trạng thái không hoạt động trong tối thiểu 1 giây trước khi phản hồi hoạt động tương tác của người dùng. Khoảng thời gian gia hạn này đảm bảo rằng người dùng có cơ hội phản ứng với hộp thoại xác nhận không mong muốn. Ứng dụng đáng tin cậy phải thực thi thời gian ân hạn này.

Xoay màn hình

Chế độ dọc là chế độ bắt buộc duy nhất và không hỗ trợ tính năng xoay màn hình. Tính năng xoay màn hình có thể tạo điều kiện cho hành vi sai trái trên một hệ thống bị xâm nhập, chẳng hạn như đặt nút gây hiểu lầm hoặc thao túng văn bản nội dung.

Lỗi hiển thị văn bản nội dung

Có một ranh giới cứng là 6144 (0x1800) byte cho phần nội dung văn bản, bao gồm cả dữ liệu không hiển thị bổ sung và thông tin tiêu đề CBOR. Ngoài ra, bạn phải thực thi một ranh giới mềm. Nếu thông báo hiển thị không vừa với không gian màn hình hiện có, hãy đảm bảo rằng Protected Confirmation sẽ huỷ và giao dịch sẽ bị huỷ. Nếu MessageSize vượt quá kích thước tối đa cho phép, thì quá trình triển khai của bạn phải trả về UIErrorMessageTooLong trên promptUserConfirmation.

Bạn nên định dạng nội dung sau khi nhận được lệnh gọi API. Người dùng phải thấy toàn bộ văn bản nội dung.

Màn hình phụ

Màn hình phụ được hỗ trợ trong một số điều kiện nhất định. Phải duy trì tính toàn vẹn của đầu ra và dữ liệu đầu vào của người dùng, đồng thời không được hiển thị thông tin gây hiểu lầm thông qua các phương tiện khác. Nếu không, hộp thoại có thể chỉ hiển thị trên màn hình chính và tất cả màn hình khác sẽ bị vô hiệu hoá hoặc trống. Các giải pháp phát trực tuyến và chia sẻ màn hình không được phép hiển thị hộp thoại hoặc tạo thông báo xác nhận.