Google Pay và Mastercard đã bắt đầu triển khai các phương thức thanh toán hỗ trợ sinh trắc học tại Ấn Độ bằng cách sử dụng Phương thức Xác thực Chủ thẻ trên Thiết bị Người tiêu dùng (CDCVM). Người mua hàng xác nhận giao dịch bằng cách quét vân tay hoặc khuôn mặt, và dữ liệu sinh trắc học sẽ được lưu trữ an toàn bên trong điện thoại.

Tại sao CDCVM lại quan trọng vào lúc này

CDCVM chuyển việc kiểm tra "danh tính của bạn" trực tiếp lên thiết bị. Chỉ có một mã thông báo thanh toán (payment token) dùng một lần, được ký bằng mã hóa mới rời khỏi điện thoại, vì vậy dữ liệu sinh trắc học không bao giờ truyền qua internet.

Quy trình hoạt động bên dưới lớp vỏ

  1. Trích xuất đặc trưng (Feature extraction) – Cảm biến (máy đọc vân tay hoặc camera) đưa dữ liệu thô vào Secure Enclave hoặc Môi trường Thực thi Tin cậy (TEE). Các vùng cô lập này xử lý dữ liệu đầu vào mà không làm lộ dữ liệu cho hệ điều hành.
  2. So sánh cục bộ – Thiết bị lưu trữ một mẫu (template) đã được mã hóa của dữ liệu sinh trắc học người dùng. Secure Enclave so sánh dữ liệu quét trực tiếp với mẫu này, tuyệt đối không gửi hình ảnh thô hoặc vectơ đặc trưng (feature vector) đi nơi khác.
  3. Xác thực phần cứng (Hardware attestation) – Khi việc so khớp thành công, enclave sẽ ký giao dịch bằng một khóa riêng (private key) không bao giờ rời khỏi phần cứng. Việc xác thực này chứng minh rằng một dữ liệu sinh trắc học đã được xác minh đã được sử dụng, mà không làm lộ chính dữ liệu sinh trắc học đó.
  4. Tạo mã thông báo (Token generation) – Bản xác thực đã ký sẽ kết hợp với một dịch vụ mã thông báo (token-service) để tạo ra một mã thông báo dùng một lần. Mã thông báo này, chứ không phải dữ liệu sinh trắc học, sẽ được gửi đến người bán và sau đó đến ngân hàng phát hành để quyết toán.

Người bán và ngân hàng chỉ nhìn thấy mã thông báo đã được ký. Tất cả dữ liệu sinh trắc học vẫn nằm trong bộ nhớ được bảo vệ của thiết bị.

Những cạm bẫy mà nhà phát triển phải tránh

  • Gửi các vectơ sinh trắc học – Việc truyền dữ liệu vân tay hoặc khuôn mặt thô sẽ tạo ra rủi ro lộ lọt dữ liệu vĩnh viễn. Vân tay không thể thay đổi nếu cơ sở dữ liệu bị xâm nhập.
  • Tấn công phát lại (Replay attacks) – Các biểu diễn dạng số của dữ liệu sinh trắc học có thể bị đánh chặn và gửi lại để giả mạo cảm biến nếu chúng được truyền qua mạng.
  • Rắc rối về pháp lý – Nhiều khu vực tài phán coi dữ liệu sinh trắc học là thông tin cá nhân cực kỳ nhạy cảm, áp đặt các quy định nghiêm ngặt về lưu trữ, sự đồng ý và thông báo khi có vi phạm.

Hãy coi dữ liệu sinh trắc học như một khóa cục bộ để mở các hoạt động mã hóa; đừng bao giờ gửi nó đi dưới dạng dữ liệu tải (payload).

Danh sách kiểm tra triển khai cụ thể

  • Sử dụng các API sinh trắc học do nền tảng cung cấp để giữ việc thu thập và xử lý bên trong TEE của thiết bị.
  • Lưu trữ mẫu sinh trắc học dưới dạng mã hóa với một khóa được quản lý bởi Secure Enclave; không bao giờ ghi nó vào hệ thống tệp.
  • Yêu cầu xác thực phần cứng (hardware attestation) sau khi so khớp thành công.
  • Tích hợp với một dịch vụ mã hóa (tokenization service) để tiếp nhận bản xác thực và cấp mã thông báo dùng một lần. Hãy bao gồm bản xác thực đã ký nhưng không bao gồm dữ liệu sinh trắc học trong yêu cầu mã thông báo.
  • Xác thực mã thông báo ở phía máy chủ bằng cách sử dụng khóa công khai của bên phát hành. Từ chối bất kỳ mã thông báo nào thiếu chữ ký xác thực hợp lệ.
  • Kiểm tra các trường hợp biên (edge cases) như lỗi cảm biến, từ chối sai (false rejects) và thay đổi thiết bị. Quy trình nên chuyển sang sử dụng mã PIN hoặc mật khẩu mà không làm lộ dữ liệu sinh trắc học.

Bài học rút ra

Khi việc xác thực sinh trắc học được giữ bên trong phần cứng bảo mật của điện thoại và chỉ đơn thuần là ký vào một mã thông báo dùng một lần, người dùng sẽ giữ kín được dữ liệu vân tay hoặc khuôn mặt, đồng thời người bán cũng giảm thiểu được rủi ro lộ lọt thông tin cá nhân nhạy cảm. Đối với các nhà phát triển, quy tắc rất đơn giản: hãy để sinh trắc học mở khóa khóa mã hóa, đừng bao giờ để nó rời khỏi thiết bị.