Crittografia per password nel file di configurazione? [chiuso]

0

Mi stavo chiedendo, se ha senso crittografare le password per i servizi esterni memorizzati nel mio file di configurazione con un algoritmo di crittografia simmetrica?

Da un lato penso che, se qualcuno accede al file di configurazione, probabilmente avrà anche accesso al codice e sarà relativamente facile decifrare le password ... d'altro canto non mi sento a mio agio a memorizzare le password in testo normale.

Qual è la tua opinione su questo argomento? Ci sono delle "migliori pratiche"?

    
posta jan 19.04.2014 - 01:04
fonte

1 risposta

2

Come per tutta la sicurezza, devi considerare due aspetti: (1) minacce e (2) costi-benefici . Ad esempio, la memorizzazione di una password crittografata in un file di configurazione mediante crittografia simmetrica si basa sulle autorizzazioni di accesso e sulla gestione delle chiavi del file.

Questo potrebbe essere possibile su un server web. Dopo tutto, il server Web può essere eseguito in un unico account con autorizzazioni ridotte con (1) accesso in lettura al file di configurazione e un keystore o (2) accesso a un componente che lo fa. Microsoft, ad esempio, supporta il precedente .

Tuttavia, un'applicazione tradizionale in esecuzione su Windows, Mac o Linux è diversa. L'utente è probabilmente un amministratore o ha accesso come amministratore (ad esempio sudo o UAC), il che significa che può accedere al file di configurazione e al keystore o concedersi l'accesso. Chiunque abbia accesso fisico allo spazio di archiviazione può anche bypassare qualsiasi controllo di accesso.

Dovresti usare una diversa forma di crittografia come la crittografia asimmetrica? La crittografia asimmetrica fornisce due chiavi, il che significa che i dati crittografati con uno possono essere decodificati solo con un altro. Poiché l'applicazione avrà bisogno di accedere alla password decifrata, ha bisogno di accedere a una delle chiavi. La crittografia asimmetrica rimuoverà solo la possibilità di crittografare una password nuova o modificata.

La crittografia asimmetrica può essere utile come parte di una firma digitale per rilevare la manomissione. Tuttavia, un amministratore locale avrà accesso al keystore utilizzato per la firma digitale.

Non si specifica l'algoritmo di crittografia che si utilizza ma si utilizza un algoritmo più potente (ad es. chiave più ampia, encrypt iteratively), ma questo aiuta solo se un utente malintenzionato accede al file di configurazione e non all'archivio chiavi quindi tenta di forzarlo.

Dovresti memorizzare la password da qualche altra parte? Questo è un sistema operativo e una domanda dipendente dall'ambiente. Potresti usare l'hardware dedicato, ad es. Trusted Platform Module (TPM) o Hardware Security Module (HSM), ma questi sono argomenti per se stessi e sono probabilmente troppo costosi e complessi per la maggior parte dei casi.

Una soluzione migliore potrebbe essere fidarsi di un provider di autenticazione di terze parti , ad es. via OpenID. Ciò significa che l'applicazione non deve gestire le password e i clienti non devono ricordare ancora un'altra password. Il fornitore di terze parti può anche fornire un secondo fattore (ad esempio una password unica) e gestire le modifiche e le reimpostazioni della password.

Tuttavia, l'applicazione rischia di compromettere il servizio di autenticazione di terze parti. Gli amministratori locali possono anche visualizzare o modificare quale fornitore di terze parti è considerato affidabile.

Senza sapere di più su ciò che stai facendo, farei come dici tu, cioè crittografare la password con crittografia simmetrica in un file di configurazione con le autorizzazioni appropriate. Copre il caso del 90% senza incidere troppo sul cliente o sul programma di sviluppo.

    
risposta data 19.04.2014 - 04:00
fonte

Leggi altre domande sui tag