Número del artículo: 000146459
No corresponde
El concepto detrás de las contraseñas seguras es que en los scripts de producción no debemos pasar contraseñas importantes como una vista simple. Esta es una falta grave de seguridad. Por lo tanto, con PowerShell podemos proteger una contraseña o al menos reducir la visibilidad de la contraseña. Primero, analizamos los aspectos generales de la cadena segura y luego analizamos cómo Dell Command PowerShell Provider (DCPP) aprovecha la función innata de PowerShell para proteger la contraseña.
Tenga en cuenta que queremos leer el nombre de usuario y la contraseña del usuario en la consola. Sabemos que el nombre de usuario generalmente no requiere ninguna seguridad y puede ser visible para todos. Pero para la contraseña no debemos dejar que los extraños conozcan la contraseña del usuario. Podemos facilitar este requisito con los siguientes comandos:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Lo anterior es una descripción general de cómo podemos agregar más seguridad cuando debemos asegurar información importante como una contraseña. En el ejemplo anterior, la variable $pass es de tipo System.Security.SecureString
. Obtenemos una introducción a otros dos cmdlets ampliamente utilizados que Proporciona PowerShell para facilitar los campos seguros antes de tocar los aspectos de DCPP.
Los dos comandos son ConvertTo-SecureString
y ConvertFrom-SecureString
. ConvertTo-SecureString
convierte un texto sin formato para escribir System.Security.SecureString
. A continuación, se muestra un ejemplo:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
En el ejemplo anterior, el texto P@assword1
sin formato se convierte al tipo System.Security.SecureString
. Esto es más bien una información y puede o no ser ampliamente utilizada.
El siguiente cmdlet es un cmdlet ConvertFrom-SecureString
más ampliamente utilizado que se utiliza para convertir cadenas seguras en cadenas estándar cifradas. La principal limitación de ConvertTo-SecureString
es que su salida no se puede escribir directamente en un archivo para su uso futuro. Tenemos que usar ConvertFrom-SecureString
lo que se convierte System.Security.SecureString
en una cadena estándar cifrada que se puede guardar cómodamente en un archivo, para superar esta limitación.
Estamos convirtiendo texto P@ssword1
sin formato a cadena segura y luego canalizando su salida para ConvertFrom-SecureString
obtener una cadena cifrada que se puede guardar de manera segura y conveniente en un archivo.
Por ejemplo, digamos en una computadora si se estableció la contraseña de administrador y debemos guardarla en un archivo. Podemos hacer esto mediante:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Podemos recuperar esta contraseña de administrador en una variable como un objeto seguro de la siguiente manera:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Ahora, considere cómo aprovechar una contraseña segura para DCPP. En DCPP, si la computadora del usuario tiene configurada la contraseña del sistema o de administrador, entonces para todos los set
comandos tenemos que pasar la contraseña respectiva. Proporcionar esta contraseña como texto sin formato vulnera la seguridad. Por lo tanto, tenemos que pasar la contraseña como System.Security.SecureString
. Además, cuando pasamos una SecureString
contraseña, tenemos que pasarla con un -PasswordSecure
switch y no con el switch normal –Password
. A continuación, se muestra un ejemplo en el que el usuario intenta configurar AdvancedBatteryChargeCfg
Disabled
y pasar SecureString
la contraseña:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Aquí $pass contiene la contraseña del sistema y de administrador, y es de tipo System.Security.SecureString
. De manera similar a la discusión anterior, podemos leer $pass
lo siguiente:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Podemos guardar $pass
en un archivo, si es necesario, como:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Artículos relacionados:
Dell Command | Powershell Provider
11 sept 2023
7
Solution