CHỨNG CHỈ KHÓA CÔNG KHAI CỦA THẺ EMV

Một phần của tài liệu Một số giải pháp hạn chế rủi ro trong thanh toán thẻ (Trang 64)

3.2.1 Tạo lập chứng chỉ khóa công khai của thẻ EMV

Chứng chỉ khóa công khai của thẻ EMV được đưa ra cùng với sơ đồ chữ ký số (khôi phục lại được gói tin) dựa trên thuật toán RSA.

3.2.1.1 Các trường dữ liệu trong chứng chỉ

M = MR || M’ là dữ liệu khóa công khai của thực thể được ký bởi người cấp chứng chỉ. Độ dài của dữ liệu là L, và byte độ dài khóa công khai của người cung cấp chứng chỉ là N. Thực thể có thể là NHPH (nếu như người cung cấp chứng chỉ là CA) hoặc thực thể có thể là thẻ hoặc mã hóa PIN của thẻ (nếu người cung cấp chứng chỉ là NHPH).

Sau đó MR của gói tin M có khả năng khôi phục lại từ chứng chỉ khóa công khai của thực thể bao gồm N -22 byte, chứa những trường dữ liệu sau:

Trường 1 – Định dạng của chứng chỉ (1 byte):

Trường này phân biệt vài định dạng chứng chỉ có khả năng tương ứng với chứng chỉ khóa công khai của NHPH (02h), hoặc chứng chỉ khóa công khai mã hóa PIN của thẻ EMV/thẻ EMV (04h).

Trường 2 – Định dang của thực thể:

Trường này xác định thực thể sở hữu chứng chỉ khóa công khai. Định dạng của nó phụ thuộc vào thực thể yêu cầu chứng chỉ:

- Số định danh của NHPH – IIN (4 byte): Số này là 3-8 số bên trái của số

thẻ, trong trường hợp NHPH là thực thể có yêu cầu một chứng chỉ được CA ký;

- PAN của ứng dụng (8 byte): Được bổ sung bên phải với số hexa F tận biên của 8 byte, trường hợp thẻ EMV là thực thể yêu cầu chứng chỉ được ký bởi NHPH.

Trường 3 – Ngày hiệu lực của chứng chỉ (2 byte):

Trường 4 Số serial của chứng chỉ (3 byte):

Trường dữ liệu này được biểu diễn ở dạng nhị phân, xác định một số duy nhất được kết hợp với chứng chỉ. Số này được chỉ định bởi CA trong trường hợp chứng chỉ khóa công khai của NHPH, hoặc được do NHPH chỉ định trong trường hợp chứng chỉ khóa công khai mã hóa PIN của thẻ/thẻ.

Trường 5 – Bộ chỉ thị thuật toán băm (1 byte):

Xác định thuật toán băm được sử dụng để đưa ra mã hàm băm H. Giá trị của chỉ dẫn thuật toán băm được đặt là 01h.

Trường 6 Bộ chỉ thị thuật toán khóa công khai của thực thể (1 byte):

Cho biết loại thuật toán khóa công khai được sử dụng một thực thể cùng với khóa công khai được chứa trong chứng chỉ. Bộ chỉ thỉ đặt này được đặt là 01h, chỉ thị thuật toán RSA.

Trường 7 Độ dài khóa công khai của thực thể (1 byte):

Cho biết độ dài byte khóa công khai của thực thể hiện tại được chứng thực. Độ dài này được ký hiệu là: NI, NIC, NPE, phụ thuộc vào việc thực thể là NHPH hay thẻ EMV hay mã hóa PIN của thẻ EMV.

Trường 8 – Độ dài mũ khóa công khai của thực thể (1 byte):

Cho biết độ dài byte mũ khóa công khai của thực thể hiện tại được chứng thực. Độ dài này cũng có thể là 1 hoặc 3, phụ thuộc mũ là 3 hay 216

Trường 9 - Khóa công khai của thực thể:

Trường có độ dài thay đổi phụ thuộc vào loại thực thể:

- Khi thực thể là NHPH, độ dài của trường này là NCA – 36. Nếu NI ≤ NCA

– 36, thì trường này bao gồm toàn bộ tham số khóa công khai của NHPH, được bổ sung vào bên phải NCA – 36 – NI byte có giá trị BBh. Nếu NI > NCA – 36, thì trường này bao gồm NCA – 36 tất cả những byte quan trọng nhất của tham số khóa công khai của NHPH.

