Seguro para almacenar datos encriptados con un archivo pfx (protegido por contraseña)

3

He creado un certificado autofirmado con el certificado New-SelfSignedCertificate de Powershell, con la intención de cifrar y almacenar un nombre de usuario / contraseña en público.

Utilizando específicamente -

New-SelfSignedCertificate -TextExtension @("2.5.29.37={text}1.3.6.1.4.1.311.80.1") 
                          -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider"
                          -DnsName sign.example.com 
                          -CertStoreLocation  "Cert:\CurrentUser\My" 
                          -KeyExportPolicy ExportableEncrypted -KeyUsage DataEncipherment 
                          -KeyUsageProperty All -KeyLength 2048 

$key = New-Object byte[](32)
$rng = [System.Security.Cryptography.RNGCryptoServiceProvider]::Create()
$rng.GetBytes($key)
$SecureStringWithKey = $cred.Password | ConvertFrom-SecureString -Key $key 

Luego estoy creando un objeto con la clave, el nombre de usuario y la contraseña de seguridad y lo cifro a través de

Protect-CmsMessage -Content $object -To $thumbprint

Suponiendo que he usado una contraseña compleja para el archivo pfx, es seguro almacenar el archivo pfx y la cadena cifrada en un repositorio de github (junto con el script que desenreda todo el asunto) o debería estar tomando medidas para mantener el archivo pfx seguro también?

    
pregunta Michael B 07.11.2015 - 06:46
fuente

2 respuestas

2

Sí, es seguro almacenar los materiales de la clave de cifrado de datos (DEK) de cifrado (su archivo PFX coincide con esta descripción) junto con los datos cifrados. Debe almacenar la clave de cifrado de clave (KEK) (la contraseña para el PFX) en un almacenamiento separado (o recordar si es práctico).

    
respondido por el Alain O'Dea 08.11.2015 - 17:04
fuente
0

Tenga en cuenta que los archivos .pfx vienen con distintos niveles de cifrado, incluido el RC2 de 40 bits, que no es seguro. Para averiguar qué algoritmo de cifrado se usa para su archivo .pfx, consulte esta respuesta usando openssl pkcs12 .

Después de llamar a New-SelfSignedCertificate, tendrá un nuevo certificado en su almacén de certificados. Imagino que luego generó el archivo .pfx utilizando Windows (por ejemplo, con Microsoft Management Console). En Windows 10, para mí, hoy en día, esto usa 3DES, pero en versiones anteriores de Windows puede usar un algoritmo menos seguro.

También presta atención al conteo de iteraciones. El valor predeterminado en Windows 10 es 2000 iteraciones de SHA-1, por lo que un atacante podría hacer ~ 1,000 intentos / segundo con la contraseña (consulte esta respuesta utiliza openssl speed . Dice que ha elegido una "contraseña compleja", lo cual es bueno, pero a ese ritmo se pueden adivinar algunas contraseñas aparentemente complejas. Especialmente si su repositorio de github es público desde noviembre de 2015.

    
respondido por el Martin Randall 20.06.2017 - 18:21
fuente

Lea otras preguntas en las etiquetas