圖1 請求證書

  數(shù)字簽名(創(chuàng)建消息,創(chuàng)建者密封了真實(shí)性)

  密鑰加密(對于諸如“加密文件系統(tǒng)”這樣的技術(shù),使用一個(gè)密鑰保護(hù)另一個(gè)密鑰)

  保護(hù)郵件(只有擁有相應(yīng)私鑰的目標(biāo)收件人才能閱讀加密郵件)

  發(fā)送 S/MIME 簽名的電子郵件時(shí)并不需要密鑰加密屬性。但在發(fā)送或接收加密郵件時(shí)則需要這個(gè)屬性,但不需要簽名屬性。默認(rèn)情況下,Windows® 證書服務(wù)中的模板啟用這三個(gè)屬性。如果不允許用戶申請新證書,則向?qū)?dòng)時(shí)三個(gè)屬性都不會(huì)顯示。如果沒有任何企業(yè) CA 可用,會(huì)向用戶顯示“注冊錯(cuò)誤”,指明無法聯(lián)系域或 CA。對于此演練,我們將假設(shè)單一證書同時(shí)允許簽名和加密。

  交換證書

  兩個(gè)用戶開始發(fā)送加密電子郵件的最簡單方法就是彼此直接傳送已簽名的郵件。撰寫好郵件之后,用戶可單擊“簽名”按鈕。(有時(shí)候除非至少用過一次,否則在 Outlook 中會(huì)默認(rèn)隱藏這個(gè)按鈕??梢酝ㄟ^依次單擊新郵件的“選項(xiàng)”設(shè)置、“安全設(shè)置”按鈕,然后選中“安全屬性”對話框上的“為此郵件添加數(shù)字簽名”框找到該按鈕)。簽名按鈕(帶有紅色緞帶的黃色小信封,寫著“簽名”)會(huì)將數(shù)字簽名添加到郵件中以建立它的來源真實(shí)性。

  按下“發(fā)送”按鈕之后,可能會(huì)提示用戶提供另外持有的密鑰令牌,如插入智能卡或輸入 PIN。這會(huì)視組織中所采用的特定密鑰保護(hù)方法而定。

  收到 S/MIME 簽名郵件的用戶需要查看并右鍵單擊發(fā)件人名稱(發(fā)件人: 之后),然后從上下文菜單中選擇“添加到 Outlook 聯(lián)系人”來添加新的聯(lián)系人項(xiàng)或更新現(xiàn)有聯(lián)系人。證書隨后會(huì)與該特定的聯(lián)系人項(xiàng)建立關(guān)聯(lián)。請注意,在常見的 Active Directory 環(huán)境中(兩個(gè)用戶位于相同的林或公司中),公用用戶證書分發(fā)是通過用戶的 Active Directory 對象中的屬性自動(dòng)完成的。

  交換證書的另一種方法是每個(gè)用戶以附件的形式發(fā)送其 S/MIME 證書。為此,雙方都必須將其證書導(dǎo)出為 CER 文件。用戶需要查看證書,并遵循我們即將討論的導(dǎo)出過程,注意不要使用該導(dǎo)出過程導(dǎo)出私鑰,如圖 2 所示。

  

  圖2 交換證書時(shí),不要導(dǎo)出私鑰

  每個(gè)收件人接下來會(huì)在 Outlook 中手動(dòng)創(chuàng)建聯(lián)系人項(xiàng),然后將證書添加到該發(fā)件人項(xiàng)中。兩個(gè)用戶交換證書后,他們就能夠彼此交換加密的電子郵件了。

 