- Khi thực thể là thẻ, độ dài của trường này là NI – 42. Nếu NIC ≤ NI – 42, thì trường này bao gồm toàn bộ tham số khóa công khai của thẻ, được bổ sung vào bên phải NI – 42 – NIC byte có giá trị BBh. Nếu NIC > NI – 42, thì trường này gồm NI – 42 byte quan trọng nhất của tham số khóa công khai của thẻ.

- Khi thực thể là mã hóa PIN của thẻ, độ dài trường này là NI – 42. Nếu

NPE ≤ NI – 42, trường này bao gồm toàn bộ tham số khóa công khai mã hóa PIN của thẻ, được bổ sung bên phải NI – 42 – NPE byte có giá trị BBh. Nếu NPE > NI -

42, thì trường này bao gồm NPE – 42 byte quan trọng nhất của tham số khóa công khai mã hóa PIN của thẻ EMV.

Phần M’ của gói tin M phải được truyền riêng cho việc kiểm tra chứng chỉ có độ dài thay đổi, chứa những trường dữ liệu sau:

Trường 10 – Phần còn lại khóa công khai của thực thể:

Đây là trường có độ dài thay đổi tùy thuộc vào loại thực thể như sau:

- Khi thực thể là NHPH, độ dài cũng có thể là 0 hoặc NI – NCA + 36. Trường này chỉ xuất hiện khi NI > NCA – 36, và bao gồm NI – NCA + 36 byte quan trọng ít nhất của tham số khóa công khai của NHPH.

- Khi thực thể là thẻ EMV (để ký), độ dài cũng có thể là 0 hoặc NIC – NI+ 42. Trường này chỉ xuất hiện khi NIC > NI – 42, và bao gồm NIC – NI + 42 byte quan trọng ít nhất của tham số khóa công khai của thẻ EMV.

Trường 11 – Mũ khóa công khai của thực thể:

Đây là một trường độ dài 1 hoặc 3 byte, phục thuộc vào giá trị là 3 hoặc 216

+ 1.

Trường 12 – Dữ liệu tĩnh được xác thực:

Đây là một trường có độ dài thay đổi, và chỉ xuất hiện trong dữ liệu khóa công khai của thẻ EMV được ký bởi NHPH.

3.2.1.2 Tạo lập chứng chỉ khóa công khai

Để tạo chứng chỉ khóa công khai của NHPH, CA áp dụng thuật toán được tạo chữ ký, trên dữ liệu khóa công khai của NHPH với những tham số của RSA như sau: nS = nCA, dS = dCA.

- Chứng chỉ khóa công khai của NHPH có độ dài là NCA được tạo mỗi lần NHPH chấp nhận ứng dụng ghi nợ/tín dụng EMV được giám sát bởi một CA. Rồi sau đó, chứng chỉ này được tạo lại mỗi lần khóa công khai của CA thay đổi.

- Chứng chỉ khóa công khai của NHPH được nạp khi ghi thẻ và được NHPH quản lý, chứng chỉ này hỗ trợ xác thực dữ liệu ngoại tuyến và kiểm tra PIN đã mã hóa là do thẻ thực hiện.

Để thu được chứng chỉ khóa công khai của thẻ EMV có độ dài NI NHPH áp dụng thuật toán tạo chữ ký số, trên dữ liệu khóa công khai của thẻ EMV với những tham số RSA sau: nS = nIdS = dI. NHPH tạo chứng chỉ khóa công khai của thẻ EMV cho mỗi thẻ có hỗ trợ DDA ngoại tuyến. Chứng chỉ này được nạp vào thẻ khi ghi thẻ.

Để thu được chứng chỉ khóa công khai mã hóa PIN của thẻ EMV có độ dài NI, NHPH áp dụng thuật toán tạo chữ ký số trên dữ liệu khóa công khai mã hóa PIN của thẻ. NHPH sử dụng những tham số của RSA như sau: nS = nIdS

= dI. NHPH tạo chứng chỉ khóa công khai mã hóa PIN của thẻ EMV cho mỗi thẻ có hỗ trợ kiểm tra PIN đã mã hóa. Chứng chỉ này được nạp vào trong quá trình ghi thẻ.

