2011-08-05 3 views
1

Ceci est une question spécifique à Silverlight 4. Silverlight 5 Beta répond déjà à cette préoccupation en fournissant un accès ProtectedData et DPAPI.Comment stocker en toute sécurité un secret ou une clé privée dans Silverlight 4?

Ce n'est pas une question relative à la façon de stocker un mot de passe d'utilisateur, car ce hachage est la réponse.

Comment stocker un secret dans le client, d'une manière qui ne soit pas vulnérable à un vidage de la mémoire ou à la réflexion/décompilation? Ou pensez-vous que le protocole SSL est suffisamment sécurisé et qu'aucun chiffrement supplémentaire des données n'est nécessaire? Un exemple serait un utilisateur soumettant une demande de changement de mot de passe, dans laquelle l'ancien et le nouveau mot de passe doivent être envoyés au serveur pour l'opération. Supposons que les données sur le serveur sont sécurisées en mémoire et au repos.

+1

vous ne pouvez jamais vraiment magasin quelque chose de sûr dans un client ... par définition tout ce que le client lui-même doit utiliser signifie qu'il peut être obtenu à cette information ... si vous avez juste besoin de communiquer des données sensibles utiliser SSL sécurisant ainsi le transport, le principal fardeau de sécurité est sur côté serveur ... – Yahia

Répondre

2

Il est jamais sûr de stocker votre clé privée sur le client ... Voilà pourquoi il est privé :)

SSL est de 128 bits (minimum) et est beaucoup plus que suffisant pour tous vos besoins . Tant que vous forcez SSL. Si vous êtes vraiment inquiet, augmentez votre débit SSL et voilà.

"256 bits est à peu près égal au nombre d'atomes dans l'univers."

"Les techniques de force brute sont considérées comme irréalisables car les algorithmes de chiffrement modernes ont une longueur de 128 à 256 bits."

Si le client a le programme, il y a toujours une chance d'obtenir votre clé stockée si vous intégrez dans

+0

Utilisation d'une authentification correcte autorisation, ainsi que la signature Xap et une vérification this.Host.Source sur le démarrage de l'application- Je pense qu'il est acceptable de gérer le chiffrement et le décryptage du côté serveur pour la sécurité des données au repos. La clé côté serveur doit être stockée à l'aide de DPAPI et non codée en dur. Vous pouvez utiliser les mécanismes intégrés de SQL pour effectuer le chiffrement de données transparent (TDE), mais cela ne protège pas contre un administrateur de base de données de voir les informations personnelles des personnes. –

Questions connexes