Existe-t-il des raisons valables pour utiliser un périphérique de chiffrement matériel (par exemple, un dongle / magasin de clés de chiffrement USB) par rapport à une bibliothèque de logiciels?

StackOverflow https://stackoverflow.com/questions/1200319

  •  05-07-2019
  •  | 
  •  

Question

Si votre application doit crypter / décrypter des données (pour différentes raisons), existe-t-il des raisons pour lesquelles vous utiliseriez un périphérique matériel (un périphérique de cryptage USB, comme une Marx CryptoBox, par exemple) au lieu d'utiliser une bibliothèque de cryptage logicielle (comme cryptage .net ou votre propre écriture) et conservez-vous vos clés dans un magasin de clés sécurisé?

Je recherche des opinions objectives sur cette question.

Pour préciser la question posée: quel serait votre avis si le système utilisant le dongle d’enregistrement USB était hébergé dans un coffre-fort sécurisé physiquement et qu’il n’existait qu'un seul système (son pas un logiciel distribué et exécuté sur de nombreux ordinateurs de bureau)? En termes très simplistes, le système ci-dessus a pour but de valider (déchiffrer et comparer) une partie des données chiffrées entrantes.

Merci pour vos excellentes réponses!

Était-ce utile?

La solution

Il ne s'agit pas de savoir ce qui est plus sécurisé, car rien n'est à 100% à l'épreuve des balles. C'est une question sur "comment le rendre aussi difficile que possible"

Vous pouvez le voir à partir de ce point: si vous stockez des clés sur l’ordinateur, elles sont disponibles 24 heures sur 24, 7 jours sur 7 Si ma paire de clés se trouve sur un périphérique externe, les clés ne sont accessibles que lorsqu'elles sont connectées au périphérique. == > Vous réduisez le délai dans lequel une autre personne peut copier vos clés. Il est beaucoup plus facile d'accéder à quelque chose si l'accès physique n'est pas nécessaire.

Pensez aux services bancaires en ligne: de nombreuses banques ont ajouté "externe". des moyens d'authentification tels que Tan / Tac / TanSMS / Tokengenerators, etc., etc. Aucun de ces moyens n'est sécurisé pour lui-même: je peux voler votre mot de passe de connexion, je peux voler votre téléphone portable, je peux voler votre liste Tac / Tan, etc. Mais les chances sont très bas que je puisse voler tous les éléments nécessaires à la fois = > Toutes les pièces du puzzle forment ensemble une solution relativement sécurisée.

Pensez également à ces facteurs:

  • money: Avez-vous vraiment besoin d'une protection à base de jetons de 70 $ pour votre application à 100 $?
  • time: Je dirais que les systèmes logiciels sont plus rapides
  • pertinence: est-il judicieux de doter mes applications d’un système de protection aussi complexe

Autres conseils

Une clé matérielle permet de restreindre l'utilisation du logiciel à une machine sur laquelle la clé est connectée.

Avec le cryptage logiciel, il serait plus facile de copier le logiciel sur de nombreuses machines et de l'exécuter plusieurs fois en parallèle.

Oui, il y en a.

D'une part, cela vous permet de transmettre les clés privées physiquement via des canaux sécurisés, plutôt que de faire confiance à un réseau.

D'autre part, si vous devez vous déplacer entre un grand nombre de systèmes qui ne sont pas nécessairement tous en réseau, la clé USB est bien plus pratique. C'est pourquoi l'armée utilise un système très semblable à celui-ci ( EKMS ). Ils n'utilisent pas l'USB, mais ils utilisent de petites clés électroniques qui ressemblent à de grandes clés en plastique. L'idée est la même, mais l'USB n'existait pas au début des années 90, au moment où ils développaient ce logiciel.

alt text

(note: Cet article de Wikipedia est un peu effrayant. Lorsque je travaillais sur le KP, on m'a dit que nous pouvions mettre des sigles comme FIREFLY dans nos curriculum vitae, mais nous n’avons pas le droit de dire à qui que ce soit ce qu’ils voulaient dire.)

Je pense que cela dépend de l'objectif / de l'utilisation de votre application. Si vous développez un produit pour un besoin de haute sécurité, tel que bancaire ou gouvernemental, un ajout de matériel à votre solution pourrait être tout à fait approprié. Vous devez tenir compte des coûts supplémentaires qu'une solution matérielle ajouterait au projet. Pas seulement lors du développement initial, mais aussi des coûts de maintenance du matériel nécessaires après la fin du développement. De mon point de vue, après avoir travaillé dans le secteur bancaire, il y avait très très peu de solutions pour lesquelles nous estimions qu’une solution matérielle valait les coûts supplémentaires qu’elle impliquerait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top