本發(fā)明涉及一種檢視方法及應(yīng)用其的檢視子系統(tǒng)和數(shù)據(jù)存證簽署鏈路系統(tǒng),尤其涉及一種基于多重哈希算法的檢視方法及應(yīng)用其的檢視子系統(tǒng)和數(shù)據(jù)存證簽署鏈路系統(tǒng)。
背景技術(shù):
互聯(lián)網(wǎng)行業(yè)飛速發(fā)展,目前已經(jīng)成為各個傳統(tǒng)行業(yè)獲得新發(fā)展的主要載體,電子數(shù)據(jù)代替了紙質(zhì)材料,其高效性和易存儲性等優(yōu)勢十分明顯,然而,在司法過程中,電子數(shù)據(jù)的易無痕化修改、易滅失等特點(diǎn)又成為影響其成為證據(jù)的最大問題。
為了彌補(bǔ)這些不足,技術(shù)市場上主要產(chǎn)生了以下兩種方法對這些電子數(shù)據(jù)進(jìn)行存證:
1、副本法:在電子數(shù)據(jù)生成的同時,將數(shù)據(jù)副本交付給獨(dú)立的存證方保存,將來電子數(shù)據(jù)需要成為證據(jù)的時候,調(diào)取存證方的副本對比,兩方數(shù)據(jù)一致,即可證明數(shù)據(jù)的原始性。
然而,副本法除了數(shù)據(jù)量太大以外,這個方法在大多數(shù)場景下也不適合使用,因?yàn)楹芏鄶?shù)據(jù)都涉及到用戶隱私或者商業(yè)秘密,無法在事前進(jìn)行原文備份。
2、摘要法:數(shù)據(jù)副本的保存有很多問題,最大的問題就是有些場景下副本數(shù)據(jù)量很大,保存副本負(fù)擔(dān)沉重,而摘要法就解決了這個問題,數(shù)據(jù)方在生成原始數(shù)據(jù)的同時,將數(shù)據(jù)的摘要發(fā)送給存證方保存,極大縮小了數(shù)據(jù)大小,由于摘要算法的抗沖突性,數(shù)據(jù)方大多數(shù)的修改數(shù)據(jù)原文行為,都會因無法保持?jǐn)?shù)據(jù)摘要值不變而被存證方察覺,這樣也保證了數(shù)據(jù)的抗篡改性。
然而,單一摘要法最重要的問題是其沖突空間不夠大,受摘要算法碰撞的影響,造成這種存證方式在司法上存在漏洞。
另外,如果存證方不是具備公證職能的司法機(jī)關(guān),其數(shù)據(jù)簽署鏈路的公信力不夠,不能證明數(shù)據(jù)未經(jīng)雙方共同修改。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于多重哈希算法的檢視方法及應(yīng)用其的檢視子系統(tǒng)和數(shù)據(jù)存證簽署鏈路系統(tǒng),檢視方對存證方的存證數(shù)據(jù)進(jìn)行編碼和哈希運(yùn)算,并保存哈希值,以便取證時用于判斷存證數(shù)據(jù)是否被篡改,借此提高存證方的公信力,其具體采用的技術(shù)方案如下:
一種檢視方法,包括以下步驟:
登錄存證方;
確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù);
將所述存證數(shù)據(jù)按預(yù)定格式編碼為可讀性數(shù)據(jù)塊;
根據(jù)檢視程序,確認(rèn)哈希算法組合,并根據(jù)所述哈希算法組合計算所述可讀性數(shù)據(jù)塊的哈希值,并生成對應(yīng)的哈希值列表;
獲取所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表和所述哈希算法組合的組合列表;
以所述識別號為索引,保存所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表和所述哈希算法組合的組合列表。
優(yōu)選的,所述存證數(shù)據(jù)包括數(shù)據(jù)方的原始數(shù)據(jù)進(jìn)行哈希運(yùn)算后的哈希值。
優(yōu)選的,還包括步驟:
對所述可讀性數(shù)據(jù)塊進(jìn)行鹽值加密,并根據(jù)所述哈希算法組合計算所述鹽值加密后的可讀性數(shù)據(jù)塊的哈希值;
獲取所述加密鹽值;
以所述識別號為索引,保存所述加密鹽值;
記錄存證時間。
優(yōu)選的,還包括步驟:
所述存證方將所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表、所述哈希算法組合的組合列表和所述加密鹽值加密回傳至檢視方。
優(yōu)選的,所述確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù)為,根據(jù)已經(jīng)檢視過的存證數(shù)據(jù)記錄,查詢出本次需要進(jìn)行檢視的存證數(shù)據(jù);
或者為,周期性地確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù);
或者為,及時性地確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù);
或者為,冗余性地確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù)。
優(yōu)選的,還包括步驟,判斷存在于存證方內(nèi)的檢視程序的摘要值是否和檢視方的檢視程序的摘要值一致;
若一致,則根據(jù)所述存證方內(nèi)的檢視程序進(jìn)行鹽值加密和哈希運(yùn)算;
若不一致,則將所述檢視方的檢視程序上傳至所述存證方,再根據(jù)所述檢視方的檢視程序進(jìn)行鹽值加密和哈希運(yùn)算。
優(yōu)選的,所述登錄存證方為,檢視方通過安全外殼協(xié)議遠(yuǎn)程登錄存證方。
一種應(yīng)用以上任一項(xiàng)所述的檢視方法的檢視子系統(tǒng),包括:
登錄模塊,用于登錄存證方;
確認(rèn)模塊,用于確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù);
編碼模塊,用于將所述存證數(shù)據(jù)按預(yù)定格式編碼為可讀性數(shù)據(jù)塊;
計算模塊,用于根據(jù)檢視程序,利用哈希算法組合計算所述可讀性數(shù)據(jù)塊的哈希值,并生成對應(yīng)的哈希值列表;
獲取模塊,用于獲取所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表和所述哈希算法組合的組合列表;
存儲模塊,用于以所述識別號為索引,保存所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表和所述哈希算法組合的組合列表。
一種應(yīng)用以上任一項(xiàng)所述的檢視方法的數(shù)據(jù)存證簽署鏈路系統(tǒng),包括:存證方和檢視方;
所述存證方包括:
存證方數(shù)據(jù)存儲模塊,用于以原始數(shù)據(jù)的標(biāo)識信息作為索引,保存包括所述原始數(shù)據(jù)的哈希值的存證數(shù)據(jù);
命令接收模塊:用于接收檢視方發(fā)出的檢視命令和/或檢視程序;
程序運(yùn)行模塊:用于運(yùn)行所述檢視程序;所述程序運(yùn)行模塊包括數(shù)據(jù)確認(rèn)單元、數(shù)據(jù)編碼單元、哈希算法單元;
所述數(shù)據(jù)確認(rèn)單元,用于確認(rèn)需要進(jìn)行檢視的所述存證數(shù)據(jù);
所述數(shù)據(jù)編碼單元,用于將所述存證數(shù)據(jù)按預(yù)定格式編碼為可讀性數(shù)據(jù)塊;
所述哈希算法單元,用于根據(jù)所述檢視程序,利用哈希算法組合的組合列表計算所述可讀性數(shù)據(jù)塊的哈希值,并生成對應(yīng)的哈希值列表;
數(shù)據(jù)回傳模塊,用于將所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表、所述哈希算法組合的組合列表加密回傳至所述檢視方;
所述檢視方包括:
運(yùn)行命令模塊,用于向存證方系統(tǒng)發(fā)送檢視程序運(yùn)行命令;
檢視方數(shù)據(jù)接收模塊,用于接收所述存證方發(fā)出的所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表、所述哈希算法組合的組合列表;
檢視方數(shù)據(jù)存儲模塊,用于以所述存證數(shù)據(jù)的識別號為索引,保存相應(yīng)的所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表、所述哈希算法組合的組合列表。
優(yōu)選的,還包括數(shù)據(jù)方;
所述數(shù)據(jù)方將所述原始數(shù)據(jù)按照與所述所述存證方約定的哈希算法將所述原始數(shù)據(jù)進(jìn)行哈希運(yùn)算得到所述原始數(shù)據(jù)的哈希值后,將所述原始數(shù)據(jù)的哈希值發(fā)送至所述存證方;
或者所述數(shù)據(jù)方將所述原始數(shù)據(jù)或者原始數(shù)據(jù)的位置發(fā)送給所述存證方后,由所述存證方按照與所述數(shù)據(jù)方約定的哈希哈希算法對所述原始數(shù)據(jù)進(jìn)行哈希值運(yùn)算,得到所述原始數(shù)據(jù)的哈希值。
與現(xiàn)有技術(shù)相比,本技術(shù)方案的有益效果是:本發(fā)明提供的檢視方法對存證方的存證數(shù)據(jù)進(jìn)行哈希運(yùn)算,檢視方對運(yùn)算后的哈希值進(jìn)行存儲,進(jìn)一步提高了數(shù)據(jù)的防篡改性,提高存證方的公信力。
附圖說明
圖1是一種基于多重哈希算法的檢視方法的流程框圖;
圖2是一種基于多重哈希算法的檢視方子系統(tǒng)的結(jié)構(gòu)框圖;
圖3是一種基于多重哈希算法的數(shù)據(jù)存證簽署鏈路系統(tǒng)的結(jié)構(gòu)框圖;
圖4是一種存證方的程序運(yùn)行模塊的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖,通過具體實(shí)施例,對本發(fā)明的技術(shù)方案進(jìn)行清楚、完整的描述。
請參考圖1,本發(fā)明提供了一種基于多重哈希算法的檢視方法,包括以下步驟:
s11),登錄存證方:檢視方登錄存證方;
s12),確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù):檢視方登錄存證方后,確認(rèn)存證方存儲的需要進(jìn)行檢視的存證數(shù)據(jù);
s13),將所述存證數(shù)據(jù)編碼為可讀性數(shù)據(jù)塊:將所述存證數(shù)據(jù)按預(yù)定格式編碼為可讀性數(shù)據(jù)塊;
s14),計算所述可讀性數(shù)據(jù)塊的哈希值:根據(jù)檢視程序,確認(rèn)哈希算法組合,并根據(jù)所述哈希算法組合計算所述可讀性數(shù)據(jù)塊的哈希值,并生成對應(yīng)的哈希值列表;為提高抗沖突性,優(yōu)選的,所述哈希算法組合包括多個哈希算法,比如包括md5、sha1、sha-224、sha384中的3個或3個以上。
s15),獲取所述哈希值等數(shù)據(jù):檢視方獲取所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表和所述哈希算法組合的組合列表;
s16),以識別號為索引,保存所述哈希值等數(shù)據(jù):檢視方以所述識別號為索引,保存所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表和所述哈希算法組合的組合列表。
檢視請求可以由檢視方發(fā)出,也可以由存證方發(fā)出。不管由哪一方發(fā)出,都應(yīng)執(zhí)行步驟s11-s16。具體的,步驟s12、s13、s14由檢視方登錄存證方后,在存證方的平臺上運(yùn)行,比如在存證方的平臺上運(yùn)行具有上述功能的檢視程序。當(dāng)步驟s12、s13、s14執(zhí)行完畢后,檢視方獲取執(zhí)行結(jié)果;所述執(zhí)行結(jié)果包括存證數(shù)據(jù)的識別號、可讀性數(shù)據(jù)塊的大小、哈希值列表和哈希算法組合的組合列表。具體的,執(zhí)行結(jié)果可以由存證方回傳給檢視方,也可以由檢視方從存證方主動獲取,但是不管哪種方式,檢視方都將獲取執(zhí)行結(jié)果。檢視方獲取執(zhí)行結(jié)果后,執(zhí)行步驟s16。
在一個實(shí)施例中,所述存證數(shù)據(jù)包括原始數(shù)據(jù)進(jìn)行哈希運(yùn)算后的哈希值。所述原始數(shù)據(jù)為需要進(jìn)行后續(xù)存證或者檢視的、有可能發(fā)生爭執(zhí)的數(shù)據(jù);比如借貸信息。同時,原始數(shù)據(jù)必須保存在數(shù)據(jù)方,數(shù)據(jù)方的作用是記錄當(dāng)事人的行為信息,比如借貸信息。所以,數(shù)據(jù)方保存的原始數(shù)據(jù)必須要有很高的真實(shí)性,基于此,對原始數(shù)據(jù)進(jìn)行哈希運(yùn)算后,將得到的哈希值存儲在存證方,待發(fā)生爭議時,應(yīng)當(dāng)事人請求,存證方對所述原始數(shù)據(jù)的真實(shí)性進(jìn)行驗(yàn)證;具體為,根據(jù)同樣的哈希運(yùn)算計算待證數(shù)據(jù)的哈希值,并與原始數(shù)據(jù)的哈希值進(jìn)行比較,只有當(dāng)兩者一致時,才能表明待證數(shù)據(jù)為原始數(shù)據(jù),即原始數(shù)據(jù)未被篡改;為了提高可靠性,可同時增加存證時間,原始數(shù)據(jù)的大小等各種參數(shù)進(jìn)行輔助驗(yàn)證。本實(shí)施例中,存證過程中,已經(jīng)采用了一次哈希運(yùn)算,由于哈希運(yùn)算的不可逆性,在很大程度上可以確認(rèn)數(shù)據(jù)的真實(shí)性。且本實(shí)施例中,檢視方還對存證數(shù)據(jù)進(jìn)行再次哈希運(yùn)算,更加有利于確認(rèn)數(shù)據(jù)的真實(shí)性。
因此,本實(shí)施例提供的檢視方法中,通過多級哈希算法運(yùn)算進(jìn)一步提高了數(shù)據(jù)防篡改性,且本發(fā)明對于具備公證職能的檢視方來說,僅僅對數(shù)據(jù)的哈希值進(jìn)行存儲,數(shù)據(jù)量非常小,沒有并發(fā)壓力,運(yùn)營成本很低,并且通過具備公證職能的檢視方對存證方的檢視,提高存證方的公信力。
為了進(jìn)一步提高數(shù)據(jù)防篡改性及證據(jù)的真實(shí)性,另一個實(shí)施例中,所述檢視方法還包括步驟:鹽值加密;具體為,對所述可讀性數(shù)據(jù)塊進(jìn)行鹽值加密,并根據(jù)所述哈希算法組合計算所述鹽值加密后的可讀性數(shù)據(jù)塊的哈希值;
獲取所述加密鹽值;
以所述識別號為索引,保存所述鹽值;
記錄存證時間。
本實(shí)施例通過在哈希算法的基礎(chǔ)上結(jié)合鹽值加密,進(jìn)行了雙重保護(hù)和驗(yàn)證,徹底切斷了碰撞路徑,進(jìn)一步提高了數(shù)據(jù)的防篡改性,即使得原始數(shù)據(jù)被篡改且不被發(fā)現(xiàn)成為不可能之事,且增加存證時間,多了一個驗(yàn)證參數(shù),多維度的保證了證據(jù)的真實(shí)性,即使哈希值等一樣,存證時間不同,待證數(shù)據(jù)就不是原始數(shù)據(jù),即原始數(shù)據(jù)被篡改過,不能成為有效證據(jù)。
本實(shí)施例中,當(dāng)檢視方在存證方對存證數(shù)據(jù)進(jìn)行了確認(rèn)、編碼、鹽值加密和哈希運(yùn)算之后,優(yōu)選的,由存證方將所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表、所述哈希算法組合的組合列表和所述加密鹽值加密回傳至檢視方,并由檢視方對所有數(shù)據(jù)進(jìn)行保存,以便取證時,用來對比確認(rèn)數(shù)據(jù)是否被篡改。
json(javascriptobjectnotation,js對象標(biāo)記)是一種輕量級的數(shù)據(jù)交換格式。它基于ecmascript規(guī)范的一個子集,采用完全獨(dú)立于編程語言的文本格式來存儲和表示數(shù)據(jù),簡潔和清晰的層次結(jié)構(gòu)使得json成為理想的數(shù)據(jù)交換語言,易于人閱讀和編寫,同時也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。因此,優(yōu)選的,本發(fā)明中,進(jìn)行編碼的預(yù)定格式為json,所述可讀性數(shù)據(jù)塊為json數(shù)據(jù)塊。
在一個實(shí)施例中,所述確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù)為,根據(jù)已經(jīng)檢視過的存證數(shù)據(jù)記錄,查詢出本次需要進(jìn)行檢視的存證數(shù)據(jù);比如,上次進(jìn)行檢視時,已將前10條存證數(shù)據(jù)進(jìn)行了檢視,則本次執(zhí)行檢視的存證數(shù)據(jù)則從第11條開始執(zhí)行;又比如,上次進(jìn)行檢視的時間是a,則本次執(zhí)行檢視的存證數(shù)據(jù)應(yīng)為時間a以后的數(shù)據(jù)。
另一個實(shí)施例中,所述確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù)為周期性地確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù);比如,以每5條存證數(shù)據(jù)為單位進(jìn)行一次檢視,即檢視方將該5條存證數(shù)據(jù)作為一個整體,進(jìn)行編碼、哈希運(yùn)算(或者同時進(jìn)行鹽值加密)。又比如,以時間為周期,檢視方對每3天的存證數(shù)據(jù)進(jìn)行一次檢視。
另一個實(shí)施例中,所述確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù)為及時性地確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù);該方法更適合用于由存證方主動向檢視方提出檢視請求,即每當(dāng)存證方保存了存證數(shù)據(jù)后,立即向檢視方發(fā)出檢視請求,檢視方對每條存證數(shù)據(jù)執(zhí)行編碼、哈希運(yùn)算等操作。
需要說明的是,存證數(shù)據(jù)和原始數(shù)據(jù)為一一對應(yīng)的關(guān)系,所述確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù)不管是哪種確認(rèn)方式的,都需對存證方的存證數(shù)據(jù)進(jìn)行遍歷的、及時的檢視,為進(jìn)一步提高可信度,還可以進(jìn)行冗余的檢視,即對同一個存證數(shù)據(jù)進(jìn)行多次的、重復(fù)的、多角度的檢視,比如第一次對前5條存證數(shù)據(jù)進(jìn)行檢視,第二次則對前10條進(jìn)行檢視,第三次對第6-15條進(jìn)行檢視。本發(fā)明中,檢視方為公證處專有的信息系統(tǒng),其為了將來可能發(fā)生的數(shù)據(jù)原始性公證業(yè)務(wù)請求,在數(shù)據(jù)原始性公正業(yè)務(wù)請求事前對存證方的存證數(shù)據(jù)進(jìn)行實(shí)時檢視,且本發(fā)明提供的檢視方法中,檢視方單向檢視存證方,具有強(qiáng)隔離作用,有效地保證了證據(jù)的真實(shí)性。
在一個實(shí)施例中,所述檢視方法還包括步驟:判斷存在于存證方內(nèi)的檢視程序的摘要值是否和檢視方的檢視程序的摘要值一致;
若一致,則根據(jù)所述存證方內(nèi)的檢視程序?qū)Υ孀C數(shù)據(jù)進(jìn)行鹽值加密和哈希運(yùn)算;
若不一致,則檢視方將所述檢視方的檢視程序上傳至所述存證方,再根據(jù)所述檢視方的檢視程序?qū)Υ孀C數(shù)據(jù)進(jìn)行鹽值加密和哈希運(yùn)算。
在一個實(shí)施例中,所述登錄存證方為,檢視方通過安全外殼協(xié)議(ssh)遠(yuǎn)程登錄存證方。
基于上述本發(fā)明實(shí)施例公開的各類檢視方法,本發(fā)明實(shí)施例還對應(yīng)公開了相應(yīng)的檢視子系統(tǒng),如圖2所示;圖2為本發(fā)明實(shí)施例公開的一種檢視子系統(tǒng),主要包括:
登錄模塊11:用于登錄存證方;
確認(rèn)模塊12:用于確認(rèn)需要進(jìn)行檢視的存證數(shù)據(jù);
編碼模塊13:用于將所述存證數(shù)據(jù)按預(yù)定格式編碼為可讀性數(shù)據(jù)塊;
計算模塊14:用于根據(jù)檢視程序,利用哈希算法組合計算所述可讀性數(shù)據(jù)塊的哈希值,并生成對應(yīng)的哈希值列表;
獲取模塊15:用于獲取所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表和所述哈希算法組合的組合列表;
存儲模塊16:用于以所述識別號為索引,保存所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表和所述哈希算法組合的組合列表。
基于上述本發(fā)明實(shí)施例公開的各類檢視方法,本發(fā)明實(shí)施例還對應(yīng)公開了相應(yīng)的數(shù)據(jù)存證簽署鏈路系統(tǒng),如圖3所示;圖3為本發(fā)明實(shí)施例公開的一種數(shù)據(jù)存證簽署鏈路系統(tǒng),主要包括:存證方2和檢視方3;
所述存證方2包括:
存證方數(shù)據(jù)存儲模塊21,用于以原始數(shù)據(jù)的標(biāo)識信息作為索引,保存包括所述原始數(shù)據(jù)的哈希值的存證數(shù)據(jù);
命令接收模塊22:用于接收檢視方發(fā)出的檢視命令和/或檢視程序;
程序運(yùn)行模塊23:用于運(yùn)行所述檢視程序;其中,如圖4所示,程序運(yùn)行模塊23包括數(shù)據(jù)確認(rèn)單元231、數(shù)據(jù)編碼單元232、哈希算法單元233;
所述數(shù)據(jù)確認(rèn)單元231,用于確認(rèn)需要進(jìn)行檢視的所述存證數(shù)據(jù);
所述數(shù)據(jù)編碼單元232,用于將所述存證數(shù)據(jù)按預(yù)定格式編碼為可讀性數(shù)據(jù)塊;
所述哈希算法單元233,用于根據(jù)所述檢視程序,利用哈希算法組合的組合列表計算所述可讀性數(shù)據(jù)塊的哈希值,并生成對應(yīng)的哈希值列表;
數(shù)據(jù)回傳模塊24,用于將所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表、所述哈希算法組合的組合列表加密回傳至所述檢視方;
所述檢視方3包括:
運(yùn)行命令模塊31,用于向存證方系統(tǒng)發(fā)送檢視程序運(yùn)行命令;
檢視方數(shù)據(jù)接收模塊32,用于接收所述存證方發(fā)出的所述存證數(shù)據(jù)的識別號、所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表、所述哈希算法組合的組合列表;
檢視方數(shù)據(jù)存儲模塊33,用于以所述存證數(shù)據(jù)的識別號為索引,保存相應(yīng)的所述可讀性數(shù)據(jù)塊的大小、所述哈希值列表、所述哈希算法組合的組合列表。
優(yōu)選的,所述數(shù)據(jù)存證簽署鏈路系統(tǒng)還包括數(shù)據(jù)方;數(shù)據(jù)方提供需要進(jìn)行存證的原始數(shù)據(jù)。
在一個實(shí)施例中,所述數(shù)據(jù)方將所述原始數(shù)據(jù)按照與所述所述存證方約定的哈希算法將所述原始數(shù)據(jù)進(jìn)行哈希運(yùn)算得到所述原始數(shù)據(jù)的哈希值后,將所述原始數(shù)據(jù)的哈希值發(fā)送至所述存證方;本實(shí)施例中,對原始數(shù)據(jù)的哈希運(yùn)算,也在數(shù)據(jù)方完成,無需將原始數(shù)據(jù)發(fā)送給存證方,有效保證了數(shù)據(jù)的保密性。且存證方需保存包括所述原始數(shù)據(jù)的哈希值和原始數(shù)據(jù)的識別號的存證信息,無需保存原始數(shù)據(jù),大大縮小了存證對存儲空間的需求。
在另一個實(shí)施例中,所述數(shù)據(jù)方將所述原始數(shù)據(jù)或者原始數(shù)據(jù)的位置發(fā)送給所述存證方后,由所述存證方按照與所述數(shù)據(jù)方約定的哈希哈希算法對所述原始數(shù)據(jù)進(jìn)行哈希值運(yùn)算,得到所述原始數(shù)據(jù)的哈希值。本實(shí)施例中,原始數(shù)據(jù)的哈希運(yùn)算是在存證方進(jìn)行,但是存證方完成運(yùn)算后,可以丟棄原始數(shù)據(jù),因此也大大縮小縮小了存證對存儲空間的需求。
根據(jù)上述檢視方法,優(yōu)選的,所述程序運(yùn)行模塊還包括鹽值加密模塊,具體為,根據(jù)檢視程序生成加密鹽值;所述加密鹽值用于對所述可讀性數(shù)據(jù)塊進(jìn)行鹽值加密;對所述可讀性數(shù)據(jù)塊進(jìn)行鹽值加密后,再根據(jù)所述哈希算法組合計算所述鹽值加密后的可讀性數(shù)據(jù)塊的哈希值。本實(shí)施例通過鹽值加密,進(jìn)一步提高了系統(tǒng)的安全性和證據(jù)的真實(shí)性。
下面以一個具體使用場景為例,對本發(fā)明進(jìn)行進(jìn)一步的說明。本實(shí)施例以某p2p平臺的存證業(yè)務(wù)為例進(jìn)行說明:
數(shù)據(jù)方:某p2p平臺,承載個人對個人的轉(zhuǎn)借貸業(yè)務(wù),原始數(shù)據(jù)包括實(shí)名認(rèn)證的用戶信息、出借方交易記錄、貸款方交易記錄等信息;因?yàn)闃I(yè)務(wù)的要求,其用戶的實(shí)名認(rèn)證信息以及借貸賬單等業(yè)務(wù)信息,是不可以泄露給第三方的,除非在出現(xiàn)糾紛的情況下,雙方才會同意將某些涉及糾紛的原始數(shù)據(jù)提供給有公信力的第三方,作為公證證據(jù)或司法鑒定檢材,或進(jìn)一步提交給司法仲裁裁決。
此時,由于p2p平臺與客戶之間存在委托和受托關(guān)系,而平臺自身與客戶之間存在借貸關(guān)系,平臺自身與數(shù)據(jù)的利益相關(guān),即平臺在將來某一時刻存在修改數(shù)據(jù)的動機(jī)。平臺為了提高公信力,在原始數(shù)據(jù)(賬務(wù)數(shù)據(jù)等)生成的第一時間需要存證至第三方(存證方),以備將來出現(xiàn)糾紛時,證明原始數(shù)據(jù)的真實(shí)性。
存證方:存證方是與數(shù)據(jù)方有合作關(guān)系的存證業(yè)務(wù)的承接人,其與數(shù)據(jù)方是商業(yè)合作關(guān)系,受數(shù)據(jù)方委托,有償為數(shù)據(jù)方提供原始數(shù)據(jù)的哈希值的保存;數(shù)據(jù)方在生成每筆業(yè)務(wù)數(shù)據(jù)的第一時間,都應(yīng)該按照雙方的事先協(xié)定,將原始數(shù)據(jù)數(shù)據(jù)進(jìn)行一個或者多個哈希算法處理,得到的結(jié)果傳至存證方保存。
檢視方:接受存證方委托,對存證數(shù)據(jù)庫進(jìn)行事前狀態(tài)監(jiān)控,以在事后證明其數(shù)據(jù)為未經(jīng)篡改的。檢視方與數(shù)據(jù)方和存證方都沒有直接的利益關(guān)系,一般為有公證職能的司法機(jī)構(gòu)。
本實(shí)施例的存證流程如下:
數(shù)據(jù)方在系統(tǒng)的運(yùn)行過程中,用戶實(shí)名認(rèn)證數(shù)據(jù)和賬務(wù)數(shù)據(jù)(等等將來可能發(fā)生爭議的原始數(shù)據(jù))在生成保存后,其系統(tǒng)觸發(fā)一個針對數(shù)據(jù)層的存證進(jìn)程,專門負(fù)責(zé)新生成的原始數(shù)據(jù)(業(yè)務(wù)數(shù)據(jù))向存證方發(fā)送。
原始數(shù)據(jù)的存證流程為:
確定出需要存證的新生成的原始數(shù)據(jù);
將數(shù)據(jù)按照與存證方預(yù)先協(xié)商規(guī)定好的格式編碼為json數(shù)據(jù)塊(含用戶id等信息);
計算該json數(shù)據(jù)塊的多個哈希值,如md5、sha1、sha-224、sha384(一般不少于3個),按照事先雙方協(xié)商確定好的算法列表,計算所述json數(shù)據(jù)塊的哈希值列表;
將該json數(shù)據(jù)塊的大小、哈希值列表以及用戶識別號(id)發(fā)送至存證方的數(shù)據(jù)存證接口;
存證方以用戶id作為索引,將該數(shù)據(jù)作為存證數(shù)據(jù)進(jìn)行保存,并記下存證時間;
優(yōu)選的,在所有存證數(shù)據(jù)在入庫存證時,為每個存證數(shù)據(jù)設(shè)置一個自增的存證id,以便將來檢視方核實(shí)存證數(shù)據(jù)的業(yè)務(wù)時序邏輯。
本實(shí)施例中,檢視流程由檢視方主動發(fā)起。檢視方一般為公證處專有的信息系統(tǒng),其為了將來可能發(fā)生的數(shù)據(jù)原始性公證業(yè)務(wù)請求,在事前對存證方的數(shù)據(jù)進(jìn)行實(shí)時檢視。本發(fā)明中檢視方單向檢視存證方,具有強(qiáng)隔離作用。檢視程序是周期性或者隨機(jī)性運(yùn)行的,對存證方的存證數(shù)據(jù)進(jìn)行遍歷的、冗余的、及時的檢視,本實(shí)施例中,具體的檢視流程為:
檢視方通過ssh遠(yuǎn)程登錄存證方;優(yōu)選的,以證書方式登陸,采用數(shù)據(jù)加密傳輸;
檢查存放于存證方系統(tǒng)上的檢視程序的摘要值是否正確;即判斷存證方檢視程序的摘要值與用來檢視的檢視方的檢視程序的摘要值是否完全一致;若一致,則直接利用存證方的檢視程序執(zhí)行后續(xù)步驟;若不一致,則將存儲在檢視方的檢視程序臨時上傳至存證方,利用所述臨時上傳的檢視程序執(zhí)行后續(xù)步驟;
存證方運(yùn)行檢視程序,首先隨機(jī)確定本次檢視使用的哈希算法組合(不少于3個),生成哈希算法組合列表,隨機(jī)生成參與加密的鹽值;
檢視程序根據(jù)系統(tǒng)已經(jīng)檢視過的數(shù)據(jù)記錄,查詢出本次需要進(jìn)行檢視的存證數(shù)據(jù)記錄列表;
將數(shù)據(jù)按照與存證方預(yù)先規(guī)定的格式編碼為json數(shù)據(jù)塊;
對所述json數(shù)據(jù)塊進(jìn)行鹽值加密,得到鹽值加密后的json數(shù)據(jù)塊;
根據(jù)確定的哈希算法組合計算該鹽值加密后的json數(shù)據(jù)塊的隨機(jī)哈希值,得到哈希值列表;
將進(jìn)行檢視的存證數(shù)據(jù)記錄對應(yīng)的存證數(shù)據(jù)id(組合)、json數(shù)據(jù)塊的大小、哈希值列表、哈希算法組合列表、加密鹽值通過ssh管道加密回傳給檢視主機(jī);需要說明的是,當(dāng)進(jìn)行檢視的存證數(shù)據(jù)為多條時,則存證數(shù)據(jù)記錄對應(yīng)的是存證數(shù)據(jù)id組合;當(dāng)進(jìn)行檢視的存證數(shù)據(jù)為單條時,則存證數(shù)據(jù)記錄對應(yīng)單個存證數(shù)據(jù)id。另外,存證數(shù)據(jù)id的作用是區(qū)分存證數(shù)據(jù),以便將來取證、出證過程中能快速找到對應(yīng)的存證數(shù)據(jù),同樣原始數(shù)據(jù)識別號也是為了將來能快速找到對應(yīng)的原始數(shù)據(jù),它們的具體形式不做限制,可以是識別號(id),也可以是用戶名等。
檢視方以存證數(shù)據(jù)id(組合)為索引,將上述數(shù)據(jù)保存,并記下存證時間。
對應(yīng)的,本實(shí)施例的取證保全流程:
取證保全流程是由數(shù)據(jù)方根據(jù)客戶要求主動發(fā)起,向存證方提交待證數(shù)據(jù)。需要說明的是,待證數(shù)據(jù)為可能成為證據(jù)的數(shù)據(jù),如果待證數(shù)據(jù)未被篡改,則它就是原始數(shù)據(jù),即可以成為證據(jù)。具體流程為:
數(shù)據(jù)方接收到客戶要求,需要將某段或者某幾段的運(yùn)營數(shù)據(jù)(待證數(shù)據(jù))做出取證處理,以便將來協(xié)商、調(diào)解或者提交司法。該數(shù)據(jù)成為證據(jù)的首要條件就是數(shù)據(jù)必須是原始未經(jīng)修改的。
本實(shí)施例中,為了得到待證數(shù)據(jù)原始性的認(rèn)定,用戶先向存證方提交實(shí)名化資料,授權(quán)存證方調(diào)取待證數(shù)據(jù)。
數(shù)據(jù)方將取證保全需求和待證數(shù)據(jù)的數(shù)據(jù)塊位置發(fā)送給存證方,存證方向數(shù)據(jù)方調(diào)取數(shù)據(jù)塊原文。
存證方計算該數(shù)據(jù)塊大小、并按預(yù)先協(xié)商確定哈希算法計算對應(yīng)的哈希值,分別與存證數(shù)據(jù)庫中的存證數(shù)據(jù)(包括原始數(shù)據(jù)對應(yīng)的可讀性數(shù)據(jù)塊的大小和哈希值)對比;進(jìn)一步的,參與對比的還包括存證時間;如果對比有一項(xiàng)失敗,則證明待證數(shù)據(jù)與原始數(shù)據(jù)不同,丟棄待證數(shù)據(jù)的數(shù)據(jù)塊,取證保全失敗。所有對比一致,待證數(shù)據(jù)即為原始數(shù)據(jù),完成取證保全流程,該數(shù)據(jù)流存到證據(jù)保全數(shù)據(jù)庫。
本例的出證流程如下:
在取證保全流程成功完成的情況下,用戶如出于司法需要,可以在存證方平臺提出公證申請,在完成了在線委托代理手續(xù)和支付費(fèi)用之后,存證方代用戶向檢視方發(fā)起申請數(shù)據(jù)原始性公證書的申請。流程如下:
用戶提交申請公證書的請求。
用戶在線支付公證費(fèi)用以及簽署委托代理書,授權(quán)存證方工作人員代為辦理公證事務(wù)。
存證方在線發(fā)送公證申請給檢視方,取得后者同意后,將待證數(shù)據(jù)對應(yīng)的存證數(shù)據(jù)的存證位置和存證數(shù)據(jù)對應(yīng)的可讀性數(shù)據(jù)塊原文發(fā)給檢視方,同時需要將事先確定的、檢視時用以對存證數(shù)據(jù)進(jìn)行哈希運(yùn)算的哈希算法組合列表一并發(fā)送。
檢視方接收到上述數(shù)據(jù)之后,計算待證數(shù)據(jù)對應(yīng)的可讀性數(shù)據(jù)塊的大小以及哈希值列表并逐一比對,檢查存證方存證數(shù)據(jù)位置的記錄與此是否相符。
如相符,判斷檢視數(shù)據(jù)庫中與該存證數(shù)據(jù)相關(guān)的所有記錄,并核實(shí)數(shù)據(jù)時序邏輯,以核實(shí)待證數(shù)據(jù)、存證數(shù)據(jù)的原始性;啟動自動出證程序,完成電子公證書,返回下載地址給存證方。
如有任何一項(xiàng)不符,出證失敗終止,記錄工作異常狀態(tài),通知存證方退回手續(xù)。
綜上所述,本發(fā)明通過哈希算法的單向性來保障數(shù)據(jù)的隔離,確保企業(yè)開展存證業(yè)務(wù)的同時不影響運(yùn)營數(shù)據(jù)的安全性。通過多重哈希算法,改善了單一哈希算法的抗沖突性,保證了數(shù)據(jù)的不可修改性。本實(shí)施例中數(shù)據(jù)方以多個哈希值的方法存證,避免了單一哈希算法的碰撞風(fēng)險,完全避免了今后原始數(shù)據(jù)被修改而每個哈希值都保持不變的可能,保證了數(shù)據(jù)從存證時間開始進(jìn)入了無法篡改階段。檢視方以隨機(jī)的多個哈希算法對存證方的存證數(shù)據(jù)進(jìn)行固化,同時可以選擇通過加隨機(jī)鹽值進(jìn)行鹽值加密保存,與數(shù)據(jù)方和存證方做到了完全物理隔離和加密算法的隔離,所以存證方數(shù)據(jù)無法做到在檢視方不知情的情況下修改。
存在于存證流程和檢視流程中的多級、多重哈希算法,對原始數(shù)據(jù)的抗修改性是逐級加強(qiáng)的,這種強(qiáng)度具備充足的冗余性,即使前一級存證流程出現(xiàn)可信性問題,只要檢視方是具備公信力的公證機(jī)構(gòu),亦無法出具數(shù)據(jù)原始性公證書,系統(tǒng)具有極強(qiáng)的敏感性。
且本專利采用了多重哈希的方式,輔以原數(shù)據(jù)大小驗(yàn)證的方式,極大改善了單一哈希算法的安全性,據(jù)初步測算,采用sha-1+md5組合方式,比單一md5方式安全性提高43億倍,如果再加上sha-224,難度又會提升2.7x10^67倍,原則上不存在被破解的可能,且具備很強(qiáng)的單向性,使存證業(yè)務(wù)完全不影響數(shù)據(jù)的商業(yè)秘密和用戶隱私。
本發(fā)明雖然已以較佳實(shí)施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對本發(fā)明技術(shù)方案做出可能的變動和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對以上實(shí)施例所作的任何簡單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。