- 了解PKI、SSL技術的核心原理
- 掌握PKI架構服務器配置
- 掌握證書管理與應用
公鑰基礎設施(Public Key Infrastructure,PKI)是一個完整的頒發、吊銷、管理數字證書的系統,是支持認證、加密、完整性和可追究性服務的基礎設施。PKI通過第三方可信任機構——數字證書認證機構(Certificate Authority,CA),將用戶的公鑰和用戶的其他標識信息,如名稱、E-mail、身份證號等捆綁在一起,用于網絡用戶的身份認證。信息在傳輸過程中應用基于PKI架構與數字證書結合的安全體系,實現對信息的加密與數字簽名,從而保證信息在傳輸過程中的安全性、完整性、真實性和不可抵賴性。
安全套接層(Secure Socket Layer,SSL)是一種以PKI為基礎、為網絡通信提供安全性及數據完整性的安全協議。SSL協議位于應用層和傳輸層之間,能夠為基于TCP(提供可靠連接)的應用層協議提供安全性保證。目前SSL證書被應用于各個行業,包括金融、醫療、政府等。通過在用戶瀏覽器與服務器之間建立SSL加密通道,將數據進行加密后傳輸,可以大大降低數據傳輸在傳輸過程中被第三方竊取或篡改的風險。
對于電子郵件,目前安全性最高的方式是利用數字證書對郵件進行加密和數字簽名。數字證書一般有公用密鑰、私人密鑰和數字簽名3部分組成。對郵件進行數字簽名時,郵件會包含數字簽名與公用密鑰,接收者利用收到的公用密鑰檢查數字簽名并還原郵件內容。另外,接收者還可以利用發送者的公用密鑰對郵件進行加密,此時只有發送者的私人密鑰能解密郵件內容。
7.1 什么是PKI、SSL
隨著信息技術的發展,電子商務已經逐漸被人們所接受,在整個電子商務的交易過程中安全性是否得到保障顯得格外重要。首先在網上進行電子交易時,由于交易雙方并不在現場,因此無法確認雙方的合法身份;其次由于交易信息是交易雙方的商業秘密,所以在網上傳輸的時候必須保證其安全性,防止信息被竊取;另外,在交易過程中一旦發生糾紛,第三方必須能夠提供仲裁。因此,電子商務交易過程應能實現身份認證、安全傳輸,并保證不可否認性、數據完整性。由于數字證書認證技術采用了加密傳輸和數字簽名,能夠實現上述要求,因此其在國內外電子商務交易中得到了廣泛的應用。
PKI是指用公鑰概念和技術來實施和提供安全服務的安全基礎設施。它的主要目的是通過自動管理密鑰和證書,為用戶建立一個安全的網絡運行環境,使用戶可以在多種應用環境下方便地使用加密和數字簽名技術,從而保證網上數據的機密性、完整性和不可抵賴性。數據的機密性是指數據在傳輸的過程中不會被非授權者竊取,數據的完整性是指數據在傳輸的過程中不會被非法篡改,數據的不可抵賴性是指數據不能被否認。
安全套接層協議是由網景(Netscape Communication)公司設計開發的,它指定了在應用程序協議(如HTTP、Telnet、FTP)和傳輸通信協議(TCP/IP)之間提供數據安全性分層的機制,是一種在TCP/IP上實現的安全協議,其采用公開密鑰技術,為TCP/IP連接提供數據加密、服務器認證、數據完整性以及可選的客戶機認證。由于此協議很好的解決了互聯網明文傳輸的不安全問題,因此很快得到了業界的支持,并已經成為了國際標準。
b站PKI講解
視頻:【證書與PKI】| 公鑰證書 | 證書 | PKI |公鑰基礎設施 | 公開密鑰基礎設施 | 密鑰分發| 密碼學| 信息安全_嗶哩嗶哩_bilibili
ppt:Docs
7.2 PKI、SSL技術核心原理與應用
7.1.2 公鑰加密
PKI通過公鑰加密(Public Key Encryption)技術確保數據傳輸的安全性。要使用該技術完成對數據的加密及解密,用戶需準備一對密鑰,分別是公鑰與私鑰。
(1)公鑰:公鑰(Public Key)對其他用戶是公開的。
(2)私鑰:私鑰(Private Key)是用戶私有的,且存儲在用戶的計算機內,只有用戶自己可以使用。
下圖所示為公鑰加密技術的實現過程。
(1)用戶A使用用戶B的公鑰對發送的信息進行加密。
(2)通過Internet將密文發送給用戶B。
(3)用戶B使用自己的私鑰進行解密。
對稱加密:
對稱加密原理 - 一種古老的加密方式_嗶哩嗶哩_bilibili
非對稱加密:
非對稱加密原理 - 公鑰和私鑰是天生的一對_嗶哩嗶哩_bilibili
7.2.2 數字簽名
用戶可以利用公鑰驗證(Public Key Authentication)技術對發送的數據進行數字簽名,從而驗證數據的完整性和不可抵賴性。
下圖為數字簽名的實現過程:
(1)用戶A用自己的私鑰對數據進行數字簽名。
(2)通過Internet將密文發送給用戶B。
(3)用戶B使用用戶A的公鑰對數據進行解密,從而驗證數據是由用戶A發送的,并且在傳輸的過程中沒有被篡改。
這種使用公鑰加密、私鑰解密或者私鑰加密、公鑰解密的方法稱為非對稱式(ASymmetric)加密。如果加密、解密都使用同一個密鑰,則稱為對稱式(Symmetric)加密。
使用密鑰(公鑰、私鑰)既能加密信息,又能實現數字簽名,從而保證數據傳輸的安全性,但是如何保證密鑰不被冒充呢?現階段的解決方案是使用數字證書。因此標準的PKI體系通常具備以下7個部分。
(1)數字證書認證機構CA
CA是PKI的核心執行機構,是PKI的主要組成部分,通常稱為認證中心。CA的主要職責包括以下5點:
驗證并標識證書申請者的身份。
確保CA用于證書簽名的非對稱密鑰的質量和安全性。
管理證書信息資料。
管理證書序號和CA標識,確保證書主體標識的唯一性。
確定并檢查證書的有效期,發布和維護作廢證書列表(CRL)
CA是確保電子商務、電子政務、網上銀行、網上證券等交易權威性、可信任性和公正性的第三方機構。
(2)證書和證書庫
證書是數字證書或電子證書的簡稱,它符合X.509標準,是具備權威性、可信任性和公正性的第三方機構簽發的,因此,它是權威性的電子文檔。
證書庫是CA頒發證書和撤銷證書的集中存放地,可供公眾進行開放式查詢。證書庫支持分布式存放,即可以將與本組織相關的證書和證書撤銷列表存放到本地,以提高證書的查詢效率。
(3)密鑰備份與恢復
由于用戶可能將用來解密數據的密鑰丟失,從而使已被加密的密文無法打開,所以為避免這種情況發生,PKI提供了密鑰備份和密鑰恢復的機制。當用戶證書生成時,加密密鑰即被CA備份存儲;當需要恢復密鑰時,用戶只需要向CA提出申請,CA就會為用戶自動恢復密鑰。
(4)密鑰和證書的更新
一個證書的有效期是有限的,在實際應用中,由于長時間使用同一個密鑰會提升密鑰被破譯的風險性,因此PKI會對已發布的密鑰或證書進行更新。證書更新一般由PKI系統自動完成,不需要用戶干預。在有效期結束之前,CA會自動啟動更新程序,生成一個新證書來替代舊證書。
(5)證書歷史檔案
對于同一個用戶,證書的定期更新會生成多個舊證書和至少一個當前使用的新證書。這些舊證書以及相應的私鑰就組成了用戶密鑰和證書的歷史檔案。
(6)客戶端軟件
客戶端軟件用于實現數字簽名、加密傳輸數據、在認證過程中查詢證書和相關證書的撤銷信息,以及進行證書路徑處理、對特定文檔提供時間戳請求等。
(7)交叉認證
交叉認證指多個KPI域之間實現互操作。
7.2.3 SSL網站安全連接協議
SSL是一個以PKI為基礎的安全性通信協議,網站擁有SSL證書后,瀏覽器與網站之間就可以通過SSL安全連接進行通信,此時URL路徑中的http改為https。例如,在登錄網上銀行時,一般會使用SSL協議,如下圖所示:
瀏覽器和網站之間建立SSL安全連接時,通常會采用三次握手的協商過程,建立一個雙方都認可的會話密鑰(Session Key),并使用該密鑰對傳輸的數據進行加、解密以及驗證數據是否被篡改。
下圖為SSL協議的三次握手的過程:
7.2.4 PKI和SSL技術的運用
PKI、SSL技術的應用領域包括電子商務、電子政務、網上銀行、網上證券等金融業網上交易業務以及電子郵件、文件傳輸等。PKI作為安全基礎設施,可以根據不同的安全需求為不同的用戶提供多種安全服務。例如,在電子商務應用中,PKI將公鑰加密系統用于加密訂貨單信息、支付信息以及驗證簽名等方面。SSL使用數據加密、身份驗證和消息完整性驗證機制,基于TCP和其他應用層協議提供可靠的連接安全保障。PKI和SSL兩者結合,保障了整個交易過程的安全性、可靠性、保密性和不可否認性。
7.3 PKI架構服務器配置及證書的應用(實驗)
實例場景:A公司由于業務需要,將基于PKI架構升級內部網絡服務,在不改變網絡現有環境的情況下,如何使用證書保護Web服務器和FTP服務器,為用戶提供安全的SSL連接?如何使用證書對電子郵件進行加密和簽名呢?
網絡拓撲:A公司網絡拓撲圖如下圖所示。Win2019-1是公司內部網絡中的DNS服務器、Web服務器、FTP服務器以及郵件服務器。Win2019-2作為獨立根CA。Win2019-3和Win2019-4分別是兩臺客戶端。
解決辦法:基于PKI架構配置服務器與客戶端,使其均信任獨立根CA。Win2019-1服務器向CA申請數字證書并應用于Web服務和FTP服務,客戶端與服務器之間建立SSL安全連接。客戶端向CA申請電子郵件保護證書,用于對郵件進行加密和簽名。
7.3.1 配置證書頒發機構
無論是私鑰、公鑰,還是SSL安全連接,都需要使用數字證書,因此在進行服務器配置時,首先需要配置的就是證書頒發機構(CA)。
在安裝、配置CA之前,需要先安裝Web服務器(IIS),用于發布根CA。IIS的安裝步驟請參照5.2節相關內容。
1、安裝Active Directory 證書服務
(1) 在Win2019-2服務器上,單擊“服務器管理器”——>“管理”→“添加角色和功能“中選擇”Active Directory證書服務”復選框
(2)其它默認下一步,在“角色服務”欄中,勾選“證書頒發機構”“證書頒發機構Web注冊”復選框。
(3)持續單擊“下一步”按鈕,直至安裝完成。最后不要點擊“關閉”按鈕,此時還需要單擊“配置目標服務器上的Active Directory證書服務”鏈接進行相關設置。
(4)如果不小心關閉了該界面,則可以重新打開“服務器管理器”窗口,單擊右上角菜單欄中的旗形圖標,在彈出的下拉菜單中單擊“配置目標服務器上的Active Directory 證書服務”鏈接
2、配置Active Directory 證書服務
(1)在“AD CS配置”窗口中,持續單擊“下一步”,直至出現“角色服務“界面,勾選”證書頒發機構“”證書頒發機構Web注冊“復選框。
(2)單擊下一步按鈕,在”設置類型“界面指定CA的設置類型,選擇”獨立CA“單選按鈕
(3)單擊下一步,指定CA類型,選擇”根CA“單選按鈕,使其成為本實驗中的唯一CA
(4)單擊下一步,指定私鑰類型,這里創建的是CA的私鑰,CA擁有私鑰后,才可以為客戶端頒發證書。選擇”創建新的私鑰“單選按鈕。
(5)單擊下一步,指定加密選項,其中包括”選擇加密提供程序“”密鑰長度“”選擇對此CA頒發的證書進行簽名的哈希算法“等選項。一般采用默認設置即可。
(6)單擊下一步,指定CA名稱
(7)指定證書有效期,這里設置的是CA生成證書的有效期,默認為5年
(8)指定證書數據庫的位置
(9)單擊下一步,在”確認“界面中點擊”配置“按鈕,完成整個配置過程。
(10)在“服務器管理器”面板中,選擇“工具”→“證書頒發機構”,打開“certsrv-[證書頒發機構(本地)]”窗口
7.3.2 使用數字證書保護Web網站
Web服務器必須信任獨立根CA,才能向其申請證書,并將申請成功的證書綁定在網站上。
1、在Web服務器(Win2019-1)上下載CA證書
在Web服務器上下載CA證書,并將其導入服務器“受信任的根證書頒發機構”列表中,這樣才能使Web服務器信任由根CA生成并頒發的數字證書。
(1)根據網絡拓撲圖,CA(Win2019-2)的IP地址為192.168.1.2,因此在Web服務器(Win2019-1)打開IE瀏覽器,輸入網址“http://192.168.1.2/certsrv”,在打開的頁面中,單擊“下載CA證書、證書鏈或CRL”鏈接。
(2)單擊“下載CA證書”鏈接,下載并保存根CA證書文件。
這里我自己創建了個文件夾放證書,這個證書還要用,要能找到。
(3)“Win+R”打開運行對話框,輸入“mmc”,打開“控制臺1”窗口,在菜單欄中單擊“文件”→“添加/刪除管理單元”選項
(4),彈出“添加或刪除管理單元”對話框,單擊左側“可用的管理單元”列表中的“證書”選項,單擊“添加”按鈕,在彈出的“證書管理單元”對話框中
(5),選擇“計算機賬戶”單選按鈕,一次單擊“下一步“”完成“按鈕,這樣就在控制臺中添加了”證書管理單元“
(6)在控制臺左側的列表中,單擊展開”受信任的根證書頒發機構“文件夾,右鍵單擊"證書“選項,在彈出的快捷菜單中選擇”所有任務“→”導入“
(7)在彈出的”證書導入向導”對話框中,單擊瀏覽,找到我們剛才保存的CA證書
(8)選擇“將所有證書都放入下列存儲”單選按鈕,將證書存儲到“受信任的根證書頒發機構”中。
(9)證書導入成功
2、在Web服務器上建立證書申請文件。
(1)在Web服務器(Win2019-1)上配置DNS服務,添加“szpt.com"域,并新建Win2019-1主機記錄,詳細步驟參考4.2.1節第二步。
(2)在“服務器管理器”中找到“IIS管理器”,在Win2019-1主頁界面找到“服務器證書”
(3)選擇“服務器證書”選項,在右側的操作列表中單擊“創建證書申請”鏈接
(4)在彈出的“申請證書”對話框中,填寫對應的文本框內容。因為在本實例中使用了Windows域,所以“通用名稱”必須與域名一致,在第(1)步中,已經為“szpt.com"域設置了相對應的主機記錄,因此這里的通用名稱填寫”Win2019-1.szpt.com"
(5)單擊下一步,“加密服務提供程序”“位長”用來指定網站公鑰的密鑰長度,一般使用默認值。
(6)單擊下一步,設置證書申請文件名與存儲位置(C:\webcert.txt)
3、Web服務器將證書申請文件提交到根CA,根CA審核通過并頒發后,Web服務器再從根CA下載該證書文件。
(1)載Web服務器(Win2019-1)上打開IE瀏覽器,輸入網址“http://192.168.1.2/certsrv”
(2)單擊“申請證書“鏈接,然后點擊“高級證書申請鏈接”
(3)單擊”使用base64編碼的CMC或PKCS #10文件提交一個證書申請,或使用base64編碼的PKCS #7文件續訂證書申請“鏈接
(4)在Web服務器上,雙擊打開在第二步中生成的證書申請文件(C:\webcert.txt),將該文件的所有內容,復制到保存申請的文本框中
(5)單擊”提交“按鈕后將會成功發起證書申請,此時證書會被掛起,還需要CA管理員對其進行審核并頒發
(6)在根CA(Win2019-2)中,選擇”服務器管理器“——》”工具“——”證書頒發機構“
(7)在證書頒發面板中,點擊本機,選擇”掛起的申請“,在右側會出現,我們在Win2019-1中申請的證書,這時點擊右鍵,進行”頒發“
(8)在Web服務器(Win2019-1)的IE瀏覽器中輸入”http://192.168.1.2/certsrv“,單擊”查看掛起的證書申請狀態“鏈接,頁面顯示證書已經通過審核并頒發
(9)單擊”保存的申請證書“鏈接,將證書下載到Web服務器,證書的保存路徑為C:\User\Administrator\Desktop\certnew.cer",就是放桌面上
(10)保存成功
4、Web服務器安裝證書并啟用SSL
(1)在Web服務器(Win2019-1)中,打開IIS管理器,選擇”服務器證書“
(2)單擊右側”操作“列表中的”完成證書申請“鏈接
(3)在打開的”完成證書申請“對話框中,選擇在第三步中保存的證書文件,在”好記名稱“文本框中輸入”Web“,表示這是用于Web服務的證書,最后點擊”確認“按鈕完成整數的申請。
成功!
(4)在IIS管理其中,雙擊右側列表中的”添加網站”
(5)設置網站信息
(6)在網站的物理路徑中新建Index.html文件,內容為“這是Win2019-1 Web服務器上的主頁“
(7)把Win2019-1的默認文檔,設置為”index.html“
(8)點擊Win2019-1,選擇最右側”操作“欄中的”綁定"
(9)點擊“添加”
(10)在添加網站綁定對話框中,把類型選擇為“https”,在SSL中選擇“Web”,點擊確定,完成證書綁定
5、客戶端瀏覽器建立與Web服務器之間的SSL鏈接
1、在客戶端瀏覽器要想實現安全訪問,首先客戶端必須先信任證書頒發機構,這里需要進行配置,
在Win2019-3中按照7.3.2的第一步“1、在Web服務器(Win2019-1)上下載CA證書”,再來一遍。
2、在客戶端(Win2019-3)中打開IE瀏覽器,輸入網址“https://win2019-1.szpt.com",出現如下圖所示內容,訪問成功
7.3.3 FTP over SSL功能
Windows Server 2019的FTP服務支持FTP over SSL功能,即客戶端與FTP服務器之間可以利用SSL實現安全連接。
在IIS管理器中設置FTPSSL:
(1)在Web服務器(Win2019-1)上配置DNS服務,在“szpt.com”域中,新建“ftptest”主機記錄,詳細步驟參考4.2.1節第二步。
(2)打開“Internet Information Services(IS)管理器”窗口,新建FTP站點,名字為“ftptest”
(3)進行FTPSSL設置,在“SSL證書”下拉列表中選擇在7.3.2節中申請好的證書(“好記名稱”為“Web”),“SSL策略”選擇“需要SSL連接”單選按鈕,單擊“應用”鏈接,如圖所示。完成設置后,客戶端就可以通過SSL安全連接方式來連接FTP服務器。
(4)新創建一個服務器Win2019-4,作為另一臺客戶端,IP為“192.168.1.4”,把它的防火墻、Lan段配置好。
(5)用win2019-4訪問“ftp://ftptest.szpt.com",基于SSL的安全站點FTPS,訪問成功!
7.3.4 使用數字證書保護電子郵件(實驗略)
對電子郵件進行加密和簽名的數字證書需要綁定電子郵箱地址。經過加密的電子郵件可以保證在傳輸過程中不被篡改,經過簽名的電子郵件可以保證郵件具有不可抵賴性,確保郵件通信雙方身份的真實性。
數字證書保護電子郵件的原理如圖所示:
1、在DNS服務器中添加郵件服務器的主機記錄
在DNS服務器(Win2019-1)上打開DNS,在”szpt.com“區域中新建兩個主機記錄:“pop3”“smtp”
2、在Win2019-1上安裝郵件服務Winmail
(1)在Winmail官網下載該軟件
官網:Winmail 郵件服務器軟件::下載
百度網盤下載鏈接:百度網盤 請輸入提取碼 提取碼:6666
(2)安裝過程使用默認選項,并按照提示要求設置admin賬戶的登錄密碼,如下圖所示:
(3)打開Winmail服務器程序,在“快速設置向導中新建郵箱,設置密碼,下方顯示設置成功結果
(4)再創建一個郵箱”u2@szpt.com“
(5)打開Winmail管理端工具,本地登錄
(6)這里可以在”用戶管理“中看到u1、u2兩個用戶
3、安裝郵件客戶端軟件
(1)在win2019-4上安裝客戶端軟件Foxmail,安裝軟件在和上面的Winmail都放在百度網盤中了,上面翻連接。
7.4 證書管理
證書的管理包括CA的備份與還原、CA的證書管理及導入導出證書
7.4.1 CA的備份與還原
CA的備份與還原,主要針對CA的私鑰、CA證書、證書數據庫以及證書數據庫日志進行備份與還原。通過指定備份目錄,設置訪問密碼,提高備份內容的安全性。
1、CA的備份
(1)在根CA服務器上(Win2019-1)選擇”工具“——”證書頒發機構“,選擇”WIN2019-2-CA“——”所有任務“——”備份CA“。
(2)選擇要備份的項目,和備份存放路徑
(3)設置備份目錄訪問密碼
(4)完成備份
2、CA的還原
和CA備份步驟相似
7.4.2 CA的證書管理
CA的證書管理包括吊銷證書、發布證書吊銷列表(CRL)等。用戶申請的證書有一定的有效期限,但是如果發生密鑰泄露、業務終止、證書更新等情況,則需要提前將證書吊銷,同時CA會發布一個證書吊銷列表,列車被認為是不能再使用的證書的序列號。
(1)在根CA服務器(win2019-2)上,選擇”證書頒發“,點擊左側列表中的”頒發的證書“選項,在右側的界面中右鍵單擊需要吊銷的證書
(2)設置理由碼和”日期時間“后,單擊”是“按鈕,再去點擊”吊銷的證書“,可以看到已經被我們吊銷的證書
CA能夠自動或手工發布證書吊銷列表(CRL),網絡中的計算機通過下載CRL,就可以知道哪些證書已經被吊銷。
(3)右鍵單擊”吊銷的證書“選項,在彈出的快捷菜單中選擇”所有任務“——”發布“命令,可以發布更新的CRL。
(4)在客戶端(Win2019-3)打開IE瀏覽器,輸入地址”http://192.168.1.2/certsrv",單擊“下載CA證書、證書鏈或CRL“鏈接,在打開的頁面中單擊”下載最新的基CRL“鏈接即可
(5)下載完成后,右鍵單擊該文件,在彈出的快捷菜單中選擇”安裝CRL“命令,即CRL更新發布成功。