陳錦繁,徐 明,曾基榆
(深圳大學信息中心,深圳 518060)
企業(yè)微信是適用于高校內(nèi)部通訊協(xié)作的綜合性平臺,支持即時通訊、協(xié)同辦公和文件共享等。它提供了豐富數(shù)據(jù)接口和通信接口,與高校應用程序的集成和對接都非常便利[1]。國內(nèi)高校普遍建設校園網(wǎng)并接入CERNET,校外師生通過虛擬私有網(wǎng)絡(virtual private network,VPN)技術(shù)遠程接入校園網(wǎng)。特別是過去幾年,廣大高校師生受疫情影響不得不在線教學、遠程辦公和科研等,VPN 利用率越來越高,其安全性也越來越受到重視[2]。因此,以高校WebVPN 的使用安全為討論重點,將企業(yè)微信用于WebVPN 二次認證,加強校園網(wǎng)訪問安全,有效防范師生賬號被惡意攻擊和利用。
VPN 基于互聯(lián)網(wǎng)提供安全私密的加密隧道,校外用戶可以安全接入校園網(wǎng),訪問電子圖書資源和校園內(nèi)部的信息系統(tǒng)。VPN 服務是智慧校園信息化不可或缺的建設內(nèi)容,SSL VPN 和WebVPN兩種VPN技術(shù)在高校比較常見。
SSL VPN 提供全協(xié)議的VPN 通道,不僅支持B/S 架構(gòu)的Web 應用和C/S 架構(gòu)的TCP 應用,還支持基于UDP 協(xié)議的語音視頻類應用的遠程訪問。然而,SSL VPN 在應用中存在短板,用戶終端需安裝插件或配置,對非Windows 系統(tǒng)以及手機平板等移動設備的兼容性不佳。
WebVPN 基于反向代理技術(shù)。WebVPN 管理員對用戶身份和角色進行權(quán)限控制,授權(quán)用戶訪問內(nèi)網(wǎng)應用,實現(xiàn)類似SSL VPN 功能。相比SSL VPN,WebVPN 用戶省去了安裝客戶端或插件的步驟。對接統(tǒng)一身份認證后,師生打開瀏覽器即可登錄訪問校園網(wǎng)。免插件“零配置”特性降低了使用門檻,提升了用戶體驗,因此WebVPN在高校中占據(jù)越來越重要的地位。
WebVPN 多為雙機分布式部署模式,包含主控制器和隧道控制器(如圖1所示),分別置于DMZ 區(qū)域和校內(nèi)網(wǎng)區(qū)域。WebVPN 根據(jù)用戶身份來分配訪問權(quán)限,無需防火墻開放端口,有效保持了校園網(wǎng)絡整體性和安全性[3]。
圖1 WebVPN雙機部署示意圖
高校的信息化建設目標,是讓校園內(nèi)各業(yè)務系統(tǒng)之間融合互通,提升校園信息化服務質(zhì)量和水平。智慧校園建設和信息化改造,基本都使用統(tǒng)一認證平臺并實現(xiàn)了單點登錄(SSO)。SSO 讓師生在只需一次身份驗證,在認證有效期內(nèi)可訪問全校各個業(yè)務系統(tǒng),獲得便捷、高效的訪問體驗[4]。
SSO 技術(shù)有多種實現(xiàn)方式,較為典型的有CAS(central authentication service)方案。CAS 為應用系統(tǒng)提供SSO,采用集中式認證模型提供身份認證服務[5]。其本質(zhì)上是Web 應用,通過與高校各個應用系統(tǒng)進行交互,實現(xiàn)用戶的身份驗證和授權(quán)管理。當用戶訪問某個應用系統(tǒng)時,首先進入CAS 的登錄認證系統(tǒng),身份驗證成功后跳轉(zhuǎn)到目標應用系統(tǒng),大致分為五個步驟(整個流程如圖2 所示)。圖2 中實線流程為用戶參與過程,虛線為應用系統(tǒng)和認證中心數(shù)據(jù)交互過程。
圖2 CAS認證流程
CAS 采用的是基于票據(jù)的驗證機制,具有高度的安全性和可靠性,用戶通過驗證獲得票據(jù),再訪問其他應用系統(tǒng)時,驗證票據(jù)有效性再核驗身份后,用戶無需再次輸入用戶名和密碼[6]。WebVPN作為應用系統(tǒng),也是通過票據(jù)驗證機制實現(xiàn)單點登錄。從安全角度出發(fā),WebVPN 關乎師生訪問校內(nèi)網(wǎng)絡和校內(nèi)資源,僅通過單因子認證方式,即驗證用戶名密碼來證明用戶身份,是有極大風險的。
單因子認證(single-factor authentication,SFA)就是只需一種身份驗證方式來驗證用戶身份。對于高校來說,讓WebVPN 對接CAS 實現(xiàn)SSO,但只有密碼這個單因子驗證條件的話,弱密碼是個痛點問題。用戶名和密碼是靜態(tài)數(shù)據(jù),在身份驗證的傳輸過程中存在被監(jiān)聽和截獲的可能。另外,若WebVPN 權(quán)限較高,攻擊者就能獲取用戶同一認證域下的所有應用系統(tǒng)權(quán)限和數(shù)據(jù),極易造成信息泄漏事故。因此,單因子認證方法具有較大的安全隱患,為了保護用戶賬號、個人隱私和應用系統(tǒng)安全,采用更完善的身份驗證方式是必要的。
網(wǎng)絡安全形勢日趨嚴峻復雜,各種攻擊事件層出不窮。為了保障用戶信息的安全,各高校逐步采用更加安全的身份驗證方式,包括動態(tài)口令和雙因子認證等。動態(tài)口令是臨時性密碼,通常限制在一定的有效時間內(nèi)且僅使用一次。動態(tài)口令使用基于時間的算法,如HOTP或TOTP 生成,可以確保動態(tài)口令只在短時間內(nèi)有效。相比于傳統(tǒng)的靜態(tài)密碼,動態(tài)口令更加安全,只要動態(tài)碼接收設備掌控在用戶手里,動態(tài)口令很難被截獲。
通過組合兩種不同條件來證明用戶身份稱為雙因子認證(two-factor authentication,2FA),這些身份驗證條件包括密碼、動態(tài)碼、生物特征(如指紋、掌紋或面部識別)等。相比單因子認證,雙因子認證更加安全,攻擊者必須要獲取到兩項身份驗證條件才能進入用戶賬戶。即使用戶密碼被破解,只要其他身份驗證條件未被攻破,攻擊者也無法登錄用戶賬戶。據(jù)權(quán)威機構(gòu)研究結(jié)果,雙因子認證能夠有效阻止大多數(shù)的網(wǎng)絡攻擊,包括自動化機器人、釣魚軟件和中間人攻擊等。
雙因子認證和動態(tài)口令的重要性顯而易見。將企業(yè)微信用于WebVPN 動態(tài)碼的二次認證解決方案,可以提高賬戶安全性,保護用戶不會因單個身份驗證條件泄漏而遭受風險。
隨著移動服務的需求不斷增加,企業(yè)微信作為一款出色的辦公管理平臺,因其開發(fā)及推廣成本低、用戶黏度高、信息推送快、安全性能高、終端適配優(yōu)等諸多因素而廣受好評。很多高校都選擇基于企業(yè)微信搭建移動端校園應用,提供的日常業(yè)務和服務越來越多,將企業(yè)微信打造成了師生移動在線辦事大廳[7]。通過企業(yè)微信豐富的數(shù)據(jù)接口,高??梢匀婕尚@應用。
將企業(yè)微信用于二次認證,需要完成三個環(huán)節(jié):保持師生通訊錄動態(tài)更新、師生關注企業(yè)微信和發(fā)送企業(yè)微信消息(如圖3 所示)。首先,需調(diào)用企業(yè)微信API 接口獲取ACCESS_TOKEN,創(chuàng)建登錄憑證,其它的業(yè)務API 接口都需要依賴于ACCESS_TOKEN 來鑒權(quán)調(diào)用者身份。參考騰訊的在線文檔,ACCESS_TOKEN 的獲取接口為GET方式,請求地址:
圖3 企業(yè)微信二次認證管理數(shù)據(jù)接口
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=MYID&corpsecret=MYSECRET
ACCESS_TOKEN 由corpid 和corpsecret 兩 個參數(shù)產(chǎn)生,其中corpsecret 是用于校驗開發(fā)者身份和保障數(shù)據(jù)安全的訪問密鑰,注意防范泄露。ACCESS_TOKEN 后續(xù)用于企業(yè)微信接口校驗,保證通信訪問權(quán)限。
為了確保師生成功關注企業(yè)微信后順利接收到認證動態(tài)碼,企業(yè)微信通訊錄需定期維護更新,并與師生信息庫保持一致。通訊錄管理包括兩方面:部門管理和成員管理,分別對應學院列表和師生信息。企業(yè)微信維護通訊錄接口包括創(chuàng)建部門、更新部門、刪除部門、創(chuàng)建成員、更新成員、刪除成員等操作。通過接口先完成創(chuàng)建部門,生成部門ID。然后創(chuàng)建成員,成員以userid 為主鍵,userid 對應師生的學工號數(shù)據(jù)。創(chuàng)建成員的接口為POST方式,接口地址:
https://qyapi. weixin. qq. com/cgi-bin/user/create? access_token=ACCESS_TOKEN
通訊錄數(shù)據(jù)項主要是學工號、姓名和學院,以JSON格式參數(shù)提交即創(chuàng)建成員:
{
“userid”:“2022821088”,
“name”:“申小荔”,
“department”:[82],
……
}
企業(yè)微信通訊錄管理接口跟創(chuàng)建成員接口類似。
維護好企業(yè)微信通訊錄,師生就可以通過掃碼方式關注企業(yè)微信。企業(yè)微信不等同于微信,但其天然地與微信有信息互通的優(yōu)勢,師生即使只安裝了普通微信,也不影響企業(yè)微信作為雙因子認證的使用功能。師生通過普通微信,同樣能關注企業(yè)微信號和接收二次認證動態(tài)碼。
師生關注企業(yè)微信的流程(如圖4所示):打開微信掃描企業(yè)微信二維碼,經(jīng)統(tǒng)一身份認證實名登錄,以學生學號或教職工號跟企業(yè)微信通訊錄userid 進行校驗,若屬有效通訊錄成員,師生補充完善信息后,即綁定企業(yè)微信成功。
企業(yè)微信消息通過消息引擎快速傳遞,還能設置優(yōu)先級有序推送。WebVPN 啟用二次認證后,師生登錄WebVPN 的完整流程如圖5 所示:校外師生訪問校內(nèi)應用系統(tǒng)和數(shù)據(jù)資源,首先在瀏覽器打開WebVPN 網(wǎng)址,如https://webvpn.szu.edu.cn;自動跳轉(zhuǎn)到統(tǒng)一身份認證頁,輸入個人賬號和密碼登錄,如圖6所示;登錄成功則跳轉(zhuǎn)到二次認證頁,需點擊獲取動態(tài)碼按鈕,師生微信將立即收到動態(tài)碼消息,如圖7所示;將微信消息中的動態(tài)碼輸入二次認證頁校驗,完成校驗即順利登錄WebVPN。
圖5 師生登錄WebVPN二次認證流程
圖6 WebVPN一次認證(用戶賬號)登錄頁
圖7 WebVPN二次認證(企業(yè)微信動態(tài)碼)登錄頁
通過調(diào)用企業(yè)微信推送消息API 的過程,本質(zhì)上就是發(fā)送http 請求給企業(yè)微信后臺。企業(yè)微信的消息推送支持文本、圖片、視頻、文件、圖文等類型。以下是發(fā)送文本消息的執(zhí)行接口代碼,請求方式為POST,請求地址:
https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
以JSON 格式參數(shù)提交文本消息接收對象和消息內(nèi)容:
{
“touser”:“2022821088”,
“msgtype”:“text”,
“agentid”:1,
“text”:{
“content”:“您好!二次認證登錄動態(tài)碼:7879。請勿泄露給他人”
},
……
}
學生申小荔學號為2022821088,在統(tǒng)一身份二次認證頁上點擊獲取動態(tài)碼操作,其企業(yè)微信或微信接收到消息內(nèi)容,如圖8所示。
圖8 用戶手機微信收到的二次認證動態(tài)碼
企業(yè)微信是可靠的WebVPN 二次認證安全的通訊工具,采用了諸多安全措施,如端到端加密,確保信息不被篡改或竊取。用戶無需特別下載和安裝企業(yè)微信客戶端,通過微信就能完成首次關注、個人信息綁定和接收WebVPN動態(tài)碼。經(jīng)過幾個月的測試應用,通過不斷優(yōu)化消息引擎的觸發(fā)機制和算法,企業(yè)微信的二次認證方案降低了使用門檻,節(jié)省了時間,還提高了認證效率,深受師生的喜愛[8]。
高校信息化建設不斷推進和革新,校外訪問接入技術(shù)一直朝著更簡約、更安全的方向發(fā)展。WebVPN 因其部署便捷且功能全面,擁有更好的兼容性和使用體驗,讓廣大師生能夠安全、快速地從校外訪問內(nèi)部數(shù)據(jù)資源及業(yè)務系統(tǒng),備受高校青睞[9]。企業(yè)微信以其安全、易于使用和跨平臺的特性,滿足高校數(shù)字化校園的多種接入需求,作為WebVPN 雙因子認證的重要一環(huán),與高校統(tǒng)一身份認證完美融合。企業(yè)微信動態(tài)碼為WebVPN 提供高效可靠的二次認證服務,有效保證師生認證效率和良好體驗,有力增強師生個人信息和學校內(nèi)網(wǎng)數(shù)據(jù)的安全,為遠程訪問技術(shù)的發(fā)展提供有意的探索和參考。