¿Debo usar sal para autenticar los datos?

-1

Tengo un cliente y un servidor. El cliente realiza una solicitud que contiene userId, cardId, posición (en la tarjeta)

Un hacker podría hacer la misma solicitud http con la siguiente posición. Así que pienso en crear un hash para los datos. Usar el simple MD5 no será suficiente.

¿Sería lo suficientemente seguro como para agregar sal? ¿Te gusta md5(userId + cardId + position + "a very long random string") ?

    
pregunta Andrei Botalov 18.08.2012 - 19:05
fuente

2 respuestas

1

Si genera la cadena aleatoria en el cliente, entonces no puede calcular el mismo hash. Si lo haces en el servidor entonces tienes que enviarlo al cliente. Así que este esquema no funcionará por sí mismo.

Si distribuye la sal (más o menos una clave simétrica) con la aplicación, puede recuperarla fácilmente del código del cliente. Es mejor que envíe una clave pública RSA con su aplicación y cifre la contraseña con ella. Sin embargo, también puede crear una sesión SSL desde el cliente y estar mucho más seguro de estar seguro.

Es algo más para criptografía, pero es mejor usar un esquema que incluya SSL como cualquier otro sistema sin al menos la autenticación del servidor y el acuerdo de clave / mensajería segura probablemente fallará ...

    
respondido por el Maarten Bodewes 18.08.2012 - 19:58
fuente
1

No. La sal no es un autentificador. Salt no es una forma segura de autenticar solicitudes del cliente.

Una respuesta más completa es: debe hacer una copia de seguridad y hacer un análisis de requisitos y un análisis de riesgos. Averigüe cuáles son sus objetivos de seguridad y cuál es el modelo de amenaza. ¿Qué recursos estás protegiendo? ¿Qué tipo de ataques podría alguien tener un incentivo para montar? Una vez que haya podido pensar en eso, entonces puede comenzar a pensar en un mecanismo en particular.

En este momento, no parece poder dar una descripción clara de lo que está tratando de lograr. Por lo tanto, la pregunta está mal planteada y es probable que no recibas una buena respuesta.

Con tal información dispersa, el mejor consejo que puedo darle es: use SSL (https). Aunque no puedo estar seguro, debido a la escasez de información, parece que probablemente estés reinventando la rueda, y probablemente mal. Además, le recomiendo que almacene la información de estado en el lado del servidor, en lugar de almacenarla en el cliente y confiando en que el cliente sea honesto al informar sobre el estado actual (después de todo, un cliente malintencionado siempre puede mentir: un hash md5 no lo hace). evitar que).

    
respondido por el D.W. 20.08.2012 - 08:25
fuente

Lea otras preguntas en las etiquetas