Número del artículo: 000146459
Não aplicável
O conceito por trás de senhas seguras é que, em scripts de produção, não devemos passar senhas importantes como visualização simples. Essa é uma falta grave de segurança. Usando o PowerShell, podemos proteger uma senha ou, pelo menos, reduzir a visibilidade da senha. Primeiro, discutimos aspectos gerais da string segura e, em seguida, discutimos como o Dell Command PowerShell Provider (DCPP) aproveita o recurso inato do PowerShell para proteger a senha.
Considere que queremos ler o nome de usuário e a senha do usuário no console. Estamos cientes de que o nome de usuário geralmente não exige nenhuma segurança e pode ser visível para todos. Mas, para senha, não devemos informar a senha do usuário. Podemos facilitar esse requisito com os comandos abaixo:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
A visão geral acima é sobre como podemos adicionar mais segurança quando precisamos proteger informações críticas, como uma senha. No exemplo acima, a variável $pass é do tipo System.Security.SecureString
. Temos uma introdução a dois outros cmdlets amplamente usados que o PowerShell oferece para facilitar campos seguros antes de tocar nos aspectos do DCPP.
Os dois comandos são ConvertTo-SecureString
e ConvertFrom-SecureString
. ConvertTo-SecureString
converte um texto sem formatação para tipo System.Security.SecureString
. Um exemplo é mostrado abaixo:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
No exemplo acima, o texto sem formatação P@assword1
é convertido para tipo System.Security.SecureString
. Isso é mais uma informação e pode ou não ser amplamente usado.
O próximo cmdlet ConvertFrom-SecureString
é um cmdlet mais amplamente usado que é usado para converter strings seguras em strings padrão criptografadas. A principal limitação do ConvertTo-SecureString
é que seu resultado não pode ser gravado diretamente em um arquivo para uso futuro. Temos que usar o ConvertFrom-SecureString
que converte em System.Security.SecureString
uma string padrão criptografada que pode ser salva convenientemente em um arquivo para superar essa limitação.
Estamos convertendo texto P@ssword1
sem formatação em string ConvertFrom-SecureString
segura e, em seguida, enviar sua saída para obter uma string criptografada que pode ser salva em um arquivo com segurança e praticidade.
Por exemplo, digamos que, em um computador, se a senha de administrador tiver sido definida e precisarmos salvá-lo em um arquivo. Podemos fazer isso usando:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Podemos recuperar essa senha de administrador em uma variável como um objeto seguro como:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Agora, considere como aproveitar uma senha segura para DCPP. No DCPP, se o computador do usuário tiver uma senha de sistema ou de administrador definida, set
para todos os comandos, teremos que passar a respectiva senha. Portanto, fornecer essa senha como violação de texto sem formatação viola a segurança. Portanto, temos que passar a senha como System.Security.SecureString
. Além disso, quando passarmos uma SecureString
senha, teremos que passá-la com um -PasswordSecure
switch, e não com o switch normal –Password
. Um exemplo é mostrado abaixo, em que o usuário está tentando definir e AdvancedBatteryChargeCfg
Disabled
passar senha SecureString
:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Aqui $pass contém a senha do sistema e do administrador e é do tipo System.Security.SecureString
. Semelhante à discussão acima, podemos ler $pass
como:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Podemos salvar $pass
em um arquivo, se necessário, como:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Dell Command | Powershell Provider
11 sept 2023
7
Solution