+2

Quy trình truy xuất dữ liệu từ CCCD

Việc đọc thông tin trên Căn cước công dân (CIC) hoặc hộ chiếu có ý nghĩa quan trọng trong việc phục vụ các hoạt động đời sống của công dân Việt Nam cũng như công dân nước ngoài khi đến Việt Nam.

Công nghệ thẻ thông minh lần đầu tiên được đề xuất vào năm 1977 . Trong những năm 1990, công nghệ thẻ thông minh phát triển mạnh mẽ ở châu Âu với sự xuất hiện của SIM (trong thiết bị GSM) và các hệ thống thanh toán quốc tế như MasterCard, Visa và Euro-pay. Năm 1994, hệ thống EMV (Euro-pay, MasterCard, Visa) được sử dụng rộng rãi tại nhiều quốc gia. Hiện nay, thẻ thông minh được ứng dụng trong nhiều lĩnh vực.

Tại Việt Nam, Chính phủ đã ban hành Nghị định 577 về chứng minh nhân dân (CMND) và các quy định liên quan đến việc cấp CMND vào năm 1957 nhằm giúp công dân thuận tiện hơn trong các giao dịch hàng ngày. Tuy nhiên, sau một thời gian sử dụng, CMND bộc lộ một số nhược điểm như: có thể bị làm giả, nhiều người trùng số CMND và thông tin trên thẻ bị mất dần theo thời gian.

CCCD gắn chip tại Việt Nam được sản xuất dựa trên công nghệ thẻ thông minh, tuân thủ tiêu chuẩn ICAO 9303. Đặc biệt, con chip trên CCCD được tích hợp các giải pháp mã hóa nhằm bảo vệ dữ liệu cá nhân, đảm bảo tính an toàn và xác thực đáng tin cậy. Theo ICAO 9303, quá trình truy cập để đọc thông tin bảo mật trên chip của CCCD hoạt động theo ba chế độ: BAC (Kiểm soát truy cập cơ bản - Basic Access Control), PACE (Thiết lập kết nối xác thực bằng mật khẩu - Password Authenticated Connection Establishment) và EAC (Kiểm soát truy cập mở rộng - Extended Access Control).

Cấu trúc lệnh sử dụng trong hệ thống này là giao thức APDU (Application Protocol Data Unit). Dữ liệu trên chip được lưu trữ và tổ chức theo tiêu chuẩn ICAO 9303, ISO/IEC 14443-4 và ISO/IEC 7816-4:2013.

Thiết kế phần cứng của CCCD gắn chip được chia thành hai phần chính: Nguồn Dự Trữ (Power Reserve) và Thẻ Chính (Main Card). Trong đó, Nguồn Dự Trữ giúp thẻ CCCD thu nhận và duy trì năng lượng để đảm bảo con chip hoạt động trong các giao dịch liên quan đến CCCD. Thẻ Chính bao gồm chip RFID, chip CCCD, ăng-ten và mạch tích hợp. Chip RFID chịu trách nhiệm nhận năng lượng và kết nối với ăng-ten. Dữ liệu sẽ được truyền qua ăng-ten, và nếu cần mã hóa hoặc giải mã, chip RFID sẽ thực hiện kết nối và tiến hành quá trình này với chip CCCD.

Theo tiêu chuẩn ICAO, dữ liệu trong chip của CCCD được tổ chức theo cấu trúc phân cấp. Đầu tiên là thư mục gốc (Master File - MF), sau đó là thư mục chuyên dụng (Dedicated File - DF) và cuối cùng là các tập tin cơ bản (Elementary Files - EF)

EMRTD là thư mục chuyên dụng chứa các tập tin dữ liệu cơ bản của mỗi công dân. Đây là thư mục quan trọng nhất của CCCD, vì toàn bộ thông tin người dùng sẽ được lưu trữ tại đây. EMRTD chứa các tập tin dữ liệu cơ bản, hay còn gọi là phân vùng dữ liệu, và được mô tả theo tiêu chuẩn ICAO 9303 dành cho CCCD/hộ chiếu điện tử (e-passport). Dữ liệu công dân được lưu trữ trong thư mục EMRTD Application, bao gồm:

  • EF.COM: Lưu trữ thông tin về phiên bản Unicode và danh sách các nhóm dữ liệu có trong CCCD.
  • DG1: Chứa thông tin cá nhân cơ bản (MRZ).
  • DG2: Chứa ảnh chân dung của công dân.
  • DG3: Lưu trữ dấu vân tay.
  • DG4: Lưu trữ hình ảnh mống mắt.
  • DG5: Chứa đặc điểm nhận diện khuôn mặt.
  • DG6: Dành cho các thông tin mở rộng sẽ được bổ sung sau này.
  • DG7: Chứa chữ ký của công dân.
  • DG8 - DG11: Hiện chưa được sử dụng.
  • DG12: Lưu trữ thông tin hỗ trợ.
  • DG13, DG16: Lưu trữ thông tin liên quan đến công dân.
  • DG14: Được sử dụng cho cơ chế truy cập EAC.
  • DG15: Chứa khóa công khai.
  • EF.SOD: Lưu trữ giá trị băm (hash value) của từng trường dữ liệu.

