Question

Je voudrais transférer le nom d'utilisateur et mot de passe d'un processus à un autre processus en cours d'exécution sur le même serveur sous Windows. Quelle est la meilleure approche pour réaliser ce transfert de manière sécurisée? Une approche simple consiste à copier les mots de passe dans un fichier et ensuite l'autre processus de lecture d'un fichier, puis supprimez le fichier une fois qu'il est lu. Bien que ce soit simple, je suis inquiet s'il est sûr que, car il est toujours possible qu'une personne d'accéder à ce fichier, même si elle ne vit que pour une courte période de temps et a également la possibilité du fichier étant omis si l'autre traite des erreurs ou sur les accidents. Comme IPCs prises et canaux nommés semble être un surpuissant pour ce problème. Je suis plus enclin à l'aide des fichiers de mémoire mappées comme expliqué dans ce lien ci-dessous qui parle de partage de la mémoire à travers les processus. Est-ce la bonne approche? Aussi, est-ce une bonne idée de remplir la mémoire avec des données factices avant de libérer / effacer pour empêcher les processus de rouge à partir des données de balayage cet emplacement mémoire?

http://msdn.microsoft.com/ fr-fr / bibliothèque / aa366551 (VS.85) .aspx

Était-ce utile?

La solution

RPC est votre ami ici (je ne voudrais pas utiliser des canaux nommés pour transférer des données sécurisées parce qu'ils ont des problèmes graves (parce qu'ils fonctionnent dans un espace de noms global et sont donc vulnérables aux attaques accroupi)).

Étant donné que les données ne sont pas transmis sur le fil, le chiffrement est pas aussi important que certains sont décris. Au lieu de mettre en oeuvre ont une processus un serveur RPC et ont l'autre extrémité se lient à ce serveur, émettre l'appel RPC avec les informations d'identification et de détruire le manche de liaison. - qui devrait détruire les structures de données intermédiaires

Ne pas oublier de sécurité à zéro la mémoire lorsque vous avez terminé de l'utiliser (sinon il pourrait se persista sur le disque).

Si vous voulez utiliser le cryptage, utilisez CryptProtectMemory qui crypter les données d'une manière qui peut être utilisé pour IPC.

Autres conseils

Utiliser une partie IPC qui (1) ne sont pas sauvegardées sur le disque, (2) supporte les ACL.

Cela semble indiquer les canaux nommés.

Alternativement DCOM et WCF le chiffrement de contenu de support.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top