ISO 7816-3 Tín hiệu điện và giao thức truyền dẫn Xác định đặc tính của tín hiệu điện trao đổi giữa thẻ và thiết bị đầu cuối và hai giao thức truyền thông: T=0 Giao thức trao đổi ký tự bá
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 3MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH SÁCH HÌNH VẼ vii
DANH SÁCH BẢNG ix
KÝ HIỆU VÀ VIẾT TẮT x
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ THẺ THÔNG MINH 4
1.1 TỔNG QUAN THẺ THÔNG MINH 4
1.1.1 Giới thiệu thẻ thông minh 4
1.1.2 Phân loại thẻ thông minh 5
1.1.3 Chuẩn công nghiệp 9
1.1.4 Lĩnh vực ứng dụng 11
1.2 CẤU TẠO THẺ THÔNG MINH 14
1.2.1 Cấu trúc vật lý 14
1.2.2 Giao tiếp truyền thông 16
1.2.3 Cấu trúc file 29
1.2.4 Lệnh thao tác với thẻ 36
1.3 THẺ THÔNG MINH VÀ HẠ TẦNG KHÓA CÔNG KHAI 39
1.4 VẤN ĐỀ XÁC THỰC NGƯỜI DÙNG 42
1.4.1 Định danh người dùng 42
1.4.2 Kiểm tra số bí mật 43
Trang 41.4.3 Sử dụng đặc trưng sinh trắc học 44
KẾT CHƯƠNG 48
Chương 2 BÀI TOÁN NHẬN DẠNG VÂN TAY 49
2.1 HỆ THỐNG SINH TRẮC HỌC 49
2.1.1 Nhận dạng sinh trắc học 49
2.1.2 Hệ thống sinh trắc học 50
2.1.3 Lỗi trong hệ thống sinh trắc học 52
2.2 HỆ THỐNG XÁC MINH SỬ DỤNG VÂN TAY 59
2.2.1 Phân tích và biểu diễn vân tay 59
2.2.2 Sử dụng vân tay trong bài toán xác minh 61
2.2.3 Mô hình hệ thống xác minh 64
2.3 NÂNG CAO CHẤT LƯỢNG ẢNH 65
2.3.1 Lựa chọn thuật toán nâng cao chất lượng ảnh 65
2.3.2 Một số khái niệm 69
2.3.3 Phân mảnh 69
2.3.4 Chuẩn hóa ảnh 70
2.3.5 Ước lượng hướng vân cục bộ 71
2.3.6 Ước lượng tần suất vân cục bộ 72
2.3.7 Lọc Gabor 75
2.3.8 Nhị phân hóa 77
2.3.9 Làm mảnh 77
2.4 TRÍCH CHỌN ĐẶC TRƯNG VÀ HẬU XỬ LÝ 80
2.4.1 Trích chọn đặc trưng 80
2.4.2 Hậu xử lý 81
Trang 52.5 ĐỐI SÁNH VÂN TAY DỰA TRÊN ĐẶC TRƯNG 84
2.5.1 Bài toán đối sánh vân tay 84
2.5.2 Đối sánh dựa trên chi tiết 86
KẾT CHƯƠNG 94
Chương 3 MÔ HÌNH XÁC THỰC THẺ THÔNG MINH SỬ DỤNG KỸ THUẬT NHẬN DẠNG VÂN TAY 96
3.1 THÀNH PHẦN HỆ THỐNG 96
3.2 KHẢ NĂNG TÍCH HỢP 101
3.2.1 Đối sánh trên máy chủ/lưu trên máy chủ (a) 101
3.2.2 Đối sánh trên máy chủ/lưu trên thẻ (b) 102
3.2.3 Đối sánh trên PC/lưu trên PC (c) 102
3.2.4 Đối sánh trên PC/lưu trên thẻ (d) 102
3.2.5 Đối sánh trên thiết bị thu/lưu trên thiết bị thu (e) 103
3.2.6 Đối sánh trên thiết bị thu/lưu trên thẻ (f) 103
3.2.7 Đối sánh trên thẻ/lưu trên thẻ (g) 104
3.3 GIẢI PHÁP ĐỀ XUẤT 105
3.3.1 Giải pháp sử dụng thẻ thông minh TOC 108
3.3.2 Giải pháp sử dụng thẻ thông minh SOC 117
KẾT CHƯƠNG 123
Chương 4 THỬ NGHIỆM GIẢI PHÁP 124
4.1 THỬ NGHIỆM ỨNG DỤNG 124
4.1.1 Mô hình thử nghiệm 124
4.1.2 Phân hệ phát hành thẻ 125
4.1.3 Phân hệ xác thực người dùng 126
4.1.4 Kết quả thử nghiệm 127
Trang 64.2 ĐÁNH GIÁ GIẢI PHÁP 128
4.2.1 Lợi ích cơ bản hai giải pháp đề xuất 128
4.2.2 Ưu nhược điểm hai giải pháp đề xuất 138
KẾT CHƯƠNG 140
KẾT LUẬN 141
TÀI LIỆU THAM KHẢO 142
Trang 7DANH SÁCH HÌNH VẼ
Hình 1 Sơ đồ phân loại thẻ 5
Hình 2 Cấu trúc chip vi xử lý 7
Hình 3 Cấu trúc thẻ tiếp xúc 7
Hình 4 Cấu trúc thẻ không tiếp xúc 8
Hình 5 Cấu trúc thẻ kết hợp 8
Hình 6 Cấu trúc vật lý của thẻ thông minh 14
Hình 7 Cấu trúc bộ xử lý trong thẻ thông minh 16
Hình 8 Truyền dữ liệu khởi tạo giữa thẻ thông minh và Terminal 17
Hình 9 Biểu đồ trạng thái của Terminal và thẻ thông minh 19
Hình 10 Trình tự reset của Terminal 20
Hình 11 Byte vận chuyển và phản hồi lỗi trong giao thức T=0 22
Hình 12 Cấu trúc yêu cầu của giao thức T=0 22
Hình 13 Kiến trúc giao tiếp ứng dụng 26
Hình 14 Cấu trúc APDU lệnh 27
Hình 15 Cấu trúc APDU trả lời 28
Hình 16 Mã trả về theo ISO/IEC 7816-4 28
Hình 17 Cấu trúc cấp bậc hệ thống file của thẻ thông minh 29
Hình 18 Cấu trúc file trong suốt 31
Hình 19 Cấu trúc file tuyến tính, chiều dài cố định 31
Hình 20 Cấu trúc file tuyến tính, chiều dài biến đổi 31
Hình 21 Cấu trúc file tuần hoàn 32
Hình 22 Tên DF trong mối quan hệ với AID 33
Hình 23 Mô hình hệ thống PKI 39
Hình 24 Quá trình kiểm tra PIN được nhập bởi terminal hợp lệ 44
Hình 25 Phân loại các phương pháp sinh trắc học 46
Hình 26 Một vài đặc trưng sinh trắc học 49
Hình 27 Lược đồ khối các quá trình tham gia, xác minh và định danh 51
Hình 28 FMR và FNMR với ngưỡng t 54
Hình 29 FMR(t), FNMR(t), các điểm EER, ZeroFNMR và ZeroFMR 56
Hình 30 Điểm thực thi tiêu biểu trong các ứng dụng khác nhau 57
Hình 31 Vân lồi và lõm trên một ảnh vân tay 59
Hình 32 Mẫu vân tay dạng gấp khúc 59
Hình 33 Vân tay ứng với năm phân lớp chính 60
Hình 34 Các dạng đặc trưng vân phổ biến 60
Hình 35 Tính đối ngẫu của đặc trưng kết thúc và rẽ nhánh 61
Hình 36 Cấu trúc hệ thống xác minh sử dụng vân tay 64
Hình 37 Thuật toán nâng cao chất lượng ảnh 68
Trang 8Hình 38 Hướng tại điểm vân trong một ảnh vân tay 71
Hình 39 Phép chiếu thực hiện tìm tần suất vân trong ảnh vân 73
Hình 40 Cửa sổ định hướng và x-signature 74
Hình 41 Lọc Gabor đối xứng chẵn trong không gian 75
Hình 42 Các điểm thỏa mãn điều kiện xóa 78
Hình 43 Tám điểm lân cận tại một điểm vân P 80
Hình 44 Ví dụ về điểm vân kết thúc và điểm vân rẽ nhánh 81
Hình 45 Ví dụ về các cấu trúc đặc trưng sai 81
Hình 46 Ví dụ về xác minh điểm kết thúc hợp lệ T01 = 1 82
Hình 47 Ví dụ quá trình xác minh điểm rẽ nhánh, kết thúc không hợp lệ (a) T01 = 1 ^ T02 = 1 ^ T03 = 0 (b) T01 = 0 83
Hình 48 Ví dụ quá trình xác minh điểm rẽ nhánh T01 = 1 ^ T02 = 1 ^ T03 = 1 83
Hình 49 Các dấu vân tay thu được của cùng một ngón tay không đối sánh được do nhiễu phi tuyến (trên) và điều kiện da (dưới) 85
Hình 50 Sắp hàng của đường vân đầu vào và đường vân mẫu 87
Hình 51 Hộp bao 90
Hình 52 Các thành phần cơ bản cấu thành hệ thống sinh trắc học 100
Hình 53 Hệ thống gồm hai thành phần: máy chủ và hệ thống đầu cuối 106
Hình 54 Khả năng giả mạo đối với thẻ thông minh 107
Hình 55 Chứng chỉ số X.509 cấp cho người dùng USRi bởi CA 109
Hình 56 Cấu trúc mẫu vân lưu trữ trên thẻ thông minh 109
Hình 57 Ba giai đoạn trong quá trình xác thực 111
Hình 58 Xác minh thông tin lưu trên thẻ là hợp lệ 111
Hình 59 Quá trình xác thực với thẻ thông minh dạng TOC 115
Hình 60 Mô hình tổng thể giải pháp đề xuất sử dụng thẻ TOC 116
Hình 61 Chứng chỉ số X.509 cấp cho người dùng USRi bởi CA 118
Hình 62 Cấu trúc mẫu vân lưu trữ trên thẻ thông minh 118
Hình 63 Xác minh thông tin lưu trên thẻ là hợp lệ 119
Hình 64 Quá trình xác thực với thẻ thông minh dạng SOC 121
Hình 65 Mô hình tổng thể giải pháp đề xuất sử dụng thẻ SOC 122
Hình 66 Cấu trúc hệ thống thử nghiệm 124
Hình 67 Mức độ an toàn tương ứng cơ chế xác thực 131
Trang 9DANH SÁCH BẢNG
Bảng 1 Các đặc tả thuộc chuẩn ISO 7816 10
Bảng 2 Định nghĩa các tiếp xúc của thẻ thông minh 18
Bảng 3 Trạng thái của tiếp xúc trước khi reset thẻ 19
Bảng 4 Các thành phần của khối giao thức T=1 24
Bảng 5 Một số định danh file dành riêng 32
Bảng 6 Đặc tính giá trị của CN 80
Bảng 7 Sự kết hợp giữa thành phần lưu trữ và thành phần đối sánh 101
Bảng 8 Tính năng bảo mật của thẻ thông minh 132
Trang 10KÝ HIỆU VÀ VIẾT TẮT
PKI Public key infracture
PIN Personal indentity number
CA Certificate authority
FAR Fail acceptance rate
FRR Fail rejection rate
FMR False Match Rate
FNMR False Non-Match Rate
TOC Template on card
SOC System on card
CDROM Compaq Disk Read Only Memory
WORM Write One Read Multi Time
CAD Card Acceptance Device
CHV Card Holder Value
Trang 11MỞ ĐẦU
Công nghệ thẻ thông minh đã phát triển được hơn 20 năm Ứng dụng đầu tiên của thẻ thông minh trên thị trường là cho hệ thống điện thoại Khi chi phí sản xuất thẻ giảm cũng đồng nghĩa với thị trường ứng dụng của thẻ thông minh được mở rộng Thẻ thông minh được mong đợi sử dụng trong nhiều ứng dụng và đặc biệt trong các ứng dụng liên quan tới bảo mật như quản lý truy nhập, đăng nhập hệ thống, dịch vụ đảm bảo an toàn thư gửi và nhận… Thẻ thông minh được coi là giải pháp tốt cho nhiều lĩnh vực có yêu cầu bảo mật cao, nhưng bản thân việc xác thực quyền sở hữu thẻ cũng là vấn đề cần được quan tâm
Thông thường, trong một ứng dụng thẻ thông minh, xác thực người sở hữu dựa trên PIN Tuy nhiên xác thực dựa trên PIN không phải là một cách thuận tiện đặc biệt khi người dùng có một số lượng lớn PIN và mật khẩu cần nhớ Người dùng có thể quên số PIN và do đó khi cố gắng sử dụng thẻ sau một vài lần thất bại, thẻ sẽ bị khóa Khi các kỹ thuật nhận dạng sinh trắc ngày càng trở nên hoàn thiện, sẽ ngày càng có nhiều kỹ thuật nhận dạng được ứng dụng vào tiến trình xác thực thẻ thông minh Nhiều công ty đã bắt đầu sử dụng kỹ thuật này trong thị trường thương mại như máy ATM Trong tương lai gần, nhận dạng sinh trắc sẽ được tích hợp vào hệ điều hành thẻ
và khi đó người dùng có thể sử dụng kết hợp cả xác thực PIN và xác thực sinh trắc
Tìm hiểu và xây dựng giải pháp xác thực dựa trên kỹ thuật sinh trắc là bài toán hay
và đang là mục tiêu nghiên cứu của nhiều đơn vị trong và ngoài nước Trong nước ta, chưa nhiều công trình nghiên cứu tích hợp thẻ thông minh và kỹ thuật sinh trắc học ứng dụng cho bài toán xác thực cá thể trên mạng công khai Luận văn đề xuất giải pháp kết hợp hai công nghệ thẻ thông minh và sinh trắc học dựa trên tính khả năng đáp ứng của phần cứng, thiết bị tương ứng
Do thời gian hạn chế cũng như điều kiện thực nghiệm còn nhiều khó khăn nên kết quả đạt được còn một vài điểm thiếu sót Tuy vậy luận văn sẽ là một tiền đề tốt cho việc nghiên cứu và phát triển hoàn thiện giải pháp có khả năng đưa ra ứng dụng trong thực tế Đây chính là ý nghĩa thực tiễn và mục tiêu luận văn hướng đến
Trang 12Nội dung luận văn và các vấn đề cần giải quyết
Tìm hiểu cơ sở toán học và các kỹ thuật mã hóa, ký số
Tìm hiểu cơ sở hạ tầng khóa công khai (PKI)
Tìm hiểu công nghệ thẻ thông minh (SmartCard)
Tìm hiểu cơ sở lý thuyết nhận dạng sinh trắc học
Tìm hiểu bài toán nhận dạng vân tay
Đề xuất giải pháp tích hợp giữa thẻ thông minh và bài toán nhận dạng vân tay
Xây dựng các module thử nghiệm và tích hợp hệ thống thử nghiệm
Nhận xét, đánh giá mô hình giải pháp, tính khả thi của giải pháp trong thực tiễn
Phương pháp nghiên cứu
Nghiên cứu tài liệu khoa học, ứng dụng
Tham khảo ý kiến của các chuyên gia
Tìm kiếm thông tin công nghệ tương tự
Cấu trúc luận văn được chia thành bốn chương
Giới thiệu các nội dung, kiến thức cơ bản về thẻ thông minh Nội dung của chương sẽ giới thiệu khái quát về thẻ thông minh, cấu trúc vật lý, cấu trúc phần mềm Đánh giá cơ chế xác thực sử dụng PIN và giới thiệu phương pháp thay thế sử dụng kỹ thuật xác thực sinh trắc học Ngoài ra hạ tầng khóa công khai cũng được đề cập tới cung cấp cái nhìn tổng quan nhất về các công nghệ sẽ sử dụng như: chứng chỉ số, ký số, mã hóa
Trang 13 Chương 2: Bài toán nhận dạng vân tay
Nội dung của chương sẽ tập trung tìm hiểu bài toán nhận dạng vân tay Các bước trong quá trình nhận dạng vân tay sẽ được mô tả chi tiết: quá trình thu nhận vân tay, lưu trữ vân tay tới các quá trình tiền xử lý ảnh, trích chọn đặc trưng và cuối cùng là giai đoạn đối sánh vân tay Cuối chương này sẽ đề cập tới một số vấn đề trong quá trình thiết kế một hệ thống nhận dạng vân tay nhằm phục vụ cho việc xây dựng hệ thống tích hợp trong phần sau
vân tay
Đề xuất giải pháp xác thực sử dụng kỹ thuật nhận dạng sinh trắc học Nội dung chương cũng sẽ đề cập tới một vài giải pháp xác thực sử dụng các thuật toán đối sánh khác nhau Từ đó lựa chọn giải pháp phù hợp nhất với ứng dụng sử dụng thẻ: đó là các tính chất như khả năng xác thực nhanh, chính xác Các vấn đề bảo mật của hệ thống tích hợp cũng được đề cập nhằm đưa ra hướng nghiên cứu trong tương lai
Đưa ra các đánh giá nhận xét đối với giải pháp xác thực thẻ thông minh đã đề xuất trong chương hai và chương ba Mô hình hệ thống thử nghiệm được đề xuất và đánh giá các kết quả đạt được
Trang 14Chương 1 TỔNG QUAN VỀ THẺ THÔNG MINH
1.1 TỔNG QUAN THẺ THÔNG MINH
1.1.1 Giới thiệu thẻ thông minh
Thẻ thông minh (smartcard) là một tấm thẻ nhựa gắn chip vi xử lý Thẻ thông minh có bề ngoài giống thẻ tín dụng thông thường, ngoại trừ phần tiếp xúc bằng kim loại (chỉ có ở thẻ contact), nhưng những ứng dụng của thẻ lại hoàn toàn khác Không giống như những chức năng ở thẻ ngân hàng và thẻ tín dụng thông thường, thẻ thông minh có thể được dùng làm ví điện tử để giữ tiền điện tử Với một phần mềm phù hợp,
nó còn có thể được dùng làm thẻ kiểm soát truy nhập an toàn, từ việc ra vào cửa cho đến việc truy cập máy tính
Thẻ thông minh được định nghĩa là “thẻ tín dụng” có gắn thêm một “bộ não”, mà
bộ não là một con chip máy tính nhỏ Nhờ “bộ não được gắn thêm” này mà thẻ thông
minh còn được gọi bằng cái tên thẻ chip hoặc thẻ mạch tích hợp (IC) Dù là loại thẻ
thông minh nào, dung lượng bộ nhớ cũng đều lớn hơn nhiều so với thẻ vạch từ Tổng dung lượng bộ nhớ của thẻ vạch từ chỉ là 125 bytes, trong khi dung lượng của thẻ thông minh có thể từ 1K bytes cho tới 64K bytes Nói cách khác, dung lượng bộ nhớ của thẻ thông minh có thể lớn gấp 500 lần thẻ vạch từ
Rõ ràng dung lượng bộ nhớ lớn là một trong những ưu điểm của thẻ thông minh, nhưng đặc điểm quan trọng bậc nhất của thẻ lại nằm ở chỗ dữ liệu lưu giữ trong thẻ được bảo vệ an toàn khỏi sự truy cập hoặc thay đổi trái phép.Trong thẻ thông minh, việc truy cập vào nội dung bộ nhớ do một mạch logic an toàn gắn trong thẻ kiểm soát
Vì việc truy cập vào dữ liệu chỉ có thể được thực hiện thông qua một giao diện liên hoàn do hệ điều hành và hệ logic an toàn kiểm soát, nên dữ liệu mật được lưu trong thẻ
sẽ tránh được sự truy cập trái phép từ bên ngoài Dữ liệu mật này chỉ có thể được xử lý nội bộ thông qua bộ vi xử lý
Nhờ đặc tính kết nối không liên tục và tính bảo mật cao của thẻ thông minh nên khó có thể lấy giá trị của thẻ hoặc chèn thông tin trái phép vào thẻ Chính vì vậy thẻ thông minh rất thích hợp cho việc lưu trữ dữ liệu tiện lợi và an toàn Nếu không được phép của chủ sở hữu, không thể lấy hoặc thay đổi dữ liệu trong thẻ Có thể nói thẻ thông minh giúp nâng cao tính bảo mật và riêng tư cho người sử dụng
Trang 15Như vậy, thẻ thông minh không chỉ đơn thuần là nơi lưu trữ dữ liệu, mà là nơi lưu trữ dữ liệu an toàn, có thể lập trình Microsoft coi thẻ thông minh là cánh tay nối dài của máy tính cá nhân, và là nhân tố chủ chốt trong cơ sở hạ tầng khóa công khai Thẻ gắn bộ vi xử lý lần đầu tiên do hai kỹ sư người Đức phát minh vào năm 1967 Chỉ đến khi Roland Moreno, một nhà báo người Pháp, công bố Bằng sáng chế Thẻ thông minh tại Pháp năm 1974, thẻ mới được biết đến rộng rãi Với những tiến bộ trong công nghệ sản xuất bộ vi xử lý, phí nghiên cứu và sản xuất thẻ thông minh gần đây đã giảm đi đáng kể Năm 1984 đánh dấu một bước phát triển vượt bậc khi Bộ Bưu chính Viễn thông Pháp tiến hành thử nghiệm thành công trên thẻ điện thoại Kể từ đó thẻ thông minh không còn bị ràng buộc vào thị trường thẻ ngân hàng truyền thống, cho
dù vào năm 1997 thẻ điện thoại vẫn chiếm thị phần lớn nhất của thẻ thông minh
Nhờ vào bộ quy chuẩn ISO-7816 được ban hành năm 1987 (quy định tiêu chuẩn giao diện thẻ thông minh áp dụng trên toàn cầu), định dạng thẻ thông minh hiện nay đã được chuẩn hóa Thẻ do các nhà phát hành khác nhau đưa ra đều có thể giao tiếp với máy chủ sử dụng một bộ ngôn ngữ chung
1.1.2 Phân loại thẻ thông minh
Thẻ được chia làm hai nhóm: thẻ “thông minh” và thẻ “không thông minh” Thẻ
“không thông minh” hay còn gọi là thẻ nhớ, chỉ có khả năng lưu trữ thông tin Thẻ
“thông minh” ngoài khả năng như thẻ nhớ, nó còn có khả năng xử lý thông tin Về cơ bản, dựa trên đặc điểm bề ngoài, thẻ “thông minh” có thể được chia ra làm ba nhóm chính là thẻ tiếp xúc, thẻ không tiếp xúc, và thẻ kết hợp Hình dưới đưa ra sự phân loại thẻ dựa trên năng lực xử lý dữ liệu và đặc trưng vật lý của mỗi loại
Thẻ kết hợp
Thẻ chip nhớ
Hình 1 Sơ đồ phân loại thẻ
Trang 16Thẻ không “thông minh” hay còn gọi là thẻ nhớ xuất hiện khá lâu trước khi ra đời thẻ thông minh Thẻ không “thông minh” nhiều khi còn được gọi là thẻ nhớ được chia
là ba loại cơ bản: thẻ từ, thẻ quang và thẻ chip nhớ
Thẻ từ là thẻ sử dụng từ tính để lưu trữ dữ liệu tuy nhiên dung lượng lưu trữ là thấp So với sự phát triển và yêu cầu ngày càng cao của các ứng dụng thì thẻ từ không thể đáp ứng được và dần đi vào thoái trào
Thẻ quang dùng tia laser để đọc và ghi dữ liệu lên thẻ Về cơ bản thẻ quang không gắn chip vi xử lý Công nghệ sử dụng trong thẻ nhớ quang học tương tự như trong đĩa
CD hoặc CDROM Một tấm bảng nhỏ làm từ vật liệu nhạy cảm với tia laser màu ánh kim được dát mỏng gắn trong thẻ được dùng để lưu trữ thông tin Do trên thực tế vật liệu dùng trên thẻ bị đốt cháy trong quá trình ghi dữ liệu nên thẻ được gọi là phương tiện WORM (ghi một lần đọc được nhiều lần), dữ liệu trong thẻ không bị mất đi khi nguồn năng lượng bị cắt
Thẻ chip nhớ là một con chip chỉ có nhiệm vụ lưu thông tin, không có khả năng xử
lý thông tin Thẻ chip nhớ có khả năng lưu trữ lượng thông tin lớn gấp hàng ngàn lần
so với thẻ vạch từ Loại thẻ này trước hết được dùng cho các ứng dụng cơ bản như làm thẻ điện thoại thời kỳ đầu
Ngoài ra còn có một loại thẻ - thẻ PC (Plastic Card) hay còn gọi là thẻ PCMCIA - được gắn bộ vi xử lý hoàn chỉnh như thẻ thông minh, nhưng được sử dụng với mục đích hoàn toàn khác Thẻ PC mang những đặc điểm giống như thẻ thông minh nhưng chúng lại được dùng làm các thiết bị ngoại vi như modem, cần điều khiển hoặc đầu chơi game Thông thường thẻ PC không được coi là thẻ thông minh vì chúng là thiết bị
mở rộng không mang tính cá nhân
Nhóm thẻ “thông minh” có thể được chia thành ba nhóm như đã nói ở trên Thẻ thông minh không tiếp xúc là thẻ có một dây nối ăngten để giúp chuyển phát tín hiệu tới một ăngten thu nhận khác Thẻ thông minh tiếp xúc là thẻ giao tiếp bằng cách đưa thẻ vào một đầu đọc thẻ, chip vi xử lý trong thẻ tiếp xúc trực tiếp với đầu đọc thẻ Thẻ thông minh kết hợp là loại thẻ kết hợp tính năng của thẻ thông minh tiếp xúc và thẻ thông minh không tiếp xúc
Không giống thẻ vạch từ, thẻ thông minh có thể mang tất cả mọi chức năng và thông tin cần thiết trên thẻ Thẻ thông minh có gắn bộ vi xử lý hoàn chỉnh thực hiện nhiều chức năng như năng lực xử lý thông tin, có khả năng mã hóa, bảo mật thông tin hay thực hiện thao tác tính toán phức tạp, và các chức năng xử lý tương tác khác Chỉ
có thẻ chíp mới thực sự đủ “thông minh” để mang lại tính linh hoạt và đa chức năng
mà nền kinh tế được nối mạng hiện nay đòi hỏi
Trang 17Hình 2 Cấu trúc chip vi xử lý
Thẻ tiếp xúc có một vùng tiếp xúc khoảng 1cm2
, vùng tiếp xúc này được chia nhỏ thành các miếng tiếp xúc màu vàng Khi thẻ được đưa vào đầu đọc, chip xử lý thực hiện tiếp xúc với bộ kết nội điện cho phép đọc và ghi thông tin lên chip Thẻ tiếp xúc không có pin; toàn bộ năng lược được cung cấp bởi bộ đọc thẻ
Hình 3 Cấu trúc thẻ tiếp xúc
Thẻ thông minh không tiếp xúc đòi hỏi người sử dụng phải có đầu đọc thẻ Cả đầu đọc và thẻ đều phải có ăngten và đường dẫn không dây được hình thành nhờ sóng radio Thẻ và đầu đọc liên lạc với nhau sử dụng sóng radio Năng lượng cho thẻ không tiếp xúc được lấy từ tín hiệu điện từ do đầu đọc thẻ cung cấp Với thẻ không dùng năng lượng pin, khoảng cách giữa thẻ và đầu đọc thẻ là khoảng hai đến ba inches; đặc điểm này khiến thẻ thông minh trở nên lý tưởng đối với những ứng dụng đòi hỏi phải
có giao tiếp nhanh chóng, thuận tiện
Trang 18Hình 4 Cấu trúc thẻ không tiếp xúc
Việc kết hợp hai loại thẻ thông minh tiếp xúc và không tiếp xúc cho ta một nhóm thẻ thông minh khác là thẻ kết hợp Thẻ kết hợp được phân tách làm hai loại nhỏ hơn
đó là thẻ lai – hybrid - và thẻ kết hợp - combi
Thẻ lai – hybrid card – có hai chip, mỗi chip có một giao diện tiếp xúc và không tiếp xúc riêng Hai chip này không kết nối với nhau, nhưng nhờ có nhiều ứng dụng, loại thẻ lai này đáp ứng nhu cầu của người tiêu dùng và nhà phát hành thẻ
Thẻ kết hợp – combi card – với một chip duy nhất có cả giao diện tiếp xúc và không tiếp xúc, có mức độ an toàn rất cao Vận tải hành khách quy mô lớn và ngân hàng có lẽ sẽ là ngành đầu tiên được hưởng thuận lợi từ công nghệ thẻ kết hợp
Hình 5 Cấu trúc thẻ kết hợp
Thẻ điện thoại ngày nay là dạng thẻ thông minh tiếp xúc, đang ngày càng trở nên thịnh hành ở Tây Âu và châu Á - nơi điện thoại công cộng trả tiền xu đang dần lỗi thời Những tấm thẻ trả tiền trước này đã giúp tăng doanh thu cho các tổng đài điện thoại trả tiền, cho phép nhiều giao dịch cấp cao được thực hiện thông qua điện thoại công cộng và trở thành các phương tiện quảng cáo cũng như làm thành bộ sưu tập cho những người ưa thích sưu tầm Việc thẻ điện thoại trở nên phổ biến đã góp phần khiến người tiêu dùng thích nghi hơn với việc sử dụng thẻ thông minh
Trang 191.1.3 Chuẩn công nghiệp
Việc tạo ra các chuẩn quốc tế và quốc gia cho thẻ thông minh là một yêu cầu bắt buộc đối với việc đưa Thẻ thông minh ứng dụng rộng rãi trong cuộc sống hàng ngày Các chuẩn đặc biệt quan trọng đối với việc mở rộng phạm vi sử dụng của Thẻ thông minh Thẻ thông minh chỉ là một thành phần trong nhiều thành phần của một hệ thống phức tạp Điều này có nghĩa là giao diện giữa Thẻ và phần còn lại của hệ thống phải được đặc tả chính xác và phù hợp với nhau Việc này tất nhiên là có thể làm được cho mỗi hệ thống tuỳ theo từng trường hợp mà không cần quan tâm đến hệ thống khác Tuy nhiên, điều này cũng có nghĩa là các loại Thẻ khác nhau sẽ cần cho các hệ thống khác nhau Người dùng do đó sẽ phải mang nhiều loại Thẻ thông minh cho các ứng dụng Để tránh điều này, cần phải tạo ra được một chuẩn độc lập ứng dụng cho phép Thẻ đa chức năng có thể được phát triển
Dưới đây là một số tổ chức tham gia vào các chuẩn của Thẻ thông minh:
ISO (International Standard Organization)
Chuẩn ISO 7816 là chuẩn quốc tế cho các loại thẻ mạch tích hợp (Thẻ thông minh) dùng tiếp xúc điện Bất kỳ ai muốn hiểu được về mặt kỹ thuật của Thẻ thông minh đều cần phải biết đến ISO 7816 Bảng dưới mô tả một số thành phần con của chuẩn ISO 7816 Có một vài chuẩn con không được đề cập tới bởi không cần thiết cho người lập trình hoặc đang trong quá trình xây dựng
NIST (National Institute of Standards and Technology)
NIST đã xuất bản tài liệu FIPS 140-1, “Yêu cầu bảo mật đối với module mật mã” Tài liệu này liên quan đến khía cạnh an ninh vật lý của chip Thẻ thông minh, được định nghĩa như là một loại module mật mã
Europay, MasterCard và Visa
Europay, MasterCard và Visa đã tạo ra “Đặc tả Thẻ mạch tích hợp cho hệ thống trả tiền” Đặc tả này có mục đích tạo ra một cơ sở kỹ thuật cho Thẻ và việc thực thi của hệ thống lưu trữ giá trị (stored value system)
Microsoft
Microsoft có một chuẩn cho Thẻ thông minh và PC (Personal Computer) là đặc tả PC/SC
CEN và ETSI (European Telecomunications Standards Institute)
CEN và ETSI tập trung chủ yếu vào lĩnh vực viễn thông với GSM SIM cho điện thoại di động
Trang 20ISO 7816-3 Tín hiệu điện và giao
thức truyền dẫn
Xác định đặc tính của tín hiệu điện trao đổi giữa thẻ và thiết bị đầu cuối và hai giao thức truyền thông: T=0 (Giao thức trao đổi ký tự bán công không đồng bộ)
và T=1 (Giao thức trao đổi khối bán công không đồng bộ)
ISO 7816-4 Các lệnh theo chuẩn
công nghiệp cho trao đổi thông tin
Định nghĩa tập lệnh chuẩn và cấu trúc file hệ thống phân cấp
ISO 7816-5 Hệ thống đánh số và
quá trình đăng ký định danh ứng dụng
Xác định tên duy nhất cho ứng dụng
ISO 7816-7 Tập lệnh theo chuẩn
công nghiệp định nghĩa Ngôn ngữ truy vấn thẻ
có cấu trúc (Structured Card Query Language - SCQL)
Định nghĩa tập lệnh cho phép truy xuất
dữ liệu trên thẻ và cấu trúc cơ sở dữ liệu quan hệ
Bảng 1 Các đặc tả thuộc chuẩn ISO 7816
Trang 211.1.4 Lĩnh vực ứng dụng
Lĩnh vực kinh tế - chăm sóc khách hàng
Tháng 3 năm 2000, Visa phát hành một bộ tài liệu nhằm thuyết phục các doanh nghiệp đăng ký tham gia chương trình giải thưởng khách hàng lâu năm của thẻ thông minh Theo chương trình này, mỗi doanh nghiệp sẽ có riêng một chương trình khách hàng lâu năm Một khách hàng khi mua hàng bằng thẻ thông minh Visa, mọi chi tiết sẽ được lưu giữ trên thẻ để phục vụ cho chương trình này Sau đó, khi khách hàng cộng dồn đủ số điểm họ có thể đổi điểm lấy phần thưởng Ưu điểm của thẻ Visa là ở chỗ khách hàng sẽ giành được điểm khi họ dùng thẻ Visa Đối với khách hàng, đó sẽ là điều rất tiện lợi vì họ chỉ phải giữ một thẻ Visa thay vì cả một nắm thẻ
Lĩnh vực tài chính, ngân hàng
Nếu không phải nhét xu vào máy bán hàng tự động bạn sẽ mua nước ngọt và snack thường xuyên như thế nào? “Dùng tiền mặt quả thực hết sức phiền phức”, Donald Gleason, chủ tịch chi nhánh Công ty Thẻ thông minh của tập đoàn Dịch vụ thanh toán điện tử phát biểu Mỗi năm chỉ riêng ở Mỹ các công ty điều khiển máy bán hàng phải chi xấp xỉ 60 tỷ đôla để thu nhận tiền từ máy - một công cụ quá lỗi thời cần mạnh tay dẹp bỏ Giải pháp là nhét tiền vào túi hủy và quẹt diêm Điều này sẽ không xảy ra ngay lập tức, tiền giấy có thể sẽ không biến mất (thậm chí tiền xu cũng không được hủy), nhưng các loại hóa đơn và việc đúc hay in tiền sẽ dần dần bị thay thế bằng các phương thức điện tử tương đương
Tháng 9 năm 1999, hãng American Express tung ra một sản phẩm mới với tên gọi Thẻ Xanh Thẻ Xanh đi kèm với một đầu đọc thẻ thông minh gắn chip miễn phí và một giấy bảo hành an ninh mạng Người ta dự đoán rằng để tiếp thị sản phẩm mới này hãng phải chi tới 45 triệu đôla và hãng cũng hy vọng sẽ tiếp nhận hơn hai triệu tài khoản Visa và Master Card cũng phát triển nhóm thẻ thông minh
Công nghệ thông tin
Thẻ thông minh có thể được sử dụng như một loại chứng minh thư xác thực danh tính người truy cập vào mạng máy tính Hãng IBM đã bán ra đầu đọc thẻ PPCMCIA cho máy tính xách tay Khi cài đặt phần mềm kèm theo, các file có thể được mã hóa và giải mã tự động, căn cứ vào đối tượng truy cập vào máy Mỗi khi thẻ của người sử dụng được đưa vào đầu đọc, các file sẽ tự động mã hóa và giải mã, ngay cả khi người
sử dụng không ý thức được điều đó Nếu ai đó cố gắng truy cập vào một file mà không
có thẻ thông minh hợp lệ, họ sẽ chỉ thấy file bị mã hóa
Trang 22Chính quyền
Tại Mỹ, thẻ thông minh hiện đang được sử dụng để tự động hóa việc thu thập dữ liệu kinh doanh đậu phộng - công việc trước đây vốn rất cồng kềnh và tốn nhiều giấy mực Các văn phòng địa phương USDA phát hành thẻ thông minh cho những nông dân đủ năng lực kinh doanh đậu phộng theo hệ thống hạn ngạch dành cho đậu phộng của chính phủ Mỹ
Thẻ này bao gồm thông tin về người nông dân (hoặc chủ trang trại) như tên, mã trang trại, hạn ngạch đậu phộng của trang trại tính theo cân Anh, thông tin pháp nhân cho khoản vay hỗ trợ vụ thu hoạch và hồ sơ giao dịch
Khi người nông dân vận chuyển đậu phộng đến điểm thu mua, thẻ thông minh sẽ được đưa vào điểm đọc thẻ để quyết định lô đậu phộng này có thể được thu mua theo hạnh ngạch hay một phương thức nào khác hay không Mỗi giao dịch được tiến hành đều được ghi lại trên hệ thống nơi lưu giữ các bản quyết toán trước đó Vào cuối vụ, nông dân đem trả lại thẻ thông minh cho chính quyền địa phương, để thông tin được
xử lý cho phù hợp với thông tin thị trường trước đó đã được truyền từ hệ thống máy tính tại điểm thu mua tới hệ thống máy tính trung tâm của USDA
Năm 1998 lần đầu tiên Bộ Quốc phòng Mỹ tiến hành thử nghiệm thẻ thông minh Khoảng 8.000 thẻ đã được phát cho các sỹ quan Không lực, Hải quân và quân đội Mỹ
và sỹ quan quân đội Thái Lan trong các cuộc tập trận Thẻ chủ yếu được dùng phục vụ cho tự động hóa cập nhật danh sách vận chuyển hàng hóa và nhân sự Ứng dụng này
đã giúp giảm thời gian tải hàng của một máy bay có sức chứa 350 hành khách từ 4 giờ xuống còn 3 giờ 35 phút Đầu đọc thẻ gắn với máy tính xách tay cũng được sử dụng để
dò tìm vị trí của người giữ thẻ
Lĩnh vực truyền thông - hệ thống điện thoại
Thẻ thông minh đã được sử dụng rộng rãi trong ngành viễn thông nhiều năm nay Tính tới tháng 1 năm 2000 có trên 250 triệu thẻ được sử dụng trong ngành điện thoại
di động toàn cầu và trên 100 quốc gia áp dụng thanh toán cho máy điện thoại công cộng bằng thẻ thông minh thay bằng tiền xu
Trong Hệ thống Điện thoại Di động toàn cầu (GSM) thẻ SIM (Subscriber Identity Module) nắm giữ tất cả thông tin về người sử dụng Điều này cho phép thẻ thông minh
có thể được lắp vào bất kỳ một điện thoại nào thuộc mạng GSM và người dùng sẽ bị tính phí sử dụng Bên trong thẻ thông minh cũng có lắp sẵn sổ địa chỉ và bảo mật Vào thời điểm năm 1988, kích cỡ điện thoại di động vẫn còn rất lớn Khi đi du lịch
mà không muốn mang theo một chiếc điện thoại cồng kềnh, người ta có thể mượn hoặc thuê một chiếc điện thoại nếu cần Tất cả những gì người ta phải làm là nhét thẻ thông minh SIM vào máy và phí cuộc gọi sẽ tính vào tài khoản của người dùng
Trang 23Giao thông công cộng
Tháng 12 năm 2001, Cơ quan Vận tải Chicago (CTA) đã ký một hợp đồng với Tập đoàn Cubic Transportation Systems Theo hợp đồng này, Cubic sẽ cung cấp thiết bị liên quan đến thẻ thông minh hỗ trợ cho việc thu giữ vé Dự án sẽ hoàn thành vào cuối năm 2002, với 300.000 thẻ được phát hành
Hệ thống thu giữ vé của Cubic cũng có thể được áp dụng trên toàn hệ thống đường sắt và xe bus của CTA và hệ thống xe bus Pace của khu vực ngoại vi Chicago, biến CTA thành hệ thống vận tải hành khách công cộng đa chi nhánh, đa mô hình đầu tiên tại Mỹ
Định danh, xác thực
Một trong những khối ngành lớn nhất của Mỹ sử dụng thẻ thông minh là định danh trong các trường học Ở Mỹ, gần 1 triệu thẻ thông minh được sử dụng chỉ trong khối trường cao đẳng Điều này có nghĩa là cứ 17 sinh viên lại có một người dùng thẻ Nhiều trường đại học còn dùng thẻ thông minh để định danh sinh viên
Sinh viên có thể dùng thẻ để thanh toán các khoản như giặt là, đồ ăn, phiếu phạt của thư viện Thẻ thông minh còn có thể được dùng như thẻ điện thoại tại Ký túc xá trường đại học Robert Morris
Trang 241.2 CẤU TẠO THẺ THÔNG MINH
1.2.1 Cấu trúc vật lý
Thẻ thông minh có ba thành phần cơ bản giống như tất cả mọi máy tính khác:
Bộ vi xử lý
Bộ nhớ
Các giao tiếp với bên ngoài (input/output)
Để có thể hoạt động, mỗi thẻ cần có nguồn điện (power source) nằm trong Reader (thiết bị dùng để giao tiếp với thẻ) hoặc trong bản thân thẻ Thẻ thông minh có kích thước như một tấm thẻ nhựa PVC thông thường (bản thân thẻ cũng được làm từ PVC hoặc nhựa tổng hợp) và được tích hợp một thành phần vi mạch
Vi mạch này bao gồm một miếng silicon tích hợp chip vi mạch với bộ nhớ và bộ
vi xử lý Thành phần vi mạch có 8 phần tiếp xúc kim loại trên bề mặt, mỗi phần đều được thiết kế theo tiêu chuẩn quốc tế như VCC (cung cấp nguồn điện), RST (Reset bộ
vi xử lý cho thẻ thông minh), CLK (tín hiệu đồng hồ), GND (ground), VPP (lập trình hoặc ghi điện áp), và I/O (Đường vào/ra)
Có hai mặt được thiết kế cho các mục tiêu trong tương lai là 2 mặt RFU Chỉ có I/O và GND là 2 mặt bắt buộc phải có trên một chiếc thẻ để có thể tuân thủ các tiêu chuẩn quốc tế Các mặt khác là tùy chọn
Hình 6 Cấu trúc vật lý của thẻ thông minh
Trang 25Khi thẻ thông minh được đưa vào bộ đọc thẻ ( Card Acceptance Device – CAD) ví
dụ như ở những máy trạm thanh toán, các bề mặt kim loại sẽ tiếp xúc với các khe kim loại phản hồi của CAD, và theo cách đó, bộ phận đọc thẻ tiếp nhận và giao tiếp với thẻ thông minh Thẻ thông minh luôn được reset khi nó được đưa vào CAD Hành động này khiến cho thẻ thông minh được phản hồi bằng cách gửi một thông điệp “Answer-to-Reset” Thông điệp này báo tin cho phép CAD điều khiển các quy tắc truyền thông với thẻ tại nơi xử lý hoặc giao dịch Thành phần vi mạch trên thẻ được tạo nên bởi các thành phần khóa chắc chắn, cho phép thẻ có thể thực thi các chỉ thị hỗ trợ cho các chức năng của thẻ Các thành phần chức năng bao gồm:
Khối vi xử lý (Microprocessor Unit- MPU) thực thi các chỉ thị đã được lập trình Đặc trưng của các phiên bản thẻ thông minh cũ là dựa trên nền tảng các chíp vi điều khiển tích hợp 8 bit, rất chậm Xu hướng mới của thẻ thông minh từ những năm 90 đã hướng tới các bộ điều khiển tích hợp bộ vi xử lý 32 bit Reduced Instruction Set Computing (RISC), có khả năng vận hành với tốc độ từ 25 tới 32 MHz
Bộ phận điều khiển vào ra (I/O Controller) quản lý tiến trình của dữ liệu giao tiếp giữa thiết bị chấp nhận thẻ (Card Acceptance Device/CAD) và bộ vi xử lý Thẻ thông minh giao tiếp với thế giới bên ngoài thông qua giao diện nối tiếp (serial interface) Vì vậy cần thiết phải có một thiết bị cung cấp đường kết nối Thiết bị này có một số tên gọi như thiết bị đầu cuối(Terminal) hoặc bộ đọc thẻ (Reader)… Chức năng cơ bản của thiết bị là cung cấp nguồn cho thẻ thông minh và thiết lập đường liên kết dữ liệu
Đường trao đổi dữ liệu đến và đi từ thẻ thông minh là bán công (half duplex), nghĩa là dữ liệu hoặc từ thiết bị đầu cuối đến thẻ hoặc từ thẻ đến thiết bị đầu cuối chứ không bao giờ theo hai chiều cùng một lúc Kết quả là thẻ thông minh và thiết bị đầu cuối luôn phải đồng bộ với nhau, thoả thuận với nhau xem ai gửi và ai chờ
ROM (Read Only Memory) hay còn gọi là bộ nhớ được lập trình sẵn, là nơi các chỉ thị được ghi vĩnh viễn vào bộ nhớ bởi các thiết bị ghi chuyên dụng của nhà cung cấp Các chỉ thị này (ví dụ: khi nguồn điện được cung cấp hay việc bật một chương trình điều khiển password) là các chỉ thị cơ bản của hệ điều hành vi mạch (Chip Operating System - COS) hay thường được gọi là thẻ mặt nạ “Mask.”
RAM (Random Access Memory) gọi là bộ nhớ làm việc, được sử dụng làm nơi lưu trữ tạm thời dữ liệu vào ra hoặc kết quả của các phép tính trong quá trình truyền thông hay xử lý Cơ chế của RAM trong thẻ thông minh cũng giống cơ chế của RAM trong máy tính cá nhân, chỉ có khả năng lưu trữ thông tin khi có nguồn điện cung cấp
E-PROM (Electrically Erasable Programmable Read-Only Memory) là bộ nhớ ứng dụng (Application Memory) có thể ghi/xóa được
Trang 26Theo các chuẩn quốc tế, bộ nhớ này có khả năng lưu trữ thông tin trong vòng 10 năm mà không cần nguồn điện và có thể hỗ trợ ít nhất 10.000 hành động đọc ghi trong khoảng thời gian sống của card Bộ nhớ ứng dụng được sử dụng nhằm lưu trữ thông tin cho thẻ sau khi thực thi các ứng dụng
Hình 7 Cấu trúc bộ xử lý trong thẻ thông minh
1.2.2 Giao tiếp truyền thông
Việc truyền thông giữa thẻ thông minh và Terminal theo chế độ bán công (half-
duplex), nghĩa là thẻ thông minh và thiết bị đầu cuối chỉ có thể hoặc gửi hoặc nhận dữ
liệu chứ không bao giờ đồng thời vừa gửi vừa nhận được
Việc truyền thông với thẻ luôn được khởi tạo bởi thiết bị đầu cuối Thẻ luôn luôn phản hồi các lệnh từ thiết bị đầu cuối Thẻ không bao giờ gửi dữ liệu khi không có
kích thích từ bên ngoài Điều này tạo ra một mối quan hệ chủ-tớ (master/slave) với
thiết bị đầu cuối là chủ, thẻ là tớ
Sau khi thẻ được đặt vào thiết bị đầu cuối, các điểm tiếp xúc của nó được kết nối với các điểm tiếp xúc của thiết bị Các điểm tiếp xúc sau đó được kích hoạt theo trình
tự định sẵn Thẻ tự động thi hành việc khởi động lại nguồn (power-on reset) và gửi Trả
lời cho việc khởi động lại ATR (Answer to Reset) đến đầu đọc Đầu đọc nhận ATR
(trong ATR chứa các tham số liên quan tới thẻ và việc truyền dữ liệu) rồi sau đó gửi các lệnh cho thẻ Thẻ xử lý các lệnh rồi tạo ra phản hồi gửi trả lại cho đầu đọc Quá trình gửi lệnh và trả lời tiếp tục cho đến khi thẻ không được kích hoạt nữa
Giữa ATR và lệnh gửi cho thẻ, đầu đọc có thể gửi lệnh Lựa chọn tham số giao
thức PPS (Protocol Parameter Selection) PPS có thể được xem như phần mở rộng của
ATR Đầu đọc dùng lệnh này để đặt các tham số truyền thông cho giao thức truyền thông
R AM
EEPROM
PROCESSOR
Trang 27CO-Hình 8 Truyền dữ liệu khởi tạo giữa thẻ thông minh và Terminal
Toàn bộ thủ tục cho việc truyền dữ liệu đến và đi từ thẻ thông minh có thể đƣợc biểu diễn sử dụng mô hình OSI Thẻ thông minh thực tế không hỗ trợ tất cả các lựa chọn cho các giao thức truyền thông vì giới hạn về bộ nhớ Do đó mô hình OSI cho thẻ thông minh chỉ gồm 3 tầng: tầng vật lý, tầng liên kết dữ liệu, và tầng ứng dụng
Trang 281.2.2.1 Giao thức tầng vật lý
ISO/IEC 7816-2 mô tả một thẻ mạch tích hợp với tám tiếp xúc (contact) trên bề mặt trước của thẻ Các tiếp xúc được quy ước ký hiệu là từ C1 đến C8 Một số tiếp xúc được nối với chip xử lý trong thẻ, một số thì không (được định nghĩa cho sự cải tiến sau này nhưng hiện tại không được sử dụng)
C1 VCC Đường kết nối nguồn qua đó nguồn được cung cấp cho chip C2 RST Đường thiết lập lại (reset line) qua đó thiết bị đầu cuối có thể
báo cho chip để khởi tạo lại chuỗi lệnh
C3 CLK Đường tín hiệu đồng hồ qua đó tín hiệu đồng hồ sẽ được
cung cấp cho chip để điều khiển tốc độ hoạt động và tạo ra một khung làm việc chung giữa thẻ và thiết bị đầu cuối
C4 RFU Chưa sử dụng
C5 GND Đường tiếp đất
C6 Vpp Đường kết nối nguồn lập trình (programming power
connection) dùng để lập trình bộ nhớ không thay đổi trong chip
C7 I/O Đường Input/Output cung cấp kênh bán công giữa thiết bị
đầu cuối và thẻ C8 RFU Chưa sử dụng
Bảng 2 Định nghĩa các tiếp xúc của thẻ thông minh
Các tham số cho việc truyền thông ở tầng vật lý được miêu tả chi tiết trong chuẩn ISO/IEC 7816-3 Chuẩn này miêu tả mối quan hệ giữa thẻ thông minh và thiết bị đầu cuối - mối quan hệ “chủ” (thiết bị đầu cuối) và “tớ” (thẻ thông minh) Truyền thông được thiết lập khi thiết bị đầu cuối gửi tín hiệu cho thẻ thông minh qua các tiếp xúc
Trang 29Hình 9 Biểu đồ trạng thái của Terminal và thẻ thông minh
Khi thẻ được đặt vào thiết bị đầu cuối, nguồn chưa có tại các tiếp xúc Chip trên thẻ có thể bị hỏng nếu nguồn được đưa vào không đúng tiếp xúc Khi thiết bị đầu cuối phát hiện thẻ đã được đặt đúng, nguồn sẽ được cung cấp tới thẻ Đầu tiên các tiếp xúc
sẽ ở trạng thái rỗi Trạng thái rỗi được mô tả khi tiếp xúc nguồn (VCC) được đặt ở điện áp ổn định 5v Tiếp xúc I/O được đặt ở trạng thái nhận ở phía thiết bị đầu cuối và đồng hồ (CLK) được thiết lập Đường reset ở trạng thái thấp, đường này phải ở trạng thái thấp ít nhất là 40.000 chu kỳ đồng hồ trước khi tín hiệu reset có thể được bắt đầu bởi thiết bị đầu cuối, đặt đường reset lên trạng thái cao Tín hiệu reset sau đó được gửi tới thẻ thông qua đường RST
VCC Được cấp nguồn và ổn định Vpp Ổn định ở trạng thái rỗi RST Trạng thái thấp
CLK Tín hiệu ổn định được đặt I/O Chế độ nhận ở Terminal
Bảng 3 Trạng thái của tiếp xúc trước khi reset thẻ
Trang 30Khi thẻ được cấp nguồn đầy đủ, đường RST được đặt ở trạng thái cao, báo cho thẻ bắt đầu quá trình khởi tạo Các hoạt động khởi tạo khác nhau đối với mỗi loại thẻ nhưng kết quả của nó nên luôn là việc gửi một phản hồi cho việc khởi động lại ATR (Answer to Reset) từ thẻ trở lại bộ đọc
Khi tín hiệu RST được gửi từ thiết bị đầu cuối tới thẻ, thẻ phải trả lời với ký tự đầu tiên của ATR trong vòng 40.000 chu kỳ Nếu ATR không được trả lời trong khoảng thời gian này, thiết bị đầu cuối sẽ tắt nguồn Thiết bị đầu cuối đặt đường RST, CLK và I/O ở trạng thái thấp và hạ điện thế của đường VCC tới 0 ATR là một chuỗi gồm 33
ký tự (có thể ít hơn) chứa các thành phần sau:
TS - Ký tự khởi đầu (bắt buộc)
T0 - Ký tự định dạng (bắt buộc)
TAi, TBi, TCi, TDi - Ký tự giao diện (không bắt buộc)
T1, T2, …, TK - Ký tự lịch sử (không bắt buộc)
TCK - Ký tự kiểm tra điều kiện
Ký tự ban đầu TS được dùng để thiết lập tín hiệu bit và thứ tự bit giữa thiết bị đầu cuối và thẻ Ký tự định dạng T0 được dùng để báo hiệu sự có mặt hoặc vắng mặt của
ký tự giao diện Ký tự giao diện (interface character) được dùng để hướng dẫn các đặc tính của kênh I/O, bao gồm giao thức cụ thể được dùng giữa thẻ và thiết bị đầu cuối trong quá trình trao đổi lệnh và phản hồi Ký tự lịch sử (historical character) nếu có, được dùng để vận chuyển các thông tin của các nhà sản xuất thẻ tới thiết bị đầu cuối
Hình 10 Trình tự reset của Terminal
Trang 31Việc truyền dữ liệu giữa thẻ và Terminal được thực hiện qua hoạt động của 2 đường tiếp xúc: CLK và I/O Đường I/O vận chuyển các bit thông tin đơn lẻ trong mỗi đơn vị thời gian được định nghĩa bởi CLK, phụ thuộc vào giá trị điện thế của nó so với GND Bit 1 có thể được chuyển qua giá trị 5V hoặc chuyển qua giá trị 0V Quy ước thực sự được xác định bởi thẻ thông qua “ký tự ban đầu” TS của ATR
Để vận chuyển 1 byte thông tin, 10 bit luôn được chuyển qua đường I/O Bit đầu tiên luôn là bit bắt đầu (start bit) và bit cuối cùng luôn là bit chẵn lẻ (parity bit) Có thể xem đường I/O chỉ có thể ở trạng thái cao (H) hoặc trạng thái thấp (L)
Ký tự TS có dạng HLHHLLLLLLH báo hiệu rằng thẻ muốn sử dụng “quy ước ngược”, có nghĩa là H tương ứng với 0, L tương ứng với 1
Ký tự TS có dạng HLHHLHHHLLH báo hiệu rằng thẻ muốn sử dụng “quy ước xuôi”, có nghĩa là H tương ứng với 1, L tương ứng với 0
Quy ước ngược và quy ước xuôi cũng điều khiển thứ tự bit với mỗi byte truyền đi Trong quy ước xuôi, bit đầu tiên sau bit bắt đầu là bit thấp của byte Trong quy ước ngược, bit đầu tiên sau bit bắt đầu là bit cao của byte
1.2.2.2 Giao thức tầng liên kết dữ liệu
Giao thức ở tầng liên kết dữ liệu cung cấp đường truyền không lỗi (error-free connection) từ thiết bị đầu cuối kết nối với thẻ Mặc dù có hơn 15 đặc tả về các giao thức liên kết dữ liệu nhưng thực sự chỉ có 2 biến thể chính đang được sử dụng rộng rãi hiện nay, đó là giao thức T=0 và T=1 Nếu tham chiếu với mô hình OSI, giao thức T=1 tương ứng hoàn toàn với giao thức tầng liên kết dữ liệu, còn giao thức T=0 có xu hướng trộn lẫn các giao thức của các tầng khác nhau Sự phân biệt giữa tầng ứng dụng
và tầng liên kết dữ liệu trong giao thức T=0 là không rõ ràng
Thiết bị đầu cuối và thẻ trao đổi với nhau thông qua giao thức lệnh-đáp ứng (command-response protocol) Nghĩa là thiết bị đầu cuối gửi lệnh tới thẻ (có thể gồm
cả dữ liệu được dùng bởi thẻ cho việc thực thi yêu cầu), sau đó thẻ thi hành và gửi đáp ứng lại cho thiết bị đầu cuối Đáp ứng này gồm dữ liệu kết quả cũng như trạng thái đáp ứng yêu cầu Cấu trúc dữ liệu dùng để trao đổi giữa thiết bị đầu cuối và thẻ trong giao thức lệnh-đáp ứng này được gọi là đơn vị dữ liệu giao thức truyền thông TPDU (transmission protocol data units) Cấu trúc của TPDU dùng trong giao thức T=0 khác hoàn toàn so với cấu trúc được dùng trong giao thức T=1
Trang 32Giao thức T=0
Giao thức T=0 là một giao thức hướng byte (byte-oriented protocol) nghĩa là đơn
vị dữ liệu nhỏ nhất được xử lý bởi giao thức là 1 byte Trong giao thức T=0, việc phát hiện lỗi được thực hiện nhờ vào việc xem các bit chẵn lẻ (parity bit) trong mỗi byte được chuyển Việc vận chuyển mỗi byte thông tin cần 10 bit Phía bên nhận sẽ nhìn vào các bit thông tin trước bit chẵn lẻ để xác định bit chẵn lẻ nên là gì Sau đó thực hiện kiểm tra với bit chẵn lẻ được chuyển tới Nếu không trùng, bên nhận sẽ biết rằng gói tin đó bị lỗi
Thủ tục khôi phục lỗi trong giao thức T=0 sẽ được kích hoạt bởi bên nhận Bên nhận sẽ phát tín hiệu yêu cầu bên gửi gửi lại Bên nhận phát tín hiệu bằng cách giữ đường I/O ở trạng thái thấp Bình thường đường I/O ở trạng thái cao ngay trước việc gửi một byte, vì vậy trạng thái thấp sẽ báo hiệu là có lỗi xảy ra
Hình 11 Byte vận chuyển và phản hồi lỗi trong giao thức T=0
TPDU cho giao thức T=0 gồm 2 cấu trúc dữ liệu phân biệt: một được gửi từ Terminal đến thẻ (lệnh) và một được gửi từ thẻ đến Terminal (đáp ứng)
Hình 12 Cấu trúc yêu cầu của giao thức T=0
Trang 33Phần đầu của lệnh gồm năm trường:
CLA-1 byte, xác lập một tuyển tập các chỉ thị (a collection of instructions); đôi khi được xem như chỉ định lớp của tập lệnh (class designation of the command set)
INS-1 byte, chỉ định chỉ thị cụ thể trong tập các chỉ thị được định nghĩa trong CLA; đôi khi được xem như là chỉ định chỉ thị trong lớp các lệnh
P1-1 byte, dùng để chỉ rõ địa chỉ sử dụng bởi chỉ thị [CLA,INS]
P2-1 byte, cũng dùng để chỉ rõ địa chỉ sử dụng bởi chỉ thị [CLA,INS]
P3-1 byte, dùng để chỉ rõ số byte dữ liệu được gửi tới thẻ như là một phần của
sự thi hành chỉ thị [CLA,INS]
Đáp ứng gửi từ thẻ tới thiết bị gồm ba trường bắt buộc và một trường tuỳ chọn:
ACK-1 byte, xác nhận sự tiếp nhận yêu cầu [CLA,INS]/
NULL-1 byte, được dùng bởi thẻ để làm việc điều khiển luồng trên kênh I/O; thẻ gửi thông điệp này tới thiết bị đầu cuối báo hiệu rằng thẻ vẫn đang làm việc với các lệnh và thiết bị đầu cuối đừng gửi thêm lệnh
SW1-1 byte, dùng bởi thẻ trả về các trạng thái đáp ứng tới thiết bị đầu cuối cho các lệnh hiện tại
SW2-1 byte (tuỳ chọn), có thể được kèm theo trong đáp ứng, phụ thuộc vào lệnh cụ thể Nếu được kèm theo, nó vận chuyển thông tin về số lượng byte được trả về từ đáp ứng
Trang 34Việc chuyển thông tin dưới dạng khối yêu cầu khối được chuyển phải không bị lỗi (error free) Do đó việc phát hiện lỗi và sửa lỗi ở giao thức này phức tạp hơn so với giao thức T=0 Việc phát hiện lỗi trong giao thức T=1 được thực hiện bằng cách dùng LRC (longitudinal redundancy character)- một dạng của việc kiểm tra bit chẵn lẽ (parity checking) hoặc dùng ký tự CRC (cyclic redundancy check) Khi bên nhận phát hiện được lỗi trong khối, nó sẽ báo cho bên gửi gửi lại gói đó
Giao thức T=1 dùng ba loại khối khác nhau, có cùng cấu trúc, nhưng phục vụ cho các mục đích riêng:
Khối thông tin (Imformation block): Khối này dùng để chuyển thông tin giữa phần mềm ứng dụng trên thẻ và phần mềm ứng dụng trên thiết bị đầu cuối
Khối sẵn sàng nhận (Receive ready block): Khối này dùng để chuyển những hồi đáp (acknowledgments) từ phía này sang phía khác của kênh Hồi báo khẳng định (positive acknowledgment) xác định khối đã được nhận đúng, còn hồi báo phủ định (negative acknowledgment) xác định có lỗi trong khối
Khối giám sát (Supervisory block): Khối này dùng để chuyển thông tin điều khiển giữa thẻ và thiết bị đầu cuối
Trường Mở đầu (Prologue Field) Trường thông tin
(Information Field)
Trường kết thúc (Epilogue Field) Địa chỉ
Node (Node
Address)
NAD
Byte điều khiển giao thức (Protocol Control Byte) PCB
Chiều dài (Length) LEN
APDU Data Length
Error Detection LRC/CRC
1 Byte 1 Byte 1 Byte 0 đến 256 Byte 1 hoặc 2 Byte
Bảng 4 Các thành phần của khối giao thức T=1
Bảng trên biểu diễn ba thành phần của một khối T=1 Trường mở đầu và trường kết thúc là bắt buộc, còn trường thông tin là tuỳ chọn
Trang 35SAD (địa chỉ nguồn) được xác định bởi 3 bit thấp của NAD byte;
DAD (địa chỉ đích) được xác định bởi bit 5 đến bit 7 của byte NAD
Thành phần PCB được dùng để xác định loại khối (3 loại khối) 2 bit cao của byte PCB được dùng để định nghĩa các loại này: 1 bit cao được đặt bằng 0 xác định khối thông tin, 2 bit cao được đặt bằng 1 xác định khối giám sát, 1 bit cao được đặt bằng 1
và bit tiếp theo được đặt bằng 0 xác định khối sẵn sàng nhận
Trường LEN có chiều dài 1 byte xác định chiều dài của trường thông tin Giá trị của nó có thể từ „00‟ tới „FE‟ Giá trị „FF‟ được dành cho việc mở rộng sau này
Trường thông tin
Trường thông tin phục vụ như là một nơi chứa cho dữ liệu của tầng ứng dụng Nội dung của trường này được chuyển đi hoàn toàn rõ ràng Điều này có nghĩa là nội dung được trực tiếp chuyển đi bởi các giao thức truyền thông mà không cần một sự phân tích và đánh giá nào Trong khối giám sát, trường thông tin vận chuyển dữ liệu cho giao thức truyền thông Đây là trường hợp duy nhất nội dung của trường này được dùng bởi tầng vận chuyển (transport layer)
Trang 361.2.2.3 Giao thức tầng ứng dụng
Khi giao thức tầng liên kết dữ liệu đƣợc thiết lập, giao thức tầng ứng dụng (sử dụng giao thức tầng liên kết dữ liệu để trao đổi dữ liệu giữa ứng dụng trên thẻ với ứng dụng trên thiết bị đầu cuối) có thể đƣợc định nghĩa
Phần mềm ứng dụng trên thiết bị đầu cuối và thẻ trao đổi thông tin với nhau bằng cách sử dụng giao thức tầng ứng dụng Giao thức này dựa trên một cấu trúc khối gọi là APDU APDU đƣợc trao đổi với nhau qua giao thức liên kết dữ liệu T=0 hoặc T=1
Hình 13 Kiến trúc giao tiếp ứng dụng
Cấu trúc APDU đƣợc định nghĩa trong ISO/IEC 7816-4 rất giống cấu trúc TPDU đƣợc định nghĩa trong ISO/IEC 7816-3 cho giao thức T=0 Khi APDU đƣợc vận chuyển bởi giao thức T=0, các thành phần của APDU trực tiếp phủ lên các thành phần của TPDU Một ISO/IEC 7816-4 APDU là: độc lập với giao thức liên kết dữ liệu; đƣợc định nghĩa ở tầng ứng dụng
Một lệnh APDU (instruction APDU) là một cấu trúc thông điệp mang lệnh hoặc chỉ dẫn (có thể có dữ liệu) từ thiết bị đầu cuối tới thẻ Một đáp ứng APDU (responsse APDU) là một cấu trúc thông điệp mang đáp ứng (có thể có dữ liệu) từ thẻ trở lại thiết
bị đầu cuối
Thông điệp dùng trong giao thức ứng dụng định nghĩa theo ISO/IEC 7816-4 gồm
2 cấu trúc: một dùng bởi thiết bị đầu cuối để gửi các lệnh (command) tới thẻ, một dùng
bởi thẻ để gửi đáp ứng (response) tới thiết bị đầu cuối Cấu trúc đầu đƣợc gọi là APDU
lệnh (command APDU), cấu trúc sau đƣợc gọi là APDU đáp ứng (response APDU)
Trang 37Hình 14 Cấu trúc APDU lệnh APDU lệnh chứa phần đầu (header) và phần thân (body), mỗi một phần lại được chia
làm nhiều trường nhỏ
Phần đầu gồm trường CLA, INS, P1 và P2 CLA và INS định nghĩa lớp ứng dụng
và nhóm lệnh Trường P1 và P2 dùng để mô tả các lệnh cụ thể, do đó đưa ra được các định nghĩa riêng cho mỗi lệnh [CLA, INS]
Phần thân của APDU là thành phần có kích cỡ biến đổi, dùng để chuyển thông tin tới bộ xử lý của thẻ như một phần của lệnh Trường Lc chỉ số byte dữ liệu được chuyển tới thẻ; nó chứa chiều dài của trường dữ liệu Trường dữ liệu chứa dữ liệu cần gửi cho thẻ để bộ xử lý APDU có thể thi hành các lệnh trong APDU Trường Le chỉ rõ
số lượng byte sẽ được gửi trả thiết bị đầu cuối từ bộ xử lý APDU của thẻ trong APDU đáp ứng
Phần thân của APDU có thể có bốn dạng khác nhau:
Không có dữ liệu được gửi đến và từ thẻ, vì vậy APDU chỉ chứa duy nhất phần đầu Đây là trường hợp 1
Không có dữ liệu gửi tới thẻ nhưng có dữ liệu trả lời từ thẻ, vì vậy phần thân của APDU chỉ chứa trường không rỗng Le Đây là trường hợp 2
Có dữ liệu gửi tới thẻ nhưng không có dữ liệu gửi trả từ thẻ, vì vậy phần thân của APDU chứa trường Lc và trường dữ liệu Đây là trường hợp 3
Có dữ liệu gửi tới thẻ và có dữ liệu gửi từ thẻ vì vậy phần thân của APDU chứa trường Lc, trường dữ liệu, và trường Le Đây là trường hợp 4
Trang 38APDU đáp ứng gồm 2 phần: phần thân và phần đuôi (trailer)
Phần đuôi (trailer) là phần bắt buộc gồm 2 trường trạng thái thông tin là SW1 và SW2 Những trường này trả về (từ bộ xử lý APDU của thẻ) thiết bị đầu cuối các mã trạng thái Theo chuẩn ISO/IEC 7816-4, mã trạng thái này có một byte dùng để chuyển các loại lỗi, một bye dùng để chuyển trạng thái cụ thể của lệnh hoặc sự chỉ dẫn lỗi (error indication)
Phần thân là phần tuỳ chọn chứa dữ liệu trả về thiết bị đầu cuối từ thẻ nếu có
Hình 15 Cấu trúc APDU trả lời
Hình 16 Mã trả về theo ISO/IEC 7816-4
Trang 391.2.3 Cấu trúc file
Hệ thống file trong thẻ thông minh được ghi vào bộ nhớ không thay đổi (nonvolatile memory) trên thẻ, thường là EEPROM Hệ thống file của thẻ thông minh theo chuẩn ISO/IEC 7816-4 là một cấu trúc thứ bậc (hierarchical structure) tương đối đơn giản, gồm 3 thành phần chính:
Thành phần File chủ MF (master file)
Thành phần File chuyên dụng DF (dedicated file)
Thành phần File cơ bản EF (elementary file)
Thành phần MF là gốc của cấp bậc file (file hierarchy) và chỉ có duy nhất một MF trên một thẻ thông minh Một MF có thể chứa một hoặc nhiều DF và có thể chứa từ không đến nhiều EF Thành phần DF thực chất là nơi chứa đựng thành phần EF Một
DF có thể chứa từ không đến nhiều EF Thành phần EF có thể chứa duy nhất một bản ghi
Hệ thống file của thẻ thông minh có một số đặc điểm khác với các cấu trúc file thông thường Sự khác biệt này là do đặc tính vật lý của hệ thống bộ nhớ EEPROM:
bộ nhớ EEPROM chỉ có thể viết và xoá một số lần nhất định, thời gian để ghi vào EEPROM theo kiểu tích luỹ nhanh hơn nhiều so với việc ghi theo kiểu thông thường Đặc tính đầu tiên dẫn đến một định nghĩa cấu trúc file khác: file tuần hoàn (cyclic file) Đặc tính thứ hai dẫn đến các định nghĩa khác nhau của các lệnh ghi file
Hình 17 Cấu trúc cấp bậc hệ thống file của thẻ thông minh
Trang 401.2.3.1 File chủ (Master file)
Mỗi hệ thống file của thẻ thông minh chỉ có duy nhất một file chủ MF MF là gốc (root) của cấu trúc file cấp bậc Nó được chọn một cách ngầm định sau khi thẻ thông minh được reset MF chứa tất cả các thư mục khác và tất cả các file Nó là một loại đặc biệt của file DF
1.2.3.2 File chuyên dụng (Dedicated file)
File DF xuất hiện ở phía dưới file MF File DF thường được gọi là „file thư mục‟
DF là một thư mục trong đó các file khác (file DF và MF) được nhóm lại với nhau Một file DF có thể chứa nhiều file DF khác Về nguyên tắc, không có giới hạn số bậc của DF Tuy nhiên trong thực tế, hiếm khi có hơn 2 cấp bậc file DF dưới MF vì giới hạn về mặt bộ nhớ
1.2.3.3 File cơ bản (Elementary file)
File EF là nút của cấu trúc file cấp bậc Nó là file chứa dữ liệu File EF luôn chỉ có một cấu trúc file trong (internal file structure) Đây là điểm khác biệt chính giữa file
EF và file trong PC (có cấu trúc file trong được xác định bởi ứng dụng) Có 2 dạng khác nhau của EF: EF trong(internal EF) và EF hoạt động (working EF)
EF hoạt động: Dữ liệu ứng dụng phải được đọc và ghi từ Terminal, hay nói cách khác, tất cả dữ liệu cho thế giới bên ngoài (nhìn từ thẻ thông minh) được lưu trong EF hoạt động Hệ điều hành không sử dụng những dữ liệu này
EF trong: Bên cạnh EF hoạt động, cũng có hệ thống file trong (internal file system) chứa những dữ liệu cần thiết cho hệ điều hành, dữ liệu cần cho việc thực hiện các ứng dụng, khoá bí mật, và mã chương trình Những file này có thể được tích hợp vào hệ thống quản lý file theo hai cách
Cách thứ nhất là lưu trữ những file này trong các ứng dụng DF thích hợp như những file không nhìn thấy (invisible file) Những file này không thể lựa chọn được và chúng được quản lý bởi hệ điều hành thẻ thông minh Cách thứ hai là những file hệ thống này được gán những tên thông thường và có thể được chọn bởi những tên này
Có bốn dạng khác nhau của file EF :
File trong suốt (transparent file)
File bản ghi tuyến tính, chiều dài cố định (linear, fixed length record file)
File bản ghi tuyến tính, chiều dài thay đổi (linear, variable length record file)
File bản ghi tuần hoàn, chiều dài cố định (cyclic, fixed length record file)