Article Number: 000146459
Geçerli Değil
Güvenli parolaların arkasındaki kavram, üretim komut dosyalarında önemli parolaları düz görünüm olarak geçmemiz gerektiğidir. Bu ciddi bir güvenlik eksikliğidir. Bu nedenle PowerShell'i kullanarak bir parola güvenli olabilir veya en azından parola görünürlüğünü azaltabilirsiniz. İlk olarak güvenli dizenin genel yönlerini ve ardından Dell Command PowerShell Provider'ın (DCPP) güvenli parola için PowerShell'in ilk özelliğine nasıl sahip olduğunu tartışacağız.
Konsoldaki kullanıcıdan Kullanıcı Adı ve Parolayı okumak istediğinizi düşünün. Kullanıcı Adının genellikle herhangi bir güvenlik gerektirmesi gerektir olmadığının ve tüm kullanıcılar tarafından görülebilir olduğunun farkındayız. Ancak parola için kullanıcının parolasını bilmesine izin verilmiştir. Bu gereksinimi aşağıdaki komutlarla kolaylaştırabilirsiniz:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Yukarıdaki bilgiler, parola gibi kritik bilgileri güvenli hale çıkarmanız gerekirken nasıl daha fazla güvenlik ekley),genel bir bakış sunar. Yukarıdaki örnekte değişken $pass türüne göredir System.Security.SecureString
. DCPP'nin özelliklerine dokunmadan önce güvenli alanları kolaylaştırmak için yaygın olarak kullanılan iki PowerShell cmdlet'ine giriş işlemi kullanılmaktadır.
İki komut şunlardır: ConvertTo-SecureString
ve ConvertFrom-SecureString
. ConvertTo-SecureString
düz bir metni yazın.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 bu şekilde kullanılamaz.
Sonraki cmdlet, güvenli dizeleri şifrelenmiş standart dizelere dönüştürmek için kullanılan daha yaygın kullanılan bir cmdlet'dir ConvertFrom-SecureString
. Ana sınırlama, çıktısının ConvertTo-SecureString
gelecekte kullanmak üzere doğrudan bir dosyaya yazılamamasıdır. Bu sınırlamanın üstesinden ConvertFrom-SecureString
gelmek için System.Security.SecureString
dosyaya kolayca kaydedilebilir şifrelenmiş standart dizeye dönüştüren bir diziyi kullanmamiz gerekir.
Düz metni güvenli dizeye P@ssword1
dönüştürdük ve ardından güvenli ve ConvertFrom-SecureString
kolay bir şekilde bir dosyaya kaydedilebilmektedir.
Örneğin, bir bilgisayarda Yönetici parolası ayarlanmışsa ve bunu bir dosyaya kaydetmeliyseniz bunu bir dosyaya kaydetmeniz gerekir. Bunu aşağıdakileri kullanarak gerçekleştirin:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Bu yönetici parolasını güvenli bir nesne olarak bir değişkene şu şekilde geri döndürebilirsiniz:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Şimdi DCPP için güvenli parolayı nasıl kaldırabilirsiniz? DCPP'de, kullanıcının bilgisayarına Sistem veya Yönetici set
parolası ayarlanmışsa tüm komutlar için ilgili parolayı geçmeniz gerekir. Bu nedenle bu parolayı düz metin güvenliği ihlal eder. Bu nedenle parolayı şu şekilde geçmeniz gerekir System.Security.SecureString
: Ayrıca bir parolayı geçişle SecureString
birlikte normal anahtarla değil -PasswordSecure
, bir anahtarla geçmeniz –Password
gerekir. Kullanıcının parolayı ayarlamaya ve bu parolayı geçene kadar AdvancedBatteryChargeCfg
aşağıda bir Disabled
örnek SecureString
gösterilmiştir:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Burada $pass ve yönetici parolası bulunur ve tür.System.Security.SecureString
Yukarıdaki tartışmaya benzer olarak şunları okuyuz $pass
:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Gerekirse aşağıdaki $pass
gibi bir dosyaya kaydede-olabilirim:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Dell Command | Powershell Provider
11 Sep 2023
7
Solution