高 博,李 彥
(1.重慶理工大學(xué)信息與教育技術(shù)中心,重慶 400054,2.重慶理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院,重慶 400054)
目前,國際上對商用軟件的版權(quán)進(jìn)行保護(hù)的通用慣例是依據(jù)微軟公司在2004年的做法,提供最終用戶許可協(xié)議EULA(End-User License Agreement)并要求用戶遵守。但是,EULA 只是從文本上約定了最終用戶的權(quán)利和義務(wù),并未從技術(shù)角度提供有效的版權(quán)保護(hù)機(jī)制和控制手段,無法控制用戶的任意安裝與使用,更無法保證用戶不私自對軟件進(jìn)行破解。
為了達(dá)到保護(hù)軟件版權(quán)的目的,產(chǎn)生了硬件保護(hù)和軟件保護(hù)兩類方案。其中基于硬件保護(hù)的措施能夠在一定程度上保證軟件版權(quán)的有效控制,但也存在一些問題,如控制手段必須依賴特定的硬件載體(加密狗、安全光盤等),需要運(yùn)行軟件的計算機(jī)硬件設(shè)備數(shù)量眾多時,對授權(quán)硬件載體數(shù)量的需求同步增加導(dǎo)致開銷增加等等。對于服務(wù)器端軟件,硬件保護(hù)方案的問題有時甚至成為業(yè)務(wù)開展的障礙,如一臺服務(wù)器上安裝了3、4套需要授權(quán)的商用軟件,且這些軟件均需使用加密狗進(jìn)行授權(quán)認(rèn)證,則這些加密狗之間非常容易產(chǎn)生沖突,導(dǎo)致軟件無法正常運(yùn)行,而當(dāng)服務(wù)器異地運(yùn)行時,對軟件的安裝調(diào)試將會成倍地增加成本開銷。
文獻(xiàn)[1]基于第三方可信中心提出了一種動態(tài)許可證支持的信任版權(quán)動態(tài)分布式安全認(rèn)證協(xié)議,但依賴Communication Server和CryptoLib Server在一定程度上降低了系統(tǒng)效率且增加了模型的安全風(fēng)險;文獻(xiàn)[2]基于SSL 協(xié)議提出了一種軟件在線授權(quán)系統(tǒng)的安全模型,但需要服務(wù)器提供SSL協(xié)議支持,潛在地需要有效的SSL 證書,增加了成本開銷;文獻(xiàn)[3]提出一種動態(tài)證書副本的軟件版權(quán)保護(hù)模型,該模型較為完善,但不提供對授權(quán)有效期的支持;文獻(xiàn)[4]基于Java語言給出了一種商業(yè)軟件的注冊授權(quán)模型的具體實(shí)現(xiàn)。針對以上問題,本文提出了一套基于硬件特征和動態(tài)許可證的服務(wù)器端軟件授權(quán)認(rèn)證模型(SSAMHFDL),主要用于對C/S或B/S架構(gòu)軟件的服務(wù)器端程序進(jìn)行授權(quán)認(rèn)證,一方面保證軟件版權(quán)能夠得到保護(hù);另一方面則盡量為最終用戶提供方便,減少各種因版權(quán)保護(hù)導(dǎo)致的額外開銷。
定義1 硬件特征碼HFC(Hardware Feature Code)是指用于區(qū)分軟件使用者身份的關(guān)聯(lián)于機(jī)器硬件特征的全局唯一標(biāo)識碼。一般由多個硬件組件的型號、流水號等信息通過某種加密算法生成。
定義2 用戶識別碼UIC(User Identification Code)是指用于區(qū)分軟件使用者身份的關(guān)聯(lián)于用戶自身特征的全局唯一標(biāo)識碼。一般由用戶自身相關(guān)信息通過某種方式進(jìn)行編碼。
定義3 請求向量Req=(HFC,UIC,OP,CHKSUM),其中,HFC 為硬件特征碼;UIC 為用戶識別碼,OP 為操作類型;OP∈{REG,VERIFY,GETLIC},分別表示申請?jiān)S可證、驗(yàn)證許可證和獲取已授權(quán)的許可證文件;CHKSUM 表示對前述三項(xiàng)數(shù)據(jù)的Hash校驗(yàn)值。
定義4 軟件許可證是用于控制軟件版權(quán),由許可證管理器依據(jù)HFC、UIC 和一次性驗(yàn)證碼OTC(One-Time Code)為用戶動態(tài)生成的、加密的復(fù)合數(shù)據(jù)結(jié)構(gòu)。其狀態(tài)LS={LICENSED,UNLICENSED},分別表示已授權(quán)和未授權(quán),其中未授權(quán)包括從未授權(quán)和授權(quán)后注銷兩種情況。
約定1 該商用軟件的許可證授權(quán)與認(rèn)證部分僅在服務(wù)器端運(yùn)行。同一臺服務(wù)器硬件設(shè)備上可運(yùn)行一套或多套該商用軟件。
約定2 為了有效地控制和保證許可證的原子性,在請求發(fā)放證書的時限T 內(nèi)重復(fù)發(fā)送相同的授權(quán)請求將被拒絕發(fā)放許可證;否則,將認(rèn)為是合法的請求,故為其發(fā)放許可證。每當(dāng)處理用戶請求時,分為兩種情況:
(1)該用戶僅有一份額定有效許可證,此時將清空許可證數(shù)據(jù)庫LD(License Database)內(nèi)保存的該用戶上一次的有效許可證信息,并填入此次請求的相關(guān)數(shù)據(jù),然后生成許可證文件發(fā)送給用戶。
(2)該用戶可申請多份額定有效許可證,當(dāng)未達(dá)到該用戶的有效許可證數(shù)量上限時,將新建許可證信息并填入此次請求的相關(guān)數(shù)據(jù),然后生成許可證文件發(fā)送給用戶;否則,將提示用戶許可證數(shù)量已達(dá)上限,此時用戶可根據(jù)情況重置其名下的某個許可證信息,步驟與(1)相似,不再贅述。
約定3 對于同一用戶使用的不同版本的該商用軟件,本模型視同一份副本,即本模型不對許可證區(qū)分軟件版本。
約定4 軟件提供商的授權(quán)管理服務(wù)器LMS(License Management Server)是公平、可信的,商用軟件本身以及授權(quán)代理LA、授權(quán)管理服務(wù)器等程序在軟件實(shí)現(xiàn)上是安全的。
約定5 模型中的通信數(shù)據(jù)完整性通過Hash校驗(yàn)值和安全對稱密碼算法保證;數(shù)據(jù)不可否認(rèn)性通過公鑰算法保證;系統(tǒng)時間戳由服務(wù)器方發(fā)放和控制;時間戳驗(yàn)證需與服務(wù)器方聯(lián)機(jī)。
符號約定:
U(User):用戶;
BS(Business Software):目標(biāo)商用軟件程序;
LA(License Agent):BS 中的授權(quán)認(rèn)證模塊;
LMS:授權(quán)管理服務(wù)器程序;
LD:授權(quán)數(shù)據(jù)庫;
L:許可證;
Ts:申請?jiān)S可證的時間戳;
Tc:當(dāng)前時間戳;
Tr:BS 在運(yùn)行過程中向LMS 發(fā)起授權(quán)驗(yàn)證請求的時間間隔,依特定算法M 生成,Tr∈[60,900];
T:限制申請?jiān)S可證的最短時間間隔;
Lifetime:許可證有效期;
OTCA,B:一次性A,B 共享對稱密鑰;
Ka、Ka′:分別表示a的公鑰和私鑰;
E、D:分別表示加密和解密;
SK(m):表示以K 對m 的簽名;
VK(s):表示以K 驗(yàn)證s的簽名;
C:LMS 驗(yàn)證許可證是否有效的算法;
R:隨機(jī)量。
SSAMHFDL模型的概念結(jié)構(gòu)如圖1所示。
Figure 1 Conceptual structure of SSAMHFDL model圖1 SSAMHFDL模型的概念結(jié)構(gòu)
SSAMHFDL模型的一般操作步驟如下:
(1)用戶購買軟件后運(yùn)行其中的特定功能生成HFC、UIC 并由程序發(fā)送至LA。
(2)LA 向LMS 提交授權(quán)請求數(shù)據(jù),LMS 聯(lián)系LD 進(jìn)行查詢,若數(shù)據(jù)無效或未滿足其他條件,拒絕發(fā)放許可證;否則,生成新的許可證信息并將許可證文件返回至LA。
(3)LA 依據(jù)LMS 的返回信息對該商用軟件進(jìn)行授權(quán)認(rèn)證,或在其界面上提示授權(quán)失敗的相關(guān)內(nèi)容。
根據(jù)上述思想,SSAMHFDL模型的軟件注冊授權(quán)過程包括以下三個階段:
階段1 申請?jiān)S可證。
U 操作BS 從LMS 獲取許可證,共分以下三個步驟:
Step 1 BS 的LA 模塊通過網(wǎng)絡(luò)向LMS 提交授權(quán)請求:
其中,OTCBS,LMS為每次申請授權(quán)時LA 向LMS 取得的OTC。
Step 2 LMS 驗(yàn)證U 提交的信息的合法性:
若Tc-Ts<T,表明在時限內(nèi)多次申請授權(quán),則拒絕并返回,否則轉(zhuǎn)Step 3。
Step 3 根據(jù)U 的授權(quán)請求,LMS 檢查U 提交的HFC、UIC 等數(shù)據(jù)并根據(jù)情況決定是否生成許可證并發(fā)放:
若SL=UNLICENSED,則LMS 動態(tài)生成L并用BS 的公鑰加密,并隨機(jī)生成U、BS 會話密鑰KBS,LMS和新的OTC 密鑰OTC′BS,LMS,加密返回給U:
(1)LMS 生成L,L=EKBS(HFC,UIC,Ts,Lifetime)。
(3)置SL=LICENSED,將HFC、UIC、Ts、Lifetime寫入LD。
若SL=LICENSED,則表明L 已經(jīng)過授權(quán),此時鑒權(quán)HFC、UIC:
若(HFC=HFC′)&&(UIC=UIC′),即該BS 在同一服務(wù)器硬件設(shè)備上重新安裝,為U 發(fā)放L;否則,表明該BS 的運(yùn)行環(huán)境已與申請授權(quán)時不同,拒絕發(fā)放L 并返回。
階段2 注冊授權(quán)軟件。
Step 4 U 向BS 提交申請到的L,BS 使用私鑰解密L:
并與LMS 聯(lián)機(jī),提交Ts和Lifetime,LMS 根據(jù)自己的Tc計算Tc-Ts<Lifetime是否成立,并將結(jié)果返回LA,若此過程執(zhí)行超時,LA 拒絕注冊,否則轉(zhuǎn)Step 5。
Step 5 LA 驗(yàn)證(HFC=HFC′)&&(UIC=UIC′)&&(TC-TS<Lifetime)是否成立,成立則激活BS 相關(guān)功能、保存OTC′BS,LMS、提示U 激活授權(quán)成功并寫入軟件運(yùn)行日志;否則作廢L 并提示U 激活失敗、寫入軟件運(yùn)行日志。
階段3 驗(yàn)證授權(quán)信息。
Step 6 當(dāng)BS 首次運(yùn)行時將采用隨機(jī)算法生成Tr。
Step 7 當(dāng)BS 授權(quán)成功后,經(jīng)過Tr時間,由LA 模塊向LMS 發(fā)起驗(yàn)證授權(quán)許可證信息的請求:
其中OP=VERIFY。
同時,LA 模塊依據(jù)特定算法M 生成新的Tr′。
LMS 對此請求進(jìn)行驗(yàn)證操作:
若L′與LD 中保存的許可證L 之間的時間戳校驗(yàn)之差T′=|L′-L|滿足:
則BS 提交的許可證繼續(xù)有效;否則許可證失效,需要重新申請授權(quán)認(rèn)證。
若此操作超時,則許可證自動失效,已激活的功能將關(guān)閉,轉(zhuǎn)Step 1。
Step 8 經(jīng)過Tr′后,BS 重復(fù)執(zhí)行Step 7。
對于軟件遷移(原服務(wù)器硬件設(shè)備發(fā)生改變也認(rèn)為是遷移的一種特例),即更改BS 的運(yùn)行環(huán)境或更改用戶授權(quán)信息,均需重新執(zhí)行以上步驟以獲取新的L 來激活BS 方可正常使用。
(1)U 提交的HFC、UIC 等信息,通過本模型能且僅能獲得適用于一臺服務(wù)器硬件設(shè)備激活使用的L,且能以L 激活BS 以正常使用。
由2.2 節(jié)知,當(dāng)且僅當(dāng)(HFC=HFC′)&&(UIC-UIC′)&&((Tc-Ts<Lifetime)‖(Tc-Ts<T))時,LMS 才生成并發(fā)放L。當(dāng)對應(yīng)于HFC 和UIC 的L 生成后,原許可證L′則自動失效(被L 的信息覆蓋),L′對應(yīng)的服務(wù)器硬件設(shè)備在經(jīng)過Tr時間后,向LMS 驗(yàn)證授權(quán)許可證是否有效時將失敗,從而保證了許可證的原子性發(fā)放;而當(dāng)U 申請到許可證后,在T 內(nèi)重復(fù)申請將無法得到許可證,這使得重放攻擊無法順利實(shí)施。從而保證U 能且僅能獲得適用于一臺服務(wù)器硬件設(shè)備激活的L。
階段1的各步操作均加密傳輸,且其中使用了OTC 操作,保證了即使同一用戶在不同時刻發(fā)起的申請請求數(shù)據(jù)也毫無關(guān)聯(lián),因此系統(tǒng)能夠安全通信。在U 得到L 后,即使U 篡改了其內(nèi)容也無法通過BS 的簽名驗(yàn)證,從而許可證的完整性得到了保證。
(2)當(dāng)BS 被遷移使用時(或原服務(wù)器硬件設(shè)備發(fā)生改變),階段3的操作將返回失敗的結(jié)果,此時需要U 重新執(zhí)行Step 1來獲取激活BS 的新的L。
根據(jù)SSAMHFDL模型,我們遵循分層化、模塊化的原則,采用PHP 語言構(gòu)建BS 示例程序及其中的LA 模塊,并對BS 程序使用Zend Guard 5.0進(jìn)行混淆加密生成二進(jìn)制中間執(zhí)行代碼,保證BS 程序的代碼無法被逆向工程或反編譯破解。LMS 的實(shí)現(xiàn)則采用了兩種方式——PHP 語言構(gòu)建的Web版本和C#語言構(gòu)建的本地服務(wù)版本,LD 采用MySQL 數(shù)據(jù)庫,完整實(shí)現(xiàn)了普適于Internet/Intranet的軟件授權(quán)認(rèn)證系統(tǒng)。該系統(tǒng)的軟件體系結(jié)構(gòu)如圖2所示:
Figure 2 Multi-layer architecture of software licensing system based on SSAMHFDL model圖2 基于SSAMHFDL模型的軟件授權(quán)認(rèn)證系統(tǒng)多層體系結(jié)構(gòu)
在此系統(tǒng)中,簽名算法采用RSA-SHA1,對稱密碼算法采用IDEA,其密鑰采用OTC 機(jī)制(仿照One-Time Password,一次性密碼)生成,關(guān)鍵驗(yàn)證運(yùn)算采用自主實(shí)現(xiàn)算法。該系統(tǒng)基于CPU 型號和流水號、硬盤序列號以及網(wǎng)卡MAC 地址進(jìn)行復(fù)合邏輯運(yùn)算并進(jìn)行Hash運(yùn)算生成HFC;采用用戶相關(guān)數(shù)據(jù)如用戶姓名、Email、電話等以及當(dāng)前操作系統(tǒng)名稱、版本,BS 運(yùn)行環(huán)境等相關(guān)信息進(jìn)行復(fù)合邏輯運(yùn)算并進(jìn)行Hash運(yùn)算生成UIC。經(jīng)驗(yàn)證,系統(tǒng)具有良好的穩(wěn)定性、可重構(gòu)性、可移植性和可擴(kuò)展性。
目前商用軟件的保護(hù)措施基本放棄了如發(fā)放序列號或注冊碼、給軟件加殼、限制使用時間、功能、使用次數(shù)等方式的純軟件保護(hù)技術(shù),轉(zhuǎn)而選擇加入部分基于硬件特征驗(yàn)證的軟保護(hù)措施。與流行的幾種方案相比較,本系統(tǒng)支持許可證的原子發(fā)放、軟件資源的遷移和回收等,能夠以較弱的限制有效地抵制非法復(fù)制與擴(kuò)散,達(dá)到了EULA 協(xié)議的要求。本模型與其他方案的性能對比如表1所示。
本模型SSAMHFDL 在許可模式上不僅與用戶的本地設(shè)備環(huán)境相關(guān),而且為支持許可證書的授權(quán)轉(zhuǎn)移,由許可證服務(wù)器集中管理證書副本,保證了對二次許可授權(quán)的濫用限制,同時支持許可證書的有效期,符合實(shí)際應(yīng)用需要,能夠較好地對C/S或B/S架構(gòu)軟件的服務(wù)器端程序進(jìn)行版權(quán)保護(hù)。
Table 1 Performance comparison between SSAMHFDL and other models表1 本模型與其他模型的性能對比
在計算機(jī)技術(shù)、互聯(lián)網(wǎng)和電子商務(wù)飛速發(fā)展的今天,軟件的版權(quán)保護(hù)已經(jīng)成為知識產(chǎn)權(quán)保護(hù)的一個重要組成部分,如何有效保護(hù)商用軟件的知識產(chǎn)權(quán)已經(jīng)成為軟件提供商和消費(fèi)者之間亟待解決的重要課題。軟件授權(quán)與破解分別成為“矛”和“盾”,一方技術(shù)的發(fā)展同時也會帶動另一方技術(shù)的飛躍進(jìn)步,因此軟件授權(quán)與版權(quán)保護(hù)任重道遠(yuǎn),仍然需要繼續(xù)探索和進(jìn)步。本文提出的SSAMHFDL 模型達(dá)到了EULA 的要求,可用于對服務(wù)器端商用軟件進(jìn)行授權(quán)認(rèn)證,為軟件版權(quán)保護(hù)提供了一種有效的實(shí)現(xiàn)機(jī)制,可用于實(shí)際生產(chǎn)環(huán)境,也可在此基礎(chǔ)上推廣到其他情況下使用。
[1]Yu Yin-yan,Shang Zhi.Hardware adaptive copyright protection mechanism for digital contents[J].Acta Scientiarum Naturalium Universitatis Pekinensis,2005,41(5):800-808.
[2]Craver S,Katzenbeisser S.Copyright protection protocols based on asymmetric watermarking:The ticket concept[M]∥Communications and Multimedia Security Issues of the New Century,Kluwer Academic Publishers,2001:159-170.
[3]Bordoloi B,Ilami P,Mykytyn P P,et al.Copyrighting computer software:The“l(fā)ook and feel”controversy and beyond[J].Information & Management,1996,30(5):211-221.
[4]Eskicioglu A M,Delp E J.An overview of multimedia content protection in consumer electronics devices[J].Signal Processing:Image Communication,2001,16(7):681-699.
[5]Waller A O.Securing the delivery of digital content over the Internet[J].Electronics &Communication Engineering Journal,2002,4(5):239-248.
[6]Crypkey.Flexible licensing models[EB/OL].[2010-07-10].http://www.cryp-key.com/.
[7]Schneier B.Applied cryptography:Protocols,algorithms,and source code in C[M].吳世忠,譯.北京:機(jī)械工業(yè)出版社,2004.
[8]Stallings W.Cryptography and network security principles and practices[M].劉玉珍,譯.北京:機(jī)械工業(yè)出版社,2003.
[9]Ma Zhao-feng,F(xiàn)eng Bo-qin,Song Qin-bao,et al.Secure authentication protocol for trusted copyright management based on dynamic license[J].Journal of Software,2004,15(1):131-140.(in Chinese)
[10]Milagros D C.Copyright in the digital environment[J].International Information & Library Review,1997,2.(2):201-204.
[11]http://baike.baidu.com/view/1378540.htm.
[12]Ruanaidh J O,Petersen H,Herrigel A,et al.Cryptographic copyright protection for digital images based on watermarking techniques[J].Theoretical Computer Science,1999,2.6(1-2):117-142.
[13]Biehl I,Meyer B.Cryptographic methods for collusion-secure fingerprinting of digital data[J].Computers and Electrical Engineering,2002,2.(1):59-75.
[14]Oz E.Acceptable protection of software intellectual property:A survey of software developers and lawyers[J].Information & Management,1998,34(3):161-173.
[15]Xu Dong-xia.An online software licensing system security model[J].Computer Knowledge and Technology,2010(6):181-183.(in Chinese)
[16]Li Zhang-bing,Li Shu-hong,F(xiàn)eng Jian-xiang.On a model of software copyright proctection based on dynamic certificate dublicate[J].Journal of Chinese Computer Systems,2011(8):1633-1638.(in Chinese)
[17]Chen Zhi-xian.A method for software copyright protection based on machine feature[J].Microelectronics &Computer,2010(7):7-9.(in Chinese)
[18]Yao Jie-jing,Peng Hui.The empirical research on relationship between copyright protection and software piracy——based on the analysis of 56sample countries[J].Studies in Science of Science.2011(6):840-846.(in Chinese)
[19]Zhang Jun.Using DES and RSA algorithms to achieve registration authority of JAVA software[J].Journal of Qingdao Ocean Shipping Mariners College,2006(2):68-71.(in Chinese)
[20]Jiang Shen.Anonymous authentication model of non-centralized network[J].Manufacturing Automation,2010(6):229-231.(in Chinese)
附中文參考文獻(xiàn):
[9]馬兆豐,馮博琴,宋擒豹,等.基于動態(tài)許可證的信任版權(quán)安全認(rèn)證協(xié)議[J].軟件學(xué)報,2004,15(1):131-140.
[15]許冬霞.一種軟件在線授權(quán)系統(tǒng)的安全模型[J].電腦知識與技術(shù),2010(6):181-183.
[16]李章兵,李曙紅,馮建湘.一種動態(tài)證書副本的軟件版權(quán)保護(hù)模型研究[J].小型微型計算機(jī)系統(tǒng),2011,32(8):1633-1638.
[17]陳志賢.一種基于機(jī)器特征的軟件版權(quán)保護(hù)方法[J].微電子學(xué)與計算機(jī),2010,2.(7):7-9.
[18]姚頡靖,彭輝.版權(quán)保護(hù)與軟件業(yè)盜版關(guān)系的實(shí)證研究——基于51個國家的數(shù)據(jù)分析[J].科學(xué)學(xué)研究,2011,2.(6):840-846.
[19]張俊.利用DES和RSA 加密算法實(shí)現(xiàn)JAVA 軟件的注冊授權(quán)策略[J].青島遠(yuǎn)洋船員學(xué)院學(xué)報,2006,2.(2):68-71.
[20]姜參.基于非中心化網(wǎng)絡(luò)的匿名認(rèn)證模型自動化設(shè)計[J].制造業(yè)自動化,2010,32(6):229-231.