Chương 3 : CHỨNG CHỈ SỬ DỤNG VỚI THẺ EMV
3.3 XÁC THỰC DỮ LIỆU ỨNG DỤNG TĨNH
3.3.1 Tạo lập dữ liệu ứng dụng tĩnh
NHPH quyết định đối tượng dữ liệu nào của thẻ được xác thực và dữ liệu này được thể bảo vệ khi sử dụng thẻ. Bên cạnh những đối tượng dữ liệu bắt buộc trong ứng dụng thẻ, NHPH có thể xác thực một vài đối tượng dữ liệu sau:
- Số phiên bản của ứng dụng; - Kiểm soát sử dụng ứng dụng;
- Mã tiền tệ của ứng dụng và Diễn giải loại tiền tệ của ứng dụng; - Số tuần tự của ứng dụng;
- Dữ liệu tương đương rãnh 2; - Tên chủ thẻ;
- Mã hoạt động của NHPH–Mặc định/Phủ nhận/Trực tuyến;
NHPH quyết định thêm việc sắp xếp đối tượng dữ liệu vào trong hồ sơ. Những hồ sơ này được sắp xếp thêm bên trong nhiều AEF khác nhau, cùng với việc những hồ sơ có thể không cần thiết được xác thực. Dựa trên việc sắp xếp này, NHPH thiết lập AFL, AFL cũng phải được ghi trong thẻ. NHPH cũng có thể quyết định xem những đối tượng dữ liệu nào khác có khả năng đọc được công khai từ thẻ mà không đọc được từ hồ sơ có thể được xem xét độc lập cho việc xác thực. Nếu vậy, NHPH định nghĩa Danh sách nhãn xác thực dữ liệu tĩnh, danh sách này được tạo trong thẻ như một đối tượng dữ liệu với nhãn là 9F4A và bao gồm một trong những hồ sơ. Mỗi lối vào trong danh sách này bao gồm một nhãn biểu diễn một đối tượng dữ liệu trong thẻ. Độ dài của đối tượng dữ liệu không được bao gồm trong lối vào, lối vào tạo danh sách nhãn xác thực ứng dụng có một cấu trúc khác hơn so với DOL.
Để xác thực những đối tượng dữ liệu của thẻ, NHPH thực hiện theo hai bước sau đây. Bước 1 là tạo chuỗi byte dữ liệu tĩnh sẽ được xác thực. Bước 2, đánh dấu chuỗi byte này cùng với những trường khác để tạo dữ liệu ứng dụng tĩnh được ký. Những hồ sơ lưu trong dữ liệu tĩnh được xác thực và liệt kê trong AFL, ý nghĩa và sự thể hiện của chúng được trình bày ở phần dưới đây.
3.3.1.1 Ranh giới file ứng dụng - AFL
AFL (có nhãn là 94), đưa ra một bảng nội dung thông tin công khai được ứng dụng thẻ cung cấp. Bảng này xác định những AEF và những hồ sơ tương ứng được thiết bị đọc sử dụng cho việc xử lý giao dịch của thẻ. Với mỗi AEF, AFL cũng chỉ rõ những hồ sơ nào của AEF được thêm vào dữ liệu tĩnh được xác thực, chuỗi byte nào được NHPH chứng thực. Thiết bị đọc có thể chỉ đọc những AEF đã xác định trong AFL.
AFL là một danh sách những lối vào file của AEF, mỗi lối vào file này bao gồm 4 byte có ý nghĩa như sau:
- Byte đầu tiên ghi trong 5 bit quan trọng nhất trong SFI của AEF. 3 bit ít quan trọng nhất trong byte này được đặt là 0.
- Byte thứ hai ghi số hồ sơ đầu tiên đọc được từ AEF. Số này cũng được xem như số hồ sơ đầu tiên, sẽ không bao giờ là 0.
- Byte thứ ba ghi số hồ sơ cuối cùng được đọc từ AEF. Số này cũng được xem như số hồ sơ cuối cùng, nó có thể lớn hơn hoặc bằng số trong byte thứ hai. Trường hợp trước thiết bị đọc cần đọc tất cả những hồ sơ của AEF có liên quan với những số giữa số hồ sơ đầu tiên và số hồ sơ cuối cùng. Trong trường hợp sau đó chỉ hồ sơ liên quan với số hồ sơ đầu tiên sẽ được đọc từ AEF.
- Byte thứ 4 chỉ ra số hồ sơ trong AEF đó, bắt đầu từ số hồ sơ đầu tiên, số này sẽ được thiết bị đọc xem xét trong xử lý xác thực dữ liệu ngoại tuyến. Số này có thể là 0 khi không có hồ sơ nào của file hiện tại được xem xét cho việc xác thực dữ liệu ngoại tuyến. Khi số này không phải là 0, thì tổng của số hồ sơ đầu tiên và số trong byte thứ tư trừ đi một được xem như số hồ sơ được xác thực cuối cùng.
3.3.1.2 Tạo dữ liệu tĩnh sẽ được xác thực
Đầu tiên, thiết bị đọc thêm vào chuỗi byte dữ liệu tĩnh được xác thực (ban đầu là rỗng), những hồ sơ mà thiết bị đọc có thể đọc công khai (với SFI trong khoảng 1 – 30) và được xác định trong AFL.
Từ đây về sau thiết bị đọc thực hiện việc xử lý như sau:
- Đối với mỗi lối vào Fi, i = 1 , ..., n trong AFL = F1 || F2 || ... || Fn, kiểm tra byte thứ tư của Fi. Khi giá trị của nó là 0 thì không một hồ sơ nào của AEF hiện tại được xem xét cho việc xác thực. Thiết bị đọc tăng thêm biến đếm i để xem xét AEF tiếp theo được xác định trong AFL.
- Khi giá trị byte thứ tư của Fi khác không, thiết bị đọc xem xét l có bằng số hồ sơ đầu tiên không, như đã xác định trong byte thứ hai của Fi. Thiết bị đọc cũng tính L như tổng byte thứ hai và thứ tư của AFL lối vào Fi trừ đi một, giá trị này biểu diễn số hồ sơ được xác thực cuối cùng.
Đối với mỗi hồ sơ Rij có một số j như là l ≤ j ≤ L thì thiết bị đọc ràng buộc hồ sơ này đến vị trí bên phía bên phải của dữ liệu tĩnh được xác thực.
- Nếu SFI được đọc từ byte đầu tiên của Fi là trong khoảng từ 1 đến 10, thì nhãn (70) của và độ dài của bản ghi không được bao gồm trong Rij.
- Nếu SFI nằm trong khoảng 11 đến 30, thì nhãn (70) và độ dài của bản ghi được bao gồm trong Rij.
Tiếp theo, đối với vị trí cực phải của chuỗi byte dữ liệu tĩnh, NHPH kết nối những trường giá trị của tất cả những đối tượng dữ liệu đã xác định trong danh sách nhãn xác thực dữ liệu tĩnh. Thành phần của danh sách này được đưa ra để xử lý từ trái qua phải. Mỗi thành phần của danh sách bao gồm một nhãn để chỉ các đối tượng dữ liệu đơn giản trong thẻ mà không nằm trong bất cứ hồ sơ nào được đưa ra cho việc xác thực trong AFL. Đối tượng dữ liệu này cần được định rõ cho khả năng trao đổi của những trao đổi giao dịch tài chính.
3.3.1.3 Tạo lập dữ liệu ứng dụng tĩnh
NHPH, thực hiện vai trò kiểm tra chứng chỉ, áp dụng sơ đồ chữ ký số RSA để khôi phục lại gói tin. Thuật toán này được áp dụng trên gói tin M = MR
|| M’ với những tham số của RSA nS = nI và dS = dI để thu được một chữ ký, chữ ký này được xem như dữ liệu ứng dụng tĩnh được ký.
Gói tin M = MR || M’ được xem như dữ liệu ứng dụng tĩnh được ký bởi NHPH. Phần M’ bao gồm chuỗi byte dữ liệu tĩnh được xác thực. Phần MR bao gồm bốn trường:
Trường 1 – Định dạng dữ liệu đã ký (1 byte): Có giá trị cố định là 03h.
Trường 2 – Chỉ dẫn thuật toán băm (1 byte):
Xác định thuật toán băm được sử dụng để đưa ra mã băm H.
Trường 3 – Mã xác thực dữ liệu (2 byte):
Biểu diễn một mã được NHPH chỉ định, mã này có thể là một phần của mã hóa, và nó là duy nhất cho mỗi thẻ. Mã hóa này có thể là một MAC được NHPH tính toán trên số thẻ được kết hợp với thẻ. MAC được tính với một khóa cho mỗi thẻ từ một khóa chủ duy nhất của NHPH đã chỉ định cho việc tính toán mã xác thực dữ liệu.
Khi nhận thành phần dữ liệu này trong một yêu cầu xác thực được gửi trực tiếp hoặc thậm chí trong một gói tin thanh toán trong quá trình thanh toán, NHPH có thể kiểm tra sự đúng đắn của mã. Giả thiết rằng thiết bị đọc không tìm thấy thành phần dữ liệu này từ việc thực hiện giao dịch EMVkhác với cùng một thẻ, NHPH sẽ giảm độ tin cậy của nó mà thiết bị đọc quả thực đã kiểm tra dữ liệu ứng dụng tĩnh đã ký để thu được giá trị của mã này. Mặt khác, một thiết bị đọc có thể yêu cầu sai rằng là nó đã thực hiện xác thực dữ liệu tĩnh ngoại tuyến trong khi đó thực tế là nó không làm vậy.
Trường 4 – Mẫu bổ sung:
Mẫu này chứa một số NI – 26 byte có giá trị BBh, khi NI là số byte của tham số nI.
3.3.2 Xác thực dữ liệu của ứng dụng tĩnh đã được ký
Các bước sau mô tả thủ tục khi thiết bị đọc của EMVkiểm tra dữ liệu ứng dụng tĩnh đã được ký lưu trữ trong thẻ EMVkhi thực hiện việc ghi thẻ.
Bước 1:
Kiểm tra độ dài của dữ liệu ứng dụng tĩnh đã được ký có phải là NI không.
Bước 2:
Áp dụng thuật toán kiểm tra chữ ký hoặc thủ tục khôi phục chữ ký. Với điều kiện S là dữ liệu ứng dụng tĩnh đã ký, nS = nI và eS = eI. Độ dài N của modun là NI.
Dữ liệu được khôi phục lại X được phân ra như X = B || MR || H || E. Việc xử lý tiếp theo được thực hiện trên những trường sau:
1) Kiểm tra xem E (byte cuối cùng của X) có bằng BCh không 2) Kiểm tra xem B (byte đầu tiên của X) có bằng 6Ah không
3) Xem xét MR như NI – 22 byte tiếp theo sau B. Phân MR ra theo bốn trường đã xác định.
4) Kiểm tra xem định dạng dữ liệu đã được ký, đọc được trong trường 1 của MR có phải là 03h hay không.
5) Đặt giá trị của gói tin M’ giá trị đã biểu diễn bằng chuỗi byte dữ liệu tĩnh được xác thực.
6) Tạo gói tin M, biểu diễn dữ liệu ứng dụng tĩnh đã ký bởi NHPH, kết nối từ trái qua phải phần MR đã khôi phục và phần M’ đã tính.
7) Đọc chỉ dẫn thuật toán băm từ trường 2 của MR.
8) Sử dụng thuật toán băm đã xác định để tính mã băm h của M.
9) Kiểm tra xem h có bằng kết quả băm H hay không, nó thể hiện 20 byte cuối cùng trong X trước E.
Nếu bất cứ kiểm tra nào đã đưa ra bên trên bị lỗi, thì việc kiểm tra của dữ liệu ứng dụng tĩnh đã ký bị lỗi. Thiết bị đọc từ chối tính xác thực của dữ liệu tài chính đã lưu trong thẻ EMV.