王小康
(中共鄭州市委黨校,河南 鄭州 450042)
在全球信息爆炸的大潮中,如何快速獲取專業資料,普及全社會公民素質,提高公民生活質量,成為公共圖書館義不容辭的責任。縱觀全球,越是發達的國家,其圖書館利用率和普及率就越高。圖書館進社區、進家庭等在發達國家已經成為普遍現象,尤其在高等教育院校,公共圖書館已經成為學生學習的重要場所,也成為學校教育能力、水平和質量的重要評估指標。
目前,全國和各省、市都建立了數字圖書館,并購買了相應的數字信息資源。正常情況下,用戶在獲取圖書館認證的情況下,可以通過網絡終端登錄圖書館數據庫,進行圖書館藏資源的查找、閱讀與分析等。然而,部分不法分子經常通過木馬病毒等手段竊取登錄密碼、或直接繞開圖書館系統的安全認證模塊,進入圖書館數據庫,竊取數據庫中的數字信息資源,侵犯圖書館的版權,給國家和圖書館建設造成了損失。因此,如果不能協調好數字圖書館建設與知識產權保護的關系,不能在圖書館與權利人之間建立利益平衡機制,將會直接影響圖書館自身的發展[1]。這就涉及到圖書館信息的網絡安全問題。所謂網絡安全是指計算機自動化系統內程序和數據的安全程度,能否有效地防止非法訪問和使用程序與數據[2]。
可見,網絡安全的核心是網絡信息的安全。信息安全 (Information Security)是指保持信息的保密性(Confidentiality)、完整性(Integrity)和可用性(Availa—bility)。信息安全主要取決于兩個因素:技術和管理。安全技術是信息安全控制的重要手段,許多信息系統的安全性保障都要依靠技術手段來實現[3]。信息安全的實踐活動是一項系統工程,技術手段是這項系統工程的一個組成部分[4]。
網絡圖書館必須連接國際互聯網,不可能與外界物理隔絕。因此,可行的途徑是通過加強安全技術防范和控制,主動防御外界的入侵。主動防御可以預測未來的攻擊形勢,安全風險控制,從而減輕數字圖書館信息安全管理體系構建的難度,從根本上改變以往防御落后于攻擊的不利局面[5-6]。
目前,針對上述問題,國內外許多圖書管理學者展開了研究,提出了相應的對策。從防范手段上講,主要有兩種對策:
(1)采用硬件認證的方式進行用戶許可:采集客戶端的計算機硬件編號,并以此作為數據庫登錄驗證的必要手段。例如,計算機的硬盤序列號和網卡編號都是全球唯一的,基于這一特征,用戶在終端登陸時,數字圖書館系統將采集用戶終端的機器識別號,并與數字圖書館中存在的認證信息進行比較,如果發現客戶端的信息與數據庫中的信息不一致,或者未在數據庫中發現客戶端的信息,則可認為該客戶為未經授權的客戶,將拒絕其訪問。
(2)采用軟件加密的方式進行圖書信息加密處理:該方法主要采用對數字圖書館信息資源加密的方法,使得未經授權的用戶無法獲取相應的信息。這種加密手段包括對密碼的加密、對數字圖書館中的文件加密、以及傳輸過程中的數據流加密等。
上述安全對策中,硬件加密方法主要針對集體用戶而言,比如國家級數據庫在針對某一個使用單位(高校、研究所、圖書館等)進行授權,把該單位的所有計算機的硬件號進行采集,然后分別進行授權;或者對其網卡端口進行授權,使其在一定的IP地址范圍內使用。但這種方法非常繁瑣,針對個人而言,每次都要進行硬件授權是不切實際的。因此,針對大眾而言,采用軟件授權的方式是可行的。軟件授權包括密碼授權、加密信息授權等。其中密碼授權存安全隱患,一旦密碼丟失或者被竊取,就要造成損失。而采用數據流加/解密方式比較安全,也切實可行。其主要特點為:
(1)采用客戶端——數據庫服務模式(Client—Server,簡稱C/S模式),把圖書館系統分為兩塊,即客戶端和服務器。
(2)在客戶端和服務器兩端分別內置數據流加密模塊 (客戶端的加密模塊在用戶初次登陸時以插件的方式自動下載并安裝)。
(3)客戶端和服務器之間的加密模塊,是點對點式(Point to Point)的暗箱關聯,兩者之間采用隱含密碼鑰匙進行相互認證,用戶并不知道其中的加密技術和過程。
(4)只有客戶端加載了加密模塊后,服務器端發送的圖書館數字流才能被正確解碼,并在解碼后恢復原樣,進行正確顯示、閱讀。反之,如果用戶通過不正當途徑,即使截取了加密數據流,也無法解碼,不能)進行閱讀。
上述方案的工作原理如圖1所示。其中最為關鍵的技術就是數據流加解密技術,因此如何在服務器端進行數據流加密,并在客戶端進行解密,是其中的核心與關鍵。本文針對該核心問題展開研究。

