本技術屬于數(shù)據(jù)安全領域,具體涉及一種基于ecryptfs安全易用的文件保險箱實現(xiàn)方法及系統(tǒng)。
背景技術:
1、li?nux操作系統(tǒng)中,文件加密是一種重要的數(shù)據(jù)保護技術。為了滿足用戶對文件安全性的需求,li?nux提供了多種加密文件系統(tǒng)解決方案,例如encfs。這些加密文件系統(tǒng)通過在文件系統(tǒng)層面對數(shù)據(jù)進行加密,為用戶數(shù)據(jù)提供了強大的保護機制。
2、encfs是一種基于fuse(fi?l?esystemin?userspace)的加密文件系統(tǒng),由va?lient?gough開發(fā)并開源。encfs運行于用戶空間,利用fuse提供的接口與內核進行交互,實現(xiàn)文件的加密和解密。encfs使用自有的加密算法進行文件加密,支持aes、b?l?owfi?sh等多種算法。加密密鑰主要由用戶密碼派生而來。encfs的加密方式相對簡單,側重于提供基本的文件加密功能,且encfs主要面向個人用戶使用,提供了簡單易用的加密文件系統(tǒng)解決方案。
3、這些加密文件系統(tǒng)主要提供了底層文件系統(tǒng)加密能力,在易用性上較差:1)由于設置的密碼是作為密鑰來加密文件的,因此如果需要進行密碼修改,需要使用原密碼對文件系統(tǒng)進行解密,然后再重新設置加密密碼,用新的密碼對文件系統(tǒng)重新加密,整個過程既耗時又繁瑣。由于在這個過程中需要對加密文件系統(tǒng)解密,其他特權用戶可以在此時刻竊取到解密后文件,存在安全性風險。2)在云計算或云存儲場景下,大量用戶共用計算和存儲資源,無法對用戶創(chuàng)建的大量的加密文件系統(tǒng)進行統(tǒng)一管理。3)用戶如果忘記密碼,文件將無法再打開。
4、申請內容
5、本技術為了克服現(xiàn)有技術的不足,提供了一種基于ecryptfs安全易用的文件保險箱實現(xiàn)方法及系統(tǒng),可以實現(xiàn)在不對加密文件進行解密的情況下,支持修改文件保險箱的密碼;當訪問文件保險箱時,防止其他用戶竊取文件;提供對文件保險箱進行統(tǒng)一管理的能力;當忘記密碼時,可以通過口令等方式找回密碼。
6、為了實現(xiàn)上述目的,本技術采用以下技術方案:
7、一種基于ecryptfs安全易用的文件保險箱實現(xiàn)方法,包括創(chuàng)建所述文件保險箱,所述創(chuàng)建所述文件保險箱,包括:
8、用戶輸入第一字符串作為輸入密碼bpassword;
9、生成一個隨機的第二字符串作為ecryptfs的密碼epassword,所述epassword用于ecryptfs的加密或解密文件;
10、拼接所述epassword和所述bpassword,以形成明文字符串“epassword+bpassword”;
11、將所述bpassword作為密鑰,對所述“epassword+bpassword”進行加密并存儲到數(shù)據(jù)庫;以及
12、生成一個隨機的第三字符串作為口令,并將所述口令作為密鑰對所述bpassword進行加密并存儲到數(shù)據(jù)庫。
13、進一步地,還包括打開所述文件保險箱,所述打開所述文件保險箱,包括:
14、所述用戶建立dbus連接至后端服務;
15、所述用戶輸入第一密碼;
16、讀取所述“epassword+bpassword”并使用所述bpassword進行解密,校驗所述第一密碼是否為所述bpassword;以及
17、若是,則打開所述文件保險箱,且當所述用戶打開加密文件時,使用ecryptfs通過所述epassword對所述加密文件進行解密,解密后的文件放置在所述后端服務。
18、進一步地,還包括刪除所述文件保險箱,所述刪除所述文件保險箱,包括:
19、所述用戶建立dbus連接至后端服務;
20、所述用戶輸入第一密碼;
21、讀取所述“epassword+bpassword”并使用所述bpassword進行解密,校驗所述第一密碼是否為所述bpassword;以及
22、若是,則刪除所述文件保險箱。
23、進一步地,還包括修改所述文件保險箱的密碼,所述修改所述文件保險箱的密碼,包括:
24、所述用戶輸入第二密碼;
25、讀取所述“epassword+bpassword”并使用所述bpassword進行解密,校驗所述第二密碼是否為所述bpassword;
26、若否,則不允許修改密碼;
27、若是,則允許輸入第三密碼,將所述第三密碼作為新的輸入密碼bpassword,并將所述第三密碼作為密鑰,對所述“epassword+新的輸入密碼bpassword”進行加密并存儲到所述數(shù)據(jù)庫。
28、進一步地,還包括找回所述文件保險箱的密碼,所述找回所述文件保險箱的密碼,包括:
29、所述用戶輸入所述口令;
30、讀取加密后的所述bpassword,并用所述口令對所述加密后的所述bpassword進行解密,以得到解密后的所述bpassword。
31、另外,本技術還提供了一種基于ecryptfs安全易用的文件保險箱實現(xiàn)系統(tǒng),包括:
32、數(shù)據(jù)庫;
33、ecryptfs;以及
34、服務模塊,用于接收用戶輸入第一字符串作為輸入密碼bpassword;所述服務模塊還用于生成一個隨機的第二字符串作為ecryptfs的密碼epassword,所述epassword用于ecryptfs的加密或解密文件;
35、所述服務模塊還用于拼接所述epassword和所述bpassword,以形成明文字符串“epassword+bpassword”;以及,將所述bpassword作為密鑰,對所述“epassword+bpassword”進行加密并存儲到所述數(shù)據(jù)庫;
36、所述服務模塊還用于生成一個隨機的第三字符串作為口令,所述服務模塊還用于將所述口令作為密鑰對所述bpassword進行加密并存儲到所述數(shù)據(jù)庫。
37、進一步地,還包括:
38、后端服務,用于與所述用戶建立dbus連接;
39、當所述用戶輸入第一密碼時,所述服務模塊用于讀取所述“epassword+bpassword”并使用所述bpassword進行解密,校驗所述第一密碼是否為所述bpassword;若是,則所述用戶打開所述文件保險箱;
40、當所述用戶打開加密文件時,所述ecryptfs還用于通過所述epassword對所述加密文件進行解密,解密后的文件放置在所述后端服務。
41、進一步地,還包括:
42、后端服務,用于與所述用戶建立dbus連接;
43、當所述用戶輸入第一密碼時,所述服務模塊還用于讀取所述“epassword+bpassword”并使用所述bpassword進行解密,校驗所述第一密碼是否為所述bpassword;若是,則所述用戶刪除所述文件保險箱。
44、進一步地,包括:
45、當所述用戶輸入第二密碼時,所述服務模塊還用于讀取所述“epassword+bpassword”并使用所述bpassword進行解密,校驗所述第二密碼是否為所述bpassword;
46、若否,則不允許所述用戶修改密碼;
47、若是,則允許所述用戶輸入第三密碼,所述服務模塊還用于將所述第三密碼作為新的輸入密碼bpassword,并將所述第三密碼作為密鑰,對所述“epassword+新的輸入密碼bpassword”進行加密并存儲到所述數(shù)據(jù)庫。
48、進一步地,包括:
49、當所述用戶輸入所述口令時,所述服務模塊還用于讀取加密后的所述bpassword,并用所述口令對所述加密后的所述bpassword進行解密,以得到解密后的所述bpassword。
50、與現(xiàn)有技術相比,本技術具有以下優(yōu)點:
51、通過本技術的運用,密碼和口令以密鑰的形式進行控制,數(shù)據(jù)庫中不存儲明文的密碼和密鑰,確保安全性。在修改密碼時只需要更換加密的“epassword+bpassword”字符串,不需要加解密數(shù)據(jù)文件,確保修改密碼的高效性和安全性。支持口令找回密碼。當訪問文件保險箱時,防止其他用戶竊取文件。提供對文件保險箱進行統(tǒng)一管理的能力。
技術實現(xiàn)思路