Číslo článku: 000146459
Güvenli parolaların arkasındaki kavram, üretim komut dosyalarında önemli parolaları düz görünüm olarak iletmememiz gerektiğidir. Bu ciddi bir güvenlik eksikliğidir. Böylece, PowerShell'i kullanarak bir parolayı güvence altına alabilir veya en azından parola görünürlüğünü azaltabiliriz. Önce güvenli dizenin genel özelliklerini ele alacağız ve ardından Dell Command PowerShell Sağlayıcısı'nın (DCPP) parolayı güvenli hale getirmek için PowerShell in doğuştan gelen özelliğinden nasıl yararlandığını tartışacağız.
Konsoldaki kullanıcıdan kullanıcı adını ve şifreyi okumak istediğimizi düşünün. Kullanıcı adının genellikle herhangi bir güvenlik gerektirmediğini ve herkes tarafından görülebileceğini biliyoruz. Ancak şifre için yabancıların kullanıcının şifresini bilmesine izin vermemeliyiz. Bu gereksinimi aşağıdaki komutlarla kolaylaştırabiliriz:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Yukarıdakiler, parola gibi kritik bilgileri güvence altına almamız gerektiğinde nasıl daha fazla güvenlik ekleyebileceğimize dair bir genel bakıştır. Yukarıdaki örnekte $pass değişkeninin türü System.Security.SecureString
. DCPP'nin yönlerine değinmeden önce PowerShell'in güvenli alanları kolaylaştırmak için sağladığı yaygın olarak kullanılan diğer iki cmdlet'e giriş yapacağız.
İki komut şunlardır: ConvertTo-SecureString
ve ConvertFrom-SecureString
. ConvertTo-SecureString
Düz metni türe dönüştürür System.Security.SecureString
. Aşağıda bir örnek gösterilmiştir:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
Yukarıdaki örnekte, düz metin P@assword1
türe dönüştürülür System.Security.SecureString
. Bu daha çok bir bilgidir ve yaygın olarak kullanılabilir veya kullanılmayabilir.
Sonraki cmdlet ConvertFrom-SecureString
, güvenli dizeleri şifrelenmiş standart dizelere dönüştürmek için kullanılan daha yaygın olarak kullanılan bir cmdlet'tir. Ana sınırlaması ConvertTo-SecureString
çıktısının ileride kullanılmak üzere doğrudan bir dosyaya yazılamamasıdır. Kullanmak zorundayız ConvertFrom-SecureString
hangi dönüştürür System.Security.SecureString
Bu sınırlamanın üstesinden gelmek için bir dosyaya kolayca kaydedilebilen şifreli bir standart dizeye.
Düz metni dönüştürüyoruz P@ssword1
dizeyi sabitlemek ve ardından çıkışını ConvertFrom-SecureString
güvenli ve rahat bir şekilde bir dosyaya kaydedilebilen şifreli bir dize almak için.
Örnek olarak, bir bilgisayarda yönetici şifresi ayarlanmışsa ve bunu bir dosyaya kaydetmemiz gerekiyorsa diyelim. Bunu aşağıdakileri kullanarak yapabiliriz:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Bu yönetici parolasını şu şekilde güvenli bir nesne olarak bir değişkene geri alabiliriz:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Şimdi DCPP için güvenli bir paroladan nasıl yararlanacağınızı ele alalım. DCPP'de, kullanıcının bilgisayarında Sistem veya Yönetici parolası ayarlanmışsa set
ilgili şifreyi iletmemiz gereken komutlar. Dolayısıyla, bu parolayı düz metin olarak sağlamak güvenliği ihlal eder. Şifreyi şu şekilde geçmeliyiz: System.Security.SecureString
. Ayrıca, bir SecureString
şifre ile iletmemiz gerekiyor -PasswordSecure
normal değil –Password
şalter. Kullanıcının ayarlamaya çalıştığı bir örnek aşağıda gösterilmiştir AdvancedBatteryChargeCfg
yerine Disabled
ve geçen SecureString
parola:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Burada $pass, sistem ve yönetici parolasını tutar ve System.Security.SecureString
. Yukarıdaki tartışmaya benzer şekilde okuyabiliriz $pass
gibi:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Kurtarabiliriz $pass
Gerekirse bir dosyaya:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Dell Command | Powershell Provider
18 čvc 2024
8
How To