Come utilizzare DPAPI in ambiente di bilanciamento del carico

7



DPAPI può essere utilizzato per crittografare i dati segreti.
Intendiamo utilizzarlo nella nostra app Web per crittografare alcuni dati e archiviare i dati crittografati nel database. Quando necessario, decifriamo i dati e li presentiamo sull'interfaccia utente (pagina web). Funziona bene se ospitassimo l'app Web su un singolo server web. Ma il problema si presenta quando lo migriamo in un ambiente di bilanciamento del carico - ospitando l'app Web su più server web. Poiché l'app non può decodificare i dati crittografati su un'altra macchina.

Ci riferiamo ad alcune informazioni da internet, sembra che dobbiamo configurare un account utente roaming ed eseguire il pool di applicazioni con quell'account.

Il motivo per cui si desidera utilizzare DPAPI è che non implicherà ulteriore lavoro di gestione sulle chiavi.

Hai qualche esperienza simile, come risolvi il problema? O qualche altro suggerimento?

    
posta Robin Xing 05.03.2012 - 08:03
fonte

1 risposta

5

Ci sono due modifiche relativamente piccole che dovresti apportare alla tua configurazione.

Prima di tutto, dovresti sempre usare DPAPI in USER_MODE , questo è un parametro per i metodi DPAPI.
(I metodi .Protect() delle classi ProtectedData e ProtectedMemory richiedono un parametro scope aggiuntivo, questo deve essere impostato su DataProtectionScope.CurrentUser per ProtectedData o MemoryProtectionScope.SameLogon per ProtectedMemory , a seconda di quale stai utilizzando. ) (Se chiami direttamente le funzioni WINAPI, che spero tu non stia utilizzando, puoi anche inviare direttamente il parametro USER_MODE . Oh, e usa invece le classi .NET.)

In secondo luogo, dovresti utilizzare le classi DPAPI per crittografare la tua chiave di crittografia - non direttamente i dati.
In altre parole, si genera una singola chiave di crittografia, la si distribuisce su tutti i server e si memorizza la chiave tramite DPAPI. (Sì, probabilmente avrai bisogno di una piccola utility per questo.)
Ciò renderà i processi di gestione delle chiavi molto più semplici, la chiave sarà condivisa in modo tale che la decrittografia sia più semplice e protetta dalla crittografia DPAPI.

    
risposta data 05.03.2012 - 08:52
fonte

Leggi altre domande sui tag