Các bƣớc thực hiện:
Khi chƣơng trình phần mềm đƣợc khởi động nó sẽ kích hoạt thiết bị USB Dongle thông qua việc gởi một mã lệnh yêu cầu USB Dongle cung cấp chuỗi bản quyền(license)3. USB Dongle sẽ kiểm tra yêu cầu xem có hợp lệ không, nếu có gởi trả chuỗi license này về cho phần mềm. Vì chuỗi này đƣợc phát sinh theo qui tắc, nên khi nhận đƣợc chuỗi này phần mềm phân tích và kiểm tra, tránh trƣờng hợp chuỗi này bị làm giả. Nếu chuỗi license khớp và hợp lệ thì phần mềm đƣợc thực thi. Nếu không sẽ có thông báo cho ngƣời dùng yêu cầu gắn thiết bị USB Dongle vào và dĩ nhiên lúc này 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 sẽ tạo ra một bộ đếm thời gian(Timer). Timer sẽ đƣợc cấu hình trong khoảng 5-10 giây. Đến mỗi chu kì thời gian, chƣơng trình phần mềm sẽ gọi chức năng trong thƣ viện .dll để phát sinh một chuỗi4
ngẫu nhiên, chƣơng trình gởi chuỗi này xuống cho USB Dongle, cơ chế gởi chuỗi này cũng nhƣ cách hỏi đáp chứng thực license ở bƣớc trên đều qua quá trình mã hóa theo thuật toán AES và có cơ chế kiểm tra tính an toàn của nội dung(checksum).
Khi nhận đƣợc chuỗi này, USB Dongle dựa vào nó để phát sinh ra một chuỗi khác(qua thuật toán hàm băm) và 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ệ trên máy tính cũng có thể tính toán ra một chuỗi từ chuỗi ban đầu mà nó gởi cho USB Dongle để so khớp với kết quả mà USB Dongle trả về. Nếu khớp phần mềm vẫn tiếp tục đƣợc sử dụng, nếu không sẽ 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 này sẽ đƣợc thực hiện liên tục theo chu kỳ thời gian cho trƣớc để đảm bảo rằng USB Dongle vẫn còn tồn tại trên máy tính. Qua đó phần mềm sẽ đƣợc bảo vệ chỉ đƣợc thực thi khi có khóa cứng là thiết bị USB Dongle.
3 chuỗi này đƣợc lƣu ở USB Dongle và nó đƣợc các nhà sản xuất phần mềm ghi vào trƣớc đó.
81
Nếu phần mềm đang đƣợc sử dụng mà USB Dongle bị rút ra thì chƣơng trình sẽ ngừng chạy và 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 vẫn sẽ hoạt động lại bình thƣờng.
Tất cả những xử lý của phần mềm đề cập ở trên đƣợc gọi thực hiện thông qua API của thƣ viện .dll đƣợc cung cấp ban đầu khi phần mềm muốn tiếp cận theo hƣớng chứng thực bằng Dongle.
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 dữ liệu lúc ban đầu
Thiết bị USB Dongle:
o Khóa mặc định cho AES truyền dữ liệu lúc ban đầu
o Chuỗi license với độ dài 20 bytes5
5 ví dụ: 928E-BPF9-2B36-JT26-4XE3
82