Tải bản đầy đủ (.pdf) (111 trang)

Thẻ thông minh và ứng dụng trong viễn thông

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.04 MB, 111 trang )



Thẻ thông minh và ứng dụng trong viễn thông






Thầy giáo hướng dẫn: PGS TS Trịnh Nhật Tiến
Học viên: Vũ Hoàng - K10T3



1

MỤC LỤC
MỤC LỤC 1
LỜI CẢM ƠN 4
CÁC TỪ VIẾT TẮT 5
Chƣơng 1. TỔNG QUAN VỀ THẺ THÔNG MINH 7
1.1 KHÁI NIỆM THẺ THÔNG MINH 7
1.2 CÁC LOẠI THẺ CƠ BẢN 7
1.2.1 Thẻ nhớ và thẻ chip 7
1.2.2 Thẻ tiếp xúc và thẻ không tiếp xúc 8
1.3 PHẦN CỨNG CỦA THẺ THÔNG MINH 9
1.3.1 Các điểm tiếp xúc 9
1.3.2 Bộ xử lý trung tâm trong thẻ thông minh 11
1.3.3 Bộ đồng xử lý trong thẻ thông minh 11
1.3.4 Hệ thống bộ nhớ của thẻ thông minh 12
1.4 TRUYỀN THÔNG VỚI THẺ THÔNG MINH 13


1.4.1 Thiết bị chấp nhận thẻ và các ứng dụng máy chủ 13
1.4.2 Mô hình truyền thông với thẻ thông minh 13
1.4.3 Giao thức APDU 14
1.4.4 Mã hoá bit (bit encoding) 17
1.4.5 Giao thức TPDU 17
1.4.6 Thông điệp trả lời để xác lập lại (ATR ) 18
Chƣơng 2. HỆ ĐIỀU HÀNH THẺ THÔNG MINH 19
2.1 CÁC FILE HỆ THỐNG TRONG THẺ THÔNG MINH 19
2.1.1 Thư mục gốc (Master File - MF) 19
2.1.2 Thư mục chuyên dụng (Dedicated File - DF) 20
2.1.3 File cơ bản (Elementary File - EF) 20
2.2 TRUY CẬP FILE 22


2
2.2.1 Định danh file 22
2.2.2 Các phương thức lựa chọn file 22
2.2.3 Điều kiện truy cập file 23
2.3 CÁC CHỨC NĂNG CỦA SIM 24
2.4 CẤU TRÚC FILE THẺ SIM 27
2.5 GIAO DIỆN SIM - THIẾT BỊ DI ĐỘNG (ME) 28
2.6 CÁC THỦ TỤC LIÊN QUAN ĐẾN BỘ ỨNG DỤNG SIM 30
( SIM APPLICATION TOOLKIT ) 30
Chƣơng 3.XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH 32
3.1 CÁC THUẬT TOÁN MÃ HOÁ 32
3.1.1 Mã hoá khoá đối xứng 33
3.1.2 Mã hoá khoá công khai 39
3.2 GIAO THỨC XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH 42
3.2.1 Giao thức xác thực với thẻ thông minh 42
3.2.2 Bảo toàn dữ liệu với thẻ thông minh 45

3.2.3 Bảo toàn và bảo mật dữ liệu với thẻ thông minh 47
3.2.4 Thiết lập khoá phiên với thẻ thông minh 49
(Global System for Mobile Communications) 50
3.3.1 Cơ chế an ninh trong mạng GSM 50
3.3.2 Các kỹ thuật bảo đảm an ninh 52
3.4 THUẬT TOÁN BẢO ĐẢM AN NINH TRONG MẠNG GSM 55
3.4.1 Mục đích bảo đảm an ninh trong mạng GSM 55
3.4.2 Đặc điểm an ninh trong mạng GSM 55
3.4.3 Các thuật toán xác thực và bảo mật 61
Chƣơng 4.CHƢƠNG TRÌNH GHI DỮ LIỆU VÀO THẺ THÔNG MINH TRÊN
MÁY MPR3000 72
4.1 QUY TRÌNH LÀM THẺ 72
4.2 HỆ THỐNG MPR3000 GHI DỮ LIỆU VÀO THẺ THÔNG MINH 74
4.2.1 Giới thiệu hệ thống MPR3000 74


