Ứng dụng SQRC vào bài toán xác thực khuôn mặt

09:00 | 13/06/2022 | MẬT MÃ DÂN SỰ
Trong vài năm trở lại đây, mã QR đang được áp dụng hết sức phổ biến cho các giải pháp kiểm soát ra vào, check-in địa điểm, thanh toán,… bởi đặc tính đơn giản, không yêu cầu tiếp xúc trực tiếp. Tuy nhiên, việc sử dụng mã QR truyền thống cũng tiềm ẩn nguy cơ mất an toàn thông tin, như có thể bị làm giả hoặc được sử dụng sai mục đích, không đúng đối tượng được ủy quyền.

Sử dụng mã QR an toàn (Secure Quick Response Code - SQRC) kết hợp với việc xác thực khuôn mặt của người sở hữu mã QR có thể giải quyết được một số vấn đề mà giải pháp truyền thống gặp phải, cụ thể như:

- Thông tin cá nhân của chủ sở hữu được mã hóa, chỉ các máy quét được ủy quyền có chứa khóa mã mới có thể giải mã, từ đó đảm bảo an toàn tránh được nguy cơ bị đánh cắp thông tin.

- Các thành phần dữ liệu trong mã SQRC được xác thực bởi thuật toán ký số, ngăn chặn các hành vi làm giả.

- Thông tin nhận dạng khuôn mặt của người sở hữu được lưu trữ trong mã SQRC. Khi tiến hành xác minh, dữ liệu đó sẽ được đọc và so sánh với dữ liệu nhận dạng khuôn mặt của người đang sử dụng mã. Đảm bảo chỉ đúng người được ủy quyền mới có khả năng sử dụng mã SQRC đã được cấp.

NGUY CƠ MẤT AN TOÀN TỪ QR CODE

Ban đầu, mã QR được thiết kế để sử dụng trong việc quản lý hàng tồn kho với các ưu điểm như tốc độ xử lý nhanh và có khả năng sửa lỗi. Sau đó, Công ty Denso Wave của Nhật Bản (công ty sáng tạo và phát triển ra mã QR) đã chia sẻ mã QR tự do và trong thập kỷ tiếp theo, một số tổ chức tiêu chuẩn đã phát triển các hướng dẫn riêng của họ để triển khai mã QR theo tiêu chuẩn ISO/IEC18004.

Bên cạnh những ưu điểm của mã QR, còn có một số nhược điểm, điển hình là nguy cơ không đảm bảo được an toàn cho các thông tin chứa trong mã. Do không có cơ chế để bảo vệ dữ liệu đã được mã, bất cứ thiết bị có camera nào có chức năng quét mã đều có thể đọc được nội dung trong đó. Trong trường hợp mã QR có chứa các dữ liệu cá nhân quan trọng có thể bị kẻ xấu khai thác. Một ví dụ thực tế của việc sử dụng mã QR không an toàn hiện nay có thể kể đến như việc sử dụng mã QR check-in trong ứng dụng phòng chống dịch PC Covid sai mục đích. Thông tin được lưu trữ trong mã này có chứa các dữ liệu cá nhân như ngày sinh, số chứng minh nhân dân, số điện thoại,... Khi một số đơn vị, cá nhân in mã QR để ra thẻ đeo, hay chụp ảnh chia sẻ lên mạng Internet thì có thế dẫn đến nguy cơ kẻ xấu lợi dụng đánh cắp các thông tin cá nhân đó. Từ những hạn chế của mã QR truyền thống, SQRC ra đời để khắc phục những nhược điểm về an toàn và bảo mật.

KHÁI NIỆM VÀ QUÁ TRÌNH TẠO MÃ SQRC

Khái niệm mã SQRC

Một mã SQRC duy nhất có thể mang hai thành phần dữ liệu công khai và dữ liệu riêng tư. Dữ liệu cá nhân chỉ có thể được đọc bằng một đầu đọc chuyên dụng có khóa mật mã, giúp bảo vệ an toàn cho dữ liệu. SQRC có hình thức tương tự như một mã QR tiêu chuẩn và kế thừa toàn bộ tính năng, giữ nguyên tính dễ dàng quét nội dung và khả năng chịu lỗi. Các đặc điểm cải tiến của mã SQRC có thể kể đến như:

