Tải bản đầy đủ (.doc) (77 trang)

Tìm hiểu và phát hành rộng rãi thẻ thông minh chuẩn EMV

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.46 MB, 77 trang )

i
MỤC LỤC

MỤC LỤC.................................................................................................................. i
DANH MỤC CÁC TỪ VIẾT TẮT.......................................................................... iii
DANH MỤC CÁC HÌNH VẼ....................................................................................v
Chương 1 - TỔNG QUAN VỀ THẺ THÔNG MINH ..............................................1
1.1 KHÁI NIỆM THẺ THÔNG MINH ................................................................... 1
1.2 CÁC LOẠI THẺ CƠ BẢN................................................................................ 1
1.2.1 Thẻ nhớ và thẻ chip..................................................................................... 1
1.2.2 Thẻ tiếp xúc và thẻ không tiếp xúc.............................................................. 3
1.3 PHẦN CỨNG CỦA THẺ THÔNG MINH........................................................ 3
1.3.1 Các điểm tiếp xúc........................................................................................ 4
1.3.2 Bộ xử lý trung tâm trong thẻ thông minh..................................................... 5
1.3.3 Bộ đồng xử lý thẻ trong thông minh............................................................ 5
1.3.4 Hệ thống bộ nhớ của thẻ thông minh........................................................... 5
1.4 TRUYỀN THÔNG VỚI THẺ THÔNG MINH.................................................. 6
1.4.1 Thiết bị chấp nhận thẻ và các ứng dụng máy chủ......................................... 6
1.4.2 Mô hình truyền thông với thẻ thông minh .................................................. 6
1.4.3 Giao thức APDU......................................................................................... 6
1.4.4 Mã hoá bit................................................................................................... 8
1.4.5 Giao thức TPDU ......................................................................................... 9
1.4.6 Thông điệp trả lời để xác lập lại.................................................................10
Chương 2 - HỆ ĐIỀU HÀNH THẺ THÔNG MINH..............................................11
2.1 GIỚI THIỆU HỆ ĐIỀU HÀNH THẺ THÔNG MINH......................................11
2.2 CÁC FILE HỆ THỐNG TRONG THẺ THÔNG MINH...................................13
2.2.1 Thư mục gốc..............................................................................................13
2.2.2 Thư mục chuyên dụng................................................................................13
2.2.3 File cơ bản .................................................................................................14
2.3 TRUY CẬP FILE.............................................................................................16
2.3.1 Định danh file ............................................................................................16


2.3.2 Các phương thức lựa chọn file....................................................................16
2.3.3 Điều kiện truy cập file................................................................................17
2.4 CẤU TRÚC FILE THẺ EMV...........................................................................17
2.4.1 Cấu trúc file thẻ MPCOS-EMV..................................................................17
2.4.2 Cấu trúc file thẻ Global Platform................................................................19
2.5 CÁC CHỨC NĂNG CỦA THẺ EMV..............................................................23
2.6 ĐẶC TẢ ỨNG DỤNG DEBIT VÀ CREDIT ...................................................25
2.6.1 Các file trong trao đổi giao dịch tài chính...................................................25
2.6.2 Lồng giao dịch ...........................................................................................27


ii
2.6.3 Các hàm được sử dụng trong xử lý giao dịch..............................................28
Chương 3 - XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH ...................31
3.1 CÁC THUẬT TOÁN MÃ HOÁ.......................................................................31
3.1.1 Mã hoá khoá đối xứng................................................................................31
3.1.2 Mã hoá khoá công khai ..............................................................................34
3.2 GIAO THỨC XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH............36
3.2.1 Giao thức xác thực với thẻ thông minh.......................................................36
3.2.2 Bảo toàn dữ liệu với thẻ thông minh...........................................................38
3.2.3 Bảo toàn và bảo mật dữ liệu với thẻ thông minh.........................................40
3.2.4 Thiết lập khoá phiên với thẻ thông minh ....................................................41
3.3 QUẢN LÝ KHÓA VÀ CƠ CHẾ BẢO MẬT CỦA THẺ EMV ........................42
3.3.1 Xác thực dữ liệu tĩnh..................................................................................42
3.3.2 Xác thực dữ liệu động ngoại tuyến.............................................................42
3.3.3 Mã hóa số PIN ...........................................................................................43
3.4.4 Thông điệp an toàn.....................................................................................44
3.4.5 Các chính sách và nguyên tắc quản lý chứng chỉ khóa công khai ...............44
Chương 4 - CHƯƠNG TRÌNH GHI/ĐỌC DỮ LIỆU THẺ THÔNG MINH TRÊN
HỆ MÁY CÔNG NGHIỆP VÀ ĐỂ BÀN................................................................46

4.1 GIỚI THIỆU ....................................................................................................46
4.2 QUY TRÌNH LÀM THẺ..................................................................................47
4.3 HỆ THỐNG TỰ ĐỘNG GHI DỮ LIỆU VÀO THẺ THÔNG MINH...............49
4.3.1 Giới thiệu MPR3000..................................................................................49
4.3.2 Các đặc tính ưu việt của MPR3000 ............................................................52
4.2.3 Đặc điểm chương trình ghi dữ liệu vào thẻ thông minh PersoAppMPR3K.53
4.3.3 Giới thiệu máy DC9000 .............................................................................54
4.4 Quy trình chuẩn bị số liệu .............................................................................57
4.4 CHƯƠNG TRÌNH GHI DỮ LIỆU VÀO THẺ THÔNG MINH........................58
4.4.1 Bộ công cụ phát triển SPMWIN.................................................................58
4.4.2 Chức năng PersoAppMPR3K.....................................................................61
4.4.3 Bộ công cụ phát triển SCPM SDK .............................................................62
4.4.4 Chức năng chính của PASCPM..................................................................64
4.4.5 Các kết quả ban đầu đạt được.....................................................................64
4.4.6 Khai thác và định hướng phát triển các ứng dụng các thể hóa thẻ chip .......66
KẾT LUẬN .............................................................................................................67
TÀI LIỆU THAM KHẢO .......................................................................................69


1
Chương 1 - TỔNG QUAN VỀ THẺ THÔNG MINH
1.1 KHÁI NIỆM THẺ THÔNG MINH
Thẻ thông minh (smart card) thường được gọi là thẻ chip hoặc thẻ mạch tích hợp.
Mạch tích hợp trong thẻ gồm các thành phần được sử dụng cho truyền, lưu trữ và xử lý
dữ liệu. Thẻ thông minh có thể có một vùng dập nổi trên một mặt và dải từ trên mặt
kia.
Thể hiện vật lý và đặc tính của thẻ thông minh được định nghĩa trong chuẩn ISO
7816 - 1. Đó là tài liệu cho ngành công nghiệp thẻ thông minh.
Thông thường thẻ thông minh không chứa thiết bị cung cấp nguồn, hiển thị hay
bàn phím. Để tương tác với thế giới bên ngoài, thẻ thông minh được đặt trong hay gần

