專利名稱:基于同步用戶和主機(jī)認(rèn)證的加密可移動(dòng)存儲(chǔ)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī),移動(dòng)存儲(chǔ)設(shè)備,數(shù)據(jù)加密解密領(lǐng)域。
背景技術(shù):
USB移動(dòng)存儲(chǔ)器的存儲(chǔ)容量以每年50%的速度在增加。隨著USB3. 0技術(shù)的出現(xiàn), USB移動(dòng)存儲(chǔ)器的數(shù)據(jù)傳輸速度超過了 300MBps,是原有傳輸速度的10倍甚至更快。對(duì)很多人來說他們樂于將全部的個(gè)人或者公司數(shù)據(jù)存儲(chǔ)在一個(gè)便于攜帶的USB移動(dòng)存儲(chǔ)器中。 這樣方便、環(huán)保并且可以提高效率。然而,這個(gè)趨勢(shì)從安全角度來說同樣帶來了危險(xiǎn),因?yàn)槊刻於加泻芏嗳藖G失他們的USB移動(dòng)存儲(chǔ)器。存儲(chǔ)在丟失或者被盜的USB移動(dòng)存儲(chǔ)器中的秘密信息可能會(huì)被任何人獲取,包括陌生人,盜用者和競(jìng)爭者。一個(gè)常用的解決辦法是利用基于硬件AES-256或者其它加密算法進(jìn)行全存儲(chǔ)器加密。任何人都無法獲取經(jīng)過加密的信息,除非他知道一個(gè)正確的密碼。這種方法簡單、快速并且貌似安全,因?yàn)锳ES-256本身是非常難以被破解的。不幸的是,計(jì)算機(jī)黑客非常善于破解用戶的密碼。雖然加密算法(例如,AES-256)本身可能是安全的,但是很多人為設(shè)置的密碼卻不是。人們經(jīng)常對(duì)于所有不同的應(yīng)用,重復(fù)使用相同或者類似的密碼。一些人使用基于字典或者生日的簡單密碼。即使強(qiáng)迫要求使用者輸入一個(gè)強(qiáng)密碼(例如,256bit的隨機(jī)數(shù)字),很多人僅僅是將這些密碼簡單地記錄在紙上。這樣其實(shí)會(huì)更糟,有如下兩個(gè)原因(1)因?yàn)槭褂谜弑仨殞⒂涗浢艽a的紙隨身攜帶(例如,不管是在辦公室或者在外面),竊取者可以同時(shí)竊取紙和USB 移動(dòng)存儲(chǔ)器;(2)當(dāng)使用者將記錄密碼的紙張放錯(cuò)地方,USB移動(dòng)存儲(chǔ)器中的所有信息都將永久的丟失。對(duì)于第一種方案的改進(jìn)是在全盤加密的基礎(chǔ)上再使用而外的文件系統(tǒng)級(jí)別加密。 雖然附加的密碼可以改善安全性,但是文件系統(tǒng)級(jí)別的加密通常很慢,因?yàn)樗鼈兪腔谲浖摹_@樣將大幅降低效率,并且有悖于使用USB3. 0作為高速接口的初衷。另一個(gè)解決辦法是在U盤中集成一個(gè)生物識(shí)別讀卡器。使用者除非擁有正確的生物特征(例如,指紋),否則將不可能獲取到數(shù)據(jù)。根據(jù)具體實(shí)現(xiàn)方法還可能會(huì)使用到可選的密碼。盡管生物識(shí)別架構(gòu)更加的安全,但是它有三個(gè)主要的缺點(diǎn)(1)顯著地提高了 USB移動(dòng)存儲(chǔ)器的成本;(2)生物識(shí)別讀卡器顯著地增加了 USB移動(dòng)存儲(chǔ)器的體積;(3)它不可以用于寄件人在不知道收件人生物信息的情況下將敏感信息寄給收件人。
發(fā)明內(nèi)容
不同于前述的解決辦法,我們的發(fā)明滿足了所有消費(fèi)者的需求安全,方便,靈活, 高性能并且低成本。通過限制USB移動(dòng)存儲(chǔ)設(shè)備被使用于經(jīng)過授權(quán)的電腦,使得它的安全性能不僅僅依賴于使用者的密碼。算法不可被逆向工程所破解即使一個(gè)非法使用者了解完整的設(shè)計(jì)技術(shù)并且能夠直接從NAND Flash設(shè)備上讀取所有的原始數(shù)據(jù),USB移動(dòng)存儲(chǔ)設(shè)備數(shù)據(jù)、使用者的密碼、計(jì)算機(jī)授權(quán)信息都同樣能被保護(hù)。本發(fā)明靈活地允許多個(gè)使用者和多個(gè)經(jīng)過授權(quán)的電腦使用USB移動(dòng)存儲(chǔ)設(shè)備,并且可以充分利用USB3.0超高傳輸速度所帶來的高性能優(yōu)勢(shì)。USB控制器成本可以被很好地控制,不需要使用例如生物識(shí)別讀卡器、芯片序列號(hào)(例如,電子保險(xiǎn)絲,非易失性閃存)等額外增加成本的部件。在移動(dòng)存儲(chǔ)設(shè)備中的數(shù)據(jù)由基于一個(gè)保密的主密鑰的加密過程進(jìn)行加密。主密鑰通過用戶密鑰和系統(tǒng)密鑰的組合生成的。用戶密鑰經(jīng)過一種基于用戶密碼的加密過程獲得保密和保護(hù)。通過使用存儲(chǔ)設(shè)備的計(jì)算機(jī)主機(jī)的硬件以及軟件序列號(hào)可以獲取該計(jì)算機(jī)系統(tǒng)的系統(tǒng)簽名,系統(tǒng)密鑰經(jīng)過一種基于所述系統(tǒng)簽名的加密過程獲得保密和保護(hù)。主密鑰、用戶密鑰、使用者密碼、系統(tǒng)密鑰以及系統(tǒng)簽名不能基于在移動(dòng)存儲(chǔ)設(shè)備中的加密或者非加密分區(qū)的數(shù)據(jù)而被直接計(jì)算出來。因此,在缺少保密的使用者密碼或者系統(tǒng)簽名的情況下,不能分別再現(xiàn)出使用者密鑰或者系統(tǒng)密鑰。沒有用戶密鑰或者系統(tǒng)密鑰中的任何一個(gè),主密鑰不能被得到。這樣,存儲(chǔ)于移動(dòng)存儲(chǔ)設(shè)備上的已加密的數(shù)據(jù)就不可能被正確地解密。這種兩級(jí)的密鑰系統(tǒng)允許一個(gè)或者多個(gè)經(jīng)過授權(quán)的使用者在一個(gè)或者多個(gè)經(jīng)過授權(quán)的計(jì)算機(jī)系統(tǒng)中執(zhí)行移動(dòng)存儲(chǔ)設(shè)備中的加密數(shù)據(jù)的安全存儲(chǔ)和獲取。進(jìn)一步來說,如果一個(gè)使用者不能擁有一個(gè)有效的密碼和/或不能直接進(jìn)入到上述經(jīng)過授權(quán)的計(jì)算機(jī)系統(tǒng),該使用者將不能存儲(chǔ)或者獲取已加密的數(shù)據(jù)。一個(gè)移動(dòng)存儲(chǔ)設(shè)備,其包括一個(gè)主機(jī)通信端口,一個(gè)或者多個(gè)加密數(shù)據(jù)分區(qū),一個(gè)或者多個(gè)非加密數(shù)據(jù)分區(qū),一個(gè)加密引擎,一個(gè)解密引擎,以及一個(gè)能夠同時(shí)認(rèn)證被授權(quán)用戶和被授權(quán)計(jì)算機(jī)系統(tǒng)的安全控制器。進(jìn)一步,其中,所述主機(jī)通信端口使用USB3. 0協(xié)議。進(jìn)一步,其中,所述的同時(shí)對(duì)被授權(quán)用戶和被授權(quán)計(jì)算機(jī)系統(tǒng)的認(rèn)證是基于用戶 ID和用戶密碼這樣兩個(gè)用戶參數(shù)以及系統(tǒng)ID和系統(tǒng)簽名這樣兩個(gè)系統(tǒng)參數(shù)的,并且用戶 ID是一個(gè)能夠識(shí)別每一個(gè)用戶的唯一的字符串,系統(tǒng)ID是識(shí)別每一個(gè)計(jì)算機(jī)系統(tǒng)的唯一的字符串。進(jìn)一步,其中,所述加密引擎使用一個(gè)加密密鑰加密在所述加密數(shù)據(jù)分區(qū)中的數(shù)據(jù),所述的解密引擎使用解密密鑰解密在所述加密數(shù)據(jù)分區(qū)中的數(shù)據(jù)。進(jìn)一步,其中,所述的加密引擎和所述的解密引擎使用同樣的主密鑰MK作為密鑰。進(jìn)一步,所述的安全控制器包括一個(gè)加密模塊EM,一個(gè)解密模塊DM,一個(gè)隨機(jī)數(shù)字產(chǎn)生器RNG,一個(gè)密鑰衍生函數(shù)KDF,一個(gè)用戶密鑰數(shù)據(jù)表管理器UKDTM,一個(gè)用戶密鑰數(shù)據(jù)表UKDT,一個(gè)系統(tǒng)密鑰數(shù)據(jù)表管理器SKDTM,以及一個(gè)系統(tǒng)密鑰數(shù)據(jù)表格SKDT。進(jìn)一步,其中,利用所述的加密模塊EM來增加/修改用戶或者增加/修改計(jì)算機(jī)系統(tǒng),利用所述解密模塊DM來獲取主密鑰MK,該主密鑰MK將被用于加密向加密分區(qū)中寫入的數(shù)據(jù)以及解密從加密分區(qū)中讀出的數(shù)據(jù)。進(jìn)一步,其中,所述的隨機(jī)數(shù)字產(chǎn)生器RNG在存儲(chǔ)設(shè)備進(jìn)行低級(jí)格式化時(shí)產(chǎn)生一個(gè)新的用戶密鑰UK以及一個(gè)新的系統(tǒng)密鑰SK,并且通過利用新的用戶密鑰UK和新的系統(tǒng)密鑰SK來產(chǎn)生一個(gè)新的主密鑰MK。進(jìn)一步,其中,所述密鑰衍生函數(shù)KDF將每一個(gè)用戶密碼轉(zhuǎn)變?yōu)橐粋€(gè)確定的固定長度的用戶密鑰加密密鑰UKEK,所述密鑰衍生函數(shù)KDF將每一個(gè)系統(tǒng)簽名轉(zhuǎn)變?yōu)橐粋€(gè)確定的固定長度的系統(tǒng)密鑰加密密鑰SKEK。進(jìn)一步,其中,在初始化時(shí),所述加密模塊EM使用新的用戶密鑰加密密鑰UKEK作為加密密鑰來加密用戶密鑰UK進(jìn)而得到新的加密用戶密鑰EM。進(jìn)一步,其中,在初始化時(shí),所述加密模塊EM使用新的系統(tǒng)密鑰加密密鑰SKEK作為加密密鑰來加密系統(tǒng)密鑰SK進(jìn)而得到新的加密系統(tǒng)密鑰ESK。進(jìn)一步,其中,在初始化時(shí),所述用戶密鑰數(shù)據(jù)表格管理器UKDTM在用戶密鑰數(shù)據(jù)表格UKDT中存儲(chǔ)新的用戶ID UID和新的加密用戶密鑰EUK。進(jìn)一步,其中,在初始化時(shí),所述系統(tǒng)密鑰數(shù)據(jù)表格管理器SKDTM在系統(tǒng)密鑰數(shù)據(jù)表格SKDT中存儲(chǔ)新的系統(tǒng)ID SID和新的加密系統(tǒng)密鑰ESK。進(jìn)一步,其中,在用戶操作過程中所述用戶密鑰數(shù)據(jù)表格管理器UKDTM基于用戶 ID UID獲取加密用戶密鑰EUK。進(jìn)一步,其中,在用戶操作過程中所述系統(tǒng)密鑰數(shù)據(jù)表格管理器SKDTM基于系統(tǒng) ID SID獲取加密系統(tǒng)密鑰ESK。進(jìn)一步,其中,在用戶操作過程中所述解密模塊DM使用用戶密鑰加密密鑰UKEK作為密鑰來解密所述加密用戶密鑰EM,進(jìn)而形成用戶密鑰UK。進(jìn)一步,其中,在用戶操作過程中所述解密模塊DM使用系統(tǒng)密鑰加密密鑰SKEK作為密鑰來解密所述加密系統(tǒng)密鑰ESK,進(jìn)而形成系統(tǒng)密鑰SK。進(jìn)一步,其中在用戶操作過程中安全控制器基于用戶密鑰M和系統(tǒng)密鑰SK來計(jì)算主密鑰MK,并基于主密鑰MK來實(shí)現(xiàn)數(shù)據(jù)的加密/解密。
圖1利用管理員的用戶密鑰初始化用戶密鑰數(shù)據(jù)表格的示例系統(tǒng); 圖2利用管理員系統(tǒng)密鑰初始化系統(tǒng)密鑰數(shù)據(jù)表格的示例系統(tǒng);
圖3在用戶密鑰數(shù)據(jù)表格中為新用戶增加用戶密鑰的示例系統(tǒng);
圖4在系統(tǒng)密鑰數(shù)據(jù)表格中為新計(jì)算機(jī)系統(tǒng)增加系統(tǒng)密鑰的示例系統(tǒng);
圖5改變?cè)械囊咽跈?quán)用戶密碼的示例系統(tǒng);
圖6改變?cè)械囊咽跈?quán)計(jì)算機(jī)系統(tǒng)簽名的示例系統(tǒng);
圖7獲取某一指定用戶的用戶密鑰的示例系統(tǒng);
圖8獲取某一指定計(jì)算機(jī)系統(tǒng)的系統(tǒng)密鑰的示例系統(tǒng);
圖9對(duì)加密數(shù)據(jù)分區(qū)中用戶數(shù)據(jù)加密/解密的示例系統(tǒng)。
具體實(shí)施例方式下面的部分描述了發(fā)明的一個(gè)具體實(shí)施例。為了更加的清楚,這里列出了本部分中所寫的列表
AES 先進(jìn)的加密標(biāo)準(zhǔn) AU 管理員級(jí)用戶 EE 加密引擎 DE 解密引擎DM 解密模塊
EM 加密模塊
ESK0 加密管理員級(jí)系統(tǒng)密鑰
ESKi 第i個(gè)計(jì)算機(jī)系統(tǒng)的加密系統(tǒng)密鑰
EUK0=加密管理員級(jí)密鑰
EUKj 第i個(gè)用戶的加密用戶密鑰
MK 主密鑰
PBKDF2 基于密碼的密鑰求導(dǎo)函數(shù)2
SID0: 管理員級(jí)系統(tǒng)ID
SIDi 第i個(gè)計(jì)算機(jī)系統(tǒng)的系統(tǒng)ID
SK 系統(tǒng)密鑰
SKEK0 管理員級(jí)系統(tǒng)密鑰加密密鑰
SKEKi 第i個(gè)計(jì)算機(jī)系統(tǒng)的系統(tǒng)密鑰加密密鑰
SSi= 第i個(gè)計(jì)算機(jī)系統(tǒng)的系統(tǒng)簽名
UID0 管理員ID
UIDj 第j個(gè)用戶的用戶ID
UPj: 第j個(gè)用戶的用戶密碼
UK 用戶密鑰
UKEK0 管理員級(jí)用戶密鑰加密密鑰
UKEKj 第j個(gè)用戶的用戶密鑰加密密鑰
明碼用戶數(shù)據(jù)(未經(jīng)加密的明碼文本)利用一個(gè)主密鑰(MK)通過加密引擎(EE)加密, 來形成加密的用戶數(shù)據(jù)(密碼文本)。加密的用戶數(shù)據(jù)被存儲(chǔ)在移動(dòng)存儲(chǔ)設(shè)備的加密分區(qū)。 明碼用戶數(shù)據(jù)通過相反的過程被恢復(fù)從加密分區(qū)中讀取被加密的用戶數(shù)據(jù),利用解密引擎(DE)通過同樣的用來加密用的主密鑰(MK)解密。MK是一個(gè)用戶密鑰(UK)和系統(tǒng)密鑰(SK)的函數(shù)。例如,MK可以通過UK和SK按位異或來形成。MK = UK SK
UK和SK是當(dāng)對(duì)加密分區(qū)進(jìn)行低級(jí)格式化時(shí)產(chǎn)生的隨機(jī)數(shù)字。UK和SK被加密和存儲(chǔ)在移動(dòng)存儲(chǔ)中加密分區(qū)之外的部分中。UK和SK保持不變直到加密分區(qū)的下一次低級(jí)格式化。在MK的位數(shù)依賴于用戶數(shù)據(jù)EM的具體實(shí)施。M和SK的長度都與MK的長度相同。例如,MK, UK和SK可以是在一些應(yīng)用中足夠安全128bit長。多個(gè)用戶可以被授權(quán)訪問存儲(chǔ)在移動(dòng)存儲(chǔ)設(shè)備加密分區(qū)中的數(shù)據(jù)。這些數(shù)據(jù)被不同的用戶所共享,盡管如此,在同一個(gè)時(shí)間只有一個(gè)用戶可以進(jìn)入加密分區(qū)。類似的,一個(gè)或者多個(gè)計(jì)算機(jī)系統(tǒng)可以被授權(quán)能夠訪問加密分區(qū)中存儲(chǔ)的數(shù)據(jù)。在本發(fā)明的實(shí)施例中,對(duì)于所有授權(quán)用戶,UK是一樣的,對(duì)于所有授權(quán)的計(jì)算機(jī), SK是一樣的。在本實(shí)施例中,每一個(gè)被授權(quán)用戶可以使用任何的被授權(quán)計(jì)算機(jī)。如下1到 8闡述了本發(fā)明的一個(gè)實(shí)施例。1用戶密鑰數(shù)據(jù)表格的初始化
創(chuàng)建用戶密鑰(UK)的示例系統(tǒng)如圖1所示。包括一個(gè)隨機(jī)數(shù)字產(chǎn)生器100,一個(gè)具有可以將大量可變長度的數(shù)據(jù)轉(zhuǎn)換到一個(gè)單一的確定長度的整數(shù)的確定算法的密鑰衍生函數(shù)101 ;—個(gè)加密模塊102,一個(gè)用戶密鑰數(shù)據(jù)表格管理器104,所述管理器被用來為一個(gè)確定的用戶ID從用戶密鑰數(shù)據(jù)表格105中存儲(chǔ)和重新獲取加密用戶密鑰。PBKDF2是密鑰衍生函數(shù)的一個(gè)示例函數(shù)。加密模塊102和解密模塊103可以使用一個(gè)被普遍接受的流密碼或者塊密碼。表格管理器104可以使用一個(gè)陣列或者一個(gè)鏈表來存儲(chǔ)和重新獲取加密的用戶密鑰。用戶密鑰數(shù)據(jù)表105在加密分區(qū)低級(jí)格式化開始的時(shí)候被清空。對(duì)加密分區(qū)執(zhí)行低級(jí)格式化的個(gè)人被指定為管理員級(jí)用戶(AU)。隨機(jī)數(shù)字產(chǎn)生器100產(chǎn)生一個(gè)隨機(jī)數(shù)值 (例如,基于當(dāng)前時(shí)間或者計(jì)算處理狀態(tài))來作為UK??勺冮L度的管理員級(jí)用戶密碼由管理員級(jí)用戶AU自行設(shè)置,并且保密??勺冮L度的管理員級(jí)用戶密碼通入密鑰衍生函數(shù)101來產(chǎn)生一個(gè)確定的、長度固定的管理員級(jí)用戶密鑰加密密鑰UKEIVUKEK0的bit位數(shù)是依賴于加密模塊102的具體實(shí)施。例如,假設(shè)UK是U8bits 長,并且102使用AES塊加密算法,則UKEKtl的尺寸可以是128bits。加密模塊102使用UKEKtl作為加密密鑰來加密UK進(jìn)而形成加密管理員級(jí)用戶密鑰EUIV用戶密鑰數(shù)據(jù)表管理器104在用戶密鑰數(shù)據(jù)表格105的第0個(gè)用戶條目中將EUKtl 和管理員級(jí)用戶ID UID0 112 (唯一的、公共識(shí)別字符串112) —同存儲(chǔ)起來。SK是在低級(jí)格式化加密分區(qū)時(shí)UK被創(chuàng)建的同時(shí)被創(chuàng)建的。2系統(tǒng)密鑰數(shù)據(jù)表格的初始化創(chuàng)建系統(tǒng)密鑰(SK)的示例系統(tǒng)如圖2所示。系統(tǒng)密鑰數(shù)據(jù)表格109在低級(jí)格式化加密分區(qū)的開始就被清空。隨機(jī)數(shù)字產(chǎn)生器產(chǎn)生一個(gè)隨機(jī)數(shù)字被用作為SK??勺冮L度的管理級(jí)系統(tǒng)密碼通過管理員級(jí)用戶AU被產(chǎn)生并保密,并且由密鑰衍生函數(shù)來產(chǎn)生確定的、固定長度的管理系統(tǒng)密鑰加密密鑰SKEIVSKEK0的bit位數(shù)依賴于的加密模塊102的具體實(shí)施。例如,假設(shè)SK是128 bit 長,并且102使用AES塊加密算法,則SKEKtl的長度可以是128 bits。SKEKtl被加密模塊102作為加密密鑰來加密SK進(jìn)而生成加密的管理員級(jí)用戶系統(tǒng)密鑰ESKtlt5系統(tǒng)密鑰數(shù)據(jù)表管理器108在系統(tǒng)密鑰數(shù)據(jù)表109的第0個(gè)用戶條目中將和管理員系統(tǒng)ID SID0 113 (一個(gè)唯一、公共識(shí)別字符串113) —同存儲(chǔ)起來。UK是在低級(jí)格式化加密分區(qū)時(shí)SK被創(chuàng)建的同時(shí)被創(chuàng)建的。3授權(quán)新的用戶
在UK被初始化并且第0個(gè)(AU)用戶條目被輸入進(jìn)用戶密鑰數(shù)據(jù)表格之后,就可以授權(quán)另外的用戶是他們能夠訪問到存儲(chǔ)在加密分區(qū)中的數(shù)據(jù)。這是通過為新的被授權(quán)用戶增加新條目到用戶密鑰數(shù)據(jù)表格105中來實(shí)現(xiàn)的。附圖3描述了一個(gè)增加授權(quán)用戶的示例系統(tǒng)。在本實(shí)施例中只有管理員級(jí)用戶AU 被允許來授權(quán)增加一個(gè)新的用戶。首先,用戶密鑰UK需要被恢復(fù)。使用管理員級(jí)用戶ID UID0 112,加密的管理員級(jí)用戶密鑰EUKtl被用戶密鑰表管理器104從用戶密鑰數(shù)據(jù)表格105中找回。管理員級(jí)用戶密碼114被輸入到密鑰衍生函數(shù)101中來形成管理員級(jí)用戶密鑰加密密鑰UKEIV解密模塊使用UKEKtl作為解密密鑰來解密EUKtl形成UK。然后,被恢復(fù)的M需要通過使用一個(gè)從新用戶密碼得到的用戶密鑰加密密鑰來進(jìn)行加密。新的用戶密碼UPi被輸入進(jìn)入密鑰衍生函數(shù)101進(jìn)而來形成一個(gè)用戶密鑰加密密鑰UKEK”加密模塊使用UKEKi作為加密密鑰來加密M,進(jìn)而形成加密用戶密鑰EMitl用戶密鑰數(shù)據(jù)表格管理器104在更新的用戶密鑰數(shù)據(jù)表格107中的第i個(gè)用戶條目中將EMi 和用戶ID UIDiIie (一個(gè)唯一的用戶識(shí)別字符串116) —同存儲(chǔ)起來。
4授權(quán)新的計(jì)算機(jī)系統(tǒng)
增加的計(jì)算機(jī)系統(tǒng)可能同樣被授權(quán)來獲取訪問在加密分區(qū)中的數(shù)據(jù)權(quán)限。這是通過為每個(gè)新授權(quán)的計(jì)算機(jī)系統(tǒng)增加系統(tǒng)密鑰數(shù)據(jù)表格中的入口來實(shí)現(xiàn)的。附圖4描述了一個(gè)增加一個(gè)新的被授權(quán)計(jì)算機(jī)系統(tǒng)的示例系統(tǒng)。只有管理員級(jí)用戶AU被允許授權(quán)新的計(jì)算機(jī)系統(tǒng)。首先,需要獲取系統(tǒng)密鑰SK。使用管理系統(tǒng)ID SID0 113,通過系統(tǒng)密鑰數(shù)據(jù)表格管理器108從系統(tǒng)密鑰數(shù)據(jù)表格109中獲得加密的管理系統(tǒng)密鑰ESKy將管理員級(jí)系統(tǒng)密碼輸入到密鑰衍生函數(shù)101進(jìn)而來形成管理員級(jí)系統(tǒng)密鑰加密密鑰SKEIV解密模塊103 使用SKEKtl作為解密密鑰來解密ESKtl進(jìn)而來形成SK。然后,被恢復(fù)的SK需要被新計(jì)算機(jī)系統(tǒng)系統(tǒng)簽名所產(chǎn)生的加密密鑰加密。系統(tǒng)簽名SSi是從目前被授權(quán)的計(jì)算機(jī)系統(tǒng)的硬件和軟件序列號(hào)中得到的。例如,系統(tǒng)簽名120可以從操作系統(tǒng)的序列號(hào)和網(wǎng)絡(luò)適配器MAC的地址中獲得。SSi被輸入到密鑰衍生函數(shù)進(jìn)而形成系統(tǒng)密鑰加密密鑰SKE&。加密模塊102使用SKEKi作為加密密鑰來加密SK,進(jìn)而形成加密的系統(tǒng)密鑰ES&。系統(tǒng)密鑰數(shù)據(jù)表格管理器108在更新的系統(tǒng)密鑰數(shù)據(jù)表111中的第i個(gè)入口將ESKi和系統(tǒng)ID SIDi 119 (一個(gè)唯一的識(shí)別計(jì)算機(jī)系統(tǒng)的字符串119) 一同存儲(chǔ)起來。5更改用戶密碼
附圖5描述了改變目前已授權(quán)用戶的密碼的示例系統(tǒng)。只有目前已被授權(quán)的用戶被允許改變用戶密碼。首先,通過已授權(quán)用戶的舊密碼獲得用戶密鑰UK。假設(shè)用戶密鑰數(shù)據(jù)表格105的第j個(gè)入口是需要改變密碼的用戶,利用用戶密鑰數(shù)據(jù)表格管理器104從用戶密鑰數(shù)據(jù)表格105中獲得加密的用戶密鑰EUKjtl輸入用戶密碼UPj到密鑰衍生函數(shù)101中來形成用戶密鑰加密密鑰UKEKp解密模塊103使用UKEI^作為解密密鑰來解密EW^進(jìn)而產(chǎn)生UK。然后,利用從新用戶密碼UPj中獲得的加密密鑰來加密恢復(fù)的Μ。輸入新的HEj到密鑰衍生函數(shù)101中來形成一個(gè)新的_Ej。加密模塊102使用新的MMj作為加密密鑰來加密M,產(chǎn)生新的EMj。用戶密鑰數(shù)據(jù)表格管理器104在更新的用戶密鑰數(shù)據(jù)表格107 的第j個(gè)入口中將新的和用戶ID UIDj 一同存儲(chǔ)起來。6更改系統(tǒng)簽名
附圖6描述了改變之前已被授權(quán)計(jì)算機(jī)系統(tǒng)的系統(tǒng)簽名的示例系統(tǒng)。只有管理員級(jí)用戶AU擁有管理員級(jí)系統(tǒng)密碼,因此只有管理員級(jí)用戶AU可以更新之前已被授權(quán)計(jì)算機(jī)系統(tǒng)的系統(tǒng)簽名。首先,需要獲得系統(tǒng)密鑰SK。假設(shè)管理員系統(tǒng)ID (SIDtl)對(duì)應(yīng)于系統(tǒng)密鑰數(shù)據(jù)表格109中的第0個(gè)入口,系統(tǒng)密鑰數(shù)據(jù)表格管理器108從系統(tǒng)密鑰數(shù)據(jù)表格109獲得加密的管理員級(jí)系統(tǒng)密鑰ESIV輸入管理員系統(tǒng)密碼115到密鑰衍生函數(shù)101中來形成管理員級(jí)系統(tǒng)密鑰加密密鑰SKEKy解密模塊103使用SKEKtl作為解密密鑰來解密ESKtl進(jìn)而形成 SK。然后,通過使用從新的計(jì)算機(jī)系統(tǒng)系統(tǒng)簽名中獲得的加密密鑰來加密恢復(fù)的SK。 輸入新系統(tǒng)簽名SSj 120到密鑰衍生函數(shù)ιο 中來形成新的SEMj,其中j表示系統(tǒng)將更新它的簽名到對(duì)應(yīng)的系統(tǒng)密鑰數(shù)據(jù)表格109中的第j個(gè)入口。加密模塊102使用新SEMj作為加密密鑰來加密SK,形成新的加密系統(tǒng)密鑰ESEr系統(tǒng)密鑰數(shù)據(jù)表格管理器108在更新的系統(tǒng)密鑰數(shù)據(jù)表111的第j個(gè)入口中將新£2 和系統(tǒng)ID SIDj 119 一同存儲(chǔ)起來。7獲得用戶密鑰和系統(tǒng)密鑰
從或向加密分區(qū)讀取和寫入有效數(shù)據(jù)的需要具有主密鑰MK。為了得到MK的信息,必需要首先獲得UK和SK。M只能通過之前已被授權(quán)的用戶使用相應(yīng)的用戶密碼得到。類似的,SK只能通過已授權(quán)的計(jì)算機(jī)系統(tǒng)使用相應(yīng)的系統(tǒng)簽名得到。附圖7描述了一個(gè)獲得UK的示例系統(tǒng)。使用用戶ID UIDj 116,通過用戶密鑰數(shù)據(jù)管理器104從用戶密鑰數(shù)據(jù)表格105中得到加密的用戶密鑰EUKjtl輸入用戶密碼UPjIH 到密鑰衍生函數(shù)101中來形成用戶密鑰加密密鑰UKEKj。解密模塊103使用UKEKj作為解密密鑰來解密EW^進(jìn)而形成用戶密鑰UK。附圖8描述了一個(gè)獲得SK的示例系統(tǒng)。使用系統(tǒng)ID SIDj 119,通過系統(tǒng)密鑰數(shù)據(jù)表格管理器108從系統(tǒng)密鑰數(shù)據(jù)表格109中獲得加密的系統(tǒng)密鑰ESKj。輸入系統(tǒng)簽名 SSj 120到密鑰衍生函數(shù)101中進(jìn)而獲得系統(tǒng)密鑰加密密鑰SKEK」。解密模塊103使用SKEKj 作為解密密鑰來解密來形成系統(tǒng)密鑰SK。8加密和解密用戶數(shù)據(jù)
安全控制器123由上述加密模塊EM 102,上述解密模塊DM 103,上述隨機(jī)數(shù)字產(chǎn)生器 RNG 100,上述密鑰衍生函數(shù)KDF 101,上述用戶密鑰數(shù)據(jù)表管理器UKDTM 104,上述用戶密鑰數(shù)據(jù)表格UKDT 105,上述系統(tǒng)密鑰數(shù)據(jù)表管理器SKDTM 108,以及上述系統(tǒng)密鑰數(shù)據(jù)表格SKDT 109組成。根據(jù)上述描述的過程,安全控制器可以生成并存儲(chǔ)用戶密鑰UK和系統(tǒng)密鑰SK,并進(jìn)而生成MK (如上述知道MK是UK和SK的函數(shù))。附圖9描述了一個(gè)使用MK對(duì)用戶數(shù)據(jù)進(jìn)行加密和解密的示例系統(tǒng)。用戶輸入到移動(dòng)存儲(chǔ)設(shè)備加密分區(qū)的明碼用戶數(shù)據(jù)通過主機(jī)通訊端口 121送給加密引擎122。加密引擎122使用安全控制器123提供的MK作為加密密鑰對(duì)明碼用戶數(shù)據(jù)進(jìn)行加密,并將加密的用戶數(shù)據(jù)寫入到移動(dòng)存儲(chǔ)器加密分區(qū)126。如果用戶讀取加密分區(qū)126中已存儲(chǔ)的加密數(shù)據(jù),則經(jīng)過相反的過程加密分區(qū) 1 將已加密的用戶數(shù)據(jù)輸入給解密引擎124,解密引擎124使用安全控制器123提供的MK 作為解密密鑰對(duì)已加密的用戶數(shù)據(jù)進(jìn)行解密,并將恢復(fù)的明碼用戶數(shù)據(jù)輸入到主機(jī)通訊端口 121進(jìn)而傳輸?shù)绞褂迷撘苿?dòng)存儲(chǔ)設(shè)備的主機(jī)系統(tǒng)。
權(quán)利要求
1.一個(gè)移動(dòng)存儲(chǔ)設(shè)備,其包括一個(gè)主機(jī)通信端口,一個(gè)或者多個(gè)加密數(shù)據(jù)分區(qū),一個(gè)或者多個(gè)非加密數(shù)據(jù)分區(qū),一個(gè)加密引擎,一個(gè)解密引擎,以及一個(gè)能夠同時(shí)認(rèn)證被授權(quán)用戶和被授權(quán)計(jì)算機(jī)系統(tǒng)的安全控制器。
2.一個(gè)根據(jù)權(quán)利要求1所述的移動(dòng)存儲(chǔ)設(shè)備,其中,所述主機(jī)通信端口使用USB3. 0協(xié)議。
3.一個(gè)根據(jù)權(quán)利要求1所述的移動(dòng)存儲(chǔ)設(shè)備,其中,所述的同時(shí)對(duì)被授權(quán)用戶和被授權(quán)計(jì)算機(jī)系統(tǒng)的認(rèn)證是基于用戶ID和用戶密碼這樣兩個(gè)用戶參數(shù)以及系統(tǒng)ID和系統(tǒng)簽名這樣兩個(gè)系統(tǒng)參數(shù)的,并且用戶ID是一個(gè)能夠識(shí)別每一個(gè)用戶的唯一的字符串,系統(tǒng)ID是識(shí)別每一個(gè)計(jì)算機(jī)系統(tǒng)的唯一的字符串。
4.一個(gè)根據(jù)權(quán)利要求3所述的移動(dòng)存儲(chǔ)設(shè)備,其中,所述加密引擎使用一個(gè)加密密鑰加密在所述加密數(shù)據(jù)分區(qū)中的數(shù)據(jù),所述的解密引擎使用解密密鑰解密在所述加密數(shù)據(jù)分區(qū)中的數(shù)據(jù)。
5.一個(gè)根據(jù)權(quán)利要求4所述的移動(dòng)存儲(chǔ)設(shè)備,其中,所述的加密引擎和所述的解密引擎使用同樣的主密鑰MK作為密鑰。
6.一個(gè)根據(jù)權(quán)利要求5所述的移動(dòng)存儲(chǔ)設(shè)備,其中,所述的安全控制器包括一個(gè)加密模塊EM,一個(gè)解密模塊DM,一個(gè)隨機(jī)數(shù)字產(chǎn)生器RNG,一個(gè)密鑰衍生函數(shù)KDF,一個(gè)用戶密鑰數(shù)據(jù)表管理器UKDTM,一個(gè)用戶密鑰數(shù)據(jù)表UKDT,一個(gè)系統(tǒng)密鑰數(shù)據(jù)表管理器SKDTM,以及一個(gè)系統(tǒng)密鑰數(shù)據(jù)表格SKDT。
7.一個(gè)根據(jù)權(quán)利要求6所述的移動(dòng)存儲(chǔ)設(shè)備,其中,利用所述的加密模塊EM來增加/ 修改用戶或者增加/修改計(jì)算機(jī)系統(tǒng),利用所述解密模塊DM來獲取主密鑰MK,該主密鑰MK 將被用于加密向加密分區(qū)中寫入的數(shù)據(jù)以及解密從加密分區(qū)中讀出的數(shù)據(jù)。
8.一個(gè)根據(jù)權(quán)利要求7所述的移動(dòng)存儲(chǔ)設(shè)備,其中,所述的隨機(jī)數(shù)字產(chǎn)生器RNG在存儲(chǔ)設(shè)備進(jìn)行低級(jí)格式化時(shí)產(chǎn)生一個(gè)新的用戶密鑰UK以及一個(gè)新的系統(tǒng)密鑰SK,并且通過利用新的用戶密鑰UK和新的系統(tǒng)密鑰SK來產(chǎn)生一個(gè)新的主密鑰MK。
9.一個(gè)根據(jù)權(quán)利要求8所述的移動(dòng)存儲(chǔ)設(shè)備,其中,所述密鑰衍生函數(shù)KDF將每一個(gè)用戶密碼轉(zhuǎn)變?yōu)橐粋€(gè)確定的固定長度的用戶密鑰加密密鑰UKEK,所述密鑰衍生函數(shù)KDF將每一個(gè)系統(tǒng)簽名轉(zhuǎn)變?yōu)橐粋€(gè)確定的固定長度的系統(tǒng)密鑰加密密鑰SKEK。
10.一個(gè)根據(jù)權(quán)利要求9所述的移動(dòng)存儲(chǔ)設(shè)備,其中,在初始化時(shí),所述加密模塊EM使用新的用戶密鑰加密密鑰UKEK作為加密密鑰來加密用戶密鑰M進(jìn)而得到新的加密用戶密鑰 EUK。
11.一個(gè)根據(jù)權(quán)利要求10所述的移動(dòng)存儲(chǔ)設(shè)備,其中,在初始化時(shí),所述加密模塊EM使用新的系統(tǒng)密鑰加密密鑰SKEK作為加密密鑰來加密系統(tǒng)密鑰SK進(jìn)而得到新的加密系統(tǒng)密鑰 ESK。
12.—個(gè)根據(jù)權(quán)利要求11所述的移動(dòng)存儲(chǔ)設(shè)備,其中,在初始化時(shí),所述用戶密鑰數(shù)據(jù)表格管理器UKDTM在用戶密鑰數(shù)據(jù)表格UKDT中存儲(chǔ)新的用戶ID UID和新的加密用戶密鑰 EUK。
13.一個(gè)根據(jù)權(quán)利要求12所述的移動(dòng)存儲(chǔ)設(shè)備,其中,在初始化時(shí),所述系統(tǒng)密鑰數(shù)據(jù)表格管理器SKDTM在系統(tǒng)密鑰數(shù)據(jù)表格SKDT中存儲(chǔ)新的系統(tǒng)ID SID和新的加密系統(tǒng)密鑰 ESK。
14.一個(gè)根據(jù)權(quán)利要求13所述的移動(dòng)存儲(chǔ)設(shè)備,其中,在用戶操作過程中所述用戶密鑰數(shù)據(jù)表格管理器UKDTM基于用戶ID UID獲取加密用戶密鑰EM。
15.一個(gè)根據(jù)權(quán)利要求14所述的移動(dòng)存儲(chǔ)設(shè)備,其中,在用戶操作過程中所述系統(tǒng)密鑰數(shù)據(jù)表格管理器SKDTM基于系統(tǒng)ID SID獲取加密系統(tǒng)密鑰ESK。
16.一個(gè)根據(jù)權(quán)利要求15所述的移動(dòng)存儲(chǔ)設(shè)備,其中,在用戶操作過程中所述解密模塊DM使用用戶密鑰加密密鑰UKEK作為密鑰來解密所述加密用戶密鑰EM,進(jìn)而形成用戶密鑰UK。
17.一個(gè)根據(jù)權(quán)利要求16所述的移動(dòng)存儲(chǔ)設(shè)備,其中,在用戶操作過程中所述解密模塊DM使用系統(tǒng)密鑰加密密鑰SKEK作為密鑰來解密所述加密系統(tǒng)密鑰ESK,進(jìn)而形成系統(tǒng)密鑰SK。
18.一個(gè)根據(jù)權(quán)利要求17所述的移動(dòng)存儲(chǔ)設(shè)備,其中在用戶操作過程中安全控制器基于用戶密鑰UK和系統(tǒng)密鑰SK來計(jì)算主密鑰MK,并基于主密鑰MK來實(shí)現(xiàn)數(shù)據(jù)的加密/解Γ t [ O
全文摘要
本發(fā)明通過限制USB移動(dòng)存儲(chǔ)設(shè)備被使用于經(jīng)過授權(quán)的電腦,使得它的安全性能不僅僅依賴于使用者的密碼,并且算法不可被逆向工程所破解。同時(shí)本發(fā)明靈活地允許多個(gè)使用者和多個(gè)經(jīng)過授權(quán)的電腦使用USB移動(dòng)存儲(chǔ)設(shè)備。在移動(dòng)存儲(chǔ)設(shè)備中的數(shù)據(jù)由基于一個(gè)保密的主密鑰的加密過程進(jìn)行加密,而主密鑰是通過用戶密鑰和系統(tǒng)密鑰組合生成的。用戶密鑰和系統(tǒng)密鑰分別經(jīng)過基于用戶密碼或者系統(tǒng)簽名的加密過程獲得保密和保護(hù)。在缺少使用者密碼或者系統(tǒng)簽名的情況下,不可能再現(xiàn)出使用者密鑰或者系統(tǒng)密鑰。
文檔編號(hào)G06F12/14GK102270182SQ20111018477
公開日2011年12月7日 申請(qǐng)日期2011年7月4日 優(yōu)先權(quán)日2011年7月4日
發(fā)明者李德俊, 洪小瑩, 袁邁克 申請(qǐng)人:濟(jì)南偉利迅半導(dǎo)體有限公司