Esistono validi motivi per utilizzare un dispositivo di crittografia hardware (ad es. Dongle / keystore di crittografia USB) rispetto all'utilizzo di una libreria software?

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

  •  05-07-2019
  •  | 
  •  

Domanda

Se l'applicazione deve crittografare / decrittografare i dati (per vari motivi), ci sono dei motivi per cui dovresti utilizzare un dispositivo hardware (ad esempio un dispositivo di crittografia USB - come un Marx CryptoBox) invece di utilizzare una libreria di crittografia software (come .net Cryptography o scrivendone una tua) e conservare le chiavi in ??un archivio chiavi sicuro?

Sto cercando alcune opinioni oggettive su questo argomento.


Per restringere la domanda posta: quale sarebbe la tua opinione se il sistema che utilizzava il dongle di crittografia USB fosse alloggiato in un deposito server fisicamente sicuro e esistesse un solo sistema esistente (ovvero non è un prodotto software che viene distribuito ed eseguito su molti desktop)? In termini molto semplicistici, lo scopo del sistema di cui sopra è convalidare (decrittografare e confrontare) un pezzo di dati crittografati in entrata.


Grazie finora per le tue ottime risposte!

È stato utile?

Soluzione

Non si tratta di cosa è più sicuro perché nulla è al 100% a prova di proiettile. È una domanda su come rendere il più difficile possibile "

Puoi vederlo da questo punto: se memorizzi le chiavi sul computer, sono lì 24/7. Se la mia coppia di chiavi si trova su un dispositivo esterno, le chiavi sono accessibili solo quando sono collegate al dispositivo. == > Riduci i tempi in cui qualcun altro può copiare le tue chiavi. È molto più facile accedere a qualcosa se non è necessario l'accesso fisico.

Pensa all'online banking: molte banche hanno aggiunto " esterno " modi di autenticazione come Tan / Tac / tanSMS / tokengenerators ecc. ecc. Nessuno di questi è sicuro per se stesso: posso rubare la tua password di accesso, posso rubare il tuo cellulare, posso rubare la tua lista Tac / Tan e così via. Ma le sequenze sono molto basse che posso rubare tutti gli elementi necessari contemporaneamente = > Tutti i pezzi del puzzle insieme creano una soluzione abbastanza sicura.

Pensa anche a questi fattori:

  • denaro: hai davvero bisogno di una protezione basata su token da 70 $ per la tua app da 100 $?
  • tempo: direi che i sistemi basati su software sono più veloci
  • pertinenza: ha senso fornire alle mie app un sistema di protezione così complesso

Altri suggerimenti

Una chiave hardware consente di limitare l'uso del software a una macchina in cui è inserita la chiave.

Con la crittografia del software sarebbe più semplice copiare il software su molte macchine ed eseguirlo molte volte in parallelo.

Sì, ci sono.

Per prima cosa, questo ti consente di trasmettere fisicamente le chiavi private attraverso canali sicuri, piuttosto che fidarti di una rete.

Per un altro, se devi spostarti tra molti sistemi che non sono necessariamente tutti collegati in rete, la chiave USB è semplicemente molto più comoda. Ecco perché i militari usano un sistema molto simile ( EKMS ). Non usano l'USB, ma usano piccoli dongle che sembrano grandi chiavi di plastica. L'idea è la stessa, ma USB non esisteva nei primi anni '90 quando lo stavano sviluppando.

alt text

(nota: è abbastanza spaventoso quanto sia completo l'articolo di Wikipedia. Quando stavo lavorando al KP mi è stato detto che ci è stato permesso di mettere acronimi come FIREFLY sui nostri curriculum, ma non ci è stato permesso di dire a nessuno cosa significassero.)

Penso che dipenda dallo scopo / dall'utilizzo dell'applicazione. Se stai sviluppando un prodotto per esigenze di sicurezza elevate, come banche o enti pubblici, un'aggiunta hardware alla tua soluzione potrebbe essere del tutto appropriata. Devi considerare i costi aggiuntivi che una soluzione hardware aggiungerebbe al progetto. Non solo nello sviluppo iniziale, ma i costi di manutenzione hardware in corso che sarebbero necessari dopo il completamento dello sviluppo. Dal mio punto di vista, avendo lavorato nel settore bancario in passato, c'erano pochissime soluzioni in cui ritenevamo che una soluzione hardware valesse i costi aggiuntivi che avrebbe comportato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top