Seguridad de la aplicación WinForm

0

Quería crear una aplicación winform que tuviera una base de datos de seguridad centralizada. Esta aplicación es portátil, se puede guardar en cualquier PC y simplemente ejecute el archivo .exe para usar, por lo tanto, habrá muchas copias de este software. Sin embargo, requerirá un inicio de sesión de usuario, las credenciales de esta cuenta de inicio de sesión se referirán a la base de datos de seguridad centralizada (la base de datos centralizada es solo para fines de seguridad). Si la PC no tiene conexión a Internet, el software no podrá identificar las credenciales. Por lo tanto, se me ocurrió que lo ideal es poner una marca de tiempo, si la última conexión a centralizada es DB es < 24h, se otorga el inicio de sesión de credenciales locales (copia de base de datos de base de datos centralizada) Pero el problema al que me enfrento ahora es que la marca de tiempo y el límite de 24 horas tendrán que referirse a la hora actual del sistema en la PC (que se puede cambiar fácilmente para omitir la marca de tiempo). ¿cuál es la solución? ¿Algún otro método que pueda controlar al usuario mientras la aplicación se desconecta?

    
pregunta Cheelam1220 10.12.2014 - 05:12
fuente

2 respuestas

0

Aquí hay varios vectores de ataque si alguien quisiera piratear este software. Podrían modificar el binario o reemplazar el servidor remoto por uno falso. En general, los binarios de DotNET se pueden desarmar o descompilar fácilmente a código fuente legible, de forma gratuita, consulte enlace . Peor aún, el código también se puede editar y volver a compilar casi con la misma facilidad. Por lo tanto, si tiene secretos o claves de cifrado simétricas en sus fuentes, se verán comprometidas. Esto solo se puede mitigar un poco utilizando un ofuscador de terceros, pero eso solo retrasa lo inevitable. Si ya tiene un método para omitir la autenticación basada en la marca de tiempo en su código, en realidad está haciendo que sea aún más fácil abusar. También la copia local de db podría usarse para configurar un servidor de autenticación falso.

    
respondido por el Jari Huttunen 10.12.2014 - 11:34
fuente
0

Su esquema es vulnerable a ataques de repetición: un atacante puede manipular la configuración de fecha y hora del sistema local para engañar a su aplicación para que acepte un token de seguridad caducado.

Además, como está colocando todo el elemento de seguridad dentro de su almacenamiento local, simplemente no puede protegerlo contra el usuario local: podría, por ejemplo, ejecutar su aplicación en un depurador, detenerla directamente cuando consulte su base de datos local y toma tus datos de autenticación de la memoria.

En otras palabras, no existe una manera infalible de proteger sus datos de la forma que desee. Todo lo que puedes hacer trata de hacerlo menos fácil a través de la ofuscación.

    
respondido por el Stephane 10.12.2014 - 11:25
fuente

Lea otras preguntas en las etiquetas