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.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 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.
7 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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ý.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ừ.
8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.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 Các điểm tiếp xúc VCC GND RST Vpp CLK I/O O RFU RFU 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ũ. 9 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đ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. 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.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.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. 11 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.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.
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. 12 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.4 TRUYỀN THÔNG VỚI THẺ THÔNG MINH 1.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.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ẻ.
13 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.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.