(天津現(xiàn)代職業(yè)技術(shù)學院,天津 300350)
近幾年,我國經(jīng)濟迅速發(fā)展,教育部門對高等院校的建設(shè)和規(guī)劃也越來越重視,現(xiàn)今的大學、高等院??芍^整合了多方資源,逐漸成為了具有一定規(guī)模的專業(yè)化和信息化程度較高的綜合性高等院校。但現(xiàn)階段我國的高校信息化基礎(chǔ)設(shè)施以及技術(shù)建設(shè)并不完善,各個系統(tǒng)缺乏有效串聯(lián),要保證學校內(nèi)部系統(tǒng),還要基于差異權(quán)限、信息類別,仍能保證校園內(nèi)任何鏈接的應(yīng)用系統(tǒng),能夠?qū)崿F(xiàn)目錄訪問過程以及最大限度的節(jié)省網(wǎng)絡(luò)資源。所以,要將校園內(nèi)部進行統(tǒng)一的、便捷的身份認證已勢在必行。
高等院校本身就是網(wǎng)絡(luò)技術(shù)發(fā)展的前沿,網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,也促進了高校內(nèi)部應(yīng)用系統(tǒng)的發(fā)展,但在建設(shè)初期由于校園建筑面積、學生數(shù)量以及計算機硬件等等方面的限制,將各個網(wǎng)絡(luò)應(yīng)用系統(tǒng)有效的規(guī)劃與整合幾乎是不可能的,各種管理系統(tǒng)、應(yīng)用網(wǎng)站每個都有著一定的效能,甚至有的代替了原有的工作人員以及工作方式,為師生提供了便利。但是,隨著我們所需要的這些系統(tǒng)、網(wǎng)站的層出不窮,導(dǎo)致了系統(tǒng)之間子功能重復(fù)、用戶密碼太多容易混淆,以及信息資源無法共享等等。由于在高校內(nèi)部各院、系負責本部門的系統(tǒng)維護和管理,這樣就會導(dǎo)致系統(tǒng)之間登錄方式無法“標準化”。而管理員維護本部門的多個系統(tǒng)、網(wǎng)站時,也無可避免要地維護大量部分信息重復(fù)或格式不統(tǒng)一的數(shù)據(jù)。在這樣的情況下,只有通過建立統(tǒng)一身份認證系統(tǒng),才能對用戶信息實行統(tǒng)一管理、配置以及訪問控制,從而避免因各系統(tǒng)之間信息重復(fù)或者數(shù)據(jù)冗余而產(chǎn)生的一系列問題,實現(xiàn)校園內(nèi)部網(wǎng)絡(luò)新功能的拓展。
身份認證方式是統(tǒng)一認證系統(tǒng)中最為重要的部分。通信過程分為:服務(wù)器——用戶和用戶——用戶兩種情況,但必須對客戶的身份以及權(quán)限進行核查,而后根據(jù)不同類型的用戶進行權(quán)限釋放。身份認證是通過系統(tǒng)對用戶的身份信息對網(wǎng)絡(luò)數(shù)據(jù)庫進行核對,并進行有效性認證的過程。
1.單點登錄實現(xiàn)機制
單點登錄機制就是對系統(tǒng)已經(jīng)賦予權(quán)限的用戶進行首次驗證后,用戶即可隨意登陸系統(tǒng)中的任意模塊。如圖所示,用戶開始首次訪問時,用戶狀態(tài)屬于未登陸狀態(tài),所以要通過認證系統(tǒng)進行認證;認證系統(tǒng)對用戶登錄信息進行審核,符合條件后,將Ticket發(fā)放給用戶;用戶在訪問其他應(yīng)用系統(tǒng)時,認證系統(tǒng)只需驗證用戶攜帶的Ticket。如果通過驗證,用戶再非登陸狀態(tài)下,即可登錄其他應(yīng)用系統(tǒng)。
圖1.1 單點登錄機制圖
2.單點登錄的信息安全相關(guān)技術(shù)
信息安全就是要保證信息的安全,也就說信息資源在系統(tǒng)中或信息網(wǎng)絡(luò)傳輸、運算等過程中不遭受干擾和破壞。根據(jù)國際標準化組織的定義,信息安全主要是指信息的可用性、完整性、可靠性和保密性,安全技術(shù)是實現(xiàn)信息安全服務(wù)的主要手段,安全技術(shù)主要有認證技術(shù)、網(wǎng)絡(luò)安全協(xié)議和加密技術(shù)等。
MD5(Message Digest Algorithm 5)加密技術(shù)就是按照某一運算方式將任意長度的數(shù)據(jù)轉(zhuǎn)換為一個固定長度且不可逆運算的數(shù)字,且能夠使數(shù)據(jù)具有完整性和一致性。MD5具有較高的安全性,每個信息產(chǎn)生的摘要具有唯一性,不同的信息絕對不會產(chǎn)生同樣的摘要;只能進行單向運算,進行加密的信息摘要,一般情況下是無法返回到原信息的;信息在進行加密后,信息排列無規(guī)律且隨機生成,以防止非法用戶的攻擊。在統(tǒng)一身份認證系統(tǒng)中,為了提高整體系統(tǒng)的安全性,我們經(jīng)常采用MD5加密算法,改變了原有的客戶端與服務(wù)器之間密碼的明文傳遞方式,使用戶和系統(tǒng)之間的信息傳遞變成了信息加密的過程。
統(tǒng)一身份認證系統(tǒng)就是將應(yīng)用系統(tǒng)中的各種認證方式結(jié)合在一起,使整個系統(tǒng)中登錄方式實現(xiàn)便捷化與穩(wěn)定化,使資源信息更加層次化與整體化,保證服務(wù)與管理的資源統(tǒng)一化。
1.系統(tǒng)構(gòu)架設(shè)計
整個認證系統(tǒng)的構(gòu)架中包括:認證服務(wù)、應(yīng)用服務(wù)、目錄服務(wù)等模塊,認證服務(wù)是整個體系中的核心部分,可以實現(xiàn)集中認證和單點登錄兩部分功能。當對用戶信息進行驗證時,如果成功的話將會生成通行票據(jù)賦予用戶,而且此票據(jù)將通過Cookie保存后轉(zhuǎn)載至瀏覽器,而證明用戶身份的有效性就依靠這枚票據(jù);用戶訪問應(yīng)用系統(tǒng)時,由認證功能模塊對用戶攜帶的票據(jù)進行有效性檢查,假設(shè)票據(jù)合法,則用戶可以訪問被授權(quán)的應(yīng)用系統(tǒng)。用戶退出系統(tǒng)時,必須注銷統(tǒng)一身份認證系統(tǒng),注銷功能模塊將用戶與應(yīng)用之間的訪問依次斷開,用戶瀏覽器中票據(jù)和Cookies也將被清除。
2.票據(jù)設(shè)計
Cookie作為HTTP的通用票據(jù),服務(wù)器可通過獲取、保存客戶端的信息從而將cookie產(chǎn)生,并通過客戶端請求服務(wù)器響應(yīng)的回執(zhí)發(fā)送至客戶端,從而通過某種格式在客戶端瀏覽器進行存儲。由此看出,cookie本質(zhì)就是服務(wù)器和客戶端的對話信息文件,而這些是通過服務(wù)器回應(yīng)客戶端時發(fā)送的,客戶端將cookie接收后進行解析,將它保存至本地文件夾內(nèi)??蛻舳讼麓卧僭L問該服務(wù)器時,僅通過訪問、解析已被保存cookie,再對用戶信息是否合法進行判斷,而不必進行重復(fù)的認證操作。
3.LDAP設(shè)計
統(tǒng)一身份認證系統(tǒng)中單點登錄模塊最為重要,它保證了用戶對身份信息的統(tǒng)一認證、管理和授權(quán)。本系統(tǒng)為了進一步方便用戶訪問所有應(yīng)用系統(tǒng),通過LDAP功能實現(xiàn)對用戶身份的甄別,并將應(yīng)用系統(tǒng)進行集成管理,將權(quán)限管理、信息識別和統(tǒng)一認證一一實現(xiàn)。為了更好地解決快速讀取系統(tǒng)信息,從而減少因系統(tǒng)性能下降導(dǎo)致的一系列問題,LDAP的目錄服務(wù)功能具有安全性和合理性,使統(tǒng)一身份認證系統(tǒng)具有良好的可操作性。 LDAP的設(shè)計要從以下幾個方面考慮:(1)LDAP目錄服務(wù)通過對信息對象中的屬性、類型及關(guān)系進行規(guī)范,從而使文件信息按樹形排列且更為有序。(2)LDAP目錄服務(wù)為了保證各個應(yīng)用系統(tǒng)能夠合理進行信息、數(shù)據(jù)融合以及同步操作,通過動態(tài)方式將新的操作內(nèi)容在各個應(yīng)用系統(tǒng)內(nèi)進行分布存儲。(3)LDAP目錄服務(wù)要對服務(wù)器上的用戶信息的讀取要進行嚴格的控制,目錄服務(wù)器中存儲了大量的私人信息,只有在安全的環(huán)境下,各個應(yīng)用系統(tǒng)中的信息才可以保障。
1.系統(tǒng)開發(fā)環(huán)境
本系統(tǒng)采用的是Java語言進行的開發(fā),相比較來說,Java語言在面向?qū)ο蟮脑O(shè)計語言中存在一定的技術(shù)優(yōu)勢,能夠在占用很少的內(nèi)存基礎(chǔ)上完成功能強大且復(fù)雜系統(tǒng)的編寫。在Java的代碼編寫結(jié)構(gòu)中,還增加了一個安全方式保證系統(tǒng),以不被惡意代碼攻擊。Java是一種跨平臺的語言,并不依靠操作系統(tǒng),真正做到“編寫一次,隨處運行”,最大限度地保證了系統(tǒng)可移植性。同時,Java可分配字段空間來防止用替代的方法來建立一個安全防范機制,可有效避免非法代碼,減少病毒入侵。
Openldap(輕量級目錄訪問協(xié)議)是一個開放源碼的軟件,截至目前,諸多版本的Linux系統(tǒng)中都會植入相關(guān)協(xié)議,統(tǒng)一身份認證系統(tǒng)對目錄服務(wù)功能需求是極為重要的。同時,我們會考慮到Openldap在Linu和windows平臺具有不錯的表現(xiàn),LDAP是目錄服務(wù)中的首選,為了保證系統(tǒng)的兼容性和擴展性,我們還應(yīng)該注意到LDAPv3中大部分功能Openldap也具有。
2.LDAP的配置與運行
各個用戶的角色不同,管理員賦予的功能也不同。假設(shè)管理員分別通過老師賬號和財務(wù)賬號進行登錄后,進入統(tǒng)一身份認證系統(tǒng),即可在用戶管理菜單下用戶列表對注冊用戶進行詳細查看,管理員可通過用戶列表功能將選項里已經(jīng)注冊的所有用戶在安全的情況下進行角色劃分,來保證注冊權(quán)限由管理員直接對用戶進行注冊。用戶進入統(tǒng)一的教學管理系統(tǒng),會發(fā)現(xiàn)不同角色進入相同系統(tǒng)中會擁有不同的功能與權(quán)限,如具有教學管理角色權(quán)限的老師賬號,進行統(tǒng)一認證并登錄后可發(fā)現(xiàn),用戶不但可以查看需要添加的課程,還可以對課程進行授權(quán),而另一個不具有其他功能權(quán)限的財務(wù)賬號只能簡單瀏覽該系統(tǒng)。
3.系統(tǒng)測試
本系統(tǒng)在進行初步實現(xiàn)后需要進行一個全方位的測試,測試是為了更好地保證系統(tǒng)能夠良好運行,同時也為系統(tǒng)二次開發(fā)做積極的準備。系統(tǒng)測試一方面能夠?qū)ο到y(tǒng)本身是否符合需求分析中的要求作出判定,另一方面會對系統(tǒng)的性能、界面以及數(shù)據(jù)中的錯誤進行校驗,保證系統(tǒng)能夠正常甚至在一定壓力下運行。所以系統(tǒng)各個模塊正常運行后,我們會關(guān)注系統(tǒng)的穩(wěn)定性,通過簡單的壓力測試,通過大量用戶對該系統(tǒng)的隨機訪問,來觀察系統(tǒng)是否能在繁多的響應(yīng)中正常運行,測試的參數(shù)包括響應(yīng)的時間、內(nèi)存占用情況、CPU使用率等指標。在進行測試之前應(yīng)對本次測試的方法和內(nèi)容以及環(huán)境等進行了解,得到并發(fā)用戶數(shù)和相應(yīng)時間等測試的主要指標。本系統(tǒng)的測試通過Webserver Stress Tool測試平臺服務(wù)器來完成,掌握CPU使用率、內(nèi)存占用情況、磁盤隊列長度以及網(wǎng)絡(luò)流量等。
使用Webserver Stress來進行壓力測試,便于我們在不通過多臺機器同時訪問的情況下,即可對系統(tǒng)進行測試,該工具就是通過創(chuàng)建腳本來實現(xiàn)并發(fā)多用戶自動執(zhí)行并單點訪問,模擬大量用戶對服務(wù)器進行訪問的方法,對登錄本系統(tǒng)的URL網(wǎng)址和模擬人數(shù)等參數(shù)進行設(shè)置,就能掌握在該壓力測試下服務(wù)器運行情況,系統(tǒng)的運行狀態(tài),更能以圖表的形式對服務(wù)器的信息傳遞和反應(yīng)時間等數(shù)據(jù)進行描繪。
通過查閱大量的國內(nèi)外文獻資料和相關(guān)技術(shù)標準,通過對統(tǒng)一認證系統(tǒng)進行架構(gòu)設(shè)計以及模塊設(shè)計,進一步闡述了票據(jù)的概念,然后重點描述了統(tǒng)一身份認證系統(tǒng)的流程設(shè)計,通過 LDAP目錄服務(wù)的設(shè)計,使票據(jù)思想結(jié)合cookie保證了單點登錄技術(shù)的實現(xiàn)。為了更好地適應(yīng)校網(wǎng)系統(tǒng)的安全性和管理性,將本系統(tǒng)中的關(guān)鍵技術(shù)進行了詳細設(shè)計,在搭建統(tǒng)一身份認證平臺時,充分考慮到傳統(tǒng)身份認證中存在的問題,通過采用LDAP目錄協(xié)議,并使用開放的OpenLDAP服務(wù)器軟件構(gòu)建本系統(tǒng),按照需求分析,本系統(tǒng)使用了Struts和Spring的MVC框架并采用擁有良好兼容性和跨平臺性的JAVA語言進行開發(fā),然后對完成的系統(tǒng)進行了相應(yīng)的測試,展示了相關(guān)部分運行效果。
參考文獻:
[1]Thomas H.Cormen, Charles E.Lerserson, Ronald L.Rivest, Clifford Stein. 算法導(dǎo)論[M].北京:機械工業(yè)出版社,2005.