麥超,鐘林峰,楊振國,胡振宇,劉文印,3
(1.廣東工業(yè)大學(xué)計算機學(xué)院,廣州510006;2.廣東工業(yè)大學(xué)網(wǎng)絡(luò)身份安全實驗室,廣州510006;3.鵬城實驗室網(wǎng)絡(luò)空間安全研究中心,深圳518000)
當(dāng)前高速發(fā)展的互聯(lián)網(wǎng)已經(jīng)深入到社會生活的各個方面,極大地促進了社會經(jīng)濟的發(fā)展。然而在享受信息的高度網(wǎng)絡(luò)化帶來的各種便利時,網(wǎng)絡(luò)安全方面的挑戰(zhàn)也隨之而來,各種網(wǎng)絡(luò)身份信息泄露事件愈演愈烈,使個人和企業(yè)遭受巨大損失。網(wǎng)絡(luò)安全公司Shape Security發(fā)布的2018Credential Spill Report[1]顯示,來自51個不同組織的23億份證書發(fā)生過泄漏;在傳統(tǒng)的網(wǎng)絡(luò)身份認(rèn)證機制中,主要包含了客戶端和網(wǎng)站服務(wù)器。用戶通過操作客戶端填充相應(yīng)的登錄信息(例如賬號密碼、短信驗證碼等)與網(wǎng)站服務(wù)器交互。但因為網(wǎng)站服務(wù)器都是相對孤立,不同的網(wǎng)站服務(wù)器安全防護程度參差不齊,又因為用戶存在著密碼疲勞、密碼復(fù)用等問題,攻擊者往往會從安全防護程度低的服務(wù)器作為突破口進行網(wǎng)絡(luò)身份的攻擊,轉(zhuǎn)而利用所得數(shù)據(jù)攻擊安全防護高的系統(tǒng)。所以目前傳統(tǒng)的網(wǎng)絡(luò)身份認(rèn)證機制中存在著明顯的安全木桶短板問題。如何對眾多繁雜的賬號密碼進行有效的管理認(rèn)證及安全保護成為了身份認(rèn)證技術(shù)所面臨的新挑戰(zhàn)。
目前流行的密碼管理器有登錄易[2]、Password?Box、1Password等,專注解決使用密碼時“燒腦”“密碼疲勞”等問題。tiQr項目研究組推出的基于Android/iOS平臺的tiQr軟件[3-4]除了實現(xiàn)對于用戶網(wǎng)絡(luò)身份保存、管理等基本功能外,還實現(xiàn)了通過掃描網(wǎng)站登錄頁顯示的二維碼登錄的功能。SQRL(Secure,Quick,Reliable Login)項目研究組正在研發(fā)的SQRL軟件[5]也包含了掃描獲取網(wǎng)站信息的功能。聯(lián)合單點登錄技術(shù)是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一,常見的單點登錄技術(shù)有OpenID[6]、SMAL[7]等。網(wǎng)絡(luò)電子身份證eID作為公安部第三研究所的科研成果[8],依托國家公安部全國人口庫,在確保個人信息身份真實性的同時,有效避免了用戶身份信息被保留在網(wǎng)絡(luò)運營商時潛在的泄露風(fēng)險[9]。與eID類似,王娟等[10]提出了基于虛擬卡技術(shù)的移動互聯(lián)網(wǎng)身份認(rèn)證系統(tǒng)ID-Vcard,將虛擬卡作為一種身份管理的形式,從而更好地保護用戶的身份隱私。
在互聯(lián)網(wǎng)保險領(lǐng)域,目前,包括各銀行、360、騰訊、支付寶、蘇寧金融等,推出的都是對自己平臺賬戶的安全保險,很少有第三方保險公司參與其中。在傳統(tǒng)的保險行業(yè)中,各保險類型都更加偏向?qū)嶓w與民生的保護,關(guān)于網(wǎng)絡(luò)身份的保險研究較少。但是,愈演愈烈的網(wǎng)絡(luò)身份被盜事件讓網(wǎng)絡(luò)身份保險成為當(dāng)下
網(wǎng)絡(luò)身份管理領(lǐng)域迫切的需求之一。本文貢獻:
(1)本文利用密碼管理器賬號密碼管理功能,提出了基于區(qū)塊鏈的網(wǎng)絡(luò)身份登錄認(rèn)證機制,結(jié)合了區(qū)塊鏈點對點交互、分布式存儲、去中心化共識等特點,解決了網(wǎng)絡(luò)身份安全的木桶短板,提高了網(wǎng)絡(luò)身份認(rèn)證的整體安全水平和用戶身份操作記錄的可信任性。
(2)本文提出基于區(qū)塊鏈網(wǎng)絡(luò)身份保險機制,結(jié)合智能合約功能,可應(yīng)對理賠判別難度大、憑證可信任程度不足、過程繁雜、時間長等問題,保證了用戶身份操作記錄的可信任性、不可篡改和實現(xiàn)自動理賠。
比特幣(Bitcoin)的概念最初由中本聰在2008年提出,一種P2P形式的去中心化的支付系統(tǒng)。以太坊(Ethereum)是一個開源的有智能合約功能的公共區(qū)塊鏈平臺,提供去中心化的以太虛擬機(Ethereum Virtual Machine)來處理點對點合約。作為加密貨幣與去中心化應(yīng)用平臺,開發(fā)者可以在智能合約中搭建屬于自己的應(yīng)用。但更多情況下,智能合約往往不能滿足開發(fā)者的實際需求,如果修改底層源碼則面臨著增加更多與業(yè)務(wù)本身無關(guān)的工作量。NULS[11]是全球性區(qū)塊鏈開源社區(qū)項目,設(shè)計的技術(shù)架構(gòu)由微內(nèi)核和功能模塊組成,提供可升級的業(yè)務(wù)、共識、網(wǎng)絡(luò)、賬本、賬戶、區(qū)塊管理、鏈管理、交易管理、事件總線等功能模塊,開發(fā)者可以在業(yè)務(wù)模塊中快速開發(fā)自己的業(yè)務(wù)邏輯,同時根據(jù)實際需求相對獨立地修改某一功能模塊,這樣可以方便公司或企業(yè)更好地搭建開發(fā)和使用區(qū)塊鏈系統(tǒng)。如圖1所示,Nulstar模塊負(fù)責(zé)管理所有的模塊,各模塊之間通過WebSocket進行通信。本文提出的基于區(qū)塊鏈的網(wǎng)絡(luò)身份認(rèn)證及保險機制的基本邏輯主要在業(yè)務(wù)模塊和智能合約模塊中實現(xiàn)。
圖1 NULS模塊化架構(gòu)
SM2算法是我國自主研發(fā)基于橢圓曲線離散對數(shù)問題(ECDLP)的非對稱密鑰算法。2010年,國家密碼管理局發(fā)布了SM2橢圓曲線公鑰密碼算法標(biāo)準(zhǔn)[12],包括數(shù)字簽名算法、密鑰交換。根據(jù)相關(guān)研究,256位SM2加密算法的安全性遠勝于主流RSA-1024算法,且密鑰生成速度和簽名速度也優(yōu)于RSA算法[13]協(xié)議和公鑰加解密算法。本文中SM2加密算法用于網(wǎng)絡(luò)身份認(rèn)證和保險機制通信信息的加密。
區(qū)塊鏈共識機制的目標(biāo)是使分布式網(wǎng)絡(luò)中所有節(jié)點保存的數(shù)據(jù)滿足一致性和有效性[14]。常見的共識算法有工作量證明(proof of work,POW)[15]、股益證明(POS)[16]、權(quán)威證明(proof of authority,POA)[17]共識機制。本文機制中使用信用證明(proof of credit,POC)[18]算法,在節(jié)點信用達標(biāo)的情況下,鎖定一定數(shù)量的代幣即可加入共識,共識節(jié)點排序后每輪輪流出塊。生成的區(qū)塊不需要依靠算力競爭記賬權(quán),在保證系統(tǒng)安全可信任的情況下,有效地減少了資源浪費,提高了區(qū)塊的生成速度。
從技術(shù)層面來說,智能合約相當(dāng)于一種計算機程序,可以自動執(zhí)行全部或者部分合約相關(guān)操作,同時生成被驗證的證據(jù),以此來證明合約操作執(zhí)行結(jié)果的有效性,并且此過程不需要人為干預(yù)。區(qū)塊鏈的去中心化特性、共識算法等要素,使得智能合約允許在無信任的環(huán)境下用戶不需可信第三方中心的保障就可完成交易。因此,部署在區(qū)塊鏈上的智能合約具有匿名性、去中心化、防竄改和可追溯等特性。以太坊是目前應(yīng)用最廣泛的智能合約開發(fā)平臺[19]。在本文的基于區(qū)塊鏈的網(wǎng)絡(luò)身份保險機制中,將使用智能合約功能,實現(xiàn)保險機制的申請理賠和自動理賠功能,保證數(shù)據(jù)及操作的可信仍性及有效性,提高理賠的效率。
如圖2所示,認(rèn)證機制中主要包含了三大部分,傳統(tǒng)身份認(rèn)證機制、去中心化密碼管理器輕節(jié)點、區(qū)塊鏈系統(tǒng)。其中,區(qū)塊鏈系統(tǒng)中包含了NULS鏈本身的基礎(chǔ)模塊,如網(wǎng)絡(luò)模塊提供網(wǎng)絡(luò)連接通信支持,區(qū)塊模塊存儲區(qū)塊鏈共識數(shù)據(jù)。特別的,我們提出去中心化密碼管理器作為區(qū)塊鏈輕節(jié)點,去中心化網(wǎng)站服務(wù)器作為區(qū)塊鏈的全節(jié)點,具體分別如下介紹。
DPM除了兼容傳統(tǒng)密碼管理器幫助用戶進行密碼管理,解決密碼燒腦、疲勞、復(fù)用等問題外,還可以作為區(qū)塊鏈網(wǎng)絡(luò)中的一個輕節(jié)點,通過構(gòu)建廣播區(qū)塊鏈交易的方式,直接地利用點對點技術(shù)與區(qū)塊鏈系統(tǒng)進行通信,降低了傳統(tǒng)密碼管理器中心化服務(wù)器轉(zhuǎn)發(fā)的風(fēng)險,實現(xiàn)網(wǎng)絡(luò)身份的去中心化管理。
DServer是各種網(wǎng)站在區(qū)塊鏈系統(tǒng)中的聯(lián)盟全節(jié)點,作為傳統(tǒng)網(wǎng)站服務(wù)器(TServer)與區(qū)塊鏈溝通的橋梁和“防火墻”,可以傳遞和檢查并過濾來自DPM的注冊、登錄、修改密碼、投保理賠等請求,以此提高網(wǎng)絡(luò)身份服務(wù)器的整體安全性和可信任性。
如圖2所示,用戶打開客戶端獲取二維碼信息,然后使用DPM掃描二維碼。DPM根據(jù)二維碼信息和本地存儲的賬號密碼等信息加密后生成登錄請求交易廣播到區(qū)塊鏈中。區(qū)塊鏈中的DServer接收到共識后的交易將其包含的登錄信息轉(zhuǎn)發(fā)到TServer,TServer驗證登錄信息正確性后,返回加密后的令牌給DServer。DServer根據(jù)令牌廣播允許登錄交易??蛻舳藦脑试S登錄交易中獲取登錄令牌解密后重定向登錄。
相關(guān)的符號描述如下:
表1符號和方法描述
圖2基于區(qū)塊鏈的網(wǎng)絡(luò)身份認(rèn)證機制
身份認(rèn)證算法過程描述如下:
如圖3所示,在基于去中心化網(wǎng)絡(luò)身份認(rèn)證機制的結(jié)構(gòu)下,區(qū)塊鏈系統(tǒng)部分增加了保險公司節(jié)點和監(jiān)督節(jié)點、智能合約模塊。
保險公司節(jié)點主要由保險公司組成,主要負(fù)責(zé)為用戶提供相應(yīng)的網(wǎng)絡(luò)身份保險業(yè)務(wù)。不同的網(wǎng)絡(luò)身份保險公司通過部署智能合約的方式提供服務(wù)。用戶通過DPM申請購買網(wǎng)絡(luò)身份保險或申請自動理賠。
監(jiān)督節(jié)點主要由網(wǎng)絡(luò)安全審計公司或第三方中立平臺或機構(gòu)組成,網(wǎng)絡(luò)安全公司主要負(fù)責(zé)對用戶的網(wǎng)絡(luò)身份和網(wǎng)頁安全程度進行評估,生成相應(yīng)的證明可供用戶或保險公司作為網(wǎng)絡(luò)身份保險的考核數(shù)據(jù)。其次,網(wǎng)絡(luò)安全公司同時會對區(qū)塊鏈數(shù)據(jù)進行監(jiān)測,保證數(shù)據(jù)的去中心化,可信任和不被篡改。
圖3去中心化網(wǎng)絡(luò)身份保險機制
如圖3所示,基于區(qū)塊鏈的網(wǎng)絡(luò)身份保險機制可分為預(yù)保險階段、申請保險階段和申請理賠階段。
4.3.1 預(yù)保險階段
預(yù)保險階段用戶需要修改登錄密碼、保險公司上傳保險智能合約、網(wǎng)站服務(wù)器公司需要上傳登錄憑證。
針對網(wǎng)絡(luò)身份保險中用戶網(wǎng)絡(luò)身份丟失難判別的情況,即用戶的網(wǎng)絡(luò)身份是丟失后的異常登錄還是用戶本身的假丟失然后登錄的情況,例如告知他人進行登錄而獲取理賠。本文中提出了用戶本身都不知道賬號密碼的思想,通過DPM修改為強密碼后返回其隱藏值(本文中返回強密碼的哈希值)作為網(wǎng)絡(luò)身份投保的前提條件。過程如圖3,步驟1.1~1.5所示,DPM廣播申請修改密碼交易到DServer,DServer轉(zhuǎn)發(fā)密碼信息到TServer,TServer驗證密碼信息的正確后,返回強密碼隱藏值到DServer,DServer廣播允許修改密碼交易。DPM從允許修改密碼交易獲取隱藏后強密碼更新DPM本地存儲。
修改密碼算法流程如下:
在基于區(qū)塊鏈的網(wǎng)絡(luò)身份保險中,主要包括了兩個登錄哈希憑證HashProof1和HashProof2。由Algo?rithm 1第9步可知,HashProof1在網(wǎng)絡(luò)身份認(rèn)證過程中由DServer廣播分布式共識存儲于登錄許可交易中,具有可信任性可不可篡改性。HashProof2=Hash(Account,Hash(UID)),當(dāng)UID不為去中心化密碼管理器登錄時,UID為0;由TServer以日志記錄的形式調(diào)用區(qū)塊鏈接口存儲于智能合約中。HashProof2則記錄了所有登錄形式(此時也包括去中心化密碼管理器登錄的方式),例如賬號密碼手動登錄或其他方式登錄,則被認(rèn)為時網(wǎng)絡(luò)身份異常或丟失的情況。步驟如圖3,0.1~0.2所示,TServer上傳HashProof2到智能合約中,智能合約從區(qū)塊中獲取HashProof1。
保險公司業(yè)務(wù)邏輯通過一定規(guī)范進行智能合約編碼后,上傳到智能合約中為用戶提供購買服務(wù)。過程如圖3,步驟2.1所示。
4.3.2 申請保險階段
用戶在修改了網(wǎng)絡(luò)身份密碼后,返回了密碼的隱藏,此時達到了申請為網(wǎng)絡(luò)身份投保的條件。操作流程如圖3,步驟2.2所示:用戶通過去DPM廣播申請投保交易,調(diào)用相應(yīng)的保險公司的智能合約,根據(jù)其內(nèi)部邏輯實現(xiàn)投保。
4.3.3 申請理賠階段
用戶為該賬號購買了相應(yīng)的網(wǎng)絡(luò)身份保險并發(fā)現(xiàn)該賬號異?;蛟斐蓳p失時,可通過去DPM申請理賠,該機制可以利用智能合約自動理賠。
智能合約HashProof1與HashProof2的比對情況如下:
如發(fā)生異常情況,則智能合約自動發(fā)起理賠通過交易,實現(xiàn)自動理賠。
本節(jié)實現(xiàn)基于區(qū)塊鏈網(wǎng)絡(luò)認(rèn)證及保險的功能,并且從單次登錄所需時間,多節(jié)點共識丟塊及智能合約自動理賠所需時間三方面驗證系統(tǒng)的可行性、穩(wěn)定性。本實驗是在10臺PC配置為Intel Core i7-7700HQ 3.60 GHz CPU、16 GB內(nèi)存和3臺不同品牌類型的手機端上進行的。通過開啟Linux系統(tǒng)VM虛擬機,部署了100個去中心化服務(wù)器節(jié)點作為共識節(jié)點并搭建了網(wǎng)站的前后端。
單次登錄所需時間測試為用戶使用去中心化密碼管理器掃碼登錄到客戶端獲取登錄的session和token重定向并登錄成功所需的時間。在實驗中,總共進行了1000次登錄操作,其結(jié)果如圖4所示,單次登錄時間在1.5~3 s之間波動,平均登錄時間的2.2628 s。同時也進行了傳統(tǒng)網(wǎng)絡(luò)身份單次登錄所需時間測試,傳統(tǒng)單次登錄時間在0.8-1.5 s之間波動,平均登錄時間為1.2954 s。由結(jié)果所示,基于去區(qū)塊鏈的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)單次登錄結(jié)果在用戶登錄體驗所承受的時間范圍之內(nèi),證明了該系統(tǒng)的可行性。
圖4單次登錄所需時間統(tǒng)計
丟失率=(本輪共識節(jié)點總數(shù)-本輪正常出塊數(shù))/本輪共識節(jié)點總數(shù)。
在實驗中,使用POC共識算法對基于區(qū)塊鏈的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)進行丟塊率測試。在測試過程中,總共部署了100個節(jié)點進行1000輪測試。每輪將會由100節(jié)點輪流出塊。因此,總的測試出塊數(shù)量約為100×1000=100000塊,出塊間隔為3 s。如圖5(a)所示,塊丟失率在0-0.05之間波動,部分塊丟失率為0,小部分塊丟失率為0.01。如圖5(b)所示,在1000輪測試中,約700輪塊丟失數(shù)量為0,約150輪塊丟數(shù)量為1,其余丟失情況在2到5塊之間。從實驗結(jié)果來看,絕大多數(shù)情況(每輪塊丟失數(shù)量少于3),基于區(qū)塊鏈的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)處于穩(wěn)定狀態(tài),并不會影響用戶的登錄及其他操作,證明了該系統(tǒng)的穩(wěn)定性。
圖5多節(jié)點共識塊丟失測試
智能合約自動理賠所需時間為:用戶在申請了網(wǎng)絡(luò)身份保護投保后,在后續(xù)使用過程中發(fā)現(xiàn)網(wǎng)絡(luò)身份異常,通過如圖3所示的去中心化密碼管理器申請理賠界面申請自動理賠到獲取到相應(yīng)理賠代幣所需要的時間。在實驗過程中,總共進行1000次申請理賠測試。如圖6所示,單次成功獲得理賠的時間在1~2.5 s之間波動,平均理賠時間為2.1457 s。實驗證明,基于區(qū)塊鏈的網(wǎng)絡(luò)身份保險系統(tǒng),實現(xiàn)網(wǎng)絡(luò)身份保險的去中心化及高效性。
圖6智能合約理賠所需時間
本文提出了基于區(qū)塊鏈的網(wǎng)絡(luò)身份認(rèn)證及保險機制,在傳統(tǒng)的網(wǎng)絡(luò)身份認(rèn)證的機制下(由客戶端及服務(wù)器組成),增加了去中心化密碼管理器和區(qū)塊鏈系統(tǒng),在兼具解決密碼疲勞、復(fù)用等問題情況,實現(xiàn)去中心化,直接與網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)點對點交互,無需經(jīng)過中心化機構(gòu)或插件處理轉(zhuǎn)發(fā),保證了管理器的可信任性。從獨立服務(wù)器方面分析,各網(wǎng)站在區(qū)塊鏈中部署網(wǎng)站服務(wù)器全節(jié)點,對用戶與網(wǎng)站服務(wù)器通信數(shù)據(jù)進行過濾與篩選,充當(dāng)防火墻的作用,進一步保護了網(wǎng)站服務(wù)器。從網(wǎng)絡(luò)身份認(rèn)證及保險整體分析,各網(wǎng)站服務(wù)器全節(jié)點部署在相同的區(qū)塊鏈系統(tǒng),有利于提高通信系統(tǒng)的整體安全性,解決安全木桶短板問題。同時也為保護用戶隱私、網(wǎng)絡(luò)身份保險創(chuàng)造了去中心化、可信任的條件。
本文針對密碼管理器中心化,傳統(tǒng)網(wǎng)絡(luò)身份認(rèn)證機制孤島、安全木桶短板問題,網(wǎng)絡(luò)身份保險憑證可信任性不足,理賠手續(xù)繁瑣等問題提出基于區(qū)塊鏈的網(wǎng)絡(luò)身份認(rèn)證及保險機制。該機制實現(xiàn)密碼管理器去中心化,身份認(rèn)證服務(wù)器節(jié)點組成聯(lián)盟鏈,通信數(shù)據(jù)分布式共識存儲等;并通過實驗證明該機制認(rèn)證的可行性、穩(wěn)定性和理賠的高效性。