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.
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,
GuardedString
s 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 convertirGuardedString
s enEncryptedData
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érialiserAPIConfiguration
dans son ensemble. Ces applications sont responsables du chiffrement du blobAPIConfiguration
pour une couche de sécurité supplémentaire (au-delà du chiffrement de clé par défaut de base fourni parGuardedString
).