thiết bị chấp nhận thẻ, được nối với máy tính.
1.2 CÁC LOẠI THẺ CƠ BẢN
Thẻ thông minh được chia thành một số loại. Ví dụ thẻ nhớ (memory card) và thẻ
vi xử lý (microprocessor card). Có thể phân loại thành thẻ tiếp xúc hoặc không tiếp xúc
dựa theo cách truy nhập thẻ.

Hình 1: Sơ đồ phân loại thẻ.

1.2.1 Thẻ nhớ và thẻ chip
Thẻ thông minh sớm nhất được sản xuất theo số lượng lớn là thẻ nhớ. Thẻ nhớ
chưa thực sự là thẻ thông minh vì chúng không có vi xử lý. Chúng được nhúng trong
chip nhớ hoặc chip kết hợp với bộ nhớ nhưng không lập trình được.
Do thẻ nhớ không có CPU, nên việc xử lý dữ liệu được thực hiện bởi một số
mạch đơn giản, có khả năng thực hiện một vài lệnh được lập trình trước. Cũng do số
chức năng của một mạch là giới hạn, được cố định trước nên không thể lập trình để
thay đổi các chức năng đó. Tuy nhiên thẻ nhớ có thể dễ dàng làm giả.
Ưu điểm của thẻ nhớ là đòi hỏi công nghệ đơn giản do đó giá thành thấp. Hình 2
mô tả cấu trúc các khối bên trong của một thẻ nhớ điển hình.


2

Hình 2: Sơ đồ khối của thẻ dùng chip nhớ.

Thẻ vi xử lý, có khả năng bảo mật cao và khả năng tính toán. Với thẻ vi xử lý, dữ
liệu không được phép truy xuất tuỳ ý vào bộ nhớ. Bộ vi xử lý kiểm soát dữ liệu và việc
truy nhập bộ nhớ thông qua các điều kiện (mật khẩu, mã hóa …) và các lệnh từ ứng
dụng bên ngoài. Nhiều loại thẻ vi xử lý hiện nay được thiết kế hỗ trợ việc mã hóa. Các
thẻ đó đặc biệt hữu ích cho các ứng dụng cần bảo mật dữ liệu. Các chức năng của thẻ
chủ yếu bị giới hạn bởi dung lượng bộ nhớ và sức mạnh tính toán CPU trong thẻ.


Hình 3: Sơ đồ khối của thẻ dùng vi điều khiển.

Thẻ vi xử lý được dùng rộng rãi trong kiểm soát truy nhập, ứng dụng ngân hàng,
thẻ viễn thông, thẻ khách hàng thường xuyên, thẻ y tế,…
Nhìn chung thuật ngữ “thẻ thông minh” bao gồm cả thẻ nhớ và thẻ vi xử lý. Tuy
nhiên theo thói quen phổ biến hiện nay cũng như trong luận văn này khi sử dụng thuật
ngữ “thẻ thông minh” ta hiểu là thẻ vi xử lý.


3
1.2.2 Thẻ tiếp xúc và thẻ không tiếp xúc
Thẻ tiếp xúc phải được đưa vào một thiết bị chấp nhận thẻ, chúng liên lạc với thế
giới bên ngoài qua giao diện tiếp xúc gồm có 8 điểm như hình vẽ trong phần mô tả
phần cứng thẻ thông minh, mục 1.3.1.
Thẻ không tiếp xúc không cần phải đặt trong thiết bị chấp nhận thẻ. Chúng liên
lạc qua ăng ten trong thẻ. Năng lượng có thể cung cấp bởi nguồn bên trong hoặc qua
ăng ten. Thẻ không tiếp xúc truyền dữ liệu tới thiết bị chấp nhận thẻ thông qua trường
điện từ.

Hình 4: Cấu trúc của thẻ thông minh không tiếp xúc.

1.3 PHẦN CỨNG CỦA THẺ THÔNG MINH
Thẻ thông minh có các điểm tiếp xúc trên bề mặt của nhựa nền, bộ xử lý trung
tâm bên trong và nhiều dạng bộ nhớ. Một số loại thẻ thông minh có bộ đồng xử lý để
cho việc tính toán thuận lợi[13, 24, 28].

Hình 5: Sơ đồ khối bên trong của thẻ thông minh.



4
1.3.1 Các điểm tiếp xúc

Hình 6: Hình dạng điểm tiếp xúc của thẻ thông minh.

Hình 7: Một số hình dạng điểm tiếp xúc thông dụng của thẻ thông minh.

Thẻ thông minh có 8 điểm tiếp xúc, chức năng của chúng như hình trên. Hướng
và vị trí các điểm tiếp xúc được mô tả trong phần 2 của ISO 7816[23] như sau:
§ Điểm Vcc cung cấp nguồn cho chip hiệu điện thế 3 hoặc 5 volts, với sai số
10%. Thẻ thông minh trong các máy di động thường là 3 volts.
§ Điểm RST được dùng để gửi tín hiệu để reset bộ vi xử lý - được gọi là khởi
động nóng (warm reset). Khởi động nguội (cold reset) được thực hiện chuyển
nguồn cung cấp tắt hoặc bật.
§ Bộ xử lý thẻ thông minh không thực hiện việc tạo tín hiệu đồng hồ bên trong.
Điểm CLK cung cấp tín hiệu đồng hồ bên ngoài, từ đó tạo ra tín hiệu đồng hồ
bên trong.
§ Điểm GND dùng như mức hiệu điện thế chuẩn, giá trị xem như bằng 0.
§ Điểm Vpp là tùy chọn và chỉ dùng trong các thẻ cũ. Khi được sử dụng, nó
cung cấp hai mức hiệu điện thế lập trình. Mức thấp được gọi là trạng thái ngủ
(idle state), mức cao là trạng thái kích hoạt (active state). Thay đổi mức điện
thế là cần thiết để lập trình bộ nhớ EEPROM trong một số thẻ thông minh cũ.
§ Điểm I/O được dùng để chuyển dữ liệu và lệnh giữa thẻ thông minh và thế
giới bên ngoài theo chế độ bán song công (half - duplex mod). Có nghĩa là tín
hiệu và lệnh chỉ được truyền theo một hướng duy nhất ở một thời điểm.
§ Các điểm RFU để dành cho tương lai.


5
1.3.2 Bộ xử lý trung tâm trong thẻ thông minh

