複製鏈接
請複製以下鏈接發送給好友

PEM

(PEM安全功能)

鎖定
PEM,是一種安全功能。它的加密過程通常包括四個步驟:報文生成、規範化、加密、編碼。
外文名
PEM
類    別
安全功能
研發組織
Internet工程特別工作組、Internet研究特別工作組

PEM功能簡介

Internet工程特別工作組(IETF)以及Internet研究特別工作組(IRTF)一直在研究如何增強E-Mail的保密性能以及PEM的標準化問題。到1993年初,已提出四份RFC(Requests For Comments)作為建議的標準,其編號為1421~1424。這些RFC定義了PEM的保密功能以及相關的管理問題。有關的軟件相繼得到開發並投入使用。由於美國的出口限制政策,其他國家各有其不同的實施方案,但基本原理還是一致的各用户的用户代理(User Agent-CA)配有PEM軟件。CA提出PEM用户證件的註冊申請(按照X.509協議)。用户的證件被存儲在一個可公開訪問的數據庫之中,該數據庫提供一種基於X.500的目錄服務。密鑰等機密信息則存儲在用户的個人環境(Personal SecureEnvironment—PSE)中。用户使用本地PEM軟件以及PSE環境信息生成PEM郵件,然後通過基於SMTP的報文傳遞代理(MTA)發給對方。接收方在自身的PSE中將報文解密,並通過目錄檢索其證件,查閲證件註銷表以核實證件的有效性。
實際上PEM提供以下四種安全服務:
數據隱蔽:使數據免遭非授權的泄露,防止有人半路截取和竊聽。數據完整性:提供通信期間數據的完整性可用於偵查和防止數據的偽造和篡改。對發送方的鑑別:用來證明發送方的身份防止有人冒名頂替。防發送方否認:結合上述功能,防止發送方事後不承認發送過此文件。PEM目前尚未提供存取控制和防接收方否認等安全功能。

PEM加密方式及實現

PEM安全功能使用了多種密碼工具,包括非對稱加密算法,對稱加密算法以及報文完整性
檢驗(Message Integrity Check—MIC)算法等。
非對稱加密算法對通信雙方來説均需兩個密鑰,其中一個是保密的,只有用户自己知道。另一個則是公開的,存放在別的用户可以訪問的數據庫中。用此密鑰對的任一個密鑰加密以後的信息可用另一個解密。當前最常用的是RSA算法對稱加密算法要求通信雙方共享同一個密鑰。通常,密鑰傳遞需要複雜的分配機制。DES是一個典型的例子。
對稱加密算法不能作鑑別用。然而它的實現在速度上佔很大優勢。DES軟件實現要比RSA快100倍。非對稱加密算法的密鑰管理簡單,又能用於數字簽名等鑑別目的,但通常需要較多的CPU時間。因而在PEM的具體實現上,常常把兩者結合起來。MIC算法生成一個唯一的控制碼MIC,PEM使用報文摘要(Message Digest—MD)算法MD2和MD5完成此項功能一段PEM報文通常由兩部分組成:一個是頭部,包含接收方用於報文解密和核實等信息,如採用的算法、MIC以及證件等。另一部分則是報文本身。
PEM的加密過程通常包括四個步驟:報文生成:一般使用用户所常用的格式。規範化:轉換成SMTP的內部表示形式。加密:執行選用的密碼算法。編碼:對加密後的報文進行編碼以便傳輸。
安全功能的具體實現,以使用非對稱密碼為例,説明如下:
數據隱蔽:首先隨機生成一個DES密鑰,用來對數據加密。然後用接收方的公開鑰對DES密鑰採用非對稱加密算法加密後,存放在PEM報文的頭部。接收方收到此報文後,用其秘密鑰對DES密鑰解密,接着再用此DES密鑰對報文解密即可。
數據完整性和對發送方的鑑別:此兩項功能可用同一個機制即數字簽名完成。首先,對準備傳送的報文用MD2或MD5算法生成一個MIC碼。對此MIC碼用發送者的秘密鑰"解密"。然後存放在PEM郵件的頭部,接收方可用發送方的公開密鑰譯出報文的MIC。用此MIC與接收方用收到的報文實時生成的MIC比較後,即可斷定報文的完整性,並完成對發送方的鑑別。防發送方否認:此項功能亦在上述過程中自動實現。要識別存放在頭部的MIC,必須用發送方的公開鑰才行。只有用發送方的密鑰加過密的MIC,才能經接收方解密後與當時生成的MIC相匹配。發送方發送此報文是不容抵賴的。

PEM證件及其管理

PEM要在大範圍內使用,用户的公開鑰必須存儲在其他用户能訪問的數據庫中。它連同用户的其他信息,存放在一個稱為證件的文件之中。用户的證件是用户在網上使用PEM的通行證。每個證件除包含公開鑰外,還含有用户的唯一名、證件的有效期、證件編號以及證件管理機構的簽名等。證件的管理由一證明機構CA (Certification Authority)完成。證件的結構和管理均在X.509"The Directory-Authentication Framework"中定義。網上用户想使用PEM,要先行註冊。用户應向本地CA發"證明申請",填寫證件內容並鑑上名。本地CA審查同意後,即可賦予有效期和流水編號,同時用CA的秘密鑰簽名,證件即告生效。
存放證件的數據庫,其分佈式結構由X.500協議定義。其他網上用户可從中取用發送方的公開鑰以及核實郵件發送證件的有效期。CA可看作是一種電子公證機構,負責一定範圍的證件管理,包括證件的發放、證件的註銷以及註銷表的發佈等。因各種原因,如婚姻等,引起用户名的修改或密鑰對的更新,用户可註銷其原證件,重新註冊。註銷後的證件存放在證件註銷表(Certificate Revocation List—CRL)中,供查對用。核實工作由PEM軟件自動進行,其結果通知接收方。大範圍的CA通常組織成層次結構的形式根CA負責某一特定範圍的證件管理工作。下設五個分支機構,每個各自負責下屬部門的證件管理工作。各底層CA接受用户的申請,向用户提供證件以及通向根CA的路徑。CA所屬的各用户可通過根CA相互驗證,進行信息交流。同樣,整個CA結構可附屬在一個更大範圍內的CA體系組織之中。
為使PEM在全球範圍內通用,Internet的RFC 1422正式對CA層次結構作了定義。RFC1422規定Internet的CA層次組織由Internet政策註冊管理機構IPRA(Internet Policy Registration Authority)牽頭,作為全球的根CA,並管轄所有下屬各大區域(國家、洲、領域、地區等)的CA組織。IPRA由Internet社團贊助主辦、下屬的各大區域的CA組織稱為政策證明管理機構即PCAs(Policy Certification Authorities),負責下屬CA的註冊工作。
PEM的應用在不少方面都存在一些安全問題。證明機構CA本身的安全就很關鍵。CA用秘密鑰對各用户的證件進行簽發,其秘密鑰的存儲及簽證程序應該用硬件實現,與外部世界隔離開來。另外,各用户的證件和CRL的存儲安全也很重要。IPRA準備建一個統一的數據庫存放Internet中的所有證件和CRL表,RFC1424中已明確描述瞭如何通過E-mail用專門的PEM報文訪問此數據庫的方法。最後,用户密鑰的存儲也是一個不可忽視的環節。個人安全環境可通過兩種方式實現。一種是將個人機密信息,如加密密鑰等,存儲在一張智能卡中。使用此類卡,用户可在不同的平台上使用PEM通信。另一種方式是在硬盤建一個子目錄,用個人識別號PIN(Private Identification Number)以及一個加密算法來保證存儲信息的安全。