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.inf
a 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 úgy, hogy a Protect-CmsMessage
parancsmagba pipálja, majd egy változóba menti a titkosított üzenetet. 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 ($Event
ebben 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.
Típus: | PSObject |
Position: | 1 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String |
Position: | 1 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String |
Position: | 2 |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Path
Megadja a titkosítandó tartalom elérési útját.
Típus: | String |
Position: | 1 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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).
Típus: | CmsMessageRecipient[] |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |