thiết kế xây dựng thiết bị usb dongle - bảo vệ phần mềm có bản quyền - Pdf 25



SỞ KHOA HỌC VÀ CÔNG NGHỆ THÀNH ĐOÀN
TP. HỒ CHÍ MINH TP. HỒ CHÍ MINH

CHƢƠNG TRÌNH VƢỜN ƢƠM
SÁNG TẠO KHOA HỌC VÀ CÔNG NGHỆ TRẺ
***
BÁO CÁO NGHIỆM THU Tên đề tài:
THIẾT KẾ VÀ XÂY DỰNG THIẾT BỊ
USB DONGLE – BẢO VỆ PHẦN MỀM
CÓ BẢN QUYỀN
Chủ nhiệm đề tài: TRẦN NGUYÊN ĐẠI HÃN
Cơ quan chủ trì: TRUNG TÂM PHÁT TRIỂN
KHOA HỌC VÀ CÔNG NGHỆ TRẺ

TP. Hồ Chí Minh, tháng 10 năm 2011
TÓM TẮT NỘI DUNG NGHIÊN CỨU

Không chỉ ở các nƣớc đang phát triển mà cả các nƣớc phát triển, tình trạng vi
phạm bản quyền phần mềm máy tính đều rất phổ biến. Hiện tại, đây đang là thực tế
nhức nhối ở Việt Nam.
Phần mềm ra đời và để bảo hộ các quyền của tác giả, chủ sở hữu của nó; do đó
cần có một giải pháp hợp lý và khả thi để hạn chế việc xâm phạm và sử dụng những
phần mềm không có đăng ký. Qua đó mới khuyến khích việc phát triển phần mềm, tạo
sự yên tâm trong việc sử dụng phần mềm hợp pháp, bản quyền phần mềm phải đƣợc
tôn trọng và thực thi để thúc đẩy sự phát triển xã hội và công nghệ.
Với sự phát triển ngày càng nhanh chóng của công nghệ thông tin nhƣ hiện nay
thì nhu cầu bảo vệ các sản phẩm phần mềm, những sản phẩm trí tuệ ngày càng đƣợc
quan tâm và có ý nghĩa hết sức quan trọng.
Việc ứng dụng hệ thống nhúng trong bảo vệ sử dụng phần mềm có bản quyền là
một trong những hƣớng mới vào thời điểm hiện tại. Một thiết bị đƣợc sản xuất tƣơng
thích để đảm bảo rằng khi có nó tích hợp vào thì phần mềm sẽ đƣợc đăng ký và sử
dụng hợp pháp.
Từ những tính cấp thiết và ý nghĩa nêu trên, đề tài ―Thiết kế và xây dựng thiết bị
USB Dongle – bảo vệ phần mềm có bản quyền‖ đã đƣợc nhóm xây dựng, có chức
năng chứng thực quyền sử dụng các phần mềm có bản quyền.
4

SUMMARY OF RESEARCH CONTENT

Not only in the developing countries, developed countries included, the
situation pirated computer software were very popular. Currently, this is a really
problem in Vietnam.

KHCN Tp.HCM và Thành đoàn Tp.HCM đã tạo điều kiện đầu tƣ tốt nhất để nhóm
hoàn thành đề tài. Cám ơn các Thầy/Cô trong hội đồng đánh giá đã có nhiều góp ý và
cung cấp tƣ liệu tham khảo. Cám ơn các bạn thành viên của nhóm và SELab đã nhiệt
tình làm việc trong 01 năm qua để đạt kết quả tốt nhất.
.
Tp.HCM, ngày 10 tháng 10 năm 2011
Chủ nhiệm đề tài Trần Nguyên Đại Hãn

6

Tên đề tài:
Thiết kế và xây dựng thiết bị USB Dongle – bảo vệ phần mềm có
bản quyền Chủ nhiệm đề tài:
Trần Nguyên Đại Hãn

Cơ quan chủ trì:
Trung tâm phát triển khoa học và công nghệ trẻ

Thời gian thực hiện đề tài:
Từ 07/2010 đến 10/2011


8
TT
Các nội dung, công việc
chủ yếu cần đƣợc thực hiện
Phần trình bày tƣơng
ứng
01
Nghiên cứu chuẩn USB 2.0

Tài liệu, báo cáo
02
Nghiên cứu phƣơng pháp mã hóa khóa để
tích hợp vào thiết bị USB Dongle
Tài liệu, báo cáo
03
Thiết kế phần cứng
Thiết bị
04
Xây dựng driver cho USB Dongle