3.2.2 Kiểm tra chứng chỉ của thẻ EMV

3.2.2.1 Kiểm tra chứng chỉ khóa công khai của NHPH

Các bước dưới đây mô tả thủ tục kiểm tra chứng chỉ khóa công khai của NHPH. Người kiểm tra chứng chỉ là một thiết bị đọc tại điểm chấp nhận dịch vụ, và chứng chỉ cùng với một vài dữ liệu khác cần thiết cho việc kiểm tra chứng chỉ nhận được từ thẻ EMV.

Bước 1:

Kiểm tra độ dài đối tượng dữ liệu chứng chỉ khóa công khai của NHPH (nhãn 90) là NCA.

Bước 2:

Áp dụng thuật toán kiểm tra/thuật toán khôi phục lại chữ ký, S là trường giá trị của chứng chỉ khóa công khai của NHPH, nS = nCA, eS = eCA. Độ dài N của modun là NCA.

Bước 3:

Dữ liệu được khôi phục lại X được phân thành X = B||MR||H||E. Việc xử lý sau được thực hiện trên các 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ư NCA – 22 byte tiếp theo sau B. Phân tích MR theo chín trường được xác định bên trên.

4) Kiểm tra định dạng của chứng chỉ đọc được trong trường 1 của MR có phải là 02h không.

5) Tạo gói tin M’ như ràng buộc từ trái qua phải của trường giá trị của phần còn lại của khóa công khai của NHPH (nhãn 92), nếu đối tượng dữ liệu này được biểu diễn trong thẻ, và hàm mũ khóa công khai của NHPH.

6) Tạo gói tin M (biểu diễn dữ liệu khóa công khai của NHPH) ràng buộc

9) Kiểm tra xem h có bằng kết quả băm H, biểu diễn 20 byte cuối cùng trong X trước E.

Nếu bất cứ kiểm tra nào bên trên mà lỗi, thì việc kiểm tra chứng chỉ khóa công khai của NHPH bị lỗi.

Bước 4:

Kiểm tra sự đồng nhất của các trường trong phần đã khôi phục MR của dữ liệu khóa công khai của NHPH.

1) Kiểm tra IIN đọc được từ 4 byte của trường 2, sau khi bóc tách số hexa F, tương ứng với 3 đến 8 byte bên trái của số thẻ mà thiết bị đọc thu được.

2) Kiểm tra xem chứng chỉ có hết hạn không. Kiểm tra ngày hiện tại có nhỏ hơn hoặc bằng ngày cuối cùng của tháng MM đã xác định trong trường 3.

3) Nếu thiết bị đọc quản lý một danh sách thu hồi chứng chỉ khóa công khai của NHPH được kết hợp với một CA, kiểm tra xem số serial của chứng chỉ đọc được từ trường 4 có nằm trong danh sách thu hồi không. Nếu chứng chỉ ở trong danh sách thu hồi, thì thiết lập bit 5, ―Thẻ xuất hiện trên file ngoại lệ của thiết bị đọc‖ cho byte 1 của thanh ghi TVR.

4) Kiểm tra xem thuật toán khóa công khai được xác định trong chỉ dẫn thuật toán khóa công khai của NHPH đọc được từ field 6 có nằm trong những thuật toán mà thiết bị đọc biết hay không. Chú ý rằng tại thời điểm này chỉ dẫn này có giá trị 01h tương ứng với thuật toán RSA.

Nếu như bất cữ những kiểm tra nào bên trên bị lỗi, thì việc kiểm tra chứng chỉ khóa công khai của NHPH cũng bị lỗi.

Bước 5:

Nếu tất cả kiểm tra trên là hợp lệ, thì thiết bị đọc chấp nhận việc xác thực khóa công khai của NHPH. Khóa này bao gồm modun khóa công khai của NHPH nI và khóa công khai của NHPH eI (nhãn 9F32).

Độ dài khóa công khai của NHPH NI đọc được từ trường 7 của MR cho biết độ dài thực tế của nI.

- Nếu NCA – 36 – NI > 0, thì xóa NCA – 36 – NI byte bổ sung BBh từ cạnh cực trái của trường 9 của MR. Chuỗi byte thu được biểu diễn nI.

- Nếu NI > NCA – 36, ràng buộc từ trái sang phải trường 9 của MR và trường giá trị của phần còn lại khóa công khai của NHPH (nhãn 92). Chuỗi byte thu được biểu diễn nI.