圖1 本文解決方案的流程圖
AES(Advanced Encryption Standard)是新一代對稱加密標準,為取代已經不安全的DES和3DES而制定的。由于近年來芯片技術的指數級增長,普通電腦的計算能力得到了大幅提升,曾被廣泛應用于各安全領域的70年代IBM所開發的56bits DES算法遇到了被普通電腦暴力攻破的巨大威脅。有鑒于此,美國國家標準和技術協會(NIST)2000年10月2日從5 個 最 終 算 法 (Rijndael、Twofish、Mars、RC6、Serpent)中,選擇Rijndael作為AES正式算法。

圖2 AES算法的原理圖
AES 分 128bit,支持 128、192、256 三種密鑰長度。實踐表明AES能抵抗已知的各種密碼攻擊手段。它由可變數據塊長和可變密鑰長的迭代分組加密算法。數據塊經過多次數據變換操作,每一次變換操作產生一個中間結果,這個中間結果叫做狀態(State)。AES算法的主循環對狀態執行4個不同的操作:SubBytes(字節替換)、ShiftRows(行位移變換)、MixColumns(列混合變換)和AddRoundKey(輪密鑰加)。在加密的最后階段,狀態被變回為128位的線性串。圖2演示了該算法的原理。
首先,對狀態進行AddRoundKey操作,將RoundKey與狀態異或。對前Nr-1輪中的每一輪,用S-BOX對狀態進行一次代換操作,稱為SubBytes,對狀態做一置換ShiftRows;再對狀態做一次操作Mix-Columns;然后進行AddRoundKey操作。最后依次進行SubBytes、ShiftROWs和AddRoundKey操作,數據就變成了密文。
AES解密算法結構與加密結構相同,為加密算法變換的逆變換,且密鑰擴展策略稍有不同[7]。
根據上述AES算法的描述,本文采用Visual C++實現了AES算法。所定義的加密類AesProcess結構如圖3所示。

圖3 AES算法的VC++實現類

圖4 AES算法的原理圖
AES的解密算法和加密算法的結構類似,只需將所有操作逆序進行,并逆序使用密鑰編排方案即可。最后,本文用Visual C++創建了一個基于對話框的Windows應用程序,來驗證其科學性和可用性。它能夠接受任何類型的數據流,并對它進行加密和解密處理,運行界面如圖4所示。
一種加密算法的好壞,最為關鍵的方面就是其安全性的問題。自從2000年10月以來,美國國家標準技術研究所(NIST)宣布Rijndael被確定為高級加密標準AES,到目前為止,對于Rijndael密碼的攻擊還沒有比窮盡密鑰搜索攻擊更有效的方法,已經公布的攻擊思想不能夠形成有效的攻擊,而窮盡鑰搜索攻擊對于AES密鑰為128位時的窮舉攻擊復雜度為2128,因此,目前使用AES加密算法從理論上講是安全的。
通過使用AES加/解密技術,對數字圖書館中的數據流(如word文件、PDF文件、圖片、電子表格、以及其它任何數據信息等)進行加密后,向客戶端進行傳送,并且在客戶端進行正確地解密,使得數字圖書館的系統安全性得到顯著提升。
[1]董麗茹.數字圖書館的知識產權保護問題探討[J].科技情報開發與經濟,2010,20(23):105-107.
[2]沈策.淺談圖書館局域網的安全[J].管理觀察-2010年8月上旬刊.
[3]鄭德俊,任妮,熊健,黃水清.我國數字圖書館信息安全管理現狀[J].現代圖書情報技術,2010(8):27-32.
[4]吳亞非,李新友,祿凱.信息安全風險評估[M].北京:清華大學出版社,2007.
[5]馮曉光.對高校圖書館電子閱覽室網絡安全的思考[J].內蒙古科技與經濟,2010(15):115-117.
[6]黃水清,任妮.數字圖書館信息安全風險控制[J].現代圖書情報技術,2010(7):39-44.
[7]張景文.基于AES加密算法的數據文件安全策略與實現[J].電腦與信息技術,2010,(4):25-26.