1. 程式人生 > >第10章 網路安全(2)_應用層安全(數字簽名)

第10章 網路安全(2)_應用層安全(數字簽名)

3. 應用層安全——數字簽名

3.1 數字簽名

(1)數字簽名細節

  ①A有一個金鑰對(A的私鑰SK和公鑰PK)。傳送檔案前先使用雜湊函式生成該檔案的摘要再使用A的私鑰加密摘要(這個過程稱為簽名,私鑰持有者才能做這個操作)。

  ②然後將加密後的摘要、A的公鑰和檔案(不加密該檔案)一起傳送給B。

  ③B收到後,將加了密的摘要使用A的公鑰進行解密同時B將收到的檔案通過雜湊函式生成一個摘要比較這兩個摘要,如果一樣,就認為A的簽名有效,說明該檔案來源可靠,也沒被修改過。

(2)優點

  ①能確定訊息是否由傳送方簽名併發出來的,因為別人假冒不了傳送方的簽名。

  ②能確定訊息的完整性,因為數字簽名的特點代表了檔案的特徵,檔案如果發生改變,數字摘要的值也將發生變化,不同的檔案將得到不同的數字摘要。

3.2 數字證書頒發

(1)數字證書頒發機構

  ①在網際網路上,通訊雙方自己生成的金鑰對,將公鑰出示給對方來驗證自己的簽名,一方很難斷定對方的身份是否真實、合法。

  ②於是網際網路上使用的金鑰對是由專門的機構發放,在計算機中這些金鑰對是以數字證書的形式出現的,其包含了使用者個人的資訊、發證機構。

  ③電子商務認證授權機構(Certificate Authority,CA),也稱為電子商務認證中心是負責發放和管理數字證書的權威機構。電子商務交易的雙方可以不信任對方,但他們都是信任CA這是個權威機構,所以也信任由其頒發的數字證書。CA承擔公鑰體系中公鑰合法性檢驗的責任

(2)使用CA頒發的證書驗證對方身份的合法性

  ①A向CA提交證書申請(注意,在這之前A須先信任CA證書頒發機構,見3.3節的操作!),CA核實A提交的資訊,為A產生一個數字證書,該數字證書包含A的個人資訊、A的私鑰、A的公鑰還有證書頒發者等資訊。這個證書是用CA的私鑰簽名的(注意不是A的私鑰!)。當然,A也可以從證書中單獨匯出A的公鑰(經CA數字簽名的)。

  ②A給B傳送一個數字簽名的文件,這時B首先核實A的身份,驗證A出示的證書(A的公鑰PKA)是否是CA頒發的。當然B計算機首先要有CA的公鑰,然後,使用CA的公鑰驗證A證書是否來自CA的認證。

  ③驗證通過後,再使用A的公鑰驗證由A簽名的摘要

。這樣A和B雖然都是網路中的個人或企業,彼此可能互不信任,沒辦法知道對方的身份,只要A出示的證書是B信任的證書頒發機構頒發的B就可以使用該證書機構的公鑰驗證A出示的證書(公鑰)是否來自該CA,從而驗證了A的身份

3.3 實戰:傳送數字簽名和數字加密的郵件

(1)安裝證書頒發機構:(模擬網際網路的CA機構)

  ①在Win2003CA虛擬機器安裝Windows元件,選中“應用程式伺服器”和“證書服務”。由於使用者需要通過訪問證書頒發機構的網站申請證書,所以要同時安裝“應用程伺服器”,即IIS服務

  ②在“CA型別”對話方塊中選擇“獨立根CA”(獨立CA需要核實申請者資訊真實性才頒發,而企業CA是通過企業內網的Active Directory(活動目錄)來驗證申請者的身份)

  ③在出現的“CA識別資訊”對話方塊中輸入CA的公用名稱(如5ieduCA)、證書有效期預設值。

 

  ④在“證書資料庫設定”對話方塊中指定證書資料庫路徑和證書資料庫日誌路徑。

  ⑤安裝完成後,可以從“開始”→“所有程式”→“管理工具”中開啟證書頒發機構管理工具。同時,在IIS的預設網站目錄下會生成一個虛擬目錄CertSrv,網路中的計算機通過訪問預設網站的該目錄申請數字證書。

