Chương 4 : XỬ LÝ GIAO DỊCH THẺ EMV
4.6 KIỂM TRA CHỦ THẺ
4.6.4 Xử lý PIN ngoại tuyến
Xử lý được mô tả trong đoạn này áp dụng những CVM sau: - ―Thẻ kiểm tra PIN chưa mã hóa‖ (000001b);
- ―Thẻ kiểm tra PIN đã mã hóa‖ (000100b).
Hai khái niệm được sử dụng khi thiết bị đọc thực hiện việc xử lý là:
Hỗ trợ PIN ngoại tuyến:
Một thiết bị đọc mà không hỗ trợ PIN ngoại tuyến là thiết bị đọc không những không hỗ trợ kiểm tra PIN chưa mã hóa ngoại tuyến mà còn không kiểm tra PIN đã mã hóa ngoại tuyến (bit 5 và bit 8 trong byte thứ hai của Những khả năng của thiết bị đọc). Nếu cả hai dạng trên đều được hỗ trợ thì thiết bị đọc hỗ trợ PIN ngoại tuyến.
Bỏ qua việc nhập PIN::
Có nhiều tình huống xảy ra khi một chủ thẻ mới hoặc một chủ thẻ không sử dụng được việc kiểm tra PIN là không thể đưa PIN vào. Thì ba tình huống có thể bắt gặp là:
1) Kết thúc giao dịch;
2) Chấp nhận thử PIN cho đến khi Biến thử PIN trong thẻ bị hết.
3) Bỏ qua xử lý nhập PIN tại đơn vị chấp nhận thẻ ban đầu hoặc của chủ thẻ. Bắt buộc giao dịch phải trực tuyến và cho NHPH biết những tình huống. NHPH có thể quyết định dựa trên một số thủ tục quản lý rủi ro để xác thực giao dịch mà không cần PIN.
Xử lý của thiết bị đọc như sau:
Nếu thiết bị đọc không hỗ trợ PIN ngoại tuyến thì
Đặt bit 5, ―Yêu cầu nhập PIN và không có bàn phím hoặc bàn phím nhập PIN không hoạt động" trong byte 3 của TVR.
Còn không
Nếu bàn phím nhập PIN bị trục trặc
Đặt bit 5, ―Yêu cầu nhập PIN và Không có PIN pad hoặc không hoạt động‖ trong byte 3 của TVR.
Còn không
If cả merchant hoặc chủ thẻ bỏ qua xử lý PIN
- Đặt bit 4, ―Yêu cầu nhập PIN, có PIN pad, nhưng không nhập PIN‖, trong byte 3 của TVR.
- CVM được đánh giá là không thành công, Những kết quả của
CVM không được đặt, và CVR tiếp theo trong danh sách CVM được xem xét.
Trong trường hợp thiết bị đọc hỗ trợ PIN ngoại tuyến, bàn phím nhập PIN hoạt động tốt, và chủ thẻ không bỏ qua việc nhập PIN, thì việc xử lý được thiết bị đọc thực hiện như sau. Gửi lệnh GET DATA cho thẻ, với C-APDU được biểu diễn trong Bảng 4.4 [3]. Lệnh này được sử dụng để lấy lại đối tượng dữ liệu nguyên thủy số lần thử PIN của thẻ. Đối tượng dữ liệu này không được gói trong bất cứ hồ sơ nào trong ứng dụng hiện tại.
Bảng 4.2 C-APDU tương ứng với lệnh GET DATA
Mã Giá trị
CLA 80
INS CA
P1 P2 9F17 (giá trị tương ứng với đối tượng dữ liệu nguyên thủy của PIN Try Counter Lc Không có
Dữ liệu Không có
Trường dữ liệu của C-APDU tương ứng lưu biến Số lần thử PIN, bao gồm nhãn 9F17 và độ dài của nó. Khi giá trị của biến đếm này là không, thì không có thêm lần thử PIN nào nữa.
If SW1SW2 = 9000 và số lần thử PIN là 0 thì xử lý sau được thực hiện: Thiết bị đọc không nên cho phép nhập PIN ngoại tuyến.
Thiết bị đọc sẽ đặt bit 6, ―Số lần thử PIN vượt quá giới hạn‖ trong byte thứ ba của TVR.
Thiết bị đọc sẽ không hiển thị bất cứ thông điệp xác định với trạng thái của PIN.
Thiết bị đọc sẽ không đặt Những kết quả CVM.
Thiết bị đọc tiếp tục xử lý giai đoạn kiểm tra chủ thẻ phù hợp với danh sách CVM của thẻ.
If SW1SW2 ≠ 9000 hoặc SW1SW2 = 9000 và số lần thử PIN là khác 0 thì xử lý sau được thực hiện:
Thiết bị đọc nhắc nhập PIN. PIN có thể chứa 4 đến 12 số.
PIN có thể được định dạng như một 16 nibble khối PIN như sau: C N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F
Với điều kiện là:
C = Trường kiểm soát (0010b);
N = Độ dài PIN được biểu diễn như một số nhị phân 4 bit (0100b– 1100b);
P = Số PIN (0000b – 1001b);
P/E = PIN/Filler, nó được xác định bởi độ dài của PIN là N; F = Filler (1111b);
If dãy số kỹ thuật (bit cực phải của mã CVM) cho biết ―Thẻ thực hiện kiểm tra PIN đã mã hóa‖ (000100b) thì đưa ra một lệnh GET CHALLENGE. C- APDU của lệnh này được thể hiện trong Bảng 4.3
Bảng 4.3 C-APDU của lệnh GET CHALLAGE
Mã Giá trị
CLA 00 (lệnh trao đổi bên trong) INS 84
P1 P2 00 00 Lc Không có Dữ liệu Không có
Le 00
Trong trường hợp thực hiện thành công thì thẻ trả về R-APDU chứa một dãy ngẫu nhiên 8 byte và SW1SW2=9000. Thiết bị đọc lưu dãy này trong trường giá trị của đối tượng dữ liệu Số không đoán được. Thiết bị đọc sử dụng Số không đoán được này để đảm bảo tính duy nhất của mỗi phong bì số RSA chứa một PIN. Kỹ thuật bảo mật này ngăn chặn tội phạm việc mạo nhận chủ thẻ hợp pháp bởi phản hồi đơn giản một phong bì số RSA được gửi trước đó hoặc xác định PIN từ phong bì số RSA qua một tấn công từ điển.
Gửi một lệnh VERIFY, lệnh này cho phép thẻ so sánh số PIN được chủ thẻ nhập vào với giá trị phù hợp được lưu trong thẻ. Chuẩn bị C-APDU của lệnh VERIFY như được chỉ ra trong Bảng 4.6.
Bảng 4.6 C-APDU của lệnh VERIFY
Mã Giá trị
CLA 00 (lệnh trao đổi bên trong)
INS 20
P1 00
P2 Hạn định của dữ liệu PIN liên quan 00: như định nghĩa trong ISO 7816-4
80: PIN plaintext, được định dạng như định nghĩa trong Đoạn 6.6.5 81 – 87 và 89 – 8B: RFU cho EMVTM
8C - 8F: RFU cho hệ thống thanh toán độc lập 90 – 9F: RFU cho NHPH
Lc Thay đổi, phụ thuộc vào P2 Dữ liệu Dữ liệu của PIN giao dịch
- Trong trường hợp CVM là ―Thẻ thực hiện việc kiểm tra PIN chưa mã hóa‖ (000001b), trường dữ liệu của C-APDU được biểu diễn bằng khối PIN 8 byte như đã mô tả bên trên.
- Trong trường hợp CVM là ―Thẻ thực hiện kiểm tra PIN đã mã hóa‖ (000100b), trường dữ liệu của C-APDU là phong bì số RSA mang số PIN của chủ thẻ. Trường này có NPE byte, tương ứng với độ dài byte của modun trong khóa công khai mã hóa PIN của ICC.
Sau khi lấy PIN đã nhận trong lệnh hoặc trong phong bì số RSA, thẻ so sánh giá trị này với gía trị PIN được lưu trong bộ của thẻ. Mỗi lần so sánh bị lỗi, số khả năng thử PIN được lưu trong biến Số lần thử PIN lại được tăng lên. Từ trạng thái SW1SW2 xác định là 6983 hoặc 6984, trong trường hợp Số lần thử PIN là 0 tại thời điểm lệnh VERIFY được đưa ra. Mặt khác, thẻ trả lời mã SW1SW2 = 63Cx, với x chỉ ra số lần thử PIN còn lại, số này cũng có thể là không trong trường hợp Số lần thử PIN là không.
Thiết bị đọc nhận R-APDU từ thẻ tương ứng với lệnh VERIFY. R-APDU này bao gồm những từ trạng thái SW1SW2, những từ trạng thái này cho phép thiết bị đọc quyết định hoàn thành việc kiểm tra PIN ngoại tuyến đã yêu cầu trong thẻ:
- Nếu SW1SW2 = 6983, 6984, 63Cx, thì kiểm tra PIN ngoại tuyến bị lỗi. Thiết bị đọc đặt bit 6 (Số lần thử PIN vượt quá giới hạn) trong byte 3 của TVR.
- Nếu SW1SW2 = 63C1 hoặc 63C2, thì kiểm tra PIN ngoại tuyến bị lỗi nhưng vẫn còn một hoặc hai khả năng thử kiểm tra PIN ngoại tuyến. Thiết bị đọc yêu cầu chủ thẻ nhập lại PIN và khởi động lại việc xử lý.
- Nếu SW1SW2 = 9000, thì việc kiểm tra PIN ngoại tuyến được xem là thành công.