施 勇
(淮南師范學院 計算機學院,安徽 淮南 232038)
隨著計算機與網絡技術的發展,各種網絡平臺擺在了用戶面前,比如網上電子銀行賬戶、支付寶賬戶、淘寶或京東賬戶、政務平臺賬戶、學習管理平臺、公積金與社保賬戶等,而這些平臺的登錄密碼成為核實用戶信息的主要途徑,每位用戶都會產生大量的賬號和密碼口令。密碼的安全關系到用戶信息的安全,如何妥善保管海量賬號密碼,并對非法入侵進行及時的管控,已經成為個人隱私安全的突出問題。
近年來互聯網頻發網絡安全事件,如2019年上半年國內250萬人臉識別數據遭泄、2018年Facebook 8700多萬用戶數據遭泄露、2017年京東內部員工涉嫌竊取50億條用戶數據、2016年順豐內部人員泄漏用戶數據、2013年國內酒店2000萬入住信息遭泄露等事件,其中不乏密碼泄露事件,大量用戶賬戶和密碼信息面臨潛在的安全風險,并且有的風險能夠給大眾帶來巨大的打擊。為消除或降低這些風險隱患,系統服務提供商和用戶本身都采取了系列的對策。比如平臺自身的多重防護與驗證,用戶本身的賬戶密碼管理等。目前賬戶的安全和密碼口令的安全極度需要安全管理。排除手機號、身份證號、QQ號等類似的賬戶,多數的賬戶的管理可以歸屬到密碼口令的管理中去。本文主要針對用戶密碼口令的管理展開研究。
目前用戶管理密碼的方式主要是保存、使用、增刪與修改密碼。調查研究得出,常見大眾密碼管理包括以下幾類。一是傳統電子文本記憶,直接將明文密碼記錄在對應的電子文件中,此類風險最大也是目前使用率最高的一種密碼管理途徑;二是使用本地的密碼管理工具,因為在本地進行管理需要多重安全機制進行防護,所以會出現操作與管理的復雜性,增加使用與管理的難度,日常使用的便捷性遭遇挑戰;三是使用在線密碼管理工具,用戶的眾多口令存儲在云服務中,通過一個主口令進行管理,這對主口令的安全程度及云安全的要求更高[1-2]。并且本地管理和在線管理的軟件較多要求用戶進行軟件本地安裝,或采取C/S模式運行,這同時對用戶的本地運行環境提出較高的要求。
面對本地管理的復雜性、在線管理的安全性及運行環境的高要求現狀,本文采取本地管理與在線管理相結合的方式,描述開發輕量級的密碼使用管理系統,從用戶當前管理多口令的現狀出發,使得大眾用戶方便在普通計算機或移動端中進行管理,提升大數據時代個人信息的綜合安全防護能力,防范個人信息風險[3]。本研究團隊開發的密碼管理系統,可以為用戶提供友好的管理界面,快捷的管理功能,方便、準確的記錄用戶名與密碼,以及各種有效的信息。對于大眾而言,賬戶密碼口令管理更加安全、方便、快捷。
2.1 使用本系統僅需要一個密碼就可以記住平時日常使用的全部密碼,采用MD5twithRSA雙重保險,保證用戶主密碼安全,使用AES輕量級且安全度高的加密算法,極大的減輕了服務器負載。
2.2 提醒用戶更換主密碼,防止密碼泄露,保證主密碼安全,隨即生成高復雜度的口令密碼,滿足用戶口令復雜度要求,提升用戶口令安全復雜級別。
2.3 目前大多數密碼管理軟件采用C/S架構,移動端則對應的是 APP/服務器[4]。占用電腦手機內存,且涉及侵犯用戶個人隱私的權限,對用戶生活帶來了不便影響。本系統的定位是B/S架構,大眾用戶只需要從瀏覽器端登錄即可管理,將系統功能實現的核心部分集中到服務器上,避免用戶再去下載軟件系統,簡化了系統的開發、維護和使用。
3.1 技術支持
本系統的整體架構采用B/S框架,用戶賬號口令的主密碼驗證通道為MD5和RSA算法,運用AES算法和BASE64編碼將用戶的信息數據加密后存入Mysql數據庫。系統頁面搭建采用HTML5+CSS和Vue框架將用戶存儲信息呈現出來。為充分保證用戶信息傳輸安全,搭建服務器所采用的是Tomcat 8.5.39中的SSL/TLS協議。
3.2 環境搭建
本系統測試環境由硬件環境和軟件環境構成。服務器配置TOMCAT 8.5.39,操作系統WIN10,內存16G。
3.3 技術實現
為充分保障系統的長期使用性、穩定性和后期維護與升級的需要,遵循規范化的軟件工程流程。因噴泉模型是一種支持面向對象的開發模型,具備迭代和無間隙的特征,本系統采用噴泉模型進行開發。經過多次反復的設計、代碼加工、完善與修訂,多個功能在每一次的迭代更新中即時調試系統,同時保障開發活動之間的邊界可交叉、融合。

