Come posso garantire la sicurezza quando sono richieste password letterali

8

Ho un caso a portata di mano in cui il mio server deve effettuare chiamate API automatiche che richiedono l'autenticazione. Quindi il server dovrà conoscere le password letterali per effettuare tali chiamate.

Quali opzioni devo garantire per garantire la sicurezza di tali password?

    
posta Seba 09.02.2015 - 16:44
fonte

5 risposte

1

Il modo migliore per archiviare le password in modo recuperabile sarebbe probabilmente quello di crittografarle con un codice simmetrico. Le password memorizzate sul dispositivo che intende utilizzarle solo nella loro forma crittografata e quindi forse all'avvio del servizio hanno la chiave da utilizzare per decrittografare le password API derivate da metodi esterni (You tu stesso inserendo una password, recuperandola da un computer esterno non connesso alla rete, ecc.)

Una volta che la chiave per decrittografare le password API è stata caricata solo in memoria e non è stata inserita nel disco, è possibile utilizzarla per decrittografare le password API in base alle esigenze. Assicurati di mantenere anche le password in chiaro in memoria e sovrascriverle dopo l'uso.

    
risposta data 07.04.2016 - 16:32
fonte
0

Bene, se si tratta di una password letterale, ciò è dovuto ad alcune API che lo richiedevano una volta? Tipicamente forme più moderne di autenticazione bypassano una password diretta e una reindirizza un utente a un meccanismo di autenticazione di terze parti, insieme a una chiave API. Il fornitore Ali restituirà quindi al tuo sito un token di autenticazione che potresti utilizzare per le chiamate API.

Se si tratta di una password privata (ad esempio qualcosa di simile a un database SAP), puoi semplicemente bloccare il file.

Ma se devi chiedere direttamente all'utente la loro password in modo da poter usare qualche altro codice di backend, allora mi sento un po 'strano e il mio istinto direbbe che ci deve essere un modo migliore.

    
risposta data 09.02.2015 - 16:55
fonte
0

L'archiviazione di una password in forma letterale è generalmente una cattiva idea. Se le tue mani sono legate, prova almeno a calcolare la password al volo usando il codice offuscato; questo almeno ostacolerà gli hacker automatici e di basso livello nel caso in cui il binario venga rivelato.

    
risposta data 11.03.2015 - 20:50
fonte
0

La prima di nessuna soluzione sarà al livello più spesso previsto per l'archiviazione della password mentre un servizio avrà bisogno di accedere alle password del cliente.

Dato che non fornisci da solo i vettori di attacco, presumo che tu voglia proteggere contro il più comune / più facile da raggiungere che sarebbe l'accesso al DB. (Leggi l'accesso in modo specifico ma per questa situazione non ha molta importanza.)

Per proteggersi da questa crittografare le password prima di inviarle al server DB e NON memorizzare la chiave di crittografia nel DB o sul server DB. Direi di avere un server che gestisce solo la crittografia / decodifica e le chiamate API. Quindi avere il più strong possibile le regole del firewall "attorno", idealmente direi di non avere questo server direttamente accesso al server DB in modo da limitare la sua comunicazione ad un altro server applicativo del tuo e, naturalmente, l'accesso necessario per l'API chiamate.

Questo approccio farebbe sì che un utente malintenzionato debba violare questa macchina di cifratura / decrittografia e dovrà inoltre violare il DB (o altro server di applicazioni) se vuole ottenere password per un utente specifico. Aiuta anche a focalizzare le altre misure di protezione attorno a questo server e al codice. Come il controllo del codice dell'applicazione in esecuzione su questo server, ad esempio, un altro motivo per mantenere la funzionalità di questa applicazione il più limitata possibile.

    
risposta data 06.01.2016 - 09:55
fonte
0

Dato che non si specifica il modello o l'ambiente delle minacce, devo fare delle ipotesi su cosa si vuole evitare. Presumo che il tuo canale di comunicazione sia sicuro e ti preoccupi che un utente malintenzionato comprometta le password sul server.

In primo luogo, indurisci il tuo server correttamente. Se ovunque le password sono memorizzate è sufficientemente protetto con le autorizzazioni dei file, memorizzato nella corretta posizione inaccessibile, ecc., Hai già reso la vita degli attaccanti molto più difficile.

In secondo luogo, è possibile memorizzare le password crittografate e decrittografarle al volo o mantenere una copia decodificata nella memoria volatile. Ma questo sposta solo il palo. Se l'utente malintenzionato può ottenere la password utilizzata per decrittografare o accedere alla posizione in cui è memorizzata in modo non crittografato, è anche un gioco finito.

In terzo luogo, se la password non viene mai utilizzata direttamente, ad es. se il server deve saperlo solo per ricavare una chiave di sessione, è possibile scaricare l'intera operazione su un modulo sicuro.

In quarto luogo, si potrebbe fare il proprio man-in-the-middle e avere un proxy iniettare la password. Di nuovo, questo sposta la postazione sul server proxy e apre un paio di altre lattine di worm, ma il proxy sarebbe probabilmente molto meno complesso del tuo server e quindi più facile da indurire.

tl; dr: ci sono un paio di opzioni, ma non si forniscono informazioni specifiche sufficienti per ottenere una risposta davvero pratica.

    
risposta data 08.03.2016 - 14:08
fonte

Leggi altre domande sui tag