Bộ xử lý trung tâm trong hầu hết các chip thẻ thông minh hiện nay là 8-bit,
thường sử dụng tập lệnh của Motorola 6805 và Intel 8051, với tín hiệu đồng hồ tới
5MHz. Các thẻ công nghệ cao (high - end) thường gồm bộ nhân tín hiệu (nhân 2, 4
hoặc 8), nó cho phép những thẻ đó thao tác tới 40 MHz (5Mhz nhân 8).
Các thẻ thông minh mới nhất có bộ vi xử lý 16 hoặc 32 bit, và có tập lệnh đơn
giản (RISC). Trong tương lai chúng sẽ trở nên phổ biến.
1.3.3 Bộ đồng xử lý thẻ trong thông minh
Các chip thẻ thông minh cho các ứng dụng bảo mật, thường có bộ đồng xử lý. Bộ
đồng xử lý có mạch tích hợp đặc biệt để tăng khả năng tính toán, đặc biệt các thuật
toán modular và tính toán với số nguyên lớn. Những tính toán này được yêu cầu bởi
thuật toán mã hóa chẳng hạn như RSA, DES,….
1.3.4 Hệ thống bộ nhớ của thẻ thông minh

Hình 8: Sơ đồ khối bên trái cho thấy một phân vùng đặc trưng của bộ nhớ RAM 256
byte của thẻ thông minh cơ bản, sơ đồ bên phải cho thấy một tổ chức bộ nhớ RAM 6
kbyte của thẻ SIM.

Thẻ thông minh thường gồm ba loại bộ nhớ ROM, EEPROM, RAM[24, 28].
§ ROM (bộ nhớ chỉ đọc) được dùng để lưu trữ các chương trình cố định của thẻ.
Nó có thể lưu trữ dữ liệu khi nguồn đã tắt và không thể ghi sau khi thẻ được
sản xuất. ROM của thẻ thông minh có thể chứa hệ điều hành cũng như dữ liệu
và chương trình cố định. Quá trình ghi mã nhị phân vào ROM được gọi là làm
mặt nạ (masking), được thực hiện trong quá trình sản xuất chip.
§ EEPROM (bộ nhớ chỉ đọc có thể lập trình bằng tín hiệu điện).


6
§ RAM (bộ nhớ truy nhập ngẫu nhiên): dùng để lưu trữ những thông tin cần xử
lý nhanh nhưng mang tính tạm thời, không được lưu lại khi nguồn đã tắt.
1.4 TRUYỀN THÔNG VỚI THẺ THÔNG MINH

1.4.1 Thiết bị chấp nhận thẻ và các ứng dụng máy chủ
Thẻ thông minh được đưa vào thiết bị chấp nhận thẻ, được kết nối tới một máy
tính khác. Thiết bị chấp nhận thẻ được chia làm hai loại: đầu đọc thẻ và thiết bị đầu
cuối (terminal).
Đầu đọc được kết nối tới cổng nối tiếp, cổng song song hoặc cổng USB của máy
tính, qua đó thẻ thông minh được truyền thông. Đầu đọc có khe cắm chứa thẻ thông
minh, hoặc có thể nhận dữ liệu thông qua trường điện từ đối với thẻ không tiếp xúc.
Thông thường đầu đọc thẻ không đủ thông minh để xử lý dữ liệu, có thể có các hàm dò
và sửa lỗi nếu việc truyền dữ liệu không tương thích với giao thức truyền thông mức
dưới.
Thiết bị đầu cuối, có máy tính của riêng nó. Một thiết bị đầu cuối tích hợp đầu
đọc thẻ như là một thành phần của nó. Ta có thể thấy các thiết bị đầu cuối như các
điểm bán hàng (point of sales - POS) hoặc máy rút tiền tự động (Automatic Teller
Machines - ATMs). Bên cạnh chức năng của đầu đọc thẻ, thiết bị đầu cuối có khả năng
xử lý dữ liệu truyền giữa nó và thẻ thông minh.
1.4.2 Mô hình truyền thông với thẻ thông minh
Việc truyền thông giữa thẻ và máy chủ là bán song công, có nghĩa là dữ liệu chỉ
có thể truyền từ thẻ đến máy chủ hoặc từ máy chủ đến thẻ chứ không thể theo cả hai
hướng một lúc.
Thẻ thông minh tương tác với máy tính bằng cách sử dụng các gói tin của riêng
nó - được gọi là APDUs (Application Protocol Data Unit - đơn vị dữ liệu giao thức
ứng dụng). Một APDU chứa một lệnh hoặc một thông điệp trả lời.
Thẻ thông minh đóng vai trò thụ động trong mô hình chủ - tớ với máy chủ. Nó
đợi lệnh APDU từ máy chủ. Sau đó thực hiện chỉ thị trong lệnh và trả lời máy chủ với
APDU phản hồi. Các lệnh APDU và APDU phản hồi được truyền đan xen giữa máy
chủ và thẻ.
1.4.3 Giao thức APDU (Application Protocol Data Unit)
Được chỉ ra trong chuẩn ISO 7816 - 4, APDU là một giao thức ở mức ứng dụng
giữa thẻ thông minh và ứng dụng của máy chủ. Các thông điệp APDU gồm hai loại
cấu trúc: một được sử dụng bởi ứng dụng máy chủ từ phía thiết bị chấp nhận thẻ để gửi

lệnh đến thẻ và một được sử dụng bởi thẻ để gửi thông điệp trả lời cho ứng dụng máy
chủ. Tương ứng với chúng là hai lớp APDU lệnh (Command APDU C - APDU) và
APDU phản hồi (Response APDU R - APDU)[24, 28].
Một lệnh APDU luôn có lệnh R-APDU tạo thành cặp tương ứng.


7
Cấu trúc APDU lệnh:
CLA INS

P1

P2

Lc

Data with length Lc

Cấu trúc APDU phản hồi:
Data with length Le

SW1 SW2

Header (tiêu đề) của APDU lệnh gồm 4 bytes: CLA (“lớp” chỉ thị), INS (“mã”
chỉ thị), và P1, P2 (tham số 1 và 2). Byte “lớp” xác định loại APDU lệnh và APDU
phản hồi. Byte “mã” xác định chỉ thị của lệnh. Hai tham số P1 và P2 xác định thêm
thông tin cho chỉ thị. Tham số P3 xác định độ dài trường dữ liệu (theo byte).
Phần sau header trong APDU lệnh là phần tuỳ chọn chi tiết có độ dài đa dạng.
Trường Lc trong phần chi tiết chỉ rõ độ dài của trường dữ liệu (theo byte). Trường dữ
liệu chứa dữ liệu được truyền tới thẻ để thực hiện lệnh được chỉ rõ trong header của

APDU. Byte cuối cùng trong phần chi tiết APDU lệnh là trường Le, nó chỉ ra số byte
mà máy chủ chờ thẻ phản hồi.
APDU phản hồi, được gửi bởi thẻ để trả lời cho APDU lệnh, bao gồm một chi tiết
tuỳ chọn và phần bắt buộc kèm theo. Phần chi tiết bao gồm trường dữ liệu có độ dài
được xác định bởi trường Le trong APDU lệnh tương ứng. Phần bắt buộc bao gồm hai
trường SW1 và SW2, đi cùng với nhau được gọi là từ trạng thái, biểu thị trạng thái xử
lý của thẻ sau khi thực hiện APDU lệnh. Ví dụ: từ trạng thái “0x9000” có nghĩa là một
lệnh đã được thực hiện thành công và trọn vẹn.
Trường dữ liệu là tuỳ chọn đối với cả APDU lệnh và APDU phản hồi. Do đó,
APDU còn được phân loại thêm theo 5 loại sau, dựa trên đặc điểm có chứa trường dữ
liệu trong APDU lệnh và APDU phản hồi hay không.
Trường hợp 1: Không đầu vào/Không đầu ra
CLA INS