Báo cáo, cài đặt
05
Xây dựng firmware cho USB Dongle

Cài đặt
06
Xây dựng công cụ hỗ trợ phát triển SDK

Chung Quang Khánh
SELAB

3
Phạm Đào Võ Nhật Quang
SELAB

4
Nguyễn Thị Kiêm Ái
SELAB

5
Trần Nguyên Đại Hãn
SELAB
10

Mục lục

TÓM TẮT NỘI DUNG NGHIÊN CỨU 3
SUMMARY OF RESEARCH CONTENT 4
Lời nói đầu 5
Mục tiêu: (theo đề cương đã được duyệt) 7
Nội dung: (theo đề cương đã được duyệt) 7
Mục lục 10
Danh sách các hình 13
Danh sách các bảng 16
Danh sách chữ viết tắt 18

2.3.2. Isochronous TD 56
2.3.3. Completion Codes 58
2.4. Frame 59
2.5. Liệt kê thiết bị 59
61 11

61
62
63
65
CHƢƠNG 4: CÁC PHƢƠNG PHÁP BẢO VỆ PHẦN MỀM 67
4.1. Khái quát 67
4.2. Các phƣơng pháp thƣờng dùng 67
4.2.1. Dùng chuỗi serial key 67
4.2.2. Giới hạn thời gian sử dụng 68
4.2.3. Hạn chế tính năng, điều kiện sử dụng 69
4.2.4. Dùng tập tin đăng kí 70
4.2.5. Chống sao chép phần mềm từ đĩa CD 70
4.2.6. Bảo vệ bằng khóa cứng 71
72
72
5.1.1. Dongle là gì? 72
5.1.2. Lợi ích của USB Dongle 73
5.2. Chip xử lý chính 73
5.2.1. Chip LPC2103 (4) 73
5.2.2. Chip FT232R (5) 74
: 75


7.4. Cách thức chứng thực license 96
7.5. Cú pháp thông tin đƣợc truyền nhận 97
98
8.1. Các thành phần 98
8.2. Các bƣớc thực hiện 98
8.3. Cách sử dụng phần mềm chứng thực qua Dongle 99
8.4. Kiểm thử USB Dongle qua việc dùng tool hack Error! Bookmark not defined.
8.5. Cơ chế bảo vệ 100
8.6. Đánh giá 101
103
9.1. Kết quả đạt đƣợc 103
9.2. Hƣớng phát triển 105
106
108
: Driver và các khái niệm liên quan 108
1. Driver là gì? 108
2. Khái quát về WDM và WDF 109
3. Kiến trúc WDF 111
4. Mô hình I/O của Windows và Device Stack 112
5. IRP 114
6. KMDF 114
Phụ lục B: Cách tính tỉ lệ vi phạm bản quyền phần mềm 117 13



Hình 3-2: Thống kê 60 quốc gia có tỉ lệ vi phạm bản quyền cao nhất và thấp nhất trên thế giới
năm 2010 64
Hình 4-1: Minh họa nhập chuỗi license khi sử dụng 68
Hình 4-2: Phần mềm chỉ cho dùng tối đa 30 ngày 69
Hình 4-3: Giới hạn của bản phần mềm dùng thử 70
Hình 4-4: Phần mềm đòi hỏi file đăng kí khi cài đặt 70
Hình 4-5: Thiết bị khóa cứng nhƣ một chiếc khóa an toàn cho phần mềm 71
Hình 5-1: Khối Micro controller LPC2103 75
Hình 5-2: Khối FT232 76
Hình 5-3: Khối nguồn 76
Hình 5-4: Mặt trên USB Dongle 77
Hình 5-5: Mặt dƣới USB Dongle 77
Hình 6-1: Mô hình giao tiếp chứng thực qua thiết bị USB Dongle 79
Hình 6-2: Sơ đồ activity của phần mềm cần chứng thực 82
Hình 6-3: Sơ đồ trạng thái của device 83
Hình 6-4: Sơ đồ thể hiện trao đổi giữa Host và Device 84
Hình 6-5: Sơ đồ thể hiện thiết lập khóa 85
Hình 6-6: Sơ đồ thể hiện xác nhận license 86
Hình 6-7: Thông báo hiển thị khi không tìm thấy USB Dongle 87
Hình 6-8: Sơ đồ thể hiện việc xác nhận sự tồn tại của thiết bị 87
Hình 6-9: Giao diện chƣơng trình cấu hình Dongle 90
Hình 7-1: Bƣớc AddRoundKey 92
Hình 7-2: Bƣớc SubBytes 92
Hình 7-3: Bƣớc ShiftRows 93
Hình 7-4: Bƣớc MixColumns 93
Hình 7-5:Một thao tác MD5 95
Hình 7-6: Cấu trúc gói tin 97
Hình 0-1 – Mô hình giao tiếp Driver và thiết bị 108


