Ho bisogno di un buon algoritmo di crittografia che possa essere codificato e decodificato

1

Mi sono reso conto qualche tempo fa che non dovremmo inserire la login / password per accedere a un server di database remoto direttamente in un file eseguibile a causa dell'ingegneria inversa e della decodifica della memoria. Non so se questo è ciò che tutti già fanno, ma preferisco prima accedere ad alcune API crittografate con una chiave o frase e poi ricevere login e password (anche crittografate) per iniziare ad accedere al database.

Quello che non so è un buon sistema di crittografia che può essere decrittato con la chiave o frase giusta che usiamo per crittografare i dati al primo tentativo.

Quindi quello che sto chiedendo è se esiste e dove posso vedere la soluzione per lavorare con sistemi che usano Delphi, PHP, Java e JavaScript? Perché ci sono queste diverse parti del sistema che possono comunicare con quel tipo di crittografia.

Non sto parlando di qualcosa come SHA / MD5, che non può essere recuperato.

    
posta Please_Dont_Bully_Me_SO_Lords 05.04.2013 - 19:37
fonte

1 risposta

14

Se stai mettendo un file binario su un computer non affidabile e quel file binario deve accedere a informazioni sensibili come le password del database, non c'è letteralmente nulla che tu possa fare per garantire la privacy di tali informazioni. Puoi rallentare gli attaccanti, ma se un utente malintenzionato può causare danni significativi con quelle credenziali del database, la tua architettura è fondamentalmente difettosa.

Ad esempio, il meglio che puoi fare è usare qualcosa come AES-128-GCM per crittografare le credenziali. Ma devi anche mascherare la chiave: tipicamente, questo significa offuscarla "generando" la chiave attraverso un processo deterministico come eseguire alcuni calcoli, XORernare il risultato rispetto ad alcuni dati fissi, e aggiungerlo e mischiarlo con i risultati di altri calcoli.

Ma ora hai ancora problemi. La chiave stessa sarà in memoria e, una volta decrittografata, lo farà anche la password del database. E davvero non puoi impedire a un utente di visualizzare il contenuto della memoria del proprio computer.

Ancora: puoi rendere il problema più difficile, ma se la tua architettura richiede di inserire informazioni incredibilmente sensibili come le password dei database su computer non attendibili, sei già fregato.

    
risposta data 05.04.2013 - 19:52
fonte

Leggi altre domande sui tag