CA證書應用一:Outlook發送郵件時,爲郵件添加數字簽名

         CA證書在數字簽名方面應用廣泛,由於Windows很好地支持了RSA算法,所以很多Windows平臺下的第三方應用支持RSA算法證書的密碼應用。最近利用項目總結的機會,特別整理出Windows下常用的CA證書數字簽名應用。計劃分三篇博文,分別講述以下三個方面的數字簽名應用:

1、Outlook郵件添加數字簽名

2、製作帶數字簽名的PDF文檔

3、給Word/Excel文檔添加數字簽名

        首先明確一點,使用CA證書製作的數字簽名,不同於我們平常的個性簽名。數字簽名應用了密碼技術,使得被簽名的內容不可修改和僞造,從而保證內容在存儲和傳輸過程中的安全性。

         第一篇,先從Outlook說起。我們平時使用Outlook收發郵件時,通常沒有添加數字簽名。主要是我們平時的郵件內容安全要求不高,或者說郵件收發環境相對比較安全。郵件安全,主要是指一下兩點:

1、郵件發送者是真實的、不是冒名頂替的;

2、郵件的內容是完整的、沒有被篡改的。

         爲什麼要防止第一點?很簡單,比如說公司老總每個月要發郵件給公司財務,將多少多少錢轉入專用帳戶。如果有一天,公司某個員工(假設有這樣的人),利用公司的管理漏洞,弄到了公司老總的郵件密碼(這個其實很容易,公司IT就能重置所有員工的郵箱密碼)。然後該員工使用公司老總的郵箱地址,給財務發了封信,說這個月的錢打到xxxxxx帳戶上(其實是他自己的帳戶)。另一方面,財務收到郵件後,看到是老總的郵箱帳號發的,沒有質疑就把錢打了!不安全吧?

        第二點其實相對來說,發生的機率會小,因爲除非有人能郵件服務器端接獲數據包,然後篡改數據包,使得郵件接收者看到的郵件內容和原始郵件不一致。這種篡改需要點技術,而且現在的郵件服務器都有很好的防範措施,但是也不能排除有這樣的可能。

        那麼,如果給郵件添加了數字簽名,以上兩點安全隱患就可以完全避免。

        針對第一種情況,如果公司老總和財務約定,老總的郵件都帶有數字簽名。那麼另外的人要想僞造老總的郵件,除了需要獲取郵件密碼之外,還要獲取老總的證書,而證書一般是由USBKey保存的,使用證書籤名時還需要輸入USBKey的密碼。也就是說該人還需要盜用老總的USBKey,並且知道密碼,可想而知幾乎不可能,除非老總自己保管不善。

        那麼第二種情況更簡單,因爲如果郵件內容被篡改後,郵件接受者收到郵件時Outlook會驗證簽名失敗,提示該郵件不可信。

        說了這麼多理論,下面講述下在使用Outlook發送郵件時,如何添加數字簽名。

一、擁有CA證書

        首先,你得擁有屬於你自己的CA證書。一般是通過CA中心申請,以USBKey的形式發放。要注意的是,申請該證書時,有些關鍵項必須正確。比如:

1、證書使用者中的郵件字段,必須和Outlook郵箱帳戶一致。也就是說你的Outlook郵箱只能用你自己的證書,防止盜用。如下圖所示:


該證書使用者的郵箱地址和Outlook的郵箱帳號均爲:[email protected]

2、證書用途必須是“數字簽名”,而且增強性用途必須函數“安全電子郵件”類型,如下圖所示:


3、將證書導入系統(插入USBKey)

        如果是USBKey用戶,一般客戶端在Key接入系統時會自動將Key中的證書安裝至系統,所以無需特別操作。如果是軟件實現的CA證書(比如通過微軟的CSP),則需要將證書文件安裝至系統,具體操作可以通過Windows的證書查看對話框上的功能按鈕實現。

二、編輯郵件內容

        像通常情況下一樣,編輯郵件正文內容。如下圖:


       爲了測試方便,該郵件發送給我自己。

三、選擇簽名證書

       郵件寫好後、在發送前,添加數字簽名,具體操作步驟如下:

1、通過“標記”工具欄,打開屬性對話框,然後在該對話框上,點擊“安全設置”按鈕,如下圖所示:


2、打開安全屬性對話框

        在“安全屬性”對話框上,勾選“爲此郵件添加數字簽名”和“以明文簽名發送郵件”,然後點擊安全設置類型後的“更改設置”,如下圖:


       注意:郵件加密選項,是CA證書更高級的應用,本文不涉及。

3、選擇證書

        在“更改安全設置”對話框上,先勾選“將證書與簽名郵件一通發送”(因爲驗證簽名需要證書,而郵件接受者的電腦上可能沒有你的證書),然後點擊“選擇”按鈕。如下圖:


       此時,會列出系統中(當前用戶)已有的證書,選擇需要使用的證書。本例中只有一本證書,故可以直接選擇。


      然後,逐個點“確定”,直到關閉所有對話框、回到郵件編輯的主界面。

四、發送郵件

        做好這些設置工作後,就可以像平常一樣點擊“發送”按鈕發送郵件了。不過“發送”按鈕點擊後,Outlook可能會有個處理時間,這是因爲Outlook在使用USBKey對郵件內容做簽名運算,一般郵件內容越長越慢。這個過程中,就需要輸入USBKey的密碼了,如下圖所示:


       如果密碼輸入成功,那麼郵件就成功發送出去了!

五、接受郵件

        下面,我們充當郵件接受者,看看如何驗證帶有數字簽名的郵件。

        首先,當我們收到這封郵件時,Outlook會在郵件標題上顯示一個簽名的標記。同時Outlook會顯示正在檢查簽名,實際上Outlook是在使用郵件發送者的證書和微軟的CSP做密碼運算、驗證簽名的正確性。如下圖所示:



       當簽名驗證成功後,Outlook會顯示該郵件的簽名者(證書裏的郵箱地址),如下圖所示:


        根據簽名者就能判斷出該郵件的來源是否可靠了(對應前文說的安全隱患1)。當然,如果郵件在傳輸過程中被篡改,Outlook會提示“簽名不可信”等提示(對應前文說的安全隱患2)。

        綜上所述,給郵件加上數字簽名後,能確保郵件內容的真實性和完整性。同時,使用Outlook和RSA證書,整個簽名驗簽過程都是系統完成的,對用戶來說只是選擇自己的證書即可,簡單易用。


        下期預告:製作帶數字簽名的PDF文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章