PKI體系快速瞭解

這是目前工作中遇到的一些知識點蒐集整理。

一、什麼是 PKI

首先,PKI(Public Key Infrastructure)是一個體系。

公鑰基礎設施是一個包括硬件、軟件、人員、策略和規程的集合,用來實現基於公鑰密碼體制的密鑰和證書的產生、管理、存儲、分發和撤銷等功能。

PKI體系是計算機軟硬件、權威機構及應用系統的結合。它爲實施電子商務、電子政務、辦公自動化等提供了基本的安全服務,從而使那些彼此不認識或距離很遠的用戶能通過信任鏈安全地交流。
— 百度百科

說白了,PKI還是提供了彼此身份確認的服務,確保通信的安全。
接下來,打開百度的網址,進一步瞭解PKI體系中的各種角色。

1. 數字證書

我跟你對話,如果確認彼此就是自己要對話的人?那麼我們可以互相亮出身份證,來證實彼此身份是可靠的。

那麼,在網絡通信裏,也需要用到這樣的介質,那就是數字證書。

點開百度網址左邊的小鎖圖標,瀏覽器會顯示如下,告訴你這個連接是安全的。

瀏覽器之所以能確認百度的身份,就是因爲數字證書。點擊這個按鈕,進一步可以看到證書相關信息。

信息大概可以分爲 3 類:

1.1 使用者
  • 使用者的信息,如果是企業這裏就是域名,示例中爲baidu.com...。
  • 公鑰信息,這裏是非對稱加密中用戶公開的密鑰,誰都可以看到。、
  • 有效期
1.2 頒發者
  • 頒發者:誰頒發的證書,這裏的GlobalSign Organization Validation。
  • 頒發者的簽名:頒發者對該證書的所有信息的數字簽名,表明他對這個證書的真實性負責。
1.3 證書的其他信息

證書相關的其他信息

基於此,當瀏覽器訪問https的網址,就會檢查證書的有效性,通過後使用證書裏的信息(主要是公鑰)與網址進行通信。

2. 公開密鑰加密(非對稱加密)

數字證書的關鍵在於公鑰,也就是非對稱加密算法。它有2個角色:

  • 私有密鑰 (private key):私有密鑰不能讓其他任何人知道。
  • 公開密鑰(public key):公開密鑰則可以隨意發佈,任何人都可以獲得。
    交互過程是這樣的(發送密文方A,接收方B):
  1. A 使用 B 的公開密鑰進行加密。
  2. A 發送加密後的信息給 B。
  3. B 收到加密的信息後,用自己的私有鑰匙進行解密。

利用這種方式,不需要發送用來解密的私有密鑰,也就不必擔心密鑰被攻擊者竊聽而盜走。

另外,就算你知道了公開密鑰和密文,想要恢復到信息原文是異常困難的。因爲解密過程就是在對離散對數進行求值,這並非輕而易舉就能辦到。

再退一步講,如果能對一個非常大的整數做到快速地因式分解,那麼密碼破解還是存在希望的。但就目前的技術來看是不太現實的。

3. PKI登場

上面在上述的公開密鑰加密方式還是存在一個問題:

  • 無法證明公開密鑰本身就是貨真價實的公開密鑰。

比如,A 正準備和 B 服務器建立公開密鑰加密方式下的通信,A 也確實收到了公開密鑰。但是 A 不知道這個公開密鑰是不是真的來自於 B,或許在傳輸途中,真的公開密鑰已經被攻擊者替換掉了。

所以,還需要一套機制來證明過程中的這些內容都是可靠的,這裏就需要開頭提到的PKI體系了,其核心是證書的產生和分發層級。

證書的產生則來自一位的重要角色:數字證書認證機構(CA,Certificate Authority)。

全世界有大概幾十家左右的根CA(Certificate Authority),計算機上都會預置這些CA的數字證書。比如Amazon、Verisign這種,他們有一整套的機制保證自己是可信的。基於此,他們有自己的數字證書,及與之匹配的私鑰。

網站若想拿到自己的證書,就可以找個子CA,填好信息付好年費,就可以拿到證明了。當瀏覽器訪問網站的時候,看到你有業內權威開的證明,自己也覈對沒問題後就無條件信任你了。

在這裏,PKI 體系必須爲用戶提供安全和透明的服務,用戶不必考慮 PKI 體系中的證書是怎樣生成、更新、撤銷及恢復的,密鑰是如何管理的,只要用戶自己能夠方便地獲得數字簽名即可。

二、PKI在汽車行業的應用

PKI體系在汽車行業的應用場景非常廣泛,如遠程車控、近場車控、安全啓動、Ethernet通信安全等等。在此處講一個優先級最高的“遠程車控”的實例。

1. 建立自己的PKI體系

企業應該先行建立自己的PKI體系,即引入一個PKI供應商,將證書的頒發、申請、吊銷等公用模塊建立起來。接下來,在其之上,建立各應用的流程。

2. 各端接入PKI體系

手機端、雲端與車端Tbox,都在本地生成自己的私鑰,並在雲端申請完自己的證書。這也需要制定相應的業務流程。

三端都需要妥善保管好自己的私鑰,手機端可以將私鑰存儲在TEE中,雲端可存儲的選擇會較多,車端可存儲在HSM或TEE中。若沒有這些硬件的存儲方式,可以使用軟件的白盒加密方法,安全性也有一定保障。白盒加密也就是說即使遭遇白盒攻擊,其密鑰也較難被破解。

3. 開始業務

大家都具備證書與私鑰後,業務流程就變的相當簡單了。

  • 雲端與車端由於交互較多,建議兩端通過雙向認證交換“會話密鑰”(對稱密鑰)。因爲對稱加密要比非對稱加密要快上千倍,根據密鑰長度不同會稍有變化。交換會話密鑰的流程可參考TLS的雙向認證的握手流程。
  • 手機端將車端指令發給雲端,並使用自己的私鑰進行簽名。雲端收到之後,使用手機A的數字證書,進行驗籤。
  • 雲端將車控指令用協商好的“會話密鑰”加密後,發送給車端。車端驗證後,即可在內部執行。

所以,基於PKI體系的方案是更加可靠的。

參考文章:
https://zhuanlan.zhihu.com/p/237155609

https://www.cnblogs.com/pingguo-softwaretesting/p/14970453.html

https://zhuanlan.zhihu.com/p/377562137

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章