圖1 系統模塊
系統的核心功能模塊有安全登錄、數據加密、以及權限查看等模塊(見圖1)。在用戶登錄模塊中,主要實現的功能是大眾用戶的身份識別與安全驗證;在用戶信息加密模塊中,主要實現的功能是大眾用戶賬戶口令的加密及新操作信息的加密等。在顯示模塊中,主要實現的功能是可以直觀簡便的在屏幕上顯示結果。
3.3.1 用戶登陸認證
本系統采用MD5和RSA技術作為用戶登陸的認證技術,系統會為用戶服務器與數據庫服務器生成RSA密鑰對,其中用戶服務器持有的是公鑰,數據庫服務器持有的是私鑰。用戶首次登入注冊賬戶口令的時候,MD5數字摘要將會存儲到數據庫服務器中[5]。當用戶請求登陸時,將數據庫服務器用戶賬號信息通過私鑰簽名傳入用戶服務器中,用戶服務器通過公鑰驗證后,與用戶當前提交系統的賬號和密碼的MD5值對比,驗證失敗時的用戶將會彈出拒絕提示,一旦對比成功后用戶即可成功登陸系統進行操作。實現流程:
(1)初始化密鑰對,生成RSA密鑰對,其中RSAPublicKey作為公鑰,RSAPrivateKey作為私鑰。
(2)執行加密,數據庫服務器中的數據將進行私鑰加密傳輸,然后傳遞到服務器中。
(3)驗證簽名,用戶服務器將數據庫服務器中傳來的數據通過公鑰驗證后與當前用戶輸入系統的信息比對是否一致。
3.3.2 自學習異地登陸
當用戶登陸時,系統向服務器提交用戶公網IP地址,并檢查用戶登陸地址是否在IP表中。若用戶登陸的地址在IP表中允許用戶登陸系統,并更改IP表中該地址的最后登陸時間。反之,需要用戶輸入在用戶注冊時系統生成的專屬密鑰,通過User表進行匹配密鑰是否正確,如果匹配成功的話,用戶即可登錄本系統,并且IP地址將會增加到IP表中。如果遇到密鑰匹配失敗的情況,系統將會拒絕用戶登錄。IP表中通過時間字段判斷當前時間和最后一次登陸時間是否超過一個月,當超過一個月時刪除記錄。這樣既可以減少表的記錄提升工作效率也可以間接加強了異地登陸安全認證問題。
3.3.3 數據加解密
本系統采用AES算法和BASE64編碼將用戶數據加密存入數據庫,當用戶需要查看時將數據進行解密顯示在瀏覽器上,方便用戶隨時隨地查看。
(1) 實現流程:為每個用戶生成密鑰串KeyGenerator.getInstace(“AES”)不同用戶生成密鑰存放在文本文件中保存起來,那么在操作管理的過程中,文本文件的數據將會被讀出并且被重新生成新的密鑰,方便不同的用戶進行加密解密。
(2) 將用戶數據加密:采用cipher.doFinal函數對用戶信息進行加密成字節數組,將字節數組中信息采用BASE64編碼轉換成字符串存入數據庫中。
(3)用戶數據解密:將用戶加密的數據從數據庫中取出,采用BASE64解碼生成字符數組,然后通過cipher.doFinal函數將數據解密,傳到前端給用戶顯示數據。
3.3.4 用戶數據增刪與修改
前面主要圍繞AES對數據的加解密展開論述,下文將闡述數據庫對數據的存入與刪除等步驟的管理實現。
(1) 用戶添加
其中DoPost函數接受前臺發來的信息。將用戶從瀏覽器添加到賬號信息經過封裝好的AES加密函數加密后進行SQL語句查詢,看用戶需要存入的信息是否存入到了數據庫。如果庫中沒有用戶要存儲到數據庫的信息,采用sql語句的insert命令存入到數據庫中;如果庫中已經存在目前要存儲到數據庫的信息,則由前臺提醒用戶插入重復。這里本系統為用戶提供復雜密碼生成密鑰算法,幫助用戶設置更復雜的密碼,極大的保證用戶數據安全。
(2) 用戶刪除
將用戶從瀏覽器上輸入的要刪除的賬號信息,傳入后臺,經過AES加密進行加密,采用sql語句進行查詢,進行匹配庫中是否有用戶要刪除的數據。如果有采用sql的delete語句進行刪除,假如庫中沒有用戶要刪除的賬號信息,則由前臺提醒用戶刪除失敗,數據中沒有要刪除的數據。
(3) 用戶基本信息修改
這個模塊主要功能就是對用戶錄入系統的信息進行修改,避免用戶進行刪除插入的這種多余操作,方便用戶使用。將用戶前臺傳入的備注信息和賬號信息傳入后端服務器,有服務器將用戶傳入的數據進行AES加密,與數據庫中匹配已存入用戶的數據,如果匹配到用戶存在的的信息,將用戶修改的信息保存到數據庫中,如果庫中數據與用戶需要修改的數據不匹配,由前臺提醒用戶數據不在系統中,修改出錯。
3.3.5 用戶查詢
先將保存在服務器中的用戶個人密鑰取出,獲取用戶專屬的AES密鑰,用于下一步解密操作。采用SQL語句select語句將該用戶存在數據庫中的數據進行解密取出,由前臺VUE框架進行顯示讓用戶查看。
3.4 結果反饋
對每個主要功能模塊,順序操作,逐一實驗,最終表明本系統操作簡單明了,大眾用戶也可以很輕松容易的掌握本系統,具備安全性與普適性。
4.1 創新
創新訪問架構方式。本系統采用B/S框架作為設計核心,現有的C/S架構的密碼管理軟件區分開,保證用戶可以隨時隨地查看自己的信息,不需要安裝客戶端或APP占用電腦或手機的空間。也不需要客戶端和APP的那樣像讓用戶授權權限,讓用戶能夠更好保護自己的隱私[6]。
創新加解密方式。本系統采用MD5和RSA加密,通過MD5數字簽名將用戶信息進行簽名在采用RSA非對稱加密進一步保護用戶數據安全,為用戶主賬號信息上了雙層鎖,進一步保護用戶安全。采用MD5withRSA加密會比多層MD5加密和RSA加密更加安全可靠;用戶信息存儲采用AES加密,這種輕量級且安全度高的加密會比非對稱加密運算速度更快,且安全性高。
提升用戶操作體驗。使用本系統的用戶,只需記住自己的主密碼就可以,就可以進入系統進行賬號密碼管理,且系統提醒用戶更換密碼主密碼安全。系統操作簡單,將大量復雜加密數據交互操作封裝到底層,真正做到面向大眾用戶,只需要會計算機基本操作,就可以對系統進行信息錄入,修改和刪除,自帶復雜密碼算法,更好的幫助用戶保護自身賬號。
4.2 展望
本系統擬在以后的研究與實驗中計劃能夠結合硬件實現加密方式,形成一體化硬件與軟件的密碼管理工具箱,并不斷地豐富與增加多種模塊,更好地提升系統安全性與用戶操作體驗,為互聯網環境下用戶的隱私信息安全保駕護航。