internet guardadas google eliminar contraseñas como chrome borrar administrador c# security local

c# - google - como eliminar contraseñas guardadas en la pc



¿Cómo guardar de forma segura el nombre de usuario/contraseña(local)? (4)

DPAPI es solo para este propósito. Use DPAPI para encriptar la contraseña la primera vez que ingresa el usuario, guárdela en una ubicación segura (el registro del usuario, el directorio de datos de la aplicación del usuario, son algunas opciones). Cada vez que se inicie la aplicación, verifique la ubicación para ver si su clave existe, si usa DPAPI para descifrarla y permitir el acceso, de lo contrario, denieguela.

Estoy creando una aplicación para Windows, en la que primero debe iniciar sesión.
Los detalles de la cuenta consisten en nombre de usuario y contraseña, y deben guardarse localmente.
Es solo una cuestión de seguridad, por lo que otras personas que usan la misma computadora no pueden ver los datos personales de todos.
¿Cuál es la mejor / la forma más segura de guardar esta información?

No quiero usar una base de datos, así que intenté algunas cosas con los archivos de recursos.
Pero dado que soy algo nuevo con esto, no estoy del todo seguro de lo que estoy haciendo y de dónde debería buscar una solución.



Lo he usado antes y creo para asegurarnos de que las credenciales persisten y de la mejor manera segura es

  1. puede escribirlos en el archivo de configuración de la aplicación usando la clase ConfigurationManager
  2. asegurando la contraseña usando la clase SecureString
  3. luego, encriptarlo usando herramientas en el espacio de nombres Cryptography .

Este enlace será de gran ayuda, espero: haga clic aquí


Si va a verificar / validar el nombre de usuario y contraseña ingresados, use la clase Rfc2898DerivedBytes (también conocida como Función de derivación de clave basada en contraseña 2 o PBKDF2). Esto es más seguro que usar cifrado como Triple DES o AES porque no hay una forma práctica de pasar del resultado de RFC2898DerivedBytes a la contraseña. Solo puede pasar de una contraseña al resultado. Consulte ¿Está bien utilizar el hash SHA1 de contraseña como un valor saliente al derivar la clave de cifrado y IV de la cadena de contraseña? para un ejemplo y discusión para .Net o String encriptar / descifrar con contraseña c # Metro Style para WinRT / Metro.

Si está almacenando la contraseña para su reutilización, como proporcionarla a un tercero, use la API de protección de datos de Windows (DPAPI) . Esto utiliza claves protegidas y generadas por el sistema operativo y el algoritmo de cifrado Triple DES para cifrar y descifrar información. Esto significa que su aplicación no tiene que preocuparse por generar y proteger las claves de cifrado, una preocupación importante al usar la criptografía.

En C #, use la clase System.Security.Cryptography.ProtectedData . Por ejemplo, para cifrar un dato, use ProtectedData.Protect() :

// Data to protect. Convert a string to a byte[] using Encoding.UTF8.GetBytes(). byte[] plaintext; // Generate additional entropy (will be used as the Initialization vector) byte[] entropy = new byte[20]; using(RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider()) { rng.GetBytes(entropy); } byte[] ciphertext = ProtectedData.Protect(plaintext, entropy, DataProtectionScope.CurrentUser);

Almacene la entropía y el texto cifrado de forma segura, como en un archivo o clave de registro con permisos establecidos para que solo el usuario actual pueda leerlos. Para tener acceso a los datos originales, use ProtectedData.Unprotect() :

byte[] plaintext= ProtectedData.Unprotect(ciphertext, entropy, DataProtectionScope.CurrentUser);

Tenga en cuenta que hay consideraciones de seguridad adicionales. Por ejemplo, evite almacenar secretos como contraseñas como una string . Las cadenas son inmutables, ya que no se pueden notificar en la memoria para que alguien que esté mirando la memoria de la aplicación o un volcado de memoria pueda ver la contraseña. Utilice SecureString o un byte [] en su lugar y recuerde desecharlos o ponerlos en cero tan pronto como ya no necesite la contraseña.