Kernel
Kernel EMV chính là hành vi của ứng dụng thanh toán. Nó thuộc lớp khác với Digital của L1 (tuân thủ giao thức) và đảm nhận logic cốt lõi của luồng giao dịch.







Lớp này kiểm tra điều gì
Kernel là phần logic thực sự tiến hành giao dịch giữa thẻ và thiết bị. Đối tượng kiểm thử là các nhánh như chọn ứng dụng, xác thực dữ liệu ngoại tuyến, CVM, quản lý rủi ro, Generate AC và Issuer Script.
| Điều muốn xác nhận | Sản phẩm tương ứng |
|---|---|
| Kernel có rẽ nhánh đúng theo đặc tả thương hiệu hay không (quản lý và chạy bằng bộ kiểm thử được công nhận) | ICCSim TMat |
| Tự tạo thẻ bất thường và APDU riêng không có trong bộ chuẩn để thử | ICCSim Dev |
| Nền tảng thực thi cho chạy kịch bản, điều khiển thiết bị, ghi nhật ký và xuất báo cáo | SCRIPTIS™ |
Phía không tiếp xúc có kernel riêng cho từng thương hiệu
Trong khi CT2 phía tiếp xúc tương đối được chuẩn hóa chung, phía không tiếp xúc lại được xem là kernel độc lập theo từng thương hiệu. Do đó “hỗ trợ thêm thương hiệu” cũng có nghĩa là thiết bị cần kiểm thử (DUT) tăng lên tương ứng (L2 Kernel không tiếp xúc).
Bên cung cấp và bên kiểm thử
Ở lớp này tồn tại song song hai vị thế có tính chất khác nhau. Nhầm lẫn hai bên sẽ dẫn đến quyết định mua sai.
| Vai trò | Phụ trách | Sản phẩm bàn giao |
|---|---|---|
| Cung cấp kernel để nhúng vào thiết bị | Alcinéo (phía DUT) | triển khai với tiền đề đạt chứng nhận |
| Kiểm thử kernel đó | ICC Solutions và các hãng khác (phía kiểm thử) | Công cụ và kịch bản kiểm thử được công nhận |
| Thực hiện kiểm thử Type Approval chính thức | Phòng thí nghiệm kiểm thử được công nhận | Báo cáo kiểm thử |
| Cấp Letter of Approval | Từng thương hiệu | Phê duyệt |
“Có kernel trong danh mục sản phẩm”, “đã triển khai một phiên bản cụ thể” và “đang giữ LoA còn hiệu lực trên một phần cứng cụ thể” là ba chuyện hoàn toàn khác nhau. Nếu chuyển sang thiết bị mới, phải làm lại Type Approval cho thiết bị đó.
Khác biệt so với Digital của L1
Digital của L1 xem xét mức độ tuân thủ của giao thức lớp dưới như khung dữ liệu và chuyển trạng thái. Còn L2 xem xét hành vi của ứng dụng thanh toán chạy bên trên đó. Vì thuộc hai lớp khác nhau, không thể dùng cái này thay cho cái kia.