3
4.2.2 Các đặc tính ưu việt của MPR3000 77
4.2.3 Đặc điểm chương trình ghi dữ liệu vào thẻ thông minh PersoAppMPR3K
79
4.3 CHƢƠNG TRÌNH GHI DỮ LIỆU VÀO THẺ THÔNG MINH 80
4.3.1 Bộ công cụ phát triển 80
4.3.2 Chức năng PersoAppMPR3K 88
4.3.3 Các kết quả ban đầu của PersoAppMPR3K 90
4.3.4 Khai thác và định hướng phát triển PersoAppMPR3K 91
KẾT LUẬN 93
PHỤ LỤC 94
TÀI LIỆU THAM KHẢO 109




4



LỜI CẢM ƠN

Lời đầu tiên, tôi xin được gửi lời cảm ơn chân thành nhất tới
thầy giáo PGS TS Trịnh Nhật Tiến - người luôn chỉ bảo, hướng dẫn
tôi hết sức nghiêm khắc và tận tình, cung cấp những tài liệu quý báu,
giúp đỡ tôi trong suốt quá trình học tập và xây dựng luận văn.
Tôi cũng xin được gửi lời cảm ơn các thầy cô giáo Khoa Công
nghệ thông tin - trường Đại học Công nghệ, Ban lãnh đạo cùng các
đồng nghiệp tại công ty thẻ thông minh MK, các bạn học viên lớp
Cao học CNTT.
Xin được cảm ơn gia đình đã luôn đứng bên tôi trong những lúc
khó khăn nhất, đã tạo điều kiện, giúp đỡ tôi về vật chất cũng như
luôn cổ vũ tôi trong suốt quá trình học tập và làm luận văn này.



5
CÁC TỪ VIẾT TẮT


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
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
CPU: Central Processing Unit: bộ xử lý trung tâm
C-APDU: Command - Application Protocol Data Units: APDU lệnh
CBC: Cipher Block Chaining
CEPT: Conference of European Post and Telecommunications Administrations:
Hội nghị Quản trị Bưu chính – Viễn thông Châu Âu
CLA: Class: “lớp” chỉ thị
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
INS: Instruction: “mã” chỉ thị
ISO: International Standards Organization: Hiệp hội tiêu chuẩn quốc tế
ICV: Initial Chaining Value: giá trị chuỗi khởi tạo
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



6
MSC: Mobile Switching Centres: trung tâm chuyển mạch di động
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
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
TPDU: Transportation Protocol Data Units: Đơn vị dữ liệu giao thức truyền thông
TM: Transport Mechanism: kiến trúc giao vận
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
VLR: Visitor Location Register: đăng ký vùng viếng thăm


7

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 phần 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ẻ.

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.


8


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ẻ.
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…
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 cách phổ biến hiện nay và 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.
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ừ.


9

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.

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



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.
 Đ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ũ.
V
CC

RST
CLK
RFU
RFU

V
pp

I/O
O
GND


10
 Đ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.


11

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ý trong thẻ 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.


12

1.3.4 Hệ thống bộ nhớ của thẻ thông minh



Thẻ thông minh thường gồm ba loại bộ nhớ ROM, EEPROM, RAM.
 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).
 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.


13

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 thẻ đọc 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 Units - đơ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ẻ.


14

1.4.3 Giao thức APDU


Đượ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).
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
P3
Data with length P3

Cấu trúc APDU phản hồi:

Data with length Le
SW1
SW2

Header 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.


15
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
SW1
SW2





















Lgth







'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




















lgth (='00')







'9F'
lgth
1



GET RESPONSE












CLA
INS
P1
P2
P3


DATA with length lgth
2
 lgth

1

SW1
SW2




















lgth
2









'90'
'00'

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


CLA
INS
P1
P2
P3
DATA with length lgth



SW1
SW2





















Lgth







'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'
lgth
1



GET RESPONSE












CLA
INS
P1
P2
P3



DATA with length lgth
2
 lgth
1

SW1
SW2




















lgth
2









'90'
'00'



16

 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.



17
1.4.4 Mã hoá bit (bit encoding)

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



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


1.4.5 Giao thức TPDU

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.
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.
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.



18

Ta xem xét đặc điểm của hai giao thức này.
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

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

T = 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.
o Lệnh và dữ liệu trong trường thông tin.
o 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 (ATR )

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). 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ẻ 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 …


19

Chương 2. 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.
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 về mã ứng dụng của
người dùng.

2.1 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.1.1 Thƣ mục gốc (Master File - MF)

Thư mục gốc (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ụ điện thoại di động). MF không
thể bị xoá khi thẻ còn hoạt động.


20

