●孫曉麗,陽廣元(西南民族大學(xué) 圖書館,四川 成都 610041)
所謂資源服務(wù)盜鏈?zhǔn)侵肝唇?jīng)合法性認(rèn)證授權(quán),非法鏈接到高校數(shù)字圖書館所提供的各種數(shù)字資源服務(wù),并直接利用數(shù)字圖書館的帶寬在資源服務(wù)盜鏈者的網(wǎng)站上顯示和散布該資源服務(wù),從而為資源服務(wù)盜鏈者謀取利益。這既大量消耗數(shù)字圖書館的有效網(wǎng)絡(luò)帶寬,影響合法讀者對數(shù)字圖書館的正常利用,又將因數(shù)字圖書館防盜鏈能力不足而引起如數(shù)字版權(quán)等法律問題。
本文通過對Cookie技術(shù)的研究,結(jié)合Cookie技術(shù)在Web服務(wù)安全認(rèn)證系統(tǒng)[1]中的運(yùn)用,設(shè)計并實(shí)現(xiàn)了一種基于Cookie的數(shù)字圖書館防盜鏈方案DLAMBC(Digital Librar Anti-leech Method Based on Cookie)——利用Cookie技術(shù)具有保持會話狀態(tài)的特性實(shí)現(xiàn)對數(shù)字圖書館訪問者的身份認(rèn)證授權(quán),即未經(jīng)認(rèn)證授權(quán)的訪問者只能瀏覽數(shù)字圖書館所提供的各種數(shù)字資源服務(wù),而無法訪問和使用這些數(shù)字資源服務(wù),從而阻斷盜鏈者對數(shù)字資源服務(wù)的盜鏈,實(shí)現(xiàn)數(shù)字圖書館的防盜鏈,有效增強(qiáng)數(shù)字圖書館的安全性。
防盜鏈方案的設(shè)計既要考慮方案的實(shí)施是否影響合法讀者對數(shù)字圖書館的正常利用,又要考慮Cookie運(yùn)用到數(shù)字圖書館防盜鏈中帶來的新安全問題。本方案在設(shè)計過程中綜合考慮了防盜鏈能力、實(shí)現(xiàn)難度、安全性及適應(yīng)性四個方面的因素。防盜鏈能力強(qiáng)且高效;運(yùn)用成熟的技術(shù)實(shí)現(xiàn)防盜鏈方案;運(yùn)用成熟的安全技術(shù)方案提升防盜鏈方案自身安全性;運(yùn)用成熟的Cookie技術(shù)傳輸認(rèn)證授權(quán)信息以增強(qiáng)防盜鏈方案適應(yīng)性,基于Cookie的數(shù)字圖書館防盜鏈方案如圖1所示。
圖1 基于Cookie的數(shù)字圖書館防盜鏈方案
方案采用Cookie傳輸認(rèn)證授權(quán)信息;認(rèn)證授權(quán)服務(wù)器對數(shù)字圖書館訪問者進(jìn)行統(tǒng)一認(rèn)證授權(quán);讀者同步系統(tǒng)保證認(rèn)證授權(quán)服務(wù)器中的有效讀者數(shù)據(jù)與匯文數(shù)據(jù)庫服務(wù)器中的有效讀者數(shù)據(jù)保持一致;匯文網(wǎng)上圖書館直接讀取匯文數(shù)據(jù)庫服務(wù)器中的有效讀者數(shù)據(jù)進(jìn)行認(rèn)證授權(quán);系統(tǒng)管理員通過匯文流通管理系統(tǒng)對有效讀者進(jìn)行管理。
為確保認(rèn)證授權(quán)信息傳輸?shù)陌踩?,方案引入會話密鑰 (Session Key)[2]以加解密每次會話 Cookie中攜帶的認(rèn)證授權(quán)信息,并利用它來獲取本館只提供給合法讀者的數(shù)字資源服務(wù)。由于會話密鑰只在每次會話期間有效,即每次會話結(jié)束時,會話密鑰就失效,而且每次會話動態(tài)產(chǎn)生的新會話密鑰不重復(fù)和無規(guī)律,從而保證即使攻擊者獲得已加密的認(rèn)證授權(quán)信息,但沒有此次會話的會話密鑰,也無法獲得所包含的認(rèn)證授權(quán)信息,從而既保證了Cookie傳輸?shù)陌踩?,又能防止盜鏈者直接利用已加密的認(rèn)證授權(quán)信息非法盜取只提供給合法讀者的數(shù)字資源服務(wù),即防止盜鏈者利用過期認(rèn)證授權(quán)信息盜取數(shù)字資源服務(wù)。
為確保Cookie傳輸?shù)耐暾?,即防篡改,方案引入了?shù)字摘要 (Digital Digest):[3,4]指運(yùn)用單向 Hash函數(shù)將傳送的任意長度的消息“摘要”成一串固定長度的密文,并且不同消息其摘要不同,相同消息其摘要必定一致,同時即使知道摘要也無法反推出原消息,這串摘要就能被用于校驗(yàn)消息是否在傳輸過程中被篡改,從而確保Cookie傳輸?shù)耐暾浴?/p>
Web服務(wù)器軟件實(shí)現(xiàn)讀者通過瀏覽器訪問和使用數(shù)字圖書館提供的所有數(shù)字資源服務(wù)的功能,主要包括Cookie解包與封包、數(shù)字資源展示頁面、數(shù)據(jù)通信和讀者登錄授權(quán)頁面等。Web服務(wù)器軟件根據(jù)讀者對數(shù)字資源服務(wù)的請求動態(tài)處理讀者身份的合法性認(rèn)證授權(quán),以及認(rèn)證授權(quán)信息的Cookie解包和封包。如果認(rèn)證授權(quán)成功,則將讀者請求的數(shù)字資源返給讀者;否則重定向到認(rèn)證授權(quán)頁面。其中,Cookie解包和封包是本方案設(shè)計和實(shí)現(xiàn)的核心。
Cookie解包主要負(fù)責(zé)對攜帶有訪問讀者認(rèn)證授權(quán)信息的Cookie進(jìn)行檢驗(yàn),以檢測Cookie的完整性,驗(yàn)證Cookie的有效性和合法性,并提取包含的數(shù)字摘要、讀者證號、登錄密碼及認(rèn)證授權(quán)標(biāo)識。
Cookie封裝利用單向Hash函數(shù)將授權(quán)標(biāo)識、讀者證號和已用會話密鑰加密的授權(quán)信息一起生成數(shù)字摘要,然后將生成的數(shù)字摘要附加在Cookie消息之后,并將Cookie寫回讀者端,以用于后續(xù)請求的認(rèn)證授權(quán),以減少讀者在已認(rèn)證授權(quán)有效期內(nèi)進(jìn)行多次認(rèn)證授權(quán),提升讀者訪問和使用數(shù)字圖書館服務(wù)的速率和增強(qiáng)防盜鏈能力。
認(rèn)證授權(quán)服務(wù)器軟件是讀者身份認(rèn)證授權(quán)的核心,負(fù)責(zé)對訪問者身份的合法性認(rèn)證和授權(quán);動態(tài)生成每次會話所需的會話密鑰;動態(tài)為已認(rèn)證讀者生成認(rèn)證授權(quán)信息;利用會話密鑰加密已認(rèn)證授權(quán)信息,并返回給Web服務(wù)器;實(shí)時更新授權(quán)數(shù)據(jù)庫;驗(yàn)證已認(rèn)證授權(quán)信息的合法性、有效性和正確性。認(rèn)證授權(quán)服務(wù)器軟件流程如圖2所示:
圖2 認(rèn)證授權(quán)服務(wù)器軟件流程圖
西南民族大學(xué)圖書館所有應(yīng)用系統(tǒng)統(tǒng)以匯文數(shù)據(jù)庫中存儲的讀者信息中的讀者證號為登錄讀者名,讀者密碼為登錄密碼。讀者同步系統(tǒng)實(shí)現(xiàn)將匯文數(shù)據(jù)庫中存儲的有效讀者信息根據(jù)防盜鏈認(rèn)證授權(quán)的要求動態(tài)生成授權(quán)數(shù)據(jù)庫中的讀者信息,以保證授權(quán)數(shù)據(jù)庫中的讀者信息與匯文數(shù)據(jù)庫中存儲的有效讀者信息一致。讀者同步系統(tǒng)運(yùn)行過程如下。(1)系統(tǒng)參數(shù)初始化。初始化匯文數(shù)據(jù)庫連接參數(shù);初始化授權(quán)數(shù)據(jù)庫連接參數(shù);初始化兩個數(shù)據(jù)庫中讀者信息的對應(yīng)關(guān)系;是否初始化授權(quán)數(shù)據(jù)庫中的讀者信息等。(2)授權(quán)數(shù)據(jù)庫中的讀者信息初始化。清除授權(quán)數(shù)據(jù)庫中的所有讀者記錄,并將符合要求的匯文數(shù)據(jù)庫中的所有有效讀者信息同步到授權(quán)數(shù)據(jù)庫。由于同步所有有效讀者信息需要大量時間,因此此操作只在系統(tǒng)第一次運(yùn)行時運(yùn)行。以后只有在特殊情況下,才運(yùn)行該操作。(3)啟動實(shí)時同步監(jiān)測線程。實(shí)時監(jiān)測匯文數(shù)據(jù)庫中讀者信息的動態(tài)變化,如刪除讀者、新增讀者、讀者密碼修改等,同時將變動的匯文數(shù)據(jù)庫中的讀者信息同步到授權(quán)數(shù)據(jù)庫,從而保證授權(quán)數(shù)據(jù)庫中的讀者信息與匯文數(shù)據(jù)庫中的有效讀者信息實(shí)時一致。
在實(shí)施該方案時,Web服務(wù)器部署在Dawning i600曙光服務(wù)器,操作系統(tǒng)為Windows Server 2003 Enterprise Edition SP2,IIS 6.0組件。認(rèn)證授權(quán)服務(wù)器與讀者同步系統(tǒng)一起部署在Dawning i620r-g曙光服務(wù)器,操作系統(tǒng)為Windows Server 2003 Enterprise Edition SP2。匯文系統(tǒng)安裝的是4.0版,所用的數(shù)據(jù)庫為Oracle 10g;授權(quán)數(shù)據(jù)庫采用Microsoft SQL Server 2005;Web服務(wù)器軟件部分、授權(quán)認(rèn)證服務(wù)器軟件部分和讀者同步系統(tǒng)均基于Visual C#2005開發(fā)。
系統(tǒng)開發(fā)、部署、設(shè)置完成之后,進(jìn)行以下測試。
(1)直接瀏覽Web服務(wù)器所展示的數(shù)字資源服務(wù),并向Web服務(wù)器提出請求。Web服務(wù)器將重定向到讀者登錄授權(quán)頁面,并要求進(jìn)行授權(quán)認(rèn)證,即非認(rèn)證授權(quán)讀者禁止使用本館提供的數(shù)字資源服務(wù)。
(2)在授權(quán)數(shù)據(jù)庫中新建一個測試讀者libtest:讀者證號201230102012;登錄密碼libtest。使用libtest讀者及其密碼登陸Web服務(wù)器后,能夠正常訪問并使用數(shù)字資源服務(wù)。刪除該libtest讀者,再使用libtest讀者及其密碼登陸Web服務(wù)器認(rèn)證授權(quán)失敗,即禁止該libtest讀者訪問和使用本館提供的數(shù)字資源服務(wù)。
(3)讀者同步系統(tǒng)運(yùn)行后,查看授權(quán)數(shù)據(jù)庫,自動生成了缺省有效讀者,匯文數(shù)據(jù)庫中所有符合條件的讀者都生成了對應(yīng)的讀者記錄,從中隨機(jī)抽取5個讀者登陸Web服務(wù)器,均成功完成認(rèn)證授權(quán),并在認(rèn)證授權(quán)后能夠訪問和使用數(shù)字資源服務(wù)。
(4)登錄匯文流通管理系統(tǒng),并新增一個讀者信息記錄,使用該讀者證號及密碼登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)成功,并能訪問和使用本館提供的數(shù)字資源服務(wù);在匯文流通管理系統(tǒng)中修改該讀者的密碼,使用該讀者舊密碼登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)失敗,并且無法訪問和使用數(shù)字資源服務(wù);使用該讀者的新密碼登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)成功,并且能訪問和使用數(shù)字資源服務(wù)。
(5)在匯文流通管理系統(tǒng)中修改該新增讀者的狀態(tài)為“掛失”,該讀者登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)失敗,并且無法訪問和使用數(shù)字資源服務(wù);將讀者狀態(tài)修改為“注銷”,該讀者登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)失敗,并且無法訪問和使用數(shù)字資源服務(wù);將讀者狀態(tài)修改為“停用”,該讀者登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)失敗,并且無法訪問和使用數(shù)字資源服務(wù);將讀者狀態(tài)修改為“有效”,該讀者登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)成功,并能訪問和使用數(shù)字資源服務(wù)。
(6)使用該新增讀者的讀者證號及密碼登陸匯文網(wǎng)上圖書館,并修改其登陸密碼。然后使用該讀者的舊登陸密碼登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)失敗,并且無法訪問和使用本館提供的數(shù)字資源服務(wù);使用該讀者的新登錄密碼登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)成功,并且能訪問和使用本館提供的數(shù)字資源服務(wù)。
(7)在該讀者登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)成功,并能訪問和使用本館提供的數(shù)字資源服務(wù)后,利用Cookie工具獲取其認(rèn)證授權(quán)Cookie,然后利用該認(rèn)證授權(quán)Cookie進(jìn)行重放攻擊以獲取數(shù)字資源服務(wù)失敗,有效會話密鑰已失效,需要讀者重新進(jìn)行認(rèn)證授權(quán)。
(8)在匯文流通管理系統(tǒng)中刪除該新增讀者記錄,使用該讀者證號及密碼登陸Web服務(wù)器進(jìn)行認(rèn)證授權(quán)失敗,并且無法訪問和使用本館提供的數(shù)字資源服務(wù)。
通過以上測試,驗(yàn)證了該方案的防盜鏈能力、安全性和可行性等。同時該訪問具有低成本、高安全性和強(qiáng)適應(yīng)性,能有效地解決防盜鏈與匯文系統(tǒng)統(tǒng)一讀者認(rèn)證授權(quán)的問題,實(shí)現(xiàn)了與匯文系統(tǒng)的集成,大大增強(qiáng)了防盜鏈功能,有效提升了數(shù)字圖書館的防盜鏈能力。
[1] 馬亞娜,錢煥延,孫亞民.Cookie在web認(rèn)證中的應(yīng)用研究[J].小型微型計算機(jī)系統(tǒng),2004,25(2):207-210.
[2] WIKIPEDIA.Sessionkey[EB/OL].[2012-08-01].http://en.wikipedia.org/wiki/Session_key.
[3] 張曉林.?dāng)?shù)字權(quán)益管理技術(shù)[J].現(xiàn)代圖書情報技術(shù),2001(5):3-7,10.
[4] 劉偉.淺談數(shù)字摘要技術(shù)原理及應(yīng)用[J].福建電腦,2010(10):108-109.