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