Các chế độ đọc dữ liệu

Quá trình truy cập dữ liệu từ chip CCCD bao gồm ba chế độ truy cập an toàn, mỗi chế độ xác định phạm vi dữ liệu được phép truy cập. Các chế độ truy cập của CCCD bao gồm BAC, PACE và EAC.

  • Chế độ BAC (Basic Access Control) đảm bảo rằng chỉ những bên được ủy quyền mới có quyền truy cập và đọc dữ liệu.

  • Chế độ PACE (Password Authenticated Connection Establishment) thực hiện cơ chế truy cập dựa trên mật khẩu và sử dụng thuật toán thỏa thuận khóa Diffie-Hellman. Mật khẩu được sử dụng trong chế độ PACE phụ thuộc vào chứng chỉ số của CCCD và sử dụng các thuật toán mã hóa AES hoặc 3DES để bảo vệ và xác thực dữ liệu. Chế độ này cho phép đọc thông tin cá nhân tương tự như BAC, bao gồm họ tên, ngày sinh, số thẻ, ảnh chân dung, thông tin liên quan và các đặc điểm cá nhân khác.

  • Chế độ EAC (Extended Access Control) là chế độ truy cập nâng cao, kết hợp các tính năng bảo mật tiên tiến giữa thiết bị đầu cuối và CCCD để bảo vệ và hạn chế truy cập vào dữ liệu cá nhân nhạy cảm trên chip. Chế độ này cho phép xác thực lẫn nhau và thiết lập kênh liên lạc an toàn giữa CCCD và thiết bị đầu cuối. Khác với dữ liệu cá nhân thông thường có thể được bảo vệ bằng cơ chế cơ bản, các dữ liệu nhạy cảm hơn (chẳng hạn như dấu vân tay hoặc ảnh mống mắt) cần có biện pháp bảo vệ nâng cao để ngăn chặn truy cập trái phép. Để truy cập vào chế độ này, người dùng cần thiết lập kết nối an toàn dựa trên BAC hoặc PACE.

    Chế độ truy cập EAC được triển khai thông qua hai phần:

  1. Chip Authentication: Sử dụng thuật toán trao đổi khóa Diffie-Hellman để tạo khóa phiên mới.
  2. Terminal Authentication: Sử dụng thuật toán chữ ký số RSA hoặc chữ ký số trên đường cong elliptic (ECC).

Quy trình truy xuất dữ liệu từ CCCD

Screenshot 2025-02-13 at 17.11.23.png

  1. Đầu tiên, cần lấy thông tin MRZ từ CCCD, thông tin này có thể được nhập thủ công hoặc quét từ thẻ.
  2. Sau đó, tiến hành truy cập bằng chế độ BAC hoặc PACE. Khi một trong hai chế độ này được thiết lập thành công, người dùng có thể truy cập vào DG1 (chứa thông tin cá nhân cơ bản) và DG2 (chứa ảnh chân dung), cùng với một số thông tin trong các phân vùng liên quan (nếu được phép).
  3. Dữ liệu sau đó sẽ được so sánh với thông tin cá nhân trên CCCD để kiểm tra tính hợp lệ của người dùng.
  4. Nếu xác thực thành công, chế độ truy cập nâng cao EAC có thể được sử dụng để đọc dữ liệu trong DG3 và DG4, nhằm lấy thông tin về dấu vân tay và ảnh mống mắt để so sánh với các thông tin cá nhân khác.

Trong bài này này, tôi tập trung sử dụng chế độ BAC để đọc thông tin được lưu trên chip CCCD. Các dữ liệu được đọc bao gồm:

  • Thông tin cá nhân công dân được lưu trong DG1.
  • Ảnh chân dung được lưu trong DG2.
  • Thông tin liên quan đến công dân (chẳng hạn như thông tin về cha mẹ, đặc điểm nhận dạng đặc biệt, v.v.) được lưu trong DG13.

Building_an_Application_that_reads_Secure_Information_Stored_on_the_Chip_of_the_Citizen_Identity_Card_in_Vietnam


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí