數字簽名和數字證書——簡單指南

在世界開始數字化之前,它嚴重依賴簽名文件來批准、驗證交易和不同類型的協議中的不同方並追究其責任。 數字簽名和數字證書是標準簽名的現代替代品。 

數字簽名比通過郵件發送文件和通過傳真發送文件要快得多,它為各種業務提供了幫助。 

什麼是數字簽名? 

數字簽名是對文檔發送者的電子驗證,它允許接收者確定原始內容是否已被中間人更改。 

私鑰和公鑰是數字簽名的兩個基本元素,由專用算法同時創建。 即使它們被創建為在數學上相關,但在外觀上它們會有所不同。 

數字簽名有三個目的: 

  1. 認證 – 接收者可以確定消息的作者身份並確定發送者是否是他聲稱的那個人。 
  2. 不可否認 – 發件人不能否認後來發送了消息,並且可以對未更改的消息負責。 
  3. 誠信 – 消息未更改。 

事實上,數字簽名在美國、歐盟、瑞士、南非、阿爾及利亞、土耳其、印度、巴西、印度尼西亞、墨西哥、沙特阿拉伯、烏拉圭和智利具有法律價值。 

如何創建數字簽名? 

要創建數字簽名,您需要使用您的私鑰對消息進行簽名。  

私鑰是這個等式中只有你持有的元素,通過提供它,你可以證明你是簽署文件的人。 

首先,您對純文本進行哈希處理,以記錄您將要發送的消息的未更改版本。  

邊注. 散列是將任意長度的特定內容轉換為較短的固定長度值。 

如今,最受歡迎的散列算法是 SHA256(安全散列算法)。 請記住,散列是一個單向過程,輸入的微小變化會改變整個輸出。  

接下來,您使用您的私鑰加密純文本的哈希,這將產生數字簽名。 

您將數字簽名附加到純文本文檔並發送。 

通過 非對稱加密,接收方將能夠解密您的數字簽名,並將純文本的哈希值與您提供的哈希值進行比較。  

因此,您可能想知道如何散列文檔。 幸運的是,您計算機上的程序會自動為您執行此操作。  

這是在 Windows 7/8/10 上生成文檔哈希的方法: 

  1. 訪問“命令提示符”;  
  2. 輸入“certutil - hashfile” 
  3. 將文檔拖放到“命令提示符”中。 
  4. 在行尾添加“SHA256”。 

您的最後一行應如下所示: 

certutil -hashfile “C:\User\Computer\Desktop\File.docx” SHA256 

通過這樣做,控制台將顯示代表文件內容的 256 位 / 64 十六進製字符代碼。 

但是你從哪裡得到一個私鑰和一個公鑰? 

這也很簡單。  

您可以通過軟件、在線平台或通過在證書頒發機構註冊的公鑰基礎設施 (PKI) 生成它們。 

邊注。 PKI 是一種公認的管理公鑰加密的格式,提供最高級別的安全性和普遍接受性。  

那麼,如何在文檔中添加帶有私鑰的數字簽名呢? 

為此,您必須再次使用專用軟件,例如 Sign Server、Safe pdf 或 DocuSign。 

它有什麼幫助? 

讓我們假設一個數字簽名如何保護您的虛構場景。  

您以數字方式與國外供應商簽訂外包服務合同。  

在同意條款和條件以及 20 美元/小時的費率後,您對文檔進行哈希處理並簽名,然後將其發送回提供商。 

問題來了。  

簽訂的合同需要交給外包公司的經理,但一個貪婪的推銷員將費率改為 30 美元/小時,這樣他就可以賺取更大的佣金。 到了付錢的時候,你突然發現費率比你約定的要高。 

如何證明文件被篡改?  

經理不知道,但願意澄清情況。 因此,您要求他使用公鑰解密您的簽名並檢查哈希。 通過這樣做,他將能夠發現哈希輸出中的差異並確定合同已被更改。  

即使經理不願意合作,你也可以將他們告上法庭,證明你是對的,並追究他們的責任。 

區塊鏈中的數字簽名 

比特幣的區塊鏈利用 SHA256 算法和數字簽名來確保存儲在比特幣上的信息的不變性 blockchain. 數字簽名有助於跟踪交易並防止雙重支出。 

