plugins d'attribut

  • crypto_RSA_OAEP : chiffrer/déchiffrer des chaînes avec des clés RSA asymétriques, en utilisant PKCS#1 OAEP, un chiffrement asymétrique basé sur RSA et le remplissage OAEP

  • ldapPasswordHash: générer des hachages LDAP de formats spécifiés à partir d’une chaîne contenant un mot de passe en clair

Boris Lechner 2025-05-05 e022507882f1c7d53ec4dc72b08922261dfdd25f

Sous-sections de plugins d'attribut

crypto_RSA_OAEP

Description

Ce plugin permet de chiffrer/déchiffrer des chaînes avec des clés RSA asymétriques, en utilisant PKCS#1 OAEP, un chiffrement asymétrique basé sur RSA et le remplissage OAEP.

Configuration

Vous pouvez configurer autant de clés que vous le souhaitez dans les paramètres du plugin. Une clé peut être utilisée pour chiffrer ou déchiffrer, mais pas les deux. Le plugin déterminera s’il s’agit d’une opération de chiffrement ou de déchiffrement en fonction du type de clé : déchiffrement pour les clés privées et chiffrement pour les clés publiques.

hermes:
  plugins:
    attributes:
      crypto_RSA_OAEP:
        settings:
          keys:
            # Nom de la clé, vous pouvez définir ce que vous voulez
            encrypt_to_messagebus:
              # Type de hachage, lors du déchiffrement, vous devez évidemment
              # utiliser la même valeur qui a été utilisée pour le chiffrement
              hash: SHA3_512
              # Clé publique RSA utilisée pour chiffrer
              # ATTENTION - CETTE CLÉ EST FAIBLE ET PUBLIQUE, NE L'UTILISEZ JAMAIS
              rsa_key: |-
                  -----BEGIN PUBLIC KEY-----
                  MCgCIQCy2W1bAPOa1JIeLuV8qq1Qg7h0jxpf8QCik11H9xZcfwIDAQAB
                  -----END PUBLIC KEY-----                  

            # Une autre clé
            decrypt_from_messagebus:
              hash: SHA3_512
              # Clé privée RSA utilisée pour déchiffrer
              # ATTENTION - CETTE CLÉ EST FAIBLE ET PUBLIQUE, NE L'UTILISEZ JAMAIS
              rsa_key: |-
                  -----BEGIN RSA PRIVATE KEY-----
                  MIGrAgEAAiEAstltWwDzmtSSHi7lfKqtUIO4dI8aX/EAopNdR/cWXH8CAwEAAQIh
                  AKfflFjGNOJQwvJX3Io+/juxO+HFd7SRC++zBD9paZqZAhEA5OtjZQUapRrV/aC5
                  NXFsswIRAMgBtgpz+t0FxyEXdzlcTwUCEHU6WZ8M2xU7xePpH49Ps2MCEQC+78s+
                  /WvfNtXcRI+gJfyVAhAjcIWzHC5q4wzgL7psbPGy
                  -----END RSA PRIVATE KEY-----                  

Les valeurs valides pour hash sont :

  • SHA224
  • SHA256
  • SHA384
  • SHA512
  • SHA3_224
  • SHA3_256
  • SHA3_384
  • SHA3_512

Utilisation

crypto_RSA_OAEP(value: bytes | str, keyname: str)  str

Une fois que tout est configuré, vous pouvez chiffrer les données avec la clé encrypt_to_messagebus comme ceci dans un filtre Jinja :

password_encrypted: "{{ PASSWORD_CLEAR | crypto_RSA_OAEP('encrypt_to_messagebus') }}"
password_decrypted: "{{ PASSWORD_ENCRYPTED | crypto_RSA_OAEP('decrypt_from_messagebus') }}"

Vous pouvez même déchiffrer et rechiffrer immédiatement les données avec une autre clé comme ceci :

password_reencrypted: "{{ PASSWORD_ENCRYPTED | crypto_RSA_OAEP('decrypt_from_datasource') | crypto_RSA_OAEP('encrypt_to_messagebus') }}"

Boris Lechner 2025-05-05 e022507882f1c7d53ec4dc72b08922261dfdd25f

ldapPasswordHash

Description

Ce plugin permet de générer des hachages LDAP aux formats spécifiés, depuis une chaîne contenant un mot de passe en clair.

Configuration

Vous pouvez configurer une liste facultative de types de hachage par défaut dans les paramètres du plug-in. Cette liste sera utilisée si les types de hachage ne sont pas spécifiés dans les arguments du filtre, sinon les types de hachage spécifiés seront utilisés.

hermes:
  plugins:
    attributes:
      ldapPasswordHash:
        settings:
          default_hash_types:
            - SMD5
            - SSHA
            - SSHA256
            - SSHA512

Les valeurs valides pour default_hash_types sont :

  • MD5
  • SHA
  • SMD5
  • SSHA
  • SSHA256
  • SSHA512

Utilisation

ldapPasswordHash(password: str, hashtypes: None | str | list[str] = None)  list[str]

Une fois que tout est configuré, vous pouvez générer votre liste de hachages comme ceci dans un filtre Jinja :

# Contiendra une liste de hachages de PASSWORD_CLEAR selon les paramètres
# de default_hash_types : SMD5, SSHA, SSHA256, SSHA512
ldap_password_hashes: "{{ PASSWORD_CLEAR | ldapPasswordHash }}"

# Contiendra une liste contenant uniquement le hachage SSHA512 de PASSWORD_CLEAR
ldap_password_hashes: "{{ PASSWORD_CLEAR | ldapPasswordHash('SSHA512') }}"

# Contiendra une liste contenant uniquement les hachages SSHA256
# et SSHA512 de PASSWORD_CLEAR
ldap_password_hashes: "{{ PASSWORD_CLEAR | ldapPasswordHash(['SSHA256', 'SSHA512']) }}"