本發(fā)明屬于密碼技術(shù)和PDF版式文件開發(fā)領(lǐng)域,特別是電子簽章技術(shù),尤其是一種基于沙箱技術(shù)實(shí)現(xiàn)原文隱私保護(hù)的電子簽名方法。
背景技術(shù):
隨著國家“互聯(lián)網(wǎng)+”戰(zhàn)略的提出和發(fā)展,越來越多的業(yè)務(wù)開始基于互聯(lián)網(wǎng)來實(shí)現(xiàn),例如企業(yè)供應(yīng)鏈、招投標(biāo)、人力資源服務(wù)等。這些業(yè)務(wù)均設(shè)計(jì)到關(guān)鍵文書的簽署,例如企業(yè)供應(yīng)鏈應(yīng)用中與供應(yīng)商、經(jīng)銷商的合同簽署,招投標(biāo)過程中的電子標(biāo)書的簽署,人力資源服務(wù)中的勞動合同簽署等。
隨著saas模式的普及,電子簽名也開始以互聯(lián)網(wǎng)服務(wù)的形式向客戶交付。常用的簽署模型是這樣的:應(yīng)用系統(tǒng)將待簽署文件發(fā)送到簽名服務(wù)平臺;簽名服務(wù)平臺調(diào)用用戶的密鑰實(shí)現(xiàn)對待簽署文件的電子簽名;將簽署完成的文件返回到應(yīng)用系統(tǒng)。
這種應(yīng)用模型存在較大的局限性,用戶必須將待簽署文件原文傳遞到第三方簽名服務(wù)平臺,而原文信息恰恰是很多企業(yè)、個人的私密信息,尤其是對內(nèi)控要求嚴(yán)格的大型企業(yè)、政府部門,以及特殊應(yīng)用如電子招投標(biāo)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決上述現(xiàn)有技術(shù)的缺點(diǎn),提供一種保密性更好的基于沙箱技術(shù)實(shí)現(xiàn)原文隱私保護(hù)的電子簽名方法。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案:這種基于沙箱技術(shù)實(shí)現(xiàn)原文隱私保護(hù)的電子簽名方法,步驟如下:
步驟1:根據(jù)PADES數(shù)字簽名標(biāo)準(zhǔn),在PDF文件的待簽署位置處添加簽名域;
步驟2:在簽名域中添加印章圖片,更加直觀的展現(xiàn)簽章效果;
步驟3:對添加簽名域后的PDF文件進(jìn)行摘要運(yùn)算,得到摘要值;
步驟4:將摘要值傳給服務(wù)端,基于服務(wù)端的云證書和數(shù)字簽名技術(shù)生成標(biāo)準(zhǔn)的數(shù)字簽名值并返回;
步驟5:為最終生成的數(shù)字簽名值簽發(fā)時間戳,并添加至簽名域中,至此,電子簽章完成。
所述數(shù)字簽名是非對稱算法和摘要算法的聯(lián)合疊加。
所述時間戳即證明某數(shù)據(jù)在某個時間存在,并且未被篡改。
本發(fā)明有益的效果是:本發(fā)明的方法結(jié)合符合PADES標(biāo)準(zhǔn)的數(shù)字簽名標(biāo)準(zhǔn),實(shí)現(xiàn)電子簽名動作的分解,不需要用戶將待簽署文件原文傳遞到第三方簽名服務(wù)平臺,保障了第三方應(yīng)用系統(tǒng)信息的隱私性及保密性。
附圖說明
圖1是本發(fā)明流程示意圖;
圖2是非對稱加密算法原理示意圖;
圖3是摘要算法原理示意圖;
圖4是數(shù)字簽名原理示意圖;
圖5是時間戳原理示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步說明:
如圖1所示,這種基于沙箱技術(shù)實(shí)現(xiàn)原文隱私保護(hù)的電子簽名方法,步驟如下:
步驟1:根據(jù)PADES數(shù)字簽名標(biāo)準(zhǔn),在PDF文件的待簽署位置處添加簽名域;
步驟2:在簽名域中添加印章圖片,更加直觀的展現(xiàn)簽章效果;
步驟3:對添加簽名域后的PDF文件進(jìn)行摘要運(yùn)算,得到摘要值;
步驟4:將摘要值傳給服務(wù)端,基于服務(wù)端的云證書和數(shù)字簽名技術(shù)生成標(biāo)準(zhǔn)的數(shù)字簽名值并返回;
步驟5:為最終生成的數(shù)字簽名值簽發(fā)時間戳,并添加至簽名域中,至此,電子簽章完成。
如圖2所示,傳統(tǒng)的算法加密密鑰與解密密鑰相同,稱之為對稱算法;1976年出現(xiàn)的非對稱算法,加密密鑰與解密密鑰不同,這對密鑰一個稱為公鑰,一個稱為私鑰。公鑰是公開的,互聯(lián)網(wǎng)中任何人都可以取得所有他人的公鑰;私鑰是私密的,只有持有人自己才能使用。如上圖所示,用戶A要向用戶B發(fā)送一段明文。發(fā)送流程如下:
1)首先用戶A取得用戶B的公開密鑰(Bpubkey);
2)使用該公開密鑰及公鑰算法對明文進(jìn)行加密形成密文;
3)將密文發(fā)送給B;
4)B收到密文后,利用自身持有的私鑰(Bprikey)對密文進(jìn)行解密,得到明文。
由于B的公鑰本身就是公開的,因此公鑰密碼體制中不存在密鑰共享的問題;私鑰由持有人終身持有,因此保障了數(shù)據(jù)的安全性。
除了實(shí)現(xiàn)數(shù)據(jù)的機(jī)密性傳輸之外,非對稱算法還可以達(dá)到防抵賴的目的。原理是A使用自己的私鑰加密文件;B收到文件后,使用A的公鑰解密;如果能夠解密的,證明文件一定來源于A。
常見的非對稱算法有RSA、Elgamal、Rabin、DH、ECC(橢圓曲線加密算法)、國產(chǎn)加密算法SM2。
如圖3所示,摘要算法,也叫做哈希算法、指紋算法、雜湊算法。就像每個人的指紋一樣,任何不同的數(shù)據(jù)經(jīng)過摘要算法后得到的結(jié)果都是不同的,而任何相同的數(shù)據(jù)經(jīng)過摘要算法后得到的結(jié)果都是相同的。因此,摘要結(jié)果又稱之為數(shù)據(jù)的數(shù)字指紋。
摘要算法常常用于密碼的校驗(yàn)。為了防止密碼以明文方式保存數(shù)據(jù)庫造成的安全隱患,常常對密碼進(jìn)行摘要算法后保存在數(shù)據(jù)庫;在身份認(rèn)證時,對用戶輸入的密碼再做一次摘要,并與數(shù)據(jù)庫中的摘要進(jìn)行比較;如果相同,則認(rèn)證通過。
摘要算法也常常用于實(shí)現(xiàn)數(shù)據(jù)的完整性校驗(yàn)。我們將數(shù)據(jù)進(jìn)行一次摘要運(yùn)算,將結(jié)果與數(shù)據(jù)原文同時保存或發(fā)送給另一方;在校驗(yàn)時,將數(shù)據(jù)原文再做一次摘要,并將結(jié)果與原摘要結(jié)果進(jìn)行比對,如果相同說明未被篡改,如果不同則說明原文被篡改。
如圖4所示,數(shù)字簽名是非對稱算法和摘要算法的聯(lián)合疊加。數(shù)字簽名的目的有兩個,分別是防抵賴和防篡改。
用戶A進(jìn)行簽名,簽名過程為:第一步對原文進(jìn)行哈希摘要,得到原文的哈希摘要值;第二步使用簽名人的私鑰對哈希摘要值進(jìn)行加密得到簽名值;第三步將原文與簽名值進(jìn)行合并得到簽名后文件。
用戶B進(jìn)行驗(yàn)簽,驗(yàn)簽過程為:第一步將簽名后文件拆分成原文和簽名值;第二步將原文進(jìn)行哈希摘要得到一個哈希值,將簽名值使用簽名人公鑰進(jìn)行解密得到一個哈希值;第三步將兩份哈希值進(jìn)行比較,如果相同則證明文件未被篡改,如果不同則證明文件已被篡改。
如圖5所示,時間戳是“數(shù)字證明”中的另一個關(guān)鍵環(huán)節(jié),即證明某數(shù)據(jù)在某個時間存在,并且未被篡改。時間戳的原理是將原始數(shù)據(jù)經(jīng)過一次摘要運(yùn)算,將摘要結(jié)果發(fā)送給時間戳簽發(fā)中心,時間戳簽發(fā)中心使用數(shù)字簽名技術(shù)對摘要結(jié)果和當(dāng)前時間進(jìn)行一次數(shù)字簽名,由于摘要結(jié)果是原文的數(shù)字指紋從而得以證明該原文在這個時間存在,同時解決了防篡改問題。
PADES是由ISO32000定義、由ETSI維護(hù)的PDF數(shù)字簽名規(guī)范。幾乎所有的PDF閱讀器均遵循這一規(guī)范,從而確保生成的數(shù)字簽名可以在不同的PDF閱讀器中被正確驗(yàn)證。
本發(fā)明結(jié)合符合PADES標(biāo)準(zhǔn)的數(shù)字簽名標(biāo)準(zhǔn),將電子簽名動作予以分解,原文摘要運(yùn)算動作交由應(yīng)用平臺完成,摘要結(jié)果傳遞到第三方簽名服務(wù)平臺中完成私鑰加密動作,最后回傳簽名結(jié)果值在應(yīng)用系統(tǒng)中完成原文和簽名值的合并。此技術(shù)問題的解決,使得在電子簽名過程中不需要接觸到原文而完成簽名動作,最終保障了第三方應(yīng)用系統(tǒng)信息的隱私性及保密性。
除上述實(shí)施例外,本發(fā)明還可以有其他實(shí)施方式。凡采用等同替換或等效變換形成的技術(shù)方案,均落在本發(fā)明要求的保護(hù)范圍。