3.2.2.2 Kiểm tra chứng chỉ khóa công khai của thẻ

Các bước sau mô tả thủ tục kiểm tra chứng chỉ khóa công khai của thẻ EMV. Người kiểm tra chứng chỉ là một thiết bị đọc tại điểm chấp nhận dịch vụ, và chứng chỉ cùng với một vài dữ liệu cần thiết khác cho việc kiểm tra chứng chỉ nhận được từ thẻ EMV.

Bước 1:

Kiểm tra xem độ dài đối tượng dữ liệu chứng chỉ khóa công khai của thẻ EMV (nhãn 90) có phải là NI không.

Bước 2:

Áp dụng thuật toán kiểm tra/khôi phục chữ ký, với S là trường giá trị của chứng chỉ khóa công khai của thẻ, nS = nI, eS = eI. Độ dài N của modun là NI.

Xử lý sau được thực hiện trên những trường đó:

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 hay không.

3) Đánh giá MR như NI – 22 byte tiếp theo sau B. Phân MR theo chín trường đã chỉ ra bên trên.

4) Kiểm tra xem định dạng chứng chỉ đọc được trong trường 1 của MR có phải là 04h hay không.

5) Tạo gói tin M’ như việc ràng buộc từ trái qua phải trường giá trị của phần còn lại khóa công khai của thẻ EMV, nếu đối tượng dữ liệu này có trong thẻ, mũ khóa công khai của thẻ EMV, và dữ liệu tĩnh được xác thực chuỗi byte.

6) Tạo gói tin M, thể hiện dữ liệu khóa công khai của thẻ EMV, ràng buộc liên kết kết từ trái qua phải phần đã khôi phục lại MR và phần đã tính M’.

7) Đọc chỉ dẫn thuật toán băm từ trường 5 của MR. Chú ý rằng hiện tại giá trị này là 01h, tương ứng với thuật toán SHA-1.

8) Sử dụng thuật toán băm đã chỉ dẫn để tính mã băm h của M.

9) Kiểm tra xem h có bằng kết quả băm H không, nó biểu diễn 20 byte cuối cùng trong X trước E.

Nếu bất cứ kiểm tra nào bên trên bị lỗi, thì việc kiểm tra của chứng chí khóa công khai của ICC bị lỗi.

Bước 3:

Kiểm tra tính thống nhất của một số trường trong phần đãkhôi phục lại MR

của dữ liệu khóa công khai thuộc NHPH.

1) Kiểm tra xem số PAN khôi phục lại được từ trường 2 của MR có tương đương với số PAN của thẻ mà thiết bị đọc bắt được.

2) Kiểm tra xem chứng chỉ đã hết hạn chưa. Từ đây, kiểm tra xem ngày hiện tại có nhỏ hơn hoặc bằng ngày cuối cùng của tháng được chỉ ra trong trường 3,.

3) Kiểm tra thuật toán khóa công đã xác định trong chỉ thị thuật toán khóa công khai của NHPH đọc được từ trường 6 có nằm trong những thuật toán mà termin biết hay không.

Nếu bất cứ kiểm tra nào bên trên bị lỗi thì việc kiểm tra chứng chỉ khóa công khai của thẻ EMV bị lỗi.

Bước 4:

Nếu tất cả kiểm tra là hợp lệ, thì thiết bị đọc chấp nhận sự xác thực khóa công khai của thẻ EMV. Bao gồm modun khóa công khai của thẻ EMV nIC, và mũ khóa công khai của thẻ (nhãn 9F47) eIC.

Độ dài khóa công khai của thẻ EMV NIC đọc được từ trường 7 của MR cho biết độ dài thực sự của nIC.

- Nếu NI – 42 – NIC > 0 thì bỏ NI – 42 – NIC byte bổ sung BBh từ cạnh cực trái của trường 9 của MR. Chuỗi byte mà thu được biễu diễn nIC.

- Nếu NIC > NI – 42, thì sự ràng buộc từ trái qua phải trường 9 của MR và trường giá trị của phần còn lại khóa công khai của ICC (nhãn 9F48). Chuỗi byte thu được biễu diễn nIC.

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

Một phần của tài liệu Một số giải pháp hạn chế rủi ro trong thanh toán thẻ (Trang 64)