Pourquoi chiffrer ses séquences ?

Une séquence AutomationSequence est un fichier JSON lisible. En développement, c'est un avantage. En production et distribution, c'est un risque : le JSON peut contenir des chemins réseau internes, des logiques métier confidentielles, et parfois des clés API que l'on a oublié de sortir.

V8 introduit le format .asenc (AutomationSequence ENcrypted) — une séquence JSON chiffrée AES-256-GCM avec vault de credentials intégré. Le moteur déchiffre en mémoire avant exécution ; le JSON en clair n'existe jamais sur disque en production.

Distribuer une séquence .asenc à un collègue ou sur un autre poste : il peut l'exécuter sans voir son contenu. La logique métier reste confidentielle.

Format .asenc

# Structure binaire d'un fichier .asenc
[4B]  magic     : 41 53 45 4E  (ASCII "ASEN")
[1B]  version   : 0x02
[1B]  algo      : 0x01 (AES-256-GCM)
[4B]  flags     : hmac | vault_embedded | compressed
[16B] salt      : sel Argon2id aléatoire
[32B] hmac      : HMAC-SHA256 du header + ciphertext
[12B] nonce     : nonce AES-GCM
[N B] ciphertext: JSON compressé + chiffré

Le vault de credentials

Le vault stocke les secrets référencés dans la séquence (DSN Oracle, clés API, mots de passe SMTP). Il est chiffré séparément avec une clé dérivée du fingerprint machine ou d'un mot de passe maître :

# Interface vault : Outils → Vault → Gérer les secrets
# Ou en ligne de commande

# Ajouter un secret
automation-sequence vault add ORACLE_PROD_DSN "user/pass@host:1521/SID"

# Lister les clés (sans afficher les valeurs)
automation-sequence vault list
# → ORACLE_PROD_DSN, SMTP_PASSWORD, API_KEY_METEO

# Dans la séquence JSON, référencer avec la syntaxe vault:
# "dsn": "vault:ORACLE_PROD_DSN"
# Le moteur résout la valeur au démarrage, jamais en JSON

Chiffrer une séquence

# Via l'interface : Fichier → Chiffrer la séquence
# Ou en ligne de commande :

# Mode 1 : clé dérivée du fingerprint machine (lié à ce poste)
automation-sequence encrypt ma_sequence.json   --key-source hardware   --output ma_sequence.asenc

# Mode 2 : clé dérivée d'un mot de passe (portable entre postes)
automation-sequence encrypt ma_sequence.json   --key-source password   --output ma_sequence.asenc
# Demande le mot de passe (non stocké)

# Mode 3 : intégration du vault dans l'archive .asenc
automation-sequence encrypt ma_sequence.json   --embed-vault   --output ma_sequence.asenc

Déploiement d'une séquence chiffrée

Un fichier .asenc déchiffré avec mode password peut être déployé sur n'importe quel poste. L'utilisateur entre le mot de passe au premier lancement (ou il est fourni via variable d'environnement en CI/CD) :

# Exécution avec mot de passe en variable d'environnement
AS_VAULT_PASSWORD=MonMotDePasse automation-sequence run ma_sequence.asenc

# Exécution planifiée CRON (mot de passe dans le vault système)
# Le vault système (DPAPI Windows / libsecret Linux) stocke
# le mot de passe de déchiffrement, protégé par les creds de session

Journal d'audit HMAC

Chaque exécution d'une séquence .asenc génère une entrée dans le journal d'audit immuable. Le journal est une chaîne de blocs HMAC-SHA256 : chaque entrée inclut le hash de l'entrée précédente, rendant toute altération rétrospective détectable :

{
  "timestamp": "2026-06-15T09:30:00Z",
  "sequence_hash": "a3f8c2...",   // hash SHA-256 du .asenc
  "action_index": 4,
  "action_type": "oracle_query",
  "status": "success",
  "duration_ms": 142,
  "prev_hmac": "d4e7b1...",
  "hmac": "f2a9c8..."              // HMAC-SHA256 de cette entrée
}

Gestion des clés en environnement multi-postes

  • Petite équipe (2-5 postes) — mode password avec mot de passe partagé via gestionnaire de secrets d'équipe (Bitwarden, 1Password Teams).
  • Enterprise (50+ postes) — mode hardware avec IronLock pour lier la séquence à chaque machine autorisée.
  • CI/CD pipeline — variable d'environnement injectée par le runner (GitLab CI, GitHub Actions), jamais hardcodée.

Conclusion

Le chiffrement AES-256-GCM des séquences dans AutomationSequence V8 résout trois problèmes simultanément : protection de la logique métier, sécurisation des credentials et traçabilité via audit HMAC. Le format .asenc est conçu pour être distribué — même à des utilisateurs non techniques qui exécutent la séquence sans pouvoir l'inspecter.

⚙️
PRODUIT LIÉ
AutomationSequence V8.0
← Article précédent Article suivant →