PKI是Public Key Infrastructure的縮寫,一般譯爲公鑰基礎設施。稱爲「基礎設施」是由於它具有基礎設施的主要特徵。PKI在網絡信息空間的地位與其餘基礎設施在人們生活中的地位很是相似。電力系統經過延伸到用戶端的標準插座爲用戶提供能源;PKI經過延伸到用戶的接口爲各類網絡應用提供安全服務,包括身份認證、識別、數字簽名、加密等。一方面PKI對網絡應用提供普遍而開放的支撐;另外一方面,PKI系統的設計、開發、生產及管理均可以獨立進行,不須要考慮應用的特殊性。
目前,安全的電子商務就是採用創建在PKI基礎上的數字證書,經過對要傳輸的數字信息進行加密和簽名來保證信息傳輸的機密性、真實性、完整性和不能否認性(又稱非否定性),從而保證信息的安全傳輸和交易的順利進行。PKI已成爲電子商務應用系統、乃至電子政務系統等網絡應用的安全基礎和根本保障。
PKI的主要目的是經過自動管理密鑰和證書,爲用戶創建起一個安全的網絡運行環境,使用戶能夠在多種應用環境下方便的使用加密和數字簽名技術,從而保證網上數據的完整性、機密性、不能否認性。數據的完整性是指數據在傳輸過程當中不能被非法篡改;數據的機密性是指數據在傳輸過程當中,不能被非受權者偷看;數據的不能否認性是指參加某次通訊交換的一方過後不能否認本次交換曾經發生過。
web
PKI主要包括認證中心CA、註冊機構RA、證書服務器、證書庫、時間服務器和PKI策略等。 算法
根CA證書,是一種特殊的證書,它使用CA本身的私鑰對本身的信息和公鑰進行簽名。數據庫
RA
RA負責申請者的登記和初始鑑別,在PKI體系結構中起承上啓下的做用,一方面向CA轉發安全服務器傳輸過來的證書申請請求,另外一方面向LDAP服務器和安全服務器轉發CA頒發的數字證書和證書撤消列表。瀏覽器
證書服務器
證書服務器負責根據註冊過程當中提供的信息生成證書的機器或服務。安全
證書庫
證書庫是發佈證書的地方,提供證書的分發機制。到證書庫訪問能夠獲得但願與之通訊的實體的公鑰和查詢最新的CRL。它通常採用LDAP目錄訪問協議,其格式符合X.500標準。服務器
時間服務器
提供單調增長的精確的時間源,而且安全的傳輸時間戳,對時間戳簽名以驗證可信時間值的發佈者。網絡
PKI策略
PKI安全策略創建和定義了一個組織信息安全方面的指導方針,同時也定義了密碼系統使用的處理方法和原則。它包括一個組織怎樣處理密鑰和有價值的信息,根據風險的級別定義安全控制的級別。
通常狀況下,在PKI中有兩種類型的策略:一是證書策略,用於管理證書的使用,好比,能夠確認某一CA是在Internet上的公有CA,仍是某一企業內部的私有CA;另一個就是CPS(Certificate Practice Statement證書操做管理規範)。一些商業證書發放機構(CCA)或者可信的第三方操做的PKI系統須要CPS。這是一個包含如何在實踐中加強和支持安全策略的一些操做過程的詳細文檔。它包括CA是如何創建和運做的,證書是如何發行、接收和廢除的,密鑰是如何產生、註冊的,以及密鑰是如何存儲的,用戶是如何獲得它的等等。如今爲防止CPS泄露太多的信息,準備使用一種新的文件類型,即PKI信息披露規範PDS。
工具
數字證書是由權威、公正的第三方CA機構所簽發的符合X.509標準的權威的電子文檔。測試
數據加密
數字證書技術利用一對互相匹配的密鑰進行加密、解密。當你申請證書的時候,會獲得一個私鑰和一個數字證書,數字證書中包含一個公鑰。其中公鑰能夠發給他人使用,而私鑰你應該保管好、不能泄露給其餘人,不然別人將能用它以你的名義簽名。
當發送方向接收方發送一份保密文件時,須要使用對方的公鑰對數據加密,接收方收到文件後,則使用本身的私鑰解密,若是沒有私鑰就不能解密文件,從而保證數據的安全保密性。這種加密是不可逆的,即便已知明文、密文和公鑰也沒法推導出私鑰。網站
數字簽名
數字簽名是數字證書的重要應用之一,所謂數字簽名是指證書用戶使用本身的私鑰對原始數據的哈希變換後所得消息摘要進行加密所得的數據。信息接收者使用信息發送者的證書對附在原始信息後的數字簽名進行解密後得到消息摘要,並對收到的原始數據採用相同的雜湊算法計算其消息摘要,將兩者進行對比,便可校驗原始信息是否被篡改。數字簽名能夠提供數據完整性的保護,和不可抵賴性。
使用數字證書完成數字簽名功能,須要向相關數字證書運營機構申請具有數字簽名功能的數字證書,而後才能在業務過程當中使用數字證書的簽名功能。
應用範圍
PKI技術的普遍應用能知足人們對網絡交易安全保障的需求。做爲一種基礎設施,PKI的應用範圍很是普遍,而且在不斷髮展之中,下面給出幾個應用實例:
Web應用
瀏覽Web頁面是人們最經常使用的訪問Internet的方式。若是要經過Web進行一些商業交易,該如何保證交易的安全呢?爲了透明地解決Web的安全問題,在兩個實體進行通訊以前,先要創建SSL鏈接,以此實現對應用層透明的安全通訊。
SSL是一個介於應用層和傳輸層之間的可選層,它在TCP之上創建了一個安全通道,提供基於證書的認證,信息完整性和數據保密性。SSL協議已在Internet上獲得普遍的應用。
安全Web服務的流程(SSL協議工做流程)以下圖所示。
安全電子郵件
電子郵件憑藉其易用、低成本和高效已經成爲現代商業中的一種標準信息交換工具。隨着Internet的發展,商業機構或政府機構都開始用電子郵件交換一些祕密的或是有商業價值的信息,這就引出了一些安全方面的問題,這些問題包括:消息和附件能夠在不爲通訊雙方所知的狀況下被讀取、篡改或截取;發信人的身份沒法確認。電子郵件的安全需求也是機密性、完整性、認證性和不能否認性,而這些均可以利用PKI技術來得到。目前發展很快的安全電子郵件協議是S/MIME,這是一個容許發送加密和有簽名郵件的協議。該協議的實現須要依賴於PKI技術。
Windows Server 2003有一個很是健壯的公鑰基礎結構。它提供了一整套服務和工具,用以支持公鑰應用程序的部署和管理,它的關鍵部分是Microsoft證書服務。可以支持部署一個或多個企業級CA,這些CA支持證書的頒發和吊銷。它們與Active Directory集成在一塊兒,Active Directory主要提供CA的位置信息、CA的策略,並公佈頒發證書和吊銷證書的信息。
Microsoft證書服務使企業可以方便地創建CA,以知足其商業需求。證書服務包含一個默認策略模塊,適於將證書頒發給企業實體。證書服務還包括請求實體的驗證以及該域PKI安全策略是否容許所請求證書的驗證。在考慮到其餘策略,能夠很容易地對其進行相應的修改或改進。由於證書服務是基於標準的,因此它爲異構環境中支持公鑰的應用程序提供了普遍的支持。
PKI是由一組在一塊兒工做的服務和組件組成。它用來創建一個受保護的通訊環境,以保護intranet和Internet上的電子郵件通訊安全,同時還能夠保護Web站點和公司基於Web的事務處理,增強或更進一步保護加密文件系統,並使智能卡得以實施等。
本練習主機A、B、C爲一組,D、E、F爲一組。實驗角色說明以下:
實驗主機 | 實驗角色 | |
---|---|---|
主機A、D | CA(證書頒發機構) | |
主機B、E | 服務器 | |
主機C、F | 客戶端 |
下面以主機A、B、C爲例,說明實驗步驟。
首先在主機中使用ipconfig
命令查看本機IP地址爲172.16.0.9
,再打開Windows Server 2003虛擬機,用ping
命令嘗試與主機鏈接:
如圖,代表鏈接成功。
一般在Web服務器端沒有作任何加密設置的狀況下,其與客戶端的通訊是以明文方式進行的。
http://CA的IP/certsrv/
並確認。certreq.txt
,將其內容所有複製粘貼到提交證書申請頁面的「保存的申請」文本框中,而後單擊「提交」,並通告CA已提交證書申請,等待CA頒發證書。cer
:p7b
: 在「默認網站」-->「屬性」的「目錄安全性」頁籤中單擊「服務器證書」按鈕,此時出現「Web服務器證書嚮導」,單擊「下一步」。
選擇「處理掛起的請求並安裝證書」,單擊「下一步」。
在「路徑和文件名」中選擇存儲到本地計算機的證書文件,單擊「下一步」。
在「SSL端口」文本框中填入「443」,單擊「下一步」直到「完成」。
此時服務器證書已安裝完畢,能夠單擊「目錄安全性」頁籤中單擊「查看證書」按鈕,查看證書的內容,回答下面問題。
證書信息描述: 。
頒發者: 。
打開IE瀏覽器點擊「工具」-->「Internet選項」-->「內容」-->「證書」,在「受信任的根證書頒發機構」頁籤中查看名爲userGX的頒發者(也就是CA的根證書),查看其是否存在 。
服務器下載、安裝CA根證書
右鍵單擊certnew.p7b
證書文件,在彈出菜單中選擇「安裝證書」,進入「證書導入嚮導」頁面,單擊「下一步」按鈕,在「證書存儲」中選擇「將全部的證書放入下列存儲」,瀏覽選擇「受信任的根證書頒發機構」-->「本地計算機」以下圖所示。
單擊「下一步」按鈕,直到完成。
再次查看服務器證書,回答下列問題:
證書信息描述: 。
頒發者: 。
再次經過IE瀏覽器查看「受信任的根證書頒發機構」,查看名爲userGX的頒發者(也就是CA的根證書),查看其是否存在 。
客戶端提交證書申請
在主頁面「選擇一個任務」中單擊「申請一個證書」,進入下一頁面。
在證書類型頁面中選擇「Web瀏覽器證書」,進入下一頁面。
在「Web瀏覽器證書 - 識別信息」頁面中按信息項目填寫本身的相關信息,下表是一個填寫實例。
信息 | 填寫內容 | |
---|---|---|
姓名 | userGX,其中G爲組編號(1-32),X爲主機編號(A-F),如第2組主機F,其使用的用戶名爲user2F | |
電子郵件 | userGX@CServer.Netlab | |
公司 | Netlab | |
部門 | PKI | |
市/縣 | Changchun | |
省 | Jilin | |
國家(地址) | CN |
客戶端下載、安裝證書鏈
客戶端從新訪問CA證書服務主頁面,單擊「查看掛起的證書申請的狀態」,而後單擊本身的證書申請。此時頁面顯示「證書已頒發」。單擊「安裝此證書」,對於彈出的「安全性警告」對話框選擇「是」,這時頁面顯示信息「您的新證書已經成功安裝」。
在實驗中,擔任CA角色的主機,須要安裝哪些服務組件?
A. 證書服務組件
B. IIS
C. 證書服務組件和IIS
D. 證書服務組件和目錄服務組件
【答案】C
安裝證書服務組件過程當中,CA的類型選擇的是什麼類型?
A. 從屬根CA
B. 獨立根CA
C. 企業根CA
D. 二級根CA
【答案】B
在安裝組件以後,在哪裏啓動證書頒發機構服務,主機便擁有了CA角色?
A. 開始-程序-附件
B. 開始-程序-控制面板
C. 開始-程序-管理工具
D. 開始-程序-啓動
【答案】C
在與HTTPS://***鏈接後,在瀏覽器的狀態欄會看到一個小鎖,點擊小鎖能夠直接查看到誰的證書?
A. 客戶端
B. WEB服務器
C. CA機構
D. Windows
【答案】B
本次實驗中,單向認證是認證哪一方?
A. 客戶端
B. WEB服務器
C. CA服務器
【答案】B
本次實驗中,雙向認證是認證哪兩方?
A. 客戶端和WEB服務器
B. WEB服務器
C. 客戶端和CA服務器
【答案】A
在實驗中,創建通訊須要進行單向認證仍是雙向認證是在哪裏進行設置的?
A. 客戶端的瀏覽器
B. WEB服務器端的瀏覽器
C. WEB服務器端的IIS
D. CA服務器的IIS
【錯選】D
【答案】C
本實驗中,服務器下載的certnew.cer文件中包含幾個證書?分別是誰的證書?
A. 1個,服務器證書
B. 1個,客戶端證書
C. 2個,服務器證書和CA根證書
D. 3個,服務器證書、客戶端證書以及CA根證書
【錯選】C
【答案】A
本實驗中,服務器下載的certnew.p7b文件中包含幾個證書?分別是誰的證書?
A. 1個,服務器證書
B. 1個,客戶端證書
C. 2個,服務器證書和CA根證書
D. 3個,服務器證書、客戶端證書以及CA根證書
【答案】C
在服務器端設置「要求安全通道SSL」,默認指定的通訊端口是哪一個?
A. 80
B. 21
C. 139
D. 443
【錯選】A
【答案】D
從實驗中能夠判斷,在HTTPS通訊中,實現了哪些安全服務?
A. 只實現了認證服務
B. 只實現了保密性服務
C. 只實現了認證與保密性服務
D. 實現了認證、保密性以及完整性服務
【答案】D
在實驗過程當中,第一次查看服務器證書時出現了下圖所示信息,爲何會出現這種狀況?怎麼解決這個問題?
【個人回答】證書非Microsoft信任機構頒發,需手動添加信任。
【答案】沒有安裝CA根證書。將CA根證書安裝到受信任的證書頒發機構目錄下。