web-dev-qa-db-fra.com

Java équivalent de SecureString

Je cherche l'équivalent Java de .NET SecureString.aspx . Une telle mise en œuvre est-elle disponible en 2018?

implémentation OWASP n'est pas exactement le même parce que c'est juste un tableau de caractères simples. Alors que l'équivalent .NET fournit fonctionnalités supplémentaires telles que la possibilité d'obtenir une instance de/vers la mémoire non gérée et également le cryptage.

Je connais le Java pour passer les mots de passe en tant que char[] Et les Arrays.fill() avec des zéros après utilisation. Mais cela nécessite de construire un utilitaire trivial classe autour de char[] tout le temps.

12
Mikhail Kholodkov

Oracle a une implémentation GuardedString . C'est la correspondance la plus proche de la solution SecureString de .NET.

Implémentation de chaîne sécurisée qui résout les problèmes liés à la conservation des mots de passe en Java.lang.String. Autrement dit, tout ce qui est représenté sous la forme d'une chaîne est conservé en mémoire en tant que mot de passe en texte clair et reste en mémoire au moins jusqu'à ce qu'il soit récupéré.

La classe GuardedString atténue ce problème en stockant les caractères en mémoire sous une forme chiffrée. La clé de chiffrement sera une clé générée de manière aléatoire.

Dans leur forme sérialisée, GuardedStrings sera crypté à l'aide d'une clé par défaut connue. Il s'agit de fournir un niveau de protection minimum quel que soit le transport. Pour les communications avec Remote Connector Framework, il est recommandé que les déploiements activent SSL pour un véritable chiffrement.

Les applications peuvent également souhaiter persister GuardedString. Dans le cas d'Identity Manager, il doit convertir GuardedStrings en EncryptedData afin qu'ils puissent être stockés et gérés à l'aide des fonctionnalités de gestion du chiffrement d'Identity Manager. D'autres applications peuvent souhaiter sérialiser APIConfiguration dans son ensemble. Ces applications sont responsables du chiffrement du blob APIConfiguration pour une couche de sécurité supplémentaire (au-delà du chiffrement de clé par défaut de base fourni par GuardedString).

9
sanketshah