北京中電普華信息技術(shù)有限公司 張 靜
身份認(rèn)證服務(wù)、訪問控制服務(wù)被ISO定義為網(wǎng)絡(luò)安全標(biāo)準(zhǔn)中2個層次的安全服務(wù)。從接觸安全測試工作以來,安全功能測試項中關(guān)于身份鑒別和訪問控制的用例屢見不鮮,通過實際操作系統(tǒng),現(xiàn)整理在實際工作中對身份鑒別和訪問控制的理解并形成本文。
身份鑒別,別名身份認(rèn)證,日常生活中,人們常把對主客體身份進(jìn)行確認(rèn)的過程稱為認(rèn)證過程,換言之,身份認(rèn)證在電力軟件行業(yè)及互聯(lián)網(wǎng)行業(yè)中,可理解為當(dāng)互聯(lián)網(wǎng)用戶想要訪問系統(tǒng)或者受限制資源時,系統(tǒng)會對想要訪問的用戶身份進(jìn)行識別和驗證的一個過程。目的就是確認(rèn)什么身份,什么角色,身份合不合法。
既然要對身份進(jìn)行鑒別,首先得了解該身份具有什么特別之處,這就可以引入身份標(biāo)識這個概念了。舉個例子,坐火車,需要出示有效證件來證明我是‘我’,也就是說,身份標(biāo)識是能夠證明用戶身份且證明用戶獨有特征的,一個人只有張身份證,每張身份證清楚地表明姓名、出生日期、出生地點、戶口所在地以及個人照片等信息,‘我’是‘我’且只有一個我,所以身份標(biāo)識必須具有唯一性。實際軟件項目開發(fā)設(shè)計中,我們可以把身份標(biāo)識通常設(shè)為用戶名、用戶ID等
身份標(biāo)識確定之后,如何來確認(rèn)什么身份,什么角色,合不合法?這就引進(jìn)了身份鑒別。
身份鑒別通常劃分為單向鑒別和雙向鑒別。
單向鑒別是指在通信協(xié)議中,只有一方執(zhí)行鑒別動作,在單向身份鑒別中,一個實體充當(dāng)聲稱者;另一個實體充當(dāng)驗證者。
雙向身份鑒別是指通信雙方互相鑒別。實體雙方同時充當(dāng)聲稱者和驗證者。雙向鑒別可以在兩個方向上使用相同或者不同的鑒別機制。
在日常測試工作中,針對身份鑒別的測試關(guān)鍵點通常歸納為以下幾方面:
(1)系統(tǒng)應(yīng)具備系統(tǒng)管理員用戶,職能為系統(tǒng)配置、管理系統(tǒng)用戶、角色;應(yīng)具備審計管理員用戶,職能為系統(tǒng)審核、權(quán)限審核;應(yīng)具備審計管理員用戶,職能為管理安全日志。
(2)系統(tǒng)應(yīng)將業(yè)務(wù)操作權(quán)限賦予非系統(tǒng)管理員,且業(yè)務(wù)操作用戶不能具備任何系統(tǒng)級的管理權(quán)限。
(3)系統(tǒng)應(yīng)具備標(biāo)識和鑒別機制,即應(yīng)用系統(tǒng)應(yīng)對用戶狀態(tài)進(jìn)行劃分,并對不同狀態(tài)賬戶的操作進(jìn)行限制。
①系統(tǒng)應(yīng)有登錄模塊,不能直接訪問URL。②對登錄用戶進(jìn)行唯一身份標(biāo)識驗證,可通過數(shù)據(jù)庫主鍵來實現(xiàn),已注冊用戶禁止再次注冊。③不能有匿名用戶:系統(tǒng)應(yīng)采用用戶名加密碼方式進(jìn)行身份標(biāo)識和鑒別,數(shù)據(jù)庫中不應(yīng)存在用戶名密碼為空字段。
(4)系統(tǒng)應(yīng)提供獨立的登錄模塊,并對登錄用戶進(jìn)行唯一身份標(biāo)識,不能有匿名用戶。
(5)系統(tǒng)應(yīng)確保用戶在授予敏感權(quán)限之前被鑒別。即新建用戶必須先審核后生效、新建角色應(yīng)先審核后生效、登錄后,才能訪問到相應(yīng)的資源。
(6)系統(tǒng)應(yīng)具備防篡改和防重放登錄機制的能力。
①身份鑒別中的防篡改要求密碼要加密、用戶密碼不能被暴力破解;②身份鑒別中的防重放要求登錄過程中含有用戶名和密碼的請求,不能再次被提交到服務(wù)器上。
(7)系統(tǒng)應(yīng)能夠支持雙向鑒別機制:https協(xié)議進(jìn)行雙向驗證,服務(wù)端和客戶端都必須有證書。
(8)系統(tǒng)應(yīng)提供多重用戶鑒別機制:郵箱驗證碼、短信驗證碼、UKEY。
(9)系統(tǒng)應(yīng)有管理員分發(fā)用戶的初始口令,強制用戶在初始登錄時修改初始密碼口令;口令應(yīng)存在有效期,過期將強制修改密碼:用戶口令的有效期可以在前臺進(jìn)行修改,且有效期到期后,強制用戶修改口令。
(10)系統(tǒng)應(yīng)除了系統(tǒng)管理員外,不允許其他用戶修改非本人的口令。
①系統(tǒng)管理員應(yīng)具備重置用戶密碼的功能;②系統(tǒng)不能被攻擊者采用越權(quán)訪問的方式修改用戶密碼。
(11)系統(tǒng)應(yīng)具備鑒別復(fù)雜度的功能:
等保2級:8位及以上數(shù)字+字符;
等保3級:8位及以上+字符+特殊字符,不要超過20位。
(12)系統(tǒng)的用戶口令應(yīng)有歷史重復(fù)次數(shù)的限制:修改口令時,新口令不應(yīng)與前兩次設(shè)置的口令相同。
(13)系統(tǒng)應(yīng)能夠?qū)κ〉臉?biāo)識和鑒別嘗試進(jìn)行鎖定。
①用戶登錄失敗多次3-10次,應(yīng)鎖永久鎖定或鎖定一段時間(失敗的標(biāo)識進(jìn)行鎖定;②用戶嘗試越權(quán)訪問行為應(yīng)鎖定(鑒別嘗試失?。?。
(14)系統(tǒng)應(yīng)能夠設(shè)置在客戶端登錄用戶的屬性:如設(shè)定訪問IP和訪問時間。
(15)系統(tǒng)應(yīng)能夠檢測和處理會話的異常狀態(tài):斷網(wǎng)后要求用戶重新登錄。
完成身份認(rèn)證,從字面文字而言,“身份”和“鑒別”就是告訴我們,“誰”要訪問,“誰”的身份是什么,“誰”的身份是否合法。如果合法就進(jìn)行確認(rèn)服務(wù)動作。常用的身份認(rèn)證方式有:
(1)靜態(tài)密碼:用戶名+靜態(tài)密碼登錄
生活中,普通從業(yè)者在設(shè)置密碼時,往往選擇簡單且好記的,如自己、親人的生日,手機號、紀(jì)念日等,這種易泄露、容易被猜測的密碼存在弱口令風(fēng)險,易被攻。
靜態(tài)密碼是基于“你知道什么”的驗證手段,也可稱為固定口令認(rèn)證,方式比較簡單,黑客可利用數(shù)據(jù)字典、窮舉、探索等手段訪問到系統(tǒng)。
(2)動態(tài)口令認(rèn)證
基于動態(tài)口令認(rèn)證,常見的有:動態(tài)短信密碼和動態(tài)口令卡著兩種方式。這里涉及的口令必須是一次一密。前者是將系統(tǒng)發(fā)給用戶注冊手機的動態(tài)短信密碼進(jìn)行身份認(rèn)證。后者則以發(fā)給(機構(gòu))用戶動態(tài)口令牌進(jìn)行認(rèn)證。動態(tài)口令高于用戶名密碼,且又是雙因子組合,使用較廣。
(3)身份證、信用卡、智能卡:采用軟硬件相結(jié)合
硬件方面:與外界通信前,完成智能卡與終端間的認(rèn)證;加入安全傳感器,防止數(shù)據(jù)被讀出或?qū)懭?;發(fā)生異常可作出相應(yīng)反應(yīng);存儲器加密,不保存明文。
軟件方面:使用需要通過雙因素認(rèn)證,今日操作智能卡的安全狀態(tài);信息采用文件系統(tǒng)進(jìn)行保存,不同類型或秘鑰,提供不同的訪問操作。
(4)一次性口令
核心是要把不確定的因素添加到登錄環(huán)節(jié),登錄過程中傳輸?shù)男畔⒚看味紩l(fā)生變化,以提高登錄過程的安全性。例如:登錄過程輸入用戶名、密碼,系統(tǒng)在收到登錄口令后按照時間戳?xí)鲆粋€驗算,這個過程即可驗證用戶的合法性。
(5)生物識別技術(shù)
可以是具有唯一性的生物信息和行為特征,如指紋、聲音、面相、虹膜等,依托計算機的強大功能和網(wǎng)絡(luò)技術(shù)進(jìn)行圖像處理和模式識別。
①語音識別:對本用戶語音進(jìn)行采樣,提取特征,作為樣本。存在的不足是如感冒狀態(tài),聲音有變化,辨別過程受影響,存在誤判;②人臉識別:用于身份鑒別設(shè)備的攝像頭一般會自動采集照片,并將采集到的人臉與存儲庫的資料進(jìn)行對比確認(rèn)。日常生活中,常用于公安布控監(jiān)控、民航安檢、口岸出入控制、海關(guān)身份鑒別等;③指紋、掌紋識別:每個人的指紋、掌紋曲線、分叉都存在微小的差異,這種生物特征具有客觀性和唯一性,如很多單位使用指紋打卡、手掌打卡;很多手機采用指紋解鎖,就是提取指紋中的某些特征信息,節(jié)省資源、快速查詢;④視網(wǎng)膜識別:視網(wǎng)膜是生物眼睛底部的血液細(xì)胞層。通常采用密度低的紅外線來獲取視網(wǎng)膜的獨特特征;⑤虹膜識別:虹膜是一種在眼睛中瞳孔內(nèi)的織物狀各色環(huán)狀物,每一個虹膜都由不同的斑點、細(xì)絲、凹點、射線、皺紋、冠狀和條紋結(jié)構(gòu)組成;⑥CA認(rèn)證:由國際、國內(nèi)認(rèn)證機構(gòu)發(fā)放可證明持有者身份合法性的證書,在我們通常的檢測項目中,如系統(tǒng)等保級別較低,也可選擇開源SSL證書,版本為3.0以上。主要管理和維護(hù)客戶的證書和證書作廢表、維護(hù)整個認(rèn)證過程的安全、提供安全審計的依據(jù)。
針對越權(quán)使用資源的防御措施,傳統(tǒng)上,通過“主體—動作—客體”結(jié)構(gòu),訪問控制策略即設(shè)置了什么類型的主體可以對什么類型的客體執(zhí)行什么樣的操作。從另一個角度看,也是控制非法用戶對系統(tǒng)資源的使用,合法用戶對系統(tǒng)資源的非法使用,從而保證系統(tǒng)的完整性和保密性。如圖1所示。
圖1 概念結(jié)構(gòu)圖
訪問控制策略的主體屬性、客體屬性是獨立存在的。在接觸的安全測試工作中發(fā)現(xiàn),控制策略的主客體只有小部分是通過安全標(biāo)簽來聯(lián)系的,大多數(shù)策略是互不干涉的。因此,主客體都有獨立的結(jié)構(gòu)和標(biāo)記,只要滿足特定的關(guān)系,即可通過放行。
在日常測試工作中,針對訪問控制的測試關(guān)鍵點通常歸納為以下幾方面:
(1)系統(tǒng)應(yīng)具備系統(tǒng)管理員用戶,其職能為管理系統(tǒng)用戶、角色:(2)系統(tǒng)應(yīng)具備審核管理員用戶,其職能為系統(tǒng)審核、權(quán)限審核:(3)系統(tǒng)應(yīng)具備審計管理員用戶,其職能為安全審計:(4)系統(tǒng)應(yīng)將業(yè)務(wù)操作權(quán)限賦予非系統(tǒng)管理員,且業(yè)務(wù)操作用戶不能具備任何系統(tǒng)級的管理權(quán)限:(5)系統(tǒng)應(yīng)設(shè)置規(guī)定類型的角色,且使角色間權(quán)限互斥:(6)系統(tǒng)應(yīng)具備業(yè)務(wù)審核員用戶,其職能為審核關(guān)鍵業(yè)務(wù)操作。
(1)主體、客體及策略是訪問控制的三要素。
①對想要訪問的資源提出請求,被稱為主體。主體也可稱為請求的發(fā)起人,可以是任意用戶,也可以是由用戶發(fā)起的相關(guān)服務(wù)、設(shè)備及運行進(jìn)程;②被訪問的資源實體可稱為客體。可以是被操作的信息、對象,也可以是文件、存儲介質(zhì)、進(jìn)行程序;③提出請求的主體對被訪問的資源的訪問屬性和規(guī)則統(tǒng)稱為訪問控制策略。訪問策略是主體對客體的一種授權(quán)行為,也是客體對主體某些操作行為的允許。
(2)鑒別、授權(quán)是訪問控制策略的兩個過程。鑒別是對想要訪問資源的主體進(jìn)行合法身份識別;授權(quán)是限制用戶對被訪資源的訪問權(quán)限。
(3)訪問控制技術(shù)模式
①自主訪問控制:自主訪問控制是一種較寬松的接入式控制服務(wù),主體可以自行決定是否要將自己的客體訪問權(quán)限授予其他主體方,或者將部分訪問權(quán)限授予其他實體方。通俗講,用戶是可以按照自己的意愿來實現(xiàn)有選擇的和其他方共享文件或信息。是保護(hù)系統(tǒng)資源不被非法訪問的一種有效手段。自主訪問控制的不足之處在于控制粒度是單個用戶,如果沒有存儲的用戶想要訪問系統(tǒng)資源時,授權(quán)用戶在獲得訪問權(quán)限后,可以批準(zhǔn)他人的訪問請求,可能會造成非法用戶可讀取到系統(tǒng)敏感信息。②強制訪問控制:強制訪問控制是一種對訪問權(quán)限的約束機制,將系統(tǒng)中的資源信息按照密級和類進(jìn)行管理,用于控制訪問策略。強制訪問控制策略可以預(yù)防越權(quán)訪問的發(fā)生。強制訪問控制按照密級劃分可劃分為4級:絕密、秘密級、機密和無級別。用戶(或其他主體)與文件(或其他客體)都被分配了安全標(biāo)簽及屬性。當(dāng)主體的認(rèn)可證級別大于或者等于客體的密級時,主體才能夠讀取相應(yīng)的客體;當(dāng)主體的許可證級別小于或者等于客體的密級時,主體才能寫相應(yīng)的客體。
每次訪問發(fā)生時,系統(tǒng)會自動檢測安全屬性,從而確定用戶是否有權(quán)訪問該資源。多級安全策略就是一種強制訪問的控制策略。
身份認(rèn)證是解決你是誰,你對應(yīng)的角色是什么,即通過鑒別方式,確定你是合法的某個用戶。而訪問控制是什么資源給什么角色。
本文總結(jié)了身份鑒別與訪問控制技術(shù)的概念及常用的技術(shù),對初次接觸身份鑒別與訪問控制的測試讀者有所幫助。