◆張京宇
面向用戶的密碼設(shè)置規(guī)則
——分級(jí)可變規(guī)則
◆張京宇
(北京信息科技大學(xué)計(jì)算機(jī)學(xué)院 北京 100101)
隨著網(wǎng)絡(luò)的快速發(fā)展,各類應(yīng)用程序、APP層出不窮,用戶擁有賬號(hào)和密碼的數(shù)量也與日俱增。但往往用戶很難清晰地記住每一個(gè)應(yīng)用程序的賬號(hào)和密碼,許多用戶為圖方便,對(duì)于不同的軟件采用相同的密碼,這極大地增加了賬號(hào)的風(fēng)險(xiǎn)。本文分析了常用的密碼存儲(chǔ)方案,并由此提出一種面向用戶的密碼設(shè)置的規(guī)則,使得用戶設(shè)置的密碼更加好記且安全。
密碼設(shè)置;加密算法;密碼存儲(chǔ)
隨著網(wǎng)絡(luò)的快速發(fā)展,各類應(yīng)用程序、APP層出不窮,數(shù)據(jù)量也呈爆炸性增長(zhǎng),這給敏感數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸和存儲(chǔ)提出了極大的挑戰(zhàn)。企業(yè)為保護(hù)個(gè)人用戶信息及賬戶密碼采用了許多加密算法和密碼存儲(chǔ)方案。但往往用戶安全意識(shí)淡薄,有些用戶為圖方便,對(duì)于不同的軟件采用相同的密碼,這極大地增加了賬號(hào)的風(fēng)險(xiǎn)[1]。所以密碼的安全和可靠不僅需要企業(yè)對(duì)密碼進(jìn)行保護(hù),也需要用戶提高密碼安全意識(shí)。本文分析了常用的密碼存儲(chǔ)方案,并由此提出一種面向用戶的密碼設(shè)置的規(guī)則,使得用戶設(shè)置的密碼更加好記且安全。
為有效存儲(chǔ)和保護(hù)網(wǎng)絡(luò)中的用戶數(shù)據(jù),企業(yè)會(huì)通過(guò)數(shù)據(jù)安全方案來(lái)提升網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)系統(tǒng)中用戶信息的安全性和可靠性。這些數(shù)據(jù)安全方案往往采用數(shù)據(jù)加密算法來(lái)加密傳輸和存儲(chǔ)數(shù)據(jù),其最重要的目的之一就是傳輸和存儲(chǔ)用戶的賬戶密碼。
數(shù)據(jù)加密算法分為兩類:可逆加密算法和不可逆加密算法??赡婕用芩惴ǔS糜诿舾袛?shù)據(jù)在網(wǎng)絡(luò)中的傳輸,它又分為對(duì)稱加密算法和非對(duì)稱加密算法[2]。對(duì)稱加密算法需要一個(gè)密鑰,發(fā)送方將明文和密鑰經(jīng)過(guò)加密算法處理后形成密文,再進(jìn)行發(fā)送;接收方在接收到密文后用相同的密鑰和加密算法進(jìn)行解密從而獲得明文。非對(duì)稱加密算法需要一對(duì)密鑰:公鑰和私鑰,用公鑰進(jìn)行加密,用對(duì)應(yīng)的私鑰進(jìn)行解密,不需要發(fā)送/接收雙方交換密鑰,提高了安全性。不可逆加密算法不需要密鑰,往往采用散列函數(shù),將明文處理成密文進(jìn)行傳輸、存儲(chǔ),并且在這個(gè)過(guò)程中無(wú)須也無(wú)法將密文還原成明文。
目前常采用的密碼存儲(chǔ)方案有Hash存儲(chǔ)和加鹽存儲(chǔ)[3-4]。明文存儲(chǔ)一旦被成功攻擊將造成嚴(yán)重信息安全事故,所以現(xiàn)在很少使用。Hash算法是一種單向密碼散列算法,它只有從明文到密文的單向映射(加密過(guò)程),而沒(méi)有從密文到明文的解密過(guò)程。Hash存儲(chǔ)的加密原理是先將任意長(zhǎng)度的明文用散列函數(shù)轉(zhuǎn)換成固定長(zhǎng)度的密文,然后存儲(chǔ)在數(shù)據(jù)庫(kù)中;待需要驗(yàn)證用戶身份時(shí),將用戶輸入的字段用相同的散列函數(shù)轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果與數(shù)據(jù)庫(kù)中的密文進(jìn)行比對(duì),若二者相同則身份驗(yàn)證通過(guò),若二者不同則身份驗(yàn)證不通過(guò)[5]。隨著Hash存儲(chǔ)廣泛應(yīng)用,出現(xiàn)了很多特定算法密碼庫(kù),大部分簡(jiǎn)單密碼的密文可以通過(guò)密碼庫(kù)反向查詢到明文。為了防止內(nèi)部人員和入侵者反向查詢用戶密碼的明文,需要對(duì)密文結(jié)果摻雜其他信息,即加鹽。加鹽存儲(chǔ)是Hash存儲(chǔ)的優(yōu)化方案,它將明文與一個(gè)特定字段(鹽)相關(guān)聯(lián),然后再通過(guò)散列函數(shù)轉(zhuǎn)換成密文,存放至數(shù)據(jù)庫(kù);驗(yàn)證方式與Hash存儲(chǔ)類似,在獲取到用戶的輸入后,將用戶輸入字段與“鹽”相關(guān)聯(lián),然后用相同的散列函數(shù)轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果與數(shù)據(jù)庫(kù)中的密文進(jìn)行比對(duì),若二者相同則身份驗(yàn)證通過(guò),若二者不同則身份驗(yàn)證不通過(guò)。
通過(guò)對(duì)以上密碼存儲(chǔ)方案的分析,我們可以知道常用的密碼存儲(chǔ)方案有兩個(gè)很重要的特點(diǎn):一是不可逆,也就是僅能從明文轉(zhuǎn)換為密文,而不能從密文轉(zhuǎn)換成明文;二是差異性,明文發(fā)生一點(diǎn)點(diǎn)變化,通過(guò)散列函數(shù)獲得的密文都將會(huì)發(fā)生極大的變化。針對(duì)這兩種特點(diǎn),用戶在設(shè)置密碼的時(shí)候也可以采用“可變”策略,將設(shè)置的密碼和應(yīng)用本身相關(guān)聯(lián);同時(shí)為防止密碼規(guī)則的泄露,可以對(duì)各類應(yīng)用進(jìn)行分級(jí),制定不同的密碼規(guī)則。簡(jiǎn)單來(lái)說(shuō),分級(jí)可變密碼設(shè)置規(guī)則可以分為兩步:一是確定密碼分級(jí),二是確定密碼可變字段。
密碼的分級(jí)主要目的就是將用戶的眾多賬戶密碼分為多個(gè)密碼規(guī)則,一個(gè)密碼規(guī)則就是一種字符+數(shù)字的組合方式。如何分級(jí)、分多少級(jí)完全由用戶決定。例如可以將應(yīng)用的賬戶密碼分為“可共享”和“不可共享”兩級(jí),像視頻軟件、音樂(lè)軟件這些賬號(hào)可能共享給好友的軟件設(shè)置為一個(gè)密碼規(guī)則,社交、金融等不會(huì)出借的賬號(hào)設(shè)置另一個(gè)密碼規(guī)則。當(dāng)然也可以按應(yīng)用所需的安全性對(duì)密碼進(jìn)行分級(jí),如可以分成“金融級(jí)”、“社交級(jí)”、“普通級(jí)”。每一級(jí)密碼分別對(duì)應(yīng)一種密碼規(guī)則,各級(jí)之間密碼復(fù)雜程度可以與賬號(hào)所需的安全性相關(guān)。
確定了密碼的分級(jí)之后,我們可以將密碼的字段劃分為固定字段和可變字段。同一級(jí)的密碼固定字段可以相同,可變字段必須不同。密碼的可變字段與應(yīng)用賬戶本身相關(guān)聯(lián)。例如:假設(shè)“社交級(jí)”密碼的固定字段設(shè)置為Zam258TP?,如果密碼用于登錄微博,那么微博密碼就可以設(shè)置為Zam258TP?weibo。為了防止密碼規(guī)則被猜出,我們也可以使用應(yīng)用名首字母縮寫作為可變字段:Zam258TP?WB。同理,同為“社交級(jí)”的應(yīng)用微信的密碼可以設(shè)置為Zam258TP?WX。分級(jí)可變密碼設(shè)置規(guī)則中密碼的可變字段不局限于應(yīng)用名,可變字段還可以為賬戶用戶名、賬戶注冊(cè)日期等。只要與應(yīng)用賬號(hào)本身相關(guān)聯(lián)且與個(gè)人信息無(wú)關(guān)的字段都可以作為可變字段??勺冏侄蔚奈恢靡矡o(wú)須限制,可以在整個(gè)密碼字段的首部、尾部,也可以在中間位置。
對(duì)于用戶來(lái)說(shuō),一種好的密碼規(guī)則既要好記,又要保證密碼的安全性。傳統(tǒng)的密碼規(guī)則往往通過(guò)提高密碼的復(fù)雜性來(lái)追求安全,而忽視了密碼的易記性[6]。分級(jí)可變密碼規(guī)則在某種程度上實(shí)現(xiàn)了易記性和安全性的平衡。
分級(jí)可變密碼規(guī)則的分級(jí)策略使用戶可以創(chuàng)建少量的密碼規(guī)則,也就相當(dāng)于創(chuàng)建了少量的密碼固定字段,用戶在記憶密碼時(shí)僅僅需要記憶這些固定字段即可。可變字段由于與應(yīng)用賬號(hào)本身相關(guān)聯(lián),所以用戶在輸入密碼時(shí)簡(jiǎn)單思考就可以知道可變字段的內(nèi)容。由此一來(lái),用戶記憶密碼的難度大幅減小,極大提升了密碼的易記性。
分級(jí)可變密碼規(guī)則對(duì)于用戶密碼的安全性有一些提升。
如果采用Hash存儲(chǔ)方式存儲(chǔ)密碼,分級(jí)可變密碼規(guī)則可以以最小的易記性代價(jià)有效避免用戶使用同一密碼注冊(cè)不同應(yīng)用賬戶,進(jìn)而防止入侵者撞庫(kù),造成用戶更多賬戶密碼泄露。即使用戶賬戶密碼信息已經(jīng)泄露,該規(guī)則也可以保證用戶其他賬戶密碼的安全性和獨(dú)立性,從而降低了密碼泄露造成的損失和用戶修改密碼的成本。如果采用加鹽存儲(chǔ)方式存儲(chǔ)密碼,鹽值和密碼都有被泄露的風(fēng)險(xiǎn)。而一旦鹽值泄露,加鹽就失去了意義,賬戶密碼也面臨被泄露的風(fēng)險(xiǎn)。分級(jí)可變密碼規(guī)則可以保證此賬戶有風(fēng)險(xiǎn)的同時(shí)其他賬戶仍處于安全狀態(tài)。如果用戶的賬戶密碼并非從網(wǎng)絡(luò)或企業(yè)中泄露,而是從用戶處無(wú)意泄露,那么用戶僅需修改泄露的密碼即可,無(wú)須修改其他密碼。
所以,無(wú)論是何種密碼存儲(chǔ)方式、無(wú)論密碼從何處泄露,從用戶角度來(lái)說(shuō),分級(jí)可變密碼規(guī)則都可以保證用戶不同密碼間的獨(dú)立性和安全性。
本文分析了常用的密碼存儲(chǔ)方案,并由此提出一種面向用戶的密碼設(shè)置規(guī)則-分級(jí)可變規(guī)則,并從易記性和安全性分析了該規(guī)則的可行性。該規(guī)則不僅適用于用戶設(shè)置應(yīng)用密碼的場(chǎng)景,對(duì)于企業(yè)內(nèi)部密碼的管理與應(yīng)用[7]等場(chǎng)景也有借鑒作用。
[1]Irfan Saif,Mike Wyatt,David Mapgaonkar,Lucy Rose.密碼以外的世界——提升數(shù)字化轉(zhuǎn)型的安全性、效率和用戶體驗(yàn)[J].科技中國(guó),2017(11):17-23.
[2]蔣澤宇.淺談密碼學(xué)及其在計(jì)算機(jī)網(wǎng)絡(luò)安全中的作用[J].價(jià)值工程,2020,39(16):189-191.
[3]王舒,李佳駿.移動(dòng)應(yīng)用中用戶密碼存儲(chǔ)與傳輸?shù)姆绞絒J].電腦知識(shí)與技術(shù),2018,14(23):91-92.
[4]屈曉,梁進(jìn)杰,莫秀玲,劉澤平,吳洵劍.密碼存儲(chǔ)與傳輸?shù)陌踩蕴接慬J].黑龍江科技信息,2016(30):232-233.
[5]高張寶. 基于B/S架構(gòu)的企業(yè)內(nèi)部管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].昆明理工大學(xué),2019.
[6]胡立.如何提升密碼的安全性[J].計(jì)算機(jī)與網(wǎng)絡(luò),2019,45(17):52-53.
[7]辜琳瑾.企業(yè)信息系統(tǒng)密碼技術(shù)應(yīng)用情況和使用習(xí)慣[J].信息與電腦(理論版),2018(24):204-206.
北京信息科技大學(xué)2019年促進(jìn)高校內(nèi)涵發(fā)展——大學(xué)生科研訓(xùn)練項(xiàng)目(5101923400),導(dǎo)師:楊大利
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2021年1期