加密技術 金鑰和證書

2021-05-22 11:23:00 字數 4016 閱讀 1024

非對稱加密使用公鑰/私鑰對。對於使用私鑰加密的資料,只能使用相應的公鑰進行解密,反之亦然。

顧名思義,公鑰是指可以提供給很多人的金鑰。相反,私鑰是特定個人所獨有的。向使用者傳送公鑰使用的分發機制是證書。通常,證書頒發機構 (ca) 對證書進行簽名,以便確認公鑰來自聲稱傳送公鑰的主體。ca 是乙個相互信任的實體。

數字認證的典型實現包含證書簽名過程。圖 1 中顯示了此過程。

圖 1數字認證過程

圖 1 中顯示了以下事件的順序:

1.王麗將乙個簽名的證書請求(包含她的名字、公鑰、可能還有其他一些資訊)傳送到 ca。

2.ca 使用王麗的請求建立乙個訊息。ca 使用其私鑰對訊息進行簽名,以便建立乙個單獨的簽名。ca 將訊息和簽名返回給王麗。訊息和簽名共同構成了王麗的證書。

3.王麗將她的證書傳送給李華,以便授權他訪問她的公鑰。

4.李華使用 ca 的公鑰對證書簽名進行驗證。如果證明簽名是有效的,他就承認證書中的公鑰是王麗的公鑰。

與數字簽名的情況一樣,任何有權訪問 ca 公鑰的接收者都可以確定證書是否是由特定 ca 簽名的。這個過程不要求訪問任何機密資訊。上面這個方案假定李華有權訪問 ca 的公鑰。如果李華擁有包含該公鑰的 ca 證書的副本,則他有權訪問該金鑰。

返回頁首

x.509 數字證書不僅包含使用者名稱和公鑰,而且還包含與使用者有關的其他資訊。這些證書並不僅僅是數字信任等級中的階石。通過使用證書,ca 可以為證書接收者提供一種方法,使他們不僅信任證書主體的公鑰,而且還信任有關證書主體的其他資訊。其他資訊可以包括電子郵件位址、授權對具有某種價值的文件進行簽名、授權成為 ca 並為其他證書簽名等等。

x.509 證書和許多其他證書都有有效期限。證書在期滿後就會失效。ca 可以出於許多原因吊銷證書。要吊銷證書,ca 儲存並分發乙個吊銷證書的列表,即證書吊銷列表 (crl)。網路使用者訪問 crl 以確定證書的有效性。

返回頁首

證書儲存在稱為「證書儲存」的安全位置中。證書儲存可以包含證書、crl 和證書信任列表 (ctl)。每個使用者都有儲存其證書的個人儲存(稱為「我的儲存」)。可以在許多位置中物理實現「我的儲存」,其中包括登錄檔、本地或遠端計算機、磁碟檔案、資料庫、目錄服務、智慧型裝置或其他位置。

雖然可以將任何證書儲存在「我的儲存」中,但應該將此儲存專用於儲存使用者的個人證書,即用於簽名和解密該特定使用者訊息的證書。

除了「我的儲存」外,windows 還維護以下證書儲存:

ca 和根。此儲存包含特定證書頒發機構(使用者信任其向其他使用者頒發證書)的證書。作業系統提供了一套受信任的 ca 證書,管理員還可以新增其他的證書。

其他。此儲存包含使用者與之交換簽名訊息的其他使用者的證書。

cryptoapi 提供管理證書的功能。只能通過非託管**訪問這些 api。另外,capicom 是 cryptoapi 基於 com 的 api,可通過 com interop 對它進行訪問。

有關詳細資訊,請參見 msdn 上的「cryptography, cryptoapi, and capicom」(加密技術、cryptoapi 和 capicom)

返回頁首

加密技術用於提供以下功能:

機密性。確保資料的保密性。機密性通常是使用加密實現的。可以使用加密演算法(使用加密金鑰)將明文轉換為密文,並使用相應的解密演算法將密文轉換回明文。對稱加密演算法使用相同的金鑰進行加密和解密,而非對稱演算法則使用公鑰/私鑰對。

資料完整性。確保資料免受意外或者故意(惡意)的修改。完整性通常是由訊息身份驗證**或雜湊值提供的。雜湊值是從資料序列匯出的固定長度的數值。雜湊值用於驗證通過非安全通道傳送的資料的完整性。可以將收到的資料的雜湊值與傳送時資料的雜湊值進行比較,以確定資料是否被篡改。

身份驗證。保證資料來自某一方。數字證書用於提供身份驗證。數字簽名通常應用於雜湊值,因為這些值比它們所代表的源資料小得多。

返回頁首 •

如果需要使用一種方法來驗證資料在傳輸過程中沒有被篡改,請使用雜湊值。

