Come crittografare in modo sicuro i dati con uno schema di crittografia delle chiavi pubblico-privato, ma consentire anche la decrittografia se la chiave privata viene persa?

5

This question is a followup question to Storing plaintext passwords for cameras - Security concerns?. In that question, I posed what I thought was a simple question, which actually turned out to have various security holes. Thanks to the answers, I've been able to fix most issues, except this last one...

Stiamo sviluppando nuove videocamere per il monitoraggio e la sicurezza delle case private.

Una delle funzionalità del servizio che offriamo è il servizio di registrazione online.

Dove prima, uno sarebbe stato fregato se la telecamera fosse stata rubata (dato che la fotocamera conteneva il supporto di memorizzazione su cui era stato memorizzato il filmato), con il nostro servizio di registrazione online, il filmato è memorizzato nel cloud e recuperabile in un secondo momento .

L'attuale piano di sicurezza per le telecamere e questo servizio di registrazione online è il seguente:

  • Sono coinvolti 4 componenti hardware: la videocamera, il dispositivo client (telefono con app), il nostro database e il nostro servizio di registrazione.
  • Una videocamera richiede (password unica) la password predefinita per la configurazione della videocamera. Questo è possibile solo dopo un reset di fabbrica (o quando la fotocamera è nuova). Questa password predefinita è archiviata in chiaro nel nostro database online per supporto.
  • Durante la configurazione iniziale della telecamera, la telecamera aggiunge al proprio keystore la chiave SSH pubblica del dispositivo di configurazione.
  • La fotocamera mantiene un elenco di chiavi SSH pubbliche dei dispositivi autenticati. Per registrarsi, un nuovo dispositivo deve connettersi alla telecamera e richiedere di essere aggiunto. Fornisce la sua chiave pubblica e forse qualche stringa per l'amministratore per riconoscere il dispositivo. Consentiremo la disabilitazione della registrazione per impedire agli scanner di Internet di effettuare tentativi di registrazione su ciascuna telecamera (e quindi di infastidire ogni cliente).
  • È possibile che trasferiamo la registrazione delle chiavi pubbliche sulla piattaforma online, in modo che possiamo sfruttare questa possibilità per rendere più facili le registrazioni per più telecamere. Ciò tuttavia introduce un vettore di attacco in cui un dipendente può aggiungere la propria chiave nell'elenco. I clienti dovranno prestare attenzione a chi autorizzano a vedere la propria videocamera.
  • Quando un dispositivo autenticato si ricollega alla telecamera, controlla eventuali nuove registrazioni e può scegliere di aggiungerle. È anche permesso di revocare l'accesso. Se un cliente aggiunge accidentalmente un dispositivo non valido (come il telefono della sua ex?) E ha il suo accesso revocato, può sempre ripristinare la telecamera con il suo accesso fisico alla telecamera e riconfigurare la videocamera.
  • Per il servizio di registrazione online, un dispositivo autenticato può richiedere al servizio di registrazione online la sua chiave pubblica. La chiave pubblica viene quindi aggiunta come "sola vista" nella fotocamera. In questo modo, il servizio di registrazione può essere registrato solo con l'autorizzazione del cliente.

Questo porta un buco di sicurezza:

È possibile per i dipendenti visualizzare i feed della telecamera da qualsiasi telecamera abbonata al servizio di registrazione.

Un possibile piano pubblicato da uno dei rispondenti alla mia domanda precedente consisteva nel seguente:

  • Cripta lo streaming video con una chiave di sessione.
  • Rinnovare la chiave di sessione ogni pochi minuti.
  • Cripta la chiave di sessione con ciascuna delle chiavi pubbliche memorizzate sulla videocamera.
  • Invia chiavi di sessione crittografate e flusso crittografato al servizio di registrazione.

Ma questa soluzione non è perfetta: se si installa una telecamera per interni e si verifica un'interruzione, e sia la telecamera che il singolo, vengono rubati solo i dispositivi autenticati, lo streaming video dal servizio di registrazione è non decifrabile. In questo caso, l'unica cosa che ti rimane sono le chiavi di sessione crittografate, la chiave pubblica (se le memorizziamo sui nostri server) ei dati del flusso video crittografato. La chiave privata viene persa, così come la scheda SD su cui è possibile conservare una copia non crittografata del flusso video.

Inoltre, non è possibile per un dispositivo visualizzare il filmato di ieri se è stato aggiunto oggi. Questa è anche una funzione indesiderata.

Esiste un modo per consentire la crittografia del flusso video che è decifrabile anche se la videocamera e il dispositivo autenticato sono persi per sempre (e con esso, la registrazione locale su scheda SD e la chiave privata sul dispositivo autenticato)?

