Richiede 2 chiavi per accedere a un contenuto

8

Devo utilizzare un servizio esterno a cui è possibile accedere solo tramite password.

Non mi piace l'idea di archiviare la password in chiaro sul server, ma AFAIK non c'è molto che possa fare.

Considerando che questo servizio sarà accessibile solo da un client (che non può conoscere l'intera password), la mia idea di provare a rendere le cose un po 'più difficili per un hacker, è di memorizzare "metà" della chiave sul server e "metà" della chiave sul client.

So che anche questo non può essere perfetto, e che qualcuno che ottiene pieno accesso al server sarà in grado di scoprire la password, ma è meglio di niente. (Altri suggerimenti sono ben accetti.)

Considerando le modifiche della password di volta in volta e che non voglio cambiare il "server half" di questa password, la mia migliore idea è questa:

  1. Genera una chiave casuale K e memorizzala sul server
  2. Cripta password (P) con K, generando E, e consegna E al client
  3. Ora, ogni volta che il client vuole accedere al servizio, fornisce E e il server decodifica E usando K.
  4. Quando la password (P) cambia (in P '), devo solo cifrarlo di nuovo con K e fornire la nuova E' al client.

Questo sembra ragionevole? Altre idee?

    
posta Lem0n 18.01.2014 - 22:45
fonte

2 risposte

1

Non capisco completamente lo scenario, potresti fornire un semplice diagramma ASCII?

Ad ogni modo, non mi piace l'idea di dare E all'utente poiché sarà una password molto difficile da ricordare, forse puoi farlo nell'altro modo, dare K all'utente (quindi puoi scegliere it) e memorizza E nel server.

Modificherò la mia risposta dopo il chiarimento dello scenario:)

    
risposta data 18.01.2014 - 23:52
fonte
1

Se non riesci a lavorare con un certificato client (che sarebbe preferibile) allora sì, questa potrebbe essere una buona soluzione, ma ricorda se l'applicazione è compromessa è game over (come sempre).

    
risposta data 14.07.2015 - 13:01
fonte

Leggi altre domande sui tag