- Thông tin công khai vẫn có thể đọc được từ bất kỳ máy quét mã QR thông thường nào.

- Bảo vệ thông tin cá nhân, chỉ các máy quét được ủy quyền mới có thể đọc được phần dữ liệu bí mật.

- Một số phương pháp mã QR an toàn khác sử dụng khu vực sửa lỗi để che giấu thông tin bí mật, vì vậy khi phần mã này bị hỏng có thể dẫn đến việc mã bị hỏng. Ngược lại, với SQRC thì vẫn giữ nguyên cơ chế sửa lỗi như thông thường.

Thông tin bí mật của SQRC được bảo vệ bằng mã hóa khóa bí mật, trong đó chỉ những máy quét có hỗ trợ SQRC cùng ứng dụng được ủy quyền giải mã có thể truy cập khóa bí mật được sử dụng cho một mã hóa SQRC cụ thể mới thực sự có thể đọc và giải mã thông tin riêng tư.

Quá trình tạo mã SQRC

Để tạo thành phần bí mật cho phần thông tin riêng tư trong mã SQRC. Dữ liệu trước khi được chuyển thành bytestring sẽ được mã hóa với thuật toán khóa đối xứng AES trước. Tương tự với quá trình quét mã, phần thông tin riêng tư sau đó được đọc và giải mã với khóa bí mật tương ứng với quá trình mã hóa (Hình 1).

Hình 1. Tích hợp mã hóa dữ liệu vào quy trình tạo mã

Để bổ sung khả năng đảm bảo tính toàn vẹn cho mã SQRC, dữ liệu sau khi mã hóa bởi thuật toán AES sẽ được tạo bản băm và mã hóa bằng khóa bí mật của thuật toán RSA để tạo chữ ký số.

Tương tự với quá trình quét mã, máy quét sẽ sử dụng khóa công khai của thuật toán RSA để xác thực mã SQRC và đọc được dữ liệu cuối cùng.

ỨNG DỤNG SQRC VÀO BÀI TOÁN XÁC THỰC KHUÔN MẶT

Hệ thống sử dụng nhận dạng khuôn mặt kết hợp với SQRC có một số ưu điểm so với một hệ thống nhận diện khuôn mặt thông thường khác như:

- Đối với hệ thống xác thực kết hợp giữa SQRC và nhận diện khuôn mặt sẽ đơn giản hơn các hệ thống khác vì không yêu cầu hiệu năng cao về thiết bị. Bất cứ thiết bị nào có khả năng đọc mã QR thông thường đều có thể sử dụng để chạy ứng dụng xác thực, từ đó giảm độ phức tạp và tiết kiệm được chí phí đáng kể về thiết bị cũng như hạ tầng.

Hình 2. Quy trình tạo và kiểm tra mã QR

- Do không yêu cầu về cơ sở dữ liệu và mô hình được huấn luyện để nhận diện. Chính vì vậy, các thành phần trong hệ thống xác thực SQRC kết hợp với nhận diện khuôn mặt có thể hoạt động độc lập và hoàn toàn ngoại tuyến. Vì vậy giúp tăng cường tính bảo mật, tránh được nguy cơ lộ lọt dữ liệu trên đường truyền hay dữ liệu lưu trữ tại trạng thái nghỉ.

KIẾN TRÚC HỆ THỐNG CỦA SQRC

Hệ thống SQRC sẽ bao gồm 2 thành phần chính Creator System và Authenticator System (Hình 3).

Hình 3. Kiến trúc tổng quan hệ thống

Creator System

Thành phần này có thể được triển khai trên một máy chủ và hoạt động hoàn toàn độc lập hoặc có thể cho phép kết nối từ các Authenticator System. Các tính năng chính trên Creator System bao gồm:

- Khởi tạo và lưu trữ các khóa mật mã, bao gồm khóa bí mật cho thuật toán AES để mã hóa dữ liệu cá nhân và cặp khóa RSA cho ký số dữ liệu được mã trong SQRC.

