2010-04-13 37 views
5

Abbiamo un aggiornamento automatico per il nostro software che viene installato tramite chiave USB (con la corsa automatica). Se volevo assicurarmi che fossero usate solo chiavi USB autorizzate, qual è il modo migliore?Qual è il modo migliore per autorizzare una chiavetta USB

Il nostro programma di installazione è già stato firmato e non funzionerà altrimenti. Ma io sto più desiderando di ispezionare la chiave USB per un programma di installazione firmato, e se non è lì, basta ignorare, o anche "espellere" il dispositivo USB.

E dovrei essere in grado di distinguere (in codice) tra un dispositivo di archiviazione USB e dire una telecamera o una tastiera.

Sto solo disabilitando i dispositivi di archiviazione non autorizzati.

Grazie per le vostre idee.

+1

Non è possibile scaricare una patch da Internet? E potresti decidere di espellere il mio USB HDD? Considera gli aspetti negativi (fastidiosi scommettitori paganti) di quello che stai cercando di fare ... dicendo che, sono incuriosito dal motivo per cui vuoi andare a tali lunghezze – gbn

+3

Puoi decidere di chiarire i tuoi obiettivi qui. Il tuo obiettivo è di impedire alle persone di collegare un dispositivo USB diverso da uno che contiene l'aggiornamento automatico (ad esempio in una situazione embedded come un terminale POS)? O forse il tuo obiettivo è impedire alle persone di copiare il tuo software di aggiornamento automatico e darlo ai loro amici? –

+1

questa è un'applicazione kiosk indipendente che vogliamo solo su determinati dispositivi. L'ingresso USB è già protetto con lock/key/pwd ecc, ma ...ci sono ancora opportunità lungo il percorso di costruzione/costruzione che voglio provare e bloccare. Obiettivo finale ... consente solo l'uso di dispositivi di archiviazione con software firmato, rifiuta tutti gli altri dispositivi di archiviazione. – ScottCate

risposta

4

dispositivi di archiviazione non autorizzati? Questo dipende dalla sicurezza che vuoi che sia. Per il livello più sicuro, sarebbe composto da:

  • firmware speciale scritti sull'unità flash per ottenere più "meta informazioni" (leggi: costoso produzione personalizzata di unità flash)
  • finestre speciali di condotta di leggere che meta informazioni dall'unità flash
  • il tuo programma che comunica con quel driver di dispositivo per confermare che è autorizzato.

O al livello meno sicuro di avere queste opzioni: (? Potendo hash di ultima modifica del file system o qualcosa del genere)

  • utilizzando un file nascosto e una chiave speciale (dd frangibile)
  • scendendo al di sotto del livello del filesystem e ricreando il proprio filesystem molto semplice .. (più sicurezza attraverso obscurity e dd potrebbe interromperlo)

Inoltre, per l'opzione "più sicuro", è davvero necessario un mor Il modo sicuro di eseguire il programma rispetto all'auto-run e un driver di dispositivo (che potrebbe essere cotto a metà per far apparire tutto autorizzato). Perché vuoi che venga aggiornato solo da un'unità flash autorizzata?

+0

Sto solo cercando di assicurarmi che avg Joe non possa inserire una chiavetta USB e ottenere una finestra di esecuzione automatica. In un mondo perfetto, potrei collegarmi a un evento Windows di "Nuovo dispositivo USB trovato" qualunque cosa sia ... ispezionare il dispositivo, se è in cerca di spazio per un noto software firmato e farlo funzionare. Se quel software non viene trovato, ignora semplicemente il dispositivo. – ScottCate

+0

Sì, vorrei andare con quella e/o la risposta di @ pkaeding allora. Non ero sicuro di quanto tu avessi bisogno di essere sicuro. – Earlz

2

Potrebbe essere possibile leggere il numero di serie dell'unità USB (presupponendo che si disponga di unità USB con numeri di serie, non tutte). Quindi l'applicazione potrebbe chiamare casa per ottenere l'ultimo elenco di numeri seriali autorizzati e verificare se c'è una corrispondenza.

+1

Questo è un buon approccio "sicuro per la maggior parte delle persone" +1. (può sempre essere simulato con un microcontrollore o un driver di dispositivo personalizzato) – Earlz

0

La risposta di Earlz è buona, anche se non credo che avresti bisogno di una produzione personalizzata di unità flash ... avresti solo bisogno di unità flash con una sorta di identificatore univoco del firmware crittografato. Forse qualcosa nel Kingston Data Traveler Line potrebbe fare il trucco. (Non ho mai usato una di queste chiavette USB criptate, quindi sono un po 'annebbiato sui dettagli di implementazione reali).

Problemi correlati