2.3.1 Giới thiệu thẻ EMV
EMV là sản phẩm chung do ba tổ chức thẻ quốc tế Europay, Mastercard,
Visa cùng phát triển vào giữa thập niên 1990, có tính năng mở để đảm bảo khả năng vận hành liên thông giữa những thẻ chip và máy đọc để thanh toán thẻ. Chương trình EMV (thẻ chip EMV, máy chấp nhận thẻ EMV, các phần mềm, chương trình quản lý...) có thể coi là ứng dụng nhiều tiện ích và độ bảo mật cao nhất trên thị trường hiện nay. Chuẩn EMV chủ yếu được áp dụng đối với các loại thẻ được phát hành bởi các tổ chức thẻ quốc tế như Visa, Master, Amex....
Để chấp nhận các giao dịch thẻ EMV, các thiết bị đọc phải được chứng nhận chuẩn EMV cấp độ 1 và 2 (level 1, level 2).
- Level 1 liên quan chủ yếu đến phần cứng của thiết bị đọc, xác minh việc tiếp xúc với thẻ và kiểm tra độ chính xác tương tác giữa máy đọc thẻ và thẻ.
- Level 2 liên quan chủ yếu đến phần mềm của thiết bị đọc và đảm bảo sự tương thích với các đặc tả kỹ thuật EMV cho luồng giao dịch và dữ liệu tương tác giữa phần thẻ và thiết bị đọc.
2.3.2 Thành phần dữ liệu của thẻ EMV
2.3.2.1 Hệ thống file thẻ và file liên quan trong thẻ EMV
Thẻ thông minh lưu trữ thông tin bằng các file dữ liệu. Các file dữ liệu này được tổ chức dưới dạng cây phân cấp theo chuẩn ISO7816-4. Người ta chia ra làm ba loại: thư mục gốc (master file-MF), thư mục chuyên dụng (dedicated file-DF), file cơ bản (elementary file-EF). Các file này dùng để quản trị hoặc cho ứng dụng.
Dữ liệu được lưu trong các file được quản lý bởi hệ điều hành. Các file gồm có tiêu đề (header), được quản lý bởi thẻ thông minh và phần tùy chọn là chi tiết. Header chứa các thông tin liên quan đến cấu trúc và thuộc tính của file, còn phần chi tiết chứa dữ liệu của file.
a. File thư mục và file chuyên dụng
MF là cao nhất trong cây phân cấp, nó là gốc của cây. DF là bắt buộc trong tổ chức file. Trong hình 3.3 MF chứa một lá, file cơ bản EF1, và hai nhánh, file chuyên dụng DF1 và DF2. Dữ liệu được sử dụng cho tất cả những ứng dụng trong thẻ (ví dụ như thông tin quản lý và bảo mật chung như số serial của ICC, khóa truy nhập, số PIN của thẻ, cũng như các dữ liệu liên quan quản lý vòng đời của thẻ) được lưu trữ trong file cơ bản ở mức MF. Thông tin này có thể được sử dụng cho hệ điều hành tạo DF khác tại mức MF.
File chuyên dụng DF1 chứa bốn mức. Ba cây đầu tiên của chúng là (EF11, EF12, và EF13) EF hoạt động, trong khi EF14 là EF trong. File chuyên dụng DF2 chứa chỉ hai lá làm việc với file cơ bản EF21 và EF22. Mỗi một file chuyên dụng chứa thêm những cây chuyên dụng phân cấp thấp hơn. Trong hình 3.3, DF2 chứa những file con DF21.
Một file chuyên dụng có thể được xem như là một vật chứa dữ liệu thuộc về một ứng dụng thẻ. Nhiều thành phần dữ liệu của ứng dụng thẻ mà có liên quan được lưu trong cùng một file cơ bản. Thông tin kiểm soát ứng dụng và dữ liệu tài chính của chủ thẻ được lưu trong những file cơ bản được hoàn thiện trong cùng DF. Mỗi một DF có thể chứa khóa mã hóa cho việc thực hiện nhiều dịch vụ bảo mật, và mỗi DF có thể có một số PIN ứng dụng, số PIN này có thể sử dụng để cải tiến cơ chế truy cập của một thẻ nhiều ứng dụng.
Mối quan hệ của một DF trong hệ thống file của thẻ để tương thích tới khả năng của sự lựa chọn một ứng dụng thẻ từ khía cạnh của thiết bị đọc, có thể được thực hiện bằng hai cách riêng biệt sau:
1) Sự liên quan với một đinh danh file cố định (FID), bao gồm 2 byte (4 số thập phân hexa).
Ví dụ, MF luôn có FID bằng 3F00, trong khi DF1 có FID bằng 7F01 và DF2 có FID bằng 7F02...Để có thể lựa chọn ứng dụng thẻ với số của FID, chương trình của thiết bị đọc cần phải biết trước cấu trúc file trong thẻ. Ví dụ để lựa chọn DF21 bắt đầu từ mức MF như thư mục hiện tại, thiết bị đọc phải lựa chọn DF2 đầu tiên với số FID, và chỉ sau khi lựa chọn này thành công thì mới lựa chọn DF21 với số FID phù hợp.
2) Sự liên quan với một định danh ứng dụng (AID), chứa lên đến 16 byte. Mã hóa của AID chi tiết trong ISO/IEC 7816-5.
AID có thể bao gồm định danh của nhà cung cấp ứng dụng đã đăng ký (RID), tùy chọn này có quan hệ ràng buộc với việc mở rộng định danh ứng dụng của nhà sản xuất (PIX), hoặc định danh ứng dụng sở hữu. Sự liên quan của những ứng dụng thẻ với định danh nhà cung cấp ứng dụng đã đăng ký tạo thuận lợi cho thiết bị đọc không phải biết trước FID của DF được lưu trong ứng dụng hoặc vị trí của file hệ thống thẻ. Hơn nữa khi RID là độc nhất trên thế giới, nhiều chương trình có thể được lưu trữ trong thẻ không nảy sinh những xung đột.
b. File cơ bản EF
Các thành phần dữ liệu của ứng dụng trong thẻ được mã hóa trong những file cơ bản. Những file cơ bản của ứng dụng thẻ có thể lại được chia thành EF hoạt động và EF bên trong:
- Một EF đang hoạt động lưu trữ các dữ liệu mà dụng thẻ không thể hiện ra, nhưng được sử dụng bởi ứng dụng riêng của thiết bị đọc trong khi thực hiện của một giao thức với thẻ.
- Một EF bên trong lưu trữ dữ liệu do ứng dụng thẻ quản lý nhằm mục đích quản lý và kiểm soát. Tham số mã hóa được sử dụng cho dịch vụ bảo mật mà thẻ cung cấp như số PIN của chủ thẻ hoặc mã xác thực chủ thẻ được lưu bên trong EF.
Hai kỹ thuật sau được sử dụng cho file cơ bản là:
1) Sự liên hệ với một FID, bao gồm 2 byte (4 số hexa)
Sự liên hệ với cùng một số FID đã được mô tả trong DF cũng có thể được sử dụng cho EF. Sự bất lợi của phương thức liên hệ này là trước khi lệnh file quản lý có thể được áp dụng trên một EF, thiết bị đọc cần phải lựa chọn dứt khoát EF này bên trong DF sao cho phù hợp tới ứng dụng của thẻ. Các ví dụ về hoạt động của file quản lý đọc một số byte từ EF trong suốt hoặc ghi một bản ghi trong một EF tuyến tính cố định. Điều bất lợi nữa là thiết bị đọc cần phải biết trước FID của tất cả file cơ bản bên trong DF của ứng dụng thẻ. Tuy vậy phương thức liên hệ nàu cũng thuận lợi ở việc sự lựa chọn DF hoặc EF trong thẻ được thực hiện một cách đồng bộ sẽ làm đơn giản hóa quá trình thực hiện của thẻ. Phương thức liên hệ của EF là phù hợp cho các ứng dụng thẻ độc quyền được thiết kế khép kín.
2) Sự liên hệ với file định danh ngắn (SFI), File bao gồm một số nằm trong khoảng 1 đến 30 mà có thể mã hóa trên 5 bít.
Phương thức liên hệ này có điểm mạnh đó là SFI có thể sử dụng như một file điều khiển, file này có thể được đưa ra giống như một tham số đầu vào đối với một lệnh quản lý file. Điều này có nghĩa là không cần thiết thực hiện sự lựa chọn rõ ràng một EF bên trong DF trước khi gọi lệnh đọc/ghi từ/đến một EF. Hơn nữa, SFI của tất cả EF hoạt động trong ứng dụng của thẻ DF có thể dễ dàng liệt kê trong một loại bảng nội dung DF. Điều này giúp thiết bị đọc tự học (tự cập nhập) những file EF hoạt động sẵn có công khai đang tồn tại trong một DF. Bởi vậy, phương thức liên hệ này của EF được sử dụng trong những ứng dụng thẻ trao đổi thiết kế mở.
Cấu trúc của một EF phụ thuộc vào mục đích sử dụng của nó. Như đã giải thích trong ISO/IEC 7816-4 một file có thể được phân biệt giữa bốn loại cấu trúc EF cơ bản. File trong suốt bao gồm một chuỗi các byte liên tiếp. File cố định tuyến tính bao gồm một số bản ghi có cùng một độ dài. Một file biến đổi tuyến tính bao gồm một số bản ghi có độ dài thay đổi. Những file tuần hoàn bao gồm những bản ghi có độ dài cố định được tổ chức trong một cấu trúc vòng. Sau khi tất cả các bản ghi được ghi, thành phần cũ nhất trong file sẽ bị ghi đè bởi thành phần hiện tại để lưu trữ. Hình 3.4 minh họa bốn loại của cấu trúc file.
Header của mỗi EF lưu trữ thông tin về loại cấu trúc file EF và kích cỡ của file. Nó cũng lưu trữ hoạt động có thể được thực hiện trên file (đọc, ghi, không có hiệu lực, phục hồi) như điều kiện truy cập của một ứng dụng của thiết bị đọc có thể thực hiện hoạt động đó (số PIN chung của thẻ, số PIN của ứng dụng, xác thực với khóa đối xứng, luôn cho phép truy nhập hay không bao giờ được phép truy nhập).
2.3.2.2 Hệ thống file của thẻ EMV
Hệ thống file được chia thành những file định danh ứng dụng ADF và file định danh thư mục (directory definition files – DDF), cho phép nhiều ứng dụng thẻ cung cấp đồng thời trong thẻ. Một ADF riêng biệt phù hợp cho mỗi ứng dụng thẻ hiện tại trong thẻ. Một ADF có liên quan với một AID. Mỗi ADF bao gồm một hoặc nhiều AEF. Một AEF file biến đổi tuyến tính mang những thông tin công khai của ứng dụng thẻ sẵn có để đối chiếu với ứng dụng của thiết bị đọc. Từ hình vẽ một ADF có thể được xem như một vật mang dữ liệu ứng dụng. Bên trong ADF mỗi AEF có liên quan với SFI, SFI là một số nằm trong khoản từ 1 đến 30. SFI có thể được sử dụng như một người điều khiển của AEF, một thùng chứa ADF được chọn và được biết thiết bị đọc. Người điều khiển này có thể được sử dụng trực tiếp bởi thẻ ra điều khiển thực hiện hoạt động của file.
Một DDF bao gồm một nhóm ADF liên quan. Mỗi DDF trong hệ thống file của thẻ cũng liên quan với một AID.
- Tính chất tự nhiên của những ứng dụng có thể là tiêu chuẩn cho việc nhóm ADF trong một DDF. Ví dụ tất cả ứng dụng thẻ thanh toán trong thẻ EMVTM có thể được tập hợp trong cùng DDF. DDF này được gọi là môi trường hệ thống thanh toán (PSE) và có một AID đặc biệt thể hiện bởi chuỗi 1PAY.SYS.DDF01, chuỗi này là một AID dự trữ.
- ADF cũng có thể được nhóm theo trung tâm điều hành hệ thống thanh toán theo mục đích của chúng. Ví dụ theo Hình 3.11, DDF2 tập hợp tất cả những ứng dụng thẻ thanh toán của một trung tâm điều hành hệ thống thanh toán trong nước.
Một DDF cũng có thể bao gồm những DDF cấp dưới có trật tự. Ví dụ PSE có thể chứa nhiều hơn một DDF được dành cho những ứng dụng thẻ cố định, biểu thị của DDF1 trong Hình 3.11. DDF có thể được xem như là vật chứa của những ứng dụng thẻ.
Tổ chức của file trong thẻ EMV linh hoạt hơn nhiều, như là thiết bị đọc của EMV không bị ép buộc phải biết tổ chức file theo trật tự thực hiện trong hồ sơ giao dịch. Thiết bị đọc chỉ phải nhận biết về AID của vật chứa những ứng dụng DDF trong thẻ và của vật chứa dữ liệu ADF mà không bao gồm một DDF dưới nào. Bởi vậy NHTT phải cài đặt trong thiết bị đọc một danh sách tất cả những ứng dụng có thể chấp nhận (ADF) hoặc tất cả những nhóm ứng dụng có thể chấp nhận (DDF).
- Một lựa chọn của một vật chứa ứng dụng DDF được thực hiện, thiết bị đọc có thể tìm bảng nội dung của DDF. Bản này được tổ chức trong một file thư mục, mang như điểm vào AID của tất cả vật chứa dữ liệu ADF và AID của tất cả vật chứa ứng dụng DDF có cấp độ thấp hơn. Ví dụ: file thư mục ở mức PSE chứa AID của ADF2 và DDF1, và file thư mục tại mức DDF1 chứa AID của ADF3. Bằng việc đọc một file thư mục, thiết bị đọc có khả năng nắm được tổ chức file trong DDF đó.
- Bất cứ khi nào thiết bị đọc nào lựa chọn một vật chứa ADF, nó còn có khả năng đọc những nội dung của bảng khác, nội dung này lần này liệt kê AEF mà đọc được công khai từ một ứng dụng thẻ. Nội dung của bảng liên quan đến một Ranh giới file ứng dụng (AFL).
Chương 3: CHỨNG CHỈ SỬ DỤNG VỚI THẺ EMV
3.1 GIỚI THIỆU CHỨNG CHỈ DÙNG VỚI THẺ EMV 3.1.1 Các loại chứng chỉ dùng với thẻ EMV 3.1.1 Các loại chứng chỉ dùng với thẻ EMV
Có hai loại chứng chỉ sử dụng với thẻ EMV là:
1) Chứng chỉ khóa công khai EMV:
Chứng chỉ này xác nhận khóa công khai của thực thể EMV. Chứng chỉ khóa công khai của EMV gồm khóa công của thực thể.
2) Chứng chỉ xác thực dữ liệu cố định:
Chứng chỉ khóa công khai của NHPH cung cấp, chứng chỉ này xác nhận chìa khóa công khai của NHPH nhờ chìa khóa này mà người ta có thể kiểm tra được thông tin trong thẻ không bị thay đổi kể từ khi được phát hành (khi NHPH đã ký vào dữ liệu của thẻ).
3.1.2 Kỹ thuật ký số và mã hóa dùng với chứng chỉ
1) Kỹ thuật ký số để xác minh chứng chỉ số
Trong thẻ EMV, đơn vị cấp chứng chỉ là tổ chức phát hành chứng chỉ EMV sử dụng sơ đồ chữ ký RSA để ký.
Chọn 2 số nguyên tố lớn p và q sao cho p ≠ q. n = pq. Tính Φ(n) = (p – 1)(q – 1)
Chọn số ngẫu nhiên e sao cho 1 < e < Φ(n).
Tính d sao cho de ≡ 1 (mod Φ(n)).
Tham số khóa công khai trong RSA ở đây là: n – tham số khóa công khai và e – số mũ khóa công khai, khóa công khai này được sử dụng để kiểm tra chứng chỉ. Tham số khóa bí mật d kết hợp với tham số n dùng để tạo chữ ký.
2) Kỹ thuật ký số và mã hóa theo thuật toán RSA
Thực thể yêu cầu chứng chỉ khóa công khai của EMV cũng thực hiện một sơ đồ RSA. Do đó, tham số: khóa công khai n của thực thể và khóa công khai e
của thực thể được đưa để chứng thực. Đối với lý do Bộ chỉ thị thuật toán khóa công khai (là một trường trong chứng chỉ xác định loại thuật toán sử dụng những tham số được chứng thực) được đặt giá trị duy nhất là 01, tương ứng với thuật toán RSA.
Khóa ký bí mật của thực thể được ký hiệu là (ns, ds) có thể được sử dụng để tạo chữ ký số cho gói tin. Những ai có khóa kiểm tra công khai của thực thể tương ứng được ký hiệu là (ns, es) và gói tin được ký có thể kiểm tra sự đúng đắn của chữ ký.
Thực thể có thể sử dụng khóa giải mã bí mật của thực thể (nE, dE) để giải mã phong bì số mà được tính với khóa mã hóa công khai của thực thể tương ứng được ký hiệu là (nE, eE).
3.1.3 Chứng chỉ cho các thực thể liên quan
3.1.3.1 Chứng chỉ khóa công khai cho NHPH
Khi NHPH là thực thể yêu cầu chứng chỉ khóa công khai của thẻ EMV thì cái được chứng thực là khóa công khai của NHPH, khóa này bao gồm khóa công
nI có NI byte độ dài và khóa công khai của NHPH eI. Chứng chỉ tương ứng được xem như Chứng chỉ khóa công khai của NHPH. Giới hạn thực tế của NI là 248 byte, trong khi e cũng có thể là 3 hoặc 216 + 1.
Trong trường hợp nhà cung cấp chứng chỉ là CA, thì CA này thực hiện sơ đồ chữ ký RSA. Sơ đồ này được tham số hóa với khóa công khai của CA nCA có độ dài NI byte, khóa công khai công khai của CA eCA, và khóa bí mật của CA