•如果要證明實體知道機密但不來回傳送機密,或者想使用簡單的雜湊值以防止在傳輸過程中被截獲,請使用加密的雜湊值。

•如果要隱藏通過不安全的媒介傳送的資料或者要永久性保留資料,請使用加密。

•如果要驗證聲稱是公鑰所有者的人員的身份,請使用證書。

•如果雙方事先共享金鑰,請使用對稱加密以提高速度。

•如果想通過不安全的媒介安全地交換資料,請使用非對稱加密。

•如果要進行身份驗證和實現不可否認性,請使用數字簽名。

•使用 salt 值(使用加密技術生成的隨機數)以防範字典攻擊。

返回頁首

system.security.cryptography命名空間提供加密服務,其中包括資料的安全編碼和解碼、雜湊、隨機數生成和訊息身份驗證。

.net framework 提供了許多標準加密演算法的實現;由於明確定義了包含定義基本演算法型別(對稱、非對稱和雜湊演算法)的抽象類以及演算法類的繼承等級,因此可以方便地對這些實現進行擴充套件。

表 1:顯示 .net framework 為其提供現成實現類的演算法。

對稱演算法

非對稱演算法

雜湊演算法

des(資料加密標準)

dsa(數字簽名演算法)

hmac sha1(使用 sha1 雜湊演算法且基於雜湊的訊息身份驗證**)

tripledes(三重資料加密標準)

rsamac triple des(使用 triple des 的訊息身份驗證**)

rijndael

md5rc2

sha1、sha256、sha384、sha512(使用各種雜湊大小的安全雜湊演算法)

.net 提供以下實現類以提供對稱的金鑰加密演算法:

•descryptoserviceprovider

•rc2cryptoserviceprovider

•rijndaelmanaged

•tripledescryptoserviceprovider

注意:以「cryptoserviceprovider」結尾的類是使用加密服務提供程式 (csp) 基礎服務的包裝類;而以「managed」結尾的類則是在託管**中實現的。

圖 2 顯示了 .net framework 採用的繼承等級。演算法型別基類(例如,symmetricalgorithm)是抽象類。可以從抽象型別基類派生一組抽象演算法類。演算法實現類提供所選演算法的具體實現;例如,des、triple-des、rijndael 和 rc2。

圖 2對稱加密類繼承等級

.net 通過抽象基類 (system.security.crytography.asymmetricalgorithm) 提供下列非對稱(公鑰/私鑰)加密演算法:

•dsacryptoserviceprovider

•rsacryptoserviceprovider

這些演算法用於對資料進行數字簽名和加密。圖 3 顯示了繼承等級。

圖 3非對稱加密類繼承等級

.net 提供了下列雜湊演算法:

•sha1、sha256、sha384、sha512

•md5

•hmacsha(加密的雜湊演算法)

•mactripledes(加密的雜湊演算法)

圖 4 顯示了雜湊演算法類的繼承等級。

圖 4雜湊加密類繼承等級

返回頁首

加密技術是用於構建安全 web 應用程式的重要技術。本附錄介紹了證書和加密技術的一些基礎知識,並介紹了一些由system.security.cryptography命名空間公開的類,使您可以更輕鬆地將加密技術安全解決方案應用於 .net 應用程式。

有關 .net 中的加密技術的詳細資訊,請搜尋 msdn 中題為「.net framework cryptography model」(.net framework 加密技術模型)的頁面。

加密技術與金鑰安全管理

一起來聊聊資料的加密技術 那我們應該如何考慮資料的安全儲存?讓我們一起來聊聊資料的加密技術。單向雜湊加密 單向雜湊加密就是把任意長的輸入訊息串變化成固定長的輸出串且由輸出串難以得到輸入串的一種加密演算法。常見單向雜湊函式 利用單項雜湊加密的這個特性,可以進行密碼加密儲存。php 處理密碼的幾種方式 ...

資訊加密技術及金鑰安全管理

通常,為了保護 的敏感資料,應用需要對這些資訊進行加密處理,資訊加密技術可分為三類 單項雜湊加密 對稱加密和非對稱加密。1.單向雜湊加密 單向雜湊加密是指通過對不同輸入長度的資訊進行雜湊計算,得到固定長度的輸出,這個雜湊計算的過程是單向的,即不能對固定長度的輸出進行計算從而獲得輸入資訊。利用單向雜湊...

加密技術和認證技術

一 加密技術概述 加密技術是最常用的安全保密手段,資料加密技術的關鍵在於加密 解密演算法和金鑰管理。資料加密的基本過程就是對原來的為明文的檔案或資料按某種加密演算法進行處理,使其成為不可讀的一段 通常稱為 密文 密文 只能在輸入相應的金鑰之後才能顯示出原來的內容,通過這樣的途徑使資料不被竊取。在安全...