2.1.2 Thƣ mục chuyên dụng (Dedicated File - DF)

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.
Các DF ở mức đầu tiên tồn tại trong thẻ SIM như sau:
• DFGSM, chứa các ứng dụng cho GSM và DCS 1800.
• DFIS41, chứa ứng dụng cho IS41.
• DFTELECOM, chứa các dịch vụ dành cho viễn thông.
• DFFP-CTS, chứa các ứng dụng cho phần cố định CTS.
Tất cả các thư mục này là mức con ngay dưới của MF.

2.1.3 File cơ bản (Elementary File - EF)


Những file này 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).




21

 EF trong suốt (Transparent EF)
Đó 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í đó. Header của file trong suốt biểu thị độ dài chi tiết của file.

 EF cố định tuyến tính (Linear fixed EF)
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 ISO 7816 – 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.

 EF nối vòng (Cyclic EF)
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 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.
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 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.


22

2.2 TRUY CẬP FILE

2.2.1 Định danh file

Định danh được dùng để đánh địa chỉ mỗi thư mục/file trong thẻ SIM. Đị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 thư mục/file. Định danh file cho GSM như sau:
 Thư mục gốc : 3F
 Mức đầu tiên của thư mục chuyên dụng : 7F
 Mức thứ hai của thư mục chuyên dụng : 5F
 File cơ bản dưới mức MF : 2F
 File cơ bản dưới mức DF đầu tiên : 6F
 File cơ bản dưới mức DF thứ hai : 4F

2.2.2 Các phƣơng thức lựa chọn file

Các thiết bị di động được kích hoạt, thư mục gốc sẽ được chọn và trở thành thư
mục hiện tại. Mỗi thư mục/file của SIM 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 thư mục/file thành công. Từ
thư mục/file hiện tại, các thư mục/file sau có thể được lựa chọn:

 Thư mục gốc (MF).
 Thư mục chuyên dụng hiện tại.
 Thư mục chuyên dụng mức cha của thư mục hiện tại.
 Bất kỳ thư mục chuyên dụng nào là mức con liền kề của thư mục chuyên
dụng cha của thư mục hiện tại.
 Bất kỳ thư mục 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 thư mục/file được thực hiện bởi dùng định danh của
thư mục/file được lựa chọn


23

2.2.3 Điều kiện truy cập file

Để lựa chọn một file của thẻ SIM, 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 cơ bản, thư mục gốc và thư mục
chuyên dụng không có điều kiện truy cập.
Các điều kiện truy cập được định nghĩa cho các file của SIM như sau:
 ALWAYS : Không có giới hạn về chức năng được thực hiện.
 CHV1 :
Chức năng này chỉ được thực hiện khi giá trị CHV1 được nhập đúng, hoặc
CHV1 bị vô hiệu (disable), hay lệnh UNBLOCK CHV1 đã được thực hiện
thành công ở bước trước.
 CHV2 :
Được thực hiện khi giá trị CHV2 được nhập đúng, hoặc khi lệnh
UNBLOCK CHV2 đã được thực hiện thành công.
 ADM :
Xác định thực hiện yêu cầu này là trách nhiệm có thẩm quyền quản trị.
 NEVER :
Những chức năng này chỉ được thực hiện bên trong SIM. Không có cách

nào được thực hiện qua giao diện MÁY – SIM (ME – SIM ).

Các mức truy cập được thực hiện cho thẻ SIM:
 ALWAYS : mức 0
 CHV1 : mức 1
 CHV2 : mức 2
 Mức 3 được dành cho tương lai.
 Mức 4 đến 14 là mức cho ADM.
 Mức 15 là mức: NEVER


24

2.3 CÁC CHỨC NĂNG CỦA SIM

Chuẩn GSM 11.11 quy định một số lệnh bắt buộc để quản lý file hệ thống của
thẻ SIM trong mạng GSM. 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.

 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 sẽ 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 lệnh cập nhật hoặc lệnh tăng xử lý.
Đầ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, chỉ thị CHV kích hoạt/vô hiệu, trạng thái CHV và dữ
liệu GSM đặc trưng khác.
 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 STATUS:
Lệnh này cho phép SIM cung cấp thông tin liên quan đến thư mục hiện tại.
Lệnh không làm ảnh hưởng tới thư mục hiện tại. Đầu ra là định danh file, tổng
dung lượng bộ nhớ còn trống, chỉ thị CHV kích hoạt/vô hiệu, trạng thái CHV và
các thông tin GSM liên quan khác. Lệnh STATUS không yêu cầu đầu vào. Lệnh
này được sử dụng phổ biến trong kích hoạt SIM, để chỉ ra rằng thẻ muốn gửi một
lệnh ứng dụng SIM tới máy điện thoại.

 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.

×