La mia app deve leggere un URL SSL da una terza parte. Come faccio a memorizzare al meglio le credenziali di terze parti nel mio database, che protegge le credenziali di terze parti dall'essere compromessa? Considerare sia la sicurezza assoluta che la praticità. L'hashing unidirezionale delle credenziali non è utile in quanto devo ripristinare le credenziali in testo normale per la chiamata SSL. Sto usando python su Google App Engine e la mia app si autentica con le credenziali di google.i * deve * memorizzare credenziali di terze parti nel mio database. miglior modo?
- crittografare le credenziali utilizzando ad es. AES e salvare la chiave di crittografia da qualche altra parte (sposta semplicemente il problema), o derive it from the credentials and keep the algorithm secret (semplicemente sposta il problema)
- credenziali cifrare usando un synchronous stream cipher, ricavare la (non) entropia dalle credenziali e keep the algorithm secret (appena si sposta il problema)
- su un'app web separata dedicata alla memorizzazione di credenziali di terze parti, fornire un URL SSL per ricevere le credenziali di terze parti, questo URL è accessibile con credenziali di google (come la mia app) e può utilizzare authsub o qualcosa per trasferire l'autorizzazione all'altro app web questo sembra più sicuro perché è più difficile hackerare una webapp banalmente semplice, e se la mia complessa app principale viene compromessa le credenziali di terze parti non sono esposte.
cosa ne pensi di tutti gli approcci?
non è chiaro cosa stai chiedendo? Un URL SSL è lì per crittografare le credenziali inviate su di esso. –
ho paura di memorizzare le credenziali esterne nel mio database –
Non riesco a vedere come anche il terzo approccio non stia spostando il problema. Lo sposta semplicemente su un'altra app, anziché sulla stessa app. –