專利名稱:用于驗(yàn)證和數(shù)據(jù)加密的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
背景技術(shù):
微軟公司的IEEE1667Password Silo驗(yàn)證協(xié)議要求希望訪問存儲(chǔ)在設(shè)備上的數(shù)據(jù)的主機(jī)和該設(shè)備都向彼此證明其知道正在被驗(yàn)證的密碼。根據(jù)1667協(xié)議,這是通過使每一方為另一方提供隨機(jī)詢問,然后返回結(jié)合了密碼的另一方的詢問的散列。為了使得設(shè)備證實(shí)主機(jī)知道正確的密碼,設(shè)備本身還必須知道和存儲(chǔ)密碼的拷貝。對大多數(shù)未加密產(chǎn)品來說這是合理的條件:由于用戶的數(shù)據(jù)未加密,所以設(shè)備可以將密碼的拷貝存儲(chǔ)在非易失性存儲(chǔ)器中,其中密碼的拷貝只是比用戶的數(shù)據(jù)更安全一點(diǎn)。然而,至少數(shù)據(jù)加密產(chǎn)品的密碼、數(shù)據(jù)加密密鑰(DEK)和已加密數(shù)據(jù)本身必須是安全的。如果設(shè)計(jì)產(chǎn)品使得訪問憑證僅僅與用戶駐存在一起,那么設(shè)備本身必須不含有可用于訪問用戶的數(shù)據(jù)的任何密碼或密鑰。實(shí)際上,竊賊應(yīng)該不能夠分解和分析設(shè)備,并且不能發(fā)現(xiàn)能夠使他或她解密存儲(chǔ)的加密數(shù)據(jù)的必要信息。而且,在主機(jī)和設(shè)備之間監(jiān)聽的闖入者應(yīng)該不能夠捕獲在主機(jī)和設(shè)備之間交換的任何信息,該消息使設(shè)備稍后驗(yàn)證他或她和允許其解密設(shè)備存儲(chǔ)的加密數(shù)據(jù)
發(fā)明內(nèi)容
圖1是根據(jù)一個(gè)實(shí)施例配置的主機(jī)設(shè)備和存儲(chǔ)設(shè)備的框圖。圖2是根據(jù)一個(gè)實(shí)施例的保護(hù)訪問在存儲(chǔ)設(shè)備上存儲(chǔ)的數(shù)據(jù)的密碼的方法的流程圖。圖3是根據(jù)一個(gè)實(shí)施例的驗(yàn)證主機(jī)設(shè)備的方法的流程圖。
具體實(shí)施例方式
`
圖1是根據(jù)一個(gè)實(shí)施例配置的主機(jī)設(shè)備和存儲(chǔ)設(shè)備的框圖。如其中所示的,存儲(chǔ)設(shè)備102可以通過接口 103耦接至一個(gè)或更多個(gè)主機(jī)設(shè)備104。在某些實(shí)施例中,可以存在耦接至存儲(chǔ)設(shè)備102的不只一個(gè)主機(jī)設(shè)備104。主機(jī)設(shè)備104可以是或包括個(gè)人計(jì)算機(jī)、平板電腦或請求訪問存儲(chǔ)在存儲(chǔ)設(shè)備102內(nèi)的加密數(shù)據(jù)的任何設(shè)備,例如,數(shù)字視頻錄像機(jī)(DVR)、DNLA電視或無線設(shè)備。存儲(chǔ)設(shè)備102可以包括非易失性存儲(chǔ)介質(zhì)112,例如,磁盤或多于一個(gè)磁盤、非易失性半導(dǎo)體存儲(chǔ)器(例如閃存驅(qū)動(dòng)器或SSD)、同時(shí)含有磁盤和非易失性半導(dǎo)體存儲(chǔ)器的混合型存儲(chǔ)介質(zhì)或能夠以非易失性方式存儲(chǔ)用戶數(shù)據(jù)的任何其他設(shè)備。存儲(chǔ)設(shè)備102還可以包括易失性存儲(chǔ)器108 (例如,隨機(jī)存取存儲(chǔ)器(RAM))和處理器110。處理器可以是共同執(zhí)行附圖2和3中的方法的硬件、軟件和固件的任何組合。非易失性存儲(chǔ)介質(zhì)112可以存儲(chǔ)至少加密的用戶數(shù)據(jù)114、一個(gè)或更多個(gè)加密的用戶密碼118和第一數(shù)字116,如下文中所描述的。非易失性存儲(chǔ)介質(zhì)112還可以如下文所描述地包括一個(gè)或更多個(gè)DEK0如下文中所描述的,處理器110可工作以執(zhí)行圖2和圖3中所示的方法。圖2是根據(jù)一個(gè)實(shí)施例的保護(hù)用于訪問在存儲(chǔ)設(shè)備上的數(shù)據(jù)存儲(chǔ)的密碼的方法的流程圖。可以可選地執(zhí)行框B201和B292,在此為了完整性同時(shí)包括B201和B202??駼201要求存儲(chǔ)設(shè)備102從主機(jī)設(shè)備104接收驅(qū)動(dòng)安全狀態(tài)檢查。這種狀態(tài)檢查可以確定是否已經(jīng)設(shè)置存儲(chǔ)設(shè)備102的密碼。如果先前已經(jīng)設(shè)置存儲(chǔ)設(shè)備102的密碼(框B202的肯定分支),那么該方法可以進(jìn)行至圖3的框B31。然而,如果還未設(shè)置存儲(chǔ)設(shè)備102的密碼(框B202的否定分支),那么該方法進(jìn)行至圖2的框B21。如圖所示,框B21要求存儲(chǔ)設(shè)備102接收得到對存儲(chǔ)在存儲(chǔ)設(shè)備102上的數(shù)據(jù)的將來訪問所需的第一輸入密碼。該第一輸入密碼可以經(jīng)過如圖1所示的接口 103從主機(jī)設(shè)備104接收。主機(jī)設(shè)備104的用戶可能已經(jīng)輸入該第一輸入密碼,并且該第一輸入密碼可以以明文(即,未加密的)被發(fā)送至存儲(chǔ)設(shè)備?;蛘撸惹耙呀?jīng)將存儲(chǔ)設(shè)備102接收的第一輸入密碼存儲(chǔ)在主機(jī)設(shè)備104上。響應(yīng)存儲(chǔ)設(shè)備102接收第一輸入密碼,存儲(chǔ)設(shè)備102可以生成第一數(shù)字,如框B22中所示。所生成的第一數(shù)字可以包含隨機(jī)數(shù)或偽隨機(jī)數(shù)。然后,如框B23中所示,存儲(chǔ)設(shè)備102可以組合所接收的第一輸入密碼和所生成的第一數(shù)字。如框B24所要求的,然后可以生成基于第一輸入密碼和第一數(shù)字的組合的加密密鑰。如框B25中所示,利用所生成的加密密鑰可以加密所接收的第一輸入密碼(以及,可選地,其他數(shù)據(jù)結(jié)構(gòu))。然后,如框B26所示,至少加密的第一輸入密碼和第一數(shù)字可以存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112中。根據(jù)一個(gè)實(shí)施例,以明文發(fā)送至存儲(chǔ)設(shè)備102的第一輸入密碼(和在框B21由存儲(chǔ)設(shè)備102接收)僅僅是暫時(shí)存儲(chǔ)在易失性存儲(chǔ)器108中,而不存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112中?;诘谝惠斎朊艽a和第一數(shù)字的組合可以生成加密密鑰。根據(jù)一個(gè)實(shí)施例,通過使得第一輸入密碼附加到第一數(shù)字(例如,串接)或通過使第一數(shù)字附加到第一輸入密碼(例如,串接),第一輸入密碼和第一數(shù)字可以組合起來。根據(jù)一個(gè)實(shí)施例,通過散列第一輸入密碼和第一數(shù)字可以組合第一輸入密碼和第一數(shù)字。大多數(shù)任何安全的散列算法可以用于組合第一輸入密碼和第一數(shù)字。例如,SHA-1 (“安全的散列算法I”)加密散列函數(shù)可以用于組合第一輸入密碼和第一數(shù)字。SHA-1由美國國家安全局(NSA)指定,并且由美國NIST公布為美國聯(lián)邦信息處理標(biāo)準(zhǔn)。合適的散列算法的另一個(gè)示實(shí)例是SHA-2,其也是由NSA指定和NIST在2001年公布的一組加密散列函數(shù)(SHA-224、SHA-256、SHA-384、SHA-512)。SHA-2被認(rèn)為包括大量來自其前驅(qū)SHA-1的改變。目前,SHA-2由具有長度是224位、256位、或512位的摘要的一組四個(gè)散列函數(shù)構(gòu)成。如本領(lǐng)域的技術(shù)人員可認(rèn)識到的,其他散列算法可以用于組合第一輸入密碼和第一數(shù)字。根據(jù)一個(gè)實(shí)施例,組合第一輸入密碼和第一數(shù)字可以包括使第一輸入密碼附加到第一數(shù)字(或使第一數(shù)字附加到第一輸入密碼),以及利用SHA-1和SHA-2散列算法散列合成的第一輸入密碼和附加的第一數(shù)字,從而生成密鑰或多于一個(gè)密鑰。于是,生成的密鑰可以用于加密第一輸入密碼(因而生成第一加密的第一輸入密碼)和DEK,DEK用于加密存儲(chǔ)設(shè)備102上的用戶數(shù)據(jù)。第一加密的第一輸入密碼(若干個(gè))和加密的DEK (若干個(gè))可以存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112中。根據(jù)一個(gè)實(shí)施例,可以存在不只一個(gè)第一輸入密碼。例如,存儲(chǔ)設(shè)備102可以支持同時(shí)使用用戶密碼和 管理員密碼。如上所述,存儲(chǔ)設(shè)備102還可以支持使用不只一個(gè)散列算法。例如,存儲(chǔ)設(shè)備102還可以支持同時(shí)使用SHA-1和從SHA-2協(xié)議定義的散列函數(shù)集中選擇的一個(gè)或更多個(gè)散列函數(shù),例如,SHA-256。因此,根據(jù)一個(gè)實(shí)施例,為了同時(shí)支持用戶密碼和管理員密碼與使用SHA-1和SHA-2,可以生成總共四個(gè)單獨(dú)的密鑰。第一個(gè)這種密鑰可以是附加到第一數(shù)字的第一輸入用戶密碼的SHA-1散列或附加到第一用戶輸入密碼的第一數(shù)字的SHA-1散列。第二個(gè)這種密鑰可以是附加到第一數(shù)字的第一輸入管理員密碼的SHA-1散列或附加到第一管理員輸入密碼的第一數(shù)字的SHA-1散列。第三個(gè)這種密鑰可以是附加到第一數(shù)字的第一輸入用戶密碼的SHA-2散列或附加到第一用戶輸入密碼的第一數(shù)字的SHA-2散列。最后,第四個(gè)這種密鑰可以是附加到第一數(shù)字的第一輸入管理員密碼的SHA-2散列或附加到第一管理員輸入密碼的第一數(shù)字的SHA-2散列。然而,理解的是,如本領(lǐng)域的技術(shù)人員可以認(rèn)識到的,大多數(shù)任何字符串運(yùn)算、數(shù)學(xué)運(yùn)算或邏輯運(yùn)算,單個(gè)地或組合地可以代替術(shù)語“附加到”和/或“組合的”。繼續(xù)以上直接形成的實(shí)例,第一密鑰(利用SHA-1生成的)可以用于加密第一輸入用戶密碼和DEK,第二密鑰(也利用SHA-1生成的)可以用于加密第一輸入管理員密碼和DEK,第三密鑰(利用SHA-2生成的)可以用于加密第一輸入用戶密碼和DEK,以及第四密鑰(利用SHA-2生成的)可以用于加密第一輸入管理員密碼和DEK。一旦已經(jīng)執(zhí)行圖2中概述的和以上所述的方法,存儲(chǔ)設(shè)備102就只存儲(chǔ)第一輸入用戶密碼的加密版本(如果使用一個(gè)散列)或多于一個(gè)加密版本(如果使用不只一個(gè)散列)。如果使用管理員密碼,則除了第一輸入用戶密碼的加密版本(多于一個(gè))之外,存儲(chǔ)設(shè)備102還存儲(chǔ)第一輸入管理員密碼的加密版本(如果使用一個(gè)散列)或多于一個(gè)加密版本(如果使用不只一個(gè)散列)。用戶密碼和管理員密碼不以明文存儲(chǔ)在存儲(chǔ)設(shè)備102中。用這種方式,如果非授權(quán)用戶擁有存儲(chǔ)設(shè)備102,這種非授權(quán)用戶不能夠分解和分析驅(qū)動(dòng)器,嘗試恢復(fù)用戶密碼和/或管理員密碼,以訪問存儲(chǔ)在存儲(chǔ)設(shè)備102上的加密用戶數(shù)據(jù)。一旦以加密形式設(shè)置密碼并且將密碼存儲(chǔ)在存儲(chǔ)設(shè)備102上,存儲(chǔ)設(shè)備102準(zhǔn)備驗(yàn)證主機(jī)設(shè)備(以及延伸到主機(jī)設(shè)備的用戶),主機(jī)設(shè)備尋求訪問存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112上的加密用戶數(shù)據(jù)。圖3是根據(jù) 一個(gè)實(shí)施例的驗(yàn)證主機(jī)設(shè)備的方法的流程圖。如圖所示,框B31要求存儲(chǔ)設(shè)備102通過與主機(jī)設(shè)備104的接口 103接收驗(yàn)證請求。主機(jī)設(shè)備104可以已經(jīng)請求并且用戶提供第二輸入密碼,該第二輸入密碼是當(dāng)存儲(chǔ)設(shè)備102請求來自主機(jī)設(shè)備104的驗(yàn)證時(shí)主機(jī)設(shè)備104的用戶輸入的密碼。術(shù)語“第二輸入密碼”是為了區(qū)分在驗(yàn)證會(huì)話期間輸入的密碼與在密碼設(shè)置或重新設(shè)置會(huì)話期間用戶輸入的“第一輸入密碼”。已經(jīng)從主機(jī)設(shè)備104接收驗(yàn)證請求,存儲(chǔ)設(shè)備102可以通過利用第一數(shù)字應(yīng)答主機(jī)設(shè)備104來響應(yīng)請求,如B32所示。根據(jù)一個(gè)實(shí)施例,第一數(shù)字可以包含先前由處理器110生成的或提供給處理器110并且存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112中的隨機(jī)數(shù)??駼33要求存儲(chǔ)設(shè)備102接收第二數(shù)字,所述第二數(shù)字基于在框B32提供給主機(jī)設(shè)備的第一數(shù)字和第二輸入密碼的加密組合。然后,存儲(chǔ)設(shè)備102可以讀取來自其存儲(chǔ)介質(zhì)112的已加密第一輸入密碼(在此還稱為第一已加密第一輸入密碼),并且嘗試?yán)玫诙?shù)字解密第一已加密第一輸入密碼。如果第二數(shù)字成功解密第一已加密第一輸入密碼(在框B34的肯定分支),那么成功地驗(yàn)證主機(jī)設(shè)備104,如框B35中所示。在已經(jīng)驗(yàn)證主機(jī)之后,如果用戶選擇改變密碼,那么可以接收和加密(根據(jù)圖2的框B21-B26)新密碼。如果第二數(shù)字未成功解密第一已加密第一輸入密碼(在框B34的否定分支),那么未驗(yàn)證主機(jī)設(shè)備104,如框B36中所示。如果未驗(yàn)證,那么不允許主機(jī)設(shè)備104訪問存儲(chǔ)在存儲(chǔ)設(shè)備102的非易失性存儲(chǔ)介質(zhì)112上的用戶數(shù)據(jù)。通過許多方式可以確定解密成功或解密失敗。例如,為了確定第一已加密第一輸入密碼的解密是否成功,已經(jīng)加密先前已知的數(shù)字(例如,其值可以在固件中設(shè)置的預(yù)定32位數(shù)字)和第一輸入密碼,并且將其存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112上。然后,一旦解密先前加密的數(shù)字和第一已加密第一輸入密碼,就可以確定已解密數(shù)字是否匹配固件中設(shè)置的值。如果是,那么認(rèn)為已經(jīng)成功進(jìn)行第一已加密第一輸入密碼的解密。如果已解密數(shù)字不匹配固件中設(shè)置的值,那么可以認(rèn)為未成功進(jìn)行第一已加密第一輸入密碼的解密。或者,可以確定第一輸入密碼的循環(huán)冗余校驗(yàn)碼(CRC)。然后,可以連同第一輸入密碼加密CRC,并且將其存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112上。一旦解密第一已加密第一輸入密碼,還可以解密CRC,并且該CRC與剛剛解密的第一已加密第一輸入密碼的CRC相比較。如果剛剛解密的第一已加密第一輸入密碼的CRC匹配解密的CRC,那么可以認(rèn)為已經(jīng)成功進(jìn)行第一已加密第一輸入密碼的解密。如果剛剛解密的第一已加密第一輸入密碼的CRC未匹配解密的CRC,那么可以認(rèn)為還未成功進(jìn)行第一已加密第一輸入密碼的解密。本領(lǐng)域的技術(shù)人員將認(rèn)識到,確定第一已加密第一輸入密碼的解密成功或失敗的其他方法是可能的。一旦成功進(jìn)行驗(yàn)證,那么存儲(chǔ)設(shè)備102的處理器110可以引起生成第一消息,并且將第一消息提供給主機(jī) 設(shè)備104,第一消息表明存儲(chǔ)設(shè)備102已經(jīng)成功地驗(yàn)證主機(jī)設(shè)備104。一旦未成功進(jìn)行驗(yàn)證嘗試,存儲(chǔ)設(shè)備102的處理器110就可以引起生成第二消息,并且將第二消息提供給主機(jī)設(shè)備104,第二消息表明存儲(chǔ)設(shè)備102還未成功驗(yàn)證主機(jī)設(shè)備104。在該情況下,存儲(chǔ)設(shè)備102將拒絕主機(jī)設(shè)備104訪問存儲(chǔ)在其上的已加密用戶數(shù)據(jù)114。根據(jù)一個(gè)實(shí)施例,基于第一輸入密碼和第一數(shù)字的組合生成的密鑰不僅用于加密第一輸入密碼還用于加密DEK。如果驗(yàn)證成功并且主機(jī)被驗(yàn)證,如B35中所示,那么不僅可以解密第一輸入密碼,而且可以成功解密DEK。DEK的成功解密是使得能夠解密加密的用戶數(shù)據(jù)114和由主機(jī)設(shè)備104以明文訪問加密的用戶數(shù)據(jù)114。然而,如果如B36中所示驗(yàn)證失敗,那么既不能成功解密第一輸入密碼,也不能成功解密DEK。如果未解密,那么DEK不可用于解密存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112上的DEK加密的用戶數(shù)據(jù)。進(jìn)而,這使得主機(jī)設(shè)備不能以明文訪問任何加密的用戶數(shù)據(jù)114。在框B35成功驗(yàn)證主機(jī)設(shè)備104之后,存儲(chǔ)設(shè)備可以生成第三數(shù)字,該第三數(shù)字替換第一數(shù)字,并且存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112中。根據(jù)一個(gè)實(shí)施例,該第三數(shù)字代替第一數(shù)字116,并且可以被認(rèn)為是“新的”第一數(shù)字。已經(jīng)執(zhí)行前述的代替,然后該方法可以恢復(fù)到圖2的框B23,以準(zhǔn)備下一個(gè)驗(yàn)證請求,如圖2和圖3中的“A”所示。在框B23中,存儲(chǔ)設(shè)備102可以組合第一輸入密碼(來自剛剛成功驗(yàn)證的解密的第一已加密第一輸入密碼)和第一數(shù)字(來自剛剛成功驗(yàn)證的第三數(shù)字),并且基于結(jié)果組合生成密鑰,如框B24中所示。此后,利用生成的密鑰可以加密第一輸入密碼(來自剛剛成功驗(yàn)證的解密的第一已加密第一輸入密碼),如B25中所示,從而生成第二已加密第一輸入密碼。還可以利用生成的密鑰加密DEK。因此,重新加密的第一輸入密碼(第二已加密第一輸入密碼)、第三數(shù)字和加密的DEK可以存儲(chǔ)在存儲(chǔ)設(shè)備102的非易失性存儲(chǔ)介質(zhì)112中,如B26中所示。此后,當(dāng)主機(jī)設(shè)備104下一次請求驗(yàn)證時(shí),將利用在框B37生成的第三數(shù)字執(zhí)行重新加密的第一輸入密碼和DEK的解密,其中第三數(shù)字實(shí)際上是用于加密第一輸入密碼和DEK的“新的”第一數(shù)字。事實(shí)上,下一次存儲(chǔ)設(shè)備接收來自主機(jī)設(shè)備104的驗(yàn)證請求時(shí),存儲(chǔ)設(shè)備為主機(jī)設(shè)備104提供最近生成的第三數(shù)字,該第三數(shù)字代替第一數(shù)字。利用第三數(shù)字(“新的”第一數(shù)字),主機(jī)設(shè)備104生成與準(zhǔn)備先前的驗(yàn)證嘗試時(shí)生成的密鑰不同的新密鑰。因此,第三數(shù)字(“新的”第一數(shù)字)可以存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)112中。生成新密鑰和隨后利用新密鑰加密第一輸入密碼與DEK確保觀察主機(jī)設(shè)備104和存儲(chǔ)設(shè)備(例如利用信號分析器)之間的流量的闖入者不能夠攔截能夠使他或她生成用于解密已加密的第一輸入密碼和DEK的第二數(shù)字的任何信息,即使這種闖入者成功地?cái)r截和解釋在驗(yàn)證會(huì)話期間交換的所有信號。這是因?yàn)樵诔晒M(jìn)行驗(yàn)證之后,就可以立即完全在存儲(chǔ)設(shè)備102內(nèi)部執(zhí)行框B23到框B26。因此,這種闖入者不知道“新的”第一數(shù)字(在圖3中的框B37生成的第三數(shù)字),密鑰根據(jù)“新的”第一數(shù)字生成,并且一旦存儲(chǔ)設(shè)備接收下一個(gè)隨后的驗(yàn)證請求,密鑰就被傳輸至主機(jī)設(shè)備104。根據(jù)一個(gè)實(shí)施例,為了支持存儲(chǔ)設(shè)備支持多個(gè)第一輸入密碼和多個(gè)散列算法從而加密多個(gè)第一輸入密碼和DEK的情況,當(dāng)存儲(chǔ)設(shè)備102在圖3中的框B31接收驗(yàn)證請求時(shí),存儲(chǔ)設(shè)備還可以同時(shí)接收來自主機(jī)設(shè)備104的密碼指示符(例如,對于第一輸入管理員密碼是0x00,對于第一輸入用戶密碼是0x01)和散列算法指示符(對于SHA-1散列算法是0x00,對于SHA-256散列算法是0x01)。從主機(jī)設(shè)備104接收密碼指示符和散列算法指示符允許存儲(chǔ)設(shè)備102確定在框B34利用主機(jī)設(shè)備在框B33中提供的第二數(shù)字嘗試解密哪組加密的第一輸入密碼和DEK。盡管已經(jīng)描述了本發(fā)明的某些實(shí)施例,但是這些實(shí)施例僅僅以實(shí)例方式呈現(xiàn),而非意欲限制本發(fā)明的范圍。實(shí)際上,可以通過多種其他形式體現(xiàn)本文中描述的新穎方法、設(shè)備和系統(tǒng)。而且,在不偏離本發(fā)明的精神的情況下,可以對本文中描述的方法和系統(tǒng)的形式做出不同的省略、替換和改變。伴隨的權(quán)利要求和其等價(jià)物意欲涵蓋在本發(fā)明的范圍和精神內(nèi)的這種形式或改進(jìn)。例如,本領(lǐng)域的技術(shù)人員將理解,在不同的實(shí)施例中,實(shí)際結(jié)構(gòu)可不同于附圖中所示的結(jié)構(gòu)。取決于實(shí)施例,可以移除以上實(shí)例中描述的某些步驟,可以增加其他步驟。而且,以上公開的 具體實(shí)施例的特征和屬性可以通過不同方式組合起來,從而形成額外的實(shí)施例,所有實(shí)施例都在本公開的范圍內(nèi)。例如,存儲(chǔ)設(shè)備102可以支持任何數(shù)量的第一輸入密碼和散列算法。盡管本公開提供了某些優(yōu)選的實(shí)施例和應(yīng)用,但是其他實(shí)施例對于本領(lǐng)域的普通技術(shù)人員是顯而易見的,包括不提供本文中闡述的所有特征和優(yōu)勢的實(shí)施例,也在本公開的范圍內(nèi)。因此,本公開的范圍僅僅通過所附的權(quán)利要求限定。
權(quán)利要求
1.一種配置為使密碼安全和驗(yàn)證主機(jī)設(shè)備的存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備包含: 非易失性存儲(chǔ)介質(zhì); 耦接至至少一個(gè)主機(jī)設(shè)備的接口,和 處理器,所述處理器可工作用以通過與所述至少一個(gè)主機(jī)設(shè)備的接口接收訪問存儲(chǔ)在所述非易失性存儲(chǔ)介質(zhì)中的數(shù)據(jù)所需的第一輸入密碼、生成第一數(shù)字、組合所述第一輸入密碼和所述第一數(shù)字、基于所述第一輸入密碼和所述第一數(shù)字的組合生成密鑰、利用所述密鑰加密接收的第一輸入密碼以及將已加密的第一輸入密碼和第一數(shù)字存儲(chǔ)在所述非易失性介質(zhì)中。
2.根據(jù)權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于生成作為所述第一數(shù)字的隨機(jī)數(shù)。
3.根據(jù)權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于加密要存儲(chǔ)在所述非易失性存儲(chǔ)介質(zhì)上的用戶數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的存儲(chǔ)設(shè)備,所述處理器進(jìn)一步可工作用于通過使所述第一輸入密碼附加到所述第一數(shù)字和使所述第一數(shù)字附加到所述第一輸入密碼中的一個(gè)組合所述第一輸入密碼和所述第 一數(shù)字。
5.根據(jù)權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于通過散列所述第一輸入密碼和所述第一數(shù)字組合所述第一輸入密碼和所述第一數(shù)字。
6.根據(jù)權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于: 通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口接收驗(yàn)證請求; 通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口提供包含所述第一數(shù)字的應(yīng)答; 通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口接收基于所述第一數(shù)字和第二輸入密碼的加密組合計(jì)算的第二數(shù)字,以及 如果所述第二數(shù)字成功地解密所述已加密的第一輸入密碼,那么驗(yàn)證所述至少一個(gè)主機(jī)設(shè)備。
7.根據(jù)權(quán)利要求6所述的存儲(chǔ)設(shè)備,進(jìn)一步包含如果所述第二數(shù)字未成功地解密所述已加密的第一輸入密碼,那么不驗(yàn)證第一主機(jī)設(shè)備。
8.根據(jù)權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于利用所述密鑰對數(shù)據(jù)加密密鑰即DEK進(jìn)行加密,所述DEK用于加密所述存儲(chǔ)設(shè)備上的用戶數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于利用所述第二數(shù)字解密加密的DEK。
10.根據(jù)權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中所述非易失性存儲(chǔ)介質(zhì)包含磁盤,并且所述存儲(chǔ)設(shè)備進(jìn)一步包含用于將數(shù)據(jù)寫入所述磁盤和從所述磁盤讀取數(shù)據(jù)的磁頭。
11.根據(jù)權(quán)利要求1所述的存儲(chǔ)設(shè)備,其中所述非易失性存儲(chǔ)介質(zhì)包含非易失性半導(dǎo)體存儲(chǔ)器。
12.一種配置為驗(yàn)證主機(jī)設(shè)備的存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備包含: 非易失性存儲(chǔ)介質(zhì); 耦接至所述至少一個(gè)主機(jī)設(shè)備的接口,和 處理器,所述處理器可工作用于通過與所述至少一個(gè)主機(jī)設(shè)備的接口接收驗(yàn)證請求;從所述非易失性存儲(chǔ)介質(zhì)讀取第一數(shù)字;通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口提供包含所述第一數(shù)字的應(yīng)答;通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口接收基于所述第一數(shù)字和第二輸入密碼的加密組合計(jì)算的第二數(shù)字;從所述存儲(chǔ)設(shè)備讀取已經(jīng)利用第一輸入密碼和所述第一數(shù)字的加密組合加密的第一已加密的第一輸入密碼;以及如果所述第二數(shù)字成功地解密第一已加密的第一輸入密碼就驗(yàn)證所述至少一個(gè)主機(jī)。
13.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于如果所述第二數(shù)字未成功地解密所述第一已加密的第一輸入密碼,那么不驗(yàn)證所述至少一個(gè)主機(jī)設(shè)備。
14.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于: 生成第三數(shù)字,并且當(dāng)所述至少一個(gè)主機(jī)設(shè)備被成功地驗(yàn)證時(shí),利用所述存儲(chǔ)設(shè)備中的所述第三數(shù)字替換所述第一數(shù)字; 基于所述第一輸入密碼和所述第三數(shù)字的加密組合生成第二已加密的第一輸入密碼,以及 將所述第二已加密的第一輸入密碼存儲(chǔ)在所述非易失性存儲(chǔ)介質(zhì)中。
15.根據(jù)權(quán)利要求14所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于生成隨機(jī)數(shù)作為所述第三數(shù)字。
16.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述第二數(shù)字包含由所述至少一個(gè)主機(jī)設(shè)備計(jì)算的所述第一數(shù)字和所述第二輸入密碼的散列。
17.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述處理器進(jìn)一步可工作用于通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口提供表明所述存儲(chǔ)設(shè)備已經(jīng)驗(yàn)證所述至少一個(gè)主機(jī)設(shè)備的消息?!?br>
18.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述非易失性存儲(chǔ)介質(zhì)包含磁盤,并且所述存儲(chǔ)設(shè)備進(jìn)一步包含用于將數(shù)據(jù)寫入所述磁盤和從所述磁盤讀取數(shù)據(jù)的磁頭。
19.根據(jù)權(quán)利要求12所述的存儲(chǔ)設(shè)備,其中所述非易失性存儲(chǔ)介質(zhì)包含非易失性半導(dǎo)體存儲(chǔ)器。
20.一種用于存儲(chǔ)設(shè)備保護(hù)密碼和驗(yàn)證主機(jī)設(shè)備的方法,所述方法包含: 通過與至少一個(gè)主機(jī)設(shè)備的接口接收訪問存儲(chǔ)在所述存儲(chǔ)設(shè)備上的數(shù)據(jù)所需的第一輸入密碼; 生成第一數(shù)字; 組合所述第一輸入密碼和所述第一數(shù)字; 基于所述第一輸入密碼和所述第一數(shù)字的組合確定密鑰; 利用所述密鑰加密至少所述第一輸入密碼;以及 將加密的第一輸入密碼和所述第一數(shù)字存儲(chǔ)在所述存儲(chǔ)設(shè)備中。
21.根據(jù)權(quán)利要求20所述的方法,其中生成第一數(shù)字包含生成隨機(jī)數(shù)。
22.根據(jù)權(quán)利要求20所述的存儲(chǔ)設(shè)備,其中組合所述第一輸入密碼和所述第一數(shù)字包含使所述第一輸入密碼附加到所述第一數(shù)字和使所述第一數(shù)字附加到所述第一輸入密碼中的一個(gè)。
23.根據(jù)權(quán)利要求20所述的方法,其中組合所述第一輸入密碼和所述第一數(shù)字包含將所述第一輸入密碼和所述第一數(shù)字進(jìn)行散列運(yùn)算。
24.根據(jù)權(quán)利要求20所述的方法,進(jìn)一步包含利用所述密鑰加密數(shù)據(jù)加密密鑰,所述數(shù)據(jù)加密密鑰用于加密存儲(chǔ)在所述存儲(chǔ)設(shè)備上的數(shù)據(jù)。
25.根據(jù)權(quán)利要求20所述的方法,其中存儲(chǔ)加密的第一輸入密碼包含將所述加密的第一輸入密碼存儲(chǔ)在所述存儲(chǔ)設(shè)備中的非易失性介質(zhì)中。
26.根據(jù)權(quán)利要求20所述的方法,進(jìn)一步包含將所述第一數(shù)字存儲(chǔ)在所述存儲(chǔ)設(shè)備的非易失性介質(zhì)中。
27.根據(jù)權(quán)利要求20所述的方法,進(jìn)一步包含: 通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口接收驗(yàn)證請求; 從所述存儲(chǔ)設(shè)備讀取第一數(shù)字; 通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口提供包含所述第一數(shù)字的應(yīng)答; 通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口接收基于所述第一數(shù)字和第二輸入密碼的加密組合計(jì)算的第二數(shù)字,以及 從所述存儲(chǔ)設(shè)備讀取所述加密的第一輸入密碼;以及 如果所述第二數(shù)字成功地解密所述加密的第一輸入密碼,那么驗(yàn)證所述至少一個(gè)主機(jī)設(shè)備。
28.一種用于存儲(chǔ)設(shè)備驗(yàn)證主機(jī)設(shè)備的方法,所述方法包含: 通過與所述至少一個(gè)主機(jī)設(shè)備的接口接收驗(yàn)證請求; 從所述存儲(chǔ)設(shè)備讀取第一數(shù)字; 通過與所 述至少一個(gè)主機(jī)設(shè)備的所述接口提供包含所述第一數(shù)字的應(yīng)答; 通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口接收基于所述第一數(shù)字和第二輸入密碼的加密組合計(jì)算的第二數(shù)字; 從所述存儲(chǔ)設(shè)備讀取基于第一輸入密碼和第一數(shù)字的加密組合的第一已加密的第一輸入密碼;以及 如果所述第二數(shù)字成功地解密所述第一已加密的第一輸入密碼,那么驗(yàn)證所述至少一個(gè)主機(jī)設(shè)備。
29.根據(jù)權(quán)利要求28所述的方法,進(jìn)一步包含如果所述第二數(shù)字未成功地解密所述第一已加密的第一輸入密碼,那么不驗(yàn)證所述至少一個(gè)主機(jī)設(shè)備。
30.根據(jù)權(quán)利要求28所述的方法,進(jìn)一步包含: 生成第三數(shù)字,并且當(dāng)所述至少一個(gè)主機(jī)設(shè)備被成功地驗(yàn)證時(shí),利用所述存儲(chǔ)設(shè)備中的所述第三數(shù)字替換所述第一數(shù)字,和 基于所述第一輸入密碼和所述第三數(shù)字的加密組合生成第二已加密的第一輸入密碼;以及 將所述第二已加密的第一輸入密碼存儲(chǔ)在所述存儲(chǔ)設(shè)備中。
31.根據(jù)權(quán)利要求30所述的方法,其中生成所述第三數(shù)字包含生成隨機(jī)數(shù)。
32.根據(jù)權(quán)利要求28所述的方法,其中接收所述第二數(shù)字包含接收由所述至少一個(gè)主機(jī)設(shè)備計(jì)算的所述第一數(shù)字和所述第二輸入密碼的散列。
33.根據(jù)權(quán)利要求28所述的方法,進(jìn)一步包含通過與所述至少一個(gè)主機(jī)設(shè)備的所述接口提供表明所述存儲(chǔ)設(shè)備已經(jīng)驗(yàn)證所述至少一個(gè)主機(jī)設(shè)備的消息。
全文摘要
本發(fā)明公開了用于驗(yàn)證和數(shù)據(jù)加密的方法和設(shè)備。一種包含非易失性存儲(chǔ)介質(zhì)和處理器的存儲(chǔ)設(shè)備,所述處理器可工作用以通過與一個(gè)或更多個(gè)主機(jī)設(shè)備的接口接收訪問存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)中的數(shù)據(jù)所需的第一輸入密碼,生成第一數(shù)字,組合所述第一輸入密碼和所述第一數(shù)字,基于所述第一輸入密碼和所述第一數(shù)字的組合生成密鑰,利用所述密鑰加密接收的第一輸入密碼,以及將加密的第一輸入密碼和第一數(shù)字存儲(chǔ)在所述非易失性介質(zhì)中。處理器進(jìn)一步可工作用以接收驗(yàn)證請求;提供包含第一數(shù)字的應(yīng)答;接收基于第一數(shù)字和第二輸入密碼的加密組合計(jì)算的第二數(shù)字,并且如果第二數(shù)字成功地解密所加密的第一輸入密碼,那么驗(yàn)證所述主機(jī)設(shè)備。
文檔編號G06F21/62GK103246842SQ20131004949
公開日2013年8月14日 申請日期2013年2月7日 優(yōu)先權(quán)日2012年2月14日
發(fā)明者J·S·林 申請人:西部數(shù)據(jù)技術(shù)公司