如需注冊,請前往電腦端
2020-07-02 12:46     來源:微眾銀行區(qū)塊鏈 嚴強     瀏覽:10409
數(shù)字簽名有哪些形式?相比其他簽名形式,密碼學數(shù)字簽名優(yōu)勢幾何?具備哪些獨有功能?使用過程中又潛藏何等風險?
簽名生效的契約是保障商業(yè)活動有序進行的核心手段之一。通過承諾的形式對預(yù)期在未來發(fā)生的商業(yè)行為進行約定,約定雙方將履行約定看作是一種義務(wù),任意一方違背承諾,都可以通過法律手段進行追訴,以此保障約定的行為最終得到履行。
除開商業(yè)活動,契約保障對于涉及多方之間價值交換的其他活動同樣至關(guān)重要。承載價值的各類權(quán)益,在實際交換過程中,一般都有先后順序,需要通過契約來保證相關(guān)的交換流程都能如期完成,防止先得到權(quán)益的一方惡意中斷流程,致使其他參與方未能得到約定權(quán)益,造成不必要的損失。
在上述過程中,簽名機制是確保契約合法性和有效性的關(guān)鍵。
在信息化時代,如何借助技術(shù)手段實現(xiàn)有效的簽名機制,那就不得不提以密碼學數(shù)字簽名為代表的數(shù)字簽名技術(shù)。本文作為數(shù)字簽名系列的開篇,對密碼學數(shù)字簽名中的共性特征進行逐一解析。
1.密碼學數(shù)字簽名的優(yōu)勢
本質(zhì)上,簽名機制是對“誰認同了什么”的一個約束,這一約束將簽名主體和契約內(nèi)容通過簽名關(guān)聯(lián)了起來,并同時滿足以下基本特性:
防仿冒:如果不是簽名主體,無法仿冒簽名主體進行簽名。
防篡改:如果契約內(nèi)容被篡改,原有的簽名便會失效。
可驗證:簽名的有效性可以通過技術(shù)手段進行驗證。
人類歷史發(fā)展的不同階段,曾經(jīng)為不同契約載體引入過不同的簽名機制。在信息化時代到來之前,契約主要記載在物理介質(zhì)上,如羊皮、紙、竹簡等。除了手寫簽名之外,最常見的簽名機制就是印章。
《史記》中就有“青泥封書”的記載。早在戰(zhàn)國時期,古人將竹簡捆扎之后,使用黏土封住繩結(jié),并蓋上印章,防止私拆和篡改,史稱竹簡封?;陬愃萍夹g(shù),后續(xù)還出現(xiàn)了木牘封、棉紙封、火漆封等。尤其是使用紅色封蠟的火漆封,在中西文明中有過輝煌的歷史,被用于機要信件的身份鑒別和防篡改,并由此派生出各式各樣的印章文化。
直至今日,印章依舊在契約制定中起著關(guān)鍵作用。在各類合同中,對紙質(zhì)文件加蓋印章(簡稱用?。┦呛贤У谋匾獥l件。用印是一個十分嚴肅的過程,往往需要對于合同中每一處關(guān)鍵信息,都蓋上印章確保其不被篡改。對于多頁合同,往往還需要加蓋騎縫章,保證合同內(nèi)容的連續(xù)性。
即便如此,哪怕花費了大量人工,在紙面上蓋滿了印章,也很難保證所有信息都能受到印章保護。因此,以印章為代表的傳統(tǒng)簽名機制在處理包含大量信息的契約時,面臨顯著的效率和有效性問題。
這些問題恰恰也是數(shù)字簽名設(shè)計中需要攻克的要點。
如果簡單地將傳統(tǒng)簽名進行數(shù)字化處理,使用其數(shù)字化影像來直接用作數(shù)字簽名,能不能解決以上問題呢?
顯然答案是否定的。尤其對于防仿冒和防篡改,任何人一旦獲得到一份簽名的數(shù)字化影像,都可以無限復(fù)制并應(yīng)用到任意契約內(nèi)容上,這可能會為簽名主體帶來難以估量的損失。
為了防止攻擊者輕易生成偽造的數(shù)字簽名,簽名的生成過程需要引入只有簽名主體才知道的秘密參數(shù),由此便可構(gòu)造密碼學數(shù)字簽名,對應(yīng)的秘密參數(shù)就是密碼學簽名算法中的密鑰。
一般而言,密碼學數(shù)字簽名在滿足以上基本特性之外,可以選擇性地引入更豐富的特性,例如:
防抵賴:除了簽名主體,其他人無法生成有效的簽名,所以簽名主體無法抵賴,對應(yīng)的簽名可以具備法律效力。
公開可驗證:簽名主體無需公開自己用于簽名的私鑰,第三方通過對應(yīng)的公鑰即可完成簽名有效性的驗證。
這些特性可以用來支持數(shù)字化經(jīng)濟中各式各樣的數(shù)字化契約,對于需要進行多方協(xié)商的約定,在現(xiàn)行的法律框架下,一般都可以采用對應(yīng)的密碼學數(shù)字簽名進行有效地保障。
2.密碼學數(shù)字簽名分類
在現(xiàn)實業(yè)務(wù)中,對于契約可以有很多形式,因此也對數(shù)字簽名產(chǎn)生了非常多樣化的功能需求。
限于篇幅,這里僅對主要的密碼學數(shù)字簽名算法類別進行列舉,具體技術(shù)細節(jié)將在本系列的后續(xù)文章中展開。
對于傳統(tǒng)簽名機制難以實現(xiàn)的效果,如隱匿簽名主體身份、隱匿契約內(nèi)容、快速驗證海量簽名,密碼學數(shù)字簽名都可以在保持簽名機制防仿冒、防篡改、可驗證基本特性的前提下,提供有效的技術(shù)方案,也可以進一步擴展,支持其他非常規(guī)效果,如提供定向簽名驗證的變色龍簽名等。
由此可見,相比傳統(tǒng)簽名機制,密碼學數(shù)字簽名可以滿足更加豐富的業(yè)務(wù)需求。
3.密碼學數(shù)字簽名認證體系
盡管具體密碼學數(shù)字簽名算法各有差異,構(gòu)建一個有效的密碼學簽名認證體系一般都會用到一系列共性技術(shù)。以基于公鑰密碼學算法的數(shù)字簽名為例,常見的共性技術(shù)如下:
·數(shù)據(jù)摘要算法:將任意長度的數(shù)據(jù)縮減成簽名算法能夠處理的數(shù)據(jù)長度,生成與原數(shù)據(jù)內(nèi)容強綁定的數(shù)據(jù)摘要,常用的有各類單向哈希算法(參見第9論),如國密SM3,SHA-3等。
·簽名算法:使用簽名主體的私鑰,對數(shù)據(jù)摘要進行運算,生成數(shù)字簽名,并提供基于公鑰的數(shù)字簽名驗證,常用的有國密SM2、ECDSA、RSA簽名等。
·PKI(Public Key Infrastructure)公鑰證書服務(wù):提供安全的公鑰分發(fā)服務(wù),確保用于驗證簽名的公鑰確實屬于簽名主體,常用的有X.509公鑰證書服務(wù)。
對照傳統(tǒng)簽名技術(shù),數(shù)據(jù)摘要算法相當于捆扎文件的封條,簽名算法相當于封條上蓋的代表身份的印章,PKI公鑰證書服務(wù)相當于識別印章有效性的官方圖鑒,這三類技術(shù)缺一不可。
值得注意的是,盡管破解密碼學數(shù)字簽名比攻擊傳統(tǒng)簽名(如私刻蘿卜章)的技術(shù)難度會高很多,但隨著軟硬件技術(shù)的發(fā)展,還是有可能對現(xiàn)有技術(shù)進行成功攻擊的,為此有必要充分了解相關(guān)安全風險。
如果數(shù)據(jù)摘要算法出現(xiàn)安全問題
攻擊者就可以在保持原有簽名不變的前提下,任意替換契約內(nèi)容。2017年,Google演示了首例對SHA-1單向哈希算法碰撞攻擊SHAttered,以單GPU運算110年的代價(任何大型云平臺服務(wù)商都具備的計算能力)為精心篡改過的PDF文件生成了與原文件完全一樣的SHA-1哈希值。因此,使用過時或已知不安全的數(shù)據(jù)摘要算法會極大影響數(shù)字簽名的防篡改性。
如果簽名算法出現(xiàn)安全問題
攻擊者可以結(jié)合數(shù)字簽名和原文件提取出簽名所用的私鑰,并使用該私鑰仿冒簽名主體,對未授權(quán)的契約進行簽名。例如,目前基于橢圓曲線的簽名算法設(shè)計都不具備抗量子特性,一旦量子計算實用化,就會對現(xiàn)有數(shù)字簽名的防仿冒性產(chǎn)生巨大沖擊。
如果PKI公鑰證書服務(wù)出現(xiàn)安全問題
攻擊者可以使用惡意軟件、木馬、病毒等非密碼學攻擊手段侵入PKI公鑰證書服務(wù),使用自己的公鑰證書,來替換簽名主體的公鑰證書,隨后便可任意使用自己的私鑰對未授權(quán)的契約進行簽名。
另一類相關(guān)攻擊是攻擊者通過某些手段竊取了簽名主體的私鑰,簽名主體已經(jīng)完成了公鑰證書的掛失,但PKI公鑰證書服務(wù)未能對公鑰證書的黑名單進行及時更新。在這些攻擊的影響下,第三方可能無法通過PKI公鑰證書服務(wù)來有效辨識簽名所用的公鑰是否真正屬于簽名主體,所以會對最終簽名結(jié)果的可驗證性造成顯著影響。
盡管風險點不少,但作為全行業(yè)普遍使用且廣泛認可的一類密碼學技術(shù),密碼學數(shù)字簽名還是一個非常有效的契約認證體系。企業(yè)務(wù)必需要遵循各類國家和行業(yè)相關(guān)技術(shù)規(guī)范,使用行業(yè)內(nèi)標準化的技術(shù)實現(xiàn),對數(shù)字簽名系統(tǒng)進行及時更新和升級,最小化相關(guān)技術(shù)風險。
正是:數(shù)字契約一諾值千金,密碼技術(shù)一簽抵九鼎!
密碼學數(shù)字簽名作為現(xiàn)代商業(yè)中保障契約有效性的核心技術(shù),對于完成經(jīng)濟數(shù)字化轉(zhuǎn)型、業(yè)務(wù)在線化、產(chǎn)業(yè)數(shù)字化升級都至關(guān)重要?;诓煌臉I(yè)務(wù)需求,密碼學數(shù)字簽名可以提供不同的技術(shù)方案,滿足傳統(tǒng)簽名機制難以滿足的特性,在保障契約效力的前提下,支持更加多樣化的業(yè)務(wù)創(chuàng)新。