Bảo mật NFC

Android hỗ trợ tính năng mô phỏng thẻ không phải trên máy chủ, tức là tính năng mô phỏng thẻ NFC bằng một phần tử bảo mật. Để biết thêm thông tin, hãy xem bài viết Tổng quan về quy trình mô phỏng thẻ dựa trên máy chủ.

Trong một số trường hợp sử dụng, chẳng hạn như dùng FeliCa cho phương tiện công cộng, bạn được phép mô phỏng thẻ ngoài máy chủ khi màn hình thiết bị bị khoá hoặc tắt, hoặc khi thiết bị tắt.

NFC bảo mật là một tính năng được giới thiệu trong Android 10, cho phép chỉ bật tính năng mô phỏng thẻ NFC ngoài máy chủ lưu trữ khi màn hình của thiết bị đang mở khoá. Khi triển khai tính năng này, người dùng có thể bật chế độ NFC bảo mật để tăng cường bảo mật.

Triển khai

Để triển khai tính năng NFC an toàn, thiết bị phải có bộ điều khiển NFC hỗ trợ tiêu chuẩn NCI 2.0 và phải sử dụng khung NFC của Dự án nguồn mở Android (AOSP). Thêm phần cứng (ro.boot.hardware.sku) hỗ trợ tính năng NFC an toàn trong tệp XML tài nguyên NFC bằng thuộc tính config_skuSupportsSecureNfc.

Framework API

Để triển khai Secure NFC, hãy triển khai các API khung sau đây trong Dự án nguồn mở Android:

Giao diện người dùng Cài đặt

Trong ứng dụng Cài đặt, hãy thêm một nút bật/tắt để cho phép người dùng bật và tắt tính năng NFC an toàn. Bạn có thể tuỳ chỉnh chế độ cài đặt mặc định trong ứng dụng Cài đặt thành bật hoặc tắt.

Hình 1 minh hoạ ví dụ về một công tắc bật/tắt để bật và tắt NFC an toàn trong ứng dụng Cài đặt theo đường dẫn Cài đặt > Thiết bị đã kết nối > Lựa chọn ưu tiên về kết nối > NFC > Yêu cầu mở khoá thiết bị để sử dụng NFC.

Quy trình giao diện người dùng NFC bảo mật

Hình 1. Ví dụ về nút bật/tắt để bật và tắt chế độ bảo mật NFC

Khi bạn bật chế độ Bảo mật NFC và người dùng đặt thiết bị lên đầu đọc NFC, Android sẽ hiển thị thông báo Mở khoá để sử dụng NFC trên màn hình khoá như minh hoạ trong Hình 2.

Thông báo về NFC bảo mật

Hình 2. Mở khoá để sử dụng thông báo NFC trên màn hình khoá

Xác nhận kết quả

Để xác thực việc triển khai, hãy bật tính năng NFC an toàn và xác minh rằng tính năng mô phỏng thẻ NFC bị tắt khi màn hình thiết bị tắt hoặc bị khoá, cũng như khi thiết bị tắt.