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

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

128 9 0

Đ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

SỞ KHOA HỌC VÀ CƠNG NGHỆ THÀNH ĐỒ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 SỞ KHOA HỌC VÀ CÔNG NGHỆ THÀNH ĐỒN TP HỒ CHÍ MINH TP HỒ CHÍ MINH 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 Số điện thoại: 0903.015.067 Email: tndhan@selab.hcmus.edu.vn TP Hồ Chí Minh, tháng 10 năm 2011 TÓM TẮT NỘI DUNG NGHIÊN CỨU Không nƣớc phát triển mà nƣớc phát triển, tình trạng vi phạm quyền phần mềm máy tính phổ biến Hiện tại, thực tế nhức nhối Việt Nam Phần mềm đời để bảo hộ quyền tác giả, chủ sở hữu nó; cần có giải pháp hợp lý khả thi để hạn chế việc xâm phạm sử dụng phần mềm khơng có đăng ký Qua khuyến khích việc phát triển phần mềm, tạo yên tâm việc sử dụng phần mềm hợp pháp, quyền phần mềm phải đƣợc tôn trọng thực thi để thúc đẩy phát triển xã hội công nghệ Với phát triển ngày nhanh chóng cơng nghệ thơng tin nhƣ nhu cầu bảo vệ sản phẩm phần mềm, sản phẩm trí tuệ ngày đƣợc quan tâm có ý nghĩa quan trọng Việc ứng dụng hệ thống nhúng bảo vệ sử dụng phần mềm có quyền hƣớng vào thời điểm Một thiết bị đƣợc sản xuất tƣơng thích để đảm bảo có tích hợp vào phần mềm đƣợc đăng ký sử dụng hợp pháp Từ tính cấp thiết ý nghĩa nêu trên, đề tài ―Thiết kế xây dựng thiết bị USB Dongle – bảo vệ phần mềm có quyền‖ đƣợc nhóm xây dựng, có chức chứng thực quyền sử dụng phần mềm có quyền 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 To protect the rights of copyright owners of it We need a reasonable solution and feasible to limit the infringement of licensed software Thereby encouraging the development of new software, creating peace of mind in the use of legitimate software, software copyrights should be respected and implemented to promote social development and technology Today, with the increasingly development of information technology, the need to protect the software product, the brainchild growing interest and of paramount importance The application of embedded systems in the protection of software copyright is one of the new direction in the present time A device made compatible to ensure that when it is integrated into the software will be registered and used legally From the urgency and the sense mentioned above, the project "Design and construction equipment USB Dongle - protect software copyright" was team building, for the right to use the software All rights reserved Lời nói đầu Thành phố Hồ Chí Minh chuyển mạnh mẽ nghiệp cơng nghiệp hóa, đại hóa, vấn đề đặt phải xây dựng nguồn nhân lực trẻ có kiến thức kỹ cao khoa học cơng nghệ, vừa tìm tòi nghiên cứu – sáng tạo vừa mở rộng ứng dụng – triển khai Chƣơng trình Vƣờn Ƣơm Sáng tạo khoa học kỹ thuật trẻ đời, mở hội cho đội ngũ sáng tạo trẻ đƣợc góp măt vào hoạt động khoa học cơng nghệ bậc chuyên gia giỏi giàu kinh nghiệm tạo môi trƣờng để nhà khoa học trẻ phát huy tối đa lực sáng tạo Nhờ chƣơng trình Vƣờn Ƣơm này, mà nhóm có hội mạnh dạn tham gia thử thách để thực đề tài nghiên cứu Nhóm xin chân thành cảm ơn Sở KHCN Tp.HCM Thành đoàn Tp.HCM tạo điều kiện đầu tƣ tốt để nhóm hồn thành đề tài Cám ơn Thầy/Cô hội đồng đánh giá có nhiều góp ý cung cấp tƣ liệu tham khảo Cám ơn bạn thành viên nhóm SELab nhiệt tình làm việc 01 năm qua để đạt kết tốt Tp.HCM, ngày 10 tháng 10 năm 2011 Chủ nhiệm đề tài Trần Nguyên Đại Hãn Tên đề tài: Thiết kế xây dựng thiết bị USB Dongle – bảo vệ phần mềm có 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 công nghệ trẻ Thời gian thực đề tài: Từ 07/2010 đến 10/2011 Mục tiêu: (theo đề cương duyệt) Nhằm hạn chế nhƣ khắc phục tình trạng phần mềm bị bẻ khóa Việc xây dựng USB Dongle nhƣ giải pháp nhằm mang lại cho nhà sản xuất phần mềm hƣớng tiếp cận bảo mật, bảo vệ sản phầm việc sử dụng bất hợp pháp Đề tài nghiên cứu thiết kế xây dựng kiểm thử thiết bị USB Dongle hồn chỉnh, gồm có: Thiết bị USB Dongle ụ hỗ trợ SDK Nội dung: (theo đề cương duyệt) Nghiên cứu chuẩn USB 2.0 Nghiên cứu phƣơng pháp mã hóa khóa để tích hợp vào thiết bị USB Dongle Xây dựng driver cho USB Dongle Xây dựng firmware cho USB Dongle Xây dựng công cụ hỗ trợ phát triển SDK - tƣơng tác đọc USB Dongle lấy lên thơng tin định danh để đăng kí sử dụng cho ứng dụng phần mềm cần chứng thực Phần mềm mẫu chạy PC có sử dụng USB dongle làm bảo vệ chống sử dụng trái phép không đăng kí Kiểm thử triển khai thử nghiệm TT Các nội dung, cơng việc Phần trình bày tƣơng chủ yếu cần đƣợc thực ứ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ài liệu, báo cáo tích hợp vào thiết bị USB Dongle 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 Cài đặt 07 Xây dựng phần mềm mẫu chạy Cài đặt PC để nhận USB Dongle nhằm chứng thực phần mềm có quyền 08 Kiểm thử triển khai thử nghiệm Quy trình kiểm thử, tài liệu báo cáo Danh sách cán tham gia thực đề tài: Cơ quan Nội dung công tác công việc tham gia STT Tên tổ chức, cá nhân Trƣơng Thiên Đỉnh SELAB Chung Quang Khánh SELAB Phạm Đào Võ Nhật Quang SELAB Nguyễn Thị Kiêm Ái SELAB Trần Nguyên Đại Hãn SELAB Mục lục TÓM TẮT NỘI DUNG NGHIÊN CỨU SUMMARY OF RESEARCH CONTENT Lời nói đầu Mục tiêu: (theo đề cương duyệt) Nội dung: (theo đề cương duyệt) Mục lục 10 Danh sách hình 13 Danh sách bảng 16 Danh sách chữ viết tắt 18 CHƢƠNG 1: 19 1.1 Giới thiệu chuẩn USB (1) 19 1.2 Đặc trƣng 20 1.3 Phƣơng thức truyền liệu 23 1.3.1 Các kiểu truyền liệu 23 1.3.2 Cấu trúc lƣu trữ Packet 34 1.4 Các loại Request chuẩn 36 1.4.1 Get_Status 37 1.4.2 Set_Feature 38 1.4.3 Clear_Feature 39 1.4.4 Set_Address 40 1.4.5 Get_Descriptor 41 1.4.6 Set_Descriptor 42 1.4.7 Get_Configuration 42 1.4.8 Set_Configuraion 43 1.4.9 Get_Interface 43 1.4.10 Set_Interface 44 1.4.11 Synch_Frame 44 1.5 Các loại Descriptor chuẩn 44 1.6 Cấu trúc lƣu trữ Descriptor 46 1.6.1 Device descriptor 46 1.6.2 Configuration descriptor 48 1.6.3 Interface descriptor 49 1.6.4 Endpoint descriptor 50 1.6.5 String descriptor 51 CHƢƠNG 52 2.1 Sơ đồ tổng quát (1) 52 2.2 Endpoint Descriptor 53 2.3 Transfer Descriptor 54 2.3.1 General TD 54 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 10 Hình 0-4 – Mơ hình điều phối gói IRP Device Stack IRP IRP – I/O Request Packet gói tin đƣợc đóng gói framework đƣợc dùng để liên lạc driver Device Stack IRP thông thƣờng chứa trƣờng thông tin sau: Thông tin điều khiển, nhƣ loại lệnh request (request type: read, write, control) Thông tin trạng thái trình thực request (request process) Vùng nhớ đệm liệu để driver vận chuyển liệu từ client tới driver ngƣợc lại KMDF Nhƣ phần trình bày, KMDF – Kernel-Mode Driver Framework khung phát triển Driver, chủ yếu tập trung vào kernel-mode Đồng thời, KMDF cung cấp mô hình lập trình dạng kernel-mode để viết driver filter (filter driver), driver chức (function driver), hay driver bus (bus driver) Với KMDF, ta viết đƣợc loại driver sau: Function drivers cho thiết bị hỗ trợ Plug and Play Filter drivers cho thiết bị hỗ trợ Plug and Play Bus drivers cho device stack thiết bị Plug and Play Một vài loại driver miniport, bao gồm NDIS-WDM, giao thức NDIS, Smartcard Các driver Non-Plug and Play 114 a) Kiến trúc mô hình KMDF Hình 0-5 – Kiến trúc mơ hình KMDF Nhìn chung, kiến trúc KMDF tƣơng đồng với kiến trúc WDF, có Application, Kernel Subsystem, Device Stack, …Tuy nhiên ta cần ý, đối tƣợng KMDF đối tƣợng thuộc kernel số loại đối tƣợng đƣợc đóng gói framework b) Cách thức đặt tên đối tƣợng, phƣơng thức, kiện KMDF Tên đối tƣợng KMDF đƣợc viết hoa, thƣờng bắt đầu WDF Ví dụ: Device WDFDEVICE Đối tƣợng thực thể thiết bị Một driver thông thƣờng có đối tƣợng WDFDEVICE cho thiết bị để driver điều khiển thiết bị I/O queue WDFQUEUE Đại diện cho hàng đợi I/O Một driver có hay nhiều đối tƣợng WDFQUEUE I/O request WDFREQUEST Đại diện cho lệnh truy xuất thiết bị (I/O request) 115 Tên phƣơng thức KMDF: WdfObjectOperation Trong đó: Object đối tƣợng thực hành động Operation hành động mà đối tƣợng Object muốn thực Ví dụ, lệnh WdfDeviceCreate tạo đối tƣợng thiết bị (device object) Tên thuộc tính KMDF: WdfObject{Set|Get}Data 10 WdfObject{Assign|Retrieve}Data Trong Object xác định đối tƣợng KMDF thực thao tác gán lấy thông tin Data xác định vùng liệu đƣợc đọc ghi Cách đặt tên hàm kiện KMDF: EvtObjectDescription Trong đó: Object xác định đối tƣợng KMDF Description mô tả cho hành động hàm callback Vi du: EvtDeviceAdd 116 Phụ lục B: Cách tính tỉ lệ vi phạm quyền phần mềm Tỉ lệ vi phạm (%): Trong đó:  Số phần mềm sử dụng trái phép = Tổng số phần mềm - Số phần mềm đƣợc mua  Tổng số phần mềm = Số lƣợng PC x Số phần mềm trung bình/PC Số phần mềm đƣợc mua: Giá trị phần mềm không mua quyền: Theo BSA, báo cáo Điều tra vi phạm quyền phần mềm toàn cầu năm cịn có nội dung Đó khảo sát ý kiến công chúng ngƣời sử dụng máy tính cá nhân thái độ hành vi công chúng liên quan đến nạn vi phạm quyền phần mềm (do hãng nghiên cứu vấn đề xã hội Ipsos Public Affairs thực hiện) Khảo sát cho thấy có ủng hộ cao quyền sở hữu trí tuệ, với 70% đối tƣợng đƣợc khảo sát cho biết sẵn sàng trả phí cho ngƣời sáng tạo sản phẩm để khuyến 117 khích phát triển tiến công nghệ Đặc biệt, tỉ lệ ủng hộ quyền sở hữu trí tuệ đạt mức cao thị trƣờng có tỉ lệ vi phạm cao Khảo sát cho thấy ý kiến chung phần mềm có quyền có chất lƣợng tốt phần mềm khơng quyền đƣợc cho an toàn ổn định Vấn đề nhiều ngƣời sử dụng máy tính cá nhân cịn chƣa hiểu rõ liệu phƣơng thức thơng thƣờng tìm kiếm phần mềm để sử dụng, nhƣ mua giấy phép phần mềm để sử dụng cho nhiều máy tính hay tải chƣơng trình phần mềm từ mạng chia sẻ ngang hàng (P2P network) Đây báo cáo điều tra lần thứ vi phạm quyền phần mềm đƣợc tiến hành đánh giá 116 nƣớc giới BSA phối hợp thực với IDC- hãng nghiên cứu thị trƣờng dự báo ngành CNTT 118 Phụ lục C: Bài báo MƠ HÌNH GIAO TIẾP USB DONGLE – BẢO VỆ PHẦN MỀM DÙNG KHÓA CỨNG TÓM TẮT Nội dung báo đưa mơ hình giao tiếp thiết bị Dongle phần mềm máy tính Mơ hình áp dụng để triển khai cho việc chứng thực quyền sử dụng phần mềm qua thiết bị USB Dongle Mục đích nhằm hạn chế khắc phục tình trạng phần mềm bị bẻ khóa Việc xây dựng USB Dongle giải pháp nhằm mang lại cho nhà sản xuất phần mềm hướng tiếp cận bảo mật, bảo vệ sản phẩm việc sử dụng bất hợp pháp Từ khóa: USB Dongle, bảo vệ phần mềm khóa cứng, bảo mật với Dongle ABSTRACT The contents of the paper is to model the communication between devices Dongle and software on the computer The model is applied to implement the right to use the software via authentication device, USB Dongle Aim to limit and remedy the cracked software The USB Dongle building as a solution to give manufacturers an approach to software security and protection of their products in the illegal use Key Words: USB Dongle, Software protection, Hardware-based software protection GIỚI THIỆU Hơn 20 năm qua, vi phạm pháp luật chép sử dụng trái phép phần mềm tăng lên nhanh chóng giới, cơng nghệ phạm vi thực thi pháp luật bảo vệ phần mềm tiếp tục gia tăng với phƣơng pháp khác Với phát triển ngày nhanh chóng cơng nghệ thơng tin nhƣ nhu cầu bảo vệ sản phẩm phần mềm, sản phẩm trí tuệ ngày đƣợc quan tâm có ý nghĩa quan trọng Việc bảo vệ phần mềm, thông thƣờng qua cách can thiệp xử lý nhƣ sau: serial key, key file, active online, trial, giới hạn chức chƣơng trình… Với biện pháp ứng dụng hệ thống nhúng bảo vệ sử dụng phần mềm có quyền hƣớng Một thiết bị đƣợc sản xuất tƣơng thích để đảm bảo có tích hợp vào phần mềm đƣợc đăng ký sử dụng hợp pháp, gọi chìa khóa 119 Chức dongle xác thực; việc chép bẻ khóa phần mềm qua phần cứng khó nhiều bẻ khóa phần mềm, nên dongle có khả bảo vệ cao: Địi hỏi trình độ ngƣời cơng hiểu biết phần cứng Làm nhiều thời gian nản lịng tính kiên nhẫn ngƣời muốn cơng Cơ chế: có chế tiếp cận thực hiện: Tiếp cận 1: Thiết bị USB Dongle làm nhiệm vụ xác thực xem phần mềm có quyền hay khơng, máy tính cài đặt phần mềm có thiết bị dongle dùng đƣợc Tiếp cận 2: Thiết bị USB Dongle dùng máy tính: thiết bị đƣợc cắm vào máy tính lần đầu, sau chứng thực đọc thơng tin Computer ID máy tính ghi vào dongle, thiết bị dongle dùng máy tính này, đem qua máy tính khác để chứng thực phần mềm khơng đƣợc Trong báo này, mơ hình đƣa tác giả chọn theo hƣớng tiếp cận Mơ hình phần cứng, bảo vệ dựa dongle, chứng thực qua dongle Kiểu ngăn chặn này, làm cho phần mềm - sản phẩm trí tuệ đƣợc bảo vệ tốt nhất, có giá trị đem lại lợi ích, nguồn lợi tối đa cho nhà cung cấp phần mềm Dongle có nghĩa thiết bị nhỏ hoạt động nhƣ ổ USB Nó đƣợc số nhà cung cấp độc quyền sử dụng nhƣ hình thức bảo vệ quyền quản lý kỹ thuật số, nói chung khó làm giả dongle mới, thiết bị phần cứng so với việc tƣơng tác phần mềm Nếu khơng có dongle này, phần mềm chạy chế độ bị hạn chế, không Dongle nhanh chóng phát triển thành thiết bị hoạt động có chứa thu phát nối tiếp (UART) chí có vi xử lý để điều khiển tƣơng tác giao dịch với host Sau phiên thông qua giao diện USB đƣợc lựa chọn ƣu tiên cho giao diện nối tiếp song song Giao diện USB trở nên thống trị Nhằm hạn chế nhƣ khắc phục tình trạng phần mềm bị bẻ khóa Việc xây dựng USB Dongle nhƣ giải pháp nhằm mang lại cho nhà sản xuất phần mềm hƣớng tiếp cận bảo mật, bảo vệ sản phầm việc sử dụng bất hợp pháp Bên cạnh phƣơng pháp bảo vệ phần mềm thông dụng nhƣ là: dùng serial number, key file, time-limited, check online hay trial việc dùng thiết bị dongle đƣợc xem giải pháp phức tạp khó bị cơng Cách thức liên lạc, giao tiếp phần mềm thiết bị dongle 120 Khối xử lý PC Phần mềm đƣợc bảo vệ qua thiết bị Dongle xây dựng đƣợc cung cấp hàm API gọi muốn kiểm chứng, chứng thực có thiết bị Dongle đƣợc cắm vào hay không Một driver đƣợc xây dựng nhằm giao tiếp với thiết bị thơng qua USB vào máy tính Driver đƣợc dùng cho việc giúp hàm API xử lý gởi tín hiệu xuống thiết bị Tất thông tin truyền nhƣ nhận từ phần mềm thiết bị khóa cứng đƣợc mã hóa để bảo tồn thơng tin Hình 0-1: Kiến trúc hệ thống Mô tả Khối bên trái tƣợng trƣng cho khối thành phần liên quan hoạt động máy tính, khối bên phải tƣợng trƣng cho thiết bị USB Dongle Hình 0-2: Sơ đồ activity phần mềm cần chứng thực 121 Khi chƣơng trình phần mềm đƣợc khởi động kích hoạt thiết bị USB Dongle thơng qua việc gởi mã lệnh yêu cầu USB Dongle cung cấp chuỗi quyền(license)10 USB Dongle kiểm tra yêu cầu xem có hợp lệ khơng, có gởi trả chuỗi license cho phần mềm Vì chuỗi đƣợc phát sinh theo qui tắc, nên nhận đƣợc chuỗi phần mềm phân tích kiểm tra, tránh trƣờng hợp chuỗi bị làm giả Nếu chuỗi license khớp hợp lệ phần mềm đƣợc thực thi Nếu khơng có thơng báo cho ngƣời dùng u cầu gắn thiết bị USB Dongle vào dĩ nhiên lúc phần mềm chƣa đƣợc sử dụng Nếu bƣớc chứng thực license hợp lệ, chƣơng trình tạo đếm thời gian(Timer) Timer đƣợc cấu hình khoảng 5-10 giây Đến chu kì thời gian, chƣơng trình phần mềm gọi chức thƣ viện lib để phát sinh chuỗi11 ngẫu nhiên, chƣơng trình gởi chuỗi xuống cho USB Dongle, chế gởi chuỗi nhƣ cách hỏi đáp chứng thực license bƣớc qua q trình mã hóa theo thuật tốn AES có chế kiểm tra tính an tồn nội dung(checksum) Khi nhận đƣợc chuỗi này, USB Dongle dựa vào để phát sinh chuỗi khác(qua thuật toán hàm băm) gởi trả lại cho chƣơng trình phần mềm Phía phần mềm cần đƣợc bảo vệ máy Khối xử lý thiết bị USB Dongle Lệnh đƣợc thực thi tới chip FT232R, chip có giao giao thức USB đến máy tính, giao tiếp tới chip xử lý LPC2103 theo giao thức UART, FT232R nhận đƣợc liệu truyền tới LPC2103 để xử lý, thực chức gởi trả thông tin mà phần mềm PC yêu cầu tùy vào mã lệnh gởi xuống Việc giao tiếp truyền nhận liệu máy tính thiết bị đƣợc mã hóa theo thuật tốn AES để bảo đảm an tồn thuật tốn băm để biết liệu nhận khơng bị thay đổi Hình 0-3: Sơ đồ trạng thái device 10 chuỗi đƣợc lƣu USB Dongle đƣợc nhà sản xuất phần mềm ghi vào trƣớc 11 chuỗi có độ dài ngẫn nhiên từ 56 bytes đến 256 bytes Thiết lập giao tiếp 122 tính tính tốn chuỗi từ chuỗi ban đầu mà gởi cho USB Dongle để so khớp với kết mà USB Dongle trả Nếu khớp phần mềm tiếp tục đƣợc sử dụng, không thông báo lỗi để yêu cầu ngƣời dùng gắn USB Dongle vào máy Thao tác đƣợc thực liên tục theo chu kỳ thời gian cho trƣớc để đảm bảo USB Dongle cịn tồn máy tính Qua phần mềm đƣợc bảo vệ đƣợc thực thi có khóa cứng thiết bị USB Dongle Nếu phần mềm đƣợc sử dụng mà USB Dongle bị rút chƣơng trình ngừng chạy xuất thông báo không nhận thấy USB Dongle Khi USB Dongle đƣợc cắm trở lại, chƣơng trình phần mềm hoạt động lại bình thƣờng Tất xử lý phần mềm đề cập đƣợc gọi thực thông qua API thƣ viện lib đƣợc cung cấp ban đầu phần mềm muốn tiếp cận theo hƣớng chứng thực Dongle Hình 0-4: Sơ đồ thể trao đổi Host Device Trên activity diagram thể hoạt động hệ thống Đầu tiên q trình xác định khóa Bƣớc tiếp theo, chƣơng trình chuyển đến bƣớc xác nhận license Sau công đoạn xác nhận license, hợp lệ chƣơng trình đƣợc kích hoạt, đồng thời khởi động đếm host Ngƣợc lại, chƣơng trình ln trạng thái bị khóa, khơng thể thao tác với chức Trong trƣờng hợp ứng dụng thực thi, tùy theo chiến lƣợc mà sau khoảng thời gian có q trình xác nhận thiết bị Dongle có cịn tồn hay khơng Q trình đƣợc lặp lại suốt thời gian hoạt động ứng dụng Đây quy trình dùng cho việc xác thực USB Dongle, bƣớc đƣợc thực nhƣ sơ đồ Phần trình bày sau làm rõ bƣớc liên quan đến cách thức mà host thiết bị trao đổi liệu, nội dung liệu cách mã hóa, giải mã Để tiện cho việc trình bày ngắn gọn, phần mềm cần chứng thực chạy máy tính đƣợc gọi host, phần Các thơng số đƣợc lƣu trữ:  Phần mềm cần bảo vệ: o Khóa mặc định cho AES truyền liệu lúc ban đầu  Thiết bị USB Dongle: o Khóa mặc định cho AES truyền liệu lúc ban đầu o Chuỗi license với độ dài 20 bytes12 Phân tích thành phần 12 ví dụ: 928E-BPF9-2B36-JT26-4XE3 123 cứng chứng thực thiết bị donge đƣợc gọi device Xác định khóa Q trình đƣợc thực đầu tiên, đảm bảo host thiết bị có đƣợc đầy đủ khóa dùng cho mã hóa giải mã Lúc nhận diện dongle, host lấy ID đặc trƣng thiết bị, tính tốn khóa Ở thiết bị dongle, tính khóa từ ID Kết thúc trình, host thiết bị có đƣợc khóa bí mật dùng để mã hóa giải mã Điều kiện kích hoạt q trình: Một hai điều kiện sau:  Ngay sau ứng dụng đƣợc kích hoạt chạy host  Ngay sau thiết bị đƣợc cắm vào host Các bƣớc thực Trong mơ hình, q trình mã hóa giải mã địi hỏi phải thống khóa host thiết bị cho dù ta sử dụng thuật tốn mã hóa đối xứng hay bất đối xứng Việc trao đổi khóa đƣợc thực qua mô tả nhƣ sau: Host: Qt hệ thống tìm USB Dongle  Nếu có, truy xuất lấy ID thiết bị đế tính tốn khóa bí mật  Nếu khơng tìm thấy, thông báo không nhận thấy thiết bị Xác nhận license Từ việc thiết lập khóa bƣớc trên, hai bện có khóa bí mật trao đổi đổi/hỏi đáp thơng tin qua lại khóa Host tiến hành gởi tín hiệu yêu cầu chuỗi license từ thiết bị, thiết bị kiểm tra yêu cầu Host, trả chuỗi license Host kiểm chứng xem có hợp lệ khơng Nếu khơng hợp lệ chƣơng trình thơng báo lỗi, cịn hợp lệ quy trình tiếp tục sang bƣớc ―Xác nhận tồn thiết bị‖, đƣợc trình bày mục sau Xác nhận tồn thiết bị Q trình phải đảm bảo xác nhận có tồn thiết bị chƣơng trình hoạt động, liệu xác nhận phải đƣợc phát sinh động theo thời gian Bƣớc đƣợc thực liên tục ứng dụng phần mềm chạy Có hai cách tiếp cận khả thi sau:  Tiếp cận 1: Khi ngƣời dùng thao tác thực lệnh, chức từ phần mềm  Tiếp cận 2: Sau khoảng thời gian time-out, chƣơng trình liên tục kiểm xem USB cắm vào Host Đề tài đƣợc thực hƣớng theo cách tiếp cận Sau khoảng thời gian qui định, Host tiến hành chứng thực kiểm tra USB Dongle, âm thầm phát lệnh kiểm tra, USB tồn hợp lệ chƣơng trình phần mềm đƣợc sử dụng bình thƣờng; cịn ngƣợc lại, khơng phát USB Dongle chƣơng trình phần mềm ngừng lại thơng báo Các thuật tốn sử dụng: Thuật tốn mã hóa Hệ thống sử dụng thuật tốn mã hóa sau: Thuật tốn mã hóa Advance Encrytion Standard (AES), với khóa bí mật 128 bits; hàm băm MD5 124  Chuỗi kết hợp xác nhập lại là: ―X470‖  Tiếp tục làm cho cặp ―A8‖  ―U8‖ , ―3E‖  ―QC‖, ―F0‖  ―RO‖, ―7B‖  ―27‖ Thuật tốn phát sinh license License có độ dài 20 bytes, chuỗi quan sát đƣợc theo bảng mã ASCII, gồm có kí tự in hoa từ A-Z, cá kí số từ 0-9 Bƣớc Sau hồn tất bƣớc nói trên, ta đƣợc chuỗi license đầy đủ Ví dụ: "X470-U8A8-QC3EROF0-277B" Các bƣớc thực Chƣơng trình phát sinh license đƣợc viết ngôn ngữ C#, nên có dùng hàm thƣ viện Guid.NewGuid() Bƣớc Phát sinh chuỗi định danh theo kiểu đƣợc tạo GUID (Globally Unique IDentifier) (Wikipedia), có chiều dài 10 bytes Ví dụ: "70A83EF07B" Cách thức chứng thực license Việc chứng thực license đƣợc thực chƣơng trình phần mềm chạy máy tính nhận kết chuỗi license trả từ USB Dongle Chức xác thực xem license có hợp lệ hay khơng đƣợc thực thi giống nhƣ phần trình bày trên, nghĩa block bytes, chọn bytes sau để tính tốn xem bytes đầu có khớp khơng Bƣớc Bƣớc đƣợc thực theo qui tắc bytes phát sinh thêm btyes Để việc phát sinh có qui tắc, phù hợp cho phần mềm dùng đến dongle, chuỗi định danh phần mềm đƣợc đòi hỏi (gọi cho dễ hiểu AppID) Lần lƣợt làm theo trình tự nhƣ ví dụ sau:  bytes đƣợc lấy là: ―70‖  Sử dụng hàm băm MD5 để băm chuỗi: ―70‖+ ―AppID‖ Kết hàm băm cho chuỗi 16 bytes  Tổng bytes chẵn, tính theo số dƣ cho kí tự, chẳng hạn là: ―X‖  Tổng bytes lẻ, tính theo số dƣ cho kí tự, chẳng hạn là: ―4‖ Cú pháp thông tin đƣợc truyền nhận Thông tin liệu đƣợc truyền tải từ Host xuống Device ngƣợc lại có dạng chuẩn đƣợc qui định nhƣ sau: Hình 0-5: Cấu trúc gói tin Diễn giải: 125  Code ID : mã lệnh thực thi  Length : chiều dài phần nội dung  Content : nội dung  Hash Data : phần liệu đƣợc băm từ khối (code + length + content), để thơng tin đƣợc tồn vẹn, khơng bị thay đổi Tất liệu đƣợc mã hóa theo AES truyền nhận Host Device nhằm đảm bảo an tồn thơng tin, che giấu khơng cho cracker đọc đƣợc thông tin liên lạc Hơn nữa, với thiết bị USB Dongle dùng với chip LPC2103 thuộc dòng ARM có chế độ Code Protection xem thử thách trình độ khả bẻ khóa đƣợc phần mềm Ngày nay, với công cụ hỗ trợ (debugger decompiler), thật không khó để can thiệp vào chƣơng trình phần mềm chạy xem đoạn mã thực thi, hay cao thay đổi mệnh đề điều kiện thành dịng lệnh khơng điều kiện vơ nghĩa chẳng hạn… Mơ hình đƣợc đề cập đây, nhằm đƣa hệ thống hạn chế không để bị công theo cách trên; hay nói cách khác, khóa bí mật đƣợc thiết kế để trao đổi nhằm đƣa xử lý xuống dongle Với trao đổi nhƣ thế, gây nhiều khó khăn trở ngại đến ngƣời cơng vào hệ thống Những xử lý dƣới thiết bị đƣợc nạp vùng thực thi chip LPC2103, chí với cơng cụ phần cứng, khơng đọc đƣợc chƣơng trình phân vùng đƣợc nằm chế độ bảo mật phần cứng Thông tin quyền (license) nằm dongle đƣợc lƣu cách xáo trộn để khó bị phát Chi tiết thiết bị phần cứng: LPC2103: vùng nạp chƣơng trình 32Kbytes, hỗ trợ chế ngăn chặn đọc nộ ) Cơ chế bảo vệ Về phần mềm:  Giao tiếp có mã hóa AES, hàm băm, check sum, phát sinh chuỗi ngẫu nhiên thay đổi liên tục, độ dài chuỗi thay đổi, không cố định Về phần cứng:  Cơ chế bảo vệ thiết bị code read protection, đặc trƣng dòng chip LPC NXP: chế cho phép xác lập mức bảo mật hệ thống để việc truy cập vào vùng Flash chip sử dùng ISP bị ngăn cấm 0x000001FC vị trí địa Flash để ghi vào giá trị đặc biệt thực việc Kết luận Đánh giá Thực nghiệm đánh giá Đối với số ngƣời, việc cơng phần mềm để sử dụng thƣờng có động liên quan tới tiền bạc, số khác lại Hoàn thành việc thiết kế xây dựng thiết bị USB Dongle dựa hai chip LPC2103 FT232R Kiến 126 thống bên cạnh phần mềm mẫu để demo việc chứng thực Chƣơng trình chạy ổn định, khơng phát sinh lỗi hay treo máy, đƣợc kiểm tra WinXP Win7, đƣợc thực thông qua test case sau: trúc hệ thống nêu báo đƣợc thực hóa, đƣợc cài đặt thành công thực nghiệm Nhƣ mục tiêu mong muốn, bên cạnh thiết kế mơ hình, chúng tơi xây dựng đƣợc sản phẩm thiết bị USB Dongle có cung cấp hàm thƣ viện xem nhƣ công cụ phát triển hệ ID Test Case Description Expected Result Phần mềm phát chứng Phần mềm chạy khởi động thực thành công với USB USB Dongle đƣợc cắm Dongle > Phần mềm đƣợc cho phép chạy bình thƣờng Phần mềm chạy khởi động Phần mềm không phát USB Dongle không đƣợc USB Dongle > Báo lỗi, phần cắm mềm không đƣợc phép sử dụng Phần mềm không phát Khi phần mềm chạy, rút USB Dongle > Báo lỗi, phần USB Dongle mềm bị khóa, khơng sử dụng đƣợc Phần mềm bị khóa theo Test Phần mềm khơng phát Case ID 2, ngƣời dùng Retry USB Dongle > Báo lỗi, phần lại nhiều lần nhƣng USB mềm không đƣợc phép sử dụng Dongle không đƣợc cắm Phần mềm phát chứng Phần mềm bị khóa theo Test thực thành công với USB Case ID 2, gắn USB Dongle Dongle > Phần mềm đƣợc vào cho phép chạy bình thƣờng Phần mềm bị khóa theo Test Phần mềm không phát Case ID 3, ngƣời dùng Retry USB Dongle > Báo lỗi, phần lại nhiều lần nhƣng USB mềm không đƣợc phép sử dụng Dongle không đƣợc cắm Phần mềm phát chứng Phần mềm bị khóa theo Test thực thành cơng với USB Case ID 3, gắn lại USB Dongle > Phần mềm đƣợc Dongle cho phép chạy bình thƣờng Làm lại tất test case Nhƣ mong muốn 127 Actual Result Test Result Phần mềm đƣợc cho phép chạy bình Pass thƣờng Báo lỗi, phần mềm khơng sử dụng đƣợc Pass Báo lỗi, phần mềm bị khóa, khơng sử dụng đƣợc Pass Báo lỗi, phần mềm không sử dụng đƣợc Pass Phần mềm đƣợc cho phép chạy bình Pass thƣờng Báo lỗi, phần mềm không sử dụng đƣợc Pass Phần mềm đƣợc cho phép chạy bình Pass thƣờng Đúng kết Pass trăm lần Chạy phần mềm test OK WIN XP Chạy phần mềm test 10 OK WIN Chay thử phần mềm có chứng 11 thực USB Dongle 24 OK liên tục mong muốn Lợi ích USB Dongle lần sử dụng, khoảng thời gian sử dụng… Một dongle USB bảo vệ nhiều ứng dụng Tồn mạng đƣợc bảo vệ với khóa phần cứng Mỗi phần mềm đƣợc đăng ký cấm việc sử dụng bất hợp pháp Đáp ứng đủ cho mục đích bảo mât với hiệu kinh tế giá thành cạnh tranh cao Những lợi USB Dongles bảo vệ phần mềm: Bảo vệ dựa phần cứng với USB dongle bảo đảm kinh doanh lợi nhuận cách ngăn chặn vi phạm quyền phần mềm hành vi vi phạm quyền Cung cấp linh hoạt phƣơng pháp cấp phép ngƣời dùng nhƣ: đăng kí sử dụng, cho thuê, trả cho 128 OK Pass OK Pass OK Pass

Ngày đăng: 05/10/2023, 20:18

Xem thêm:

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

TÀI LIỆU LIÊN QUAN