- Sinh mã SQRC để cấp cho người sử dụng. Creator System sử dụng các API cho phép hệ thống có khả năng mềm dẻo, dễ dàng tích hợp với các giải pháp khác. Mặc định các API này có khả năng cho phép kết nối từ các Authenticator System về để thực hiện yêu cầu cấp mới mã SQRC cho người dùng, giao tiếp với giao diện cho phép người quản trị quản lý và vận hành hệ thống trên giao diện Website quản trị.

Dữ liệu nhận dạng khuôn mặt có thể đưa vào qua hai phương pháp, qua hình ảnh tĩnh do người quản trị đăng lên qua giao diện quản trị hoặc từ các AS request đến API và từ các nguồn truyền video như IPCamera, Smartphone,…

Authenticator System

Thành phần này có thể được triển khai dưới dạng một ứng dụng trên các thiết bị người dùng nào có khả năng quét mã QR mà không cần yêu cầu cao về cấu hình. Có thể hoạt động hoàn toàn độc lập hoặc kết nối về Creator System thông qua sử dụng các API để lấy các khóa mã hóa cần thiết, đăng ký tạo mới mã SQRC cho người dùng. Các chức năng chính trên Authenticator System bao gồm:

- Xác thực mã SQRC người sử dụng, ghi lại nhật ký các sự kiện xác thực thành công và thất bại.

- Đẩy thông tin người dùng tới API của Creator System để đăng ký tạo mới mã SQRC cho người dùng.

Authenticator System cũng hỗ trợ các API cho phép hệ thống có khả năng mềm dẻo, dễ dàng tích hợp với các giải pháp khác. Giao tiếp với giao diện cho phép người quản trị vận hành hệ thống trên giao diện website. Authenticator System sẽ liên tục nhận dữ liệu nguồn vào từ nguồn truyền video như IPCamera, Smartphone,… để tự động phát hiện, phân tích và xác thực khi người dùng có hành động quét mã SQRC của mình. Nhật ký sự kiện được lưu trữ trong cơ sở dữ liệu và bộ nhớ của chính thiết bị ứng dụng đang hoạt động.

Toàn bộ kết nối giữa API và giao diện quản trị, API giữa Authenticator System kết nối với Authenticator System được bảo mật bằng TLS để đảm bảo dữ liệu truyền đi được an toàn bảo mật. Sử dụng mã xác thực thông báo - JWT để xác thực người quản trị sử dụng giao diện, xác thức giữa AS với Authenticator System.

TẠO VÀ XÁC THỰC MÃ SQRC

Hình 4.  Sơ đồ sinh mã SQRC

Hình 5. Sơ đồ xác thực mã SQRC

Tạo và xác thực mã SQRC thực hiện theo sơ đồ Hình 4, 5. Cụ thể sẽ thực hiện các bước như sau:

Bước 1: Đưa mã SQRC của mình lên trước Camera để quét. Authenticator System sau khi nhận dạng được mã SQRC hợp lệ bằng cách kiểm tra chữ ký số trong mã sẽ hiển thị trạng thái đang xác minh trên giao diện web quản trị.

Bước 2: Đưa khuôn mặt vào khu vực Camera có thể quan sát được. AS sẽ tiến hành quét và xác thực khuôn mặt với thông tin thu được từ mã SQRC trước đó. Nếu trùng khớp thì sẽ hiển thị thành công với các thông tin chi chi tiết của người vừa được xác thực.

Bước 3: Sau khi xác thực mã SQRC hợp lệ mà Authenticator System không dò tìm được khuôn mặt của đúng chủ sở hữu sẽ ghi nhận lại sự kiện xác thực không thành công và hiển thị trên giao diện web quản trị.

KẾT LUẬN

Ứng dụng SQRC kết hợp với bài toán nhận diện khuôn mặt, bằng cách lưu trữ thông tin khuôn mặt trong mã SQRC cho phép xác thực người sử dụng mã, tương tự như một “chứng minh thư số”. Ứng dụng được chia làm hai thành phần sinh mã và xác thực mã, có khả năng hoạt động ngoại tuyến, độc lập với nhau và hỗ trợ quản trị, giám sát qua giao diện web. Cùng với việc triển khai đơn giản trên hầu hết các thiết bị cá nhân đem lại khả năng linh hoạt và dễ dàng sử dụng.

Phạm Duy Trung, Quách Thành Kiên

Tin cùng chuyên mục

Tin mới