認證模式下Windows登錄機制探索
2021年6月10日,《中華人民共和國數據安全法》正式頒布。數據是國家基礎性戰略資源,也是各金融企業的重要資源和核心競爭力。從數據泄露的途徑分析,數據泄露主要分為三種:竊密,泄密和失密。在金融機構對于數據的安全越來越重視,竊密已經可以通過安全系統來做到很高等級的防護了。但是泄密和失密目前做的比較少。以企業使用最廣泛的Windows終端來說,這些終端上留存著大量的企業級數據。Windows目前大部分采用用戶名與密碼方式登錄,所以員工需要記著用戶名及密碼;但是很多員工為了方便,設置的密碼一般都過于簡單,且長期不更換密碼,更有甚者將密碼借予他人使用,這給安全管理工作增加了難度。
南京銀行基于對外包人員終端管理的實際需要,開發了實名認證模式的Windows登錄系統。該系統通過實名認證的APP掃描終端上實時生成的二維碼登錄終端,且不需要登錄者記錄著密碼。該方式可以有效的杜絕了密碼借用非本人登錄,密碼過期未修改等情況的發生。
Windows身份驗證技術研究
身份驗證是Windows系統驗證用戶登錄信息的過程。將用戶名和密碼與授權列表進行比較,如果系統檢測到匹配,則授予該用戶在權限列表中指定的范圍內的訪問權限。Microsoft提供了很多身份驗證技術,如LSA驗證、憑據提供(Credential provider)、智能卡身份驗證、SSPI、Winlogon和GINA等。
憑據提供程序(Credential provider)是用戶身份驗證的主要機制——用戶目前證明其身份的唯一方法。隨著Windows10和Microsoft Passport的推出,憑據提供程序比以往任何時候都更加重要;它們將用于對應用程序、網站等需要進行身份驗證的地方提供認證方法。
Microsoft提供了許多憑據提供程序作為Windows的一部分,例如密碼、PIN、智能卡和Windows Hello(指紋、面部和虹膜識別)。OEM、企業和其他實體可以編寫自己的憑據提供程序并將它們輕松集成到Windows中。
南京銀行實名認證Windows
登錄系統架構
在該部署架構圖中,微信,智慧園區等App運行在互聯網,通過本行的DMZ區進入本行的內網。其中,DMZ區部署著WAF、SSL清洗組件等相關安全設備,確保內網的系統與互聯網的交互在規定的安全范圍內。
在該系統的建設過程中,我們選擇了使用范圍比較廣的微信小程序作為實名認證的一個連接點。在整個系統中,最主要的就是實名認證Windows服務。該服務包含客戶注冊中心、終端管理中心、授權中心、Token管理中心、安全中心,MQServer、數據庫,Windows AD Server等模塊組成。其中主要由5個模塊作用如下:
客戶注冊中心:主要用于對需要使用終端的客戶進行注冊。操作流程中,由客戶主動進行注冊,在注冊過程中獲取用戶的微信ID,手機號碼等相關信息,最終由行內的關系人進行確認,只有當關系人確認后才可以獲得終端的使用權限。
終端管理中心:主要用于對終端進行管理。手機終端的相關信息,如IP,MAC,終端上的用戶,終端的實際辦公位置等信息。
授權中心:授權中心作為該系統的最主要模塊,提供對終端登錄的授權,在獲取到由微信小程序發到內網服務器上的授權申請后,識別登錄的Token請求是否有效,當該Token還在有效期內,則授權通過,并將該機器的用戶名密碼通過密文的方式發送至終端,由Windows的Credential Provider進行解密,并最終登錄Windows。
Token管理中心:負責Token的全生命周期的管理。包括Token的注冊,使用,失效等生命周期的管理。
安全中心:安全中心提供了AES-128加解密方法,由于Windows終端上需要使用離線的版本,需要提供C語言的版本的算法實現。
實名認證Windows登錄系統主要關聯方有:終端使用者(用戶),實名認證登錄系統。
1.初始化階段。由管理人員分配終端,通過實名認證登錄系統中的終端管理中心模塊進行終端的上線操作,上收用戶并通過域控服務器設置復雜密碼,初始化終端各應用。如果采用的是虛擬機模式的話,可以根據用戶對終端的需求進行模板匹配,實現快速化建立虛擬機終端。當用戶需要申請終端時,用戶需要通過微信小程序,園區App進行在線申請終端,由行內的關系人進行確認申請,并提交后臺管理人員,審批通過后,由終端管理中心模塊分配終端給客戶。至此,用戶獲得該終端的使用權限。
2.使用階段。登錄請求信息最終被送達到授權中心模塊,該中心將根據該token關聯查詢出終端的相關信息,進行判斷是否可以被授權;根據App的相關信息,判斷客戶是否獲得權限;判斷Token是否由中心頒發的,是否還在有效期內,是否可用。當該登錄請求被授權通過,授權中心向安全中心請求該終端的用戶名及密碼,AES-128算法的密鑰以及加密偏移量。實名認證系統安全中心通過SM2加密算法,將AES-128算法的密鑰以及加密偏移量加密,并用AES-128算法對用戶名及密碼加密,并發送至終端的Credential Provider。由Credential Provider對AES的密鑰以及加密偏移量加密解密,并用AES密鑰以及加密偏移量加密對用戶名及密碼解密,賦值給Credential Provider的相關組件,并通過Windows操作系統的認證,完成本次登錄過程。

圖 南京銀行實名認證Windows登錄系統流程圖
系統設計的安全考慮
由于系統的關聯方中涉及互聯網的App,在系統設計之初,就充分考慮到了安全因素。由于客戶、終端的相關信息均屬于行內的敏感數據。
1.終端上展示二維碼,不包含任何敏感信息。微信或者其他App掃碼后也僅僅可以提取到一串GUID。根據GUID通過關聯性分析方法是無法推測出實際終端的相關信息,確保運行在外網的App能夠獲得最小的數據,防止發生數據泄露的情況。
2.終端的用戶名及密碼通過國密算法保存在數據庫中,并且設定密碼更新時間,當密碼過期后,通過域控服務器定期更新密碼,減少密碼被暴力破解的可能性。然后,數據庫與應用程序運行在內網服務器中,并且對該服務器進行安全檢測,設置白名單登錄等方式,避免數據庫被竊取的情況發生。
3.服務端返回終端的用戶名及密碼均采用AES和國密SM2加解密,且這些敏感數據僅僅出現在內網環境中。為了提升密碼的破解難度,采用了混合加密的方式,由國密SM2加密AES算法的密鑰和偏移向量,并且每次授權通過后,返回給終端的AES算法的密鑰和偏移向量都是隨機生成的,確保一次一密的方法,極大的提高了密碼破譯的難度。
適用場景
該套解決方案可以應用在外包人員的終端管理,涉密敏感崗位的終端管理中,配合終端屏幕水印功能,可以做到終端開機到關機的全流程跟蹤管理,可以避免終端借用給他人,密碼過期不修改等現象的發生。通過該系統的實施可以有效提升終端使用者對數據的保護意識。
結 語
數據保護是一個系統性工程,需要多方面的協調與配合。數據保護工作涉及銀行所有部門、所有業務系統以及所有的工作人員,所有的設備等。為了提升全行對數據保護的意識,應該充分考慮到數據保護工作的系統性,建立完備的系統,組織架構和管理制度。利用不斷完善的技術來提升安全管理水準。通過有效的技術手段來封鎖各種數據泄露途徑。同時,應建立完備的數據安全培訓體系,覆蓋全行所有人員,提升保護數據安全的意識。