P1

P2

SW1 SW2

P3

lgth (='00')

'90'

'00'

Trường hợp 2: Không đầu vào / Đầu ra có độ dài biết trước
CLA INS


P1

P2

P3
lgth

DATA with length lgth

SW1 SW2
'90' '00'

NOTE: lgth='00' tương ứng dữ liệu truyền 256 bytes.
Trường hợp 3: Không đầu vào / Đầu ra có độ dài chưa biết trước
CLA INS

P1

P2

P3

SW1 SW2


8
'9F' lgth1
CLA INS


lgth (='00')
GET RESPONSE
P1

P2

P3

DATA with lgth2 £ lgth1

lgth2

SW1 SW2
'90'

'00'

Trường hợp 4: Có đầu vào / Không đầu ra
CLA INS

P1

P2

P3 DATA with length lgth

lgth

SW1 SW2


'90'

'00'

Trường hợp 5: Có đầu vào / Đầu ra có độ dài biết trước hoặc không
CLA INS

P1

P2

P3 DATA with length lgth

lgth

SW1 SW2

'9F' lgth1

GET RESPONSE
CLA INS

P1

P2

P3

DATA with lgth2 £ lgth1


lgth2

SW1 SW2
'90'

§ Trường hợp 1: không có dữ liệu được truyền tới hoặc nhận từ thẻ, APDU lệnh
chỉ chứa header, APDU phản hồi chỉ chứa từ trạng thái.
§ Trường hợp 2: không có dữ liệu được truyền tới thẻ, nhưng có dữ liệu phản hồi
từ thẻ. Chi tiết APDU lệnh chỉ chứa 1 byte - trường Le, nó chỉ rõ số byte dữ
liệu cần có trong APDU phản hồi.
§ Trường hợp 3: không có dữ liệu được truyền tới thẻ, nhưng có dữ liệu phản hồi
từ thẻ. Tuy nhiên độ dài của dữ liệu phản hồi không được chỉ rõ.
§ Trường hợp 4: dữ liệu được truyền tới thẻ, nhưng không có dữ liệu được trả về
do kết quả của quá trình xử lý lệnh. Chi tiết của APDU lệnh bao gồm trường
Lc và trường dữ liệu. Trường Lc chỉ ra độ dài của trường dữ liệu. APDU phản
hồi chỉ chứa từ trạng thái.
§ Trường hợp 5: dữ liệu được truyền tới thẻ và dữ liệu được trả về từ thẻ là kết
quả của quá trình xử lý lệnh. Chi tiết APDU lệnh bao gồm trường Lc, trường
dữ liệu và trường Le. APDU phản hồi gồm cả dữ liệu và từ trạng thái.

'00'


9
1.4.4 Mã hoá bit
Mã hoá bit (bit encoding) trực tiếp hay đảo bit đều được dùng trong thẻ thông
minh[23].
Trực tiếp (xuôi thứ tự):

Đảo bit (ngược thứ tự)


1.4.5 Giao thức TPDU (Transport Protocol Data Unit)
APDU được truyền bởi giao thức mức tiếp theo - giao thức truyền thông, được
định nghĩa trong ISO 7816 - 3. Cấu trúc dữ liệu được trao đổi giữa máy chủ và thẻ sử
dụng giao thức truyền thông được gọi là giao thức truyền thông đơn vị dữ liệu
(Transport Protocol Data Unit - TPDU).
Hai giao thức truyền thông được dùng chủ yếu trong các hệ thống thẻ thông minh
hiện nay là T = 0 và T = 1.
Giao thức T = 0 là giao thức hướng byte, có nghĩa là đơn vị nhỏ nhất được xử lý
và truyền đi bởi giao thức là một byte. Giao thức T = 1 là hướng khối, tức là một khối
gồm một số byte liên tiếp, là đơn vị dữ liệu nhỏ nhất có thể truyền giữa thẻ và máy
chủ.
Cấu trúc TPDU được dùng trong giao thức T = 0 và T = 1 là khá khác nhau.
Trong đó, T = 0 là giao thức truyền ký tự bán song công không đồng bộ. Hầu hết các
thẻ thông minh sử dụng giao thức T = 0. Tất cả các thẻ cho mạng di động GSM đều
dùng giao thức này.
Còn T = 1 là giao thức truyền khối dữ liệu bán song công không đồng bộ. Thẻ có
thể hỗ trợ cả hai giao thức này, khi đó thiết bị đầu cuối sẽ lựa chọn giao thức nào được
sử dụng.
Ta xem xét đặc điểm của hai giao thức này:
§ Giao thức T = 0
- Giao thức truyền ký tự bán song công không đồng bộ.
- Thẻ có thể phát và nhận dữ liệu.
- Một lệnh không thể gửi dữ liệu tới thẻ rồi nhận dữ liệu phản hồi
đồng thời.


10
- Giao thức không chỉ ra hướng của dữ liệu.
- Thiết bị đầu cuối phải biết hướng dữ liệu.

Dữ liệu tới thẻ, ví dụ lệnh ghi

Dữ liệu từ thẻ, ví dụ lệnh đọc

§ Giao thứcT = 1
- Giao thức truyền khối bán song công không đồng bộ.
- Dữ liệu có thể được truyền theo cả hai hướng. - Lệnh và dữ liệu trong
trường thông tin.
- Lệnh và dữ liệu trong khung độc lập.
- Không có byte kiểm tra chẵn lẻ.

1.4.6 Thông điệp trả lời để xác lập lại
Ngay sau khi bật nguồn, thẻ thông minh gửi thông điệp trả lời để xác lập lại
(answer to reset - ATR) tới máy chủ. Thông điệp này truyền tới máy chủ các thông số
yêu cầu bởi thẻ để thiết lập kênh kết nối truyền dữ liệu. ATR có thể có từ 2 đến 33
byte. Byte đầu tiên định nghĩa kiểu mã bit (trực tiếp hay đảo ngược). Bản thân ATR
còn chứa các tham số truyền tín hiệu như giao thức truyền thông được thẻ thông minh
hỗ trợ (T = 0 hoặc T = 1), tốc độ truyền dữ liệu, các tham số phần cứng của thẻ như số
thứ tự chip, phiên bản làm mặt nạ cho chip, nhà sản xuất, …. Xem chi tiết ở mục
2[23].

------------------------------------------------------------------------------------------Chương 2 - HỆ ĐIỀU HÀNH THẺ THÔNG MINH


