Turvallisten salasanojen konsepti on, että tuotantoskripteissä meidän ei pitäisi välittää tärkeitä salasanoja tavallisena näkymänä. Tämä on vakava turvallisuuden puute. Joten PowerShellin avulla voimme suojata salasanan tai ainakin vähentää salasanan näkyvyyttä. Aluksi käsitellään suojatun merkkijonon yleisiä näkökohtia ja sen jälkeen sitä, miten Dell Command PowerShell Provider (DCPP) hyödyntää PowerShellin luontaista ominaisuutta salasanan suojaamiseen.
Ajattele, että haluamme lukea käyttäjän käyttäjänimen ja salasanan konsolissa. Tiedämme, että käyttäjätunnus ei yleensä vaadi suojausta ja se voi näkyä kaikille. Mutta salasanan osalta meidän ei pitäisi antaa tuntemattomille tietää käyttäjän salasanaa. Voimme helpottaa tätä vaatimusta seuraavilla komennoilla:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Yllä on yleiskatsaus siitä, kuinka voimme lisätä turvallisuutta, kun meidän on suojattava kriittiset tiedot, kuten salasana. Yllä olevassa esimerkissä muuttuja $pass on tyyppiä System.Security.SecureString
. Saamme johdannon kahteen muuhun laajalti käytettyyn cmdlet-komentoon, jotka PowerShell tarjoaa suojattujen kenttien helpottamiseksi, ennen kuin käsitellään DCPP: n näkökohtia.
Kaksi komentoa ovat ConvertTo-SecureString
ja ConvertFrom-SecureString
. ConvertTo-SecureString
Muuntaa tavallisen tekstin tyypiksi. System.Security.SecureString
. Seuraavassa on esimerkki:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
Edellä olevassa esimerkissä tavallinen teksti P@assword1
muunnetaan tyypiksi System.Security.SecureString
. Tämä on enemmän tietoa, ja sitä voidaan käyttää laajalti tai ei.
Seuraava cmdlet-komento ConvertFrom-SecureString
on laajemmin käytetty cmdlet-komento, jota käytetään suojattujen merkkijonojen muuntamiseen salatuiksi vakiomerkkijonoiksi. Tärkein rajoitus ConvertTo-SecureString
on, että sen tulosta ei voida kirjoittaa suoraan tiedostoon tulevaa käyttöä varten. Meidän on käytettävä ConvertFrom-SecureString
joka muuntaa System.Security.SecureString
salatuksi vakiomerkkijonoksi, joka voidaan kätevästi tallentaa tiedostoon tämän rajoituksen voittamiseksi.
Muunnamme vain teksti -muotoiseksi P@ssword1
narun kiinnittämiseksi ja sen ulostulon putkittamiseksi ConvertFrom-SecureString
saadaksesi salatun merkkijonon, joka voidaan turvallisesti ja kätevästi tallentaa tiedostoon.
Sanotaan esimerkiksi tietokoneella, jos järjestelmänvalvojan salasana on asetettu ja meidän on tallennettava se tiedostoon. Voimme tehdä tämän käyttämällä:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Voimme palauttaa tämän järjestelmänvalvojan salasanan muuttujaan turvallisena objektina seuraavasti:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Nyt mietitään, miten voit hyödyntää turvallista salasanaa DCPP:ssä. Jos käyttäjän tietokoneessa on DCPP:ssä joko järjestelmän tai järjestelmänvalvojan salasana, niin kaikille set
komennot, jotka meidän on välitettävä vastaava salasana. Joten tämän salasanan antaminen pelkkänä tekstinä rikkoo tietoturvaa. Meidän on välitettävä salasana nimellä System.Security.SecureString
. Lisäksi, kun ohitamme a SecureString
salasana meidän on välitettävä se a -PasswordSecure
vaihtaa eikä normaalia –Password
kytkin. Alla on esimerkki, jossa käyttäjä yrittää asettaa AdvancedBatteryChargeCfg
jotta Disabled
ja ohi SecureString
salasana:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Tässä $pass sisältää järjestelmän ja järjestelmänvalvojan salasanan, ja se on tyyppiä System.Security.SecureString
. Samanlainen kuin yllä oleva keskustelu, voimme lukea $pass
As:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Voimme säästää $pass
tiedostoon tarvittaessa seuraavasti:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Aiheeseen liittyvät artikkelit: