2010-04-13 104 views
5

Nous avons une mise à jour automatique pour notre logiciel qui est installé via clé USB (avec l'exécution automatique). Si je voulais m'assurer que seules les clés USB autorisées étaient utilisées, quel est le meilleur moyen?Quelle est la meilleure façon d'autoriser une clé USB

Notre programme d'installation est déjà signé, et il ne fonctionnera pas autrement. Mais je suis plus désireux d'inspecter la clé USB pour un installateur signé, et si ce n'est pas là, il suffit d'ignorer, ou même "éjecter" le périphérique USB.

Et je devrais être en mesure de faire la différence (en code) entre un périphérique de stockage USB, et dire un appareil photo ou d'un clavier.

Je ne vouloir désactiver les périphériques de stockage non autorisés.

Nous vous remercions de vos idées.

+1

Je n'ai pas pu télécharger un correctif sur Internet? Et vous pourriez décider d'éjecter mon disque dur USB? Considérez les inconvénients (les payeurs payants ennuyeux) de ce que vous essayez de faire ... en disant cela, je suis intrigué par la raison pour laquelle vous voulez aller à de telles longueurs – gbn

+3

Vous voudrez peut-être clarifier vos objectifs ici. Votre but est-il d'empêcher les gens de brancher un périphérique USB autre que celui qui contient votre mise à jour automatique (par exemple dans une situation intégrée comme un terminal de point de vente)? Ou peut-être que votre objectif est d'empêcher les gens de copier votre logiciel de mise à jour automatique et de le donner à leurs amis? –

+1

Ceci est une application de kiosque autonome que nous voulons seulement que certains dispositifs soient utilisés. L'entrée USB est déjà sécurisée avec lock/key/pwd etc, mais ...il y a encore des opportunités le long du chemin build/construct que je veux essayer de verrouiller. But ultime ... permet uniquement l'utilisation de périphériques de stockage ayant un logiciel signé, rejeter tous les autres périphériques de stockage. – ScottCate

Répondre

4

périphériques de stockage non autorisés? Cela dépend de la sécurité que vous voulez qu'il soit. Pour le niveau le plus sûr, il serait composé de:

  • firmware spécial écrites sur le lecteur flash pour obtenir « meta info » supplémentaire (lire: la fabrication personnalisée coûteuse des lecteurs flash)
  • pilote Windows spécial pour lire que meta info à partir du lecteur flash
  • votre programme en parlant à ce pilote de périphérique pour confirmer qu'il est autorisé.

Ou au moins au niveau sécurisé vous avez ces options: (le temps peut-être haché de la dernière modification du système de fichiers ou quelque chose)

  • en utilisant un fichier caché et une clé spéciale (dd cassable)
  • laissant tomber en dessous du niveau du système de fichiers et de recréer votre propre système de fichiers très simple .. (plus de sécurité par l'obscurité et si dd pourrait briser ce)

en outre, pour l'option « plus sûre », vous avez vraiment besoin d'un mor e moyen sécurisé d'exécuter le programme que l'exécution automatique et un pilote de périphérique (qui pourrait être à moitié cuit pour que tout apparaisse autorisé). Pourquoi voulez-vous seulement mettre à jour à partir d'un lecteur flash autorisé de toute façon?

+0

J'essaie juste de m'assurer que l'avg Joe ne peut pas coller une clé USB, et obtenir une fenêtre d'exécution automatique. Dans un monde parfait, je pourrais attacher à un événement Windows de "New USB Device Found" quel qu'il soit ... inspecter l'appareil, si c'est le stockage chercher un logiciel signé et l'exécuter. Si ce logiciel n'est pas trouvé, ignorez simplement l'appareil. – ScottCate

+0

Oui, j'irais avec ça et/ou la réponse @ pkaeding alors. Je n'étais pas sûr de la sécurité dont vous aviez besoin. – Earlz

2

Vous pourriez être en mesure de lire le numéro de lecteur USB de série (en supposant que vous obtenez les clés USB qui ont des numéros de série, pas tous). Ensuite, votre application pourrait appeler à la maison pour obtenir la dernière liste des numéros de série autorisés, et vérifier pour voir s'il y a une correspondance.

+1

C'est une bonne approche "sécurisée pour la plupart des gens" +1. (peut toujours être truqué avec un microcontrôleur ou un pilote de périphérique personnalisé si) – Earlz

0

réponse Earlz est bonne, mais je ne pense pas que vous auriez besoin la fabrication sur mesure de lecteurs flash ... vous juste besoin des lecteurs flash avec une sorte d'identifiant crypté firmware unique. Peut-être que quelque chose dans le Kingston Data Traveler Line pourrait faire l'affaire. (Je n'ai jamais utilisé un de ces clés USB cryptées, donc je suis un peu brumeux sur les détails de l'implémentation).