疑難解答

  有時(shí)收件人會(huì)無法打開加密的郵件。對于在這個(gè)領(lǐng)域中出現(xiàn)的問題,最有可能的三個(gè)原因分別是根 CA 不受信任、無法驗(yàn)證中間 CA 以及無法使用 CRL。

  不受信任的根CA 通常會(huì)在Outlook中顯示為與簽名相關(guān)聯(lián)的錯(cuò)誤消息:“該簽名有問題。單擊簽名按鈕可獲取詳細(xì)信息。”若要解決問題,請從Outlook中打開證書,然后單擊彈出對話框中的“查看證書頒發(fā)機(jī)構(gòu)”按鈕。查看證書屬性對話框“常規(guī)”選項(xiàng)卡上的消息。如果消息指示CA根證書不受信任,而且需要安裝,請轉(zhuǎn)到“詳細(xì)信息”選項(xiàng)卡。單擊“復(fù)制到文件…”按鈕,并按照向?qū)дf明進(jìn)行操作,接受所有默認(rèn)設(shè)置并在收到提示時(shí)提供文件名和文件夾。

  現(xiàn)在以計(jì)算機(jī)管理員的身份打開一個(gè)新的 Microsoft 管理控制臺(tái)(MMC)。轉(zhuǎn)到“文件”|“添加/刪除管理單元(Ctrl+M)”,選擇“證書”,并添加它以用于計(jì)算機(jī)帳戶,在提示時(shí)選擇“本地計(jì)算機(jī)”。接下來,在左邊樹狀結(jié)構(gòu)中展開“證書”節(jié)點(diǎn),然后對“受信任的根證書頒發(fā)機(jī)構(gòu)”執(zhí)行相同的操作。右鍵單擊并從彈出菜單中選擇“所有任務(wù)”|“導(dǎo)入”。將前述導(dǎo)出的證書文件導(dǎo)入到“受信任的根證書頒發(fā)機(jī)構(gòu)”并單擊“完成”。然后讓受影響的用戶重新啟動(dòng)Outlook。

  應(yīng)該僅使用上述說明添加已知的受信任根CA。并不是創(chuàng)建的所有根CA 都是平等的。請先審慎考慮是誰擁有和操作根CA,再使用該方法將根證書添加到整個(gè)系統(tǒng)的存儲(chǔ)區(qū)。如果企業(yè)通過組策略控制受信任的根CA 列表,則會(huì)將配置推送到客戶端系統(tǒng)。在這種情況下,上述的說明可能并不適用。如果事實(shí)如此,您可能需要探索其他替代辦法,如確保網(wǎng)站或服務(wù)器的安全以交換數(shù)據(jù),因?yàn)槭褂秒娮余]件的體驗(yàn)并不順暢,也不會(huì)受到保護(hù)。

  上面提出的第二個(gè)問題,即無法驗(yàn)證中間CA,通常在兩種情況下發(fā)生:嘗試驗(yàn)證證書的客戶端無法到達(dá)證書中所定義的頒發(fā)機(jī)構(gòu)信息訪問(AIA)位置,或者客戶端所擁有的中間CA 證書版本與CA 所頒發(fā)的版本不符(客戶端通常晚于一兩個(gè)版本)。這些情況在Outlook用戶界面中看起來十分類似。我們只在非常特殊的情形下看到過這種情況,就是當(dāng)信任鏈中的中層 CA 已過期,并在它頒發(fā)的其他從屬證書到期之前重新頒發(fā)。

  基本上,這個(gè)問題發(fā)生在信任鏈中存在中斷的情況下。有些父證書可能不具備完善的詳細(xì)資料或者沒有適當(dāng)內(nèi)嵌在葉節(jié)點(diǎn)中,進(jìn)而使整個(gè)情況更加復(fù)雜。

  若要解決此問題,發(fā)件人需要打開新郵件,并依次單擊新郵件的“選項(xiàng)”、“安全設(shè)置”按鈕以及“更改設(shè)置”按鈕?,F(xiàn)在單擊適用于簽名證書的“選擇”按鈕,然后單擊彈出對話框上的“查看證書”按鈕。轉(zhuǎn)到“證書路徑”選項(xiàng)卡,選擇葉節(jié)點(diǎn)的頒發(fā)者(也就是在信任鏈中往上一層),然后單擊“查看證書”按鈕。依次單擊“詳細(xì)信息”選項(xiàng)卡、“復(fù)制到文件…”按鈕,然后完成導(dǎo)出向?qū)Вx擇PKCS #7(.P7B)。確定已選中“包括證書路徑中所有證書”選項(xiàng),如圖 3 所示。最后,將導(dǎo)出的信任鏈文件發(fā)送到目標(biāo)收件人。

  

  圖3 修正證書鏈中的中斷

  獲得導(dǎo)出的證書鏈后,收件人需要打開并導(dǎo)出信任鏈,做法跟我們之前導(dǎo)入根證書相似。一個(gè)區(qū)別是所選的存儲(chǔ)文件夾應(yīng)該是“中間證書頒發(fā)機(jī)構(gòu)”。如果郵件已打開并且證書在Outlook中顯示為有效,則一切都會(huì)適當(dāng)運(yùn)作。

  至于第三個(gè)問題,即無法使用CRL,解決方法相對簡單。Outlook 的最初響應(yīng)看起來與前一個(gè)問題非常相似。不過,即使根或中間簽名CA是受信任的,也會(huì)顯示錯(cuò)誤。對于證書鏈中葉節(jié)點(diǎn)以上的每個(gè)級別,請依次打開證書的屬性和“詳細(xì)信息”選項(xiàng)卡,然后查看稱為“CRL 分發(fā)點(diǎn)”的字段。

  對于列出的每個(gè)CRL分發(fā)點(diǎn)(尤其是Internet可以訪問的分發(fā)點(diǎn)),確保CRL文件URL可以打開。驗(yàn)證完每個(gè)級別則在信任鏈中向上移動(dòng)一個(gè)級別。如果有任何CRL無法獲得,則它可能是問題的根源。若要解決問題,您應(yīng)該確認(rèn)本地網(wǎng)絡(luò)策略并沒有阻止您的訪問。否則,請嘗試與擁有CA的公司聯(lián)系或等待CA的CRL分發(fā)點(diǎn)恢復(fù)正常運(yùn)作狀態(tài)。

 

