Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV

  • Số trang: 84 |
  • Loại file: PDF |
  • Lượt xem: 20 |
  • Lượt tải: 0
tailieuonline

Đã đăng 27700 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI ĐẠI HỌC CÔNG NGHỆ PHAN THU NGÂN Ket-noi.com dien dan giao duc 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 -