專利名稱::用于銀行柜面敏感數據保護的硬件密碼模塊及方法
技術領域:
:本發明涉及一種用于銀行柜面敏感數據保護的硬件密碼模塊及方法,特別是涉及一種利用硬加密技術對銀行柜面敏感數據進行保護的硬件密碼模塊及方法。
背景技術:
:銀行柜面是銀行業務處理的主要渠道,大量的客戶信息和交易信息敏感數據通過柜面在銀行網絡中傳輸。如果沒有適當的安全措施,這些信息在傳輸存儲時就容易被竊取,在傳輸過程中容易被截獲,從而造成信息泄露產生安全隱患。另外,信息在存儲和傳輸期間還可能被非法刪除、更改或添加,從而導致對銀行資源及網絡服務的非法干預,對銀行和用戶造成不可挽回的損失。總的來說,銀行柜面系統對安全性的需求至少有①保證交易信息的機密性。有的交易信息需要保密,這就需要對交易報文進行加密。②保證交易信息的完整性。交易報文有的數據對私密性的要求不高,但對數據完整性要求很高,如取現業務中賬號、金額等,存在著被非法篡改的可能性。這些重要交易報文數據在傳輸過程中,必須進行完整性校驗。③保證交易行為的不可抵賴性。以往銀行柜面安全措施大部分僅僅是保密,很少采用數字簽名,這并不符合現代金融系統的安全需求。構筑銀行柜面敏感數據安全保護體系是金融企業健康發展的有力保障,也是各金融企業急需解決的問題。傳統的銀行柜面安全機制側重于柜員的身份認證,在對客戶信息和交易數據等敏感數據保護上是缺失和不完善的。目前,銀行對柜面敏感數據的保護一般采用軟加密技術,對交易數據進行加密和MAC校驗。這種方式雖然可以基本達到保證數據的機密性和完整性,但仍然存在以下不可忽視的缺陷一是,軟加密的方式暴漏在用戶計算機內部,容易給攻擊者采用分析程序進行跟蹤、反編譯等手段進行攻擊;二是,軟加密的工作密鑰存儲沒有安全保護,容易遭到竊取,使加密系統形同虛設;三是,密鑰管理很復雜,實際使用過程中長期不會進行密鑰更換;四是,軟加密的加密強度并不高,容易遭到破解。五是,缺少數字簽名方式,交易不可抵賴性無從保證;六是,軟加密方式運行效率較低,可靠性也容易受到外界因素的影響。
發明內容為解決現有技術中存在的上述問題,設計了本發明。本發明的目的在于克服上述缺陷而提供的一種基于硬件加密的敏感數據保護方法。本發明的另一目的是在銀行柜面系統增加對交易信息的數字簽名手段,保證交易的不可抵賴性。為實現上述目的,本發明提供一種用于銀行柜面敏感數據保護的硬件密碼模塊,所述硬件密碼模塊采用三層密鑰管理體系,其中第一層為標識密鑰,第二層為TMK密鑰,第三層包括TAK密鑰、TEK密鑰及TDK密鑰,并且,所述標識密鑰是一個非對稱密鑰,其用于加密TMK密鑰、產生簽名、驗證簽名,所述標識密鑰永久保存,不需要更換;TMK密鑰是一個加密以及解密密鑰用的密鑰,用于密鑰協商過程中對工作密鑰進行加密以及解密;TAK密鑰是一個數據加密用的密鑰,所述TAK密鑰對消息數據生成和校驗一個信息認證代碼,從進行信息認證,TEK密鑰是一個數據加密用的密鑰,用于加密柜面敏感數據,實現交易報文的安全傳輸,TDK密鑰用于對加密的數據進行解密。優選的,所述硬件密碼模塊還包括處理器;用于完成由硬件啟動到操作系統啟動的過渡,從而為操作系統提供運行環境的引導區;用于存放操作系統內核數據、文件系統數據、用戶代碼和用戶數據的存貯器;用于連接臺式機終端USB接口的通信接口;實現密碼算法、局部總線接口、URAT和時序控制功能的算法芯片;產生隨機數并由處理器端口進行采集的真隨機數發生器。優選的,所述硬件密碼模塊包括用于存儲銀行柜面敏感數據的安全存儲區,所述安全存儲區包括靜態存儲區及臨時存儲區。優選的,所述引導區完成的功能包括初始化CPU、存儲器;激活指令/數據Cache;建立堆棧指針和啟動參數區;上電自檢;最后跳轉到內核起始處。優選的,所述硬件密碼模塊保存的所有密鑰都不以明文的方式讀出,只能夠得到其校驗值,整個密碼運算過程封裝在硬件密碼模塊內部完成,上層應用不能得到運算過程中的密鑰。優選的,硬件密碼模塊具有密鑰銷毀功能。優選的,在硬件密碼模塊進行密鑰銷毀時,硬件密碼模塊自身具有的密鑰清除命令清除指定的密鑰而不會對其它密鑰造成影響。優選的,硬件密碼模塊設置有密鑰自毀電路,在機倉被打開時會自動銷毀硬件密碼模塊內的所有密鑰,從而保證硬件密碼模塊在遭受外界物理攻擊時密鑰的安全。另外,本發明提供一種用于銀行柜面敏感數據保護的方法,所述方法使用適用于銀行柜員終端的硬件密碼模塊對所述銀行柜面敏感數據進行保護,其中,所述硬件密碼模塊包括用于存儲銀行柜面敏感數據的安全存儲區,所述安全存儲區包括靜態存儲區及臨時存儲區,所述方法包括,步驟1在硬件密碼模塊投入使用前,首先進行初始化,該步驟1包括1.1)由后臺管理系統給硬件密碼模塊分配唯一標識GUID,1.2)由后臺標識認證中心根據硬件密碼模塊標識GUID產生該硬件密碼模塊標識密鑰,所述標識密鑰包括標識公鑰及標識私鑰,1.3)后臺管理系統將硬件密碼模塊標識GUID和標識私鑰下發給硬件密碼模塊,將標識公鑰存儲在后臺數據庫中;步驟2硬件密碼模塊注冊,該步驟2包括2.1)與后臺密鑰管理中心約定主密鑰TMK,2.2)密鑰管理中心隨機生成TMK,并用該硬件密碼模塊標識公鑰加密,下發到柜員終端,2.3)硬件密碼模塊用標識私鑰解密TMK,并將TMK保存在硬件密碼模塊靜態存儲區;步驟3硬件密碼模塊簽到,該步驟3包括3.1)與后臺密鑰管理中心約定工作密鑰,所述工作密鑰包括ΤΑΚ、TEK以及TDK,3.2)密鑰中心隨機生成所述工作密鑰,并用TMK密鑰加密,下發到柜員終端,3.3)硬件密碼模塊用TMK解密工作密鑰,并保存在硬件密碼模塊臨時存儲區。本發明的有益效果是采用一個物理安全的實體,作為柜員終端的外圍設備使用,承擔柜員終端安全模塊的作用,能夠實時地為柜面提供消息驗證、數據加密、簽名的產生和驗證的密碼服務,保證數據從產生、傳輸、接收整個過程的機密性、完整性和不可抵賴性。這種機制對柜面系統完全是一種黑盒處理方式,從而屏蔽了外界系統的干擾。采用專用的密鑰存儲區和安全保護機制,避免了密鑰泄露的風險。采用安全機動的密鑰管理手段,可以達到專鑰專用、秘密換鑰的目的。可以實現柜面工作密鑰機動安全有效的統一管理。圖1是根據本發明的硬件密碼模塊硬件組成示意2是根據本發明的硬件密碼模塊軟件組成示意3是根據本發明的密鑰管理體系結構示意圖具體實施例方式為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。硬件密碼模塊的硬件框圖如附圖1所示。硬件密碼模塊采用單板設計,所有電路集成在一塊ARM9260嵌入式主板上。嵌入式主板上集成的電路和主要器件如下①處理器ARM9微控制器②引導區2MBNORFLASH主要用來存放U-Boot代碼③內存64MBSDRAM數據總線寬度為32bit,工作時鐘為IOOMHz④存貯器64MBNANDFLASH用于存放操作系統內核、文件系統、用戶代碼和用戶數據⑤安全存儲區用于存儲密鑰、口令等敏感數據⑥通信接口USB2.0接口,用于連接臺式終端USB⑦算法芯片采用FPGA實現密碼算法、局部總線接口、URAT和時序控制功能⑧真隨機數發生器用WNG-5實現,其時鐘由18.432MHz時鐘分頻得到,隨機數由處理器端口進行采集⑨電源采用+3.3V和+1.8V直流電源,這兩種電源都來自主機+5V電源,其中由+3.3V電源派生出+1.8V電源。+5V電源的功耗控制在5W之內,即5V電源提供的電流最大只需IA⑩時鐘工作主頻為200MHz硬件密碼模塊的軟件主要由系統引導程序U-Boot、嵌入式Linux內核、Linux根文件系統、設備驅動程序和應用服務程序等組成,如附圖2所示。硬件密碼模塊的U-Boot引導程序采用的是U-Boot,它是系統復位后進入操作系統之前執行的一段代碼,主要用于完成由硬件啟動到操作系統啟動的過渡,從而為操作系統提供基本的運行環境。具體來說,U-Boot完成的主要功能有初始化CPU、存儲器;激活指令/數據Cache;建立堆棧指針和啟動參數區;上電自檢;最后跳轉到內核起始處。硬件密碼模塊采用的是嵌入式Linux操作系統,該操作系統由LinuX2.6內核、Linux根文件系統和設備驅動程序組成。其中內核主要負責進程調度、內存管理、虛擬文件系統、網絡接口和進程間通信;根文件系統主要包括系統目錄、系統命令、鏈接庫、設備條目以及系統初始化腳本等;設備驅動程序是應用程序訪問底層硬件設備的軟件接口,幫助應用程序方便地使用底層硬件設備。在使用Linux源碼時,必須遵循最小功能集原則,對于不需要的功能和組件,一律排除在外。這樣做,一方面可以精簡操作系統,達到提高運行效率,減少占用存儲空間的目的;另一方面,可以減少操作系統可能存在的漏洞,防止利用操作系統漏洞發起的攻擊。應用服務程序是硬件密碼模塊內部的一個可執行程序,是硬件密碼模塊向外部主機提供密碼服務功能的接口。硬件密碼模塊采用三層密鑰管理體系,如附圖3所示。標識密鑰是一個非對稱密鑰,其用途主要是加密TMK密鑰、產生簽名、驗證簽名。標識密鑰在模塊初始化時寫入并存儲在硬件密碼模塊內部。標識密鑰可永久保存,不需要更換。TMK(TerminalMasterKey)密鑰是一個加密、解密密鑰用的密鑰,用于密鑰協商過程中對工作密鑰進行加密、解密。TMK通過標識密鑰加密存儲到硬件密碼模塊中。TMK可長期保存,不需要經常更換,通常兩年更換一次。TAK(TerminalAuthenticationKey)密鑰是一個數據加密用的密鑰,主要對消息數據生成和校驗一個信息認證代碼(MessageAuthenticationCode),從而達到信息認證的目的。TAK由TMK加密后存儲到硬件密碼模塊臨時存儲區。TAK需要經常性地更換,通常每天更換一次。TEK(TerminalEncryptKey)密鑰是一個數據加密用的密鑰,用于加密柜面敏感數據,實現交易報文的安全傳輸。TEK由TMK加密后存儲到硬件密碼模塊臨時存儲區。TEK需要經常性地更換,通常每天更換一次。TDK(TerminaDecryptKey)密鑰用于對數據進行解密。TDK由TMK加密后存儲到硬件密碼模塊臨時存儲區。TDK需要經常性地更換,通常每天更換一次。硬件密碼模塊保存的密鑰都不能夠以明文的方式讀出,只能夠得到其校驗值。整個密碼運算過程封裝在硬件密碼模塊內部完成,上層應用不能得到運算過程中的密鑰。硬件密碼模塊內的存儲區分為兩部分一部分是靜態存儲區,可以長期存儲數據,即使設備掉電,也可以保證存儲內容不丟失;另一部分是臨時存儲區,可以保存密鑰,但設備掉電或者復位時,密鑰被自動清除。靜態存儲區用于存儲需要長期保存的內容,具體來說有<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>臨時存儲區用于保存不需要長期保存的密鑰,主要是工作密鑰。硬件密碼模塊復位時,工作密鑰被自動清除。硬件密碼模塊內部可以存放30組對稱工作密鑰,每一組工作密鑰包含一個ΤΑΚ、一個TEK和一個TDK。每組工作密鑰對應一個索引號,索引號范圍為000-029。<table>tableseeoriginaldocumentpage8</column></row><table>為了保證密鑰在特殊情況下的安全性,硬件密碼模塊設計提供密鑰銷毀功能。硬件密碼模塊具有兩種密鑰銷毀方式一是軟件方式銷毀密鑰。硬件密碼模塊具有密鑰清除命令,借助該命令可以用軟件方式清除指定的密鑰而不會對其它密鑰造成影響;二是,硬件密碼模塊硬件密碼模塊設置有密鑰自毀電路,在機倉被打開時會自動銷毀硬件密碼模塊內的所有密鑰,從而保證硬件密碼模塊在遭受外界物理攻擊時密鑰的安全。硬件密碼模塊的應用流程包括以下幾個步驟——步驟1硬件密碼模塊初始化。硬件密碼模塊在投入使用前,首先進行初始化,主要完成以下工作①由后臺管理系統給硬件密碼模塊分配唯一標識GUID②由后臺標識認證中心根據硬件密碼模塊標識GUID產生該硬件密碼模塊標識公、私鑰。③后臺管理系統將硬件密碼模塊標識GUID和標識私鑰下發給硬件密碼模塊;將標識公鑰存儲在后臺數據庫中。步驟2硬件密碼模塊注冊。該步驟緊隨初始化過程進行,也必須在硬件密碼模塊通入使用前先行完成。注冊主要完成以下工作①與后臺密鑰管理中心約定主密鑰TMK。②密鑰管理中心隨機生成TMK,并用該硬件密碼模塊標識公鑰加密,下發到柜員終端。③硬件密碼模塊用標識私鑰解密TMKJfTMK保存在硬件密碼模塊靜態存儲區。步驟3硬件密碼模塊簽到。在硬件密碼模塊投入生產運行時,柜員終端每次重新加電啟動,或者工作一定時間后(通常為一個工作日),硬件密碼模塊需要先進行簽到,才能正常開始工作。簽到主要完成以下工作①與后臺密鑰管理中心約定工作密鑰(TAK、TEK、TDK)②密鑰中心隨機生成工作密鑰,并用TMK密鑰加密,下發到柜員終端③硬件密碼模塊用TMK解密工作密鑰,并保存在硬件密碼模塊臨時存儲區。硬件密碼模塊初始化和注冊過程是通過一套TOB管理平臺完成標識密鑰和TMK密鑰的約定。硬件密碼模塊簽到是通過柜員終端一個代理程序完成工作密鑰的約定。權利要求一種用于銀行柜面敏感數據保護的硬件密碼模塊,其特征在于所述硬件密碼模塊采用三層密鑰管理體系,其中第一層為標識密鑰,第二層為TMK密鑰,第三層包括TAK密鑰、TEK密鑰及TDK密鑰,并且,所述標識密鑰是一個非對稱密鑰,其用于加密TMK密鑰、產生簽名、驗證簽名,所述標識密鑰永久保存,不需要更換;TMK密鑰是一個加密以及解密密鑰用的密鑰,用于密鑰協商過程中對工作密鑰進行加密以及解密;TAK密鑰是一個數據加密用的密鑰,所述TAK密鑰對消息數據生成和校驗一個信息認證代碼,從進行信息認證,TEK密鑰是一個數據加密用的密鑰,用于加密柜面敏感數據,實現交易報文的安全傳輸,TDK密鑰用于對加密的數據進行解密。2.如權利要求1所述的硬件密碼模塊,其特征在于所述硬件密碼模塊還包括,處理器;用于完成由硬件啟動到操作系統啟動的過渡,從而為操作系統提供運行環境的引導區;用于存放操作系統內核數據、文件系統數據、用戶代碼和用戶數據的存貯器;用于連接臺式機終端USB接口的通信接口;實現密碼算法、局部總線接口、URAT和時序控制功能的算法芯片;產生隨機數并由處理器端口進行采集的真隨機數發生器。3.如權利要求1或2所述的硬件密碼模塊,其特征在于所述硬件密碼模塊包括用于存儲銀行柜面敏感數據的安全存儲區,所述安全存儲區包括靜態存儲區及臨時存儲區。4.如權利要求2所述的硬件密碼模塊,其特征在于所述引導區完成的功能包括初始化CPU、存儲器;激活指令/數據Cache;建立堆棧指針和啟動參數區;上電自檢;最后跳轉到內核起始處。5.如權利要求1所述的硬件密碼模塊,其特征在于硬件密碼模塊保存的所有密鑰都不以明文的方式讀出,只能夠得到其校驗值,整個密碼運算過程封裝在硬件密碼模塊內部完成,上層應用不能得到運算過程中的密鑰。6.如權利要求5所述的硬件密碼模塊,其特征在于硬件密碼模塊具有密鑰銷毀功能。7.如權利要求6所述的硬件密碼模塊,其特征在于在硬件密碼模塊進行密鑰銷毀時,硬件密碼模塊自身具有的密鑰清除命令清除指定的密鑰而不會對其它密鑰造成影響。8.如權利要求6所述的硬件密碼模塊,其特征在于硬件密碼模塊設置有密鑰自毀電路,在機倉被打開時會自動銷毀硬件密碼模塊內的所有密鑰,從而保證硬件密碼模塊在遭受外界物理攻擊時密鑰的安全。9.一種用于銀行柜面敏感數據保護的方法,所述方法使用適用于銀行柜員終端的硬件密碼模塊對所述銀行柜面敏感數據進行保護,其中,所述硬件密碼模塊包括用于存儲銀行柜面敏感數據的安全存儲區,所述安全存儲區包括靜態存儲區及臨時存儲區,其特征在于所述方法包括,步驟1在硬件密碼模塊投入使用前,首先進行初始化,該步驟1包括1.1)由后臺管理系統給硬件密碼模塊分配唯一標識GUID,1.2)由后臺標識認證中心根據硬件密碼模塊標識GUID產生該硬件密碼模塊標識密鑰,所述標識密鑰包括標識公鑰及標識私鑰,1.3)后臺管理系統將硬件密碼模塊標識GUID和標識私鑰下發給硬件密碼模塊,將標識公鑰存儲在后臺數據庫中;步驟2硬件密碼模塊注冊,該步驟2包括2.1)與后臺密鑰管理中心約定主密鑰TMK,2.2)密鑰管理中心隨機生成TMK,并用該硬件密碼模塊標識公鑰加密,下發到柜員終端,2.3)硬件密碼模塊用標識私鑰解密TMK,并將TMK保存在硬件密碼模塊靜態存儲區;步驟3硬件密碼模塊簽到,該步驟3包括3.1)與后臺密鑰管理中心約定工作密鑰,所述工作密鑰包括TAK、TEK以及TDK,3.2)密鑰中心隨機生成所述工作密鑰,并用TMK密鑰加密,下發到柜員終端,3.3)硬件密碼模塊用TMK解密工作密鑰,并保存在硬件密碼模塊臨時存儲區。10.如權利要求9所述的用于銀行柜面敏感數據保護的方法,其特征在于所述硬件密碼模塊為權利要求1-8任一項所述的硬件密碼模塊。全文摘要本發明涉及一種用于銀行柜面敏感數據保護的硬件密碼模塊及方法,所述硬件密碼模塊對所述銀行柜面敏感數據進行保護,所述硬件密碼模塊包括用于存儲銀行柜面敏感數據的安全存儲區,所述存儲區包括靜態存儲區及臨時存儲區,所述方法包括步驟1對所述硬件密碼模塊進行初始化;步驟2硬件密碼模塊注冊;步驟3硬件密碼模塊簽到。根據本發明所述的銀行柜面敏感數據保護方法,能夠實時地為柜面提供消息驗證、數據加密、簽名的產生和驗證的密碼服務,保證數據從產生、傳輸、接收整個過程的機密性、完整性和不可抵賴性。文檔編號G06F21/00GK101799852SQ20101010738公開日2010年8月11日申請日期2010年2月9日優先權日2010年2月9日發明者戴宇星申請人:北京江南博仁科技有限公司