證書將標識符與公鑰安全地綁定在一起。當計算機請求訪問網絡資源時,將根據計算機的標識授予訪問權限。借助證書,訪問控制代理可以通過驗證證書的簽名來檢測請求計算機的身份是否被偽造或篡改。但是,僅提供有效的證書是不夠的,因為其他人很容易捕獲并使用它。訪問控制代理還必須通過質詢-響應身份驗證控制請求計算機是否真正知道與播發證書中的公鑰匹配的私鑰。該過程完全證明了計算機的身份,因為私鑰永遠不會透露給其他計算機。
現在,讓我們解決證書信任的啟用問題。證書頒發機構是相互信任的第三方,可實現這種信任。證書頒發機構 (CA) 有兩種類型:封閉網絡上的私有 CA 和互聯網上的公共 CA。公共 CA 通過在互聯網上建立信任來開展業務。如果他們碰巧錯誤地頒發證書,他們將不信任并被排除在業務之外,因此他們往往會做得很好。私有 CA 由公司的IT 部門維護。他們的作用是為公司資產頒發證書。根據定義,這些 CA 必然是受信任的。
CA 正在頒發證書。證書頒發是計算機注冊過程的一部分,其工作原理如下:
請求者(要注冊的計算機)已經擁有公鑰和相應的私鑰,如博客 1 中所述
證書申請者生成“CSR”,又名證書簽名請求。CSR 包含請求者的聲明身份(計算機名稱、IP 地址、服務器 URL)及其公鑰。CSR 是使用請求者的私鑰“自簽名”的。
CA 確保請求者的身份(此過程取決于頒發策略)
CA 從 CSR 創建證書(與 CSR 的內容基本相同,具有 CA 標識和其他技術信息等附加屬性,以幫助解釋證書本身)
CA 使用 CA 的私有簽名密鑰對證書進行簽名,并將簽名附加到證書
證書的使用者現在可以使用 CA 證書中找到的 CA 公鑰來驗證其有效性。如果數字簽名有效,則表示身份和公鑰已由受信任的 CA 正式驗證。
下圖 [2] 描述了 x.509 證書的外觀。它是包含技術數據的一系列字段。我們可以清楚地看到頒發者的身份、證書持有者的身份以及 CA 頒發的數字簽名。
相同的證書 [2],以二進制 (DER) 格式編碼:
現在,讓我們看一個 Web 服務器的證書頒發策略示例。當公司需要為其 Web 服務器“www.server.com”提供證書時,他們可以通過向 CA 發送 CSR 從公共 CA 請求證書。CA 將要求 Web 服務器所有者在服務器的根目錄下存放一次性使用令牌(包含隨機值的文件)。服務器的合法所有者可以通過使用文件傳輸協議(FTP)等方式對Web服務器的內容進行特權訪問來做到這一點。假設流氓玩家不能這樣做。然后,CA 嘗試從“www.server.com”獲取此特殊文件。如果成功,則證明CSR來自服務器的合法所有者,并頒發證書。否則,不會頒發證書。因此,沒有其他人可以聲稱“www.server.com”身份。
顯然,如果網絡中的所有計算機希望在相互通信時能夠相互驗證其證書,則必須信任相同的 CA。這意味著他們必須使用相同的 CA 證書來驗證彼此的證書。事實上,CA 證書是自簽名的(實際的 PKI 可能是相互認證的 CA 級聯,但讓我們暫時跳過它)。因此,CA 證書本質上必須是受信任的,因為它們沒有經過父 CA 的認證(這將是一個永無止境的問題:誰在認證父 CA?因此,CA 證書必須安全地安裝到計算機中,使其不能被任意修改。在 Windows 等操作系統上,CA 證書存儲是一個安全組件,需要特殊權限才能修改。同樣,在嵌入式設備中,CA 證書必須存儲在具有嚴格寫入訪問控制的內存中。大多數情況下,CA 證書是預裝的,不容易修改。并且存儲必須不受惡意軟件的影響。如果惡意 CA 可以將其 CA 證書注入計算機,則還可以頒發惡意標識。受惡意 CA 證書感染的計算機將信任這些惡意身份。對于簡單的嵌入式設備,大多數情況下,將為受控制造環境中的每個設備生成證書,并與CA證書一起存儲在設備中。部署后,所有這些設備將相互接受,因為它們共享相同的 CA 并擁有該 CA 頒發的證書。
總之,相互信任的 CA 與相互接受的證書頒發策略相結合,允許相互不受信任的各方相互進行身份驗證。
審核編輯:郭婷
-
計算機
+關注
關注
19文章
7421瀏覽量
87718 -
服務器
+關注
關注
12文章
9021瀏覽量
85184 -
WINDOWS
+關注
關注
3文章
3524瀏覽量
88427
發布評論請先 登錄
相關推薦
評論