交易被視為輸入並通過散列算法運行,然後作為具有固定長度的輸出返回。 然後將數據添加到塊中。 該塊還包含一個指向前一個塊的哈希指針。  

哈希指針包含前一個塊內所有數據的哈希值。 對塊中包含的數據的任何輕微修改都會對哈希進行劇烈修改。 修改不僅適用於當前塊,還適用於所有先前的塊,因此使它們無效。 

什麼是數字證書? 

正如您可能已經猜到的那樣,製作數字簽名並使用它並不復雜。 這正是它的弱點所在。  

惡意方可能會嘗試創建數字簽名和公鑰來偽裝成其他人。 如果某人收到這樣的數字簽名消息並斷定該文檔是合法的,則該人將受到來自惡意方的信息攻擊。  

僅數字簽名並不能驗證發送者的真實身份和他的公鑰,因此缺乏身份驗證。 

但是,這個問題可以通過數字證書解決。 數字證書是由證書頒發機構頒發的電子證書。  

認證機構通過 PKI 註冊所有者的身份,並驗證所有者實際上擁有公鑰。 

數字證書通常包含所有者的姓名、公鑰、證書頒發機構和數字簽名。 這樣,從惡意方接收數字簽名的風險顯著降低。 

如何創建數字證書? 

創建數字證書主要有兩種方式: 

  1. 您創建一個自簽名證書。 
  2. 您向證書頒發機構 (CA) 請求它。 

1. 自簽名證書 

創建自簽名證書有多種方法,但要了解該過程,我們將參考自簽名 X509 證書。 您可以在 OpenSSL 中自己創建它。 

只需打開命令提示符並輸入“openssl”。 

接下來,輸入“OpenSSL req -x509 -days 365 -newkey rsa:2048 -keyout my-key.pem -out my-cert.pem”。 

雖然對你們中的一些人來說,這可能看起來像胡言亂語,讓我們看看這一切意味著什麼: 

  • 'req' 表示它是一個證書請求; 
  • 'x509' 指定證書的類型; 
  • “365”表示有效期的天數; 
  • 'newkey' 表示它將是一個新證書;
  • “Keyout”將成為密鑰文件。

之後,您將能夠創建私鑰並添加標識信息。  

您可以找到分步指南 点击這裡

但是,自簽名數字證書僅提供加密,不提供信任。 這樣的證書很容易成為黑客的目標。 他們可以復制它並假裝是“發行者”並開始網絡釣魚以獲取個人信息。 

事實上,使用自簽名 SSL 證書的網站會被互聯網瀏覽器標記為“不受信任”。 

2. CA頒發證書 

由證書頒發機構驗證的數字證書是更值得信賴和更安全的方法。 它也更容易獲得,但它可能意味著收費。  

證書頒發機構通常會收取頒發證書的費用,您可以只申請他們的證書,也可以要求他們處理所有的 PKI。 

如果您需要簡單的證書,可以通過電話或電子郵件與他們聯繫。 他們將驗證您的身份,然後給您一個證書,其中應包含公鑰、證書頒發機構的標識和用戶的標識。 

除了數字認證,您可以要求一些公司處理 PKI、訪問令牌和用戶、設備和機器的多因素身份驗證的所有方面。 

在網站的情況下,證書籤名請求是作為網絡服務器的命令來的。 

關鍵要點 

  • 數字簽名是對發件人的電子驗證。 它依賴於非對稱加密,使用私鑰加密消息,使用公鑰解密。 
  • 消息的內容經過哈希處理以保持完整性。 但是,哈希是一種單向過程,用於驗證內容是否未被更改。 
  • 收到的消息用公鑰解密,內容的哈希值必須與發送者提供的哈希值相匹配。 否則,接收方有理由相信內容已被更改。 
  • 僅數字簽名就缺乏身份驗證。 因此,它需要有證書頒發機構頒發的數字證書作為後盾。 

* 本文中的信息和提供的鏈接僅供一般參考,不應構成任何財務或投資建議。 我們建議您在做出財務決定之前進行自己的研究或諮詢專業人士。 請確認,對於因本網站上的任何信息而造成的任何損失,我們概不負責。

來源:https://coindoo.com/digital-signature/