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