Autenticazione su macchine / dispositivi remoti, non presidiati, non connessi

0

Quali metodi collaudati esistono per l'autenticazione di un utente su macchine / dispositivi remoti non connessi dove stabilire credenziali di accesso univoche per gli utenti non è pratico a causa del numero di macchine / dispositivi?

Abbiamo un'applicazione in cui abbiamo un gran numero di dispositivi industriali distribuiti in tutto il mondo e vorremmo assicurarli in modo che solo i tecnici autorizzati possano accedervi e recuperare i dati. Questi non sono sempre connessi alla rete e sono spesso lasciati in luoghi non presidiati, quindi la sicurezza fisica non è qualcosa su cui è possibile contare e l'autenticazione con un server non è possibile.

Sono sicuro che questo tipo di sfida esiste da decenni, e mentre ho visto molti tentativi veramente brutti per risolverlo (ad esempio una singola password per tutti i tecnici) non ho mai incontrato nulla che sembri solido e eleganti.

Suppongo che un certificato crittografato che richiede una password (anche se condivisa) sarebbe un passo nella giusta direzione. Questo debole metodo a 2 fattori richiederebbe che il tecnico abbia qualcosa (come una chiave USB con cert) e impedisce l'esposizione immediata del certificato se la chiave USB viene lasciata cadere in un parcheggio, ma mi chiedo se c'è qualcosa di meglio. / p>

Ciò che mi spaventa di questa è l'alta probabilità che una persona folle crei "password.txt" e la metta a fianco del certificato ...

Grazie per i tuoi pensieri.

    
posta EnemyBagJones 01.09.2015 - 00:51
fonte

1 risposta

0

Quindi penso che, data la mancanza di sicurezza fisica dei dispositivi, qualunque cosa tu faccia sarà solo il miglior sforzo. Non puoi semplicemente impedire a qualcuno di rimuovere il dispositivo, leggere i dati, modificarlo, ecc ... Prendiamolo come dato e andare avanti.

Questa soluzione utilizza HMAC . Un HMAC prende due input, una stringa e un segreto, e produce una stringa di output che è crittograficamente difficile / impossibile da falsificare senza conoscere il segreto.

Metti su tutti i dispositivi un segreto condiviso (lo stesso) che è anche conosciuto dagli amministratori dei dispositivi (sono loro che forniscono informazioni di autenticazione ai tecnici). Poiché il dispositivo non è fisicamente sicuro, l'archiviazione del segreto sarà meno perfetta, ma abbiamo già convenuto che saremmo stati d'accordo con questo.

Un amministratore darà a un utente un nome utente e una password. La password sarà il risultato di HMAC(secret, username) (probabilmente troncato a una lunghezza ragionevole). Quando l'utente accede a un dispositivo, inserirà il nome utente e la password. Il dispositivo ricalcolerà l'HMAC, lo troncerà alla lunghezza appropriata e lo confronterà con la password dell'utente.

A seconda delle tue esigenze, puoi apportare alcune modifiche al sistema:

  • Invece di memorizzare lo stesso segreto su ogni dispositivo, puoi memorizzare diversi segreti. Ciò, ovviamente, aumenterà i costi di amministrazione, ma aggiungerà un po 'di sicurezza. Puoi assegnare a ciascun dispositivo i propri dispositivi segreti o di gruppo per posizione geografica, data di pubblicazione o altri mezzi.
  • Insieme al nome utente e alla password, è possibile fornire a ciascun utente una data di scadenza della password. Avrebbero quindi inserito il nome utente, la password e la data di scadenza al momento del login. La loro password sarebbe HMAC(secret, username + expiration date) . Il vantaggio di questo è che le password si esauriscono in modo naturale, quindi una password scoperta non ti perseguiterà per sempre. Lo svantaggio è che gli utenti dovranno continuamente ottenere nuove password. Diversamente dalla scadenza tipica della password, gli utenti dovranno contattare gli amministratori per ottenere la loro nuova password. Anche in questo caso la mancanza di sicurezza fisica può consentire agli aggressori di ripristinare la data sul dispositivo, riattivando una password scaduta. Ancora una volta, abbiamo convenuto che la sicurezza perfetta non sarebbe possibile senza la sicurezza dell'hardware.
  • A seconda della flessibilità del dispositivo, è possibile spostare le credenziali su un'unità USB, una scheda SD o un altro dispositivo che può essere utilizzato per l'autenticazione. Una chiave USB crittografata come questa ti fornirà l'autenticazione a 2 fattori.
  • Con ogni utente con un accesso univoco, è possibile implementare un tipo di controllo.

I notevoli problemi con questo sistema includono:

  • Impossibilità di disabilitare una password. Anche se si utilizza l'estensione di data, è necessario attendere la scadenza della password.
  • A meno che non si utilizzi una chiave USB sicura (o dispositivo di sicurezza simile) per l'autenticazione, è ancora aperto agli utenti che creano file "passwords.txt".
  • La mancanza di sicurezza hardware riduce notevolmente gli sforzi di sicurezza.
risposta data 01.09.2015 - 03:11
fonte

Leggi altre domande sui tag