嚴(yán)霄鳳
工業(yè)和信息化部計(jì)算機(jī)與微電子發(fā)展研究中心(中國(guó)軟件評(píng)測(cè)中心) 北京 100048
電子認(rèn)證是電子政務(wù)和電子商務(wù)的核心環(huán)節(jié),目的是建立以電子方式提交到信息系統(tǒng)的用戶身份的可信性,確保網(wǎng)上傳遞信息的真實(shí)性、保密性、完整性和不可否認(rèn)性。信息系統(tǒng)可以根據(jù)經(jīng)過(guò)電子認(rèn)證的身份確定某人是否被授權(quán)執(zhí)行電子政務(wù)、電子交易等相關(guān)網(wǎng)絡(luò)活動(dòng)。
電子認(rèn)證令牌包含電子認(rèn)證過(guò)程中證明用戶身份的秘密,通過(guò)一個(gè)或多個(gè)認(rèn)證因素控制,由用戶擁有,用于證明用戶的身份。根據(jù)令牌使用的認(rèn)證因素?cái)?shù)量和類(lèi)型的不同,其特點(diǎn)也不同。
對(duì)令牌的擁有和控制是認(rèn)證用戶身份的證據(jù),如果令牌受到不法分子的攻擊,被偷竊、篡改或復(fù)制,將使攻擊者獲得對(duì)令牌控制的機(jī)會(huì),偽裝成令牌的主人,實(shí)施不法行為,給令牌用戶造成損失或危害。
傳統(tǒng)的認(rèn)證系統(tǒng)將知道的東西(如口令)、擁有的東西(如ID徽章、IC卡和動(dòng)態(tài)口令卡)和自身的特征(如指紋、瞳孔、聲音或其他生物特征)三種因素作為認(rèn)證的基本要素。令牌的特點(diǎn)由其使用的認(rèn)證因素的數(shù)量和類(lèi)型決定,令牌可能是單因素或多因素的:
(1) 單因素令牌:使用三個(gè)認(rèn)證因素之一獲得認(rèn)證。例如,口令是知道的東西。不需要其他因素激活令牌,被認(rèn)為是單因素的。
(2) 多因素令牌:使用兩個(gè)或多個(gè)認(rèn)證因素獲得認(rèn)證。例如,通過(guò)PIN碼激活智能卡上的私鑰是一個(gè)多因素令牌,因?yàn)橹悄芸ㄊ菗碛械臇|西,PIN碼是知道的東西。
認(rèn)證系統(tǒng)的安全程度在很大程度上取決于系統(tǒng)采用的認(rèn)證因素的數(shù)量。使用兩個(gè)認(rèn)證因素的認(rèn)證系統(tǒng)比只使用一個(gè)認(rèn)證因素的認(rèn)證系統(tǒng)更強(qiáng);使用所有三個(gè)認(rèn)證因素的系統(tǒng)比只使用兩個(gè)認(rèn)證因素的系統(tǒng)更強(qiáng)。
通常情況下,雙因素令牌足以達(dá)到認(rèn)證需要的安全水平,但在某些應(yīng)用或環(huán)境中可能需要使用多個(gè)認(rèn)證因素獲得要求的認(rèn)證強(qiáng)度。
令牌的一個(gè)抽象模型如圖1所示。
圖1 令牌模型
圖的外框表示令牌,令牌可能存在一個(gè)硬件(如智能卡)、軟件(如軟件加密模塊)或人的記憶中。內(nèi)框代表存儲(chǔ)在令牌中的令牌秘密。令牌的輸出是提供給協(xié)議棧,以便傳輸給驗(yàn)證方,證明用戶擁有和控制令牌的一個(gè)值——令牌驗(yàn)證碼。令牌驗(yàn)證碼可能是令牌秘密或令牌秘密的變形。
令牌有兩個(gè)可選的輸入:令牌輸入數(shù)據(jù)和令牌激活數(shù)據(jù)。為了生成令牌驗(yàn)證碼可能需要令牌輸入數(shù)據(jù),如一個(gè)挑戰(zhàn)或隨機(jī)數(shù)。令牌輸入數(shù)據(jù)可由用戶提供,或者是令牌本身的一個(gè)功能,如一次性口令(One-time Password,OTP)設(shè)備的時(shí)鐘。為了激活令牌并允許生成令牌驗(yàn)證碼,可能需要令牌激活數(shù)據(jù),如一個(gè)PIN碼或生物特征識(shí)別。當(dāng)用戶通過(guò)知道的東西或自身的特征控制令牌時(shí),需要令牌激活數(shù)據(jù)。
驗(yàn)證碼在使用令牌的過(guò)程中生成。一般情況下,通過(guò)使用令牌秘密和一個(gè)或多個(gè)可選的令牌輸入值(如,一個(gè)隨機(jī)數(shù)或挑戰(zhàn))執(zhí)行數(shù)學(xué)函數(shù)生成驗(yàn)證碼:
驗(yàn)證碼=f(<令牌秘密>〔,<隨機(jī)數(shù)>〕〔,<挑戰(zhàn)值>〕)
在令牌是一個(gè)口令的情況下,驗(yàn)證碼就是令牌秘密本身。
令牌中包含的秘密基于公共密鑰對(duì)(非對(duì)稱(chēng)密鑰)或共享秘密。公共密鑰對(duì)由一個(gè)公鑰和一個(gè)關(guān)聯(lián)的私鑰組成。私鑰存儲(chǔ)在令牌中,由用戶用于證明其對(duì)令牌的擁有和控制。驗(yàn)證方通過(guò)一些憑證(通常是公鑰證書(shū))獲取用戶的公鑰,通過(guò)證明用戶擁有和控制關(guān)聯(lián)的私鑰令牌,使用認(rèn)證協(xié)議驗(yàn)證用戶的身份。存儲(chǔ)在令牌中的共享秘密,可能是對(duì)稱(chēng)密鑰或口令,雖然他們可以使用類(lèi)似的協(xié)議,但兩者之間的一個(gè)重要區(qū)別是如何與用戶關(guān)聯(lián)。對(duì)稱(chēng)密鑰通常存儲(chǔ)在用戶控制的硬件或軟件中,口令往往由用戶記憶。因此,密鑰是用戶擁有的東西,而口令是用戶知道的東西。因?yàn)榭诹钚枰洃?,所以通常達(dá)不到加密密鑰可能的長(zhǎng)度,在許多協(xié)議中,很容易受到網(wǎng)絡(luò)攻擊,不適合作為密鑰。此外,將口令輸入系統(tǒng)的入口(通常是鍵盤(pán))為非常簡(jiǎn)單的鍵盤(pán)記錄攻擊提供了機(jī)會(huì),還可能讓附近的人通過(guò)偷窺輸入獲取口令。所以,密鑰和口令代表了不同的認(rèn)證屬性。
在電子認(rèn)證過(guò)程中,用戶在網(wǎng)絡(luò)上通過(guò)證明其擁有和控制令牌,從而表明用戶是申請(qǐng)到令牌的用戶,讓系統(tǒng)或應(yīng)用程序認(rèn)證其身份。
電子認(rèn)證令牌總會(huì)包含一個(gè)秘密,一些經(jīng)典的認(rèn)證因素并不直接適用于電子認(rèn)證。例如,ID徽章是用戶擁有的東西,當(dāng)向門(mén)衛(wèi)證明用戶的身份時(shí)是有用的,但它不是一個(gè)用于電子認(rèn)證的令牌。歸類(lèi)為知道的東西的認(rèn)證因素不一定是秘密。在基于知識(shí)的認(rèn)證中,用戶被提示回答可以從公共數(shù)據(jù)庫(kù)中得到證實(shí)的問(wèn)題,也沒(méi)有構(gòu)成電子認(rèn)證可接受的秘密。一般來(lái)說(shuō),自身的特征一般不構(gòu)成秘密,因此不使用生物特征作為電子認(rèn)證令牌,但他們?cè)陔娮诱J(rèn)證中具有自己的一席之地。例如,通過(guò)指紋保護(hù)訪問(wèn)一個(gè)其中包含加密密鑰(令牌秘密)的硬件(令牌)。當(dāng)與生物特征識(shí)別一起使用時(shí),加密密鑰產(chǎn)生一個(gè)輸出(令牌驗(yàn)證碼),用于在認(rèn)證過(guò)程中驗(yàn)證用戶。冒名頂替者必須通過(guò)偷竊硬件獲取加密密鑰并復(fù)制指紋,才能使用令牌。盡管在驗(yàn)證方與用戶之間實(shí)際認(rèn)證協(xié)議只簡(jiǎn)單地證明用戶擁有密鑰,但這樣的設(shè)備有效地提供了雙因素認(rèn)證。
生物特征識(shí)別的特點(diǎn)是可以用個(gè)人惟一的特征屬性驗(yàn)證身處驗(yàn)證點(diǎn)的人的身份。生物特征識(shí)別包括面部特征、指紋、DNA、虹膜和視網(wǎng)膜掃描、聲紋及許多其他特性。生物特征識(shí)別可用于在注冊(cè)過(guò)程中提高安全級(jí)別,防止以后用戶否認(rèn)注冊(cè),幫助識(shí)別提交注冊(cè)欺詐的人,以及進(jìn)行令牌解鎖。
用于電子認(rèn)證中的令牌主要有以下幾種類(lèi)型:
(1) 記憶秘密令牌:在用戶和認(rèn)證服務(wù)提供者(Credential Service Provider,CSP)之間共享的一個(gè)秘密。記憶秘密令牌通常是字符串(如口令)或數(shù)值串(如PIN碼)。在認(rèn)證過(guò)程中提交給驗(yàn)證方的令牌驗(yàn)證碼是秘密本身(如口令本身)。記憶秘密令牌是知道的東西。
(2) 預(yù)注冊(cè)知識(shí)令牌:對(duì)一組提示或挑戰(zhàn)的一系列響應(yīng)。這些響應(yīng)可被看作是一組共享秘密。提示和響應(yīng)組由用戶和CSP在注冊(cè)過(guò)程中創(chuàng)建。在一次認(rèn)證過(guò)程中,令牌驗(yàn)證碼是一組記憶中的對(duì)注冊(cè)提示的響應(yīng)。例如,對(duì)諸如“你第一個(gè)寵物的名字是什么?”的提示設(shè)置的響應(yīng)。在認(rèn)證過(guò)程中,要求用戶提供對(duì)一個(gè)提示子集的正確響應(yīng)。另外,用戶可能在注冊(cè)過(guò)程中選擇和記憶了一個(gè)圖像。在認(rèn)證過(guò)程中,用戶被提示從一組類(lèi)似的圖片中識(shí)別正確的圖像。以前驗(yàn)證的會(huì)話交易可作為預(yù)注冊(cè)知識(shí)令牌。預(yù)注冊(cè)知識(shí)令牌是知道的東西。
(3) 查找秘密令牌:存儲(chǔ)用戶和CSP之間共享的一組秘密的物理或電子令牌。用戶使用令牌查找響應(yīng)驗(yàn)證方提示需要的秘密。如,驗(yàn)證方可能要求用戶提供以表格形式印刷在一個(gè)卡上的數(shù)字或字符串的特定子集(如,工行口令卡)。令牌驗(yàn)證碼是由提示符確定的秘密。查找秘密令牌是擁有的東西。
(4) 帶外令牌:惟一可尋址的物理令牌,可以接收驗(yàn)證方選定的一次性使用的秘密。設(shè)備由用戶擁有和控制,并支持在一個(gè)與主通道分離,用于電子認(rèn)證的通道上進(jìn)行私人通信。令牌驗(yàn)證碼是接收的秘密,被提交給使用主通道進(jìn)行電子認(rèn)證的驗(yàn)證方。例如,用戶試圖登錄到一個(gè)網(wǎng)站,在其注冊(cè)期間預(yù)注冊(cè)的手機(jī)、PDA、尋呼機(jī)或陸上線路上接收作為電子認(rèn)證協(xié)議的一部分提交的隨機(jī)驗(yàn)證碼。帶外令牌是擁有的東西。
(5) 單因素(SF)一次性口令(OTP)設(shè)備:支持一次性口令(或稱(chēng)動(dòng)態(tài)口令)自生成的硬件設(shè)備。具有一個(gè)用作種子生成一次性口令的內(nèi)嵌秘密,不需要通過(guò)第二個(gè)因素激活。通過(guò)提供一個(gè)可接受的一次性口令,證明擁有和控制設(shè)備來(lái)實(shí)現(xiàn)認(rèn)證。令牌驗(yàn)證碼是一次性口令。例如,一個(gè)一次可顯示 6個(gè)字符的一次性口令設(shè)備。SF OTP設(shè)備是擁有的東西。
(6) 單因素(SF)加密設(shè)備:對(duì)提供給設(shè)備的輸入執(zhí)行加密操作的硬件設(shè)備。不需要通過(guò)第二個(gè)認(rèn)證因素激活。使用內(nèi)嵌的對(duì)稱(chēng)或非對(duì)稱(chēng)加密密鑰。通過(guò)證明擁有設(shè)備完成認(rèn)證。令牌驗(yàn)證碼高度依賴(lài)于特定的加密設(shè)備和協(xié)議,通常是某種類(lèi)型的簽名消息。SF加密設(shè)備是擁有的東西。
(7) 多因素(MF)軟件加密令牌:加密密鑰存儲(chǔ)在磁盤(pán)或一些其他“軟”介質(zhì)中,需要通過(guò)第二個(gè)認(rèn)證因素激活。通過(guò)證明擁有和控制密鑰完成認(rèn)證。令牌驗(yàn)證碼高度依賴(lài)于特定的加密協(xié)議,通常是某種類(lèi)型的簽名消息。MF軟件加密令牌是擁有的東西,可通過(guò)知道的東西或自身的特征激活。
(8) 多因素(MF)一次性口令(OTP)設(shè)備:一個(gè)硬件設(shè)備,生成一次性口令用于認(rèn)證,需要通過(guò)第二個(gè)認(rèn)證因素激活。第二個(gè)因素可通過(guò)某些種類(lèi)的集成輸入板、生物特征(如,指紋)掃描器或直接電腦接口(如,USB端口)獲得。雖然允許從設(shè)備直接通過(guò)電子方式輸入到計(jì)算機(jī),但通常一次性口令顯示在設(shè)備上,作為一個(gè)口令手工輸入到驗(yàn)證方。MF OTP設(shè)備是擁有的東西,可通過(guò)知道的東西或自身的特征激活。
(9) 多因素(MF)加密設(shè)備:一個(gè)硬件設(shè)備,包含一個(gè)受保護(hù)的加密密鑰,需要通過(guò)第二認(rèn)證因素激活。通過(guò)證明擁有設(shè)備和控制密鑰完成認(rèn)證。令牌驗(yàn)證碼高度依賴(lài)于特定的加密設(shè)備和協(xié)議,但通常是某種類(lèi)型的簽名消息。MF加密設(shè)備是擁有的東西,可通過(guò)知道的東西或自身的特征激活。
在認(rèn)證過(guò)程中可能涉及到一個(gè)或多個(gè)令牌的組合使用。
(1) 單令牌認(rèn)證:用戶提供一個(gè)令牌驗(yàn)證碼,向驗(yàn)證方證明其身份。例如,當(dāng)用戶試圖登錄到一個(gè)受口令保護(hù)的網(wǎng)站時(shí),用戶輸入用戶名和口令。在這種情況下,只有口令被認(rèn)為是令牌。
(2) 多令牌認(rèn)證:用戶向驗(yàn)證方提供由兩個(gè)或多個(gè)令牌生成的令牌驗(yàn)證碼證明其身份。令牌組合的特點(diǎn)由令牌使用的、令牌本身固有的和激活令牌的因素的組合決定。例如,驗(yàn)證方要求用戶輸入口令,并使用單因素加密設(shè)備的認(rèn)證。這里口令是知道的東西,加密設(shè)備是擁有的東西,組合被認(rèn)為是多因素的。
(3) 多階段認(rèn)證:使用單因素令牌獲得第二個(gè)令牌的多階段認(rèn)證過(guò)程,不構(gòu)成多因素認(rèn)證。多階段組合解決方案的安全級(jí)別等于最弱令牌的安全級(jí)別。例如,一些加密移動(dòng)解決方案允許將部分或全部加密密鑰存儲(chǔ)在網(wǎng)絡(luò)服務(wù)器上,并在使用口令成功驗(yàn)證后下載到用戶的本地系統(tǒng)。隨后,用戶可以使用下載的軟件加密令牌來(lái)向電子認(rèn)證的遠(yuǎn)程驗(yàn)證方驗(yàn)證身份。這種類(lèi)型解決方案的安全級(jí)別僅與用戶為獲得加密令牌所提供的口令令牌的安全級(jí)別相同。
有一種特殊的多令牌認(rèn)證的情況,其中使用一個(gè)主令牌建立一個(gè)安全會(huì)話,在會(huì)話中使用輔助令牌提供第二個(gè)令牌驗(yàn)證碼。雖然兩個(gè)令牌用在不同的時(shí)間,但其結(jié)果相當(dāng)于多令牌認(rèn)證,可提高用戶與依賴(lài)方(Relying Party,RP)之間電子認(rèn)證會(huì)話的整體安全級(jí)別。在這些認(rèn)證情境中,兩個(gè)階段令牌組合所獲得的安全等級(jí)與使用相同令牌集的多令牌認(rèn)證方案相同。當(dāng)組合兩個(gè)令牌類(lèi)型用于多令牌認(rèn)證方案時(shí),可以提高認(rèn)證的安全級(jí)別。表1給出了通過(guò)兩個(gè)令牌類(lèi)型的組合可獲得的最高安全等級(jí)。
表1 多令牌電子認(rèn)證方案的安全等級(jí)
表1的生成原則是:
(1) 使用兩個(gè)不同認(rèn)證因素的2級(jí)令牌可以獲得3級(jí)安全等級(jí)。2級(jí)令牌包括擁有的東西和知道的東西。
令牌(2級(jí),擁有的東西)+令牌(2級(jí),知道的東西)→令牌(3 級(jí))。
(2) 在所有其他情況下,令牌組合獲得的安全等級(jí)等于組合中各令牌的最高安全等級(jí)。
例如,一個(gè)記憶秘密令牌(知道的東西,最高安全等級(jí)為2級(jí))與一個(gè)查找秘密令牌(擁有的東西,安全等級(jí)為2級(jí))組合可以獲得3級(jí)的組合令牌。一個(gè)MF軟件加密令牌(安全等級(jí)為3級(jí))和一個(gè)記憶秘密令牌(最高安全等級(jí)為2級(jí))組合,整體上獲得3級(jí)安全等級(jí),這里增加記憶秘密令牌不能增加組合的安全等級(jí)。
攻擊者獲得對(duì)令牌控制的機(jī)會(huì),就可能偽裝成令牌的主人,實(shí)施不法行動(dòng)?;趯?duì)構(gòu)成令牌各種認(rèn)證因素的攻擊,令牌面臨的安全風(fēng)險(xiǎn)可分為以下幾類(lèi):
(1) 擁有的東西被丟失、損壞、偷竊或被攻擊者克隆。例如,獲得對(duì)令牌所有人的計(jì)算機(jī)訪問(wèn)機(jī)會(huì)的攻擊者可以復(fù)制一個(gè)軟件令牌。硬件令牌可能被偷竊、篡改或復(fù)制。
(2) 知道的東西被泄露給攻擊者。攻擊者可能猜測(cè)到口令或PIN碼。當(dāng)令牌是一個(gè)共享秘密時(shí),攻擊者可能獲得對(duì)CSP或驗(yàn)證方的訪問(wèn)機(jī)會(huì),并獲得秘密值。攻擊者可能安裝惡意軟件(如鍵盤(pán)記錄器)捕獲秘密。此外,攻擊者可能通過(guò)對(duì)認(rèn)證嘗試網(wǎng)絡(luò)流量的離線攻擊確定秘密。攻擊者可能通過(guò)研究用戶或通過(guò)其他社會(huì)工程技術(shù),獲得用戶的預(yù)注冊(cè)信息,如用戶可能在一次談話或博客中曾提到她的第一只寵物。
(3) 自身的特征被復(fù)制。攻擊者可能會(huì)獲得一個(gè)令牌所有者指紋的拷貝并制作一個(gè)復(fù)制品。
表 2列出了電子認(rèn)證令牌面臨的安全風(fēng)險(xiǎn)以及一些例子,給出了緩解令牌安全風(fēng)險(xiǎn)的有關(guān)措施。
表2 令牌安全風(fēng)險(xiǎn)及緩解措施
安全風(fēng)險(xiǎn) 描述 舉例 緩解措施網(wǎng)絡(luò)釣魚(yú)或網(wǎng)址嫁接通過(guò)欺騙用戶,使其把攻擊者當(dāng)成驗(yàn)證方或RP,從而捕獲令牌秘密或驗(yàn)證碼。用戶將口令泄露給仿冒驗(yàn)證方的網(wǎng)站。銀行用戶在響應(yīng)來(lái)自釣魚(yú)者假裝代表銀行的電子郵件查詢時(shí)泄漏口令。用戶通過(guò)DNS重新路由登錄假冒網(wǎng)站泄漏口令。使用具有動(dòng)態(tài)驗(yàn)證碼的令牌,保證不能用其驗(yàn)證碼信息導(dǎo)出后續(xù)的驗(yàn)證碼。社會(huì)工程為了讓用戶提供其令牌或令牌秘密,攻擊者使用戶對(duì)其建立一定程度的信任。用戶將口令告訴代表用戶的老板詢問(wèn)口令的同事。用戶在電話查詢中將口令告訴偽裝成系統(tǒng)管理員的攻擊者。使用具有動(dòng)態(tài)驗(yàn)證碼的令牌,保證不能用其驗(yàn)證碼信息導(dǎo)出后續(xù)的驗(yàn)證碼。在線猜測(cè)攻擊者連接到網(wǎng)上的驗(yàn)證方,嘗試在驗(yàn)證方上下文中猜測(cè)有效的令牌驗(yàn)證碼。使用在線字典攻擊猜測(cè)口令。使用在線猜測(cè)獲取注冊(cè)到合法用戶的一次性口令令牌的驗(yàn)證碼。使用產(chǎn)生高熵驗(yàn)證碼的令牌。
另外,實(shí)施以下幾項(xiàng)措施可用于減輕表2中描述的安全風(fēng)險(xiǎn):
(1) 多因素:可以抬高攻擊成功的門(mén)檻,增加攻擊的難度。
(2) 物理安全機(jī)制:可以保護(hù)被盜的令牌使其不被復(fù)制。
(3) 口令復(fù)雜性規(guī)則:可以降低猜測(cè)攻擊成功的可能性。要求使用不出現(xiàn)在普通字典中的長(zhǎng)口令,將迫使攻擊者嘗試每一個(gè)可能的口令。
(4) 系統(tǒng)和網(wǎng)絡(luò)安全控制:可以減少攻擊者獲得對(duì)系統(tǒng)訪問(wèn)或安裝惡意軟件的機(jī)會(huì)。
(5) 定期培訓(xùn):可以確保用戶明白何時(shí)和如何報(bào)告受損或懷疑受損,識(shí)別攻擊者嘗試破壞令牌的行為模式。
(6) 帶外技術(shù):可以用來(lái)驗(yàn)證擁有注冊(cè)設(shè)備(如手機(jī))的證據(jù)。
[1]Electronic Authentication Guideline,NIST SP 800-63-1.December.2011.
[2]E-Authentication Guidance for Federal agencies.OMB Memorandum M-04-04.December 16.2003.
[3]Security Requirements for Cryptographic Modules,NIST FIPS PUB 140-2,May 25, 2001.
[4]嚴(yán)霄鳳.G2C/B2B核心 美國(guó)聯(lián)邦電子認(rèn)證模型研究.IT168.2012.
[5]光大銀行推出陽(yáng)光令牌.電子銀行首次實(shí)現(xiàn)統(tǒng)一身份認(rèn)證.金融周刊.2011.