Mon application doit lire une URL SSL d'une tierce partie. Comment stocker le mieux les informations d'identification tierces dans ma propre base de données, qui protège les tierces pouvant être compromises? Considérez la sécurité absolue et la pratique. Haçon à sens unique Les informations d'identification ne sont pas utiles car je dois restaurer des informations d'identification au texte en clair pour l'appel SSL. J'utilise Python sur Google App Moteur et mon app authentifie avec Google Credentials. P>
Que pensez-vous de toutes les approches? P>
4 Réponses :
C'est une tâche difficile et aucune approche vous évitera la peine de vous assurer qu'il n'y a pas de lien faible. Pour commencer, je ne saurais pas si l'hébergement sur Google est le meilleur moyen d'y aller, car vous serez conforme au contrôle (je ne sais vraiment pas si l'App moteur est conçu avec le niveau de sécurité requis à l'esprit, vous devriez trouver que out) et ne peut probablement pas faire de test de pénétration (que vous devriez.) p>
Avoir une petite application distincte est probablement une bonne idée, mais cela ne vous empêche pas de devoir crypter d'une manière ou d'une autre les informations d'identification elles-mêmes dans cette application plus petite. Cela vous achète simplement votre simplicité, ce qui permet à son tour des choses plus faciles à analyser. P>
I Personnellement, j'essaierais de concevoir l'application afin que la clé change de manière aléatoire après chaque utilisation, ayant une sorte de APPROCHE UNE TEMPS . Vous ne spécifiez pas l'application dans suffisamment de détails pour voir si cela est réalisable. P>
Si vous avez besoin de stocker inversion des informations d'identification, il n'y a tout simplement aucune solution. Utilisez des AES et gardez la clé secrète sous la garde armée bien rémunérée. P>
Si votre utilisation de Windows, je vérifierais le credit * API Win32 (advapi32.dll), il vous permettrait au moins de vous permettre au moins de la gestion de la clé de Patch à Windows SysKey où TPM et une phrase secrète de démarrage peuvent fournir une protection contre les compromis de bas niveau (disque volé lecteurs) p>
Évidemment si votre application ou le contexte de sécurité dans lequel il fonctionne est compromis, aucune de ces réponses ne serait beaucoup d'aide. P>
Comment les informations d'identification sont-elles utilisées? Si leur utilisation n'est déclenchée que par le propriétaire d'origine (par exemple, vous stockez un numéro de carte bancaire et qu'ils font leur 2e achat), ils peuvent fournir un mot de passe à ce point qui est utilisé comme clé de cryptage. Vous n'avez alors jamais besoin de stocker cette clé localement et que le contenu de la base de données est seul est inutile à un attaquant. P>
Les crédits sont invoqués lorsque mon application reçoit un courrier électronique (vraiment SMS) d'une adresse enregistrée, puis mon application répond à cette adresse. Donc, je suis sûr qu'ils doivent être stockés.
Un livre décent qui couvre ce type de situation est cryptographie dans la base de données . P>
On ne sait pas ce que tu demandes? Une URL SSL est là pour chiffrer les informations d'identification envoyées dessus.
J'ai peur de stocker les informations d'identification externes dans ma base de données
Je ne vois pas comment la troisième approche ne bouge pas le problème également. Cela vient de le déplacer vers une autre application, au lieu de la même application.
convenu, mais cela sandule la dangereuse des choses dans une application simple, beaucoup plus difficile à pirater que mes applications compliquées et buggy ... Je cherche un compromis raisonnable