Questo sistema ipotetico è sicuro?

-3

Mi piacerebbe costruire un sistema semplice, ci sono evidenti difetti di sicurezza in esso? Questo meccanismo di hashing sarà abbastanza sicuro senza altri livelli di crittografia?

Ho un semplice modulo in cui le persone possono inserire i codici e un server che mantiene un elenco di codici consentiti (che vengono utilizzati solo una volta e ne vengono aggiunti di nuovi, ma non riutilizzati). Supponiamo che la connessione wifi tra il modulo e il server non sia sicura.

Ecco i passaggi che il codice viene verificato:

  • il modulo invia un hash sha1 del codice al server
  • (se valido) il server risponde con un hash sha1 del codice + un salt codificato (noto al modulo, ma sconosciuto agli hacker)
  • il modulo può verificarlo e accettare o rifiutare l'utente

(La ragione per cui solo gli hash sono usati è quindi impossibile per un hacker trasmettere un messaggio Allow / Deny direttamente al modulo. Viene usato un salt, è così che gli middle-men non possono inserire un codice casuale e poi trasmettere il proprio hash di sha1)

Sto evitando la complessità di SSL perché il modulo verrà eseguito su un sistema embedded estremamente semplice senza OS.

Esempio aggiornato che ha più senso: Consentire ai corrieri UPS di scansionare il numero di tracking dei pacchi per sbloccare una porta in modo che possano lasciare il pacco. Solo i numeri di tracciamento conosciuti sono consentiti in modo che i ladri non possano semplicemente eseguire la scansione di un pacchetto irrilevante per entrare in azione.

Note :

  • Suppongo che "password" non sia la parola giusta, è solo codici di utilizzo monouso. Sì, il sale è hard-coded e spero di evitare la crittografia. Il motivo per cui è stato inviato il codice è che, indipendentemente da ciò che un hacker potrebbe trasmettere al modulo, sarà impossibile autenticarlo a meno che non conosca il sale.
  • Per quanto riguarda dove avviene l'autenticazione: il server saprà se il codice è valido o meno, ma il modulo accetterà solo il codice hash di sale + in modo che il modulo sappia che la risposta proviene dal server e non dagli hacker, e anche così gli hacker non riescono a capire il sale.
posta Artur 07.01.2016 - 00:30
fonte

3 risposte

1

Se un attaccante è in grado di eseguire un uomo nell'attacco centrale (e può eseguirlo, se la connessione wifi non è sicura), allora non è sicuro:
Se prendo il tuo esempio: quando il corriere UPS esegue la scansione del pacchetto, l'utente malintenzionato può rilasciare il messaggio con l'hash ma mantenere l'hash per dopo. Il modulo negherà al corriere UPS l'accesso e probabilmente andrà semplicemente via. Ora l'attaccante può andare a casa e inviare il messaggio con l'hash per sbloccare la porta.

Ma questa è solo una ovvia vulnerabilità del tuo sistema, che dovrebbe mostrarti il motivo per cui non dovrebbe pubblicare la tua crittografia .
(Vi consiglio di leggere questa risposta: link )

Se TLS / SSL non è possibile per il tuo sistema, penso che dovresti usare un'implementazione ben collaudata di un protocollo di autenticazione esistente. Il codice è come una password il token che autentica l'utente sul server.

Dai un'occhiata a Wikpedia per un elenco di protocolli: link

    
risposta data 07.01.2016 - 05:10
fonte
0

Non ho notato da nessuna parte nella descrizione che stai crittografando il tuo traffico. Stai mandando il tuo hash in chiaro? Se è così, sto pensando, cosa impedirebbe a un intercettatore di intercettare l'hash e riutilizzarlo?

Un'altra domanda è: come si tenta di mantenere l'elenco delle password consentite che "continuano a cambiare"?

    
risposta data 07.01.2016 - 00:43
fonte
-1

La prima vulnerabilità riguarda l'utilizzo degli hash SHA1. Le collisioni basate sull'hash SHA1 sono relativamente altamente probabili con la moderna potenza di calcolo. Vedi SHA1-collisioni

Ciò significa che il rogue party può catturare quegli hash sul filo e forzarli brutalmente. Ancora peggio, se l'hacker entra nel tuo server e ottiene il set limitato consentito, limita il problema in modo significativo.

    
risposta data 07.01.2016 - 00:39
fonte

Leggi altre domande sui tag