Devo usare salt per autenticare i dati?

-1

Ho un client e un server. Il client effettua una richiesta contenente userId, cardId, position (sulla scheda)

Un hacker potrebbe semplicemente fare la stessa richiesta http con la prossima posizione. Quindi penso a creare un hash per i dati. L'utilizzo di MD5 normale non sarà sufficiente.

Sarebbe abbastanza sicuro per aggiungere del sale? Mi piace md5(userId + cardId + position + "a very long random string") ?

    
posta Andrei Botalov 18.08.2012 - 19:05
fonte

2 risposte

1

Se si genera la stringa casuale sul client, non è possibile calcolare lo stesso hash. Se lo fai sul server, devi inviarlo al client. Quindi questo schema non funzionerà da solo.

Se si distribuisce il sale (più o meno una chiave simmetrica) con l'applicazione, è possibile recuperarlo facilmente dal codice client. È meglio inviare una chiave pubblica RSA con l'applicazione e crittografare la password. Comunque potresti anche creare una sessione SSL dal client ed essere molto più sicuro che tu sia al sicuro.

È più qualcosa per cripto, ma è meglio usare uno schema che includa SSL come l'esecuzione di qualsiasi schema senza almeno l'autenticazione del server e il contratto chiave / la messaggistica sicura probabilmente fallirà ...

    
risposta data 18.08.2012 - 19:58
fonte
1

No. Il sale non è un autenticatore. Salt non è un modo sicuro per autenticare le richieste dal client.

Una risposta più completa è la seguente: è necessario eseguire il backup e eseguire un'analisi dei requisiti e un'analisi dei rischi. Scopri quali sono i tuoi obiettivi di sicurezza e qual è il modello di minaccia. Quali risorse stai proteggendo? Quali tipi di attacchi qualcuno potrebbe avere un incentivo a montare? Una volta che sei stato in grado di pensare che attraverso, allora puoi iniziare a pensare a un particolare meccanismo.

Al momento, sembra che tu non sia in grado di fornire una descrizione chiara di ciò che stai cercando di realizzare. Pertanto, la domanda è mal posta e non è probabile che tu riceva una buona risposta.

Con tali informazioni sparse, il miglior consiglio che posso darti è: usare SSL (https). Anche se non posso esserne sicuro, a causa della scarsità delle informazioni fornite - sembra che tu stia probabilmente reinventando la ruota, e probabilmente male. Inoltre, ti consiglio di memorizzare le informazioni di stato sul lato server, piuttosto che memorizzarle sul client e confidare che il client sia onesto sulla segnalazione dello stato corrente (dopotutto, un client malevolo può sempre mentire - un hash md5 non lo fa impedirlo).

    
risposta data 20.08.2012 - 08:25
fonte

Leggi altre domande sui tag