分發(fā)證書

  分發(fā)是非常簡單的過程。基本上,已簽名的郵件傳輸?shù)洁]件服務(wù)器,該服務(wù)器然后通過可靠的方法(即SMTP)將它從一個(gè)位置傳送到另一個(gè)位置。對于傳輸中的已簽名或已加密郵件,我們發(fā)現(xiàn)的一個(gè)問題是,有些郵件系統(tǒng)會(huì)拒絕或中斷通過它們的已簽名或已加密郵件。解決方法是與系統(tǒng)的 IT 經(jīng)理合作來允許這些郵件類型。當(dāng)然,您可能不得不接受某些郵件類型會(huì)被阻止的事實(shí)。接收方可能有正當(dāng)?shù)睦碛稍谔囟ǖ牟僮鳝h(huán)境下不允許加密郵件。

  加密回復(fù)

  若要?jiǎng)?chuàng)建加密回復(fù)(假設(shè)上述啟動(dòng)過程已完成),發(fā)件人只需要新建郵件,然后在郵件撰寫窗口中單擊“加密”按鈕(帶有藍(lán)色鎖的黃色小信封,寫著“加密”)。如果“加密”按鈕不可用,請按照發(fā)送已簽名郵件的步驟(最后一步除外),選中“加密郵件內(nèi)容和附件”復(fù)選框。

  將加密郵件發(fā)送到收件人并不需要 S/MIME 簽名,但是兩者搭配也無妨,因?yàn)楹灻墒棺x者驗(yàn)證發(fā)件人(加密功能并不會(huì)對發(fā)件人進(jìn)行任何聲明)。加密過程將嘗試使用所有收件人已知的公鑰來加密郵件。如果系統(tǒng)無法找到某些指定收件人的證書,則會(huì)在彈出對話框中將其標(biāo)示出來,建議向其發(fā)送未加密郵件,如圖 4 所示。

  

  圖4 如果您使用證書時(shí)遇到問題,可決定發(fā)送未加密的郵件

  默認(rèn)情況下,簽名和加密應(yīng)該與其他同等配置的客戶端系統(tǒng)搭配使用,但是如果哈希或加密算法不支持下層的話,有時(shí)跨版本加密或簽名郵件可能會(huì)產(chǎn)生問題。我們在將經(jīng)過簽名的電子郵件(使用 SHA-512 作為哈希算法)發(fā)送到運(yùn)行 Windows XP SP2 的用戶時(shí),會(huì)遇到這樣的問題。因?yàn)榻邮障到y(tǒng)并不支持哈希,所以用戶無法驗(yàn)證簽名或閱讀郵件。但是,除非 Outlook 默認(rèn)值有所更改,否則用戶不可能在這個(gè)階段遇到太多問題。

  收到郵件后,假如與共用證書相關(guān)聯(lián)的私鑰可用,目標(biāo)收件人應(yīng)該能夠打開郵件。此外,用戶可能需要提供其他令牌以證明持有私鑰,具體取決于私鑰的部署方式。已完成類似啟動(dòng)過程的其他用戶可與發(fā)件人進(jìn)行類似的簽名和加密通信。如果用戶更改了他的私鑰(也許是因?yàn)橛?jì)算機(jī)遺失),他必須重新請求證書,然后將簽名郵件或證書文件重新分發(fā)到想要交換加密郵件的其他人。

  總結(jié)

  使兩個(gè)不同目錄或組織中的兩名用戶之間能夠進(jìn)行簽名和加密的S/MIME通常不會(huì)比我們剛剛所討論的復(fù)雜多少。簽名在使用得當(dāng)時(shí)非常實(shí)用,因?yàn)樗稍黾余]件的真實(shí)性。對于敏感的詳細(xì)信息,加密郵件為傳輸中的數(shù)據(jù)提供另外一個(gè)級別的安全保護(hù)。兩者結(jié)合可實(shí)現(xiàn)來源的真實(shí)性和數(shù)據(jù)的秘密性。通過我們在本文中對過程的介紹,對于大多數(shù)用戶來說,利用這些功能應(yīng)該不成問題。

 

分享到

yajing

相關(guān)推薦