作者:徐建祥(netpirate@gmail.com)
時(shí)間:
軟件保護(hù)技術(shù)是指軟件開發(fā)人員或軟件廠商為了保護(hù)軟件的合法性和完整性,采用的加密措施。
序列號(hào)驗(yàn)證 :驗(yàn)證用戶信息與序列號(hào)之間的數(shù)字映射關(guān)系,傳統(tǒng)、便于開發(fā)。
缺陷:破譯者通過跟蹤程序的注冊(cè)過程推算出數(shù)學(xué)映射關(guān)系;一個(gè)合法的序列號(hào)可在多臺(tái)機(jī)器上安裝、使用。
解決方法:根據(jù)本地硬件信息,通過網(wǎng)上驗(yàn)證和在線升級(jí)的軟件保護(hù)方案。
網(wǎng)上驗(yàn)證 :指通過互聯(lián)網(wǎng),對(duì)產(chǎn)品或證書的真?zhèn)芜M(jìn)行認(rèn)證,如學(xué)歷證書驗(yàn)證。
軟件的網(wǎng)上驗(yàn)證:指軟件在安裝注冊(cè)時(shí),將軟件序列號(hào)和用戶計(jì)算機(jī)的相關(guān)硬件信息上傳到服務(wù)器,服務(wù)器驗(yàn)證序列號(hào)的真?zhèn)危涗浻布畔ⅲ⒏鶕?jù)付款情況下傳想要的信息,驗(yàn)證通過后即可正常使用軟件;軟件升級(jí)后,服務(wù)器根據(jù)用戶機(jī)器的硬件信息識(shí)別用戶身份,并對(duì)合法用戶提供升級(jí)服務(wù)。
1、? 多層分布式系統(tǒng)結(jié)構(gòu)
被分割成在不同機(jī)器上協(xié)同運(yùn)行的邏輯單元。各邏輯單元通過局域網(wǎng)或 Internet 共享數(shù)據(jù)和通信。
三層結(jié)構(gòu):
a、? 客戶端應(yīng)用程序在用戶機(jī)器上提供用戶界面。
b、? 應(yīng)用程序服務(wù)器位于可連接到所有客戶端的中央網(wǎng)絡(luò)位置,并提供公共的數(shù)據(jù)服務(wù)。
c、? 遠(yuǎn)程數(shù)據(jù)庫服務(wù)器提供數(shù)據(jù)庫關(guān)系系統(tǒng)( RDDBMS )。
MIDAS(Multi-tier Distributed Application Suite) 即多層分布式應(yīng)用程序解決方案,是 Inprise 提供的集成了多種技術(shù)規(guī)范的多層分布式數(shù)據(jù)庫解決方案,是由 Borland C++ Builder ( BCB ) /Delphi 用來開發(fā)多層應(yīng)用系統(tǒng)使用的中介透明引擎,它具有在客戶端無需任何數(shù)據(jù)庫工具可以讀取遠(yuǎn)程數(shù)據(jù)、網(wǎng)絡(luò)通信量小、多線程、數(shù)據(jù)庫自動(dòng)約束及平衡負(fù)載的特點(diǎn)。
2、? 動(dòng)態(tài) IP 解決方案
a、? 服務(wù)器啟動(dòng)時(shí)將服務(wù)器 IP 地址上傳 IP 地址到網(wǎng)站(固定域名);
b、? 客戶端訪問網(wǎng)站獲取服務(wù)器 IP 地址;
c、? 客戶端注冊(cè)安裝程序與服務(wù)器連接。
本地加密 :網(wǎng)絡(luò)認(rèn)證后的二次加密,防止多機(jī)拷貝。
基本原理:在軟件安裝時(shí)取得本機(jī)特有的硬件信息,經(jīng)過一定的變換,將加密后的郵件信息作為密文公開存放在文件 Keyfile 中;每次運(yùn)行時(shí),軟件經(jīng)過解密密文得到明文,將此信息與實(shí)際讀取的硬件信息相比較,從而驗(yàn)證用戶的合法身份。
計(jì)算機(jī)的唯一硬件標(biāo)識(shí):網(wǎng)卡的 MAC 地址、硬盤序列號(hào)、硬盤分區(qū)表等。
網(wǎng)卡 MAC 地址:即網(wǎng)卡物理地址, 6 字節(jié)地址,時(shí) Ethernet 協(xié)議使用的地址。
硬盤序列號(hào):操作系統(tǒng)格式化硬盤或軟盤時(shí)喜糖都會(huì)給它分配一個(gè)四字節(jié)的序列號(hào)。
操作步驟 :
a、? 動(dòng)態(tài) IP 解析:應(yīng)用程序服務(wù)器注冊(cè)到網(wǎng)站。
b、? 序列號(hào)驗(yàn)證:客戶端到服務(wù)器驗(yàn)證本地的序列號(hào),返回查下結(jié)果。
c、? 讀取和驗(yàn)證本地硬件信息:客戶端通過網(wǎng)絡(luò)驗(yàn)證、成功注冊(cè)時(shí),將本機(jī)硬件信息經(jīng)加密后上傳至服務(wù)器,并保存到本地硬盤文件( Keyfile )中,應(yīng)用程序在執(zhí)行或升級(jí)時(shí)將此信息與實(shí)際讀取的硬件信息相比較,從而驗(yàn)證用戶身份,確保程序只能在安裝時(shí)的機(jī)器上執(zhí)行和升級(jí)。