Protect-CmsMessage

Titkosítja a tartalmat a titkosítási üzenet szintaxisának formátumával.

Syntax

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

A Protect-CmsMessage parancsmag titkosítja a tartalmat a titkosítási üzenet szintaxisa (CMS) formátumával.

A CMS-parancsmagok támogatják a tartalom titkosítását és visszafejtását az RFC5652 által dokumentált IETF-formátumban.

A CMS titkosítási szabvány nyilvános kulcsú titkosítást használ, ahol a tartalom titkosításához használt kulcsok (a nyilvános kulcs) és a tartalom visszafejtéséhez használt kulcsok (a titkos kulcs) külön vannak. A nyilvános kulcs széles körben megosztható, és nem bizalmas adatok. Ha bármely tartalom ezzel a nyilvános kulccsal van titkosítva, csak a titkos kulcs tudja visszafejteni. További információ: Nyilvános kulcsú titkosítás.

A parancsmag futtatása Protect-CmsMessage előtt be kell állítania egy titkosítási tanúsítványt. A PowerShellben való felismeréshez a titkosítási tanúsítványokhoz egyedi kiterjesztett kulcshasználati (EKU-) azonosítóra van szükség az adattitkosítási tanúsítványok (például a kódaláírás és a titkosított levelek azonosítói) azonosításához. Példa a dokumentumtitkosításhoz használható tanúsítványokra: ebben a témakörben az 1. példa.

A Linux és a macOS támogatása a PowerShell 7.1-ben lett hozzáadva.

Példák

1. példa: Tanúsítvány létrehozása tartalom titkosításához

A parancsmag futtatása Protect-CmsMessage előtt létre kell hoznia egy titkosítási tanúsítványt. A következő szöveg használatával módosítsa a Tulajdonos sorban lévő nevet az Ön nevére, e-mail-címére vagy más azonosítóra, és mentse a tanúsítványt egy fájlba (például DocumentEncryption.infa példában látható módon).

# 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.exe -new DocumentEncryption.inf DocumentEncryption.cer

2. példa: E-mailben küldött üzenet titkosítása

$Protected = "Hello World" | Protect-CmsMessage -To "*youralias@emailaddress.com*"

Az alábbi példában titkosít egy ""Helló világ!" alkalmazás" üzenetet a parancsmagba Protect-CmsMessage való beírással, majd a titkosított üzenetet egy változóba mentve. A To paraméter a tanúsítvány Tulajdonos sorának értékét használja.

3. példa: Dokumentumtitkosítási tanúsítványok megtekintése

PS C:\> cd Cert:\CurrentUser\My
PS Cert:\CurrentUser\My> Get-ChildItem -DocumentEncryptionCert

A dokumentumtitkosítási tanúsítványok a tanúsítványszolgáltatóban való megtekintéséhez hozzáadhatja a Get-ChildItem DocumentEncryptionCert dinamikus paraméterét, amely csak a tanúsítványszolgáltató betöltésekor érhető el.

Paraméterek

-Content

Olyan PSObjectet ad meg, amely a titkosítandó tartalmat tartalmazza. Titkosíthatja például egy eseményüzenet tartalmát, majd használhatja az üzenetet tartalmazó változót ($Eventebben a példában) a Tartalom paraméter értékeként: $event = Get-WinEvent -ProviderName "PowerShell" -MaxEvents 1. A parancsmaggal Get-Content lekérheti egy fájl ( például Egy Microsoft Word-dokumentum) tartalmát, és mentheti a tartalmat egy változóba, amelyet a Content paraméter értékeként használ.

Type:PSObject
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Megadja a titkosítandó tartalom elérési útját. Az elérési úttal ellentétben a LiteralPath értéke pontosan a beírt módon lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz escape karaktereket, csatolja egy idézőjelek közé. Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OutFile

Megadja annak a fájlnak az elérési útját és fájlnevét, amelyre a titkosított tartalmat el szeretné küldeni.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Megadja a titkosítandó tartalom elérési útját.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-To

Egy vagy több CMS-üzenet címzettjének megadása, amelyeket az alábbi formátumok bármelyike azonosít:

  • Tényleges tanúsítvány (a tanúsítványszolgáltatótól lekért módon).
  • A tanúsítványt tartalmazó fájl elérési útja.
  • A tanúsítványt tartalmazó könyvtár elérési útja.
  • A tanúsítvány ujjlenyomata (a tanúsítványtárolóban való kereséshez használatos).
  • A tanúsítvány tulajdonosának neve (a tanúsítványtárolóban való kereséshez használatos).
Type:CmsMessageRecipient[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False