Protect-CmsMessage
Šifruje obsah pomocí formátu syntaxe kryptografických zpráv.
Syntaxe
Protect-CmsMessage
[-To] <CmsMessageRecipient[]>
[-Content] <PSObject>
[[-OutFile] <String>]
[<CommonParameters>]
Protect-CmsMessage
[-To] <CmsMessageRecipient[]>
[-Path] <String>
[[-OutFile] <String>]
[<CommonParameters>]
Protect-CmsMessage
[-To] <CmsMessageRecipient[]>
[-LiteralPath] <String>
[[-OutFile] <String>]
[<CommonParameters>]
Description
Rutina Protect-CmsMessage
šifruje obsah pomocí formátu CMS (Cryptographic Message Syntax).
Rutiny CMS podporují šifrování a dešifrování obsahu pomocí formátu IETF, jak je zdokumentované RFC5652.
Šifrovací standard CMS používá kryptografii veřejného klíče, kde jsou klíče používané k šifrování obsahu (veřejného klíče) a klíče používané k dešifrování obsahu (privátního klíče) oddělené. Váš veřejný klíč je možné sdílet široce a nejedná se o citlivá data. Pokud je jakýkoli obsah zašifrovaný tímto veřejným klíčem, může ho dešifrovat jenom váš privátní klíč. Další informace naleznete v tématu kryptografie veřejného klíče.
Než budete moct spustit rutinu Protect-CmsMessage
, musíte mít nastavený šifrovací certifikát.
Aby bylo možné v PowerShellu rozpoznat, vyžadují šifrovací certifikáty jedinečné rozšířené použití klíče (EKU), aby je identifikovaly jako certifikáty šifrování dat (například ID podepisování kódu a Šifrovaná pošta).
Příklad certifikátu, který by fungoval pro šifrování dokumentu, najdete v příkladu 1 v tomto tématu.
Příklady
Příklad 1: Vytvoření certifikátu pro šifrování obsahu
# Create .INF file for certreq
{[Version]
Signature = "$Windows NT$"
[Strings]
szOID_ENHANCED_KEY_USAGE = "2.5.29.37"
szOID_DOCUMENT_ENCRYPTION = "1.3.6.1.4.1.311.80.1"
[NewRequest]
Subject = "cn=youralias@emailaddress.com"
MachineKeySet = false
KeyLength = 2048
KeySpec = AT_KEYEXCHANGE
HashAlgorithm = Sha1
Exportable = true
RequestType = Cert
KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE | CERT_DATA_ENCIPHERMENT_KEY_USAGE"
ValidityPeriod = "Years"
ValidityPeriodUnits = "1000"
[Extensions]
%szOID_ENHANCED_KEY_USAGE% = "{text}%szOID_DOCUMENT_ENCRYPTION%"
} | Out-File -FilePath DocumentEncryption.inf
# After you have created your certificate file, run the following command to add the certificate file to the certificate store.Now you are ready to encrypt and decrypt content with the next two examples.
certreq -new DocumentEncryption.inf DocumentEncryption.cer
Než budete moct spustit Protect-CmsMessage
rutinu, musíte vytvořit šifrovací certifikát.
Pomocí následujícího textu změňte název v řádku Předmět na vaše jméno, e-mail nebo jiný identifikátor a uložte certifikát do souboru (například DocumentEncryption.inf, jak je znázorněno v tomto příkladu).
Příklad 2: Šifrování zprávy odeslané e-mailem
$Protected = "Hello World" | Protect-CmsMessage -To "*youralias@emailaddress.com*"
V následujícím příkladu zašifrujete zprávu "Hello World" tak, že ji zašifrujete do rutiny Protect-CmsMessage
a pak zašifrovanou zprávu uložíte do proměnné.
Parametr To používá hodnotu řádku Předmět v certifikátu.
Příklad 3: Zobrazení šifrovacích certifikátů dokumentů
PS C:\> cd Cert:\currentuser\my
Get-ChildItem -DocumentEncryptionCert
Chcete-li zobrazit certifikáty šifrování dokumentů ve zprostředkovateli certifikátu, můžete přidat DocumentEncryptionCert dynamický parametr Get-ChildItem, k dispozici pouze při načtení zprostředkovatele certifikátu.
Parametry
-Content
Určuje objekt PSObject, který obsahuje obsah, který chcete zašifrovat.
Můžete například zašifrovat obsah zprávy události a pak použít proměnnou obsahující zprávu ($Event
v tomto příkladu) jako hodnotu parametru Content: $event = Get-WinEvent -ProviderName "PowerShell" -MaxEvents 1
.
Pomocí rutiny Get-Content
můžete také získat obsah souboru, například dokument aplikace Microsoft Word, a uložit obsah do proměnné, kterou použijete jako hodnotu parametru Content.
Typ: | PSObject |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-LiteralPath
Určuje cestu k obsahu, který chcete šifrovat.
Na rozdíl odcesty
Typ: | String |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-OutFile
Určuje cestu a název souboru, do kterého chcete šifrovaný obsah odeslat.
Typ: | String |
Position: | 2 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Path
Určuje cestu k obsahu, který chcete šifrovat.
Typ: | String |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-To
Určuje jednoho nebo více příjemců zpráv CMS identifikovaných v některém z následujících formátů:
- Skutečný certifikát (načtený od zprostředkovatele certifikátu)
- Cesta k souboru obsahujícímu certifikát
- Cesta k adresáři obsahujícímu certifikát
- Kryptografický otisk certifikátu (použitý k vyhledání v úložišti certifikátů)
- Název subjektu certifikátu (slouží k vyhledání v úložišti certifikátů).
Typ: | CmsMessageRecipient[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |