c++中如何使用CryptoAPI建立一個自我簽署憑證

來源:互聯網
上載者:User

CryptoAPI編程

(1) 微軟Data Encryption Service體系

微軟Data Encryption Service體系CryptoAPI的結構如下圖所示,微軟Data Encryption Service體系包含三層結構和兩個介面,分別為應用程式層、作業系統層(OS)、Data Encryption Service提供者層(Cryptographic Service Provider,CSP),CryptoAPI介面和Data Encryption Service提供者介面(Cryptographic Service Provider Interface,CSPF)。

(2)CryptoAPI體繫結構

CryptoAPI體系架構共由五大主要部分組成:基本加密函數、認證編/解碼函數、認證庫管理函數、簡單訊息函數、底層訊息函數。體繫結構如下圖所系:

基本加密函數:用於選擇CSP、建立CSP串連、產生密鑰、交換及傳輸密鑰等操作。

認證編/解碼函數:用於資料加密、解密、雜湊等操作。這類函數支援資料的加密/解密操作;計算雜湊、建立和校正數位簽章操作;實現認證、認證撤銷列表、認證請求和認證擴充等編碼和解碼操作。

認證庫管理函數:用於數位憑證及認證庫管理等操作。這組函數用於管理憑證、認證撤銷列表和憑證信任清單的使用、儲存、擷取等。

簡單訊息函數:用於訊息處理,比如訊息編碼/解碼、訊息加/解密、數位簽章及簽名驗證等操作。它是把多個底層訊息函數封裝在一起以完成某個特定任務,方便使用者的使用。

底層訊息函數:底層訊息函數對傳輸的PKCS#7資料進行編碼,對接受到的PKCS#7資料進行解碼,並且對接收到的訊息進行解碼和驗證。它可以實現簡單訊息函數可以實現的所有功能,且提供更大的靈活性,但一般會需要更多的函數調用。

(3)CryptoAPI準系統

利用CryptoAPI,開發人員可以給基於Windows的應用程式添加安全服務,包括:ASN.1編碼/解碼、資料加密/解密、身份認證、數位憑證管理,同時支援PKI、對稱密碼技術等。

密鑰管理

在CryptoAPI中,支援兩種類型的密鑰:工作階段金鑰、公/私金鑰組。工作階段金鑰也成為對稱金鑰,用於對稱式加密演算法。為了保證密鑰的安全性,在CryptoAPI中,這些密鑰都儲存在CSP內部,使用者可以通過CryptExpoetKey以加密金鑰快形式匯出。公/私密金鑰對用於非對稱式加密演算法。非對稱式加密演算法主要用於加解密工作階段金鑰和數位簽章。在CryptoAPI中,一般來說,大多數CSP產生的密鑰容器包含兩對金鑰組,一對用於加密工作階段金鑰,稱為交換金鑰組,一對用於產生數位簽章,稱為簽名金鑰組。在CryptoAPI中,所有的密鑰都儲存在CSP中,CSP負責密鑰的建立,銷毀,匯入匯出等操作。

資料編碼/解碼

CryptoAPI採用的編碼方式為ASN.1,編碼規則為DER,表示發送方發送資料時先把資料抽象為ASN.1對象,然後使用DER編碼規則把ASN.1對象轉化為可傳輸的0、1串;接受方接受到資料後,利用DER解碼規則把0、1串轉化為ASN.1對象,然後把ASN.1對象轉化為具體應用支援的資料對象。

資料加/解密

在CryptoAPI中約定加密較大的資料區塊時,採用對稱式加密演算法。通過其封裝好的加解密函數來實現資料解加密操作。

雜湊與數位簽章

雜湊與數位簽章一般用於資料的完整性驗證和身份鑒別。CryptoAPI中,通過其封裝好的雜湊與數位簽章函數來實現相關操作。微軟公司提供的CSP產生的數位簽章遵循RSA標準(PKCS#6).

數位憑證管理

數位憑證主要用於安全通訊中的身份鑒別。CryptoAPI中,對數位憑證的使用管理函數分為認證與認證庫函數、認證驗證函式兩大部分。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.