Advertisement
framp

game

May 31st, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. Scenario:
  2. Ho il controllo di un server e del codice che gira su un app client, l'attacker puo' far eseguire il client sulla sua macchina senza poterlo modificare e puo' accedere al server per un periodo di tempo limitato (giorni)
  3.  
  4. Il server riceve dei dati, li signa con una chiave privata e li ritorna al client.
  5.  
  6. Il client ha la corrispondente chiave pubblica, un id identificativo, la data corrente, un numero random (cryptographically strong se la entropy pool ha abbastanza dati, senno' merda prevedibile :( ).
  7. Invia tutto al server, che gli ritorna i dati e una signature signata con la chiave privata di cui sopra. Se il client convalida la signature i dati sono assunti come veri (quindi sappiamo che la data e' corretta con un margine di errore di x secondi) e il client e' autenticato.
  8.  
  9.  
  10. Come puo' l'attacker fare in modo di staccare la macchina da internet e far credere al client che il server abbia validato la sua richiesta?
  11.  
  12. Mi viene in mente un solo modo: esaurisci la entropy pool, il client genera un numero casuale che puoi prevedere e ripeti il trick ad ogni esecuzione del client cosi' da fixare il numero random.
  13. Ora che il numero random e' fixato falsifichi la data del sistema cosi' che esegui il programma sempre alla stessa data.
  14. Ora client generera' sempre la stessa richiesta al server, posso fare una chiamata una volta al server, cachare la richiesta e fare un finto server che ritorna sempre la stessa risposta giusta.
  15.  
  16. - Vi vengono in mente altri attacchi?
  17. - Come posso generare davvero un numero random senza accedere a un server esterno, considerando il fatto che l'attaccante potrebbe simulare un server esterno e aggirarmi?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement