1. Trang chủ
  2. » Luận Văn - Báo Cáo

nghiên cứu phát triển ứng dụng cho java card

94 658 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 94
Dung lượng 1,42 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI PHÙNG VIỆT ANH NGHIÊN CỨU PHÁT TRIỂN ỨNG DỤNG CHO JAVA CARD Chuyên ngành: Kỹ thuật Điện tử LUẬN VĂN THẠC SĨ KỸ THUẬT CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN ĐỨC MINH HÀ NỘI – 2014 MỤC LỤC MỤC LỤC .i DANH SÁCH HÌNH VẼ v DANH SÁCH BẢNG BIỂU vi DANH SÁCH TỪ VIẾT TẮT viii LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ THẺ THÔNG MINH VÀ HỆ THỐNG JAVA CARD 1.1 Giới thiệu chung thẻ thông minh 1.1.1 Lịch sử phát triển thẻ thông minh 1.1.2 Thẻ thông minh tiếp xúc 1.1.3 Thẻ thông minh không tiếp xúc .7 1.2 Tổng quan hệ thống Java Card 1.2.1 Công nghệ Java Card .8 1.2.2 Hệ thống Java Card 11 1.3 Hệ thống đề xuất 13 1.3.1 Yêu cầu chức 13 1.3.2 Yêu cầu phi chức 13 1.4 Kết luận 13 CHƯƠNG NGHIÊN CỨU HỆ THỐNG JAVA CARD 14 2.1 Phần cứng thẻ chip 14 2.1.1 Giao diện vật lí 14 2.1.1.1 Chân VCC (C1) 15 2.1.1.2 Chân RST (C2) 15 2.1.1.3 Chân CLK (C3) 15 2.1.1.4 Chân VPP (C6) 16 2.1.1.5 Chân I/O (C7) 16 2.1.1.6 Các chân l ại (C4,C5,C8) 17 2.1.2 Cấu tạo phần cứng chip 17 2.1.3 Mô tả thành phần chip 18 2.1.3.1 Khối xử lý trung tâm (CPU) 18 2.1.3.2 Bản đồ nhớ 21 2.1.3.3 FLASH 23 2.1.3.4 Ngắt 26 Phùng Việt Anh, 12BKTĐT i 2.1.3.5 UART 28 2.1.3.6 Timer 33 2.1.3.7 Bộ định thời khe thời gian (ETU Timer) 35 2.1.3.8 Khối tạo số ngẫu nhiên (RNG) 37 2.1.3.9 Bộ chuyển xung (Clock Switch) 38 2.1.3.10 CRC 40 2.1.3.11 DES 40 2.1.3.12 Các tính bảo mật 43 2.2 Hệ điều hành Java Card 44 2.2.1 Giới thiệu số hệ điều hành Java Card 44 2.2.1.1 Hệ điều hành Java Card c Gemalto 44 2.2.1.2 Hệ điều hành Java Card c NXP 45 2.2.2 Các đặc điểm hệ điều hành Java Card 47 2.2.2.1 Máy ảo Java 47 2.2.2.2 Đặc trưng ngôn ngữ 48 2.2.2.3 Các lớp lõi 50 2.3 Phương thức truyền nhận, trao đổi liệu 52 2.3.1 APDU 53 2.3.1.1 Cặp câu lệnh - phản hồi 53 2.3.1.2 Các trường liệu cặp câu lệnh - phản hồi 54 2.3.2 TPDU APDU giao thức truyền T=0 55 2.3.2.1 Tổng quát 55 2.3.2.2 Trường hợp 56 2.3.2.3 Trường hợp 2S 57 2.3.2.4 Trường hợp 3S 58 2.3.2.5 Trường hợp 4S 59 2.3.2.6 Trường hợp 2E 60 2.3.2.7 Trường hợp 3E 62 2.3.2.8 Trường hợp 4E 63 2.3.3 TDPU APDU giao thức truyền T=1 65 2.3.3.1 Tổng quát 65 2.3.3.2 Trường hợp 65 2.3.3.3 Trường hợp 2S 2E 65 2.3.3.4 Trường hợp 3S 3E 66 Phùng Việt Anh, 12BKTĐT ii 2.3.3.5 Trường hợp 4S 4E 66 2.4 Kết luận 67 CHƯƠNG THIẾT KẾ ỨNG DỤNG THỰC NGHIỆM 68 3.1 Thiết kế ứng dụng thẻ 68 3.1.1 Tổng quan ứng dụng 68 3.1.2 Chức tạo cấu trúc liệu 68 3.1.2.1 Cấu trúc liệu mặc định Java Card 68 3.1.2.2 Cấu trúc liệu ứng dụng DID 69 3.1.3 Chức lưu trữ vào trao đổi thông tin 70 3.1.3.1 Mã hóa 3DES 70 3.1.3.2 Lưu trữ trao đổi thông tin không mã hóa 71 3.1.3.3 Trao đổi lưu trữ thông tin mã hóa 72 3.1.4 Tổng kết lớp phương thức ứng dụng DID 73 3.1.4.1 Lớp File System 73 3.1.4.2 Lớp File Applet 74 3.2 Thiết kế ứng dụng thiết bị đầu cuối 74 3.2.1 Thư viện API 74 3.2.1.1 Thư viện DID_API 75 3.2.1.2 Thư viện DID_LIB 76 3.2.2 Thiết kế công cụ DIDToolkit 77 3.2.2.1 Tổng quan ứng dụng 77 3.2.2.2 Chức tạo cấu trúc liệu 77 3.2.2.3 Chức tương tác với ứng dụng thẻ 78 3.2.2.4 Ứng dụng thử nghiệm 78 3.3 Đánh giá 79 3.4 Kết luận 80 KẾT LUẬN 81 TÀI LIỆU THAM KHẢO 83 BẢNG ĐỐI CHIẾU THUẬT NGỮ VIỆT ANH 85 Phùng Việt Anh, 12BKTĐT iii Lời cảm ơn Trong trình thực luận văn tác giả gặp nhiều khó khăn việc tiếp cận nguồn tài liệu tham khảo kiến thức đại số việc mã hóa liệu Hôm hoàn thành xong luận văn tốt nghiệp, trước hết tác giả xin chân thành cảm ơn TS Nguyễn Đức Minh, thầy tận tình hướng dẫn , bảo, giúp đỡ tác giả hoàn thành luận văn tốt nghiệp Tiếp theo, tác giả xin cảm ơn thầy cô Viện Điện Tử Viễn Thông, đại học Bách Khoa Hà Nội giảng dạy, cung cấp kiến thức cần có để tác giả vận dụng trình thực luận văn tốt nghiệp Và cuối cùng, tác giả xin gửi lời cảm ơn sâu sắc đến gia đình, người thân, bạn bè động viên, giúp đỡ, tạo điều kiện thời gian thực luận văn Hà Nội, ngày 19 tháng năm 2014 Học viên Phùng Việt Anh Phùng Việt Anh, 12BKTĐT iv DANH SÁCH HÌNH VẼ Hình 1-1 Thẻ thông minh tiếp xúc đầu đọc .7 Hình 1-2 Đầu đọc thẻ thông minh không tiếp xúc Hình 1-3 Kiến trúc tổng quát công nghệ Java Card 10 Hình 1-4 Kiến trúc tổng quát hệ thống Java Card 11 Hình 2-1 Sơ đồ chân chip thẻ thông minh tiếp xúc[9] 14 Hình 2-2 Cấu trúc chip THC20F17BD[7] 17 Hình 2-3 Bản đồ nhớ chip THC20F17BD chế độ thường[7] 22 Hình 2-4 Bản đồ nhớ chip THC20F17BD chế độ bờ[7] 22 Hình 2-5 Cấu trúc định thời [7] 33 Hình 2-6 Quy trình trao đổi thông tin ứng dụng thẻ ứng dụng thiết bị đầu cuối 53 Hình 2-7 Cấu trúc câu lệnh APDU[3] 53 Hình 2-8 Cấu trúc APDU phản hồi[3] 54 Hình 3-1 Cấu trúc liệu Java Card 68 Hình 3-2 Cấu trúc liệu ứng dụng DID 69 Hình 3-3 Giao diện tạo cấu trúc tệp liệu DIDToolkit 77 Hình 3-4 Cửa sổ APDU 78 Hình 3-5 Giao diện ứng dụng ID chưa đọc liệu từ thẻ 79 Hình 3-6 Giao diện ứng dụng ID sau đọc liệu từ thẻ 79 Phùng Việt Anh, 12BKTĐT v DANH SÁCH BẢNG BIỂU Bảng 2-1 Bảng đặc tính điện VCC điều kiện bình thường 15 Bảng 2-2 Bảng đặc tính điện RST điều kiện bình thường 15 Bảng 2-3 Bảng đặc tính điện CLK điều kiện bình thường 16 Bảng 2-4 Bảng đặc tính điện I/O điều kiện bình thường 16 Bảng 2-5 Bảng ghi chức chip THC20F17BD (Sắp xếp theo địa chỉ) 18 Bảng 2-6 Bảng mô tả ghi PC 19 Bảng 2-7 Bảng mô tả ghi SP 19 Bảng 2-8 Bảng mô tả ghi ACC 19 Bảng 2-9 Bảng mô tả ghi B 19 Bảng 2-10 Bảng mô tả ghi PSW 20 Bảng 2-11 Bảng mô tả ghi DPTR0/1 20 Bảng 2-12 Bảng mô tả ghi DPS 20 Bảng 2-13 Bảng quy chiếu nhớ mở rộng chế độ thường 22 Bảng 2-14 Bảng quy chiếu nhớ mở rộng chế độ bờ 23 Bảng 2-15 Bảng mô tả ghi trạng thái FLASH (FL_STS) 24 Bảng 2-16 Bảng mô tả ghi FL_SDP1, FL_SDP2 24 Bảng 2-17 Bảng mô tả ghi FL_CON 25 Bảng 2-18 Bảng liệt kê loại ngắt 26 Bảng 2-19 Bảng mô tả ghi IE 27 Bảng 2-20 Bảng mô tả ghi IP 27 Bảng 2-21 Bảng mô tả ghi UBUF 28 Bảng 2-22 Bảng mô tả ghi USR 28 Bảng 2-23 Bảng mô tả ghi UCR 29 Bảng 2-24 Bảng mô tả ghi UCR2 30 Bảng 2-25 Bảng mô tả ghi UCR3 31 Bảng 2-26 Bảng mô tả ghi UIMSK 31 Bảng 2-27 Bảng mô tả ghi UIMSK 32 Bảng 2-28 Bảng mô tả ghi P0 32 Phùng Việt Anh, 12BKTĐT vi Bảng 2-29 Bảng mô tả ghi TCON 33 Bảng 2-30 Bảng mô tả thi TMOD 34 Bảng 2-31 Bảng mô tả ghi TL0, TH0 34 Bảng 2-32 Bảng mô tả ghi ISOTCON 35 Bảng 2-33 Bảng mô tả ghi ISOTMSK 36 Bảng 2-34 Bảng mô tả ghi ISOTDAT0/1 36 Bảng 2-35 Bảng mô tả ghi ISOTRLD0/1 37 Bảng 2-36 Bảng mô tả ghi RNGCTL 37 Bảng 2-37 Bảng mô tả ghi RNGDAT 38 Bảng 2-38 Bảng mô tả ghi CLKSEL 38 Bảng 2-39 Bảng mô tả ghi CLKCON 39 Bảng 2-40 Bảng mô tả ghi SLEEP 39 Bảng 2-41 Bảng mô tả ghi CRC 40 Bảng 2-42 Bảng mô tả ghi DESCTL 41 Bảng 2-43 Bảng mô tả ghi DESD0~DESD7 42 Bảng 2-44 Bảng mô tả ghi VDCON 43 Bảng 2-45 Bảng mô tả ghi FDCON 44 Bảng 2-46 Bảng liệt kê số sản phẩm thẻ Java Gemalto 45 Bảng 2-47 Bảng liệt kê số sản phẩm thẻ Java NXP 46 Bảng 2-48 Bảng liệt kê ngoại lệ hỗ trợ Java Card 50 Bảng 2-49 Bảng liệt kê lớp hỗ trợ Java Card 51 Bảng 2-50 Bảng liệt kê trường hợp cặp câu lệnh - phản hồi 54 Bảng 2-51 Bảng liệt kê dạng câu lệnh APDU 55 Bảng 2-52 Bảng liệt kê từ khóa trạng thái giao thức truyền T=0 56 Bảng 3-1 Cấu trúc tệp liệu ứng dụng DID 70 Bảng 3-2 Bảng mô tả phương thức lớp FileSystem 73 Bảng 3-3 Bảng mô tả phương thức lớp FileApplet 74 Bảng 3-4 Bảng mô tả phương thức thư viện DID_API 75 Bảng 3-5 Bảng mô tả phương thức thư viện DID_LIB 76 Phùng Việt Anh, 12BKTĐT vii DANH SÁCH TỪ VIẾT TẮT APDU Application Protocol Data Unit TPDU Transmission Protocol Data Unit SPOM Self Programmable One-chip Microcomputer DES Data Encryption Standard 3DES Triple DES AES Advance Encryption Standard RSA Rivest, Shamir, Adleman MAC Memory Access Control OTP One Time Programable SFR Special Function Register ETU Elementary Time Unit UART Universal Asynchronous Receiver/Transmitter CRC GP Phùng Việt Anh, 12BKTĐT Cyclic Redundancy Check Global Platform viii Nghiên cứu phát triển ứng dụng cho Java Card Lời mở đầu LỜI MỞ ĐẦU Trong xu hướng điện tử hóa, phương thức trao đổi thông tin, toán trực tiếp vật dần thay việc sử dụng thiết bị đơn giản nhỏ gọn nhiều thẻ thông minh Sự phát triển nhanh chóng công nghệ bán dẫn cho phép nhà sản xuất chip tạo chip hay thẻ thông minh ngày nhỏ gọn với sức mạnh tính toán ngày cao Tuy nhiên với việc có nhiều nhà sản xuất chip, công việc phát triển ứng dụng cho thẻ thông minh gặp phải khó khăn lớn tính tương thích Một ứng dụng phát triển cho chip nhà sản xuất cần phải chỉnh sửa nhiều sử dụng chip nhà sản xuất khác khác biệt hệ điều hành loại thẻ Do đó, nhu cầu tảng chung bên chip để hỗ trợ việc thực thi ứng dụng nêu Công nghệ Java Card phát triển để phục vụ mục đích Với việc tạo môi trường ảo chung tất hệ điều hành hỗ trợ Java Card, công nghệ giúp cho việc phát triển ứng dụng đa chip trở nên dễ dàng, tiết kiệm thời gian nghiên cứu, phát triển, chuyển đổi ứng dụng chip Java Card công nghệ không mới, nhiên thời điểm với phát triển nhanh chóng thị trường thẻ chip thông minh nói chung hay thị trường sim điện thoại, thẻ tín dụng, thẻ thông minh không tiếp xúc nói riêng việc phát triển ứng dụng cho lo ại thẻ lĩnh vực có tiềm phát triển lớn Bởi vậy, tác giả lựa chọn đề tài “Nghiên cứu phát triển ứng dụng cho Java Card” làm đề tài luận văn tốt nghiệp Mục tiêu đề tài tổng hợp sở lý thuyết phần cứng phần mềm công nghệ Java Card, từ thiết kế ứng dụng mẫu cho phép lưu trữ thông tin cá nhân lên thẻ, đồng thời hỗ trợ việc đọc ghi cách bảo mật Từ đời nay, công nghệ Java Card có nhiều thay đổi từ phiên 1.0 phiên 3.0 Tuy nhiên, phiên Java Card phiên sử dụng rộng rãi loại thẻ thông minh SIM điện thoại, thẻ toán quốc tế, loại thẻ không tiếp xúc Qua phiên công nghệ Java Card có thay đổi tương ứng với phát triển phần cứng, hỗ trợ thêm nhiều tính cho phép thẻ thông minh sử dụng nhiều Phùng Việt Anh, 12BKTĐT Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm Thuật toán mã hóa là: Bản mã hóa = EK3(DK2(E K1 (Bản gốc))) Trong đó, gốc mã hóa K1 , sau giải mã K2 cuối mã hóa K3 Thuận toán giải mã là: Bản gốc = DK1 (EK2 (DK3 (Bản mã hóa))) Trong đó, mã hóa giải mã K3, sau mã hóa K2 cuối giải mã K1 Các lựa chọn khóa Có ba lựa chọn khóa mã hóa 3DES:  Loại 1: khóa độc lập với  Loại 2: K1 K2 độc lập, K3 = K1  Loại 3: Cả khóa giống hệt Với lựa chọn khóa trên, loại có độ bảo mật cao với độ dài khóa 168 bit.Loại có độ bảo mật thấp với độ dài khóa 112 bit.Loại mã hóa DES với khóa có độ dài 56 bit Loại Loại có tên gọi khác khóa ba khóa đôi độ dài chúng gấp lần khóa đơn Mã hóa 3DES với khóa đôi sử dụng ứng DID để thực mã hóa giải mã liệu trình truyền nhận thông tin 3.1.3.2 Lưu trữ trao đổi thông tin không mã hóa Quy trình ghi liệu lên tệp:  Ứng dụng thiết bị đầu cuối gửi APDU SELECT FILE để tới tệp mong muốn Ví dụ: APDU = 80A4020100 (Chọn tới tệp 0201)  Ứng dụng thẻ phản hồi lại với APDU = 9000 thể trỏ tới tệp mong muốn  Ứng dụng thiết bị đầu cuối gửi APDU gửi APDU UPDATE BINARY để ghi liệu lên tệp chọn bắt đầu byte 80 thể liệu không mã hóa Ví dụ: APDU = 80D600000B4D41535445522043415244 (Ghi chữ MASTERCARD vào tệp 0201) Phùng Việt Anh, 12BKTĐT 71 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm  Ứng dụng thẻ phản hồi lại với APDU = 9000 thể ghi thành công lên tệp Quy trình đọc liệu lên tệp:  Ứng dụng thiết bị đầu cuối gửi APDU SELECT FILE để tới tệp mong muốn Ví dụ: APDU = 80A4020100 (Chọn tới tệp 0201)  Ứng dụng thẻ phản hồi lại với APDU = 9000 thể trỏ tới tệp mong muốn  Ứng dụng thiết bị đầu cuối gửi APDU gửi APDU READ BINARY để đọc liệu từ tệp chọn bắt đầu byte 80 thể liệu không cần mã hóa Ví dụ: APDU = 80B00000010B (Đọc 11 byte tệp 0201)  Ứng dụng thẻ phản hồi lại với APDU = 4D4153544552204341524490 00 bao gồm phần liệu 11 byte đọc phần từ khóa trạng thái 9000 thể việc đọc xử lý xong 3.1.3.3 Trao đổi lưu trữ thông tin mã hóa Quy trình ghi liệu mã hóa lên tệp:  Ứng dụng thiết bị đầu cuối gửi APDU SELECT FILE để tới tệp mong muốn Ví dụ: APDU = 80A4020100 (Chọn tới tệp 0201)  Ứng dụng thẻ phản hồi lại với APDU = 9000 thể trỏ tới tệp mong muốn  Ứng dụng thiết bị đầu cuối gửi APDU gửi APDU UPDATE BINARY để ghi liệu lên tệp chọn bắt đầu byte 84 thể liệu mã hóa 3DES ứng dụng thiết bị đầu cuối Ví dụ: APDU = 84D6000010C464EAC2A8033E0325320AD57AC7D02B MASTERCARD mã hóa (Ghi chữ khóa 404142434445464748494A4B4C4D4E4Fvào tệp 0201)  Ứng dụng thẻ phản hồi lại với APDU = 9000 thể giải mã đoạn liệu ghi thành công lên tệp Phùng Việt Anh, 12BKTĐT 72 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm Quy trình đọc liệu mã hóa lên tệp:  Ứng dụng thiết bị đầu cuối gửi APDU SELECT FILE để tới tệp mong muốn Ví dụ: APDU = 80A4020100 (Chọn tới tệp 0201)  Ứng dụng thẻ phản hồi lại với APDU = 9000 thể trỏ tới tệp mong muốn  Ứng dụng thiết bị đầu cuối gửi APDU gửi APDU READ BINARY để đọc liệu từ tệp chọn bắt đầu byte 84 thể liệu cần mã hóa Ví dụ: APDU = 80B00000010B (Đọc 11 byte tệp 0201)  Ứng dụng thẻ phản hồi lại với APDU = C464EAC2A8033E0325320AD57AC7D02B 9000 bao gồm phần liệu 16 byte mã hóa phần từ khóa trạng thái 9000 thể việc đọc mã hóa liệu xử lý xong 3.1.4 Tổng kết lớp phương thức ứng dụng DID 3.1.4.1 Lớp File System Bảng 3-2 Bảng mô tả phương thức lớp FileSystem Phương thức FileSystem ( ) Mô tả Phương thức khởi tạo đối tượng, cấp phát nhớ cho tệp liệu getFileIndex( ) Phương thức tìm kiếm vị trí tệp mảng số định danh (ID) createFile ( ) Phương thức tạo tệp liệu với thông tin độ lớn, ID tùy chọn khác checkFile ( ) Phương thức kiếm tra tệp tạo tệp liệu hay thư mục getFile ( ) Phương thức tạo tham chiếu tới tệp liệu mong muốn getSecFile ( ) Phương thức tìm kiếm tệp liệu bảo mật tạo tham chiếu tới tệp tìm thấy Phùng Việt Anh, 12BKTĐT 73 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm 3.1.4.2 Lớp File Applet Bảng 3-3 Bảng mô tả phương thức lớp FileApplet Phương thức FileApplet ( ) Mô tả Phương thức khởi tạo đối tượng, cấp phát nhớ cần thiết install( ) Phương thức cài đặt ứng dụng ID với thông tin đ ầu vào cấu trúc tệp select ( ) Phương thức thực thi ứng dụng chọn deselect ( ) Phương thức thực thi ứng dụng bỏ chọn process ( ) Phương thức quy định hành vi thẻ nhận APDU processCreateStruc ( ) Phương thức tạo cấu trúc liệu từ thông tin mô tả đầu vào trình cài đặt ứng dụng processCreateFile ( ) Phương thức tạo tệp liệu nhận APDU tạo tệp processSelectFile ( ) Phương thức tạo tham chiếu tới tệp liệu chọn số định danh tệp (ID) processUpdateBinary( ) Phương thức ghi liệu lên tệp lựa chọn processReadBinary( ) Phương thức đọc liệu từ tệp lựa chọn processCGS( ) Phương thức chuyển đổi trạng thái thẻ desEncrypt ( ) Phương thức thực mã hóa 3DES desDecrypt ( ) Phương thức thực giải mã 3DES 3.2 Thiết kế ứng dụng thiết bị đầu cuối 3.2.1 Thư viện API Để thẻ giao tiếp trao đổi thông tin với thiết bị đầu cuối, thiết bị đầu cuối cần có ứng dụng thực việc điều khiển đầu đọc phải nắm hành vi thẻ để phản hồi lại tương ứng Để dễ dàng cho công việc phát triển thuận tiện cho việc bổ sung thay thế, thư viện API Phùng Việt Anh, 12BKTĐT 74 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm thiết kế để đóng gói lệnh APDU đồng thời có phương thức hỗ trợ việc giao tiếp với ứng dụng thẻ 3.2.1.1 Thư viện DID_API Thư viện DID_API có phương thức để tạo câu lệnh APDU tương ứng cho ứng dụng DID thẻ Chi tiết phương thức thể tệp mã nguồn DID_API.cs Bảng 3-4 Bảng mô tả phương thức thư viện DID_API Phương thức Mô tả DID_Command ( ) Phương thức khởi tạo đối tượng c2b ( ) Phương thức chuyển đổi chuỗi kí tự hexa sang mảng byte bytesToHex ( ) Phương thức chuyển đổi mảng byte chuỗi kí tự hexa asciiToText ( ) Phương thức chuyển đổi chuỗi kí tự hexa thành chuỗi kí tự paddingMethod2 ( ) Phương thức chèn thêm byte vào chuỗi kí tự hexa để chuỗi có độ dài chia hết cho 16 removePaddingMethod2 Phương thức loại bỏ phần chèn thêm khỏi chuỗi kí tự () hexa tripleDESEncrypt ( ) Phương thức mã hóa 3DES tripleDESDecrypt ( ) Phương thức giải mã 3DES initializeUpdate( ) Phương thức tạo APDU lệnh INITIALIZE UPDATE externalAuthenticate ( ) Phương thức tạo APDU lệnh EXTERNAL AUTHENTICATE SelectApplet ( ) Phương thức tạo APDU lệnh SELECT DID_ChangeGlobalState Phương thức tạo APDU lệnh CGS DID () DID_SelectFile ( ) Phương thức tạo APDU lệnh SELECT FILE DID DID_UpdateBinary ( ) Phùng Việt Anh, 12BKTĐT Phương thức tạo APDU lệnh UPDATE BINARY 75 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm DID DID_ReadBinary ( ) Phương thức tạo APDU lệnh READ BINARY DID DID_InstallApplet ( ) Phương thức tạo APDU lệnh INSTALL cho ứng dụng DID 3.2.1.2 Thư viện DID_LIB Thư viện DID_LIB bao gồm phương thức để giao tiếp với đầu đọc, gửi nhận APDU phương thức tổng hợp nhiều câu lệnh APDU để thực việc giao tiếp ứng dụng thiết bị đầu cuối với thẻ Chi tiết phương thức thể tệp mã nguồn DIDManager.cs Bảng 3-5 Bảng mô tả phương thức thư viện DID_LIB Phương thức Mô tả DIDManager ( ) Phương thức khởi tạo đối tượng stringToAPDU ( ) Phương thức chuyển đổi chuỗi kí tự sang đối tượng câu lệnh APDU apduSend ( ) Phương thức gửi APDU từ đầu đọc tới thẻ nhận lại APDU phản hồi readerList ( ) Phương thức liệt kê đầu đọc thẻ kết nối với thiết bị đầu cuối writeToFile ( ) Phương thức ghi liệu lên tệp ứng dụng DID thẻ readeFromFile ( ) Phương thức đọc liệu từ tệp ứng dụng DID thẻ checkAppletExist ( ) Phương thức kiếm tra ứng dụng cài đặt thẻ hay chưa installDIDApplet ( ) Phùng Việt Anh, 12BKTĐT Phương thức thực cài đặt ứng dụng DID lên thẻ 76 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm 3.2.2 Thiết kế công cụ DIDToolkit 3.2.2.1 Tổng quan ứng dụng DIDToolkit công cụ thiết kế thiết bị đầu cuối Các thư viện DID_API DID_LIB sử dụng DIDToolkit cho phép người dùng sử dụng DIDToolkit để tương tác với ứng dụng DID thẻ Ngoài DIDToolkit thiết kế với giao diện người dùng giúp người sử dụng dễ dàng thao tác 3.2.2.2 Chức tạo cấu trúc liệu Chức công cụ cho phép tạo cấu trúc liệu bên thẻ cách trực quan.Các tệp liệu tao có cấu trúc bảng 3.1.Sau tạo cấu trúc liệu, đoạn mã mô tả cấu trúc tự động sinh làm liệu đầu vào cài đặt ứng dụng Cấu trúc liệu hình 3.3 mô tả đoạn mã: 803F0080020720003F0100000500001011111111111111111111111111111111800 20000062B343D464F5800020120000170000900020220000170003200020320000 170000A00020420000170006400020520000170006400020620000 1701000 Hình 3-3 Giao diện tạo cấu trúc tệp liệu DIDToolkit Phùng Việt Anh, 12BKTĐT 77 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm 3.2.2.3 Chức tương tác với ứng dụng thẻ DIDToolkit thực việc tương tác với ứng dụng thẻ thông qua cửa sổ APDU, cho phép gửi câu lệnh APDU đến thẻ nhận phản hồi trở lại Trong ví dụ hình 3.4, cửa sổ APDU sử dụng để gửi APDU để ghi thông tin vào tệp liệu thẻ Hình 3-4 Cửa sổ APDU 3.2.2.4 Ứng dụng thử nghiệm Ứng dụng thử nghiệm mô chứng minh nhân dân điện tử Khi chạy ứng dụng đọc thông tin từ thẻ điền vào trường liệu tương ứng Phùng Việt Anh, 12BKTĐT 78 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm Hình 3-5 Giao diện ứng dụng ID chưa đọc liệu từ thẻ Hình 3-6 Giao diện ứng dụng ID sau đọc liệu từ thẻ 3.3 Đánh giá Hệ thống sau thử nghiệm đạt chức đề bao gồm:  Ứng dụng DID.cap tải cài đặt lên thẻ  DID cho phép tự cấu trúc liệu thẻ Phùng Việt Anh, 12BKTĐT 79 Nghiên cứu phát triển ứng dụng cho Java Card Thiết kế ứng dụng thực nghiệm  Hệ thống hỗ trợ việc đọc ghi liệu thẻ  Thông tin trao đổi thẻ ứng dụng thiết bị đầu cuối dạng gốc dạng mã hóa  Ứng dụng thiết bị đầu cuối có giao diện người dùng để thao tác Tuy nhiên, mặt chức hệ thống số điểm cần bổ sung cải thiện:  Các chức ứng dụng DID thẻ đơn giản mở rộng để hỗ trợ thêm nhiều tính tùy thuộc vào khả thẻ  Giao diện chức ứng dụng thiết bị đầu cuối cần bổ sung để phù hợp với ứng dụng cụ thể 3.4 Kết luận Chương luận văn sử dụng sở lý thuyết nêu Chương để thiết kế hệ thống Java Card đơn giản Hệ thống bao gồm hai phần: phần thẻ phần thiết bị đầu cuối Phần thẻ gồm thẻ thông minh cài hệ điều hành Java Card 2.1.1, thẻ cài ứng dụng DID cho phép người dùng tự tạo cấu trúc liệu thẻ để lưu trữ thông tin cá nhân Ứng dụng thiết bị đầu cuối thiết kế dạng công cụ cho phép tương tác với ứng dụng DID thẻ Quá trình trao đổi liệu hai ứng dụng thực dạng không bảo mật sử dụng câu lệnh không mã hóa sử dụng mã hóa 3DES để mã hóa liệu kênh truyền nhằm đảm bảo tính bí mật thông tin Phùng Việt Anh, 12BKTĐT 80 Nghiên cứu phát triển ứng dụng cho Java Card Kết luận KẾT LUẬN Sau phần tổng kết hướng phát triển luận văn: I/ Những nội dung trình bày luận văn: Giới thiệu tổng quát thẻ thông minh hệ thống Java Card  Tìm hiểu lịch sử xu hướng phát triển thẻ thông minh, giới thiệu loại thẻ thông minh  Tìm hiểu sơ công nghệ thẻ Java  Tìm hiểu sơ hệ thống Java Card  Đề xuất hệ thống lưu trữ thông tin thẻ sử dụng thẻ Java Nghiên cứu chi tiết hệ thống Java Card  Trình bày cấu tạo phần cứng thẻ chip  Trình bày kiến trúc hệ điều hành Java Card  Trình bày giao thức truyền nhận liệu thẻ thiết bị đầu cuối Tiến hành thiết kế ứng dụng Java Card  Thiết kế ứng dụng Java thẻ  Thiết kế thư viện ứng dụng thiết bị đầu cuối  Chạy thử nghiệm hệ thống  Đánh giá chức hệ thống II/ Kết thu luận văn:  Cung cấp sở lí thuyết phần cứng phần mềm cho việc phát triển ứng dụng cho thẻ thông minh sử dụng công nghệ Java Card  Xây dựng thư viện với phương thức cho phép đẩy nhanh trình phát triển ứng dụng Java Card  Xây dựng chương trình thực nghiệm cho phép lưu trữ thôn tin lên thẻ Java Chương trình thực chức năng: Phùng Việt Anh, 12BKTĐT 81 Nghiên cứu phát triển ứng dụng cho Java Card Kết luận o Chức lưu trữ: ứng dụng DID thẻ cho phép lưu trữ thông tin dạng tệp với độ dài không 4KB tệp o Chức hiển thị: ứng dụng thiết bị đầu cuối có giao diện ứng dụng cho phép người dùng tương tác với thẻ, ghi thông tin lên thẻ hiển thị thông tin từ thẻ lên hình o Chức mã hóa: ứng dụng thẻ thiết bị đầu cuối hỗ trợ việc mã hóa liệu trước gửi, giải mã liệu nhận o Chức mở rộng: ứng dụng thẻ thiết bị đầu cuối có thư viện kèm phục vụ việc mở rộng chức hai ứng dụng III/ Hướng phát triển luận văn:  Tiếp tục tạo thêm chức bảo mật cho ứng dụng thẻ như: hỗ trợ mã hóa AES, liệu lưu trữ thẻ dạng thay đổi trật tự  Tạo giao diện cho ứng dụng DID thẻ cho phép tương tác với ứng dụng khác cài đặt thẻ  Tùy biến ứng dụng thiết bị đầu cuối để phù hợp với yêu cầu cụ thể hệ thống khác hệ thống quản lý sinh viên, hệ thống quản lý bệnh nhân … Phùng Việt Anh, 12BKTĐT 82 Nghiên cứu phát triển ứng dụng cho Java Card Tài liệu tham khảo TÀI LIỆU THAM KHẢO [1] Jorge Ferrari, Rorbert Mackinnon, Susan Poh, Lakshman Yatawara, “Smart Cards: A Case Study”, International Technical Support Organization, October, 1998 [2] ISO/IEC (1998, October 15) Identification cards - Integrated circuit(s) card with contacts - Part 1: Physical characteristics [3] ISO/IEC (1999, March01) Information technology - Identification cards Integrated circuit(s) cards with contacts - Part 2: Dimensions and location of the contacts [4] ISO/IEC (2006, November01).Identification cards - Integrated circuit(s) cards - Part 3: Cards with contacts - Electrical interface and transmission protocols [5] ISO/IEC (2005, January15).Identification cards - Integrated circuit cards Part 4: Organization, security and commands for interchange [6] GlobalPlatform (2011, January).Card Specification Version 2.2.1 Public Release [7] Tongfang Microelectronics Company Contact Smart Card IC User Manual, Part Number: THC20F17BD, Product Version: 1.0 [8] Sun Microsystem, Inc (1998, July 17).Java Card Applet Developer’s Guide [9] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Smart_card, truy cập cuối ngày 18 tháng 09 năm 2014 [10] Wikipedia,the free encyclopedia, https://www.usenix.org/legacy/events/smartcard99/full_papers/montgomery/m ontgomery_html/, truy cập cuối ngày 18 tháng 09 năm 2014 [11] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Symmetrickey_algorithm, truy cập cuối ngày 18 tháng 09 năm 2014 [12] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Data_Encryption_Standard , truy cập cuối ngày 18 tháng 09 năm 2014 Phùng Việt Anh, 12BKTĐT 83 Nghiên cứu phát triển ứng dụng cho Java Card Tài liệu tham khảo [13] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Triple_DES, truy cập cuối ngày 18 tháng 09 năm 2014 [14] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Advanced_Encryption_Standard , truy cập cuối ngày 18 tháng 09 năm 2014 [15] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/Publickey_cryptography, truy cập cuối ngày 18 tháng 09 năm 2014 [16] Wikipedia,the free encyclopedia, http://en.wikipedia.org/wiki/RSA_(cryptosystem), truy cập cuối ngày 18 tháng 09 năm 2014 Phùng Việt Anh, 12BKTĐT 84 Nghiên cứu phát triển ứng dụng cho Java Card Phụ lục BẢNG ĐỐI CHIẾU THUẬT NGỮ VIỆT ANH Advance Encryption Standard Chuẩn mã hóa tiên tiến Asymmetric key cryptography Thuật toán mã hóa khóa bất đối xứng Card Personalization Cá thể hóa thẻ Ciphertext Bản mã hóa Cryptography Mật mã học Data Encryption Standard Chuẩn mã hóa liệu Elementary Time Unit Đơn vị thời gian Plaintext Bản gốc Subkey Khóa Symmetric key algorithm Thuật toán mã hóa khóa đối xứng Universal Asynchronous Bộ truyền nhận không đồng Receiver/Transmitter Phùng Việt Anh, 12BKTĐT 85 [...]... dụng Java Card với các phiên bản 2.2.1 và 2.2.2 Hình 1-3 Kiến trúc tổng quát công nghệ Java Card Phùng Việt Anh, 12BKTĐT 10 Nghiên cứu phát triển ứng dụng cho Java Card Tổng quan 1.2.2 Hệ thống Java Card Hình 1-4 Kiến trúc tổng quát của một hệ thống Java Card Mô hình hệ thống Java Card hoàn chỉnh được thể hiện như trong hình 1.4: Toàn bộ hệ điều hành hỗ trợ Java Card và các ứng dụng trển thẻ được triển. .. việc quản lý, các ứng dụng Java Card cũng tuân theo bộ tiêu chuẩn GlobalPlatform (GP) Phùng Việt Anh, 12BKTĐT 8 Nghiên cứu phát triển ứng dụng cho Java Card Tổng quan Đặc tính mà các ứng dụng Java Card hướng tới là tính tương thích và tính bảo mật Tính tương thích được thể hiện ở việc Java Card nhắm tới mục tiêu tạo ra một môi trường chuẩn cho thẻ thông minh, cho phép các ứng dụng Java có thể chạy trên... một ứng dụng Java Card bao giờ cũng sử dụng ít đoạn mã hơn ứng dụng Java truyền thống Điều này giúp tiết kiệm bộ nhớ trong điều kiện Phùng Việt Anh, 12BKTĐT 9 Nghiên cứu phát triển ứng dụng cho Java Card Tổng quan tài nguyên trên thẻ thông minh rất hạn chế Đổi lại, một số tính năng của Java không được hỗ trợ trong Java Card Thư viện lớp và thư viện chạy của Java Card có nhiều điểm khác so với Java, ... trên phần cứng của chip.Hệ điều hành cung cấp các dịch vụ cho phép truy nhập tới từng thành phần phần cứng trên chip Trong hệ thống Java Card, hệ điều hành trên chip đã được cài sẵn một môi trường thực thi Java Card (JCRE) Phùng Việt Anh, 12BKTĐT 11 Nghiên cứu phát triển ứng dụng cho Java Card Tổng quan Môi trường thực thi Java Card là phần lõi của công nghệ Java Card Nó bao gồm một máy ảo Java Card (JCVM)... thống Java Card sẽ được mô tả chi tiết tại các phần tương ứng trong Chương 2 .Nghiên cứu hệ thống Java Card Phùng Việt Anh, 12BKTĐT 12 Nghiên cứu phát triển ứng dụng cho Java Card Tổng quan 1.3 Hệ thống đề xuất Qua việc nghiên cứu cấu tạo, hiệu năng của chip và khả năng hộ trợ của công nghệ Java Card, mục tiêu của luân văn là thiết kế một hệ thống cho phép lữu trữ và quản lý thông tin cá nhân trên thẻ Java. .. 2 .Nghiên cứu về hệ thống Java Card của luận văn Cách thức triển khai hệ thống đề xuất sẽ được thể hiện trong Chương 3 .Triển khai hệ thống thử nghiệm Phùng Việt Anh, 12BKTĐT 13 Nghiên cứu phát triển ứng dụng cho Java Card Nghiên cứu hệ thống Java Card CHƯƠNG 2 NGHIÊN CỨU HỆ THỐNG JAVA CARD 2.1 Phần cứng thẻ chip 2.1.1 Giao diện vật lí Về mặt vật lý, thẻ Java là loại thẻ thông minh tiếp xúc Các quy định về... ảo Java Card (JCVM) và một bộ thư viện khung (JCAPI) cho phép các ứng dụng Java Card có thể được thực thi trên thẻ JCRE chịu trách nhiệm quản lý các ứng dụng trên thẻ bao gồm việc: cấp phát bộ nhớ cho ứng dụng, phân tách các ứng dụng với nhau và thực hiện viện truyền nhận dữ liệu giữa ứng dụng trên thẻ và ứng trên thiết bị đầu cuối Các ứng dụng Java Card trên thẻ được thiết kế dưới dạng Applet.Applet... một môi trường chạy Java Card mà cốt lõi là một máy ảo Java Máy ảo Java này chịu trách nhiệm thực hiện các đoạn mã dựa trên các bộ thư viện khung và ngăn cách các ứng dụng được cài đặt với nhau Chính nhờ máy ảo Java này mà các ứng dụng Java Card có thể chạy được trên các chip khác nhau của các hãng sản xuất khác nhau Phùng Việt Anh, 12BKTĐT 2 Nghiên cứu phát triển ứng dụng cho Java Card Lời mở đầu ... hay thẻ Mifare của Phùng Việt Anh, 12BKTĐT 7 Nghiên cứu phát triển ứng dụng cho Java Card Tổng quan NXP Trong khuôn khổ của luận văn, thẻ thông minh không tiếp xúc sẽ không được xem xét Hình 1-2 Đầu đọc và thẻ thông minh không tiếp xúc 1.2 Tổng quan về hệ thống Java Card 1.2.1 Công ngh Java Card Thẻ Java hay Java Card là công nghệ cho phép các ứng dụng Java có thể hoạt động một cách an toàn và bảo... tập trung vào nghiên cứu và phân tích tiêu chuẩn ISO 7816 phần một đến bốn, đồng thời sử dụng thêm bộ tiêu chuẩn GP (Global Plaform) để thực hiện việc phát triển ứng dụng cho thẻ thông minh tiếp xúc chạy hệ điều hành Java Card, gọi tắt là thẻ Java Phùng Việt Anh, 12BKTĐT 6 Nghiên cứu phát triển ứng dụng cho Java Card Tổng quan Hình 1-1 Thẻ thông minh tiếp xúc và đầu đọc 1.1.3 Thẻ thông minh không tiếp

Ngày đăng: 23/11/2016, 04:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w