PKI 與 HTTPS 相關知識
PKI
PKI 是 Public Key Infrastructure 的縮寫,是指用公鑰概念和技術來實施和提供安全服務的具有普適性的安全基礎設施。PKI 是由硬件、軟件、策略和人構成的系統,當完善實施后,能夠為敏感通信和交易提供一套信息安全保障,包括保密性、完整性、真實性和不可否認。
PKI 的基本組成:完整的 PKI 系統必須具有權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統、證書作廢系統、應用接口(API)等基本構成部分,構建 PKI 也將圍繞着這五大系統來着手構建。
數字證書,是互聯網通訊中標志通訊各方身份信息的一系列數據,提供了一種在 Internet 上驗證身份的方式,其作用類似於司機的駕駛執照或日常生活中的身份證。它是由一個由權威機構—— CA 機構,又稱為證書授權(Certificate Authority)中心發行的,人們可以在網上用它來識別對方的身份。
HTTPS
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標的 HTTP 通道,簡單講是 HTTP 的安全版。即 HTTP 下加入 SSL 層,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL。
實驗
系統:Windows 2003 × 2(一台作為 CA 服務器,一台作為 HTTPS 服務器)
搭建 CA 服務器
1. 查看本機 IP 地址
本機 IP 地址 10.1.1.245 / 24 網關 10.1.1.1
2. 安裝證書服務
在“添加和刪除程序”→“添加/刪除Windows組件”中,添加下圖中的服務。除 CA 公用名稱外,一路 next 即可安裝完畢。
3. 搭建服務器
打開“開始”→“管理工具”→“Internet信息服務(IIS)”
在“網站”→“默認網站”上右擊,將屬性中的 IP 地址配置為本機 IP。
確認在瀏覽器中輸入 http://10.1.1.245/certsrv/ 可進入證書服務器(如下),則 CA 搭建完畢。
搭建 HTTPS 服務器
1. 證書申請
在 HTTPS 服務器端,仿照上述步驟安裝 IIS 服務
在 IIS 管理器中,點擊“網站”→“默認網站”→“屬性”→“目錄安全性”→“服務器證書”→“新建證書”
配置 IIS 證書,除公用名稱應使用本機 IP 地址外,其余隨意填寫,一路 next
在 HTTPS 服務器端進入證書服務器,點擊“申請一個證書”→“高級證書申請”→“使用 base64 編碼的CMC 或……”
在“提交一個證書或續訂申請”一欄中,粘貼或導入在配置 IIS 證書時保存在 C 盤的 certreq.txt 的內容,提交,隨即出現等待管理員審批准的頁面。
certreq.txt 的內容如下:
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDQzCCAqwCAQAwaDELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB0JFSUpJTkcxEDAO
BgNVBAcTB0hBSURJQU4xETAPBgNVBAoTCHRlc3QuY29tMQ0wCwYDVQQLEwRpbmZv
MRMwEQYDVQQDEwoxMC4xLjEuMTk2MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQCgZrRQ5GkrGSiKUiMPbjAJvsqo4VYKgIgzhI4TY0TEjyQSWXO1g6miR7WY5cW2
7MAgOeCIoXJbAznk53mkyMafcXsT7SABrxTFpFLyK4Otswb1bR1tT+2IvzLMzupZ
r6XoxWcWSQ6bK6fzacytIydkgLH0LVnszNEvEbIfYI/TxQIDAQABoIIBmTAaBgor
BgEEAYI3DQIDMQwWCjUuMi4zNzkwLjIwewYKKwYBBAGCNwIBDjFtMGswDgYDVR0P
AQH/BAQDAgTwMEQGCSqGSIb3DQEJDwQ3MDUwDgYIKoZIhvcNAwICAgCAMA4GCCqG
SIb3DQMEAgIAgDAHBgUrDgMCBzAKBggqhkiG9w0DBzATBgNVHSUEDDAKBggrBgEF
BQcDATCB/QYKKwYBBAGCNw0CAjGB7jCB6wIBAR5aAE0AaQBjAHIAbwBzAG8AZgB0
ACAAUgBTAEEAIABTAEMAaABhAG4AbgBlAGwAIABDAHIAeQBwAHQAbwBnAHIAYQBw
AGgAaQBjACAAUAByAG8AdgBpAGQAZQByA4GJAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAwDQYJKoZIhvcNAQEFBQADgYEAcfZ2JSIsDYKC
DBSvme/pni2n+R2PTfkkITW9zYx4OHc9nsB7B6uxSzzz28b1D/Ki6ktq6l52aEvF
qAYSaQm0bxTB38Er2HEpPV93r8uJkOtZOCPYVTQQ6MUMf39i9n2CSdvld5SwuA6c
PpZitaJjo7B2M026SOCEzJ36EfeCLmU=
-----END NEW CERTIFICATE REQUEST-----
2. 證書的頒發
在 CA 服務器端的“管理工具”→“證書頒發機構”→“掛起的申請”中可看到上述提交的申請
在申請上右鍵“所有任務”→“頒發”即可許可該申請
3. 下載並應用證書
在 HTTPS 服務器端“查看掛起的證書的申請的狀態”,可看到證書已審核通過。可將其以 Base64 編碼的格式下載至本地。
再次回到 IIS 管理器,點擊“網站”→“默認網站”→“屬性”→“目錄安全性”→“服務器證書”→“處理掛起的請求並安裝證書”
瀏覽,找到下載的 .cer 證書,除默認使用 443 端口外一路 next
進入 IIS 管理器,點擊“網站”→“默認網站”→“屬性”→“目錄安全性”→“(“安全通信”欄中的)編輯”,選擇“要求安全通道(SSL)”
至此,HTTPS 服務器搭建完畢。在 CA 服務器上可以通過 Https 協議訪問 HTTPS 服務器的 IP 地址
總結
本次實驗中,共計使用了兩台虛擬機(下稱為“主機 A”、“主機 B”)
其中 主機 A 用作搭建 CA 服務器,為 HTTPS 服務器頒發相應的證書;作為用戶訪問 HTTPS 服務器
主機 B 用作搭建 HTTPS 服務器
HTTP 報文抓包后追蹤 TCP 流,可看到清晰的明文報文
HTTPS 報文抓包后追蹤 TCP 流,只能看到亂碼的密文報文