11
2.1 GIỚI THIỆU HỆ ĐIỀU HÀNH THẺ THÔNG MINH
Hệ điều hành thẻ thông minh gần giống như hệ điều hành máy để bàn (desktop)
như DOS, UNIX hay Window. Ngoài ra, hệ điều hành thẻ thông minh hỗ trợ một tập
hợp các lệnh, dựa vào đó để xây dựng các ứng dụng của người dùng. ISO 7816 - 4 đã
được chuẩn hóa có thể hỗ trợ tập hợp lớn các chỉ thị trong định dạng của APDU. Một

hệ điều hành thẻ thông minh có thể hỗ trợ một số hay tất cả các lệnh APDU khi nhà
sản xuất thêm vào và mở rộng. Hiện nay, trên thế giới có rất nhiều hãng sản xuất thẻ
thông minh có hệ điều hành hoặc dựa trên nền tảng chuẩn mở (OCF - Open Card
Flatform) hoặc tự phát triển nền tảng riêng (Proprietary Card) để phát triển hệ điều
hành.
§ Thẻ Proprietary hay Native

Hình 9: Kiến trúc của thẻ thông minh dùng hệ điều hành riêng như MPCOS, STARCOS,
ACOSx, WatchData,…

§ Thẻ Global Platform

Hình 10: Kiến trúc của thẻ thông minh dùng hệ điều hành Global Platform dựa trên nền
tảng chuẩn mở OCF hỗ trợ Java.

§ The Multos


12

Hình 11: Kiến trúc thẻ thông minh dùng hệ điều hành Multos.

§ Thẻ Java

Hình 12: Kiến trúc thẻ thông minh sử dụng hệ điều hành hãng Sun Microsystem hỗ trợ
Java.

§ Thẻ Proton Prisma

Hình 13: Kiến trúc thẻ thông sử dụng hệ điều hành Proton Prisma hỗ trợ Java.


§ Thẻ TIBC


13

Hình 14: Kiến trúc thẻ thông minh dùng hệ điều hành TIBC hỗ trợ Java.

Các lệnh APDU phần lớn hướng file hệ thống, như các lệnh lựa chọn file và truy
cập file. Trong trường hợp này, một ứng dụng của người dùng thường là một file dữ
liệu lưu thông tin cụ thể của ứng dụng. Ngữ nghĩa và chỉ thị để truy cập file dữ liệu
ứng dụng được thực hiện bởi hệ điều hành. Chính vì vậy, việc phân chia giữa hệ điều
hành và ứng dụng không được định nghĩa rõ ràng. Các hệ điều hành mới nhất hỗ trợ
tốt hơn sự phân chia lớp hệ thống và nạp mã ứng dụng của người dùng vào thẻ.
2.2 CÁC FILE HỆ THỐNG TRONG THẺ THÔNG MINH
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 ISO 7816 - 4. Người ta chia làm ba loại:
thư mục gốc (master file - MF), thư mục chuyên dụng (dedicated file - DF) và các 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ó
header, được quản lý bởi thẻ thông minh và phần tuỳ 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.
2.2.1 Thư mục gốc
Thư mục gốc (Master File - MF) của hệ thống file và là duy nhất cho mỗi thẻ.
MF được kích hoạt khi thẻ được đưa vào thiết bị đọc thẻ (ví dụ máy POS, ATM, …).
MF không thể bị xoá khi thẻ còn hoạt động[8, 9, 13, 24, 28].
2.2.2 Thư mục chuyên dụng
Thư mục chuyên dụng (Dedicated File - DF) là thư mục của thẻ thông minh, nó
lưu các thư mục chuyên dụng khác và các file cơ bản. DF lưu trữ dữ liệu ứng dụng. Về

bản chất vật lý, nó là một khối bộ nhớ tĩnh và có một khối header. Tất cả các DF được
phân chia về vật lý và logic với DF khác, để tránh sự ảnh hưởng lẫn nhau giữa các ứng
dụng khác nhau. Một số DF có thể chia sẻ tài nguyên chung qua MF[8, 9, 13, 24, 28].
Các DF ở mức đầu tiên tồn tại trong thẻ MPCOS-EMV như sau:


14
DFSystem, chứa hai file thành phần lưu thông tin về nhà sản xuất thẻ cũng như nhà
phát hành ứng dụng cho thẻ.
Tất cả các file này là mức con ngay dưới của MF.
2.2.3 File cơ bản
Những file này (Elementary File - EF) chứa dữ liệu thực sự. Chúng bao gồm một
chi tiết và một header. Có 4 loại EF: file trong suốt (transparent), cố định tuyến tính
(linear fixed), biến đổi tuyến tính (linear variable) và cố định nối vòng (cyclic fixed).

Hình 15: Sơ đồ tổ chức file trong thẻ thông minh.

§ EF trong suốt (Transparent EF)

Hình 16: Dữ liệu địa chỉ offset trong một file trong suốt.

Đó là EF có cấu trúc gồm các byte liên tiếp. Byte đầu tiên có địa chỉ ‘00’. Khi
file được đọc hoặc cập nhật, byte được kích hoạt sẽ được tham chiếu qua địa chỉ offset,
nó biểu thị vị trí bắt đầu của byte và độ dài được đọc hoặc cập nhật tính từ vị trí đó.
Tiêu đề của file trong suốt biểu thị độ dài chi tiết của file[8, 9, 13, 24, 28].
§ EF cố định tuyến tính (Linear fixed EF)


15


Hình 17: Cấu trúc file cố đinh tuyến tính.

Kiểu EF này gồm các bản ghi liên tiếp có cùng độ dài (cố định). Mỗi bản ghi
được định danh duy nhất bởi số thứ tự bản ghi. Độ dài của bản ghi và số bản ghi trong
file đó được định nghĩa trong header của file.
Liên kết với cấu trúc trong suốt, ta có thể có một số cách để truy nhập các bản ghi
của file này. Có thể truy cập qua số thứ tự bản ghi, bằng cách sử dụng chế độ TRƯỚC
- SAU, hoặc bằng cách sử dụng dạng tìm kiếm từ đầu file. File này cũng có giới hạn
theo chuẩn ISO7816 - 4, số bản ghi tối đa trong file tuyến tính cố định là 254, và mỗi
bản ghi có độ dài không vượt quá 255 bytes[8, 9, 13, 24, 28].
§ EF biến đổi tuyến tính (Linear variable EF)
Kiểu file này gồm các bản ghi liên tiếp có độ dài không cố định. Cúng giống với
kiểu file tuyến tính cố định, mỗi bản ghi cũng được định danh duy nhất bởi số thứ tự
bản ghi[8, 9, 13, 24, 28].

Hình 18: Cấu trúc file biến đổi tuyến tính.

§ EF nối vòng (Cyclic EF)

Hình 19: Cấu trúc file nối vòng.

