Come posso nascondere la chiave di accesso AWS S3 e il segreto in C ++? [duplicare]

1

Uso 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?

Non eseguo 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 che mi preoccupa è qualcuno che passa il nostro file di aggiornamento e tira fuori la chiave e il segreto dal binario.

    
posta parsley72 17.12.2015 - 19:24
fonte

2 risposte

1

La memorizzazione delle chiavi è una di quelle cose ... Certamente, se il dispositivo è spento, qualcuno con le risorse potrebbe svuotare e archiviare i dispositivi (flash, emmc) e scaricare i dati abbastanza facilmente. In fase di runtime, se qualcuno ha un accesso da super utente, può cancellare tutta la memoria fisica e scansionarla per la chiave (che sarà in memoria una volta usata)

La protezione delle chiavi con schemi di crittografia omomorfici sta guadagnando popolarità, ma è ancora in gran parte nel regno accademico (Più un po 'di voodoo).

Per proteggersi dalla memoria forensica che preleva la chiave dalla memoria fisica, ARM ha una "zona di fiducia" che può essere sfruttata per eseguire operazioni crittografiche senza esporre le chiavi alla memoria che è generalmente visibile al sistema operativo.

Un TPM è un altro approccio comune per memorizzare e utilizzare i tasti senza esporli alla memoria.

In breve, non ci sono soluzioni software "buone" per la protezione delle chiavi, solo le soluzioni hardware sembrano valide (come trustzone e TPM).

    
risposta data 17.12.2015 - 19:52
fonte
0

Non puoi nasconderlo nel file dell'applicazione, puoi solo offuscarlo. Nessuno di questi ti offre alcun tipo di sicurezza. L'offuscamento è la sicurezza non ; può essere facilmente decodificato nelle giuste circostanze.

E se si tratta di un dispositivo integrato, cosa impedisce a qualcuno di sfruttare la tua applicazione? Non mi fido della tua applicazione per essere al sicuro a questo punto dal momento che stai memorizzando credenziali importanti in un eseguibile, quindi probabilmente manchi anche delle conoscenze di sicurezza di base.

Non importa se sei su un dispositivo embedded o no: se c'è accesso in lettura-scrittura, i tuoi segreti sono in pericolo.

Durata della cronologia: qualcuno ha tentato una volta di infettare la mia macchina con un eseguibile malware che ha memorizzato le credenziali al suo interno. Nel giro di pochi minuti, sono stato in grado di accedere ai vari account, scoprire chi erano, cosa stavano facendo e avvitarli per un po '.

Nuovo tempo della cronologia: Sei prossimo.

Sei giustamente preoccupato per qualcuno che ruba il tuo file di aggiornamento e ne estrae le credenziali. Ma ti manca il fatto che non dovresti memorizzare le tue credenziali nell'eseguibile.

    
risposta data 17.12.2015 - 19:43
fonte

Leggi altre domande sui tag