聊聊了解數(shù)字簽名,你知道了嗎?
本文轉(zhuǎn)載自微信公眾號「祺印說信安」,作者何威風(fēng)。轉(zhuǎn)載本文請聯(lián)系祺印說信安公眾號。
什么是數(shù)字簽名?
數(shù)字簽名(一種電子簽名)是一種數(shù)學(xué)算法,通常用于驗證消息(例如,電子郵件、信用卡交易或數(shù)字文檔)的真實性和完整性。數(shù)字簽名創(chuàng)建個人或?qū)嶓w獨有的虛擬指紋,用于識別用戶并保護數(shù)字消息或文檔中的信息。在電子郵件中,電子郵件內(nèi)容本身成為數(shù)字簽名的一部分。數(shù)字簽名明顯比其他形式的電子簽名更安全。
為什么要使用數(shù)字簽名?
數(shù)字簽名提高了在線交互的透明度,并在客戶、業(yè)務(wù)合作伙伴和供應(yīng)商之間建立了信任。
數(shù)字簽名如何工作?
熟悉以下術(shù)語以更好地了解數(shù)字簽名的工作原理:
- 散列函數(shù)– 散列函數(shù)(也稱為“散列”)是由數(shù)學(xué)算法和任意大小的文件(例如電子郵件、文檔、圖片或其他類型的數(shù)據(jù))生成的固定長度的數(shù)字和字母字符串。這個生成的字符串對于被散列的文件是唯一的,并且是一個單向函數(shù)——計算出的散列不能被反轉(zhuǎn)以找到可能生成相同散列值的其他文件。目前使用的一些較流行的散列算法是安全散列算法 1 (SHA-1)、安全散列算法 2 系列(SHA-2 和 SHA-256)和消息摘要 5 (MD5)。
- 公鑰加密——公鑰加密(也稱為非對稱加密)是一種使用密鑰對系統(tǒng)的加密方法。一個稱為公鑰的密鑰對數(shù)據(jù)進行加密。另一個密鑰稱為私鑰,用于解密數(shù)據(jù)。公鑰加密可以通過多種方式來確保機密性、完整性和真實性。公鑰密碼學(xué)可以
- 通過使用發(fā)件人的私鑰創(chuàng)建消息的數(shù)字簽名來確保完整性。這是通過散列消息并用他們的私鑰加密散列值來完成的。通過這樣做,對消息的任何更改都將導(dǎo)致不同的哈希值。
- 通過使用收件人的公鑰加密整個消息來確保機密性。這意味著只有擁有相應(yīng)私鑰的接收者才能閱讀該消息。
- 使用公鑰驗證用戶的身份并對照證書頒發(fā)機構(gòu)進行檢查。
- 公鑰基礎(chǔ)設(shè)施 (PKI) – PKI 由支持公鑰分發(fā)和具有數(shù)字證書和證書頒發(fā)機構(gòu)的個人或?qū)嶓w身份驗證的策略、標準、人員和系統(tǒng)組成。
- 證書頒發(fā)機構(gòu) (CA) – CA 是受信任的第三方,它驗證一個人的身份,并代表他們生成公鑰/私鑰對,或者將這個人提供的現(xiàn)有公鑰與該人相關(guān)聯(lián)。一旦 CA 驗證了某人的身份,他們就會頒發(fā)一個由 CA 數(shù)字簽名的數(shù)字證書。然后,數(shù)字證書可用于在請求時驗證與公鑰相關(guān)聯(lián)的人。
- 數(shù)字證書——數(shù)字證書類似于駕駛執(zhí)照,因為它們的目的是識別證書的持有人。數(shù)字證書包含個人或組織的公鑰,并由 CA 進行數(shù)字簽名。有關(guān)組織、個人和 CA 的其他信息也可以包含在證書中。
- 相當(dāng)好的隱私 (PGP)/OpenPGP – PGP/OpenPGP 是 PKI 的替代品。使用 PGP/OpenPGP,用戶通過簽署具有可驗證身份的人的證書來“信任”其他用戶。這些簽名越相互關(guān)聯(lián),在互聯(lián)網(wǎng)上驗證特定用戶的可能性就越大。這個概念被稱為“信任網(wǎng)絡(luò)”。
- 數(shù)字簽名的工作原理是證明數(shù)字消息或文檔從簽名時起沒有被有意或無意地修改過。數(shù)字簽名通過生成消息或文檔的唯一散列并使用發(fā)件人的私鑰對其進行加密來實現(xiàn)此目的。生成的散列對于消息或文檔是唯一的,更改其中的任何部分都將徹底更改散列。
完成后,消息或數(shù)字文檔將進行數(shù)字簽名并發(fā)送給收件人。然后,接收者生成他們自己的消息或數(shù)字文檔的哈希值,并使用發(fā)送者的公鑰解密發(fā)送者的哈希值(包含在原始消息中)。接收者將他們生成的哈希值與發(fā)送者的解密哈希值進行比較;如果匹配,則消息或數(shù)字文檔未被修改并且發(fā)件人已通過身份驗證。
為什么要使用帶有數(shù)字簽名的 PKI 或 PGP?
將數(shù)字簽名與 PKI 或 PGP 結(jié)合使用可以加強它們,并通過驗證密鑰屬于發(fā)送者并驗證發(fā)送者的身份來減少與傳輸公鑰相關(guān)的可能安全問題。數(shù)字簽名的安全性幾乎完全取決于私鑰的保護程度。如果沒有 PGP 或 PKI,就不可能證明某人的身份或撤銷已泄露的密鑰;這可能允許惡意行為者在沒有任何確認方法的情況下冒充某人。
通過使用受信任的第三方,數(shù)字簽名可用于識別和驗證個人并確保消息的完整性。
隨著無紙化、在線交互的使用越來越廣泛,數(shù)字簽名可以幫助我們保護數(shù)據(jù)的完整性。通過了解和使用數(shù)字簽名,可以更好地保護信息、文檔和交易。