(2)申請和頒發電子郵件數字證書

  ①在WinXP1上申請電子郵件證書之前,首先要信任證書頒發機構,就是將CA的公鑰新增到受信任的根證書頒分機構,這樣就表示XP1信任了該證書頒發機構。方法是:下載一個CA證書:http//192.168.80.20/certsrv/,然後“下載一個CA證書、證書鏈或CRL”→“安裝此CA證書鏈”。可以開啟IE的“Internet選項”→“內容”→“證書”→“受信任的根證書頒分機構”選項卡下檢視到“5ieduCA”,這意味著當前使用者信任了該證書頒發機構,也就擁有了該機構的公鑰

  ②信任該機構以後,可以去申請電子郵件證書。返回主頁,點選“申請一個證書”→“高階證書申請”→“建立並向此CA提交一個申請”,在對話方塊中輸入識別資訊:姓名、電子郵件、公司、部門,中國就寫cn。(注意填寫的資訊不要有中文)→證書型別中選擇“電子郵件保護證書”,同時選中“標記金鑰為可匯出”(這樣使用者可以備份該證書!)→“提交”

  ③在Win2003CA上稽核WinXP1剛剛申請的證書,選中“掛起的申請”,然後選擇剛才的申請,最後再“頒發”。

  ④WinXP1,返回申請的數字證書首頁,點選“檢視掛起的證書申請的狀態”→“電子郵件保護證書”→選中剛稽核下來的證書,再“安裝此證書”。然後開啟“Internet選項”,再次檢視證書,在“個人”選項卡下,可以看到剛才安裝的證書內容(如證書目的、頒發者、頒發給、有效期以及該證書的CA私鑰))

(3)配置Outlook Express賬戶繫結數字證書

  ①在Outlook中新增郵件賬號:[email protected]以便用該郵箱收發郵件。主要注意兩處設定:A.接收郵件伺服器的帳戶名為net5iedu。B傳送郵件伺服器由於預設不允許匿名中繼,所以要勾選“我的伺服器要求身份驗證”。(具體可參考搜狐的郵箱設定幫助)

  ②Outlook賬號繫結數字證書:選擇pop3.sohu.com賬號,在“安全”選項卡中,選中用於數字簽名的證書。(注意,如果看不到申請的數字證書,要檢查當時申請數字證書時填寫的電子郵件地址和Outlook中配置的電子郵件地址是否一樣。如果不同,要重新申請證書)

  ③在“加密首選項”也選項該證書。因為使用者傳送簽名的郵件時會把使用者公鑰一起發給接收者,接收者就可以使用這個公鑰傳送加密郵件

(4)傳送數字簽名的郵件

  ①現在可以給[email protected]傳送一封簽名的郵件了,在Outlook中寫好郵件後,選中工具欄中的“簽名”,再點選“傳送”。注意這時還不能選擇“加密”,因為加密需要收件人的公鑰,而現在還沒有收件人的公鑰。

 

  ②在WinXP2上配置[email protected]郵箱,並接收來自[email protected]的郵件時,發會現郵件前面帶有一個簽名的標記,同時檢視該郵件時,會彈出“安全警告”。這是可以理解,因為WinXP2現在還沒有新增對證書頒發機構的信任。可以參照前面的操作安裝對證書頒發機構的信任。

  ③信任了證書頒發機構以後,就可以正常檢視來自[email protected]的郵件了,只是這些郵件都會有帶有數字簽名的標記,同時還自動建立了一個聯絡人。

(5)傳送加密的郵件

  ①經過上述傳送一封數字簽名的郵件後,由於郵件帶有[email protected]的公鑰,所以會在outlook介面的左側“聯絡人”中出現“5iedu”,在右擊出現的屬性對話方塊中看到該數字證書。

  ②雙擊“5iedu”聯絡人,可以給該人傳送一封加密的郵件注意傳送加密郵件時都是利用對方給的公鑰來加密的。由於此時SantaClaus擁有了對方的公鑰,所以就可以給5iedu傳送加密郵件了。注意兩點:A.檢視加密郵件要用相應的私鑰才可以解密,但SantaClaus並沒有對方的私匙。因此,當傳送完郵件後,是無法檢視己傳送郵件中剛剛傳送的郵件。注意,是連自己傳送的郵件都無法檢視。B.由於SantaClaus沒有自己的郵件證書所以無法傳送簽名郵件

  ③在WinXP1的Outlook檢視來自SantaClaus的郵件,會看到該郵件是被加密的。但由於5iedu擁有證書的私鑰,所以可以檢視該郵件。但由於5iedu並沒有SantaClaus的公鑰,所以不能給SantaClaus傳送加密郵件。