ĐẠI HỌC QUỐC GIA HÀ NỘI
ĐẠI HỌC CÔNG NGHỆ
PHAN THU NGÂN
NGHIÊN CỨU GIẢI PHÁP VÀ PHÁT H ÀNH THẺ
THÔNG MINH THEO CHUẨN EMV
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS NGÔ DIÊN TẬP
Hà Nội – 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
ĐẠI HỌC CÔNG NGHỆ
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
PHỤ LỤC .................................................................................................................71
A. Ứng dụng ví điện tử (wallet) ..............................................................................71
B. Thuật toán tính MAC .........................................................................................75
iii
DANH MỤC CÁC TỪ VIẾT TẮT
AFL: Application File Locator: định danh tệp tin ứng dụng
ATR: Answer To Reset: Trả lời để khẳng định lại
APDU: Application Protocol Data Units: Đơn vị dữ liệu giao thức ứng dụng
AES: Advanced Encryption Standard: chuẩn mã hoá tiên tiến
ARQC: Authorisation Request Cryptogram
ATM: Automatic Teller Machine: máy rút tiền tự động
AuC: Authentication Centre: trung tâm xác thực
BTS: Base Station: trạm thu phát
CDA: Application Cryptogram Generation: tạo mã ứng dụng
CDOL1: Card Risk Management Data Object List 1
CDOL2: Card Risk Management Data Object List 1
CPU: Central Processing Unit: bộ xử lý trung tâm
C-APDU: Command - Application Protocol Data Units: APDU lệnh
CBC: Cipher Block Chaining
CLA: Class: “lớp” chỉ thị
CVM: Cardholder Verification Method: phương thức xác minh chủ thẻ
DDA: Dynamic Data Authentication: xác thực dữ liệu động
DDOL: Dynamic Data Authentication Object List
DF: Dedicated File: thư mục chuyên dụng
DES: Data Encryption Standard: chuẩn mã hoá dữ liệu
EEPROM: Electrically Erasable Programmable Read Only Memory:
Bộ nhớ có thể ghi bằng tín hiệu điện
ECB: Electronic Code Book
EF: Elementary File: file cơ bản
GSM: Global System for Mobile Communications
GPRS: General Packet Radio Service: dịch vụ truyền phát mã hoá gói tin
GEA: Generic Evolutionary Algorithm:
HLR: Home Location Register: đăng ký vùng chủ
HPLMN: Home Public Land Mobile Networks: mạng di động công khai
ICC: Integrated Chip Card
ICV: Initial Chaining Value: giá trị chuỗi khởi tạo
INS: Instruction: “mã” chỉ thị
iv
ISO: International Standards Organization: Hiệp hội tiêu chuẩn quốc tế
IMSI: International Mobile Subscriber Identity: định danh thuê bao di động quốc tế
LFSRs: Linear Feedback Shift Registers: thanh ghi dịch chuyển đầu ra tuyến tính
MF: Master file: thư mục gốc
ME: Mobile Equipment: thiết bị di động
MAC: Message Authentication Codes: Mã xác thực thông điệp
MSC: Mobile Switching Centres: trung tâm chuyển mạch di động
PIN: Personal Identification Number: số định danh cá nhân
POS: Point Of Sale: điểm bán hàng
R-APDU: Response - Application Protocol Data Units: APDU phản hồi
RISC: Reduced instruction set computer: tập lệnh đơn giản
ROM: Read Only Memory: bộ nhớ chỉ cho phép đọc
RAM: Random Access Memory: bộ nhớ truy cập ngẫu nhiên
RE: Receiver Entity: thực thể nhận
RA: Receiver Application: ứng dụng nhận
SIM: Subscriber Identity Module: Thẻ thông minh mang định danh thuê bao.
SAT: Sim Application Toolkit: bộ ứng dụng SIM
SA: Send Application: ứng dụng gửi
SDA: Static Data Authentication: xác thực dữ liệu tĩnh
SDAD: Signed Dynamic Application Data: dữ liệu ứng dụng chữ ký số động
SE: Send Entity: thực thể gửi
SM: Secure Message: thông điệp bảo mật
SP: Secure Packet: gói tin bảo mật
SMS: Short Message Service: dịch vụ tin nhắn ngắn
TM: Transport Mechanism: kiến trúc giao vận
TC: Transaction Certificate
TPDU: Transportation Protocol Data Units: Đơn vị dữ liệu giao thức truyền thông
TMSI: Temporary Mobile Subscriber Identity: định danh thuê bao di động tạm thời
USSD: Unstructured Supplementary Service Data: dữ liệu dịch vụ bổ sung không cấu
trúc
v
DANH MỤC CÁC HÌNH VẼ
Hình 1: Sơ đồ phân loại thẻ. .................................................................................................. 1
Hình 2: Sơ đồ khối của thẻ dùng chip nhớ. ............................................................................ 2
Hình 3: Sơ đồ khối của thẻ dùng vi điều khiển....................................................................... 2
Hình 4: Cấu trúc của thẻ thông minh không tiếp xúc.............................................................. 3
Hình 5: Sơ đồ khối bên trong của thẻ thông minh. ................................................................. 3
Hình 6: Hình dạng điểm tiếp xúc của thẻ thông minh............................................................. 4
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. .............................. 4
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. ...................................................................................................................................... 5
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,….........................................................................................................11
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. ..................................................................................................11
Hình 11: Kiến trúc thẻ thông minh dùng hệ điều hành Multos. .............................................12
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.
.............................................................................................................................................12
Hình 13: Kiến trúc thẻ thông sử dụng hệ điều hành Proton Prisma hỗ trợ Java......................12
Hình 14: Kiến trúc thẻ thông minh dùng hệ điều hành TIBC hỗ trợ Java...............................13
Hình 15: Sơ đồ tổ chức file trong thẻ thông minh. ................................................................14
Hình 16: Dữ liệu địa chỉ offset trong một file trong suốt. ......................................................14
Hình 17: Cấu trúc file cố đinh tuyến tính. .............................................................................15
Hình 18: Cấu trúc file biến đổi tuyến tính. ............................................................................15
Hình 19: Cấu trúc file nối vòng. ...........................................................................................15
Hình 20: Cấu trúc khởi tạo của thẻ MPCOS-EMV................................................................18
Hình 21: Sơ đồ cấu trúc file thẻ MPCOS-EMV khi được nạp thêm ứng dụng vào thẻ. ..........18
Hình 22: Kiến trúc thẻ Global Platform. ...............................................................................19
Hình 23: Sơ đồ tham chiếu các lớp. ......................................................................................22
Hình 24: Sơ đồ luồng giao dịch. ...........................................................................................27
Hình 25: Chế độ mã hóa DES - ECB. ...................................................................................32
Hình 26: Chế độ mã hóa DES - CBC. ...................................................................................33
Hình 27: Chế độ giải mã DES - CBC....................................................................................33
Hình 28: Sơ đồ tính MAC trong chế độ mã hóa DES - CBC. ................................................34
vi
Hình 29: Sơ đồ xác thực giữa thẻ thông minh với thực thể ngoài. .........................................37
Hình 30: Sơ đồ thực thể ngoài xác thực với thẻ thông minh. .................................................38
Hình 31: Sơ đồ thực hiện quá trình mã hóa bản tin ghi vào thẻ thông minh. ..........................38
Hình 32: Sơ đồ thực hiện quá trình mã hóa bản tin đọc từ thẻ thông minh ra.........................39
Hình 33: Sơ đồ thực hiện quá trình bảo mật dữ liệu và mã hóa bản tin từ thực thể ngoài ghi
vào thẻ thông minh. ..............................................................................................................40
Hình 34: Sơ đồ thực hiện quá trình bảo mật dữ liệu và mã hóa bản tin đọc ra từ thẻ thông
minh. ....................................................................................................................................40
Hình 35: Sơ đồ thiết lập khóa phiên giữu thẻ thông minh với thực thể ngoài dùng hệ mã hóa
đối xứng. ..............................................................................................................................41
Hình 36: Sơ đồ thiết lập khóa phiên giữa thẻ thông minh với thực thể ngoài dùng hệ mã hóa
công khai. .............................................................................................................................41
Hình 37: Sơ đồ xác thực dữ liệu tĩnh (SDA). ........................................................................42
Hình 38: Sơ đồ xác thực dữ liệu động ngoại tuyến (DDA). ...................................................43
Hình 39: Sơ đồ phân phối chứng chỉ khóa công khai. ...........................................................44
Hình 40: Sơ đồ quy trình sản xuất, phát hành thẻ thông minh. ..............................................47
Hình 41: Quy trình phát hành thẻ thông minh. ......................................................................48
Hình 42: Luồng xử lý ghi dữ liệu vào thẻ thông minh. ..........................................................49
Hình 43: Hệ thống cá thể hóa thẻ thông minh tự động MPR3000..........................................49
Hình 44: Trống quay tự động có gắn 12 đầu PWF. ...............................................................50
Hình 45: Các bộ phận của MPR3000. ...................................................................................51
Hình 46: Mô hình các thiết bị gắn trên các trạm của MPR3000.............................................52
Hình 47: Hệ thống DC9000 với 5 module được sử dụng.......................................................54
Hình 48: Sơ đồ khối hệ thống đọc/ghi thẻ chip. ....................................................................54
Hình 49: Sơ đồ bố trí của 7 trạm đọc/ghi thẻ thông minh. .....................................................55
Hình 50: Sơ đồ bo mạch điều khiển các trạm đọc/ghi thẻ chip. .............................................56
Hình 51: Sơ đồ bo mạch điều khiển tương ứng của 7 trạm đọc/ghi thẻ chip. .........................56
Hình 52: Sơ đồ tổng quát quy trình chuẩn bị dữ liệu theo chuẩn EMV. .................................57
Hình 53: Tổng quan định dạng dữ liệu để cá thể hóa thẻ thông minh. ...................................57
Hình 54: Định dạng dữ liệu cá thể hóa cho một ứng dụng cụ thể trên thẻ. .............................58
Hình 55: Chương trình biên dịch CPU ColdFire dùng trong 12 đầu PWF trên máy MPR3000.
.............................................................................................................................................58
Hình 56: Sơ đồ hoạt động tổng quát của SPMWIN. ..............................................................58
Hình 57: Sơ đồ quản lý luồng dữ liệu đầu vào của SPMWIN................................................59
Hình 58: Sơ đồ các module trên MPR3000 được quản lý bở SPMWIN.................................59
vii
Hình 59: Luồng dữ liệu cho máy in Laser. ............................................................................60
Hình 60: Luồng dữ liệu cho máy in Inkjet ............................................................................60
Hình 61: Luồng dữ liệu cho 12 đầu đọc PWF ghi/đọc thẻ .....................................................61
Hình 62: Sơ đồ hoạt động logic tổng quát của SCPM. ..........................................................62
Hình 63: Môi trường phát hành thẻ từ truyền thống. .............................................................63
Hình 64: Môi trường phát hành thẻ EMV. ............................................................................63
Hình 65: Định dạng chuẩn các bản ghi dữ liệu sản xuất thẻ EMV. ........................................64
Hình 66: Giao diện chương trình MK EMV QC Tools..........................................................65
Hình 67: Định nghĩa các EMV profile templates ..................................................................65
Hình 68: Máy in Condor - Giải pháp cá thể hóa thẻ chip để bàn............................................66
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ả.
2
Ư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.
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ế,…
3
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ý.
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].
7
Một lệnh APDU luôn có lệnh R-APDU tạo thành cặp tương ứng.
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
P3
SW1 SW2
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
DATA with length lgth
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
lgth (='00')
SW1 SW2
'9F' lgth1
8
GET RESPONSE
CLA INS
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
SW1 SW2
lgth
'9F' lgth1
GET RESPONSE
CLA INS
P1
P2
P3
lgth2
DATA with lgth2 £ lgth1
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.
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ự):
'00'
9
Đả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.
- 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
10
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].
-------------------------------------------------------------------------------------------
11
Chương 2 - HỆ ĐIỀU HÀNH THẺ THÔNG MINH
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.
12
§ The Multos
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.
- Xem thêm -