È una cattiva pratica condividere gli hash delle password tra i sistemi?

2

Per un sistema attualmente in costruzione, l'utente dovrà accedere a più sistemi con la stessa password. Un sistema (A) è sempre in testa e l'utente può solo modificare la password sul sistema A. Il nuovo hash viene quindi copiato nel sistema B e attivo. Ogni sistema B ha solo un sottoinsieme delle credenziali del sistema A.

Per motivi tecnici (implementazione e connettività) non possiamo usare una tecnologia single sign-on come OAuth per trasferire fiducia. I sistemi B sono raramente connessi, quindi mentre possiamo inviare informazioni da A a B, non possiamo permettere a B di fare affidamento su una connessione ad A per la sua convalida dell'utente. Ovviamente abbiamo saltato e cancellato correttamente le password.

Ora mi chiedo: è una cattiva pratica per questi sistemi, tutti sotto il nostro controllo, condividere lo stesso hash della password per un utente?

    
posta Angelo van der Sijpt 08.09.2017 - 14:57
fonte

2 risposte

1

Il problema con questo design è che ora ci sono più punti di errore. Un compromesso del database per l'applicazione A ora compromette la sicurezza dell'applicazione B. Inoltre, si ha più sicurezza di trasporto di cui preoccuparsi. Un utente malintenzionato può teoricamente ottenere un MITM per la copia della password dall'applicazione A all'applicazione B. Un'applicazione progettata tradizionalmente non soffre di questo difetto.

    
risposta data 08.09.2017 - 15:16
fonte
1

Come sai, questo significa che se qualcuno compromette qualcuno dei sistemi, li ha compromessi tutti.

Un tale sistema è vulnerabile agli attacchi "passa l'hash", in cui qualcuno che può entrare nella rete può visualizzare un hash sulla rete, copiarlo e riprodurlo per accedere altrove.

Se i tuoi sforzi per la sicurezza vengono controllati, ad esempio se sei nel campo di applicazione dello standard PCI DSS, è probabile che dovrai dedicare molto impegno extra a compensarli.

Sei sicuro di non poter utilizzare una soluzione di autenticazione conosciuta e rispettata come Kerberos, invece di utilizzare la tua? Sei sicuro che i motivi che hai fornito (connettività di rete e implementazione) siano validi, che i tuoi scenari di errore non siano già gestiti da prodotti esistenti (ad esempio, Active Directory può gestire molte forme di autenticazione offline) e qualsiasi potenziale interruzione in realtà superano i rischi che stai introducendo con questo sistema?

Non è tanto una questione di "è una cattiva pratica"; spetta alla tua organizzazione decidere se sono disposti ad accettare tali rischi e costi.

    
risposta data 08.09.2017 - 15:17
fonte

Leggi altre domande sui tag