技術交流

淺談數位簽章與數位簽章驗證

更新於

數位簽章

數位簽章

數位簽章是針對資料內容,先用不可逆的雜湊摘要演算法(Digest Hash),例如 SHA1 或 MD5 ,產出雜湊摘要(Digest)。雜湊摘要又可被稱為數位指紋,因為雜湊演算法本身具有輸入資料不同,演算出來的雜湊摘要(Digest)就會有所不同的特性。因此,運用雜湊摘要可以確保簽章資料的完整性,沒有在傳輸過程中途被攔截竄改過。接著,再運用簽章私鑰(Private Key)對雜湊摘要內容進行非對稱式的加密演算,例如使用 RSA 演算法,產生數位簽章的簽體內容。最後,將簽章資料內容、簽章者憑證、簽體內容封裝成標準資料格式,例如 PKCS #7、XML Signature、S-MIME 等。

數位簽章驗證

數位簽章驗證

位簽章的驗證過程,就是從簽章者憑證取出簽章公鑰(Public Key),對簽體解密還原得到簽章資料的雜湊摘要(Digest)。另外,再對簽章資料進行與簽章相同的摘要演算法運算,得到雜湊摘要(Digest)。兩個雜湊摘要值進行比對,如果一致,代表用來簽章的簽章私鑰(Private Key)和憑證內的簽章公鑰(Public Key)是成對的,而且簽章資料的內容也確保沒有被竄改。但這樣仍然沒有達到簽章者身份的確認,因此,要藉由數位簽章的驗證來達到身份驗證與不可否認性的目標,仍有賴於憑證有效性的驗證。

憑證有效性驗證

在 X.509 架構的規範下,憑證與其持有者(憑證主體)身份的連結,是由憑證管理中心(Certificate Authority)來把關。憑證管理中心在每一張發出的憑證內,會註記其有效期間的起迄日,並附有憑證管理中心的簽章及其憑證鍊資訊。對於仍在有效期內,卻因為某些因素造成憑證廢止的情形,則由憑證管理中心週期性的發佈憑證廢止清單(CRL, Certificate Revocation List)或提供遵循 OCSP(Online Certificates Status Protocol)協定的線上查詢服務。憑證有效性的驗證,除了確認憑證是受信任的憑證中心或由受信任憑證管理中心的中繼憑證管理中心所發(其憑證鍊可追溯到受信任憑證管理中心),也必須確認簽章時,該憑證仍在其有效期內且未有被公告廢止的情形。當憑證有效性被驗證時,也就可以利用數位簽章來達成身份驗證與不可否認性的目標。

綜觀上述數位簽章與其驗證過程,不難發現步驟相當繁瑣,尤其在簽章驗證的過程,對一般系統開發者來說實在過於複雜。資通電腦的 uPKI 產品考慮到了一般系統開發者的應用需求,提供簡單易用的API,讓開發者可以輕鬆的對資料或檔案進行簽章,無須面對各種演算法和複雜的簽章演算和封裝機制。搭配驗證伺服器,更可以輕鬆解決數位簽章驗證和憑證有效性驗證的難題,讓系統開發者可以更專注既有系統功能的開發,輕鬆整合數位簽章的應用。

閱讀更多