Có cấu trúc tương tự file cố định tuyến tính. Nó gồm có số cố định các bản ghi
với độ dài các bản ghi là cố định. Điểm khác nhau với file tuyến tính cố định là có liên


16
kết giữa bản ghi đầu tiên và cuối cùng. Theo cách này, khi con trỏ bản ghi ở bản ghi
cuối cùng, bản ghi tiếp theo là bản ghi đầu tiên, khi con trỏ ở bản ghi đầu tiên, bản ghi
trước nó là bản ghi cuối cùng[8, 9, 13, 24, 28].
EF nối vòng được sử dụng phổ biến cho việc lưu trữ thông tin theo mốc thời gian.

Theo cách này, khi tất cả các bản ghi đã được sử dụng, dữ liệu tiếp theo sẽ ghi đè bản
lên bản ghi cũ nhất đã được dùng, sử dụng phương thức TRƯỚC. Với thao tác đọc,
phương thức tìm địa chỉ bản ghi là TRƯỚC, SAU, HIỆN TẠI VÀ SỐ HIỆU BẢN
GHI.
2.3 TRUY CẬP FILE
2.3.1 Định danh file
Định danh được dùng để đánh địa chỉ mỗi file trong thẻ. Định danh bao gồm hai
byte và được thể hiện dưới dạng mã hexa. Byte đầu tiên của định danh xác định kiểu
file. Định danh file cho thẻ chip như sau:
§ File gốc: 3F
§ Mức đầu tiên của file chuyên dụng: 01
§ Mức thứ hai của file chuyên dụng: 5F
§ File thành phần dưới mức MF: 2F
§ File thành phần dưới mức DF đầu tiên: 6F
§ File thành phần dưới mức DF thứ hai: 4F
2.3.2 Các phương thức lựa chọn file
Khi thẻ được đưa vào các thiết bị chấp nhận thẻ (POS, ATM, …), file gốc sẽ được
chọn và trở thành thư mục hiện tại. Mỗi file của thẻ EMV có thể được lựa chọn bởi
lệnh SELECT. Có một số luật cần tuân theo để việc lựa chọn file thành công. Từ file
hiện tại, các file sau có thể được lựa chọn:
§ File gốc (MF).
§ File chuyên dụng hiện tại.
§ File chuyên dụng mức cha của thư mục hiện tại.
§ Bất kỳ file chuyên dụng nào là mức con liền kề của file chuyên dụng cha của
thư mục hiện tại.
§ Bất kỳ file chuyên dụng nào là con của thư mục hiện tại.
Tất cả việc lựa chọn file được thực hiện bằng cách dùng định danh của file được
lựa chọn. Trong quá trình lựa chong file, nếu file được chỉ định lựa chọn không tồn tại
trên thẻ thì lập tức thẻ sẽ thông báo cho thiết bị đầu cuối biết bằng mã lỗi trả về. Tuy
nhiên con trỏ hiện tại vẫ không bị mất đi mà vẫn nằm ở vị trí hiện tại.

2.3.3 Điều kiện truy cập file
Để lựa chọn một file của thẻ thông minh, cần có một số điều kiện truy cập phải
tuân theo. Điều kiện truy cập chỉ áp dụng cho file thành phần (EF), file gốc (MF) và


17
file chuyên dụng (DF) không có điều kiện truy cập. Tuy nhiên ở mỗi loại thể đều có
một số quy định riêng về cách truy cập file của nó, điều này thường được mô tả rất chi
tết trong tài liệu đi kèm với từng loại thẻ tương ứng.
Thẻ thông minh cho phép truy cập file để bảo vệ dùng mã riêng hoặc khóa. Các
mã riêng này được lưu trữ trong EF được gọi là Secret Code Elementary Files (EF sc).
File gốc và mỗi file chuyên dụng có thể chứa một EFsc.
Truy cập tới các file của thẻ chip được bảo vệ bởi mã riêng bí mật. Mã này được
lưu trữ trong một EF chỉ định mà được gọi là EFsc. Mỗi EFsc có thể chứa tới 8 mã bí
mật, được đánh số từ 0 đến 7. File MF và mỗi DF chỉ chứ một EFsc.
Các điều kiện truy cập định ngĩa mức bảo vệ cho một file. Các điều kiện này
thường lưu 2 byte trong các mô tả của DF và EF. Chúng định nghĩa như các điểm sau:
§ Có tới 2 mã số bí mật mà phải đệ trình để truy cập file cho mỗi kiểu truy cập
(tạo file, đọc, ghi hoặc cập nhật nội dung file).
§ Sử dung khóa bí mật cho các thực hiện thông điệp an toàn trên file cho mỗi
kiểu truy cập (tạo file, đọc, ghi hoặc cập nhật nội dung file).
Các điều kiển bảo vệ dữ liệu có thể được định nghĩa bởi nhà phát hành ứng dụng
cho mỗi EF hoặc DF.
Khi thiết bị đầu cuối đệ trình một mã bí mật, nó được chỉ định là một mã bí mật
trong dãi từ 0 đến 7. Thẻ sẽ so sánh mã bí một được đệ trình với mã bí mật được chỉ
định bở EFsc. Nếu mã bí mật đó không tương ứng, thẻ sẽ trả về một byte trạng thái lỗi.
Còn nếu mã bí mật đó tương ứng, thẻ sẽ đặt tương ứng số bit tới số của mã bí mật đã
đệ trình thành công lên ‘1’ trong thanh ghi ủy quyền[8,9].
2.4 CẤU TRÚC FILE THẺ EMV
2.4.1 Cấu trúc file thẻ MPCOS-EMV

Cấu trúc thẻ MPCOS-EMV tuân theo chuẩn ISO 7816. Ở đỉnh của cấu trúc này là
file gốc (MF). Thư mục này chứa hai file chuyên dụng ở mức đầu tiên và hai file thành
phần của mức đầu. Đó là các file EFKey, DFSystem, EFCard, EFIssuer[8,9].
Cụ thể các file đó là:
§ EFKey
File này được dùng để chứa mã khóa hệ thống, mã khóa này rất cần thiết để thực
hiện việc cá thể hóa các ứng dụng của nhà phát hành lên thẻ. Thông tin về mã khóa này
được nhà sản xuất thẻ cung cấp cho khách hàng khi họ mua thẻ. File này có độ dài 24
byte. Điều kiện truy cập của file này để đọc là luôn bị khóa không cho phép đọc nội
dung, nhà phát hành thẻ chỉ được phép ghi và cập nhật nội dung cho file này mà thôi.
Tất cả các thao tác đó đều được mã hóa dưới mã khóa của file EF Key.


18

Hình 20: Cấu trúc khởi tạo của thẻ MPCOS-EMV.

§ DFSystem
File này chứa hai file chuyên thành phần EF Card, EFIssuer. Các file thành phần trong
mức ứng dụng này chứa thông tin liên quan đến nhà sản xuất thẻ và nhà phát hành thẻ.

