數字簽名有哪些形式?相比其他簽名形式,密碼學數字簽名優勢幾何?具備哪些獨有功能?使用過程中又潛藏何等風險?
簽名生效的契約是保障商業活動有序進行的核心手段之一。通過承諾的形式對預期在未來發生的商業行爲進行約定,約定雙方將履行約定看作是一種義務,任意一方違背承諾,都可以通過法律手段進行追訴,以此保障約定的行爲最終得到履行。
除開商業活動,契約保障對於涉及多方之間價值交換的其他活動同樣至關重要。承載價值的各類權益,在實際交換過程中,一般都有先後順序,需要通過契約來保證相關的交換流程都能如期完成,防止先得到權益的一方惡意中斷流程,致使其他參與方未能得到約定權益,造成不必要的損失。
在上述過程中,簽名機制是確保契約合法性和有效性的關鍵。
在信息化時代,如何藉助技術手段實現有效的簽名機制,那就不得不提以密碼學數字簽名爲代表的數字簽名技術。本文作爲數字簽名系列的開篇,對密碼學數字簽名中的共性特徵進行逐一解析。
1. 密碼學數字簽名的優勢
本質上,簽名機制是對“誰認同了什麼”的一個約束,這一約束將簽名主體和契約內容通過簽名關聯了起來,並同時滿足以下基本特性:
-
防仿冒:如果不是簽名主體,無法仿冒簽名主體進行簽名。
-
防篡改:如果契約內容被篡改,原有的簽名便會失效。
-
可驗證:簽名的有效性可以通過技術手段進行驗證。
人類歷史發展的不同階段,曾經爲不同契約載體引入過不同的簽名機制。在信息化時代到來之前,契約主要記載在物理介質上,如羊皮、紙、竹簡等。除了手寫簽名之外,最常見的簽名機制就是印章。
《史記》中就有“青泥封書”的記載。早在戰國時期,古人將竹簡捆紮之後,使用黏土封住繩結,並蓋上印章,防止私拆和篡改,史稱竹簡封。基於類似技術,後續還出現了木牘封、棉紙封、火漆封等。尤其是使用紅色封蠟的火漆封,在中西文明中有過輝煌的歷史,被用於機要信件的身份鑑別和防篡改,並由此派生出各式各樣的印章文化。
直至今日,印章依舊在契約制定中起着關鍵作用。在各類合同中,對紙質文件加蓋印章(簡稱用印)是合同生效的必要條件。用印是一個十分嚴肅的過程,往往需要對於合同中每一處關鍵信息,都蓋上印章確保其不被篡改。對於多頁合同,往往還需要加蓋騎縫章,保證合同內容的連續性。
即便如此,哪怕花費了大量人工,在紙面上蓋滿了印章,也很難保證所有信息都能受到印章保護。因此,以印章爲代表的傳統簽名機制在處理包含大量信息的契約時,面臨顯著的效率和有效性問題。
這些問題恰恰也是數字簽名設計中需要攻克的要點。
如果簡單地將傳統簽名進行數字化處理,使用其數字化影像來直接用作數字簽名,能不能解決以上問題呢?
顯然答案是否定的。尤其對於防仿冒和防篡改,任何人一旦獲得到一份簽名的數字化影像,都可以無限複製並應用到任意契約內容上,這可能會爲簽名主體帶來難以估量的損失。
爲了防止攻擊者輕易生成僞造的數字簽名,簽名的生成過程需要引入只有簽名主體才知道的祕密參數,由此便可構造密碼學數字簽名,對應的祕密參數就是密碼學簽名算法中的密鑰。
一般而言,密碼學數字簽名在滿足以上基本特性之外,可以選擇性地引入更豐富的特性,例如:
-
防抵賴:除了簽名主體,其他人無法生成有效的簽名,所以簽名主體無法抵賴,對應的簽名可以具備法律效力。
-
公開可驗證:簽名主體無需公開自己用於簽名的私鑰,第三方通過對應的公鑰即可完成簽名有效性的驗證。
這些特性可以用來支持數字化經濟中各式各樣的數字化契約,對於需要進行多方協商的約定,在現行的法律框架下,一般都可以採用對應的密碼學數字簽名進行有效地保障。
2. 密碼學數字簽名分類
在現實業務中,對於契約可以有很多形式,因此也對數字簽名產生了非常多樣化的功能需求。
限於篇幅,這裏僅對主要的密碼學數字簽名算法類別進行列舉,具體技術細節將在本系列的後續文章中展開。
對於傳統簽名機制難以實現的效果,如隱匿簽名主體身份、隱匿契約內容、快速驗證海量簽名,密碼學數字簽名都可以在保持簽名機制防仿冒、防篡改、可驗證基本特性的前提下,提供有效的技術方案,也可以進一步擴展,支持其他非常規效果,如提供定向簽名驗證的變色龍簽名等。
由此可見,相比傳統簽名機制,密碼學數字簽名可以滿足更加豐富的業務需求。
3. 密碼學數字簽名認證體系
儘管具體密碼學數字簽名算法各有差異,構建一個有效的密碼學簽名認證體系一般都會用到一系列共性技術。以基於公鑰密碼學算法的數字簽名爲例,常見的共性技術如下:
-
數據摘要算法:將任意長度的數據縮減成簽名算法能夠處理的數據長度,生成與原數據內容強綁定的數據摘要,常用的有各類單向哈希算法(參見第9論),如國密SM3,SHA-3等。
-
簽名算法:使用簽名主體的私鑰,對數據摘要進行運算,生成數字簽名,並提供基於公鑰的數字簽名驗證,常用的有國密SM2、ECDSA、RSA簽名等。
-
PKI(Public Key Infrastructure)公鑰證書服務:提供安全的公鑰分發服務,確保用於驗證簽名的公鑰確實屬於簽名主體,常用的有X.509公鑰證書服務。
對照傳統簽名技術,數據摘要算法相當於捆紮文件的封條,簽名算法相當於封條上蓋的代表身份的印章,PKI公鑰證書服務相當於識別印章有效性的官方圖鑑,這三類技術缺一不可。
值得注意的是,儘管破解密碼學數字簽名比攻擊傳統簽名(如私刻蘿蔔章)的技術難度會高很多,但隨着軟硬件技術的發展,還是有可能對現有技術進行成功攻擊的,爲此有必要充分了解相關安全風險。
如果數據摘要算法出現安全問題
攻擊者就可以在保持原有簽名不變的前提下,任意替換契約內容。2017年,Google演示了首例對SHA-1單向哈希算法碰撞攻擊SHAttered,以單GPU運算110年的代價(任何大型雲平臺服務商都具備的計算能力)爲精心篡改過的PDF文件生成了與原文件完全一樣的SHA-1哈希值。因此,使用過時或已知不安全的數據摘要算法會極大影響數字簽名的防篡改性。
如果簽名算法出現安全問題
攻擊者可以結合數字簽名和原文件提取出簽名所用的私鑰,並使用該私鑰仿冒簽名主體,對未授權的契約進行簽名。例如,目前基於橢圓曲線的簽名算法設計都不具備抗量子特性,一旦量子計算實用化,就會對現有數字簽名的防仿冒性產生巨大沖擊。
如果PKI公鑰證書服務出現安全問題
攻擊者可以使用惡意軟件、木馬、病毒等非密碼學攻擊手段侵入PKI公鑰證書服務,使用自己的公鑰證書,來替換籤名主體的公鑰證書,隨後便可任意使用自己的私鑰對未授權的契約進行簽名。
另一類相關攻擊是攻擊者通過某些手段竊取了簽名主體的私鑰,簽名主體已經完成了公鑰證書的掛失,但PKI公鑰證書服務未能對公鑰證書的黑名單進行及時更新。在這些攻擊的影響下,第三方可能無法通過PKI公鑰證書服務來有效辨識簽名所用的公鑰是否真正屬於簽名主體,所以會對最終簽名結果的可驗證性造成顯著影響。
儘管風險點不少,但作爲全行業普遍使用且廣泛認可的一類密碼學技術,密碼學數字簽名還是一個非常有效的契約認證體系。企業務必需要遵循各類國家和行業相關技術規範,使用行業內標準化的技術實現,對數字簽名系統進行及時更新和升級,最小化相關技術風險。
正是:數字契約一諾值千金,密碼技術一簽抵九鼎!
密碼學數字簽名作爲現代商業中保障契約有效性的核心技術,對於完成經濟數字化轉型、業務在線化、產業數字化升級都至關重要。基於不同的業務需求,密碼學數字簽名可以提供不同的技術方案,滿足傳統簽名機制難以滿足的特性,在保障契約效力的前提下,支持更加多樣化的業務創新。
在密碼學數字簽名諸多高級特性中,最常提及的便是隱匿簽名主體的身份,技術上究竟如何實現,欲知詳情,敬請關注下文分解。
《隱私保護週三見》
“科技聚焦人性,隱私迴歸屬主”,這是微衆銀行區塊鏈團隊推出《隱私保護週三見》深度欄目的願景與初衷。每週三晚8點,專家團隊將透過欄目,圍繞即時可用場景式隱私保護高效解決方案WeDPR的核心技術點,和各位一起探尋隱私保護的發展之道。
欄目內容含括以下五大模塊:關鍵概念、法律法規、理論基礎、技術剖析和案例分享,如您有好的建議或者想學習的內容,歡迎隨時提出。
欄目支持單位:零壹財經、陀螺財經、巴比特、火訊財經、火星財經、價值在線、鏈客社區、IFTNews
往期集錦
第13論|密碼學原語如何應用?走近門限密碼算法
第12論|密碼學原語如何應用?解析密文同態性的妙用
第11論|密碼學原語如何應用?解析密碼學承諾的妙用