Bảng 1–15 Thông tin trả về của Get_Status request 38
Bảng 1–16 Các tham số của Set_Feature request 39
Bảng 1–17 Các loại Feature Selector 39
Bảng 1–18 Các tham số của Clear_Feature request 39
Bảng 1–19 Các tham số của Set_Address request 40
Bảng 1–20 Các tham số của Get_Descriptor request 41
Bảng 1–21 Các tham số của Set_Descriptor request 42
Bảng 1–22 Các tham số của Get_Configuration request 42
Bảng 1–23 Các tham số của Set_Configuration request 43
Bảng 1–24 Các tham số của Get_Interface request 43
Bảng 1–25 Các tham số của Set_Interface request 44
Bảng 1–26 Các tham số của Synch_Frame request 44 17

Bảng 1–27 Cấu trúc lƣu trữ Device descriptor 46
Bảng 1–28 Cấu trúc lƣu trữ Configuration descriptor 48
Bảng 1–29 Cấu trúc lƣu trữ Interface descriptor 49
Bảng 1–30 Cấu trúc lƣu trữ Endpoint descriptor 50
Bảng 1–31 Cấu trúc lƣu trữ String descriptor 51
Bảng 1–32 Các loại descriptor 51
Bảng 2–1 Cấu trúc Endpoint Descriptor 53
Bảng 2–2 Cấu trúc lƣu trữ General Transfer Descriptor 54
Bảng 2–3 Cấu trúc lƣu trữ Isochronous Transfer Descriptor 56
Bảng 2–4 Cấu trúc PacketStatusWord 57
Bảng 2–5 Danh sách lỗi giao tiếp 58
Bảng 5–1: Chi tiết các thành phần của USB Dongle 78
Bảng 8–1: Bảng ghi chú các cơ chế bảo mật của dòng LPC 101
Bảng 8–2: Bảng thể hiện các test case khi thực nghiệm 102

1.1. Giới thiệu về các chuẩn USB [1]
USB là một chuẩn kết nối tuần tự trong máy tính, đƣợc sử dụng để kết nối các
thiết bị ngoại vi với máy tính, chúng thƣờng đƣợc thiết kế dƣới dạng các đầu cắm cho
các thiết bị tuân theo chuẩn plug and play (cắm vào là chạy mà không cần phải khởi
động lại hệ thống).
Tháng 01/1996, dòng sản phẩm trang bị USB đầu tiên xuất hiện đánh dấu sự ra
đời của chuẩn USB phiên bản 1.0. Nhƣng phải chờ cho đến năm 1998, USB mới thực
sự thể hiện đƣợc vai trò quan trọng của mình thông qua phiên bản 1.1. Chuẩn USB
phiên bản 2.0 đƣợc đƣa ra vào tháng 04/2000 và đƣợc xem nhƣ là bản nâng cấp của
USB 1.1. Chuẩn USB 2.0 mở rộng băng thông cho ứng dụng đa truyền thông và
truyền với tốc độ nhanh hơn gấp 40 lần so với USB 1.1. Chƣa dừng lại ở đó, USB 3.0
- bản nâng cấp của USB 2.0 - vừa đƣợc công bố vào tháng 11/2008 tại Hội nghị các
nhà phát triển USB. Công nghệ USB 3.0 hứa hẹn mang lại tốc độ nhanh hơn 10 lần so
với chuẩn USB 2.0 hiện nay. Không những thế, USB 3.0 còn bổ sung thêm nhiều tính
năng ấn tƣợng khác nhƣ: tải nhận dữ liệu song song qua 2 luồng riêng biệt, sạc pin
nhanh hơn, tiết kiệm điện năng hơn.

Hình 1-1 Quy trình phát triển của chuẩn USB
Các thông số kỹ thuật của USB đã đƣợc các công ty lớn cùng tham gia xây
dựng, trong đó phải kể đến Compaq, Digital Equipment, IBM, Intel, NEC và Northern
Chương 1 – Tổng quan về chuẩn USB

20