Hình 21: Sơ đồ cấu trúc file thẻ MPCOS-EMV khi được nạp thêm ứng dụng vào thẻ.

Trong đó:
§ EFCard


19
Đây là một file thành phần chứa chuổi số thứ tự của thẻ (Card Serial Number),
chuỗi số này là duy nhất được ghi bởi nhà sản xuất thẻ. File này có độ dài 12 byte, điều

kiện truy cập của file chỉ cho phép đọc nội dụng file, người dùng không thể thay đổi
nội dung của nó.
§ EFIssuer
File này chứa thông tin dữ liệu liên quan đến nhà phát hành ứng dụng trên thẻ
(ngân hàng, tổ chức tài chính,…). Thông tin này được nhà phát hành lưu trữ vào file
trong quá trình cá thể hóa thẻ. File này có độ dài 12 byte, điều kiện truy cập file cho
phép đọc nội dung file, để ghi thông tin hoặc cập nhật nội dung file thì cần phải có mã
khóa EFKey trong thư mục gốc Master File.
2.4.2 Cấu trúc file thẻ Global Platform
Cấu trúc thẻ Global Platform là thẻ Java cũng tuân theo chuẩn ISO 7816. Cấu
trúc lớp phần cứng cũng giống như hầu hết thẻ thông minh cơ bản, với hệ điều hành
thẻ là Global Platform chuẩn mở, như kiến trúc mô tả ở hình 22.

Hình 22: Kiến trúc thẻ Global Platform.

Ở đây, ta thấy trong thẻ được chia thành nhiều khu vực khác nhau tương ứng với
từng loại chức năng khác nhau, mỗi một khu vực ứng dụng đều có một vùng bảo vệ
(Security Domain) tương ứng[10].
2.4.2.1 Security Domains
Vùng này đóng vai trò như là các đại diện chính trên thẻ của các thẩm quyền
ngoài thẻ. Có ba kiểu bảo vệ như sau:


20
§ Vùng bảo mật cho nhà phát hành (Issuer Security Domain) là phần chính, là
đại diện không thể thiếu của bộ phận quản trị thẻ (Card Administrator), đặc
trưng bởi nhà cấp thẻ (Card Issuer).
§ Vùng bảo mật bổ sung (Supplementary Security Domain) cũng được thêm vào,
là thành phần tùy chọn của bộ phận cung cấp ứng dụng (Application
Providers) hoặc nhà cấp thẻ (Card Issuer) hoặc các đại lý của họ (ví dụ như

phòng dịch vụ).
§ Vùng bảo mật thẩm quyền điều khiển (Controlling Authority Security Domain)
là một phần đặc biệt của vùng bảo mật bổ sung. Thẩm quyền điều khiển có vai
trò để thi hành các chính sách bảo mật trên tất cả các ứng dụng được nạp vào
thẻ. Nếu vậy, thẩm quyền điều khiển cũng sử dụng loại này của vùng bảo mật
như nó. Có thể có nhiều hơn một vùng bảo mật.
Phần lớn, vùng bảo mật hỗ trợ các dịch vụ bảo mật như là điều khiển mã khóa,
mã hóa, giãi mã, tạo chữ ký số và xác minh cho các nơi cung cấp (Card Issuer,
Application Provider hoặc Controlling Authority) ứng dụng.
Mỗi một vùng bảo mật được thiết lập trên danh nghĩa của Card Issuer,
Application Provider hoặc Controlling Authority khi các thực thể ngoài yêu cầu sử
dụng các mã khóa mà được hoàn thành riêng biệt từ mỗi cái khác nhau[10].
2.4.2.2 Global Services Applications
Một hoặc nhiều các ứng dụng dịch vụ được cài đặt sẵn lên thẻ để cung cấp các
ứng dụng dịch vụ tới các ứng dụng khác trên thẻ. Ví dụ như là dịch vụ phương thức
xác minh chủ thẻ (CVM)[10].
2.4.2.3 Môi trường chạy thực (Runtime Environment)
Global Platform được xây dựng cho phép chạy đa ứng dụng trên bất kỳ môi
trường. Môi trường này có trách nhiệm cung cấp giao diện kết nối phần cứng cho các
ứng dụng cũng như một vùng lưu trữ an toàn và tạo một không gian cho các ứng dụng
để đảm bảo rằng mỗi mã ứng dụng và dữ liệu có thể duy trì riêng biệt và an toàn so với
các ứng dụng khác trên thẻ. Ngoài ra, nó còn cung cấp các dịch vụ giữu thẻ và các thực
thể ngoài.
Các thẻ thông minh nói chung thường tuân theo các chuẩn: ISO 7816 - 3, ISO
7816 - 4, ISO 14443 - 3, ISO 14443 - 4, chúng đều hỗ trợ các tùy chọn ATR/ATQ cũng
như giao thức truyền thông, kênh logic vào chuỗi lệnh[10].
2.4.2.4 Trusted Framework
Các thẻ GP có thể chước một hoặc nhiều nền tảng tin cậy (Trusted Framework),
nó cung cấp các dịch vụ kết nối giữu các ứng dụng bên trong với nhau. Nó không phải



21
là một ứng dụng hay phân vùng bảo mật nhưng lại có một trạng thái đặc biệt mà ở đó
chúng có một phần hoặc mở rộng của Runtime Environement[10].
2.4.2.5 Global Platform Environment (OPEN)
Trách nhiệm chính của khối này là cung cấp một API cho các ứng dụng, điều
phối lệnh, lựa chọn ứng dụng, quản lý kênh logic (tùy chọn) và quản lý chương trình
thẻ.
OPEN sẽ thực thi việc nạp mã ứng dụng và nhưng phần liên quan tới quản lý
chương trình thẻ và quản lý bộ nhớ.
OPEN cũng quản lý việc cài đặt các ứng dụng nạp vào thẻ. Nó chịu trách nhiệm
thi hành yếu tố bảo mật đã định nghĩa trước cho quản lý chương trình thẻ.
Chức năng quan trọng khác của OPEN là cung cấp điều phối lệnh APDU và lựa
chọn ứng dụng. Khi lênh SELECT được xử lý thành công thì OPEN thiết đặt ứng dụng
đấy tham chiếu vào trong câu lệnh SELECT để lựa chọn ứng dụng và những lệnh ứng
dụng tiếp sau cũng được điều phối để lựa chọn tới ứng dụng đấy.
OPEN sở hữu và sử dụng vùng đăng ký nền tảng (Global Platform Registry) như
mà một tài nguồn nguyên thông tin cho khối quản lý ứng dụng thẻ. Vùng này chứa
thông tin cho việc quản lý thẻ, các file tải ứng dụng, các ứng dụng, các liên kết vùng
bảo mật và những đặc quyền riêng của thẻ[10].
2.4.2.6 Giao diện ứng dụng nền tảng (Global Platform API)
Nó cung cấp các dịch vụ tới các ứng dụng (chẳng hạn như xác minh chủ thẻ, cá
thể hóa thẻ hoặc các dịch vụ bảo mật khác). Nó cũng cung cấp các dịch vụ quản lý nội
dung thẻ tới các ứng dụng[10].
2.4.2.7 Chương trình thẻ (Card Content)
Tất cả chương trình thẻ như đã định nghĩa, là cái đầu tiên tồn tại trên thẻ trong
khuôn dạng của mội file nạp thực thi (Executable Load File).
Mỗi một file nạp thực thi có thể chứa một hoặc nhiều module thực thi là mã ứng
dụng. Việc cài đặt một ứng dụng sẽ tạo ra một thực thể từ một module thực thi cộng
với dữ liệu ứng dụng bên trong vùng nhớ biến đổi cố định. Bất kỳ một thực thể ứng

