本發(fā)明涉及數(shù)據(jù)安全領域,具體說是一種數(shù)據(jù)安全驗證裝置。
背景技術:
隨著時代的發(fā)展,信息化程度越來越高,對于數(shù)據(jù)的安全也提出了更高的要求,特別是在移動終端支付領域。移動終端需要有很高的數(shù)據(jù)安全保密性,其驗證密鑰需要采用可更新的方式才能夠保證被惡意修改攻擊。目前的驗證裝置都是采用黑盒的模式,內(nèi)部數(shù)據(jù)不可讀取和修改,應用范圍相對小。
技術實現(xiàn)要素:
本發(fā)明針對上述存在的問題,提出了一種數(shù)據(jù)安全驗證裝置,裝置外部包括用于外部數(shù)據(jù)的輸入和輸出的數(shù)據(jù)傳輸接口,裝置內(nèi)部包括控制公鑰,和由外部控制私鑰加密的時鐘單元與時間戳密鑰;所述的時鐘單元包括時鐘信息和時鐘允許誤差信息,所述控制公鑰、時間戳密鑰、時鐘和時鐘允許誤差采用可更新機制,由外部控制私鑰對需要更新的數(shù)據(jù)進行簽名,并由控制公鑰驗證簽名進行更新;所述的外部數(shù)據(jù)由時間戳密鑰和時鐘單元進行安全驗證,驗證結果由數(shù)據(jù)傳輸接口輸出。
進一步地,所述的控制公鑰的更新方式為:輸入新的控制公鑰和原控制私鑰對新控制公鑰的簽名,裝置使用原控制公鑰認證通過該簽名后,更新舊控制公鑰為新控制公鑰。
進一步地,所述的時間戳密鑰更新方式為:輸入裝置控制公鑰對新時間戳密鑰的加密數(shù)據(jù)和控制私鑰對加密數(shù)據(jù)的簽名,裝置使用控制公鑰認證通過該簽名后,用控制私鑰解密后更新時間戳密鑰。
進一步地,所述的時鐘更新方式為:輸入新的時鐘數(shù)據(jù)和控制私鑰對新時鐘數(shù)據(jù)的簽名,裝置使用控制公鑰認證通過該簽名后,更新舊時鐘為新時鐘。
進一步地,所述的時鐘允許誤差更新方式為:時鐘允許誤差分為時鐘允許誤差上限和時鐘允許誤差下限,輸入新時鐘允許誤差信息和控制私鑰對新時鐘允許誤差信息的簽名,裝置認證使用控制公鑰認證通過該簽名后,更新時鐘允許誤差信息。
進一步地,所述的驗證數(shù)據(jù)包括外部時間,分散級數(shù)、分散因子、驗證數(shù)據(jù)和驗證值。
進一步地,所述的數(shù)據(jù)安全認證步驟為:
s1、外部通過數(shù)據(jù)傳輸接口輸入驗證數(shù)據(jù);
s2、獲取裝置時鐘單元的時鐘信息,獲取成功進行下一步s3,獲取失敗則跳轉s9;
s3、驗證輸入的外部時間是否小于時鐘允許誤差下限,“否”進行下一步s4,“是”跳轉s9;
s4、驗證輸入的外部時間是否大于時鐘允許誤差上限,“否”進行下一步s5,“是”跳轉s9;
s5、時間戳密鑰按照分散級數(shù)和分散因子進行分散,產(chǎn)生時間戳子密鑰;
s6、時間戳子密鑰對驗證數(shù)據(jù)計算mac;
s7、驗證mac是否與輸入的驗證值一致,“是”進行下一步s8,“否”跳轉s9;
s8、驗證成功,裝置輸出結果給外部,跳轉s1循環(huán);
s9、驗證失敗,裝置輸出結果給外部,跳轉s1循環(huán)。
本發(fā)明有如下有益效果:
1、通過內(nèi)置時鐘單元和時鐘更新機制,避免時鐘被惡意更改的風險,提高系統(tǒng)時鐘的統(tǒng)一性和準確性,降低系統(tǒng)集成的難度;
2、時鐘單元、密鑰存儲以及密鑰運算都內(nèi)置于黑盒,提高數(shù)據(jù)驗證的安全性;
3、時間戳密鑰使用裝置密鑰對和控制密鑰對實現(xiàn)裝載和更新,提高時間戳密鑰發(fā)布的安全性;
4、時間戳密鑰采用對稱密鑰,降低被驗證方設備的性能要求;
5、時間戳密鑰支持多級分散,適合多級的密鑰體系,可控制數(shù)據(jù)認證的應用范圍;
6、設置有時間允許誤差并允許可調,提高系統(tǒng)的適用性。
附圖說明
圖1是本發(fā)明實施例的結構框圖;
圖2是本發(fā)明實施例的數(shù)據(jù)驗證流程圖;
圖3是本發(fā)明實施例的mac計算方法圖。
具體實施方式
以下結合附圖對本發(fā)明的實施例作詳細描述。
如圖1所示,一種數(shù)據(jù)安全驗證裝置,該裝置為黑盒設計,該裝置外部包括數(shù)據(jù)傳輸接口,內(nèi)部包括時鐘單元、控制公鑰和時間戳密鑰,所述的時鐘單元包括時鐘信息和時鐘允許誤差信息。
裝置進行初始化后,裝置內(nèi)部生產(chǎn)非對稱密鑰對,控制私鑰通過數(shù)據(jù)傳輸接口傳輸?shù)酵獠?,裝置內(nèi)部保留控制公鑰,控制私鑰可對內(nèi)部數(shù)據(jù)進行更新。進一步地,所述的控制公鑰的更新方式為:輸入新的控制公鑰和原控制私鑰對新控制公鑰的簽名,裝置使用原控制公鑰認證通過該簽名后,更新舊控制公鑰為新控制公鑰;所述的時間戳密鑰更新方式為:輸入裝置控制公鑰對新時間戳密鑰的加密數(shù)據(jù)和控制私鑰對加密數(shù)據(jù)的簽名,裝置使用控制公鑰認證通過該簽名后,用控制私鑰解密后更新時間戳密鑰;所述的時鐘更新方式為:輸入新的時鐘數(shù)據(jù)和控制私鑰對新時鐘數(shù)據(jù)的簽名,裝置使用控制公鑰認證通過該簽名后,更新舊時鐘為新時鐘;所述的時鐘允許誤差更新方式為:時鐘允許誤差分為時鐘允許誤差上限和時鐘允許誤差下限,輸入新時鐘允許誤差信息和控制私鑰對新時鐘允許誤差信息的簽名,裝置認證使用控制公鑰認證通過該簽名后,更新時鐘允許誤差信息。
如圖2所示,外部數(shù)據(jù)通過數(shù)據(jù)傳輸接口輸入,外部數(shù)據(jù)包括外部時間,分散級數(shù)、分散因子、驗證數(shù)據(jù)和驗證值,裝置驗證后輸出驗證成功或驗證失敗,具體流程如下:
s1、外部通過數(shù)據(jù)傳輸接口輸入驗證數(shù)據(jù);
s2、獲取裝置時鐘單元的時鐘信息,獲取成功進行下一步s3,獲取失敗則跳轉s9;
s3、驗證輸入的外部時間是否小于時鐘允許誤差下限,“否”進行下一步s4,“是”跳轉s9;
s4、驗證輸入的外部時間是否大于時鐘允許誤差上限,“否”進行下一步s5,“是”跳轉s9;
s5、時間戳密鑰按照分散級數(shù)和分散因子進行分散,產(chǎn)生時間戳子密鑰;
s6、時間戳子密鑰對驗證數(shù)據(jù)計算mac;
s7、驗證mac是否與輸入的驗證值一致,“是”進行下一步s8,“否”跳轉s9;
s8、驗證成功,裝置輸出結果給外部,跳轉s1循環(huán);
s9、驗證失敗,裝置輸出結果給外部,跳轉s1循環(huán)。
在一個優(yōu)選實施例中,時間戳密鑰采用16字節(jié)的3des密鑰,時間戳子密鑰由原時間戳密鑰8字節(jié)分散級數(shù)加上8字節(jié)分散因子取反值計算3des后獲得的。mac計算步驟如下:
1、取8個16進制數(shù)00,00,00,00,00,00,00,00為初始值;
2、將需要計算mac的驗證數(shù)據(jù)分成8字節(jié)為單位的數(shù)據(jù)塊,標號為d1,d2..dn。最后的數(shù)據(jù)塊dn可能是1-8個字節(jié);
3、如果最后的數(shù)據(jù)塊長度是8,在其后加上16進制數(shù)80,00,00,00,00,00,00,00;如果最后的數(shù)據(jù)塊長度等于7,在其后加上16進制數(shù)80;如果最后的數(shù)據(jù)塊小于7,則在其后加入16進制數(shù)80,再重復加入16進制數(shù)00,直到達到8字節(jié);
4、對驗證數(shù)據(jù)使用相應密鑰加密,計算過程如圖3所示,將8字節(jié)的初始值與d1數(shù)據(jù)塊進行異或運算得到8字節(jié)數(shù)據(jù),再利用16字節(jié)密鑰左半部分des(同為8字節(jié))對8字節(jié)數(shù)據(jù)進行加密;得到的加密8字節(jié)數(shù)據(jù)與d2數(shù)據(jù)塊進行異或運算,得到新8字節(jié)數(shù)據(jù),再利用16字節(jié)密鑰左半部分des對新的8字節(jié)數(shù)據(jù)進行加密;以此類推直到與dn數(shù)據(jù)塊異或運算,最終得到的8字節(jié)數(shù)據(jù)用16字節(jié)左半部分des加密;加密后的8字節(jié)數(shù)據(jù)用16字節(jié)右半部分des(同為8字節(jié))進行解密的到解密數(shù)據(jù)(8字節(jié));再利用16字節(jié)密鑰左半部分des對解密數(shù)據(jù)進行加密,得到8字節(jié)的加密數(shù)據(jù),取加密數(shù)據(jù)的前四個字節(jié)作為結果;所得到的結果將與驗證值比較,一致則表示驗證成功,否則驗證失敗。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。