Báo cáo thẻ thông minh

110 828 4
Báo cáo thẻ thông minh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo thẻ thông minh

MỤC LỤC MỤC LỤC LỜI CẢM ƠN CÁC TỪ VIẾT TẮT Chương TỔNG QUAN VỀ THẺ THÔNG MINH 1.1 KHÁI NIỆM THẺ THÔNG MINH 1.2 CÁC LOẠI THẺ CƠ BẢN .7 1.2.1 Thẻ nhớ thẻ chip .7 1.2.2 Thẻ tiếp xúc thẻ không tiếp xúc 1.3 PHẦN CỨNG CỦA THẺ THÔNG MINH .9 1.3.1 Các điểm tiếp xúc 1.3.2 Bộ xử lý trung tâm thẻ thông minh 11 1.3.3 Bộ đồng xử lý thẻ thông minh 11 1.3.4 Hệ thống nhớ thẻ thông minh 12 1.4 TRUYỀN THÔNG VỚI THẺ THÔNG MINH 13 1.4.1 Thiết bị chấp nhận thẻ ứng dụng máy chủ .13 1.4.2 Mô hình truyền thông với thẻ thông minh 13 1.4.3 Giao thức APDU 14 1.4.4 Mã hoá bit (bit encoding) 17 1.4.5 Giao thức TPDU 17 1.4.6 Thông điệp trả lời để xác lập lại (ATR ) 18 Chương HỆ ĐIỀU HÀNH THẺ THÔNG MINH 19 2.1 CÁC FILE HỆ THỐNG TRONG THẺ THÔNG MINH 19 2.1.1 Thư mục gốc (Master File - MF) .19 2.1.2 Thư mục chuyên dụng (Dedicated File - DF) 20 2.1.3 File (Elementary File - EF) 20 2.2 TRUY CẬP FILE .22 2.2.1 Định danh file 22 2.2.2 Các phương thức lựa chọn file 22 2.2.3 Điều kiện truy cập file 23 2.3 CÁC CHỨC NĂNG CỦA SIM .24 2.4 CẤU TRÚC FILE THẺ SIM 27 2.5 GIAO DIỆN SIM - THIẾT BỊ DI ĐỘNG (ME) 28 2.6 CÁC THỦ TỤC LIÊN QUAN ĐẾN BỘ ỨNG DỤNG SIM 30 ( SIM APPLICATION TOOLKIT ) 30 Chương 32 XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH 32 3.1CÁC THUẬT TOÁN MÃ HOÁ 32 3.1.1 Mã hoá khoá đối xứng .33 3.1.2 Mã hoá khoá công khai 39 3.2 GIAO THỨC XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH 42 3.2.1 Giao thức xác thực với thẻ thông minh .42 3.2.2 Bảo toàn liệu với thẻ thông minh 45 3.2.3 Bảo toàn bảo mật liệu với thẻ thông minh 47 3.2.4 Thiết lập khoá phiên với thẻ thông minh 49 (Global System for Mobile Communications) .50 3.3.1 Cơ chế an ninh mạng GSM .50 3.3.2 Các kỹ thuật bảo đảm an ninh 52 3.4 THUẬT TOÁN BẢO ĐẢM AN NINH TRONG MẠNG GSM 55 3.4.1 Mục đích bảo đảm an ninh mạng GSM 55 3.4.2 Đặc điểm an ninh mạng GSM 55 3.4.3 Các thuật toán xác thực bảo mật 61 Chương 72 72 CHƯƠNG TRÌNH GHI DỮ LIỆU VÀO THẺ THÔNG MINH TRÊN MÁY MPR3000 72 4.1QUY TRÌNH LÀM THẺ 72 4.2 HỆ THỐNG MPR3000 GHI DỮ LIỆU VÀO THẺ THÔNG MINH 74 4.2.1 Giới thiệu hệ thống MPR3000 74 4.2.2Các đặc tính ưu việt MPR3000 .77 4.2.3 Đặc điểm chương trình ghi liệu vào thẻ thông minh PersoAppMPR3K .79 4.3 CHƯƠNG TRÌNH GHI DỮ LIỆU VÀO THẺ THÔNG MINH 80 4.3.1 Bộ công cụ phát triển 80 4.3.2Chức PersoAppMPR3K 88 4.3.3 Các kết ban đầu PersoAppMPR3K 90 4.3.4 Khai thác định hướng phát triển PersoAppMPR3K .91 KẾT LUẬN 93 PHỤ LỤC 94 TÀI LIỆU THAM KHẢO 109 LỜI CẢM ƠN Lời đầu tiên, xin gửi lời cảm ơn chân thành tới thầy giáo PGS TS Trịnh Nhật Tiến - người bảo, hướng dẫn nghiêm khắc tận tình, cung cấp tài liệu quý báu, giúp đỡ suốt trình học tập xây dựng luận văn Tôi xin gửi lời cảm ơn thầy cô giáo Khoa Công nghệ thông tin - trường Đại học Công nghệ, Ban lãnh đạo đồng nghiệp công ty thẻ thông minh MK, bạn học viên lớp Cao học CNTT Xin cảm ơn gia đình đứng bên lúc khó khăn nhất, tạo điều kiện, giúp đỡ vật chất cổ vũ suốt trình học tập làm luận văn CÁC TỪ VIẾT TẮT ATR: Answer To Reset: Trả lời để khẳng định lại APDU: Application Protocol Data Units: Đơn vị liệu giao thức ứng dụng AES: Advanced Encryption Standard: chuẩn mã hoá tiên tiến ATM: Automatic Teller Machine: máy rút tiền tự động AuC: Authentication Centre: trung tâm xác thực BTS: Base Station: trạm thu phát CPU: Central Processing Unit: xử lý trung tâm C-APDU: Command - Application Protocol Data Units: APDU lệnh CBC: Cipher Block Chaining CEPT: Conference of European Post and Telecommunications Administrations: Hội nghị Quản trị Bưu – Viễn thông Châu Âu CLA: Class: “lớp” thị DF: Dedicated File: thư mục chuyên dụng DES: Data Encryption Standard: chuẩn mã hoá liệu EEPROM: Electrically Erasable Programmable Read Only Memory: Bộ nhớ ghi tín hiệu điện ECB: Electronic Code Book EF: Elementary File: file GSM: Global System for Mobile Communications GPRS: General Packet Radio Service: dịch vụ truyền phát mã hoá gói tin GEA: Generic Evolutionary Algorithm: HLR: Home Location Register: đăng ký vùng chủ HPLMN: Home Public Land Mobile Networks: mạng di động công khai INS: Instruction: “mã” thị ISO: International Standards Organization: Hiệp hội tiêu chuẩn quốc tế ICV: Initial Chaining Value: giá trị chuỗi khởi tạo IMSI: International Mobile Subscriber Identity: định danh thuê bao di động quốc tế LFSRs: Linear Feedback Shift Registers: ghi dịch chuyển đầu 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 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: nhớ cho phép đọc RAM: Random Access Memory: 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: ứng dụng SIM SA: Send Application: ứng dụng gửi SE: Send Entity: thực thể gửi SM: Secure Message: thông điệp bảo mật SP: Secure Packet: gói tin bảo mật SMS: Short Message Service: dịch vụ tin nhắn ngắn TPDU: Transportation Protocol Data Units: Đơn vị liệu giao thức truyền thông TM: Transport Mechanism: kiến trúc giao vận TMSI: Temporary Mobile Subscriber Identity: định danh thuê bao di động tạm thời USSD: Unstructured Supplementary Service Data: liệu dịch vụ bổ sung không cấu trúc VLR: Visitor Location Register: đăng ký vùng viếng thăm Chương 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 gọi thẻ chip thẻ mạch tích hợp Mạch tích hợp thẻ gồm thành phần sử dụng cho truyền, lưu trữ xử lý liệu Thẻ thông minh có vùng dập mặt dải từ mặt Thể vật lý đặc tính thẻ thông minh định nghĩa chuẩn ISO 7816 phần Đó 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 giới bên ngoài, thẻ thông minh đặt hay gần thiết bị chấp nhận thẻ, nối với máy tính 1.2 CÁC LOẠI THẺ CƠ BẢN Thẻ thông minh chia thành số loại Ví dụ thẻ nhớ (memory card ) thẻ vi xử lý (microprocessor card) Có thể phân loại thành thẻ tiếp xúc không tiếp xúc dựa theo cách truy nhập thẻ 1.2.1 Thẻ nhớ thẻ chip Thẻ thông minh sớm sản xuất theo số lượng lớn thẻ nhớ Thẻ nhớ chưa thực thẻ thông minh chúng vi xử lý Chúng nhúng chip nhớ chip kết hợp với nhớ không lập trình Do thẻ nhớ CPU, nên việc xử lý liệu thực số mạch đơn giản, có khả thực vài lệnh lập trình trước Cũng số chức mạch giới hạn, cố định trước nên lập trình để thay đổi chức Tuy nhiên thẻ nhớ dễ dàng làm giả Ưu điểm thẻ nhớ đòi hỏi công nghệ đơn giản giá thành thấp Thẻ vi xử lý, có khả bảo mật cao khả tính toán Với thẻ vi xử lý, liệu không phép truy xuất tuỳ ý vào nhớ Bộ vi xử lý kiểm soát liệu việc truy nhập nhớ thông qua điều kiện (mật khẩu, mã hóa …) lệnh từ ứng dụng bên Nhiều loại thẻ vi xử lý thiết kế hỗ trợ việc mã hóa Các thẻ đặc biệt hữu ích cho ứng dụng cần bảo mật liệu Các chức thẻ chủ yếu bị giới hạn dung lượng nhớ sức mạnh tính toán CPU thẻ Thẻ vi xử lý dùng rộng rãi 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 thẻ nhớ thẻ vi xử lý Tuy nhiên theo cách phổ biến luận văn sử dụng thuật ngữ “thẻ thông minh” ta hiểu thẻ vi xử lý 1.2.2 Thẻ tiếp xúc thẻ không tiếp xúc Thẻ tiếp xúc phải đưa vào thiết bị chấp nhận thẻ, chúng liên lạc với giới bên qua giao diện tiếp xúc gồm có điểm hình vẽ 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 thiết bị chấp nhận thẻ Chúng liên lạc qua ăng ten thẻ Năng lượng cung cấp nguồn bên qua ăng ten Thẻ không tiếp xúc truyền liệu tới thiết bị chấp nhận thẻ thông qua trường điện từ 1.3 PHẦN CỨNG CỦA THẺ THÔNG MINH Thẻ thông minh có điểm tiếp xúc bề mặt nhựa nền, xử lý trung tâm bên nhiều dạng nhớ Một số loại thẻ thông minh có đồng xử lý việc tính toán thuận lợi 1.3.1 Các điểm tiếp xúc VCC GND RST Vpp CLK I/O O RFU RFU Thẻ thông minh có điểm tiếp xúc, chức chúng hình Hướng vị trí điểm tiếp xúc mô tả phần ISO 7816  Điểm Vcc cung cấp nguồn cho chip hiệu điện volts, với sai số 10% Thẻ thông minh máy di động thường volts  Điểm RST dùng để gửi tín hiệu để reset vi xử lý – gọi khởi động nóng (warm reset) Khởi động nguội (cold reset) thực chuyển nguồn cung cấp tắt bật  Bộ xử lý thẻ thông minh không thực việc tạo tín hiệu đồng hồ bên Điểm CLK cung cấp tín hiệu đồng hồ bên ngoài, từ tạo tín hiệu đồng hồ bên  Điểm GND dùng mức hiệu điện chuẩn, giá trị xem  Điểm Vpp tùy chọn dùng thẻ cũ Khi sử dụng, cung cấp hai mức hiệu điện lập trình Mức thấp gọi trạng thái ngủ (idle state), mức cao trạng thái kích hoạt ( active state) Thay đổi mức điện cần thiết để lập trình nhớ EEPROM số thẻ thông minh cũ  Điểm I/O dùng để chuyển liệu lệnh thẻ thông minh giới bên theo chế độ bán song công (half – duplex mod) Có nghĩa tín hiệu lệnh truyền theo hướng thời điểm  Các điểm RFU để dành cho tương lai 10 * We have verified that this is the correct COMP128 algorithm * * The first page of the document identifies it as * _Technical Information: GSM System Security Study_ * 10-1617-01, 10th June 1988 * The bottom of the title page is marked * Racal Research Ltd * Worton Drive, Worton Grange Industrial Estate, * Reading, Berks RG2 0SB, England * Telephone: Reading (0734) 868601 Telex: 847152 * The relevant bits are in Part I, Section 20 (pages 66 67) Enjoy! * * Note: There are three typos in the spec (discovered by * reverse-engineering) * First, "z = (2 * x[n] + x[n]) mod 2^(9-j)" should clearly read * "z = (2 * x[m] + x[n]) mod 2^(9-j)" * Second, the "k" loop in the "Form bits from bytes" section is severely * botched: the k index should run only from to 3, and clearly the range * on "the (8-k)th bit of byte j" is also off (should be 7, not 8, * to be consistent with the subsequent section) * Third, SRES is taken from the first nibbles of x[], not the last as * claimed in the document (And the document doesn't specify how Kc is * derived, but that was also easily discovered with reverse engineering.) * All of these typos have been corrected in the following code */ void A3A8(/* in */ Byte rand[16], /* in */ Byte key[16], /* out */ Byte simoutput[12]) { Byte x[32], bit[128]; int i, j, k, l, m, n, y, z, next_bit; /* ( Load RAND into last 16 bytes of input ) */ for (i=16; i= 2) return 1; else return 0; } /* Clock two or three of R1,R2,R3, with clock control * according to their middle bits * Specifically, we clock Ri whenever Ri's middle bit * agrees with the majority value of the three middle bits For A5/2, * use particular bits of R4 instead of the middle bits Also, for A5/2, * always clock R4 * If allP == 1, clock all three of R1,R2,R3, ignoring their middle bits * This is only used for key setup If loaded == 1, then this is the last * bit of the frame number, and if we're doing A5/2, we have to set a * particular bit in each of the four registers */ void clock(int allP, int loaded) { #ifndef A5_2 104 bit maj = majority(R1&R1MID, R2&R2MID, R3&R3MID); if (allP || (((R1&R1MID)!=0) == maj)) R1 = clockone(R1, R1MASK, R1TAPS); if (allP || (((R2&R2MID)!=0) == maj)) R2 = clockone(R2, R2MASK, R2TAPS); if (allP || (((R3&R3MID)!=0) == maj)) R3 = clockone(R3, R3MASK, R3TAPS); #else /* A5_2 */ bit maj = majority(R4&R4TAP1, R4&R4TAP2, R4&R4TAP3); if (allP || (((R4&R4TAP1)!=0) == maj)) R1 = clockone(R1, R1MASK, R1TAPS, loaded i) & 1; /* The i-th bit of the frame # */ R1 ^= framebit; R2 ^= framebit; R3 ^= framebit; #ifdef A5_2 R4 ^= framebit; #endif /* A5_2 */ } _not_ op */ /* Run the shift registers for 100 clocks * to mix the keying material and frame number * together with output generation disabled, * so that there is sufficient avalanche * We re-enable the majority-based clock control * rule from now on */ for (i=0; iB frame; the next 114 bits is for the B->A frame You allocate a 15-byte buffer 106 * for each direction, and this function fills * it in */ void run(byte AtoBkeystream[], byte BtoAkeystream[]) { int i; /* Zero out the output buffers */ for (i=0; iB direction Store it, MSB first */ for (i=0; i[...]... 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... 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 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... biến 1.3.3 Bộ đồng xử lý trong thẻ thông minh Các chip thẻ thông minh cho các ứng dụng bảo mật, thường có bộ đồng xử lý Bộ đồng xử lý có mạch tích hợp đặc biệt để tăng khả năng tính toán, đặc biệt các thuật toán modular và tính toán với số nguyên lớn Những tính toán này được yêu cầu bởi thuật toán mã hóa chẳng hạn như RSA 11 1.3.4 Hệ thống bộ nhớ của thẻ thông minh Thẻ thông minh thường gồm ba loại bộ... truyền tín hiệu như giao thức truyền thông được thẻ hỗ trợ (T=0 hoặc T =1), tốc độ truyền dữ liệu, các tham số phần cứng của thẻ như số thứ tự chip, phiên bản làm mặt nạ cho chip, nhà sản xuất … 18 Chương 2 HỆ ĐIỀU HÀNH THẺ THÔNG MINH Hệ điều hành thẻ thông minh gần giống như hệ điều hành máy để bàn (desktop) như DOS, UNIX hay Window Ngoài ra, hệ điều hành thẻ thông minh hỗ trợ một tập hợp các lệnh, dựa... 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...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... phản hồi được truyền đan xen giữa máy chủ và thẻ 13 1.4.3 Giao thức APDU Được chỉ ra trong chuẩn ISO 7816-4, APDU là một giao thức ở mức ứng dụng giữa thẻ thông minh và ứng dụng của máy chủ Các thông điệp APDU gồm hai loại cấu trúc: một được sử dụng bởi ứng dụng máy chủ từ phía thiết bị chấp nhận thẻ để gửi lệnh đến thẻ và một được sử dụng bởi thẻ để gửi thông điệp trả lời cho ứng dụng máy chủ Tương... 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ủ... trường thông tin o Lệnh và dữ liệu trong khung độc lập  Không có byte kiểm tra chẵn lẻ 1.4.6 Thông điệp trả lời để xác lập lại (ATR ) Ngay sau khi bật nguồn, thẻ thông minh gửi thông điệp trả lời để xác lập lại (answer to reset –ATR) tới máy chủ Thông điệp này truyền tới máy chủ các thông số yêu cầu bởi thẻ để thiết lập kênh kết nối truyền dữ liệu ATR có thể có từ 2 đến 33 byte Byte đầu tiên định... dùng trong thẻ thông minh Trực tiếp (xuôi thứ tự): Đảo bit (ngược thứ tự ) 1.4.5 Giao thức TPDU APDU được truyền bởi giao thức mức tiếp theo – giao thức truyền thông, được định nghĩa trong ISO 7816 – 3 Cấu trúc dữ liệu được trao đổi giữa máy chủ và thẻ sử dụng giao thức truyền thông được gọi là giao thức truyền thông đơn vị dữ liệu (Transport Protocol Data Unit - TPDU) Hai giao thức truyền thông được ... xỏc thc vi th thụng minh .42 3.2.2 Bo ton d liu vi th thụng minh 45 3.2.3 Bo ton v bo mt d liu vi th thụng minh 47 3.2.4 Thit lp khoỏ phiờn vi th thụng minh 49 (Global... TH THễNG MINH 1.1 KHI NIM TH THễNG MINH Th thụng minh (smart card) thng c gi l th chip hoc th mch tớch hp Mch tớch hp th gm cỏc thnh phn c s dng cho truyn, lu tr v x lý d liu Th thụng minh cú... th thụng minh luụn l t Thc th ngoi cú th l mng di ng hoc cỏc chng trỡnh ng dng trờn mỏy ch a Th thụng minh xỏc thc thc th ngoi Th thụng minh (th TM) i kim tra thc th ngoi (TTN) Th thụng minh v

Ngày đăng: 06/03/2016, 16:23

Mục lục

    CÁC TỪ VIẾT TẮT

    Chương 1. TỔNG QUAN VỀ THẺ THÔNG MINH

    1.1 KHÁI NIỆM THẺ THÔNG MINH

    1.2 CÁC LOẠI THẺ CƠ BẢN

    1.2.1 Thẻ nhớ và thẻ chip

    1.2.2 Thẻ tiếp xúc và thẻ không tiếp xúc

    1.3 PHẦN CỨNG CỦA THẺ THÔNG MINH

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

    1.3.2 Bộ xử lý trung tâm trong thẻ thông minh

    1.3.3 Bộ đồng xử lý trong thẻ thông minh

Tài liệu cùng người dùng

Tài liệu liên quan