Scambio di punti sicuri

0

Sono uno sviluppatore back-end con competenze di sicurezza di base. Devo creare un sistema sicuro per consentire agli utenti mobili di scambiare "punti" con altri utenti. Anche un amministratore deve essere in grado di aggiungere o recuperare "punti".

Vorrei sapere se esiste una procedura standard per questo tipo di sistema?

Il mio piano fino ad ora era utilizzare una connessione https e un'autenticazione standard (memorizzare hash e sale della password).

    
posta Jerome Kelly 18.01.2017 - 01:49
fonte

1 risposta

1

Questo è un tipo di transazione piuttosto standard. Di gran lunga, la cosa più importante è che tu esegua l'intera transazione sul server , non sul client; non puoi fidarti del cliente. Per far sì che le cose funzionino bene per un utente finale, puoi eseguire queste transazioni sul client, ma non possono essere definitive finché il server non le ha verificate.

Inoltre, assicurati di eseguire l'intera operazione in una transazione di database. Se sottrai 10 punti dall'Utente A, quindi non riesci ad aggiungerli all'Utente B per qualche motivo, l'Utente A sarebbe piuttosto arrabbiato se non recuperasse i suoi 10 punti; è anche peggio se succede nella direzione opposta, dato che gli utenti possono giocare al sistema per generare punti gratuiti.

Una cosa che potresti o meno preoccupare sono gli attacchi di replay . Immagina di essere sulla mia rete e io MitM la tua connessione al server mentre fai una transazione per darmi 10 punti; quindi, in seguito, invio nuovamente la stessa richiesta HTTP diverse volte per drenare il tuo account. Ci sono alcune contromisure che puoi prendere , ma dovresti essere in grado di appoggiarti a TLS per impedirlo.

Che mi ricorda, assolutamente tutto il traffico che invia una sessione (o probabilmente, tutto il periodo di traffico) dovrebbe andare su HTTPS. Ciò impedisce una serie di problemi, come gli attacchi precedenti e per l'hijack delle sessioni . Lo hai già detto, ma ho pensato di doverlo ripetere iter.

    
risposta data 18.01.2017 - 02:17
fonte

Leggi altre domande sui tag