Telecom, Sự hỗ trợ USB thể hiện qua Win32 Driver Model (WMD) và nhờ vậy cho
phép lập trình các phần mềm điều khiển thống nhất dùng cho Win 9x, NT, XP. Trong
các hệ điều hành ra đời từ năm 1998 đã có sự hỗ trợ đầy đủ cho USB (vd: Win98,
NT5.0). Trên thực tế, trong các phiên bản nâng cấp của Win95 (từ phiên bản OEM-
2.1) đã bắt đầu có tính năng hỗ trợ. Từ phiên bản OSR-2.0 của Win95, sự hỗ trợ cho
USB đã thể hiện từ chƣơng trình cài đặt.

Hai sợi vàng và xanh (2 và 3) mang dữ liệu.
1
2
3
4

Hình 1-3 Cấu trúc dây bên trong cáp USB 1.1
 Thiết bị USB 1.1 đƣợc đấu nối theo 2 chuẩn khác nhau, đó là: chuẩn A và chuẩn
B. Đây là 2 chuẩn phổ biến thƣờng dùng.
Chương 1 – Tổng quan về chuẩn USB

22 Hình 1-4 Hai chuẩn kết nối phổ biến của USB
Tín hiệu vào ra ở cổng 1 và 4: tín hiệu nguồn.
Tín hiệu vào ra ở cổng 2 và 3: tín hiệu dữ liệu.
USB chuẩn A: là kiểu kết nối ta thƣờng gặp trên PCs, digital camera, webcam
devices,… Chuẩn này đƣợc cắm vào máy tính và kết nối upstream (ngƣợc dòng)
hƣớng về máy tính.
USB chuẩn B: là kiểu kết nối ta thƣờng gặp trên các loại máy chụp hình, điện
thoại di động, iPod,… Chuẩn này đƣợc cắm vào các thiết bị ngoại vi, kết nối
downstream (xuôi dòng) tới các thiết bị riêng lẻ.
Ngoài ra còn có các USB chuẩn khác nhƣ: mini A, mini B, mini AB.

Hình 1-5 Các chuẩn kết nối khác của USB

Chương 1 – Tổng quan về chuẩn USB

23

bị, đó là:
 Control transfer
 Bulk transfer
 Interrupt transfer
 Isochronous transfer
Hình 1-6 Cơ chế mã hóa NRZI và bit stuffing
Chương 1 – Tổng quan về chuẩn USB

24

1.3.1.1. Control Transfer
Giới thiệu
Tất cả các thiết bị đều phải hỗ trợ Control Transfer thông qua Endpoint 0
có sẵn trên thiết bị. Control Transfer đƣợc dùng với mục đích: Host cần truy
xuất những thông tin cần thiết của thiết bị lúc mới gắn vào cũng nhƣ cấu hình
thiết bị chuẩn bị cho việc trao đổi dữ liệu sau này theo cách mà thiết bị hỗ trợ.
Quá trình truyền dữ liệu
Bao gồm 2 loại là: Read và Write tùy thuộc vào mục đích của Host. Việc
truyền dữ liệu theo mỗi loại trải qua ba giai đoạn là: Setup stage, Data stage
(tùy chọn), Status stage. Data stage (nếu có) có thể chứa 1 hay nhiều
transaction, còn Setup stage và Status stage chỉ chứa duy nhất 1 transaction
nên còn gọi là Setup transaction và Status transaction. Và điều đặc biệt là
Control Transfer có thể truyền theo 2 hƣớng trong cùng 1 ống lệnh (pipe).

Control
transfer
Setup stage
Token
packet
Data packet

- B2: Host gửi Data packet là Data 0 chứa những thông tin về
yêu cầu của Host. Data packet ở Setup stage luôn luôn là 8 byte.
- B3: Nếu nhận đƣợc yêu cầu của Host thành công, Device trả
về Handshake packet thuộc loại ACK.

ii. Data stage

DATAIN ACK
HOST > DEVICE
DEVICE > HOST
HOST > DEVICE
TOKEN PACKET DATA PACKET HANSHAKE PACKET
NAK
STALL
IDLE
IDLE
IDLE
IDLE
IDLE
Data Error
IDLE
Data Error

Hình 1-9 Giai đoạn Data stage trong Control Read transfer
- B1: Host gửi Token packet thuộc loại In.
- B2: Device trả về Data packet là Data 1 chứa dữ liệu mà Host
mong muốn (dữ liệu nếu còn tiếp theo đƣợc chứa xen kẽ trong
DATA 0/1/0/…



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status