240 likes | 374 Views
密碼學與網路安全 第 15 章 電子郵件安全. 電子郵件安全. 電子郵件是使用率最高的網路應用 目前的訊息內容並不安全: 傳送過程可能會被偷看 傳送到目的地之後可能會被其他特權使用者偷看. 加強電子郵件安全. 機密性 防止洩漏 認證 確認發信者的身份 訊息一致性 防止被修改 發信者無法否認 防止發信者否認. Pretty Good Privacy (PGP). 廣被業界用來保護電子郵件 由 Phil Zimmermann 所開發 選出幾個最有效的加密演算法當作基本元件,並整合到單一程式
E N D
電子郵件安全 • 電子郵件是使用率最高的網路應用 • 目前的訊息內容並不安全: • 傳送過程可能會被偷看 • 傳送到目的地之後可能會被其他特權使用者偷看
加強電子郵件安全 • 機密性 • 防止洩漏 • 認證 • 確認發信者的身份 • 訊息一致性 • 防止被修改 • 發信者無法否認 • 防止發信者否認
Pretty Good Privacy (PGP) • 廣被業界用來保護電子郵件 • 由 Phil Zimmermann所開發 • 選出幾個最有效的加密演算法當作基本元件,並整合到單一程式 • 可在眾多平台使用(Unix、PC、Macintosh等等) • 免費版本及商業付費版都有
PGP的運作 — 認證 • 發送者產生訊息 • 用SHA-1產生訊息的雜湊碼,長度為160位元 • 此雜湊碼是利用發送者的私密金鑰以RSA演算法加密,並把結果加在訊息中 • 接收者利用發送者的公開金鑰以RSA演算法解密並將雜湊碼恢復成原狀 • 接收者對這個訊息產生新的雜湊碼,並將之與解密出來的雜湊碼相比較,若兩者相同,就認可此訊息是可靠的
PGP的運作 — 保密 • 發送者產生一個訊息和一把128位元的亂數,用來當作這個訊息的連線會期金鑰 • 利用CAST-128(或IDEA或TDEA)和連線會期金鑰將訊息加密 • 再利用接收者的公開金鑰,以RSA加密此連線會期金鑰,並加入訊息 • 接收者用自己的私密金鑰,以RSA將連線會期金鑰解開 • 然後再用此連線會期金鑰將訊息解密
PGP的運作 — 保密和認證 • 這兩項服務項目都可讓同一訊息使用: • 產生簽章並加到訊息 • 加密訊息和簽章 • 以RSA加密會期金鑰並加到訊息
PGP的運作 — 壓縮 • PGP預設會在簽章後加密前壓縮訊息: • 可以只將未壓縮的訊息和簽章一起儲存,以便在未來認證 • PGP並非deterministic演算法 • 壓縮所使用的演算法是ZIP
PGP的運作 — 電子郵件相容性 • 使用PGP要傳送二進位資料(例如加密過的訊息) • 但許多電子郵件系統只能用ASCII文字 • 因此PGP採用將二進位八位元串流轉換為可列印的ASCCI字元串流的方式 • PGP使用 radix-64 演算法將二進位資料轉成文字: • 以三位元組為一組的二進位資料轉換成四個ASCCI字元 • 也加上CRC(cyclic redundancy check)以偵測傳送時所發生的錯誤 • 如果訊息太長,PGP會分割訊息
PGP會期金鑰 • 每把會期金鑰都會對應到某個訊息: • 不同的金鑰長度:DES56位元、CAST或IDEA 128位元、3DES168位元 • 以 ANSI X12.17產生 • 亂數產生器的明文輸入包括兩個64位元的區塊是由一個128位元亂數值的串流所產生
PGP 公開金鑰和私密金鑰 • 因為可能會使用許多公開/私密金鑰,因此要能夠辨別哪一把真的用在加密會期金鑰: • 將所有的金鑰都傳送出去 • 雖然可行但沒有效率 • 取而代之是指定金鑰ID給每把公開金鑰: • 每把公開金鑰的ID為公開金鑰的最後64位元 • 很難會有重複的金鑰ID • 通常PGP數位簽章也會需要用到金鑰ID
PGP金鑰環 • 每位PGP使用者擁有一對金鑰環: • 公開金鑰金鑰環包含所認識的其他使用者之公開金鑰(以金鑰UD排列) • 私密金鑰金鑰環包含擁有者的公開金鑰/私密金鑰
PGP 金鑰管理 • 保護整個公開金鑰不被竄改,在實際的公開金鑰應用是個很困難的問題 • 每位PGP使用者擁有自己的CA • 可以直接對認識的使用者簽署金鑰 • PGP並不包含任何建立憑證的管理人之設定,也不對建立信任做設定 • 但PGP提供便利的使用信任,結合對公開金鑰的信任,並且信任資訊
S/MIME • S/MIME是MIME的安全加強版 • RFC 822所定義的電子郵件規格只能處理純文字 • MIME提供多樣性的內容型態以及多個訊息主體 • MIME以二進位的方式對訊息內容編碼 • S/MIME以RSA技術為基礎,且定義在RFC • RFC 2630、2632、2633等文件定義了S/MIME • 包括微軟的Outlook和Netscape等電子郵件軟體都支援S/MIME
S/MIME功能 • 包裝資料:加密的內容和相關金鑰 • 簽署資料:數位簽章是待加密的內容訊息認證值,然後由簽署人的秘密金鑰加密而形成 • 清除簽署資料:資料經簽章後就形成內容的數位簽章 • 簽署且包裝資料:只簽章或只加密的資料可以巢狀的方式構成
S/MIME加密演算法 • 雜湊功能:SHA-1、MD5 • 數位簽章:DSS、RSA • 會期金鑰加密:ElGamal、RSA • 訊息加密:3DES、RC2/40等 • 以相關程序決定使用的演算法
S/MIME 訊息 • Multipart • Signed • 簡單的簽署訊息有兩部分:一是訊息,另一部份是簽章. • Application • pkcs7-mime(signedData):已簽署的S/MIME項目 • pkcs7-mime(envelopedData):已轉成密文的S/MIME 項目 • pkcs7-mime(degenerate signedData):只包含公開金鑰憑證的實體 • pkcs7-signature:簽章的內文類型是multipart/signed 訊息的一部份
S/MIME憑證處理 • S/MIME使用公開金鑰憑證,遵循X.509第三版的規則 • S/MIME所使用的金鑰管理系統是一種介於X.509認證架構與PGP信任網的混合 • S/MIME管理者、使用者必須設定每個客戶端,列表記錄信任的金鑰及憑證撤銷的名單 • 憑證是由憑證管理中心簽署
CA • VeriSign提出X.509憑證的產品,並且命名為VeriSign Digital ID • VeriSign提供三個程度的公開金鑰: • Class 1 Digital ID • Class 2 Digital ID • Class 3 Digital ID
總結 • 電子郵件安全 • PGP • S/MIME