Va bene per il software memorizzare le password localmente in testo semplice?

5

Ci sono già un sacco di domande su cosa fare quando siti web memorizzano password in testo semplice . Ma questo è un po 'diverso.

Uso un software open source (vedi sotto) per giocare. Richiede un account utente che non sia direttamente collegato a nessun servizio. Il log-in consiste nell'inserire un nome utente e una password in un dialogo, ma tale dialogo fornisce anche un'opzione "Salva password".

Questa opzione salva la password utilizzando un'API progettata per memorizzare le impostazioni in applicazioni multipiattaforma. Ma a causa del fatto che ha lo scopo di salvare le impostazioni non riservate che possono essere modificate al di fuori dell'applicazione, salva i dati in testo normale. E lo fa in luoghi che non richiedono alcuna autorizzazione speciale per accedere. Ad esempio, su Windows l'API memorizza le impostazioni nel registro (in una posizione che anche i non amministratori hanno almeno un accesso di sola lettura).

L'API viene passata la password in testo semplice e quindi memorizza la password in testo semplice. Ciò significa che ora posso eseguire un semplice comando da un prompt non elevato sulla mia macchina e ottenere l'ultima password che ho usato in testo normale.

Inoltre, qualsiasi software sul mio computer può facilmente accedere a queste informazioni. Recentemente ho scritto un piccolo programma che ha aggiornato alcuni file che il software utilizza. Tuttavia, ho iniziato a lamentarmi che il programma non poteva modificare i file anche se li trovava. Si è scoperto che gli utenti non avevano eseguito il programma come amministratore. Ma questo significa che anche se al mio programma non è stato permesso di accedere ai file di gioco del programma, è stato permesso leggere le stesse chiavi di registro che contengono la password in chiaro, anche quando la sicurezza di Windows l'aveva bloccato come programma scaricato. / p>

Ho già sollevato la questione, ma nonostante i miei migliori sforzi, nessuno sembra considerarlo un problema serio (vedi sotto).

Domanda: Sto facendo "molto rumore per nulla", o sto memorizzando la password in testo normale localmente come un problema serio, perché credo che memorizzare la password in testo semplice dovunque è?

Nota: Essendo open source significa che potrei "sistemare" il problema, ma ci sono alcuni problemi:

  • È completamente multipiattaforma (e non è utilizzato alcun codice specifico per piattaforma). La maggior parte dei sistemi che conosco che potrebbero memorizzare la password in modo sicuro relativamente sono altamente dipendenti dalla piattaforma (come DPAPI)

  • Il gruppo di sviluppo principale è estremamente piccolo e non sembra che nessuno di loro capisca l'importanza di proteggere le password. Ho sollevato l'argomento prima, e la risposta che ho ottenuto rende improbabile che un PR avrà alcun risultato. L'unica persona che gestisce un server usando il software che conosco ha spazzato via come me "discutendo per il gusto di litigare". La sua risposta è stata:

"I don't know that I agree that the responsibility falls on the tool, that's like saying we shouldn't build guns cause they can be used in a bad way its up to the person using the tool to take on that responsibility"... "if some one is dumb enough to put there bank account password into [the program] maybe they should consider doing some research into security".

Ho quindi ricordato di aver visto qualcosa sulle password memorizzate con la crittografia, quindi ho cercato di convincerlo che alcuni degli stessi ragionamenti che dettano i database dovrebbero crittografare le password applicate alle password memorizzate localmente. Ma non era d'accordo (sembra che il fatto che le password siano criptate è un po 'di programmazione settoriale del carico):

"the db is publicly accessible [I don't see why it should be that's a whole other issue], thats completely different. your machine shouldnt be sitting out in the world for people to access" ... "once again, if your machine is dangling out in the world with no protection dont come crying"

  • Anche l'utente medio non sembra comprendere la pertinenza, quindi bifrcare il repository e fornire una correzione non faranno nulla. Dato che il software è per un gioco gratuito senza classifica o monetizzazione, non capiscono perché sarei così preoccupato per qualcuno che scopre la mia password (o perché dovrebbero essere). Gli leggermente più esperti si limitano a dire che è colpa di un utente se la loro password non è univoca per quell'account.

  • Non sono d'accordo ci dovrebbe essere una funzione "Salva password" a tutti. Memorizzare le password localmente è notoriamente difficile da eseguire correttamente (anche i sistemi come DPAPI sono tutt'altro che perfetti). Io raramente ritengo che valga la pena di fornire la funzionalità. E soprattutto non vedo il punto per un programma come questo.

posta Selali Adobor 02.10.2014 - 19:37
fonte

3 risposte

4

Risposta breve, non è mai consentito archiviare password in chiaro e farlo è una cattiva pratica. Dalla tua descrizione, vi è un rischio limitato associato all'organizzazione che supporta l'app perché non vi è alcuna conformità o rischi monetari diretti collegati. Questo rischio viene trasferito agli utenti. È possibile che gli utenti di questo software abbiano perso la password. Ciò comporta rischi per l'organizzazione in cattive pubbliche relazioni se esce. Questo potrebbe essere usato per giustificare il costo di fissarlo.

