施 勇
(淮南師范學院 計算機學院,安徽 淮南 232038)
隨著計算機與網(wǎng)絡技術的發(fā)展,各種網(wǎng)絡平臺擺在了用戶面前,比如網(wǎng)上電子銀行賬戶、支付寶賬戶、淘寶或京東賬戶、政務平臺賬戶、學習管理平臺、公積金與社保賬戶等,而這些平臺的登錄密碼成為核實用戶信息的主要途徑,每位用戶都會產(chǎn)生大量的賬號和密碼口令。密碼的安全關系到用戶信息的安全,如何妥善保管海量賬號密碼,并對非法入侵進行及時的管控,已經(jīng)成為個人隱私安全的突出問題。
近年來互聯(lián)網(wǎng)頻發(fā)網(wǎng)絡安全事件,如2019年上半年國內(nèi)250萬人臉識別數(shù)據(jù)遭泄、2018年Facebook 8700多萬用戶數(shù)據(jù)遭泄露、2017年京東內(nèi)部員工涉嫌竊取50億條用戶數(shù)據(jù)、2016年順豐內(nèi)部人員泄漏用戶數(shù)據(jù)、2013年國內(nèi)酒店2000萬入住信息遭泄露等事件,其中不乏密碼泄露事件,大量用戶賬戶和密碼信息面臨潛在的安全風險,并且有的風險能夠給大眾帶來巨大的打擊。為消除或降低這些風險隱患,系統(tǒng)服務提供商和用戶本身都采取了系列的對策。比如平臺自身的多重防護與驗證,用戶本身的賬戶密碼管理等。目前賬戶的安全和密碼口令的安全極度需要安全管理。排除手機號、身份證號、QQ號等類似的賬戶,多數(shù)的賬戶的管理可以歸屬到密碼口令的管理中去。本文主要針對用戶密碼口令的管理展開研究。
目前用戶管理密碼的方式主要是保存、使用、增刪與修改密碼。調(diào)查研究得出,常見大眾密碼管理包括以下幾類。一是傳統(tǒng)電子文本記憶,直接將明文密碼記錄在對應的電子文件中,此類風險最大也是目前使用率最高的一種密碼管理途徑;二是使用本地的密碼管理工具,因為在本地進行管理需要多重安全機制進行防護,所以會出現(xiàn)操作與管理的復雜性,增加使用與管理的難度,日常使用的便捷性遭遇挑戰(zhàn);三是使用在線密碼管理工具,用戶的眾多口令存儲在云服務中,通過一個主口令進行管理,這對主口令的安全程度及云安全的要求更高[1-2]。并且本地管理和在線管理的軟件較多要求用戶進行軟件本地安裝,或采取C/S模式運行,這同時對用戶的本地運行環(huán)境提出較高的要求。
面對本地管理的復雜性、在線管理的安全性及運行環(huán)境的高要求現(xiàn)狀,本文采取本地管理與在線管理相結(jié)合的方式,描述開發(fā)輕量級的密碼使用管理系統(tǒng),從用戶當前管理多口令的現(xiàn)狀出發(fā),使得大眾用戶方便在普通計算機或移動端中進行管理,提升大數(shù)據(jù)時代個人信息的綜合安全防護能力,防范個人信息風險[3]。本研究團隊開發(fā)的密碼管理系統(tǒng),可以為用戶提供友好的管理界面,快捷的管理功能,方便、準確的記錄用戶名與密碼,以及各種有效的信息。對于大眾而言,賬戶密碼口令管理更加安全、方便、快捷。
2.1 使用本系統(tǒng)僅需要一個密碼就可以記住平時日常使用的全部密碼,采用MD5twithRSA雙重保險,保證用戶主密碼安全,使用AES輕量級且安全度高的加密算法,極大的減輕了服務器負載。
2.2 提醒用戶更換主密碼,防止密碼泄露,保證主密碼安全,隨即生成高復雜度的口令密碼,滿足用戶口令復雜度要求,提升用戶口令安全復雜級別。
2.3 目前大多數(shù)密碼管理軟件采用C/S架構(gòu),移動端則對應的是 APP/服務器[4]。占用電腦手機內(nèi)存,且涉及侵犯用戶個人隱私的權(quán)限,對用戶生活帶來了不便影響。本系統(tǒng)的定位是B/S架構(gòu),大眾用戶只需要從瀏覽器端登錄即可管理,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務器上,避免用戶再去下載軟件系統(tǒng),簡化了系統(tǒng)的開發(fā)、維護和使用。
3.1 技術支持
本系統(tǒng)的整體架構(gòu)采用B/S框架,用戶賬號口令的主密碼驗證通道為MD5和RSA算法,運用AES算法和BASE64編碼將用戶的信息數(shù)據(jù)加密后存入Mysql數(shù)據(jù)庫。系統(tǒng)頁面搭建采用HTML5+CSS和Vue框架將用戶存儲信息呈現(xiàn)出來。為充分保證用戶信息傳輸安全,搭建服務器所采用的是Tomcat 8.5.39中的SSL/TLS協(xié)議。
3.2 環(huán)境搭建
本系統(tǒng)測試環(huán)境由硬件環(huán)境和軟件環(huán)境構(gòu)成。服務器配置TOMCAT 8.5.39,操作系統(tǒng)WIN10,內(nèi)存16G。
3.3 技術實現(xiàn)
為充分保障系統(tǒng)的長期使用性、穩(wěn)定性和后期維護與升級的需要,遵循規(guī)范化的軟件工程流程。因噴泉模型是一種支持面向?qū)ο蟮拈_發(fā)模型,具備迭代和無間隙的特征,本系統(tǒng)采用噴泉模型進行開發(fā)。經(jīng)過多次反復的設計、代碼加工、完善與修訂,多個功能在每一次的迭代更新中即時調(diào)試系統(tǒng),同時保障開發(fā)活動之間的邊界可交叉、融合。
圖1 系統(tǒng)模塊
系統(tǒng)的核心功能模塊有安全登錄、數(shù)據(jù)加密、以及權(quán)限查看等模塊(見圖1)。在用戶登錄模塊中,主要實現(xiàn)的功能是大眾用戶的身份識別與安全驗證;在用戶信息加密模塊中,主要實現(xiàn)的功能是大眾用戶賬戶口令的加密及新操作信息的加密等。在顯示模塊中,主要實現(xiàn)的功能是可以直觀簡便的在屏幕上顯示結(jié)果。
3.3.1 用戶登陸認證
本系統(tǒng)采用MD5和RSA技術作為用戶登陸的認證技術,系統(tǒng)會為用戶服務器與數(shù)據(jù)庫服務器生成RSA密鑰對,其中用戶服務器持有的是公鑰,數(shù)據(jù)庫服務器持有的是私鑰。用戶首次登入注冊賬戶口令的時候,MD5數(shù)字摘要將會存儲到數(shù)據(jù)庫服務器中[5]。當用戶請求登陸時,將數(shù)據(jù)庫服務器用戶賬號信息通過私鑰簽名傳入用戶服務器中,用戶服務器通過公鑰驗證后,與用戶當前提交系統(tǒng)的賬號和密碼的MD5值對比,驗證失敗時的用戶將會彈出拒絕提示,一旦對比成功后用戶即可成功登陸系統(tǒng)進行操作。實現(xiàn)流程:
(1)初始化密鑰對,生成RSA密鑰對,其中RSAPublicKey作為公鑰,RSAPrivateKey作為私鑰。
(2)執(zhí)行加密,數(shù)據(jù)庫服務器中的數(shù)據(jù)將進行私鑰加密傳輸,然后傳遞到服務器中。
(3)驗證簽名,用戶服務器將數(shù)據(jù)庫服務器中傳來的數(shù)據(jù)通過公鑰驗證后與當前用戶輸入系統(tǒng)的信息比對是否一致。
3.3.2 自學習異地登陸
當用戶登陸時,系統(tǒng)向服務器提交用戶公網(wǎng)IP地址,并檢查用戶登陸地址是否在IP表中。若用戶登陸的地址在IP表中允許用戶登陸系統(tǒng),并更改IP表中該地址的最后登陸時間。反之,需要用戶輸入在用戶注冊時系統(tǒng)生成的專屬密鑰,通過User表進行匹配密鑰是否正確,如果匹配成功的話,用戶即可登錄本系統(tǒng),并且IP地址將會增加到IP表中。如果遇到密鑰匹配失敗的情況,系統(tǒng)將會拒絕用戶登錄。IP表中通過時間字段判斷當前時間和最后一次登陸時間是否超過一個月,當超過一個月時刪除記錄。這樣既可以減少表的記錄提升工作效率也可以間接加強了異地登陸安全認證問題。
3.3.3 數(shù)據(jù)加解密
本系統(tǒng)采用AES算法和BASE64編碼將用戶數(shù)據(jù)加密存入數(shù)據(jù)庫,當用戶需要查看時將數(shù)據(jù)進行解密顯示在瀏覽器上,方便用戶隨時隨地查看。
(1) 實現(xiàn)流程:為每個用戶生成密鑰串KeyGenerator.getInstace(“AES”)不同用戶生成密鑰存放在文本文件中保存起來,那么在操作管理的過程中,文本文件的數(shù)據(jù)將會被讀出并且被重新生成新的密鑰,方便不同的用戶進行加密解密。
(2) 將用戶數(shù)據(jù)加密:采用cipher.doFinal函數(shù)對用戶信息進行加密成字節(jié)數(shù)組,將字節(jié)數(shù)組中信息采用BASE64編碼轉(zhuǎn)換成字符串存入數(shù)據(jù)庫中。
(3)用戶數(shù)據(jù)解密:將用戶加密的數(shù)據(jù)從數(shù)據(jù)庫中取出,采用BASE64解碼生成字符數(shù)組,然后通過cipher.doFinal函數(shù)將數(shù)據(jù)解密,傳到前端給用戶顯示數(shù)據(jù)。
3.3.4 用戶數(shù)據(jù)增刪與修改
前面主要圍繞AES對數(shù)據(jù)的加解密展開論述,下文將闡述數(shù)據(jù)庫對數(shù)據(jù)的存入與刪除等步驟的管理實現(xiàn)。
(1) 用戶添加
其中DoPost函數(shù)接受前臺發(fā)來的信息。將用戶從瀏覽器添加到賬號信息經(jīng)過封裝好的AES加密函數(shù)加密后進行SQL語句查詢,看用戶需要存入的信息是否存入到了數(shù)據(jù)庫。如果庫中沒有用戶要存儲到數(shù)據(jù)庫的信息,采用sql語句的insert命令存入到數(shù)據(jù)庫中;如果庫中已經(jīng)存在目前要存儲到數(shù)據(jù)庫的信息,則由前臺提醒用戶插入重復。這里本系統(tǒng)為用戶提供復雜密碼生成密鑰算法,幫助用戶設置更復雜的密碼,極大的保證用戶數(shù)據(jù)安全。
(2) 用戶刪除
將用戶從瀏覽器上輸入的要刪除的賬號信息,傳入后臺,經(jīng)過AES加密進行加密,采用sql語句進行查詢,進行匹配庫中是否有用戶要刪除的數(shù)據(jù)。如果有采用sql的delete語句進行刪除,假如庫中沒有用戶要刪除的賬號信息,則由前臺提醒用戶刪除失敗,數(shù)據(jù)中沒有要刪除的數(shù)據(jù)。
(3) 用戶基本信息修改
這個模塊主要功能就是對用戶錄入系統(tǒng)的信息進行修改,避免用戶進行刪除插入的這種多余操作,方便用戶使用。將用戶前臺傳入的備注信息和賬號信息傳入后端服務器,有服務器將用戶傳入的數(shù)據(jù)進行AES加密,與數(shù)據(jù)庫中匹配已存入用戶的數(shù)據(jù),如果匹配到用戶存在的的信息,將用戶修改的信息保存到數(shù)據(jù)庫中,如果庫中數(shù)據(jù)與用戶需要修改的數(shù)據(jù)不匹配,由前臺提醒用戶數(shù)據(jù)不在系統(tǒng)中,修改出錯。
3.3.5 用戶查詢
先將保存在服務器中的用戶個人密鑰取出,獲取用戶專屬的AES密鑰,用于下一步解密操作。采用SQL語句select語句將該用戶存在數(shù)據(jù)庫中的數(shù)據(jù)進行解密取出,由前臺VUE框架進行顯示讓用戶查看。
3.4 結(jié)果反饋
對每個主要功能模塊,順序操作,逐一實驗,最終表明本系統(tǒng)操作簡單明了,大眾用戶也可以很輕松容易的掌握本系統(tǒng),具備安全性與普適性。
4.1 創(chuàng)新
創(chuàng)新訪問架構(gòu)方式。本系統(tǒng)采用B/S框架作為設計核心,現(xiàn)有的C/S架構(gòu)的密碼管理軟件區(qū)分開,保證用戶可以隨時隨地查看自己的信息,不需要安裝客戶端或APP占用電腦或手機的空間。也不需要客戶端和APP的那樣像讓用戶授權(quán)權(quán)限,讓用戶能夠更好保護自己的隱私[6]。
創(chuàng)新加解密方式。本系統(tǒng)采用MD5和RSA加密,通過MD5數(shù)字簽名將用戶信息進行簽名在采用RSA非對稱加密進一步保護用戶數(shù)據(jù)安全,為用戶主賬號信息上了雙層鎖,進一步保護用戶安全。采用MD5withRSA加密會比多層MD5加密和RSA加密更加安全可靠;用戶信息存儲采用AES加密,這種輕量級且安全度高的加密會比非對稱加密運算速度更快,且安全性高。
提升用戶操作體驗。使用本系統(tǒng)的用戶,只需記住自己的主密碼就可以,就可以進入系統(tǒng)進行賬號密碼管理,且系統(tǒng)提醒用戶更換密碼主密碼安全。系統(tǒng)操作簡單,將大量復雜加密數(shù)據(jù)交互操作封裝到底層,真正做到面向大眾用戶,只需要會計算機基本操作,就可以對系統(tǒng)進行信息錄入,修改和刪除,自帶復雜密碼算法,更好的幫助用戶保護自身賬號。
4.2 展望
本系統(tǒng)擬在以后的研究與實驗中計劃能夠結(jié)合硬件實現(xiàn)加密方式,形成一體化硬件與軟件的密碼管理工具箱,并不斷地豐富與增加多種模塊,更好地提升系統(tǒng)安全性與用戶操作體驗,為互聯(lián)網(wǎng)環(huán)境下用戶的隱私信息安全保駕護航。