Una soluzione
Affrontare solo il problema relativo alla memorizzazione sicura delle credenziali. Esiste sempre un rischio poiché la chiave di decodifica deve ancora essere memorizzata da qualche parte.
Ad esempio, è possibile utilizzare OpenSSL per crittografare una stringa di testo e quindi memorizzarla nel database sul server "non sicuro". Dovresti utilizzare anche un metodo di crittografia reversibile per questo.
Tale compito potrebbe essere realizzato con un semplice script PHP:
openssl_encrypt(PLAINTEXT, ENCRYPTION_METHOD, KEY, OPENSSL_OPTIONS, INITIALIZATION_VECTOR)
Quindi nel contesto, per esempio. (Assicurati di aggiungere 16 byte di padding prima della crittografia e rimuovi 16 byte di padding sulla decrittografia, questo può essere rimosso specificando specifiche opzioni OpenSSL, tuttavia per facilità puoi semplicemente aggiungere e rimuovere il padding. come un grado di offuscamento, in una certa misura, in questo esempio, sono stati usati i caratteri 16 '=', ma può anche dipendere enormemente da come viene configurata l'installazione di OpenSSL, tuttavia, per esperienza personale, faccio sempre solo attenzione Chiamalo un po 'di "sale" se vuoi ..)
openssl_encrypt("================username:password", "aes-128-cbc", "StRoNGeNcrYptIOnKey", 0, "16ByteIV--Random")
L'esecuzione di quanto sopra avrebbe prodotto qualcosa di simile a:
+VUYZEh3FII7HRvJ8Qm8glERsgfsSKG9tE8Zyr2EJLL+9VaF7+41q/MeL8R1++L1
Puoi quindi eseguire la decrittazione successiva:
openssl_decrypt("+VUYZEh3FII7HRvJ8Qm8glERsgfsSKG9tE8Zyr2EJLL+9VaF7+41q/MeL8R1++L1", "aes-128-cbc", "StRoNGeNcrYptIOnKey", 0, "16ByteIV--Random");
In produzione:
================username:password
Ci sono una vasta gamma di algoritmi di crittografia che possono essere utilizzati. C'è anche un articolo su PHP.net che mostra come questo può essere raggiunto, e include anche Linux Esempi di CLI, se desideri farlo anche tramite gli script di bash.
BEAR IN MIND
Dovrai comunque conservare una copia in chiaro della chiave di crittografia sul tuo dispositivo se questo è un processo automatico, che potrebbe non essere l'ideale, né sarebbe raccomandato. Non c'è niente che ti impedisca di utilizzare questo approccio e di archiviare i dati crittografati sul tuo server esterno, ma prenditi solo un momento per valutare le implicazioni sulla sicurezza di memorizzare una password in chiaro su un server.
Se ti senti nevrotico
Potresti anche cifrare le credenziali una volta con un algoritmo e quindi ricrittare il testo cifrato con un altro algoritmo completamente diverso.
Fino a te dipende da quanto sono sicuri i dati e quanto tempo / giustificazione / etc della CPU vuoi dedicare a questo.
Breve storia
Hai bisogno di una soluzione di crittografia reversibile se vuoi essere in grado di recuperare testo in chiaro dal testo cifrato e viceversa.