jeudi 24 février 2011

Mots de passe chiffrés pour les datasources de JBoss

Dans JBoss, les datasources sont configurées dans des fichiers XML qui contiennent les paramètres de connexion et la configuration du pool. Parmi les paramètres de connexion, on trouve le nom d'utilisateur et le mot de passe, en clair...
<local-tx-datasource>
    <jndi-name>SewaDS</jndi-name>
    <connection-url>jdbc:derby://localhost:1527/sewadb</connection-url>
    <driver-class>org.apache.derby.jdbc.ClientDriver</driver-class>
    <user-name>sewatech</user-name>
    <password>sewapwd</password>
<local-tx-datasource>
Évidemment, ce mot de passe en clair n'est pas la panacée et déclenchera une levée de bouclier au prochain audit de sécurité.

Il existe plusieurs techniques pour chiffrer le mot de passe. Je vais parler ici de la technique du SecureIdentityLoginModule, qui, si elle n'est pas la plus sécurisée, est simple et rapide à mettre en place. Si je veux en parler ici, c'est que malgré sa simplicité, je suis tombé récemment dans un vilain piège.