Número del artículo: 000146459
Není k dispozici
Koncept zabezpečených hesel spočívá v tom, že ve výrobních skriptech bychom neměli předávat důležitá hesla běžným způsobem. Jde o vážný nedostatek zabezpečení. Pomocí prostředí PowerShell tedy můžeme zabezpečit heslo nebo alespoň snížit viditelnost hesla. Nejprve probereme obecné aspekty zabezpečeného řetězce a potom probereme, jak nástroj Dell Command PowerShell Provider (DCPP) využívá k zabezpečení hesla hlavní funkci prostředí PowerShell.
Zvažte, že chceme od uživatele v konzoli přečíst uživatelské jméno a heslo. Víme, že uživatelské jméno obecně nevyžaduje žádné zabezpečení a může být viditelné pro všechny. V případě hesla bychom však neměli cizím lidem sdělovat heslo uživatele. Tento požadavek můžeme usnadnit pomocí následujících příkazů:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Výše uvedený přehled vysvětluje, jak můžeme zvýšit zabezpečení v případě, že je nutné zabezpečit důležité informace jako heslo. Ve výše uvedeném příkladu je proměnná $pass typu System.Security.SecureString
. Před dotykem na aspekty dcpp získáme úvod do dvou dalších široce používaných rutin prostředí PowerShell, které usnadňují zabezpečení polí.
Dva příkazy jsou ConvertTo-SecureString
a ConvertFrom-SecureString
. ConvertTo-SecureString
Převádí na text System.Security.SecureString
v prostém textu. Níže je uveden příklad:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
Ve výše uvedeném příkladu je běžný text P@assword1
převeden na text System.Security.SecureString
. Jedná se o více informací a může, ale nemusí být široce používán.
Další rutina ConvertFrom-SecureString
je obecnější rutina, která se používá k převodu zabezpečených řetězců na šifrované standardní řetězce. Hlavním omezením ConvertTo-SecureString
je to, že jeho výstup nelze přímo zapsat do souboru pro budoucí použití. K překonání System.Security.SecureString
tohoto omezení je nutné použít ConvertFrom-SecureString
zašifrovaný standardní řetězec, který lze pohodlně uložit do souboru.
Převádíme prostý text na zabezpečený řetězec P@ssword1
a poté jeho výstupem ConvertFrom-SecureString
vytváříme šifrovaný řetězec, který lze bezpečně a pohodlně uložit do souboru.
Například můžeme na počítači uvést, zda bylo nastaveno heslo správce a je nutné jej uložit do souboru. To lze provést pomocí:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Toto heslo správce můžeme načíst do proměnné jako zabezpečený objekt jako:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Nyní zvažte, jak využít zabezpečené heslo pro nástroj DCPP. Pokud je v počítači uživatele v nástroji DCPP nastaveno systémové heslo nebo heslo správce, je nutné u všech set
příkazů předat příslušné heslo. Pokud tedy toto heslo poskytnutím tohoto hesla dojde k narušení bezpečnosti pomocí prostého textu. Proto je nutné heslo předávat jako System.Security.SecureString
. Také při předávání SecureString
hesla je nutné je -PasswordSecure
předat přepínači, nikoli normálnímu –Password
přepínači. Níže je uveden příklad, kde se uživatel pokouší nastavit AdvancedBatteryChargeCfg
Disabled
a předávat SecureString
heslo:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Zde $pass obsahuje systémové heslo a heslo správce a je typu System.Security.SecureString
. Podobně jako ve výše uvedené diskusi si můžeme přečíst $pass
následující:
$pass = Read-Host "Enter system/admin password" –AsSecureString
V případě potřeby můžeme uložit $pass
soubor jako:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Související články:
Dell Command | Powershell Provider
11 sept 2023
7
Solution