本發明涉及計算機技術領域,特別涉及一種加密方法和裝置。
背景技術:
數據信息作為一種資源,它的普遍性、共享性、增值性、可處理性和多效用性,使其對于人類具有特別重要的意義。進入網絡時代后,數據信息安全保障工作的難度大大提高。我們面臨日益嚴重的網絡安全威脅,諸如網絡的數據竊賊、黑客的侵襲,甚至系統內部的泄密。數據信息安全已經成為各行業信息化建設中的首要問題。
TPM(Trusted Platform Module,可信賴平臺模塊)安全芯片是一個內置在計算機或者服務器的微芯片,能夠防止非法用戶的訪問,它是符合TPM標準的安全芯片。TPM安全芯片具有產生加解密密鑰的功能,能夠對資料進行高速的加密和解密。對于PC(personal computer,個人計算機)用戶,可以加密任意一個硬盤分區。
但是,使用TPM對某一分區進行加密,對于Windows系統可以完美兼容,而對于Linux系統會出現加密失敗等問題,因此兼容性較差。
技術實現要素:
本發明實施例提供了一種加密方法和裝置,能夠提高兼容性。
第一方面,本發明實施例提供了一種加密方法,該方法包括:生成密碼源,以及由所述密碼源生成至少一個子密鑰;
利用所述至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤;
利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到目標文件夾。
優選地,所述生成密碼源,包括:
通過TPM(Trusted Platform Module,可信賴平臺模塊)安全芯片生成所述密碼源。
優選地,在所述將所述加密磁盤格式化為普通文件系統之后,進一步包括:
備份所述密碼源和所述至少一個子密鑰到外部存儲設備;
清除所述待加密回環設備所在系統中的所述密碼源和所述至少一個子密鑰。
優選地,在所述利用所述至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤之前,進一步包括:
確定第一個未使用的回環設備;
通過隨機偽設備創建第一個數的第一大小的塊設備;
將所述回環設備和所述塊設備進行關聯,形成所述待加密回環設備。
優選地,該方法進一步包括:
加載dm-crypt內核模塊,并利用evice-mapper自動注冊所述dm-crypt內核模塊;
利用device-mapper識別所述dm-crypt內核模塊;
所述利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到目標文件夾,包括:
在dm-crypt內核模塊下,通過所述device-mapper,利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到/dev/mapper文件夾中。
第二方面,本發明實施例提供了一種加密裝置,該加密裝置包括密鑰生成單元、初始化單元和裝載單元,其中,
所述密鑰生成單元,用于生成密碼源,以及由所述密碼源生成至少一個子密鑰;
所述初始化單元,用于利用所述至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤;
所述裝載單元,用于利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到目標文件夾。
優選地,所述密鑰生成單元,用于通過TPM安全芯片生成所述密碼源。
優選地,該加密裝置進一步包括:備份單元和清除單元,其中,
所述備份單元,用于備份所述密碼源和所述至少一個子密鑰到外部存儲設備;
所述清除單元,用于清除所述待加密回環設備所在系統中的所述密碼源和所述至少一個子密鑰。
優選地,該加密裝置進一步包括:確定單元、創建單元和關聯單元,其中,
所述確定單元,用于確定第一個未使用的回環設備;
所述創建單元,用于通過隨機偽設備創建第一個數的第一大小的塊設備;
所述關聯單元,用于將所述回環設備和所述塊設備進行關聯,形成所述待加密回環設備。
優選地,該加密裝置進一步包括:加載單元和識別單元,其中,
所述加載單元,用于加載dm-crypt內核模塊,并利用evice-mapper自動注冊所述dm-crypt內核模塊;
所述識別單元,用于利用device-mapper識別所述dm-crypt內核模塊;
所述裝載單元,用于在dm-crypt內核模塊下,通過所述device-mapper,利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到/dev/mapper文件夾中。
本發明實施例提供了一種加密方法和裝置,通過生成密碼源,以及由密碼源生成至少一個子密鑰,然后利用至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤,最后利用至少一個子密鑰中的任一子密鑰將加密磁盤裝載到目標文件夾。由于利用子密鑰不僅對待加密回環設備進行初始化加密并且進行加密裝載,從而保證了加密的成功率,提高了兼容性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明一個實施例提供的一種加密方法的流程圖;
圖2是本發明一個實施例提供的另一種加密方法的流程圖;
圖3是本發明一個實施例提供的一種加密裝置的結構示意圖;
圖4是本發明一個實施例提供的另一種加密裝置的結構示意圖;
圖5是本發明一個實施例提供的又一種加密裝置的結構示意圖;
圖6是本發明一個實施例提供的再一種加密裝置的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例,基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
如圖1所示,本發明實施例提供了一種加密方法,該方法可以包括以下步驟:
步驟101:生成密碼源,以及由所述密碼源生成至少一個子密鑰。
步驟102:利用所述至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤。
步驟103:利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到目標文件夾。
在圖1所示的實施例中,通過生成密碼源,以及由密碼源生成至少一個子密鑰,然后利用至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤,最后利用至少一個子密鑰中的任一子密鑰將加密磁盤裝載到目標文件夾。由于利用子密鑰不僅對待加密回環設備進行初始化加密并且進行加密裝載,從而保證了加密的成功率,提高了兼容性。
值得說明的是,密碼源是隨機生成的一個密鑰。加密磁盤為LUKS格式的加密磁盤,其中LUSK為Linux Unified Key Setup。
在本發明一個實施例中,為了避免受到外部軟件攻擊和物理盜竊,所述生成密碼源,包括:
通過TPM安全芯片生成所述密碼源。
在該實施例中,通過內置TPM安全芯片,其是符合TPM標準的安全芯片,使用該芯片能夠有效的保護系統,防止非法用戶的訪問,能夠有效地避免受到外部軟件攻擊和物理盜竊。
在本發明一個實施例中,為了保證密鑰的安全,在所述將所述加密磁盤格式化為普通文件系統之后,進一步包括:
備份所述密碼源和所述至少一個子密鑰到外部存儲設備;
清除所述待加密回環設備所在系統中的所述密碼源和所述至少一個子密鑰。
在該實施例中,通過將密碼源和至少一個子密鑰進行備份,并且清楚系統中的密碼源和至少一個子密鑰,能夠有效的避免他人從系統中直接獲得密碼源和至少一個子密鑰,從而得到加密文件。外部存儲設備可以是U盤也可以是移動硬盤,也可以是其他存儲設備,只要能夠對密碼源和至少一個子密鑰進行存儲,且不容易被他人獲取即可。
在本發明一個實施例中,為了能夠實現對文件的加密,在所述利用所述至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤之前,進一步包括:
確定第一個未使用的回環設備;
通過隨機偽設備創建第一個數的第一大小的塊設備;
將所述回環設備和所述塊設備進行關聯,形成所述待加密回環設備。
在該實施例中,建立了一個加密設備,該設備能夠對加密文件進行存儲和加密。要創建作為加密設備裝載的文件系統,有兩種選擇:一是建立一個磁盤映像,然后作為回送設備加載;二是使用物理設備。無論那種情況,除了在建立和捆綁回送設備外,其它操作過程都是相似的。在Linux系統中會有多個回環設備,回環設備(loopback device)以/dev/loop0、/dev/loop1等命名,每個設備允許用戶以一個普通磁盤文件虛擬一個塊設備,用戶可以在這個設備上創建文件系統并像普通的磁盤一樣將它掛載。可以通過dev/urandom創建塊設備,文件名則可以根據個人喜好進行設定,例如,為/home/secret_dir。并且塊設備的個數和大小都可以進行設定。例如,個數可以為50個,100個,200個等,大小可以為1M,2M,4M等等。
在本發明一個實施例中,為了能夠構建加密文件系統,進一步包括:
加載dm-crypt內核模塊,并利用evice-mapper自動注冊所述dm-crypt內核模塊;
利用device-mapper識別所述dm-crypt內核模塊;
所述利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到目標文件夾,包括:
在dm-crypt內核模塊下,通過所述device-mapper,利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到/dev/mapper文件夾中。
在該實施例中,對加密內核進行配置。在Linux系統中,利用dm-crypt來創建加密文件系統的方法。與其它創建加密文件系統的方法相比,dm-crypt系統有著無可比擬的優越性:它的速度更快,易用性更強。除此之外,它的適用面也很廣,能夠運行在各種塊設備上,即使這些設備使用了RAID(Redundant Arrays of Independent Disks,磁盤陣列)和LVM(Logical Volume Manager,邏輯卷管理)也毫無障礙。因為dm_crypt使用內核device mapper去加密,磁盤位置是/dev/mapper,如果沒有該文件夾,則需要手動創建。
下面以在Linux系統中進行加密為例,對本發明的加密方法進行詳細說明。
如圖2所示,本發明實施例提供了一種加密方法,該方法可以包括以下步驟:
步驟201:配置device-mapper,加載dm-crypt內核模塊,并使用evice-mapper自動注冊。
步驟202:通過檢驗,使device-mapper識別dm-crypt。
步驟203:通過TPM安全芯片生成密碼源,以及由密碼源生成至少一個子密鑰。
在該步驟中,使用TPM安全芯片能夠有效的保護系統,防止非法用戶的訪問,有效地避免受到外部軟件攻擊和物理盜竊。
步驟204:確定第一個未使用的回環設備。
在該步驟中,回環設備(loopback device)以/dev/loop0、/dev/loop1等命名,每個設備允許用戶以一個普通磁盤文件虛擬一個塊設備,用戶可以在這個設備上創建文件系統并像普通的磁盤一樣將它掛載。例如,在本實施例中,獲取到的第一個未使用的回環設備為/dev/loop1。
步驟205:通過隨機偽設備創建100個的2M塊設備。
在該步驟中,利用Linux的/dev/urandom創建塊設備,文件名為/home/secret_dir,其中,每個數據庫的內存的大小為2MB,初始化一共100個數據塊。
步驟206:將回環設備和塊設備進行關聯,形成所述待加密回環設備。
在該步驟中,將回環設備和塊設備關聯,從而創建了一個加密設備,也就是本實施例中的待加密回環設備。例如,/home/secret_dir和/dev/loop1關聯。
步驟207:利用至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤。
步驟208:通過device-mapper,利用至少一個子密鑰中的任一子密鑰將加密磁盤裝載到/dev/mapper文件夾中。
在該步驟中,將加密磁盤成功裝載到/dev/mapper的一個文件夾中,可以是/dev/mapper/secret,此時,用戶可以看到裝載的加密磁盤及文件系統,盡管看起來與其他磁盤和文件系統無異,但實際上寫到/dev/mapper/secret下的所有數據,在數據寫入之前都是經過透明的加密處理后才寫入磁盤的,因此,從該處讀取的數據都是些密文。
為了方便對加密磁盤的訪問,可以創建一個待掛載文件夾,將/dev/mapper/secret掛載到該待掛載文件夾。例如,創建/home/validation文件夾,將/dev/mapper/secret掛載到/home/validation文件夾下,隨后便可以在/home/validation文件夾中進行創建文件、文件夾、編輯文件等各類操作。重啟服務器,依舊可以在/home/validation文件夾中進行創建文件、文件夾、編輯文件等各類操作,說明加密磁盤正常被掛載且可以訪問。
步驟209:備份密碼源和至少一個子密鑰到外部存儲設備,以及清除待加密回環設備所在系統中的密碼源和至少一個子密鑰。
在該步驟中,將備份密碼源和至少一個子密鑰,并將系統中的密碼源和至少一個子密鑰清除,可以避免他人直接對加密磁盤進行訪問。
在清除系統中的密碼源和至少一個子密鑰后,可以對加密性能進行測試。例如:第一種情況:保證TPM安全芯片為生成密碼源和至少一個子密鑰的TPM安全芯片,且該TPM安全芯片正常工作,并將備份有密碼源和至少一個子密鑰的外部存儲設備連接到系統中,此時,可成功掛載加密磁盤/dev/mapper/secret到/home/validation/下,并進行創建文件、文件夾、編輯文件等各類操作;
第二種情況:保證TPM安全芯片為生成密碼源和至少一個子密鑰的TPM安全芯片,并將備份有密碼源和至少一個子密鑰的外部存儲設備連接到系統中,但TPM安全芯片功能被禁用,此時,會有提示“Command failed:No key available with this passphrase”。說明在有TPM安全芯片但是其功能是禁用的情況下,無法將TPM安全芯片中的子密鑰與外部存儲設備中的子密鑰校驗,則不能掛載和訪問加密磁盤/dev/mapper/secret。
第三種情況:不安裝TPM安全芯片,但將備份有密碼源和至少一個子密鑰的外部存儲設備連接到系統中,此時,同樣會有提示“Command failed:No key available with this passphrase”。說明在沒有TPM安全芯片存在的情況下,外部存儲設備中的子密鑰無法與TPM安全芯片中的子密鑰校驗,則不能掛載和訪問加密磁盤/dev/mapper/secret。
第四種情況:使用的TPM安全芯片不是生成密碼源和至少一個子密鑰的TPM安全芯片,但TPM安全芯片正常工作,并將備份有密碼源和至少一個子密鑰的外部存儲設備連接到系統中,此時,同樣會有提示“Command failed:No key available with this passphrase”。說明存在TPM安全芯片,但TPM安全芯片中沒有子密鑰,無法和外部存儲設備中的子密鑰去校驗,則不能掛載和訪問加密磁盤/dev/mapper/secret。
從上面在通過TPM安全芯片生成了加密密鑰的情況下,創建加密磁盤并掛載,通過更改不同的配置條件,來驗證TPM加密功能是否生效。從多方位多角度驗證了保密度,有效地驗證了TPM安全芯片功能的可用性。
如圖3所示,本發明實施例提供了一種加密裝置,該加密裝置可以包括:密鑰生成單元301、初始化單元302和裝載單元303,其中,
所述密鑰生成單元301,用于生成密碼源,以及由所述密碼源生成至少一個子密鑰;
所述初始化單元302,用于利用所述至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤;
所述裝載單元303,用于利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到目標文件夾。
在該實施例中,通過密鑰生成單元生成密碼源,以及由密碼源生成至少一個子密鑰,然后通過初始化單元利用至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤,最后通過裝載單元利用至少一個子密鑰中的任一子密鑰將加密磁盤裝載到目標文件夾。由于利用子密鑰不僅對待加密回環設備進行初始化加密并且進行加密裝載,從而保證了加密的成功率,提高了兼容性。
在本發明一個實施例中,為了避免受到外部軟件攻擊和物理盜竊,所述密鑰生成單元301,用于通過TPM安全芯片生成所述密碼源。
在該實施例中,通過設置TPM安全芯片能夠有效的保護系統,防止非法用戶的訪問。
如圖4所示,在本發明一個實施例中,為了保證密鑰的安全,該加密裝置可以進一步包括:備份單元401和清除單元402,其中,
所述備份單元,用于備份所述密碼源和所述至少一個子密鑰到外部存儲設備;
所述清除單元,用于清除所述待加密回環設備所在系統中的所述密碼源和所述至少一個子密鑰。
在該實施例中,通過備份單元將密碼源和至少一個子密鑰備份到系統外部的存儲設備,并將系統內部的密碼源和至少一個子密鑰清除,能夠有效的防止盜取密碼源和至少一個子密鑰清除,從而訪問加密文件。
如圖5所示,在本發明一個實施例中,為了能夠實現對文件的加密,該加密裝置可以進一步包括:確定單元501、創建單元502和關聯單元503,其中,
所述確定單元501,用于確定第一個未使用的回環設備;
所述創建單元502,用于通過隨機偽設備創建第一個數的第一大小的塊設備;
所述關聯單元503,用于將所述回環設備和所述塊設備進行關聯,形成所述待加密回環設備。
在該實施例中,通過確定單元、創建單元和關聯單元,建立了一個加密設備,該設備能夠對加密文件進行存儲和加密。要創建作為加密設備裝載的文件系統,有兩種選擇:一是建立一個磁盤映像,然后作為回送設備加載;二是使用物理設備。無論那種情況,除了在建立和捆綁回送設備外,其它操作過程都是相似的。
如圖6所示,在本發明一個實施例中,為了能夠構建加密文件系統,該加密裝置可以進一步包括:加載單元601和識別單元602,其中,
所述加載單元601,用于加載dm-crypt內核模塊,并利用evice-mapper自動注冊所述dm-crypt內核模塊;
所述識別單元602,用于利用device-mapper識別所述dm-crypt內核模塊;
所述裝載單元303,用于在dm-crypt內核模塊下,通過所述device-mapper,利用所述至少一個子密鑰中的任一子密鑰將所述加密磁盤裝載到/dev/mapper文件夾中。
在該實施例中,通過配置單元,加載單元和識別單元,對加密內核進行配置。因為dm_crypt使用內核device mapper去加密,磁盤位置是/dev/mapper,如果沒有該文件夾,則需要手動創建。
上述裝置內的各單元之間的信息交互、執行過程等內容,由于與本發明方法實施例基于同一構思,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
綜上,本發明的各實施例,至少具有如下有益效果:
1、在本發明的實施例中,通過生成密碼源,以及由密碼源生成至少一個子密鑰,然后利用至少一個子密鑰中的任一子密鑰將待加密回環設備初始化為加密磁盤,最后利用至少一個子密鑰中的任一子密鑰將加密磁盤裝載到目標文件夾。由于利用子密鑰不僅對待加密回環設備進行初始化加密并且進行加密裝載,從而保證了加密的成功率,提高了兼容性。
2、在本發明的實施例中,通過使用TPM生成密碼源和至少一個子密鑰,能夠有效的保護系統,防止非法用戶的訪問,有效地避免受到外部軟件攻擊和物理盜竊。
3、在本發明的實施例中,通過將密碼源和至少一個子密鑰進行備份,并且清楚系統中的密碼源和至少一個子密鑰,能夠有效的避免他人從系統中直接獲得密碼源和至少一個子密鑰,從而得到加密文件。
4、在本發明的實施例中,利用dm-crypt來創建加密文件系統的方法,與其它創建加密文件系統的方法相比,dm-crypt系統有著無可比擬的優越性:它的速度更快,易用性更強。除此之外,它的適用面也很廣,能夠運行在各種塊設備上,即使這些設備使用了RAID和LVM也毫無障礙。
需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃·····”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質中。
最后需要說明的是:以上所述僅為本發明的較佳實施例,僅用于說明本發明的技術方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。