Quindi la mia domanda,

Come crittografare in modo sicuro i dati con uno schema di crittografia delle chiavi pubblico-privato, ma consentire anche la decrittografia se la chiave privata viene persa?

Mi rendo conto che potrebbe essere impossibile farlo - in tal caso, è possibile consentire la ricreazione della chiave privata ricordando un segreto (in pratica, qualcosa come l'utilizzo di una chiave derivata dalla password in chiaro del cliente per crittografare una chiave di sessione. .. di cui memorizziamo solo il valore salato, con hash)?

    
posta Pimgd 09.01.2015 - 12:38
fonte

2 risposte

9

Ci sono alcuni modi per risolvere questa situazione.

Uno è quello di fare in modo che la fotocamera cripta sempre una delle chiavi di sessione su una chiave di backup della telecamera. La chiave di backup della telecamera viene generata nella configurazione dell'account della videocamera e viene generata una password che viene utilizzata per crittografare la chiave di backup. Questa password non viene mai memorizzata sulla fotocamera stessa. Il tuo spazio di archiviazione online memorizza la chiave di backup crittografata e dici all'utente di stampare e mantenere la password di backup in un luogo sicuro ma accessibile nel caso in cui perdano tutti i dispositivi client di accesso contemporaneamente, come in una cassetta di sicurezza (SDB), il Dropbox degli utenti o la casa della nonna. Dovrai raccogliere un accordo da parte dell'utente che i suoi dati saranno inaccessibili se perdono questa password di backup e il tuo staff non sarà in grado di aiutarli a decifrare i loro video.

Se l'utente non desidera accettare tale accordo, è possibile suggerire all'utente che è possibile memorizzare la chiave di backup nel proprio centro dati ad alta sicurezza. Garantire un'elevata sicurezza su un piccolo data center a traffico ridotto dedicato esclusivamente all'archiviazione delle chiavi di backup degli utenti è molto più semplice (e meno costoso) rispetto alla protezione del data center ad alto traffico che deve essere ridimensionato per gestire tutti i video live. Ora, ciò significa che, a rigor di termini, tu o i tuoi dipendenti di cui ti fidi, chi gestisce questo data center può decifrare qualsiasi video memorizzato nel tuo servizio a piacimento, ma in un data center ad alta sicurezza adeguatamente protetto, dovrebbe essere molto, molto difficile da estrarre fuori senza innalzare un allarme e tracce di controllo ovunque senza coinvolgere la collusione di un gran numero di dipendenti. La parte più difficile è nella progettazione di un data center ad alta sicurezza, questo non è facile.

Se fidarsi o meno della tua sicurezza è un rischio che il tuo utente deve decidere, sia che desideri praticità con ragionevole sicurezza o totale sicurezza con potenziali rischi. Puoi presentare questa opzione come opzione per il tuo utente che descrive il compromesso che dovranno eseguire:

  1. Preferisco la sicurezza assoluta. L'azienda X memorizzerà i miei video in un modo che è impossibile per la società X di recuperare se perdo l'accesso a tutti i miei dispositivi di accesso e la password di backup (... aggiungi dettagli perché impossibile davvero significa impossibile ...). Sono l'unico responsabile di mantenere la password di backup sicura e accessibile solo a me stesso. Accetto di non ritenere la Società X responsabile per eventuali perdite o violazioni dei dati che potrebbero verificarsi a causa della perdita o della perdita della mia password di backup. (... aggiungi alcuni suggerimenti per proteggere la password di backup ...)

  2. Preferisco la comodità. La società X memorizzerà i miei video in un data center ad alta sicurezza, (... descrivi le misure adottate per garantire che non tutti i tuoi dipendenti possano vedere i video del mio bambino qui ...). Su richiesta da me o sotto appropriata citazione da parte delle forze dell'ordine, la Compagnia X può decifrare qualsiasi video che memorizzo sul server della Società X. (... descrivi gli accordi legali qui ...)

risposta data 09.01.2015 - 15:20
fonte
3

Non puoi.

Se la chiave privata viene persa, in sostanza, puoi solo decrittografare i dati ricreando la chiave ... le organizzazioni come le "TLA" (FBI, CIA, NSA, ecc.) stanno attivamente cercando di fare ciò che suggerire. È un problema difficile, ed è per questo che funziona la crittografia.

Nel tuo caso, l'opzione migliore sarebbe quella di creare una nuova chiave pubblica / privata e quindi di trasmettere i dati con la nuova chiave. I vecchi dati sono effettivamente irrecuperabili a costi ragionevoli.

    
risposta data 09.01.2015 - 12:53
fonte

Leggi altre domande sui tag