Dove devo memorizzare una chiave privata per un'applicazione web?

3

Può essere un duplicato di " Come memorizzare una chiave RSA privata per un'applicazione? "

Quindi mi è stato chiesto di creare un'interfaccia web in PHP che consentisse ai visitatori di controllare la firma di un file usando SHA 256 con crittografia RSA e, in un'area riservata, gli utenti autorizzati possono creare la firma per determinati file. L'applicazione funzionerà sicuramente su servizi di hosting web condivisi, su internet (non su una rete locale). So che non esiste un modo affidabile al 100% di archiviare le chiavi private, ma quali sono le principali opzioni che devo memorizzare quella chiave privata nel modo più sicuro?

Nota a margine: so che l'idea di creare un'interfaccia web per tale attività non è sicura e sarebbe molto più sicuro pubblicare solo la chiave pubblica e consentire agli utenti finali di controllarsi autonomamente, ma questo è ciò che il mio cliente vuole assolutamente, quindi ...

    
posta palra 23.11.2016 - 20:08
fonte

1 risposta

4

Quindi, smettiamolo prima - non c'è alcun senso nel crittografare la chiave. Perché per decodificarlo, avrai bisogno di quella chiave, che dovrà quindi essere archiviata. Diventa un problema di pollo e uova - in definitiva, hai bisogno di qualcosa memorizzato in chiaro in QUALCHE LUOGO.

Quindi dove. La risposta tradizionale è in un file sul filesystem con accesso in sola lettura per l'utente su cui l'applicazione è in esecuzione. Quindi assicurati che solo questa applicazione venga eseguita come tale utente e che sia quanto più sicuro possibile.

Ci sono altre opzioni, però. È possibile utilizzare un modulo di sicurezza hardware (HSM) per memorizzare la chiave. Hanno alcune opzioni più sofisticate per accedere alla chiave. Questo è costoso, sia che tu stia ospitando te stesso o ospitato esternamente (e non tutti i provider di hosting offrono HSM dedicati). Potresti anche ospitare un sistema di gestione delle chiavi, come Hashiko's Vault o KeyWhiz (preferibilmente su un altro sistema, accessibile solo a questo sistema). Questi sono progettati per risolvere questo problema e hanno anche alcune opzioni più sofisticate per l'accesso alla chiave.

Probabilmente vorrai essere su un host dedicato a prescindere, però - gli host condivisi aggiungeranno ulteriori problemi di sicurezza e livelli che ti faranno essere incerti su chi ha accesso a cosa.

    
risposta data 23.11.2016 - 20:52
fonte