dụng và dữ liệu liên quan của nó có thể được gỡ bỏ. Thẻ Global Platform được dự định
để hỗ trợ đa tập tin nạp thực thi và đa module thực thi như là đa ứng dụng có thể cùng
tồn tại trên một thẻ Global Platform[10].
2.4.2.8 Card Manager
Nó như là trung tâm quạn trị của thẻ thông minh, đảm nhận nhiều trách nhiệm.
Module quản lý thẻ có thể được xem như là ba thực thể như: môi trường Global


22
Platform (OPEN), phân vùng bảo mật nhà phát hành và các dịch vụ phương thức xác
minh chủ thẻ (CVM)[10].
Thông qua mô hình tham chiếu các lớp, thì thẻ Global Platform có thể hiểu như
cấu trúc dưới đây. Xem hình 23.

Hình 23: Sơ đồ tham chiếu các lớp.

§ Lớp máy ảo thẻ java (JCVM) là môi trường để cho các ứng dụng nạp vào thẻ
thực thi trên đấy.
§ Lớp giao tiếp ứng dụng thẻ java (JCAPI), đây là nền tảng cơ bản để ứng dụng
giao tiếp với các module bên trong cũng như bên ngoài thẻ.
§ Lớp giao tiếp ứng dụng Global Platform (GPAPI) và Global Platform System
Applet, cũng tương tự như lớp JCAPI, đây là một lớp riêng của thẻ Global
Platform, nó hỗ trợ các phương thức giao tiếp riêng mà chỉ thẻ Global
Platform mới có.
§ Lớp giao tiếp nhà phát hành định nghĩa (Issuer defined APIs), thẻ java hỗ trợ
cho phép nhà phát hành thẻ có thể thêm các thư viện giao tiếp với thẻ để thực
hiện những chức năng riêng biệt mà nhà phát hành mong muốn.
§ Lớp ứng dụng, thẻ java cho phép người dùng xây dựng các ứng dụng (gọi là
các applet) có chức năng cụ thể như: ứng dụng ví điện tử(wallet), ứng dụng
khách hàng than thiết(loyalty), ứng dụng mã số cá nhân(id), … Lớp này được

quản lý bởi Card Content
2.5 CÁC CHỨC NĂNG CỦA THẺ EMV
Chuẩn EMV 2000 quy định một số lệnh bắt buộc để quản lý file hệ thống của thẻ
EMV. Trong chuẩn mô tả cụ thể điều kiện trạng thái liên quan, mã lỗi và mã trả lời đối
với từng lệnh[4, 10].


23
§ Lệnh SELECT:
Lệnh này dùng để lựa chọn một file. Sau khi thực hiện thành công, con trỏ bản
ghi trong file cố định tuyến tính không được xác định. Con trỏ trong file nối vòng sẽ là
địa chỉ của bản ghi cuối cùng được cập nhật hoặc được tăng.
Đầu vào: Định danh file.
Đầu ra:
- Nếu file được lựa chọn là MF hay DF, đầu ra sẽ là định danh file, tổng dung
lượng bộ nhớ còn trống.
- Nếu file được lựa chọn là EF, đầu ra là định danh file, kích thước file, điều kiện
truy cập, chỉ thị mất hiệu lực/còn hiệu lực, cấu trúc của EF và độ dài của bản ghi
trong trường hợp là file nối vòng hoặc file tuyến tính độ dài cố định.
§ Lệnh đọc nhị phân (READ BINARY):
Lệnh này chỉ dùng được với file thành phần trong suốt, với điều kiện đọc của file
liên quan được thoả mãn. Thoả mãn điều kiện này, lệnh đọc ra một chuỗi các byte từ
file. Lệnh yêu cầu địa chỉ tương đối, độ dài của chuỗi là đầu vào, đầu ra là một chuỗi
các byte.
§ Lệnh đọc bản ghi (READ RECORD):
Dùng cho file thành phần có cấu trúc nối vòng hoặc tuyến tính với độ dài cố định.
Điều kiện để lệnh được thực hiện là file đó cho phép truy cập đọc.
Có 4 chế độ để đọc một bản ghi. Chế độ hiện tại (CURRENT), nơi bản ghi hiện
tại được đọc, không gây ảnh hưởng gì tới con trỏ bản ghi tương ứng. Chế độ tuyệt đối
(ABSOLUTE), bản ghi được đọc theo số hiệu bản ghi, con trỏ bản ghi không bị thay

đổi. Chế độ kế tiếp (NEXT), trước khi đọc bản ghi con trỏ bản ghi đã tăng 1. Chế độ
liền trước (PREVIOUS), con trỏ bản ghi giảm 1 trước khi đọc bản ghi.
Lệnh đọc bản ghi chỉ rõ một trong bốn chế độ kể trên cùng với độ dài bản ghi là
đầu vào. Trường hợp là chế độ tuyệt đối, cần thêm số hiệu bản ghi. Kết quả trả về là
bản ghi đó.
§ Lệnh cập nhật nhị phân (UPDATE BINARY):
Tương tự lệnh đọc nhị phân, lệnh này chỉ được xây dựng cho file thành phần
trong suốt. Nó chỉ được thực hiện nếu điều kiện cập nhật được thoả mãn. Khi file được
cập nhật nhị phân, chuỗi các byte được thay thế bởi giá trị mới ở trong lệnh. Đầu vào
là địa chỉ tương đối và độ dài của xâu được cập nhật cùng với chuỗi byte sẽ được cập
nhật. Lệnh này không có đầu ra.
§ Lệnh cập nhật bản ghi (UPDATE RECORD):
Lệnh này dùng để thay thế bản ghi hiện tại bởi một bản ghi mới. Nó chỉ áp dụng
cho file thành phần là tuyến tính nối vòng hoặc tuyến tính độ dài cố định, cùng với
điều kiện truy cập cập nhật bản ghi được đáp ứng. Bốn chế độ của lệnh này hoàn toàn
tương tự lệnh đọc bản ghi. Đầu vào là chế độ và độ dài bản ghi, không có đầu ra.


×