Gli utenti di qualsiasi software si aspettano che il software stia prendendo precauzioni adeguate con le loro password. La maggior parte degli utenti non penserà molto al salvataggio delle proprie password. Presumono che siano stati salvati in modo sicuro, il software non li avviserà che è in testo normale e che la maggior parte degli utenti riutilizza le password. Sì, è una cattiva pratica da parte loro, ma salvarla in solo testo peggiora le cose. L'argomento di "sheeple merita di essere hackerato" è sbagliato. C'è un motivo per cui i router wireless di casa ora impostano automaticamente la loro massima sicurezza. Ciò è stato fatto per proteggere le persone che non sanno come accenderlo. Nessuno è esperto in tutto e non tutti capiranno le basi della sicurezza. Parte del nostro ruolo di professionisti della sicurezza significa stare attenti alle persone che non sanno abbastanza per proteggersi.

Penso che tu abbia una dura battaglia per sistemare questo problema. Chiamerei le password di salvataggio in testo normale come una violazione della fiducia dell'utente. C'è il rischio che ho menzionato sopra. Tuttavia, con l'attitudine che hai già visto, probabilmente ci riporteranno e continuerai a respingere quella cultura potrebbe non valerne la pena. Anche se penso che sia la cosa giusta da fare. So che questo mi ha reso impopolare quando le promozioni / i rilanci si sono verificati nei precedenti lavori, ma l'ho fatto lo stesso. Gli utenti si aspettano che tu prenda le precauzioni con le loro password. Se viene fuori che non lo fai, potresti non riaverlo.

    
risposta data 02.10.2014 - 21:10
fonte
2

Personalmente non sarei d'accordo con la memorizzazione delle password in chiaro, SEMPRE male, perché dipende dall'applicazione o dallo scopo della password che viene memorizzata. In generale, sì, archiviare le password in testo semplice è una scelta di scarsa sicurezza per tutte le ovvie ragioni. Tuttavia, ciò non significa che sia una scelta super-cattiva in tutte le circostanze.

Se la password non viene trasmessa apertamente, (su Internet o anche sulla rete locale), viene archiviata all'interno dei file di programma localmente per l'autenticazione, e non c'è nulla che valga la pena proteggere, a chi importa se memorizzi la password in testo normale? È come proteggere con password il tuo accesso a notepad.exe. L'UNICO rischio è che l'utente finale selezionerà un nome utente e una password che utilizzano per altre applicazioni esistenti a rischio più elevato. Se queste informazioni vengono compromesse senza colpa tua, è possibile che i tuoi utenti finali siano esposti a qualche danno.

Diamine, ci sono anche alcune applicazioni, (magari insegnando a qualcuno come craccare le applicazioni scritte male! = D), dove potresti deliberatamente scegliere di memorizzare le password in testo semplice.

Il rischio è incredibilmente minore e potrebbe non valere la pena di preoccuparsene. Non come se stessimo memorizzando le password per l'accesso ai codici di lancio di un arsenale nucleare di una nazione qui. Ma c'è QUALCUN rischio, anche se è piccolo, e prendere semplici misure per proteggere i tuoi utenti è solo una bella cosa da fare.

    
risposta data 02.10.2014 - 23:07
fonte
0

L'intero " unique and random " ha un duplice scopo in questo mondo imperfetto, in cui non ci si può fidare dei siti Web per fare la cosa giusta o avere buone intenzioni.

Il sito Web potrebbe vendere le combinazioni di password nome utente ai cracker per la ricerca e l'incorporazione in attacchi di dizionario avanzati. Aka che fa del male intenzionale. Fornisci un gioco gratuito, richiedi la registrazione, vedi quanti manichini usano le stesse credenziali dei loro account Facebook o Google.

Quindi ovviamente ci sono solo i manichini che non sanno nulla di sicurezza e li memorizzano in testo semplice.

In ogni caso è negativo e tu, come utente, dovresti assumere che il sito web non è affidabile e utilizzare una password univoca e casuale.

E se sei uno sviluppatore che sta facendo uno stupido gioco su Internet, considera che i tuoi utenti potrebbero benissimo non conoscere le buone pratiche di sicurezza e finire per usare le stesse credenziali per il tuo gioco come per il loro conto in banca, e se il tuo gioco su internet viene violato e la tabella delle password rubata, quindi potresti aver fatto danni involontari ai tuoi clienti.

Quindi sì, dico che è sempre importante prendere sul serio la sicurezza se sei uno sviluppatore o un utente. E se prendi sul serio la sicurezza, allora non è mai ok per memorizzare le password in chiaro, né è accettabile non saltarle o altre cattive pratiche antiquate.

Nel tuo caso particolare, vorrai codificare le password in base a qualcosa che solo l'utente del tuo software conosce piuttosto che eseguirne l'hashing, perché sembra che l'applicazione sia simile a un gestore di password . Ci sono librerie là fuori che rendono facile a seconda della tecnologia che stai usando. .NET?

    
risposta data 02.10.2014 - 23:18
fonte