標籤:

密碼學應用(Day027)

到目前為止,你已經學習了與密碼學的基礎知識、各種密碼學演算法的內部工作原理、使用數字證書分發身份證書的公鑰基礎設施的應用等有關的大量內容。現在,你應該掌握了密碼學的基礎知識, 下面將研究解決日常通信問題的密碼學技術的高級應用。

在接下來的內容中,我們將介紹用密碼學來保護靜態數據, 例如存儲在攜帶型設備上的數據,還有傳輸中的數據。使用的技術有: 保護電子郵件、加密Web 通信和網路連接。

TPM本質上是一種安全設計的微控制器,這種微控制器加入了執行加密功能的模塊。這些模塊可加速與存儲加密密鑰、散列值和代號序列處理過程。TPM的內部存儲是基於非易失性隨機存取內存的,這種內存在電源關閉時仍舊可保留其信息,因此稱為非易失性內存。

TPM內部的內存分為兩個不同的部分:持久性(靜態)和通用(動態)內存模塊。

PGP有兩個可用的版本。商業版本使用RSA進行密鑰交換,使用IDEA進行加密/解密, 使用MD5生成消息摘要。免費版本則使用Diffie-Hellman密鑰交換、Carlisle Adams/Stafford Tavares(CAST)128位的加密/解密演算法以及SHA- 1 散列函數。許多商業機構也提供基於PGP 的電子郵件服務作為基於Web 的雲端郵件服務、移動設備應用程序或Web 郵件插件。這些服務通過可管理的郵件安全服務消除了複雜的加密證書配置和維護,

並以此吸引了管理員和最終用戶。

S/MIME協議: 使用RSA加密演算法,並且己經得到包括RSA 安全公司在內的業界主要機構的支持。S/MIME 依靠X.509 證書交換密碼系統密鑰。這些證書包含的公鑰被用於數字簽名和較長通信會話中使用的對稱密鑰交換。RSA是S/MIME 支持的唯一一個公鑰密碼學協議, 這個協議支持AES和3DES 對稱加密演算法。

SSL 依賴在瀏覽器與Web 伺服器之間交換數字證書以協商加密/解密參數。SSL 協議的目標是建立安全的通信通道,使整個Web 瀏覽器會話保持開放。它取決於對稱和非對稱加密的組合。具體過程涉及以下步驟:

(1) 當用戶訪問一個網站時,瀏覽器檢索W出伺服器的證書, 並從中提取伺服器的公共密鑰。

(2) 然後,瀏覽器創建一個隨機的對稱密鑰, 使用伺服器的公鑰來加密, 然後將加密的對稱密鑰發送到伺服器上。

(3) 隨後,伺服器使用自己的私鑰解密對稱密鑰, 這兩個系統使用對稱加密密鑰來交換未來的

交互信息。

1999年,安全工程師在發布SSL 第三版時, 提出了將TLS 作為SSL 標準的替換。與SSL 一樣,TLS 使用TCP 埠443 。基於SSL 技術,TLS 包含了許多安全增強功能並最終被大多數應用所採用,替代了SSL。早期版本的TLS 在通信雙方都不支持TLS 時可以降級支持SSL V3.0。然而, 在2011年TLS v1.2 不再支持向後兼容性。儘管TLS 已經存在了10多年,許多人仍將其誤稱為SSL。由於這個原因,TLS也獲得了SSL 3.1的昵稱。

公鑰基礎設施(PKI)由程序、數據格式、措施、通信協議、安全策略以及公鑰密碼機制組成,這些組件綜合方式運行的,使得分散的人們能夠以安全的、預定的方式相互通信。換句話說,PKI在一個環境內建立了一個信任級別。PKI是一種使用公鑰密碼學和X.509標準的ISO身份驗證框架,建立這個框架的目的是允許在不同的網路和互聯網之間進行身份驗證,其中的具體協議和演算法並沒有明確規定,這也是我們將PKI 稱為框架而非特定技術的原因。

PKI提供身份驗證、機密性、不可否認性以及消息交換的完整性。PKI是混合對稱與不對稱密鑰演算法和方法的系統,前面已討論了這個內容。

