10.11.5. Stocker et Résoudre des strings sensibles cryptés du Keystore Java.

Résumé

En comptant les mots de passe et les autres strings sensibles, les fichiers de configuration en texte brut ne sont pas sécurisés. JBoss EAP 6 inclut la capacité de stocker et d'utiliser les valeurs masquées dans les fichiers de configuration, et d'utiliser ces valeurs masquées dans les fichiers de configuration.

Procédure 10.7. Installation du Java Keystore

  1. Exécuter la commande vault.sh.

    Exécuter EAP_HOME/bin/vault.sh. Démarrer une nouvelle session interactive en tapant 0.
  2. Saisir le nom du répertoire où les fichiers cryptés seront stockés.

    Si vous suivez Section 10.11.2, « Créer un Keystore Java pour stocker des strings sensibles », votre keystore sera dans un répertoire nommé vault/ de votre répertoire de base. Dans la plupart des cas, il est logique de stocker toutes vos informations cryptées au même endroit dans le keystore. Cet exemple utilise le répertoire /home/USER/vault/.

    Note

    N'oubliez pas d'inclure la barre oblique finale dans le nom du répertoire. Soit / ou \, selon votre système d'exploitation.
  3. Saisir le nom de votre keystore.

    Saisir le nom complet vers le fichier de keystore. Cet exemple utilise /home/USER/vault/vault.keystore.
  4. Saisir le mot de passe du keystore, le nom de l'archivage sécurisé, salt, et le nombre d'itérations.

    Quand vous y êtes invité, saisir le mot de passe du keystore, le nom de l'archivage sécurisé, salt, et le nombre d'itérations.
  5. Sélectionner l'option de stockage d'un mot de passe.

    Sélectionner l'option 0 de stockage d'un mot de passe ou autre string sensible.
  6. Saisir la valeur.

    Une fois que vous y êtes invité, saisir la valeur deux fois. Si les valeurs ne correspondent pas, vous serez invité à essayer à nouveau.
  7. Saisir le bloc d'archivage sécurisé.

    Saisir le bloc d'archivage sécurisé, qui est un conteneur pour les attributs qui ont trait à la même ressource. Un exemple de nom d'attribut serait ds_ExampleDS. Cela fera partie de la référence à la chaîne cryptée, dans votre source de données ou autre définition de service.
  8. Saisir le nom de l'attribut.

    Saisir le nom de l'attribut que vous stockez. Exemple de nom d'attribut password.
    Résultat

    Un message comme celui qui suit montre que l'attribut a été sauvegardé.

    Valeur de l'attribut pour (ds_ExampleDS, password) sauvegardé
  9. Notez les informations pour ce string crypté.

    Un message s'affiche sur la sortie standard, montrant le bloc d'archivage sécurisé, le nom de l'attribut, la clé partagée et des conseils sur l'utilisation du string dans votre configuration. Prendre note de ces informations dans un emplacement sécurisé. Voici un exemple de sortie.
    ********************************************
    Vault Block:ds_ExampleDS
    Attribute Name:password
    Configuration should be done as follows:
    VAULT::ds_ExampleDS::password::1
    ********************************************
    
  10. Utiliser le string crypté dans votre configuration.

    Utiliser le string de l'étape de configuration précédente, à la place du string en texte brut. Une source de données utilisant le mot de passe crypté ci-dessus, est montrée ci-dessous.
    ...
      <subsystem xmlns="urn:jboss:domain:datasources:1.0">
        <datasources>
          <datasource jndi-name="java:jboss/datasources/ExampleDS" enabled="true" use-java-context="true" pool-name="H2DS">
            <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
            <driver>h2</driver>
            <pool></pool>
            <security>
              <user-name>sa</user-name>
              <password>${VAULT::ds_ExampleDS::password::1}</password>
            </security>
          </datasource>
          <drivers>
             <driver name="h2" module="com.h2database.h2">
                <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
             </driver>
          </drivers>
        </datasources>
      </subsystem>
    ...
    
    
    Vous pouvez utiliser un string crypté n'importe où dans votre fichier de configuration autonome ou de domaine pour lequel les expressions sont autorisées.

    Note

    Pour vérifier si les expressions sont utilisées dans un sous-système particulier, exécuter la commande CLI suivante sur ce sous-système :
    /host=master/core-service=management/security-realm=TestRealm:read-resource-description(recursive=true)
    À partir du résultat de cette commande, chercher la valeur du paramètre expressions-allowed. Si 'true', vous pourrez utiliser des expressions dans la configuration de ce sous-système particulier.
    Une fois que vous aurez mis votre string dans le keystore, utiliser la syntaxe suivante pour remplacer tout string en texte claire par un texte crypté.
    ${VAULT::<replaceable>VAULT_BLOCK</replaceable>::<replaceable>ATTRIBUTE_NAME</replaceable>::<replaceable>ENCRYPTED_VALUE</replaceable>}
    
    Voici un exemple de valeur réelle, où le bloc d'archivage sécurisé est ds_ExampleDS et l'attribut est password.
    <password>${VAULT::ds_ExampleDS::password::1}</password>