Autor
|
Tema: Sistema de login muy seguro (Leído 15,115 veces)
|
TomaSs
Desconectado
Mensajes: 101
|
Hola gente. Sabrían decirme los métodos que podría utilizar para hacer un login altamente seguro? La cuestión sería que se envíen los datos de logeo a una base de datos remota y que esta devuelva si son correctos o no. No pido como hacer la petición remota ni nada de eso, sino como debería cifrar la respuesta y comprobarla posteriormente (no con un simple if) de tal manera que no sea fácil de crakear. Y ya aprovecho también, para preguntar sobre que "identificador" o algún número de serie o algo que me permita identificar un ordenador para así hacer que mi programa únicamente funcione en un pc concreto. De esta manera podría basar también la respuesta de la base de datos en base a ese identificador también, para así cerciorarme de que se ejecuta únicamente en ese pc, y así hacer más difícil aún el crakeado. A ver si me podéis orientar un poco algunos que hayáis tenido que usar algo de esto. Muchas gracias!
|
|
|
En línea
|
|
|
|
Keyen Night
Desconectado
Mensajes: 496
Nothing
|
La arquitectura común para un login, es Cliente <-> Servidor/Servicio <-> Base De Datos, de manera que la comprobación de las credenciales no se realice desde el lado del cliente.
Para generar una comunicación segura se debe establecer un canal cifrado, hay mucha documentación, pero es un tema largo.
En el caso de los identificadores, estos deben generarse desde el lado del cliente, así que se puede realizar un parche para modificar al antojo el identificador, lo más sencillo es tener una base de datos de usuarios, para que estos deben autenticarse ante el servicio y así poder tomar decisiones según sea el caso.
|
|
|
En línea
|
La Fé Mueve Montañas... ...De Dinero
La programación es más que un trabajo es más que un hobby es una pasión...
|
|
|
TomaSs
Desconectado
Mensajes: 101
|
Claro que la comprobación de credenciales la haces en el lado del servidor, pero luego le tendrás que responder al cliente con algo, no? con una aceptación o con algo, y eso es lo que digo que pueden crackear, esa respuesta xd
|
|
|
En línea
|
|
|
|
BlackM4ster
Desconectado
Mensajes: 499
Error, el teclado no funciona. Pulse F1 para continuar
|
Todo se puede crackear, luego consiste en como quieras hacer la comparación. Modificar un if, es facil, pero todas las formas de la que lo puedas encubrir, tambien se pueden crackear xD
He visto algunos crackmes que tienen una funcion modificada una vez compilado, que comprueba el valor en hex de la parte que tiene la comparación y si detecta algo raro, se cierra. Es una idea, pero tambien es crackeable
|
|
|
En línea
|
|
|
|
Fakedo0r
Desconectado
Mensajes: 21
Fuera de compás, en una de las 12 dimensiones...
|
Separa la parte de autentificación que llegaría a ser una especie de loader de tu aplicación. Cifra tu aplicación entera. Entonces desde el loader se ingresarían las credenciales (usuario / contraseña + algún Hardware ID única), esto haría una petición al Servidor, en el servidor se validarían las credenciales y según eso, te devolvería la contraseña para descifrar tu aplicación o de lo contrario un código erróneo. Te aconsejo, que el loader hicieras en algún lenguaje nativo como c++ o object pascal, ya que el .NET es de-compilable y no necesitamos dar mas información de lo que ya dispone el cracker. Esto no es un método 100% efectivo pero es una buena solución.
Saludos.
|
|
|
En línea
|
|
|
|
Shout
Desconectado
Mensajes: 191
Acid
|
Pues yo tengo una solución verdaderamente segura, con la que es 99.9% imposible crackear tu aplicación.
Primero: encriptas el .exe compilado de tu programa con algún cifrado con contraseña (tipo AES, así, el archivo varía según la contraseña, por lo tanto, es imposible recuperar el archivo original sin esa contraseña)
Luego, creas un "loader" que se encargará de enviar el Hardware ID (HWID) al servidor. En el servidor, compruebas que el HWID esté en la base de datos. Si lo está, envías la contraseña al cliente para que desencripte el programa original y se pueda ejecutar. Si no es un HWID que esté en tu base de datos de HWIDs válidos, envías una contraseña aleatoria y el archivo no podrá ser descifrado.
Esto es imposible de crackear (eso sí, si la contraseña es 12345, no esperes que dure mucho). Si pones una contraseña larga y jodida, nadie podrá jamás ejecutar ese código, ya que, para bruteforcear eso, necesitas muchísimos años de crackeo.
|
|
|
En línea
|
I'll bring you death and pestilence, I'll bring you down on my own
|
|
|
Mad Antrax
|
Pues yo tengo una solución verdaderamente segura, con la que es 99.9% imposible crackear tu aplicación.
Primero: encriptas el .exe compilado de tu programa con algún cifrado con contraseña (tipo AES, así, el archivo varía según la contraseña, por lo tanto, es imposible recuperar el archivo original sin esa contraseña)
Luego, creas un "loader" que se encargará de enviar el Hardware ID (HWID) al servidor. En el servidor, compruebas que el HWID esté en la base de datos. Si lo está, envías la contraseña al cliente para que desencripte el programa original y se pueda ejecutar. Si no es un HWID que esté en tu base de datos de HWIDs válidos, envías una contraseña aleatoria y el archivo no podrá ser descifrado.
Esto es imposible de crackear (eso sí, si la contraseña es 12345, no esperes que dure mucho). Si pones una contraseña larga y jodida, nadie podrá jamás ejecutar ese código, ya que, para bruteforcear eso, necesitas muchísimos años de crackeo.
Ese sistema es bastante seguro, un servidor de licencias Pero se puede "alterar" de varias formas dependiendo el modo en que implementes la protección. Por ejemplo un cliente que ya haga la validación HWID y tenga la aplicación descifrada, podrá volcar-lo en un nuevo fichero y distribuir la copia por la red (por ejemplo). Per es cierto que un license-server es bastante seguro
|
|
|
En línea
|
No hago hacks/cheats para juegos Online. Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
|
|
|
BlackM4ster
Desconectado
Mensajes: 499
Error, el teclado no funciona. Pulse F1 para continuar
|
Pues yo tengo una solución verdaderamente segura, con la que es 99.9% imposible crackear tu aplicación.
Primero: encriptas el .exe compilado de tu programa con algún cifrado con contraseña (tipo AES, así, el archivo varía según la contraseña, por lo tanto, es imposible recuperar el archivo original sin esa contraseña)
Luego, creas un "loader" que se encargará de enviar el Hardware ID (HWID) al servidor. En el servidor, compruebas que el HWID esté en la base de datos. Si lo está, envías la contraseña al cliente para que desencripte el programa original y se pueda ejecutar. Si no es un HWID que esté en tu base de datos de HWIDs válidos, envías una contraseña aleatoria y el archivo no podrá ser descifrado.
Esto es imposible de crackear (eso sí, si la contraseña es 12345, no esperes que dure mucho). Si pones una contraseña larga y jodida, nadie podrá jamás ejecutar ese código, ya que, para bruteforcear eso, necesitas muchísimos años de crackeo.
Buena idea xD
|
|
|
En línea
|
|
|
|
Shout
Desconectado
Mensajes: 191
Acid
|
Ese sistema es bastante seguro, un servidor de licencias Pero se puede "alterar" de varias formas dependiendo el modo en que implementes la protección. Por ejemplo un cliente que ya haga la validación HWID y tenga la aplicación descifrada, podrá volcar-lo en un nuevo fichero y distribuir la copia por la red (por ejemplo). Per es cierto que un license-server es bastante seguro A ver, se trata de que el archivo esté cifrado y que el servidor te dé la contraseña. Porque como esté limpio dentro del ejecutable, se puede extraer de muchas formas. Gracias
|
|
|
En línea
|
I'll bring you death and pestilence, I'll bring you down on my own
|
|
|
Mad Antrax
|
No me he explicado bien.
Tu sistema es bueno, pero también se puede "crackear" a parte que su implantación tiene un coste de gestión elevadísimo si lo extrapolamos a gran escala (Necesitas tener la capacidad de generar una copia única cifrada para cada cliente, así como su HWID y su contraseña. Cada actualización que realices supone modificar el 100% de las licencias distribuidas a clientes, etc...). Por no hablar que limitas el uso de la aplicación a clientes con Internet permanente.
En cuanto un cliente legítimo realice la validación, el server envía la contraseña y se des-cifra el ejecutable, no? En ese momento el cliente puede dumpear el ejecutable des-cifrado y almacenar una copia del software sin "protección", pudiendo distribuirla por la red libremente.
|
|
|
En línea
|
No hago hacks/cheats para juegos Online. Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sistema de login.
PHP
|
lnvisible
|
4
|
3,016
|
1 Diciembre 2011, 04:33 am
por #!drvy
|
|
|
¿Qué tan seguro es este login que he planteado en un sitio web en ASP.Net?
Desarrollo Web
|
TwisteD420
|
4
|
4,899
|
4 Abril 2012, 02:42 am
por TwisteD420
|
|
|
Sistema de Login Seguro
PHP
|
GameAndWatch
|
6
|
9,237
|
23 Junio 2012, 17:02 pm
por marko1985
|
|
|
Login seguro para desarrollo web
Seguridad
|
vctr89
|
0
|
2,810
|
16 Agosto 2013, 18:29 pm
por vctr89
|
|
|
Sistema de login muy seguro
Ingeniería Inversa
|
TomaSs
|
2
|
3,084
|
26 Septiembre 2013, 19:09 pm
por TomaSs
|
|