TCVN11198-5:2015

Tiêu chuẩn quốc gia TCVN 11198-5:2015 về Thẻ mạch tích hợp EMV cho hệ thống thanh toán - Đặc tả ứng dụng thanh toán chung - Phần 5: Quy trình xử lý tập lệnh bên phát hành thẻ TIÊU CHUẨN QUỐC GIA TCVN 11198-5:2015 THẺ MẠCH TÍCH HỢP EMV CHO HỆ THỐNG THANH TOÁN - ĐẶC TẢ ỨNG DỤNG THANH TOÁN CHUNG - PHẦN 5: QUY TRÌNH XỬ LÝ TẬP LỆNH BÊN PHÁT HÀNH ĐẾN THẺ EMV integrated circuit card for payment systems - Common payment application speci f ication - Part 5: lssuer-to-card script p rocessing Lời nói đầu TCVN 11198-5:2015 được xây dựng trên cơ s ở tham khảo EMV CPA (Common Payment Application Speci fi cation) Version 1.0, 2005. TCVN 11198-5:2015 d o Ban Kỹ thuật tiêu chu ẩ n quốc gia TCVN/JTC1/SC 17 Thẻ nhận dạng biên soạn, T ổ ng cục Tiêu chu ẩ n Đo lường Chất lượng đề nghị, Bộ Khoa học và Công nghệ công bố. Bộ tiêu chuẩn TCVN 11198 Thẻ mạch tích hợp EMV cho hệ thống thanh toán - Đặc tả ứng dụng thanh toán chung gồm các tiêu chu ẩ n sau: - TCVN 11198-1:2015, Phần 1: Tổng quát; - TCVN 11198-2:2015, Phần 2: Giới thiệu về quy trình xử lý; - TCVN 11198-3:2015, Phần 3: Quy trình xử lý chức năng; - TCVN 11198-4:2015, Phần 4: Phân tích hành động thẻ; - TCVN 11198-5:2015, Phần 5: Quy trình xử lý tập lệnh bên phát hành đến thẻ; - TCVN 11198-6:2015, Phần 6: Qu ả n lý khóa và an ninh; - TCVN 11198-7:2015, Phần 7: Mô tả về chức năng; - TCVN 11198-8:2015, Phần 8: Thư mục phần tử dữ liệu; TH Ẻ MẠCH TÍCH HỢP EMV CHO HỆ THỐNG THANH TOÁN - Đ Ặ C TẢ ỨNG DỤNG THANH TOÁN CHUNG - PH Ầ N 5: QUY TRÌNH XỬ LÝ TẬP LỆNH BÊN PHÁT HÀNH ĐẾN THẺ EMV integrated Circuit Card for Payment Systems - Common payment application speci f ication - Part 5: lssuer-to-Card Script Processing 1 Phạm vi áp dụng Tiêu chuẩn TCVN 11198-5 là một phần thuộc bộ TCVN 11198 cung cấp các đặc tả kỹ thuật về phần ứng dụng Thanh toán Chung ( CPA), định nghĩa các phần tử dữ liệu và các chức năng cho ứng dụng tương thích với Định nghĩa Lõi Chung (CCD) EMV. Phạm vi của tiêu chuẩn này đề cập về các quy trình xử lý tập lệnh bên phát hành đến thẻ. 2 Tài liệu viện dẫn Các tài liệu viện dẫn sau đây r ấ t cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các tài liệu không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm c ả các sửa đổi, b ổ sung (nếu có). TCVN 11198-1:2015, Thẻ mạch tích hợp EMV cho Hệ thống thanh toán - Đặc tả ứng dụng thanh toán chung - Phần 1: Tổng quát; 3 Thuật ngữ và định nghĩa Tiêu chuẩn này s ử dụng các thuật ngữ và định nghĩa nêu trong TCVN 11198-1:2015. 4 Thuật ngữ viết tắt, ký hiệu, quy ước và biểu tượng Tiêu chuẩn này sử dụng các thuật ngữ viết tắt, ký hiệu, quy ước định dạng phần t ử dữ liệu và bi ể u tượng nêu trong TCVN 11198-1:2015. 5 Quy trình xử lý lệnh tập lệnh bên phát hành 5.1 Mục đích Quy trình xử lý Tập lệnh bên Phát hành đến Th ẻ cho phép bên phát hành ch ỉ nh sửa các tham số th ẻ trên các th ẻ (như là dữ liệu cá nhân) mà không cần phát hành lại thẻ. Với chức n ă ng này, bên phát hành truyền các lệnh trong tập lệnh bên phát hành có chứa trong thông điệp hồi đáp chuẩn chi. Thiết bị đầu cuối cho qua các lệnh này đến th ẻ , tại đó chúng được thực thi nếu các yêu cầu gửi bảo mật là hợp lệ. Quy tr ì nh xử lý tập lệnh bên Phát h à nh đến th ẻ được thực hiện như mô tả ở EMV Quyển 3, Điều 6 và Điều 10.10 và EMV Quyển 4, Điều 6.3.9. Việc gửi thông điệp bí mật được thực hiện như Điều 9 thuộc phần CCD của EMV Quyển 2. 5.2 Trình tự thực hiện 5.2.1 Quy trình xử lý có liên quan trước đó Hồi đáp trực tuyến nhận được b ở i thiết bị đầu cuối từ bên thu mua có thể chứa một tập lệnh bên phát hành để được xử lý trong Quy tr ình xử lý Tập lệnh bên Phát hành đến thẻ. Quy trình xử lý trực tuyến Các lệnh tập lệnh được gửi đến thẻ trước lệnh GENERATE AC lần hai nếu bản mẫu tập lệnh nhận được b ở i thiết bị đầu cuối có th ẻ tag '71'. Phân tích Hành động Th ẻ lần hai Các lệnh tập lệnh được gửi đến thẻ sau lệnh GENERATE AC lần hai nếu bản mẫu tập lệnh nhận được b ở i thiết bị đầu cuối có thẻ tag '72'. 5.2.2 Quy trình x ử lý có liên quan tiếp theo Phân tích Hành động thẻ Lần hai (giao dịch hiện thời) Nếu một lệnh tập lệnh đã nhận trước lệnh GENERATE AC lần hai, thì trong khi Phân tích Hành động thẻ lần hai: • Th ẻ thiết lập bit 'Số lượng các lệnh tập lệnh bên phát hành chứa trong thông điệp bí mật đã xử lý' trong Kết quả Xác minh Th ẻ (CVR); • Nếu Quy trình xử lý tập lệnh bên Phát hành đến thẻ b ị lỗi, th ì thẻ thiết lập bit 'Quy trình xử lý tập lệnh bên phát hành b ị lỗi' trong CVR. Phân tích Hành động thẻ (giao dịch tiếp theo) Trong khi Phân tích Hành động thẻ cho th ẻ ở giao dịch tiếp theo: • Th ẻ thiết lập bit 'Số lượng các lệnh tập lệnh bên phát hành chứa trong thông điệp bí mật đã xử lý" trong CVR; • Th ẻ thiết lập bit 'tập lệnh đã nhận’ trong ADR là cho phép ứng dụng thực hiện trực tuyến bởi v ì thẻ đã nhận một lệnh tập lệnh trong giao dịch trước đ ó ; • Nếu Quy trình x ử lý tập lệnh bên Phát hành đến thẻ b ị lỗi, th ì thẻ: - thiết lập bit 'Quy trình xử lý tập lệnh b ê n phát hành bị lỗi' trong ADR cho phép ứng dụng thực hiện trực tuyến hoặc từ chối ngoại tuyến bởi vì quy tr ì nh xử lý tập lệnh bị lỗi trong giao dịch trư ớ c đó; - và thiết lập bit 'Quy trình xử lý tập lệnh bên phát hành bị lỗi' trong CVR đ ể chỉ thị cho bên phát hành rằng quy trình x ử lý tập lệnh bị lỗi trong giao dịch trước đó. Phân tích Hành động th ẻ lần hai (giao dịch tiếp theo) Chỉ báo về lỗi tập lệnh bên phát hành và tập lệnh bên phát hành đã nhận có thể được thiết lập lại sau khi các giao dịch trực tuyến dựa trên kết qu ả việc Xác thực bên Phát hành và các tùy chọn bên phát hành trên th ẻ . 5.3 Dữ liệu thẻ Dữ liệu th ẻ được sử d ụng trong khi Quy trình x ử lý tập lệnh bên phát hành đến thẻ được liệt kê và được mô tả trong Bảng 1. Đối với mô tả chi tiết cho dữ liệu này và việc sử dụng chúng, xem Điều 7 trong TCVN 11198-8. Bảng 1 - Quy trình x ử lý tập lệnh bên phát hành đến th ẻ - Dữ liệu thẻ Dữ liệu Mô tả B ả n mẫu Th ẻ tag Kết quả Quyết định Ứ ng dụng Sử dụng nội bộ cho ứng dụng chỉ ra các điều kiện ngoại lệ có thể x ảy ra trong các giao dịch hiện thời và trước đó. Kết quả Quyết định Ứ ng dụng được sử dụng trong quy tr ì nh xử lý lệnh GENERATE AC khi xác định khi nào giao dịch ph ả i bị từ chối ngoại tuyến hoặc được thực hiện tr ực tuyến. - - Kết quả Xác minh Thẻ (CVR) Trong phân tích hành động thẻ lần hai c ủ a giao dịch hiện thời nếu lệnh tập lệnh bên phát hành được nhận trước khi lệnh GENERATE AC lần hai, hoặc trong Phân tích Hành động thẻ lần đ ầu c ủ a các giao dịch tiếp theo; chức năng Phân tích Hành động thẻ ghi đầy các trường con CVR: - số lượng các lệnh tập lệnh bên phát hành có chứa thông điệp b í mật đã xử lý - thiết lập từ giá trị trong Bộ đếm lệnh tập lệnh bên phát hành - quy trình xử lý tập lệnh bên phát hành b ị lỗi - thiết lập ch ỉ ra rằng quy trình xử lý một lệnh tập lệnh bị lỗi - '9F52' Bộ đếm Lệnh Tập lệnh bên Phát hành Bộ đếm Lệnh Tập lệnh bên Phát hành được sử dụng b ở i thẻ để đếm từng lệnh có chứa thông điệp bí mật mà đã xử lý thành công trước hoặc sau lệnh G ENERATE AC lần hai - - Lịch sử Giao dịch Trước đó (PTH) Chứa các chỉ báo được sử dụng lưu thông tin về các giao dịch trước đó được sử dụng trong Quản lý R ủ i ro Thẻ cho giao dịch tiếp theo. PTH chứa ba chỉ báo có liên quan tập lệnh: • Tập lệnh đã nhận; • ứng dụng bị khóa; • tập lệnh bị lỗi; Trong giao dịch tiếp theo, các chỉ báo 'tập lệnh đã nhận’ và 'tập lệnh bị lỗi’ có thể được thiết lập lại trong Phân tích Hành động Thẻ lần hai - 'C7' 5.4 Dữ liệu Thiết bị đầu cuối Dữ liệu thiết bị đầu cuối được sử dụng trong khi Quy trình xử lý tập lệnh bên phát hành đến th ẻ được liệt kê và được mô tả trong Bảng 2. Đối với mô tả chi tiết cho dữ liệu này và việc s ử dụng chúng, xem Điều 7 trong TCVN 11198-8. Bảng 2 - Quy trình xử lý tập lệnh bên phát hành đến thẻ - Dữ liệu thiết bị đầu cuối Dữ liệu Mô tả Bản mẫu Th ẻ tag Kết quả tập lệnh bên phát hành Kết quả tập lệnh bên phát hành có chứa các kết quả của quy trình xử lý tập lệnh và phải đi kèm trong khi xóa thông điệp - - Kết quả Xác minh thiết bị đầu cuối (TVR) TVR chứa hai chỉ báo liên quan tập lệnh: • tập lệnh bên phát hành bị lỗi trước lệnh GENERATE AC cuối cùng; • tập lệnh bên phát hành b ị lỗi sau lệnh GENERATE AC cuối cùng; - '95' Thông tin tình trạng giao dịch (TSI) TSI có chứa một c ờ chỉ ra rằng Quy trình xử lý tập lệnh bên phát hành đến thẻ đã được thực hiện - '9B' 5.4.1 Dữ liệu Hồi đáp Chu ẩ n chi Nếu quy trình x ử lý tập lệnh bên phát hành đến thẻ đã diễn ra, thì bên phát hành bao gồm dữ liệu được liệt kê và mô t ả như trong Bảng 3 trong hồi đáp chu ẩ n chi. Bảng 3 - Quy tr ì nh xử lý tập lệnh bên phát hành đến th ẻ - Dữ liệu hồi đáp chu ẩ n chi Dữ liệu Mô tả Bản mẫu Tập lệnh bên Phát hành CPA cho phép ch ỉ một bản mẫu tập lệnh bên phát hành trong lần giao dịch, nhưng mà bản mẫu tập lệnh có thể là thẻ Tag '71' hoặc Tag ‘72’ • Thẻ tag '71' chỉ ra Bản mẫu tập lệnh bên phát hành 1 và có chứa dữ liệu bên phát hành độc quyền cho truyền tải đến th ẻ trước lệnh GENERATE AC lần hai; • Thẻ tag ' 7 2' chỉ ra Bản mẫu tập lệnh bên phát hành 2 và có chứa dữ liệu bên phát hành độc quyền cho truyền tải đến thẻ sau lệnh GENERATE AC lần hai; Định danh tập lệnh bên Phát hành Đ ị nh danh tập lệnh bên phát hành là một số được s ử dụng b ở i bên phát hành để nhận diện đơn nhất tập lệnh bên phát hành. Lệnh tập lệnh bên phát hành Từng lệnh tập lệnh bên phát hành trong tập lệnh là trong định dạng BER-TLV với th ẻ tag '86'. Thiết bị đầu cuối g ử i các lệnh riêng biệt trong tập lệnh bên phát hành đến thẻ hoặc trước hoặc sau lệnh GENERATE AC lần hai, được ch ỉ ra b ở i thẻ Tag Bản mẫu Tập lệnh b ê n Phát hành. Sau từng lệnh riêng đó, thiết bị đầu cuối phân tích tình trạng tr ả về của lệnh. Nếu th ẻ hồi đáp cho thấy lỗi xuất hiện, thiết bị đầu cuối phải chấm dứt quy trình xử lý tập lệnh bên phát hành. 5.5 Tổng quan Tập lệnh bên phát hành được xử lý theo phương thức sau: 5.5.1 Thông điệp Hồi đáp Chuẩn chi Hầu hết một bản mẫu tập lệnh bên phát hành có thể g ử i đến thiết bị đầu cuối trong thông điệp hồi đáp chuẩn chi cho th ẻ tương thích CPA. B ả n mẫu Tập lệnh bên Phát hành này hoặc có th ẻ tag 71 hoặc 72. • Thẻ tag '71' ch ỉ ra Bản mẫu tập lệnh bên phát hành 1 và có chứa dữ liệu bên phát hành độc quyền cho truyền tải đến th ẻ trước lệnh GENERATE AC lần hai; • Th ẻ tag '72' chỉ ra Bản m ẫ u tập lệnh bên phát hành 2 và có chứa dữ liệu bên phát hành độc quyền cho truyền tải đến th ẻ sau lệnh GENERATE AC lần hai; Các lệnh tập lệnh bên phát hành được định nghĩa trong điều này được sử dụng để thực hiện các cập nhật sau: • M ở khóa ứng dụng; • Thay đổi mã PIN ngoại tuyến; • M ở khóa mã PIN ngoại tuy ế n; • Cập nhật thông số thẻ; Nguyên gốc của lệnh tập lệnh bên phát hành được gán vào bởi bên phát hành th ẻ Nếu một thực th ể khác bên phát hành sinh ra lệnh, các yêu cầu tương tự được áp dụng. Các khả năng Khóa Thẻ và Khóa ứng dụng s ử dụng CSU được hỗ trợ bởi CPA. 5.5.2 Quy trình xử lý Tập lệnh bên phát hành đến th ẻ Tất cả các lệnh tập lệnh bên phát hành yêu cầu gửi thông điệp bí mật. Ứ ng dụng xem xét tất cả các lệnh nhận được với g ử i thông điệp bí mật cho lệnh tập lệnh. Điều 5.5.4 mô t ả việc thiết lập các ch ỉ báo liên quan đến quy trình xử lý tập lệnh bên phát hành đ ế n th ẻ khi một lệnh tập lệnh bên phát hành được truyền đến th ẻ . 5.5.3 Gửi thông điệp bí mật thẻ Mục đích c ủ a việc gửi thông điệp bí mật là đ ả m b ả o tính bí mật d ữ liệu, tính toàn vẹn thông điệp và xác thực bên phát hành. Tính toàn vẹn thông điệp và xác thực bên phát hành nhận được bằng s ử dụng mã MAC. Tính bí mật dữ liệu nhận được bằng cách mã h ó a dữ liệu b í mật như thể một mã PIN ngoại tuyến. CPA xác thực bên phát hành trước khi quy trình xử lý một lệnh tập lệnh bên phát hành sử dụng g ử i thông điệp b í mật. Xác thực bên Phát hành (như mô tả tại Điều 7 trong TCVN 11198-4) không đ ược thực hiện cho quy trình xử lý tập l ệnh. Req 5.1 (Xác thực bên phát hành không yêu cầu xử lý lệnh tập lệnh): Th ẻ phải không yêu c ầ u rằng việc Xác thực bên Phát hành được mô tả trong Điều 5.5.3.1 c ủ a TCVN 11198-4 được thực hiện và thông qua theo thứ tự thực hiện các lệnh tập lệnh. Req 5.2 (G ử i thông điệp bí mật được yêu cầu trong các tập lệnh cập nhật thông tin): Bất kỳ lệnh tập lệnh bên phát hành nào cập nhật, thiết lập lại, thay đ ổ i hoặc sửa đ ổ i trong bất kỳ cách thức thông tin nào trong ứng dụng phải: • hỗ trợ việc gửi thông điệp b í mật; • yêu c ầ u rằng gửi thông điệp bí mật được thực hiện thành công. Một khi mã MAC có lỗi xuất hiện, thẻ phải loại tr ừ các lệnh tập lệnh tiếp theo nhận được trong cùng giao dịch (xem Điều 6.3 trong TCVN 11198-6). Trong các biểu đồ luồng đáp ứng đầy đủ yêu cầu này làm việc sử dụng cờ 'tập lệnh lỗi' nhưng các việc thực thi khác vẫn được phép. Gửi thông điệp bí mật cho các lệnh tập lệnh bên phát hành sử dụng Định dạng Gửi thông điệp Bí mật 1 như quy định cho ứng dụng tương thích CCD trong EMV Quyển 2, Điều 9. 5.5.3.1 Xác thực Thông điệp (MAC) Xác thực thông điệp (sử dụng mã MAC) phải được sử dụng để xác thực bên phát hành là bên khởi tạo ra lệnh tập lệnh bên phát hành và để đảm bảo rằng lệnh không bị sửa đổi sau khi được gửi b ở i bên phát hành. MAC được sinh ra bằng cách sử dụng tất cả các mào đầu lệnh và dữ liệu lệnh. MAC được sinh ra sau khi mã hóa bất kỳ dữ liệu b í mật nào trong lệnh. Tính toàn vẹn c ủ a lệnh, bao gồm các thành phần dữ liệu đang chứa trong trường dữ liệu lệnh, nếu có, được đảm bảo bằng cách gửi thông điệp bí mật. Req 5.3 (hỗ trợ mã MAC 4 byte): Ứ ng dụng CPA phải hỗ trợ m ã MAC 4 byte. CHÚ THÍCH 1 : Hỗ t rợ các mã MAC có chiều dài từ 5 đến 8 byte được phép như một chức năng bổ sung. Xem thêm tại Điều 6.3.5. CH Ú THÍCH 2 : Việc gửi thông điệp bí mật CPA bao gồm chuỗi MAC từ một lệnh đến tiếp theo trong một tập lệnh. 5.5.3.2 Tính bí mật dữ liệu Mã hóa dữ liệu được sử dụng để đảm b ả o tính bí mật c ủ a dữ liệu được yêu cầu cho lệnh. Mã hóa dữ liệu diễn ra trước khi sinh ra mã MAC cho lệnh. 5.5.4 Ch ỉ báo kết qu ả Thẻ sử dụng Bộ đếm Lệnh Tập lệnh bên Phát hành để đếm từng lệnh có chứa gửi thông điệp bí mật rằng được thực hiện thành công hoặc trước hoặc sau lệnh GENERATE AC lần hai. Thẻ tăng bộ Đếm Lệnh tập lệnh bên Phát hành thêm một nếu lệnh tập lệnh được xử lý thành công. Th ẻ sử dụng bit 'đã nhận tập lệnh' trong PTH đến b ả n ghi rằng một lệnh tập lệnh đã được nhận. Req 5.4 (Định nghĩa lệnh tập lệnh đã nhận): Thẻ phải thiết lập bit 'tập lệnh đã nhận' trong PTH giá trị 1b khi thẻ nhận một lệnh tập lệnh và định dạng l ệ nh là hợp lệ (tức là lệnh đã qua xác minh lệnh như mô tả ở Điều 6.3 trong TCVN 11198-2 và byte CLA c ủ a mào đầu lệnh ch ỉ ra việc gửi thông điệp b í mật). Thẻ sử dụng bit 'tập lệnh đã nhận' trong PTH đến b ả n ghi rằng quy trình xử lý lệnh tập lệnh bị lỗi. Req 5.5 (Định nghĩa tập lệnh b ị lỗi): Nếu một lệnh tập lệnh được thông qua yêu cầu tại Điều 5.4 đã nhận hoặc trước hoặc sau lệnh GENERATE AC lần hai, và lệnh không được th ô ng qua thành công, thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH sang giá trị 1b; • phải tr ả v ề một tình trạng lỗi trong hồi đáp lệnh; • phải loại bỏ các lệnh tập lệnh tiếp theo đã nhận trong cùng giao dịch. Ví dụ về nguyên nhân lỗi có thể không được xử lý thành công bao gồm: • xác minh định dạng bị lỗi; • việc gửi thông điệp bí mật bị lỗi (ví dụ như mã MAC đã tính toán không tương ứng với mã MAC có trong lệnh, hoặc chiều d à i của mã MAC không được hỗ trợ b ở i ứng dụng); • gửi thông điệp bí mật được thông qua nhưng quy trình xử lý lệnh bị lỗi; 5.5.5 Các lệnh tập lệnh được hỗ trợ Các lệnh tập lệnh bên phát hành được hỗ trợ bởi tất cả việc thực thi CPA mà có thể được thực hiện bằng Quy trình x ử lý T ậ p lệnh bên phát hành đến thẻ được liệt kê bên dưới. Các lệnh tập lệnh bổ sung có thể được hỗ trợ b ở i việc thực thi CPA nhưng nằm ngoài phạm vi c ủ a bộ tiêu chu ẩ n này. Req 5.6 (Các lệnh tập lệnh được hỗ trợ): T ấ t cả các thực thi CPA phải hỗ trợ các lệnh tập lệnh bên phát hành bên dưới: • APPLICATION UNBLOCK; • PIN CHANGE/UNBLOCK; • PU T DATA; • UPDATE RECORD; 5.6 Lệnh APPLICATION UNBLOCK Lệnh APPLICATION UNBLOCK đ ược sử dụng để loại bỏ các hạn chế được đặt lên ứng dụng khi ứng dụng bị khóa. Ví dụ ứng dụng có thể bị khóa khi bit 'Khóa ứng dụng' trong một CSU được phục hồi thành c ô ng được thiết l ậ p giá trị 1b. Việc APPLICATION UNBLOCK thông qua việc sử dụng lệnh APPLICATION UNBLOCK nghĩa là ứng dụng không còn được yêu cầu phản hồ i tất cả các lệnh GENERATE AC với một AAC và trong hồi đáp SELECT trong khi việc Lựa chọn Ứ ng dụng không còn yêu cầu SW1 SW2 = '6283'. Trong phiên bản CPA này, việc APPLICATION UNBLOCK có thể x ảy ra chỉ tại thiết bị đặc biệt được thiết kế b ở i bên phát hành. Từ khi APPLICATION UNBLOCK được thực hiện tại thiết bị đặc biệt đó, luồng quy trình xử lý giao dịch để m ở khóa giao dịch không nằm trong phạm vi của bộ tiêu chu ẩ n này, việc này ch ỉ phù hợp với chuỗi lệnh đã mô tả tại Điều 6.2.2 trong TCVN 11198-2. Lệnh APPLICATION UNBLOCK được thực hiện như mô tả ở EMV Quyển 3, Điều 6.5.2. Lệnh nhận được từ thiết bị đầu cuối bao gồm việc gửi thông điệp bí mật m ã MAC trong trường dữ liệu lệnh. Thẻ nhận được lệnh APPLICATION UNBLOCK từ thiết bị đầu cuối. Nếu mã MAC là hợp lệ và các Byte Tham số P1 và P2 có chứa giá trị '00' thì ứng dụng thiết lập bit ' Ứ ng d ụng bị khóa’ trong PTH thành giá trị 0 b trước khi gửi hồi đáp APPLICATION UNBLOCK đến thiết bị đầu cuối. 5.6.1 Mã hóa Lệnh APPLICATION UNBLOCK Bảng 4 - Thông điệp lệnh APPLICATION UNBLOCK Code Giá trị CLA '8C' INS '18' P1 '00' P2 '00' New Lc '06' Data trường dữ liệu lệnh bí mật Le không có mặt Req 5.7 (lệnh tập lệnh APPLICATION UNBLOCK đã nhận): Ứ ng dụng phải thiết lập b i t ‘ tập lệnh đ ã nhận' trong PTH thành giá trị 1b. 5.6.1.1 Xác minh định dạng lệnh APPLICATION UNBLOCK Req 18.8 (Kiểm tra giá tr ị P1 cho APPLICATION UNBLOCK): Nếu P1 không phải '00' thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình x ử lý lệnh APPLICATION UNBLOCK, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6A86' (Tham số không đúng P1 P2); Req 18.9 (Ki ể m tra giá trị P2 cho APPLICATION UNBLOCK): Nếu P2 không ph ả i '00' thì thẻ: • phải thiết lập bit ‘ tập lệnh bị lỗi’ trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh APPLICATION UNBLOCK, ph ả i h ồ i đáp với một SW1 SW2 để ch ỉ ra một lỗi và ph ả i hồi đáp với SW1 SW2 = ‘6A86’ (Tham số không đúng P1 P2); 5.6.2 Quy trình xử lý Lệnh APPLICATION UNBLOCK Dữ liệu lệnh (Trường Dữ liệu lệnh bí mật) cho APPLICATION UNBLOCK có chứa chỉ dữ liệu MAC như Hình 1. Hình 1 - Định dạng Dữ liệu Lệnh chỉ nếu Dữ liệu MAC đư ợ c thể hiện Req 5.10 (Kiểm tra chiều d à i dữ liệu lệnh cho APPLICATION UNBLOCK): Nếu New Lc có giá trị khác '06' thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình x ử lý lệnh APPLICATION UNBLOCK, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6700' (chiều dài sai); Req 5.11 (Kiểm tra th ẻ tag MAC cho APPLICATION UNBLOCK): Nếu byte đầu tiên của Dữ liệu Lệnh có giá trị khác '8E' (thẻ tag MAC) thì thẻ: • ph ả i thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh APPLICATION UNBLOCK, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đ á p với SW1 SW2 = '6987' (các đối tượng d ữ liệu gửi thông điệp b í mật đang chờ đợi bị mất); Req 5.12 (Kiểm tra chiều dài MAC cho APPLICATION UNBLOCK): Nếu byte thứ hai của Dữ liệu Lệnh có giá trị khác '04' (chiều dài MAC) thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh APPLICATION UNBLOCK, phải hồi đáp với một SW1 SW2 đ ể ch ỉ ra một lỗi và phải hồi đ á p với SW1 SW2 = '6988' (các đối tượng dữ liệu gửi thông điệp bí mật không ch í nh xác); Ứ ng dụng tiến hành xác minh mã MAC. Req 5.13 (Xác minh MAC cho APPLICATION UNBLOCK): Nếu việc xác minh m ã MAC không thành công, thì ứ ng dụng: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh APPLICATION UNBLOCK, phải hồi đáp với một SW1 SW2 đ ể ch ỉ ra một lỗi và ph ả i hồi đáp với SW1 SW2 = '6982' (trạng thái an ninh không phù hợp); nếu việc xác minh mã MAC thành công, thì ứng dụng phải: • được mở khóa; • thiết lập bit 'ứng dụng bị khóa' trong PTH thành giá trị 0 b; • tăng th ê m một cho bộ Đếm Lệnh Tập lệnh bên Phát hành; • h ồ i đáp với SW1 SW2 = '9000'; 5.6.3 Luồng APPLICATION UNBLOCK H ì nh 2 minh họa luồng lệnh APPLICATION UNBLOCK. H ì nh 2 - L uồng APPLICATION UNBLOCK H ì nh 2 - L uồng APPLICATION UNBLOCK (kết thúc) 5.7 Lệnh PIN CHANGE/UNBLOCK Lệnh PIN CHANGE/UNBLOCK cung cấp cho bên phát hành kh ả n ă ng hoặc để thay đổi đồng thời việc m ở khóa mã PIN Tham khảo hoặc đ ể m ở khóa mã PIN Tham khảo. Mã PIN Tham khảo được m ở khóa bằng cách thiết lập lại Bộ đếm Lần th ử mã PIN thành giá trị của Hạn mức Lần th ử mã PIN. Thay đổi mã PIN Nếu mã PIN tham khảo c ủ a th ẻ bị thay đổi: • định dạng Khối mã PIN bản rõ như biểu diễn trong EMV Quyển 3, Điều 6.5.12.2. • Dữ liệu mã PIN được mã hóa như mô tả trong EMV Quyển 2, phần IV Điều 9.3, với byte Chỉ báo Đệm thiết lập giá trị là '01'. Việc này nghĩa là khối 8 byte bổ sung có giá trị '80 00 00 00 00 00 00 00' được gán vào khối mã PIN trước khi mã hóa. Một khi mã PIN tham khảo của thẻ bị thay đổi, th ẻ hoàn toàn được m ở khóa m ã PIN, từ khi hoàn thành thành công lệnh PIN CHANGE/UNBLOCK tự động thiết lập lại Bộ đếm lần thử mã PIN sang Hạn mức lần th ử mã PIN , B ỏ qua phương thức được s ử dụng, mã PIN thay đổi chỉ khi được thực hiện bên trong môi trường bảo mật được kiểm soát b ở i bên phát hành. 5.7.1 Mã hóa Lệnh PIN CHANGE/UNBLOCK B ả ng 5 - Thông điệp lệnh PIN CHANGE/UNBLOCK Code Giá trị CLA ‘ 8C’ INS '24' P1 '00' P2 '00' hoặc ’02' New Lc '06' hoặc '09' Data dữ liệu liên quan đến m ã PIN (thành phần dữ liệu mã PIN được mã hóa, nếu có, và thành phần dữ liệu mã MAC) Le không có mặt Req 5.14 (lệnh tập lệnh PIN CHANGE/UNBLOCK đã nhận): Ứ ng dụng phải thiết lập bit 'tập lệnh đã nhận' trong PTH thành giá trị 1b. 5.7.1.1 Xác minh định dạng lệnh PIN CHANGE/UNBLOCK Req 5.15 (Kiểm tra giá tr ị P1 cho PIN CHANGE/UNBLOCK): N ế u P1 không phải '00' thì thẻ: • phải thiết lập bít 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh PIN CHANGE/UNBLOCK, ph ả i hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6A86’ (Tham số không đúng P1 P2); Req 5.16 (Kiểm tra giá trị P2 cho PIN CHANGE/UNBLOCK): Nếu P2 không phải '00' hoặc '02' thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá tr ị 1b; • phải ch ấ m dứt quy trình x ử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW 1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6A86' (Tham số không đúng P1 P2); 5.7.2 Quy trình xử lý Lệnh PIN CHANGE/UNBLOCK Req 5.17 (Kiểm tra khi nào Thay đổi mã PIN hoặc Mở khóa mã PIN): Nếu P2 là '00' tiếp tục với quy trình được mô t ả trong Điều 5.7.2.1. Nếu P2 là '02' tiếp tục quy trình xử lý được mô tả trong Điều 5.7.2.2. 5.7.2.1 Mở khóa m ã PIN Quy trình xử lý trong điều n à y áp dụng nếu P2 l à ’00 ’. Dữ liệu lệnh (dữ liệu liên quan mã PIN) để mở khóa mã PIN có chứa ch ỉ dữ liệu mã MAC, như th ể hiện trong Hình 1. Req 5.18 (Kiểm tra chiều dà i dữ liệu lệnh cho MỞ KHÓA MÃ PIN): Nếu New Lc có giá trị khác '06' thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6700 ’ (chiều dài sai); Req 5.19 (Kiểm tra thẻ tag MAC cho M Ở KHÓA MÃ PIN): Nếu byte đầu tiên của Dữ liệu liên quan mã PIN có giá trị khác '8E' (thẻ tag MAC) thì thẻ: • phải thiết lập bit ‘ tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải ch ấ m dứt quy trình x ử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đ á p với SW1 SW2 = '6987' (các đối tượng dữ liệu gửi thông điệp bí mật đang chờ đợi bị m ấ t); Req 5.20 (Ki ể m tra chiều dà i MAC cho MỞ KHÓA MÃ PIN): Nếu byte thứ hai của Dữ liệu liên quan mã PIN có giá trị khác '04' (chiều dài MAC) thì thẻ: • phải thiết lập b i t 'tập lệnh bị lỗi' trong PTH thành giá trị 1b • ph ả i chấm dứt quy trình x ử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '698 8 ' (các đối tượng dữ liệu gửi thông điệp bí mật không chính xác) Ứ ng dụng th ự c hiện việc xác minh mã MAC. Req 5.21 (Xác minh MAC và thiết l ập lại Bộ đếm lần thử mã PIN): Nếu việc xác minh mã MAC thành công, thì ứng dụng phải: • thiết lập bộ đếm l ầ n thử mã PIN thành giá trị c ủa Hạn mức Lần thử mã PIN; • tăng thêm một cho Bộ Đếm Lệnh Tập lệnh bên Phát hành; • hồi đáp với SW1 SW2 = '9000'; Nếu việc xác minh mã MAC không thành công, thì ứ ng dụng: • phải thiết lập b i t 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình x ử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6982' (trạng thái an ninh không phù hợp); 5.7.2.2 Thay đổi mã PIN Quy trình xử lý trong điều này áp dụng nếu P2 là '02'. Khối mã PIN b ả n rõ trước khi mã hóa để giữ bí mật được mã hóa như trong EMV Quyển 3, Bảng 24. Việc này đệm thêm '80 00 00 00 00 00 00 00' và thì mã hóa như quy định cho ứng dụng tương thích CCD trong EMV Quyển 2, Điều 9.3. Minh họa quy tr ì nh phục hồi Khối mã PIN mới tại Hình 3. Hình 3 - Phục hồi Khối m ã PIN Mới từ Dữ liệu Lệnh PIN CHANGE/UNBLOCK Req 5.22 (Kiểm tra chiều dài dữ liệu lệnh cho THAY ĐỔI MÃ PIN): Nếu New Lc có giá trị khác '19' thì th ẻ : • ph ả i thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh PIN CHANGE /U NBLOCK, phải hồi đáp với một SW1 S W 2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6700' (chiều dài s a i); Req 5.23 (Kiểm t ra th ẻ tag bản mẫu thông điệp bí mật để THAY ĐỔI MÃ PIN): Nếu byte đầu tiên của Dữ liệu liên quan m ã PIN có gi á trị khác '87', thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và ph ả i hồi đáp với SW1 SW2 = '6987' (các đối tượng dữ liệu gửi th ô ng điệp bí mật đang chờ đợi bị mất); Req 5.24 (Kiểm tra chiều dài của thông điệp bí mật để THAY ĐỔI MÃ PIN): Nếu byte thứ hai của Dữ liệu liên quan mã PIN có giá trị khác '11', thì thẻ: • phải thi ế t l ậ p bit 'Tập lệnh bị lỗi' trong PTH thành giá tr ị 1b; • phải chấm dứt quy trình xử lý lệnh PIN CHANGE /U NBLOCK, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6988' (các đối tượng dữ liệu gửi thông điệp b í mật không chính x á c); Req 5.25 (Kiểm tra Chỉ báo phần Đệm để THAY ĐỔI MÃ PIN): Nếu byte thứ ba của Dữ liệu liên quan mã PIN có giá trị khác '01' (Ch ỉ báo phần Đệm), thì thẻ: • phải thiết lập bit 'Tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm d ứ t quy trình xử lý lệnh PIN CHANGE /U NBLOCK, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6988' (các đối tượng dữ liệu gửi thông điệp bí mật không ch í nh xác); Req 5.26 (Kiểm tra th ẻ tag MAC đ ể THAY ĐỔI M Ã PIN): Nếu byte thứ hai mươi của Dữ liệu liên quan m ã PIN có giá trị khác '8E' (thẻ tag MAC), thì th ẻ : • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm d ứt quy tr ình xử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải h ồ i đáp với SW1 SW2 = '6987' (các đối tượng dữ liệu g ử i thông điệp bí mật đang chờ đợi bị mất); Req 5.27 (Kiểm tra chiều dài mã MAC đ ể THAY ĐỔI MÃ PIN): Nếu byte hai mư ơ i mốt của Dữ liệu liên quan m ã PIN có giá trị khác '04' (chiều dài m ã MAC), thì thẻ: • phải thiết lập bit 'Tập lệnh bị lỗi' trong PTH thành giá tr ị 1b; • ph ả i ch ấ m dứt quy trình x ử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6988' (các đối tượng dữ liệu gửi thông điệp bí mật không chính xác); Ứ ng dụng thực hiện việc xác minh mã MAC. Req 5.28 (Xác minh MAC bị l ỗ i đối v ới THAY ĐỔI PIN): Nếu việc x á c minh mã MAC không thành công, thì ứng dụng: • phải thiết lập bit ‘ tập lệnh bị lỗi' trong PTH thành giá trị 1b; • ph ả i chấm dứt quy trình xử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 S W 2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6982' (trạng thái an ninh không phù hợp); Nếu không thẻ phải giải mã các byte 4-19 của dữ liệu lệnh để phục hồi Khối mã PIN Mới. Req 5.29 (Xác minh định dạng Khối mã PIN và thay đổi mã PIN Tham khảo): Nếu tất cả điều sau là đúng: • byte 1, bit b8-b5 của Khối mã PIN mới (trường kiểm soát) có giá trị '2'; • và byte 1, bit b4-b1 của Khối mã PIN mới (chiều dài mã PIN) có giá trị lớn hơn hoặc bằng '4'; • và byte 1, bit b4-b1 của Khối mã PIN mới (chiều dài m ã PIN) có giá trị nhỏ hơn hoặc bằng 'C; • và tất c ả các số Điền đầy của Khối mã PIN mới có giá trị 'F; thì thẻ phải: • cập nhật mã PIN Tham khảo; • thiết lập Bộ đếm L ầ n thử mã PIN thành giá trị của Hạn mức L ầ n thử mã PIN; • tăng Bộ đếm Lệnh tập lệnh bên Phát hành lên một; • hồi đáp với SW1 SW2 = '9000'; nếu khác thì th ẻ : • phải thiết lập bit 'Tập lệnh bị lỗi' trong PTH có giá trị 1b; • phải chấm dứt quy trình xử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6988' (các đối tượng dữ liệu gửi thông điệp bí mật không ch í nh xác). 5.7.3 Luồng PIN CHANGE/UNBLOCK Hình 4 minh họa luồng lệnh PIN CHANGE/UNBLOCK. Hình 4 - Luồng PIN CHANGE/UNBLOCK Hình 4 - Luồng PIN CHANGE/UNBLOCK (tiếp theo) Hình 4 - Luồng PIN CHANGE/UNBLOCK (tiếp theo) Hình 4 - Luồng PIN CHANGE/UNBLOCK (tiếp theo) Hình 4 - Luồng PIN CHANGE/UNBLOCK ( kết thúc ) 5.8 Lệnh PUT DATA Lệnh PUT DATA cho phép các phần tử d ữ liệu cụ thể và b ả n mẫu trong th ẻ được cập nhật. Một phần t ử dữ liệu hoặc bản mẫu có thể được cập nhật với lệnh này ch ỉ nếu nó có một thẻ tag liên quan nó. Req 5.30 (Phần tử dữ liệu được h ỗ tr ợ bởi PUT DATA): Trong TCVN 11198-8, Điều 5 cho thấy ch ỉ các phần t ử dữ liệu ứng dụng được định nghĩa bởi EMV và bởi CPA và bản mẫu c ó thể được cập nhật bằng lệnh PUT DATA. Req 5.31 (PUT DATA không yêu cầu các byte điền đầy): Đối với các thẻ Tag b ả n mẫu, lệnh PUT DATA phải cho phép các bản mẫu không có các byte điền đầy. Lệnh PUT DATA làm một thẻ Tag b ả n mẫu được phép chứa các byte điền đầy giá trị '00' trong d ữ liệu lệnh. Xem Điều 11 trong TCVN 11198-7 về giải thích việc quản lý dữ liệu tài nguyên ứng dụng trong các b ả n mẫu cho lệnh PUT DATA s ử dụng một th ẻ tag bản mẫu đơn cho từng kiểu tài nguyên. 5.8.1 Mã hóa Lệnh PUT DATA Các tham số P 1 và P2 của lệnh PUT DATA ch ỉ ra th ẻ tag c ủ a d ữ liệu được cập nhật. B ả ng 6 - Thông điệp lệnh PUT DATA Code Giá trị CLA '0C' INS ‘ 24 ’ P1/P2 thẻ tag Ne w Lc Var. Data trường dữ liệu lệnh bí mật Le không có mặt Req 5.32 (lệnh tập lệnh PUT DATA đã nh ậ n): Ứ ng dụng phải thiết lập bit 'tập lệnh đã nh ậ n' trong PTH thành giá trị 1b. CHÚ THÍCH: Nếu một lệnh PUT DATA đã nhận tr ư ớc khi lệnh GENERATE AC lần hai cập nhật phần tử dữ liệu mà được sử dụng trong lúc quy trình xử lý của lệnh GENERATE AC lần hai, thì các giá trị được cập nhật được s ử dụng trong quy trình xử lý lệnh GENERATE AC lần hai. 5.8.1.1 . Xác minh Định dạng Lệnh PUT DATA Req 5.33 (Kiểm tra giá trị P1 cho PUT DATA): Nếu P1/P2 không chứa một thẻ hoặc một thẻ biểu mẫu mà có thể đ ư ợc cập nhật bằng PUT DATA, thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đ á p với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6A86' (Tham số không đúng P1 P2); Các thẻ tag byte đơn đứng trước với một byte dẫn đầu '00' điền đầy P1/P2. 5.8.2 Quy trình xử lý PUT DATA Định dạng của dữ liệu lệnh (Trường Dữ liệu Lệnh bí mật) cho PUT DATA như Hình 5. Hình 5 - Định dạng dữ liệu Lệnh cho PUT DATA. Nếu P1/P2 cho lệnh PUT DATA chứa một thẻ tag b ả n mẫu, dữ liệu lệnh gói gọn một tổ hợp gồm dữ liệu mã hóa TLV được hiểu là một phần nội dung c ủ a bản mẫu. Lệnh PUT DATA đưa th ẻ tag bản mẫu cập nhật các phần tử dữ liệu mã hóa TLV với bản mẫu. Trường dữ liệu lệnh không đ ò i h ỏ i việc bao gồm tất cả các phần tử dữ liệu trong bản mẫu, ch ỉ nếu chúng được thêm vào hoặc sửa đổi. Xem Điều 11 trong TCVN 11198-7 về cách cập nhật một bản mẫu bằng lệnh PUT DATA. Req 5.34 (Kiểm tra bản mẫu gửi thông điệp bí mật để PUT DATA): Nếu byte đầu tiên của Trường Dữ liệu lệnh bí mật có giá trị không bằng ’ 81 ’ thì ứng dụng: • phải thiết lập bit ‘ tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh PUT DATA, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6987' (các đối tượng dữ liệu gửi thông điệp b í mật đang chờ đợi b ị mất); Ứ ng d ụng xác minh định dạng gửi thông điệp bí mật cho dữ liệu lệnh. Req 5.35 (Ki ể m tra chiều dài dữ liệu lệnh và dữ liệu lệnh cho chiều dài 1 byte): Nếu L được mã hóa một byte thì: • Nếu New Lc không bằng 8+L thì thẻ: - phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; - phải ch ấ m dứt quy trình x ử lý lệnh PUT DATA, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6700' (chiều dài sai); • Nếu giá trị của byte (L + 3) của Trường Dữ liệu Lệnh b í mật có giá trị khác '8E' (thẻ tag MAC), thì thẻ: - phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; - phải chấm dứt quy trình xử lý lệnh PUT DATA, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đ á p với SW1 SW2 = '6987' (các đối tượng dữ liệu gửi thông điệp bí mật đang chờ đợi bị mất); • Nếu giá trị của byte (L + 4) của Trường Dữ liệu Lệnh bí mật có giá trị kh á c '04' (chiều dài MAC), thì thẻ: - phải thiết lập bit 'Tập lệnh bị lỗi' trong PTH thành giá trị 1b; - phải ch ấ m dứt quy trình x ử lý lệnh PUT DATA, phải hồi đáp với một S W1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6988' (các đối tượng dữ liệu gửi thông điệp bí m ậ t không ch í nh xác); Req 5.36 (Kiểm tra chiều dài dữ liệu lệnh và dữ liệu lệnh cho chiều dài 2 byte): Nếu L được mã hóa hai byte thì: • Nếu New Lc không bằng 9+L thì thẻ: - phải thiết lập bit ‘tập lệnh bị lỗi' trong PTH thành giá trị 1b; - phải chấm dứt quy trình xử lý lệnh PUT DATA, ph ả i hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6700' (chiều dài sai); • Nếu giá trị của byte (L + 4) của Trường Dữ liệu Lệnh bí mật có giá trị khác '8E' (thẻ tag MAC), thì thẻ: - phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; - phải chấm dứt quy trình xử lý lệnh PUT DATA, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6987' (các đối tượng dữ liệu gửi thông điệp bí mật đang chờ đợi bị mất); • Nếu giá trị c ủ a byte (L + 5) của Trường Dữ liệu Lệnh bí m ậ t có giá trị khác '04' (chiều dài MAC), thì thẻ: - phải thiết lập bit 'Tập lệnh bị lỗi' trong PTH thành giá trị 1b; - ph ả i ch ấ m dứt quy trình x ử lý lệnh PUT DATA, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6988' (các đối tượng dữ liệu gửi th ô ng điệp bí mật không chính xác); Nếu không, ứng dụng phải tiếp tục quy trình xử lý với việc xác minh mã MAC. Ứ ng dụng thực hiện việc xác minh mã MAC. Req 5.37 (Xác minh MAC bị lỗi đ ể PUT DATA): Nếu việc xác minh mã MAC không thành công, thì th ẻ : • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm d ứt quy trình xử lý lệnh PIN CHANGE /U NBLOCK, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6982' (trạng thái an ninh không phù hợp). Nếu việc xác minh mã MAC thành công, th ì thẻ xác định rằng dữ liệu lệnh có th ẻ tag và chiều dài hợp lệ để cập nhật dữ liệu ứng dụng. Ứ ng dụng thiết lập không gian cho các phần t ử dữ liệu mà có thể được cấu hình bằng lệnh PUT DATA, và không x ử lý truy vấn để cập nhật phần t ử dữ liệu nếu việc cập nhật vượt quá không gian đã lập cho phần tử dữ liệu. Req 5.38 (PUT DATA có một th ẻ tag bản mẫu trong P1/P2): Nếu P1/P2 có chứa một thẻ tag bản mẫu, thì: • thẻ phải tách từng phần t ử dữ liệu mã hóa TLV b ê n trong dữ liệu lệnh; • đối với t ừ ng phần t ử dữ liệu mã hóa TLV đ ã tách: - Nếu thẻ tag không được hỗ trợ bên trong b ả n mẫu, thì thẻ: ■ phải thiết lập bit 'tập lệnh bị lỗi' trong PTH có giá trị 1b; ■ phải chấm dứt qu á trình xử lý lệnh PUT DATA, phải hồi đáp với một SW1 SW2 chỉ ra một lỗi và hồi đáp với SW1 SW2 = '6A88' (dữ liệu tham chiếu không có); - Nếu chiều dài của dữ liệu bản mẫu lớn hơn chiều dài phục hồi cho phần tử dữ liệu, thì thẻ: ■ phải thiết lập bit 'tập lệnh bị lỗi' trong PTH có giá trị 1b; ■ phải chấm dứt qu á tr ình xử lý lệnh PUT DATA, phải hồi đáp với một SW1 S W 2 chỉ ra một lỗi và hồi đáp với SW1 SW2 = '6700' (chiều dài sai); • Nếu thẻ và chiều dài được hỗ trợ cho tất cả ph ầ n tử dữ liệu bên trong bản mẫu, thì th ẻ phải: - cập nhật tất cả phần tử dữ liệu; - tăng thêm một cho Bộ đếm Lệnh tập lệnh bên Phát hành; - hồi đáp với SW1 SW2 = '9000'; CH Ú TH Í CH: Thẻ ph ả i kiểm tra chiều dài c ủ a d ữ liệu chiều dài cố định trước khi cập nhật phần tử dữ liệu. Req 5.39 (PUT DATA có một th ẻ tag phần tử dữ liệu trong P1/P2): Nếu P1/P2 có chứa một thẻ tag phần t ử dữ liệu, thì: • Nếu L nhỏ hơn hoặc bằng với chiều dài phục hồi cho phần tử dữ liệu, thì th ẻ phải: - cập nhật tất cả phần t ử dữ liệu; - tăng thêm một cho Bộ đếm Lệnh tập lệnh bên Ph á t hành; - hồi đáp với SW1 SW2 = '9000'; • Nếu kh ô ng thì thẻ: - phải thiết lập bit 'tập lệnh bị lỗi' trong PTH có giá trị 1b; - phải chấm dứt qu á trình x ử lý lệnh PUT DATA, phải hồi đáp với một SW1 SW2 ch ỉ ra một lỗi và hồi đáp với SW1 SW2 = '6700' (chiều dài sai); CHÚ THÍCH: Thẻ phải kiểm tra chiều dài của dữ liệu chi ề u dài cố định trước khi cập nhật phần tử dữ liệu. Lệnh PUT DATA không yêu cầu các byte điền đầy trong dữ liệu b ả n mẫu. Tuy nhiên, bởi vì lệnh có một chiều dài cho dữ liệu lệnh bổ sung cho chiều dài từng phần tử dữ liệu mã hóa TLV, b ê n phát hành cho phép thêm các byte điền đ ầy vào dữ liệu lệnh. CHÚ THÍCH: EMV s ử dụng giá trị '00' cho các byte điền đầy. Req 5.40 (Các byte điền đầy không yêu cầu trong lệnh PUT DATA): Các byte điền đầy không được yêu c ầ u gửi trong bản mẫu cho lệnh PUT DATA. 5.8.3 Luồng PUT DATA Hình 6 minh họa luồng của lệnh PUT DATA. Hình 6 - Luồng PUT DATA Hình 6 - Luồng PUT DATA (tiếp theo) Hình 6 - Luồng PUT DATA (tiếp theo) Hình 6 - Luồng PUT DATA (kết thúc) 5.9 Lệnh UPDATE RECORD Lệnh UPDATE RECORD được sử dụng để cập nhật một bản ghi trong một tệp tin với dữ liệu được cung cấp trong trường dữ liệu lệnh. 5.9.1 Mã hóa lệnh UPDATE RECORD Tham số P1 của lệnh UPDATE RECORD ch ỉ ra khi số lượng bản ghi b ê n trong SFI tham chiếu trong P2 được cập nhật. Tham số P2 ch ỉ ra SFI của tệp tin có chứa bản ghi được cập nhật, và ch ỉ ra P1 có chứa số lượng bản ghi. Phần dữ liệu của lệnh chứa dữ liệu cho bản ghi. Bảng 7 - Thông điệp lệnh UPDATE RECORD Code Giá tr ị CLA ‘ 0 C’ INS ‘ DC’ P1 S ố lượng Bản ghi P2 Tham số Kiểm soát tham khảo New Lc Var. Data Dữ liệu liên quan đến bản ghi Le Không có mặt Bảng 8 thể hiện việc mã hóa của Tham số Kiểm soát Tham khảo trong P2: Bảng 8 - Mã hóa tham số kiểm soát tham khảo cho UPDATE RECORD b8 b7 b6 b 5 b4 b3 b2 b1 giải nghĩa x x x x x SFI x x x 1 0 0 P1 là số hiệu bản ghi. Req 5.41 (lệnh tập lệnh UPDATE RECORD đã nhận): Ứ ng dụng phải thiết lập bit ‘ tập lệnh đ ã nhận' trong PTH thành giá trị 1b. 5.9.1.1 Xác minh Định dạng Lệnh UPDATE RECORD Req 5.42 (Kiểm tra giá trị P2 cho UPDATE RECORD): Nếu P1/P2 không chứa một th ẻ hoặc một thẻ biểu mẫu mà có thể đ ư ợc cập nhật bằng UPDATE RECORD, thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh PIN CHANGE/UNBLOCK, phải hồi đáp với một SW1 SW2 đ ể ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6A86' (Tham số không đúng P1 P2) ; Các tệp tin (và các bản ghi bên trong các tệp tin này) được hỗ trợ b ở i ứng dụng được định nghĩa bằng cá thể hóa/tiền cá thể hóa. Ứ ng dụng kiểm tra khi nào tệp tin được tham chiếu trong P2 được hỗ trợ cho lệnh UPDATE RECORD. Tất cả tệp tin được hỗ trợ với SFI trong dải 1 đến 10 là tệp tin EMV và có thể được cập nhật với lệnh UPDATE RECORD. Dữ liệu Liên quan Bản ghi để cập nhật SFI trong dải 1 đến 10 có chứa thẻ tag bản mẫu '70'. CH Ú THÍCH: Điều này là yêu c ầ u của bên phát hành định dạng lệnh UPDATE RECORD. Thẻ không xác minh yêu c ầ u này đạt hay không. Tất c ả tệp tin được hỗ trợ với SFI trong dải 11 đến 20 là tệp tin cụ thể của hệ thống thanh toán. Nếu th ẻ hỗ trợ VLP, Dữ liệu VLP được tham chiếu trong SFI 11 là có thể cập nhật với lệnh UPDATE RECORD. Req 5.43 (UPDATE RECORD được cập nhật cho bản ghi VLP): Nếu th ẻ hỗ trợ VLP, thì SF I 11, b ả n ghi 1, phải có thể cập nhật với UPDATE RECORD. Các tệp tin cụ thể hệ thống thanh toán khác có thể được sử dụng cho chức năng bổ sung, nhưng việc s ử dụng không nằm trong phạm vi c ủ a bộ tiêu chuẩn này. Hỗ trợ cho các tệp tin này bằng lệnh UPDATE RECORD là nằm ngoài phạm vi của bộ tiêu chu ẩ n này. Bản ghi Log Giao dịch được tham chiếu trong SFI trong dải 21 đến 30 không có thể cập nhật với lệnh UPDATE RECORD. Req 5.44 (UPDATE RECORD không đ ược phép ghi bản Log Giao dịch): Nếu bit b8 đến b4 của tham số P2 ch ỉ ra bản Log Giao dịch, thì thẻ: • phải thiết lập bit 'Tập lệnh lỗi' trong PTH thành giá trị 1b; • ph ả i chấm dứt quy trình xử lý lệnh UPDATE RECORD, phải hồi đáp với một SW1 SW2 ch ỉ ra một lỗi, và phải hồi đáp với SW1 SW2 = '6985' (Lệnh không được phép; các điều kiện sử dụng kh ô ng thích hợp). Req 5.45 (UPDATE RECORD được hỗ trợ cho Mục nhập Lựa chọn Bản ghi): Tệp tin có chứa Tệp tin Lựa chọn Bản ghi phải có thể cập nhật với lệnh UPDATE RECORD. Sử dụng tệp tin không phải tệp tin EMV, tệp tin hệ thống thanh toán cụ thể, tệp tin bản Log Giao dịch, không có tệp tin có ch ứ a Tệp tin Lựa chọn Bản ghi được cho phép như chức năng bổ sung (đối với trường hợp, tệp tin cụ thể của bên phát hành), nhưng việc này nằm ngoài phạm vi c ủ a bộ tiêu chu ẩ n này. Hỗ trợ t ệp tin này b ở i lệnh UPDATE RECORD nằm ngoài phạm vi của bộ tiêu chuẩn này. Req 5.46 (UPDATE RECORD đến SFI không biết): Nếu bít b8 đến b4 của tham số P2 ch ỉ ra một SFI không biết đến ứng dụng, th ì thẻ: • phải thiết lập bit 'Tập lệnh lỗi' trong PTH thành giá tr ị 1b; • phải chấm dứt quy trình x ử lý lệnh UPDATE RECORD, phải hồi đáp với một SW1 SW2 chỉ ra một lỗi, và phải hồi đáp với SW1 SW2 = '6A82' (các Tham số P1 P2 không đúng, tệp tin không t ì m thấy); Req 5.47 (UPDATE RECORD đến bản ghi không biết): Nếu tham số P1 ch ỉ ra một số hiệu bản ghi không được hỗ trợ bởi ứng dụng trong tệp tin được chỉ ra trong P2, thì th ẻ : • phải thiết lập bit 'Tập lệnh lỗi' trong PTH th à nh giá trị 1b; • phải chấm dứt quy trình xử lý lệnh UPDATE RECORD, phải hồi đáp với một SW1 SW2 chỉ ra một lỗi, và phải hồi đáp với SW1 SW2 = '6A83' (các Tham số P1 P2 không đúng, tệp tin không tìm thấy); 5.9.2 Quy trình xử lý UPDATE RECORD Định dạng của dữ liệu lệnh (Dữ liệu liên quan bản ghi) cho UPDATE RECORD như Hình 7. '81' L Giá trị bản ghi '8E' '04' Mã MAC (4 byte) Hình 7 - Định dạng Dữ liệu Lệnh cho UPDATE RECORD Req 5.48 (Kiểm tra bản mẫu g ử i thông điệp bí mật đ ể UPDATE RECORD): Nếu byte đầu tiên c ủ a Trường Dữ liệu lệnh bí mật có gi á trị không bằng '81' thì ứng dụng: • phải thiết lập bít 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh UPDATE RECORD, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6987' (các đối tượng dữ liệu gửi thông điệp bí mật đang chờ đợi bị mất); Ứ ng dụng xác minh đ ị nh dạng bản mẫu gửi thông điệp bí mật cho dữ liệu lệnh. Req 5.49 (Kiểm tra chiều dài dữ liệu lệnh cho UPDATE RECORD): Nếu một tr ong các điều sau là đúng: • L được mã hóa một byte và New Lc không bằng 8+L; • hoặc L được m ã hóa hai byte và New Lc không bằng 9+L; thì thẻ: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình xử lý lệnh UPDATE RECORD, phải hồi đáp với một SW1 SW2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6700' (chiều dài sai); Req 5.50 (Kiểm tra th ẻ tag MAC cho UPDATE RECORD): Nếu một tr ong các điều sau là đúng: • L được m ã hóa một byte và giá trị của byte (L + 3) của Dữ liệu Liên quan Bản ghi có gi á trị khác '8E' (thẻ tag MAC); • hoặc L được mã hóa hai byte và giá trị của byte (L + 4) c ủ a Dữ liệu Liên quan B ả n ghi có giá trị khác '8E' (th ẻ tag MAC); thì thẻ: • phải thiết lập bit ‘tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải ch ấ m dứt quy trình xử lý lệnh UPDATE RECORD, phải hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6987' (các đối tượng d ữ liệu gửi thông điệp b í mật đang chờ đợi bị mất); Req 5.51 (Ki ể m tra chiều dài MAC cho UPDATE RECORD): Nếu một trong các điều sau là đúng: • L được mã hóa một byte và giá trị của byte (L + 4) của Dữ liệu Liên quan B ả n ghi có giá trị khác '04' (chiều dài MAC); • hoặc L được mã hóa hai byte và giá trị của byte (L + 5) của Dữ liệu Liên quan Bản ghi có giá trị khác '04' (chiều dài MAC); th ì thẻ: • ph ả i thiết lập bit 'Tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy trình x ử lý lệnh UPDATE RECORD, ph ả i hồi đáp với một SW1 SW2 để ch ỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6988' (các đối tượng dữ liệu g ử i th ô ng điệp bí mật không chính xác); nếu không, ứng dụng phải tiếp tục quy trình x ử lý có xác minh mã MAC. Khi thẻ được phát hành, một vùng bộ nhớ được cấp cho từng bản ghi. Chiều dài vùng này cho b ả n ghi biểu diễn kích cỡ cho phép một b ả n ghi và phải lớn hơn h oặc bằng kích cỡ cần thiết để cá thể hóa bản ghi. Chiều dài vùng c ấ p cho một b ả n ghi có thể khác nhau giữa các bản ghi. Chiều dài vùng cấp cho từng bản ghi l à một thuộc tính bản ghi không bị ch ỉ nh sửa b ở i lệnh UPDATE RECORD. Bộ nhớ c ấ p phát cho một bản ghi còn thừa có thể lưu một giá trị mới sử dụng lệnh UPDATE RECORD. Phương thức đ ể cấp phát chiều dài cho bản ghi nằm ngoài phạm vi c ủ a bộ tiêu chu ẩ n này và không nằm trong việc triển khai. Nếu chiều dài của giá trị mới cho bản ghi nhỏ han hoặc bằng chiều dài vùng cấp cho bản ghi, UPDATE RECORD thay thế bản ghi hiện thời với giá trị bản ghi mới, ch ỉ nếu kích c ỡ thực c ủ a các bản ghi khác nhau. Cập nhật từng phần bản ghi không được hỗ trợ. Chiều dài của dữ liệu bản ghi được cập nhật với chiều dài c ủ a dữ liệu mới, nhưng chiều dài vùng cấp của bản ghi không thay đổi. Giá trị bản ghi mới được trả về trong hồi đáp cho lệnh READ RECORD. Các bản ghi trong tệp tin có SFI trong d ả i 1 đến 10 phải theo bản mẫu '70'. Hệ quả của việc này, giá trị bản ghi mới phải theo bản mẫu '70'. Tuy nhiên, ứng dụng không biên dịch giá trị này. Điều này là ph ả i c ủ a bên phát hành để ch ỉ nh sửa định dạng giá trị bản ghi mới khi sinh ra dữ liệu cho lệnh tập lệnh bên phát hành. Lệnh UPDATE RECORD không yêu cầu các byte điền đầy trong dữ liệu lệnh. Đối với các b ả n ghi có chứa các Mục nhập Lựa chọn Bản ghi; b ở i vì lệnh UPDATE RECORD có chiều dài cho dữ liệu lệnh bổ sung cho chiều dài Mục nhập lựa chọn bản ghi có trong bản ghi, bên phát hành được phép thêm các byte điền đầy vào cuối Mục nhập Lựa chọn B ả n ghi trong một bản ghi. Đ ể đảm bảo rằng Mục nhập Lựa chọn B ả n ghi c ó thể được xử lý chính xác b ở i ứng dụng, nếu các byte điền đầy được thêm vào, chúng phải được thêm vào phần cuối Mục nhập Lựa chọn Bản ghi. CHÚ TH Í CH: EMV sử d ụng giá tr ị '00' cho các byte điền đầy. Req 5.52 (Không yêu cầu byte điền đầy trong UPDATE RECORD đến Mục nhập Lựa chọn Hồ sơ): Lệnh UPDATE RECORD phải chấp nhận các bản ghi Mục nhập Lựa chọn Hồ sơ không có các byte điền đầy. Lệnh UPDATE RECORD đến một Mục nhập Lựa chọn Hồ sơ được phép chứa chuỗi các byte điền đầy với giá trị '00'. Req 5.53 (Dữ liệu cập nhật quá dài đối với bản ghi): Nếu chiều dài dữ liệu cập nhật cho bản ghi lớn hơn chiều dài vùng cấp cho bản ghi, thì ứng dụng phải chấm dứt quy trình xử lý lệnh UPDATE RECORD, phải hồi đáp với một SW1 SW2 chỉ ra một lỗi, và phải hồi đáp với SW1 SW2 = '6700' (chiều dài sai); Ứ ng dụng xác minh mã MAC. Req 5.54 (Xác minh MAC cho UPDATE RECORD): Nếu việc xác minh m ã MAC không thành công, thì ứng dụng: • phải thiết lập bit 'tập lệnh bị lỗi' trong PTH thành giá trị 1b; • phải chấm dứt quy tr ình x ử lý lệnh UPDATE RECORD, phải hồi đáp với một SW1 S W 2 để chỉ ra một lỗi và phải hồi đáp với SW1 SW2 = '6982' (trạng thái an ninh không phù hợp); nếu việc xác minh mã MAC thành công, thì ứng dụng phải: • được mở khóa; • thiết lập b it 'ứng dụng bị khóa' trong PTH thành giá trị 0 b; • tăng thêm một cho bộ Đếm Lệnh Tập lệnh bên Phát hành; • hồi đáp với SW1 SW2 = '9000'; 5.9.3 Luồng UPDATE RECORD Hình 8 minh họa luồng lệnh UPDATE RECORD. Hình 8 - Luồng UPDATE RECORD Hình 8 - Luồng UPDATE RECORD (tiếp theo) Hình 8 - Luồng UPDATE RECORD (tiếp theo) Hình 8 - Luồng UPDATE RECORD (kết thúc) THƯ MỤC TÀI LIỆU THAM KHẢO [1] TCVN 11198-2, Th ẻ mạch tích hợp EMV cho Hệ thống thanh toán - Đặc tả ứng dụng thanh toán chung - Phần 2: Giới thiệu về quy trình xử lý; [2] TCVN 11198-4, Thẻ mạch tích hợp EMV cho Hệ thống thanh toán - Đặc tả ứng dụng thanh toán chung - Phần 4: Phân tích hành động th ẻ ; [3 ] TCVN 11198-6, Th ẻ mạch tích hợp EMV cho Hệ thống thanh toán - Đặc t ả ứng dụng thanh toán chung - Phần 6: Quản lý khóa và an ninh; [4] TCVN 11198-7, Thẻ mạch tích hợp EMV cho Hệ thống thanh toán - Đặc tả ứng dụng thanh toán chung - Phần 7: Mô tả về chức năng; [5] TCVN 11198-8, Thẻ mạch tích hợp EMV cho Hệ thống thanh toán - Đặc t ả ứng dụng thanh toán chung - Phần 8: Thư mục phần tử dữ liệu; [6] EMV Book 2, EMV Integrated Circuit Card Speci f ications for Payment Systems, version 4.1, Book 2, Security and Key Management, May 2004 (EMV Quyển 2); [7] EMV Book 3, EMV Integrated Circuit Card Speci f ications for Payment Systems, version 4.1, Book 3, Application Speci fi cation, May 2004. (EMV Quyển 3); [8] EMV Book 4, EMV Integrated Circuit Card Speci f ications for Payment Systems, version 4.1, Book 4, Cardholder, Attendant, and Acquirer Inter f ace Requirements, May 2004. ( EMV Quyển 4). MỤC LỤC Lời nói đầu 1 Phạm vi áp d ụng 2 Tài liệu viện dẫn 3 Thuật ngữ và định nghĩa 4 Thuật ngữ viết tắt, ký hiệu, quy ước và bi ể u tượng 5 Quy trình xử lý lệnh tập lệnh bên phát hành 5.1 Mục đích 5.2 Tr ì nh tự thực hiện 5.2.1 Quy trình x ử lý có liên quan trước đ ó 5.2.2 Quy trình xử lý c ó liên quan tiếp theo 5.3 D ữ liệu thẻ 5.4 Dữ liệu Thiết bị đầu cuối 5.4.1 Dữ liệu Hồi đáp Chuẩn chi 5.5 T ổ ng quan 5.5.1 Thông điệp Hồi đáp Chuẩn chi 5.5.2 Quy tr ì nh xử lý Tập lệnh bên phát hành đến th ẻ 5.5.3 Gửi thông điệp bí mật thẻ 5.5.3.1 Xác thực thông điệp (MAC) 5.5 3.2 Tính bí mật dữ liệu 5.5.4 Chỉ báo kết quả 5.5.5 Các lệnh tập lệnh được hỗ trợ 5.6 Lệnh APPLICATION UNBLOCK 5.6.1 Mã hóa Lệnh APPLICATION UNBLOCK 5.6.1.1 Xác minh định dạng lệnh APPLICATION UNBLOCK 5.6.2 Quy trình xử lý Lệnh APPLICATION UNBLOCK 5.6.3 Luồng APPLICATION UNBLOCK 5.7 Lệnh PIN CHANGE/UNBLOCK 5.7.1 M ã hóa Lệnh PIN CHANGE/UNBLOCK 5.7.1.1 Xác minh định dạng lệnh PIN CHANGE/UNBLOCK 5.7.2 Quy trình x ử lý Lệnh PIN CHANGE/UNBLOCK 5.7.2.1 M ở khóa mã PIN 5.7.2.2 Thay đổi mã PIN 5.7.3 Luồng PIN CHANGE/UNBLOCK 5.8 Lệnh PUT DATA 5.8.1 Mã hóa Lệnh PUT DATA 5.8.1.1 Xác minh Định dạng Lệnh PUT DATA 5.8.2 Quy trình xử lý PUT DATA 5.8.3 Luồng PUT DATA 5.9 Lệnh UPDATE RECORD 5.9.1 Mã hóa lệnh UPDATE RECORD 5.9.1.1 Xác minh Định dạng Lệnh UPDATE RECORD 5.9.2 Quy trình xử lý UPDATE RECORD 5.9.3 Luồng UPDATE RECORD Thư mục tài liệu tham khảo