Sto cercando di capire dove o come dovrei memorizzare i segreti dell'applicazione e le chiavi all'interno di un'applicazione desktop.
Ad esempio una chiave di app di Facebook o una chiave dropbox e un segreto.
Quindi ho letto che dovrei fare hash, salare, crittografare ecc. Ecc. Questi valori. Questo per impedire a qualcuno di decodificare il mio codice e vedere le chiavi.
Il tutto va bene e bene, ma con tutti questi metodi, sto semplicemente memorizzando un valore salt o hash da qualche parte invece della chiave stessa, alla fine. Sicuramente se un hacker può raggiungere il sale/hash e possibilmente il codice sorgente, sarà in grado di decifrare la chiave crittografata e ottenere comunque la mia password/chiave/segreto?
Un'opzione che ho letto su questo sembra la più sicura è quella di non memorizzare questo valore nell'app desktop, ma di chiamare un servizio Web per ottenere la chiave (probabilmente crittografata). Ma la mia domanda è, anche in questo caso, un hacker decente farà sicuramente un dump della memoria o qualcosa per vedere qual è il valore restituito dal servizio web, e quindi torniamo al punto 1.Dove archiviare hash, sali, chiavi in Applicazioni desktop
Il la prossima alternativa migliore sembra essere l'oscurità.
Mi manca qualcosa completamente?
Nota a margine, a che cosa servirà comunque un hacker di Facebook/twitter/dropbox/etc/secret per un hacker? Sicuramente avrebbero ancora bisogno delle credenziali di un utente o del token di accesso per poterlo comunque utilizzare?
Qualsiasi consiglio o suggerimento sarà apprezzato.
Non è possibile impedire che qualcuno esegua il debug dell'applicazione per ottenere le chiavi. – Gumbo
Ciò significa che tutta questa roba di crittografia rende solo difficile per gli hacker? Invece di prevenirlo? – Quintonn
Sì. A un certo punto è necessario decodificarlo e quindi è possibile leggere i dati decrittografati dalla memoria. – Gumbo