共用方式為


CMS/PKCS #7 訊息的元件

CMS/PKCS #7 訊息結構促進實作一或多個安全性服務成為訊息。屬性也能關聯至 CMS/PKCS #7 訊息,它會產生訊息的額外資訊。

要保護的資料

CMS/PKCS #7 獲得套用多重安全性服務至資料的能力,其作法為將它存入 ContentInfo 物件中。此物件是保護 System.Security.Cryptography.Pkcs 命名空間、SignedCms 以及 EnvelopedCms 中資料之二個主要類別的屬性。ContentInfo 物件可能儲存未受保護的資料,但它可能也封裝先前受 CMS/PKCS #7 安全性服務保護的資料。此封裝允許將巢狀的安全性層套用至資料。例如,已經加上數位簽章的資料可以再加上數位封套。

在 CMS/PKCS #7 訊息中提供新保護層的資料位於 ContentInfo 物件中,可將它稱為 CMS/PKCS #7 訊息的「內部內容」。套用該保護所產生的資料可稱為 CMS/PKCS #7 訊息的「外部內容」。藉由叫用適當的 CMS/PKCS #7 訊息物件,可以取得「外部內容」。實際上,這表示叫用 System.Security.Cryptography.Pkcs.SignedCms.EncodeSystem.Security.Cryptography.Pkcs.EnvelopedCms.Encode

如需有關受多重安全性服務保護之資料的詳細資訊,請參閱封套和簽署的 CMS/PKCS #7 訊息。如需有關受多重安全性服務保護之資料的程式碼範例,請參閱HOW TO:簽署和封套訊息

屬性

CMS/PKCS #7 可讓您將「屬性」放入受保護的訊息中。屬性含有可識別它是何種屬性的物件識別元 (Oid) 以及保存屬性值的資料。這些屬性的選擇、位置以及特性依 CMS/PKCS #7 訊息的類型而定。

SignedCms 訊息可以攜帶兩種簽章特定屬性:與訊息內容一起簽署的屬性,以及仍未簽署的屬性。如需詳細資訊,請參閱 SignedCms 訊息EnvelopedCms 訊息可以攜帶仍未加密的屬性。如需詳細資訊,請參閱 EnvelopedCms 訊息

下列屬性類別包含在 System.Security.Cryptography.Pkcs 命名空間中。有些是 CMS/PKCS #7 標準所需,其他則是在許多應用案例下很有用的屬性:

自訂屬性也可以修改為適合應用程式的需求。從 Pkcs9AttributeObject 衍生自訂屬性類別。

主體

CMS/PKCS #7 訊息中的「主體」是產生或取用訊息的實體。根據應用程式的行為,主體可能扮演許多不同角色中的任一個角色。這種角色的範例包括訊息的寄件者、作者、簽署者、副署者、收件者或讀者,或是其中一些組合。主體可以是個人、軟體應用程式或具有唯一識別身分的任何其他實體。在 System.Security.Cryptography.Pkcs 中具體化主體的兩個主要類別為 CmsSigner 以及 CmsRecipient

CMS/PKCS #7 中的主體使用密碼編譯認證以執行其作業。這些主體的形式通常是具有關聯之私密金鑰的公開金鑰憑證。您可以使用主體的公開金鑰憑證來識別和尋找主體。您可用兩種方法的其中一種來唯一識別該憑證。

  • 發行者的辨別名稱及發行者的特定憑證序號

  • 主體金鑰識別碼

這些識別機制呈現在 SubjectIdentifierType 列舉中。CmsSignerCmsRecipient 類別中使用的一些建構函式以 SubjectIdentifierType 成員為輸入。

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.