公鑰密碼學和PKI之間存在差異。公鑰密碼學是非對稱演算法的另一個名稱,而PKI與它的名稱一樣,是一個基礎設施。這個基礎設施假定接收方的身份能夠通過認證完全確定,並且某種非對稱演算法能夠自動執行密鑰交換過程。因此,這個基礎設施包含了標識用戶身份、創建和分發證書、維護和取消證書、分發和維護加密密鑰等部分,並使得所有技術能夠溝通,而且能夠共同運行以達到加密通信和驗證身份的目的。

公鑰密碼學是PKI中的一個組成部分,不過還有其他許多部分一起構成了這個基礎設施。

每一個想加入PKI的人都需要一個數字證書,也就是一個包含本人公鑰以及其他身份標識信息的憑證。這個證書由可信的第三方(即認證授權機構(Certificate Authority,CA))創建和簽發(數字簽名)。當CA簽發證書時,它將個人的身份和公鑰綁定在一起,並且還負責該個體的真實性。正是這個可信的第三方(即CA)使得沒有謀面的雙方能夠互相驗證身份並以安全的方式通信。如果Kevin從沒有見過David,但是卻想與之安全地通信,同時又假定他們都信任同一個認證授權機構,那麼Kevin就能得到David的數字證書,從而開始與David 通信。

CA是保管和發布數字證書的可信組織機構(或伺服器)。當一個人請求證書時,註冊授權機構(Registration Authority,RA)會驗證這個人的身份,並將證書請求提交給CA 。隨後, CA 創建證書並簽名,再將其發送給請求者,同時為請求者在證書的有效期內保管該證書。當一個人想要與這個人通信的時候, CA 通常要擔保該人的身份。當Dave 接收到Kevin 發送的數字證書時,Dave 會對其進行確證。一般來說,通過向Dave 提供數字證書, Kevin 可以宣稱:「我知道你不認識和信任我,但這裡是你認識和信任的某個人創建的文檔。這個文檔表明我是好人,你應該信任我」。

一旦Dave 確證了數字證書,他就可以提取出Kevin 嵌入在簽名內的公鑰。此時, Dave 知道這個公鑰與Kevin 綁定在一起。他還知道,如果Kevin 使用其私鑰創建數字簽名,那麼自己就可以使用Kevin 的公鑰對數字簽名進行正確解密,並且知道該簽名確實是Kevin發送的。

CA可以位於組織內部。這種設置可以使公司能夠控制認證授權伺服器,設定身份驗證的方式,保管證書以及在必要時取消證書。有些CA是專門提供這種服務的組織機構,其他的個人和公司需要付費才能得到這種服務。著名的CA有Entrust和VeriSign。許多瀏覽器都默認配置了若干個著名的CA。

CA負責創建和分發證書,保管證書以及在必要時取消證書。取消證書的過程由CA處理,被取消證書的信息存儲在證書撤消列表(CRL)中。它是一個存儲所有被取消證書的列表,該列表被加以維護和定期更新。證書的取消可能是因為密鑰持有者的私鑰被泄露,也可能是因為CA發現證書分發錯誤。

相比於繁瑣的CRL 方法,人們正越來越多地開始使用在線證書狀態協議(Online Certificate Status Protocol,OCSP)。只使用CRL時,用戶的瀏覽器要麼必須檢查一個中央CRL,以確定證書是否被取消;要麼CA不斷向客戶端發送CRL值,以確保它們得到更新的CRL。如果實現OCSP,那麼它會在後台自動完成上述工作。OCSP 會對證書執行實時確證,並向用戶報告證書是有效、無效還是未知。OCSP會檢查由CA 維護的CRL。因此,它仍然要使用CRL,但現在已開發出了一個在證書確證過程中專門用於檢查CRL 的協議。

CA創建證書的標準是X.509 。

註冊授權機構(RA)執行證書註冊任務。RA建立和確認個人的身份,代表終端用戶啟動使用CA的認證過程,以及執行證書生命周期管理功能。RA 不能發行證書,但是可以作為用戶和CA之間的中間人。當需要新證書的時候..用戶就會向RA 發送請求,然後RA再將該請求發送給CA。


推薦閱讀:

一個黑客會經歷怎樣的人生?
銀行卡被盜刷無機構負責任?先用這十四條為你的銀行卡上把鎖
威脅建模和風險管理框架(Day006)
Python3學習系列(二):編寫屬於自己的網站後台掃描器

TAG:網路安全 |