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