¿Dónde debo guardar la contraseña de mi aplicación?

0

Tengo una aplicación de Windows que no usa una base de datos y no está en Internet. Contiene datos muy importantes (datos cargados de archivos encriptados). El usuario necesita una contraseña para entrar en esta aplicación.

¿Dónde debo guardar de forma segura la contraseña de la aplicación? (También hay algunos datos de cadena corta que necesitan ser almacenados (direcciones de archivos)). La aplicación se ejecuta en Windows XP y versiones posteriores. Yo uso C #.

Nota: No pregunto cómo almacenar la contraseña. Sé que debería estar picado y debería usar sal para ello. Consulte esta publicación .

    
pregunta NokhodSiah 05.04.2017 - 10:24
fuente

3 respuestas

2

enlace

  

Los desarrolladores que escriben para Windows pueden usar la administración de credenciales   API que incluye funciones de interfaz de usuario de gestión de credenciales (UI) para   obtener y gestionar información de credenciales, como nombres de usuarios y   contraseñas Estas funciones solicitan que la información de la cuenta de Windows sea   utilizado en lugar de las credenciales establecidas al iniciar sesión. Tal   las solicitudes suelen ocurrir cuando las credenciales de inicio de sesión no tienen   Permisos que son requeridos por la aplicación. Las credenciales   Las funciones de gestión de la interfaz de usuario proporcionan interfaces con el aspecto de la   Interfaz de usuario de Windows. Estas funciones incluyen opciones personalizables.   que agregan información del usuario al almacén de credenciales del usuario.

En sus datos, es realmente impotente considerar el uso de una solución basada en hardware (por ejemplo, tarjetas inteligentes, TPM).

    
respondido por el Maciek Sawicki 09.07.2017 - 00:37
fuente
1

De tu pregunta? No creo que deba almacenar la contraseña en absoluto.

De lo que obtuve de tu pregunta, aquí está tu proceso de pensamiento actual:

  1. El usuario activa la aplicación
  2. El usuario tiene que escribir la contraseña de la aplicación
  3. La aplicación comprueba si la contraseña es correcta
  4. Si no lo es, la aplicación se cierra
  5. Si es así, comienza a cargar los datos

Bueno, ¿qué pasa con este modelo en su lugar?

  1. El usuario activa la aplicación
  2. El usuario tiene que escribir la contraseña de la aplicación
  3. La aplicación lee los datos cifrados del disco
  4. La aplicación intenta descifrar los datos utilizando la contraseña proporcionada por el usuario
  5. Si los datos descifrados no son válidos, la aplicación se cierra (contraseña) no estaba bien)
  6. Si los datos descifrados son válidos, la aplicación continúa (la contraseña fue correcto)

¿Eso tiene sentido? Su aplicación no almacena la clave en absoluto, simplemente intenta descifrar los datos con lo que sea que haya escrito el usuario.

    
respondido por el Kevin 04.02.2018 - 23:48
fuente
0

Para resolver este problema, necesito un lugar para almacenar datos. Incluso si elegí usar una clave para descifrar el archivo y si falla, considérelo como una clave incorrecta (eso no es correcto) necesitaría la dirección del archivo.

Hay dos formas posibles:

  1. usar el registro
  2. usa otro archivo

Ambos tienen lados positivos y negativos, pero recomiendo un archivo.

Para un nombre de archivo, puede crear un nombre usando algunas propiedades como nombre de usuario, etc. (la propiedad debe ser única para el usuario en condiciones aceptables). Además, puede usar serialization y binaryformatter para guardar / cargar datos.

Ahora la pregunta es ¿este archivo debe estar encriptado o no? Debido a que almacenaremos algunos datos (dirección del archivo) que necesitamos, ya que se guardaron, no podemos usar la contraseña insertada para el cifrado, de lo contrario, habría sugerencias para la contraseña. Podemos cifrar el archivo o algunos de sus datos con alguna otra contraseña creada por algunas propiedades o no cifrarlos (no creo que el cifrado ayude a nadie de esta manera).

Sería conveniente tener una copia de seguridad de este archivo.

Esperaré aproximadamente una semana y si no hay una mejor respuesta y esta respuesta es válida (se basa en los comentarios), la aceptaré como la respuesta.

    
respondido por el NokhodSiah 09.04.2017 - 09:38
fuente

Lea otras preguntas en las etiquetas