gpg s PowerShell - passphrase bezpečnost

hlasů
3

Já používám GnuPG pro zašifrování a dešifrování dat pomocí PowerShell skriptu a problém je, že mám přístupové heslo v kódu. Je to pravděpodobně v ne tím nejlepším řešením. Což je nejlepší a bezpečný způsob, jak zajistit, aby přístupové heslo scénáře? Děkuji.

C:\Program Files\GNU\GnuPG\gpg2.exe --passphrase mypassphrase --batch --output C:\Z\$decrypted_file.xls --decrypt C:\_Zo\$encrypted_file
Položena 16/04/2012 v 12:28
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
4

Můžete kryptě přístupové heslo nebo heslo na disku.

Následující Použití řešení počítače jako uživatel .

Následující dva skripty securot montáž NET Framework.

Pro serverové počítače, je možné chránit tajemství počítačovým identity. Tento kód využít skutečnosti, že všechny osoby, které mohou spouštět kód na počítači může přistupovat heslo. Takže passwword soubor může být sdílena naproti přes síť, je lze dekódovat pouze samotný server. Můžete přidat ACL do souboru s hesly, aby mohla být přečteny pouze nějaké skupiny uživatelů.

Kryptování (musí být provedeno v počítači serveru):

# Mandatory Framework .NET Assembly 
Add-Type -assembly System.Security

# String to Crypt
$passwordASCII = Read-Host -Prompt "Entrer le mot de passe"

# String to INT Array
$enc = [system.text.encoding]::Unicode
$clearPWD_ByteArray = $enc.GetBytes( $passwordASCII.tochararray())

# Crypting
$secLevel = [System.Security.Cryptography.DataProtectionScope]::LocalMachine
$bakCryptedPWD_ByteArray = [System.Security.Cryptography.ProtectedData]::Protect($clearPWD_ByteArray, $null, $secLevel)

# Store in Base 64 form
$B64PWD_ByteArray = [Convert]::ToBase64String($bakCryptedPWD_ByteArray)
Set-Content -LiteralPath c:\Temp\pass.txt -Value $B64PWD_ByteArray

dekódování:

# Mandatory Framework .NET Assembly
Add-Type -assembly System.Security

# Getting from Base 64 storage
$resCryptedPWD_ByteArray = [Convert]::FromBase64String((Get-Content -LiteralPath c:\Temp\pass.txt))

# Decoding
$secLevel = [System.Security.Cryptography.DataProtectionScope]::LocalMachine
$clearPWD_ByteArray = [System.Security.Cryptography.ProtectedData]::Unprotect( $resCryptedPWD_ByteArray, $null, $secLevel )

# Dtring from int Array
$enc = [system.text.encoding]::Unicode
$enc.GetString($clearPWD_ByteArray)
Odpovězeno 16/04/2012 v 13:00
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more