2015-12-15 12 views
5

Sto usando AWS S3 nella mia app C++ per caricare e scaricare file. Ho incluso la chiave di accesso e il segreto nel mio codice, ma sono preoccupato che qualcuno possa leggerli dal binario. Esiste una tecnica standard per offuscarli?Come posso nascondere la chiave di accesso AWS S3 e il segreto in C++?

Aggiornamento: Non sto eseguendo questa app su un PC, è in realtà su un dispositivo incorporato quindi non sono preoccupato per gli utenti che leggono la chiave e il segreto da un file o RAM (l'accesso al dispositivo è molto più difficile) . Quello di cui sono preoccupato è qualcuno che passa in rassegna il nostro file di aggiornamento e tira fuori la chiave e il segreto dal binario.

+0

Se ho capito correttamente la domanda (e le aswers date finora) il punto è che una chiave in codice potrebbe essere letta in qualche modo. Ciò non significa che si possa sapere dov'è la vera chiave, ma si può sapere dove sono i dati statici e usare questi dati come base per un attacco di forza bruta (provando ad esempio tutte le sequenze di 4 caratteri, poi di 5 e così via nei dati statici). – marom

+0

Questa è una domanda difficile a cui rispondere. Penso che non sia del tutto chiaro cosa stai cercando di ottenere, e la risposta (come di solito avviene con la sicurezza) è probabilmente "stai sbagliando". Come regola generale, non è possibile mantenere nulla di segreto da un utente sul proprio PC. Hai preso in considerazione la possibilità di chiedere a http://security.stackexchange.com/? – BoBTFish

risposta

0

È meglio non tenere le chiavi nel codice. Ingresso quando necessario.

Se tenuto in codice, non tenere la chiave in una stringa semplice. Mantenerlo in qualche schema e generare la chiave con qualche algoritmo quando necessario.

+0

Ma poi dovrei dare la chiave AWS e il segreto al cliente che sconfigge il punto di nasconderlo. – parsley72

1

Memorizzare un segreto nel computer non è un compito facile. Una cosa che potresti fare è crittografare la chiave usando una password e memorizzare i dati crittografati in un file. Quindi, quando l'utente immette una password, è possibile decrittografare i dati crittografati utilizzando la password e recuperare la chiave, che è possibile utilizzare.

Ma questo approccio non funzionerà per scenari in cui il software deve essere eseguito senza l'intervento dell'utente.

+0

Non sarebbe meglio incorporare i dati crittografati all'interno del codice? – marom

+0

@marom: È difficile per me dire, penso che dipenda dalla situazione. Se la chiave è archiviata crittografata, dove vengono memorizzati i dati crittografati, non dovrebbe essere troppo importante. –

Problemi correlati