Présentation des processus cryptographiques

Date

20 décembre 2024

Rédigé par

Hubert TOUVET, Vincent Cardon

S’applique à WAPT

>= 2.3.0.13180

Version du Document

2.3.0.0-0

Hash Git

463d4b3ab4ad17e3db0f33ae34fde1fcb7f1cf13

Composants de la solution WAPT et spécification du mécanisme cryptographique

Les processus cryptographiques sont impliqués dans les activités suivantes :

  • Signature et vérification des fichiers contenus dans un paquet.

  • Signature et vérification des attributs d’un paquet.

  • Signature et vérification des actions immédiates sur les Agents WAPT.

  • Signature des inventaires et statut des Agents WAPT.

  • Communications Websockets entre les clients WAPT et le Serveur WAPT.

  • Communication HTTPS entre les clients WAPT et le Serveur WAPT.

  • Communications HTTPS entre la Console WAPT et le Serveur WAPT.

  • Communications HTTPS entre les clients WAPT et les dépôt WAPT.

Les versions des composants logiciels sont spécifiées dans la section « Liste des composants tiers intégrés dans le produit (COTS) » de l’objectif de sécurité.

Spécifications cryptographiques du Serveur WAPT

Le Serveur WAPT fonctionne sur une base de données PostgreSQL.

Service Nginx

Le Serveur Nginx sert les paquets vers les stations de travail clientes et agit comme un proxy inverse pour le Serveur WAPT. Il est configuré en TLSv1.3 avec les algorithmes de chiffrement EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH.

Spécifications cryptographiques du service Nginx

Matériel cryptographique utilisé

Utilisation

Spécifications

Localisation

Création / renouvellement

clé privée du Serveur nginx https

Console de connexion Serveur WAPT

Connexions Agent WAPT - Serveur

2048 bits.

Format non chiffré :abbr:`PEM (Privacy Enhanced Mail) `.

/opt/wapt/waptserver/ssl/key.pem

Serveur initial post-configuration

certificat du Serveur nginx https

Authentification du serveur

Chiffrer les connexions https.

Certificat X509 avec clé RSA

Format :abbr:`PEM (Privacy Enhanced Mail) `

Durée 3 ans

/opt/wapt/waptserver/ssl/cert.pem

Serveur initial post-configuration

Lors du renouvellement, il est nécessaire de distribuer le nouveau certificat de Serveur https aux Agents avec un paquet WAPT avant que le précédent n’expire.

Clé Diffie-Hellman

Échange initial de clés

2048 bits

Format :abbr:`PEM (Privacy Enhanced Mail) `.

/etc/ssl/certs/dhparam.pem

Serveur initial post-configuration

client https CA

Authentification par certificat client pour les connexions https aux Agents WAPT et à la Console WAPT.

Un magasin de certificats au format X509 contenant des copies des CA PKI Agents WAPT et CA PKI Administrateurs WAPT

Défini dans /opt/wapt/conf/waptserver.ini par la clé ssl_client_certificates dans la section [options].

Configuration initiale du Serveur et mise à jour manuelle à chaque fois que les CA PKI Agents WAPT et CA PKI Administrateurs WAPT

Clients https CRL

Permet à NGINX de vérifier que les certificats des clients n’ont pas été révoqués.

Un fichier au format PEM Agents WAPT et CRL PKI Administrateurs WAPT

Défini dans /opt/wapt/conf/waptserver.ini par la clé ssl_client_crls dans la section [options].

CRL magasin mis à jour toutes les heures par une tâche programmée sur le Serveur WAPT.

Les fichiers clients_signing_crl CRL et *.crt au format :abbr:`PEM (Privacy Enhanced Mail) ` dans le répertoire défini par ssl_additional_crls sont concaténés pour être utilisés par NGINX.

Table des clés kerberos

Authentification des connexions à la Console WAPT.

Authentification des enregistrements initiaux des Agents WAPT.

SPN : HTTP/<fqdn du serveur WAPT> @<REALM>

/etc/nginx/http-krb5.keytab

Keytab créé et extrait manuellement de AD.

Pas de renouvellement automatique.

Service de Serveur WAPT

Pour les Agents WAPT, le service Serveur WAPT :

  • Gère l’autorisation et l’enregistrement initial des Agents WAPT et signe les CSR des Agents WAPT.

  • Vérifie l’authenticité et l’intégrité des informations d’état envoyées par les Agents WAPT.

  • Autorise les connexions Websockets.

Pour la Console WAPT, le WAPT :

  • Gère l’authentification de l’Administrateur WAPT et les autorisations d’accès aux données renvoyées par les Agents WAPT.

Spécifications cryptographiques pour le service WAPT

Matériel cryptographique utilisé

Utilisation

Spécifications

Localisation

Création / renouvellement

PKI clé privée Agents WAPT.

Signes Agent CSR lors de l’enregistrement initial et CSR pour les certificats clients temporaires pour l’accès https à la Console.

2048 bits.

Format non chiffré :abbr:`PEM (Privacy Enhanced Mail) `.

Défini dans /opt/wapt/conf/waptserver.ini par la clé clients_signing_key de la section [options].

Défaut : /opt/wapt/conf/ca-<servername>.pem.

Initialisé lors de l’installation du Serveur WAPT (postconf).

CA PKI Agents WAPT.

Certificat avec lequel les certificats des Agents peuvent être vérifiés.

Ce certificat est utilisé par nginx pour l’authentification du certificat du client de l’Agent.

Certificat X509 auto-signé et épinglé avec clé RSA.

Format :abbr:`PEM (Privacy Enhanced Mail) `.

Durée 3 ans.

Défini dans /opt/wapt/conf/waptserver.ini par la clé clients_signing_certificate dans la section [options].

Défaut : /opt/wapt/conf/ca-<servername>.crt.

Initialisé lors de l’installation du Serveur WAPT (postconf).

CA PKI Administrateurs WAPT.

Certificats utilisés pour vérifier les certificats des administrateurs WAPT.

Ce certificat est utilisé par waptserver pour autoriser l’envoi de paquets au Serveur.

CertificatsX509 avec clé RSA.

Format :abbr:`PEM (Privacy Enhanced Mail) `.

Spécifications propres à l’organisation.

Défini dans /opt/wapt/conf/waptserver.ini par la clé trusted_signers_certificates_folder dans la section [options].

Fourni et géré par l’organisation.

CRL PKI Agents WAPT.

Stocke les numéros de série des certificats d’Agents WAPT interdits.

Format :abbr:`PEM (Privacy Enhanced Mail) `.

Durée 10 jours.

Défini dans /opt/wapt/conf/waptserver.ini par la clé clients_signing_crl dans la section [options].

Défaut : /var/www/ssl/ca-<servername>.crt.

Initialisé lors de la post-configuration.

Alimenté et re-signé à chaque fois qu’un Agent WAPT est supprimé.

Tâche automatique qui re-signe périodiquement la CRL.

Certificats connus.

Permet à la Console WAPT et aux Agents WAPT de reconstituer les chaînes de certificats (dans le cas d’autorités de certification intermédiaires).

Défini dans /opt/wapt/conf/waptserver.ini par la clé known_certificates_folder dans la section [options].

Défaut : /var/www/html/wapt/ssl/*.crt.

Les certificats sont automatiquement extraits des paquets lorsqu’ils sont envoyés au Serveur.

Les certificats associés aux administrateurs sont également extraits lors de l’enregistrement des comptes utilisateurs.

Compte administrateur secret.

Pour l’authentification initiale de la Console WAPT pour le compte désigné wapt_user.

Longueur minimale du mot de passe : 20 caractères.

Complexité vérifiée.

PBKDF2 dérivation de mot de passe avec 29000 itérations, hmac-sha256.

Défini dans /opt/wapt/conf/waptserver.ini par la clé wapt_password dans la section [options].

Initialisé lors de l’installation.

Peut être modifié à partir de la Console WAPT par un Administrateur WAPT authentifié avec le même compte.

Cookies de session secrets.

Authentifie les appels au Serveur WAPT API après une connexion correcte.

64 caractères ascii.

Défini dans /opt/wapt/conf/waptserver.ini avec la clé secret_key dans la section [options].

Réglé sur une valeur aléatoire lors de l’installation initiale.

Non renouvelé automatiquement.

Secret de cryptage du jeton.

Authentifie les connexions Websockets de l’Agent (comportement déprécié, désactivé dans la configuration de la TOE).

Authentifie le login pour l’application « Waptselfservice ».

Les jetons sont générés lors de la connexion au Serveur si la configuration du serveur autorise la méthode « jeton » ou si l’appel de connexion spécifie explicitement qu’il veut un jeton au lieu d’un cookie de session.

64 caractères ascii.

Défini dans /opt/wapt/conf/waptserver.ini avec la clé secret_key dans la section [options].

Réglé sur une valeur aléatoire lors de l’installation initiale.

Non renouvelé automatiquement.

Certificats de l’Agent WAPT.

Authentification et vérification de l’intégrité des données envoyées par les Agents WAPT.

Authentification des demandes de jetons websocket par les Agents WAPT (comportement déprécié, désactivé dans la configuration de la TOE).

Certificat X509 signé par CA PKI Agents WAPT.

Format :abbr:`PEM (Privacy Enhanced Mail) `.

Durée du défaut 3 ans.

Utilisation de la clé étendue : TLS Authentification du client Web.

Utilisation de la clé : Signature numérique.

Champ « host_certificate » Table « Hosts » dans la base de données wapt.

Certificat d’administrateur WAPT.

Liste des certificats personnels des administrateurs.

Certificat X509 signé par l”CA.

Format :abbr:`PEM (Privacy Enhanced Mail) `.

Durée du défaut 3 ans.

Utilisation de la clé étendue : TLS Authentification du client Web.

Utilisation de la clé : Signature numérique.

Champ « user_certificate » Table « WaptUsers » de la base de données wapt.

Créé à partir de la Console WAPT.

Attribué à un compte administrateur WAPTFonction « gestion des utilisateurs et des droits WAPT » de la Console WAPT.

Empreintes de certificats Administrateur WAPT.

Autorisation d’accès au Serveur WAPT API après authentification réussie du certificat du client par le Serveur Nginx si la méthode « ssl » est activée dans la configuration du Serveur (non activée dans la configuration de la WaptselSFervice).

empreinte sha1 du certificat de l’administrateur.

(Un sha1 est utilisé ici, car il s’agit de l’information fournie par le module d’authentification SSL de nginx).

Champ « user_fingerprint » Table « WaptUsers » de la base de données wapt.

Extrait du certificat de l’administrateur lors de l’attribution du certificat au compte dans la Console WAPT.

Spécifications cryptographiques du poste de travail de l’administrateur hébergeant la Console WAPT

Spécifications cryptographiques pour le poste de travail de l’administrateur hébergeant la Console WAPT

Matériel cryptographique utilisé

Utilisation

Spécifications

Localisation

Création / renouvellement

CA https Serveurs

Vérification du certificat https du Serveur WAPT.

Vérification Certificat https du dépôt WAPT

Stockage de certificats X509 au format PEM (Privacy Enhanced Mail) ` (extension :mimetype:.crt`).

Chaque fichier .crt peut contenir plusieurs Serveurs https approuvés CAs.

Le chemin vers le magasin de confiance est spécifié par l’attribut verify_cert dans le fichier wapt-get.ini de l’Agent WAPT.

Les fichiers sont stockés dans le répertoire %LOCALAPPDATA%waptconsolesslserver.

Lors du premier lancement de la Console WAPT, les magasins et la configuration de l’agent sont copiés.

CA système

Vérification du certificat pour les connexions https si l’attribut verify_cert est égal à 1

Magasin de certificats X509 au format :abbr:`PEM (Privacy Enhanced Mail) `.

Fichier %LOCALAPPDATA%icacert.pem

Extraction automatique à partir des magasins CA et ROOT de CERTSTORE du système CA de confiance utilisé pour vérifier les certificats https.

1h de cache

Paquets de clients et actions

Authentification des paquets importés ou édités

Un fichier de chaîne de certificats X509 au format :abbr:`PEM (Privacy Enhanced Mail) ` par :abbr:`CA (Autorité de Certification) approuvée.

Le premier certificat de chaque fichier est approuvé (utilisation de la clé : signature numérique), les autres sont des CA intermédiaires (contrainte de base : CA, utilisation de la clé : signature du certificat).

Défini dans le fichier ini %LOCALAPPDATA%waptconsolewaptconsole.ini Clé [<nom du référentiel>] public_certs_dir

Défaut : Certificat de l’administrateur WAPT

L’administrateur de WAPT copie les certificats pour approbation.

Certificat d’administrateur WAPT

Signature du paquet

Signature des actions à distance sur les Agents WAPT

authentification https sur le Serveur Nginx

Chaîne de certificats X509 au format :abbr:`PEM (Privacy Enhanced Mail) `

Le premier certificat est celui de l’administrateur, les autres sont des autorités de certification intermédiaires.

Caractéristiques du certificat d’administrateur WAPT :

Utilisation de la clé : Signature numérique, non-répudiation, chiffrement des données

Utilisation de la clé étendue : TLS Authentification du client Web

Si l’administrateur est autorisé par l’organisation à signer des paquets contenant du code python, le certificat doit également avoir :

Utilisation étendue des clés : Signature de code

%USERPROFILE%NPrivateN<keyname>.crt

Créé et renouvelé par l’organisation.

Clé privée de l’administrateur WAPT

Signature des paquets WAPT.

Signature des actions aux Agents WAPT

Signature par cRSA 2048 bits, format PKCS#8 codé pour le mot de passe. Dérivation du mot de passe PBKDF2 avec 800 itérations, cryptage hmac-sha256.AES-256-CBC

Type de signature de partage et de paquet : RSA-SHA256 sans remplissage

%USERPROFILE%NPrivateN<keyname>.pem

Créé par l’organisation.

Ticket Kerberos Session Windows Administrateur WAPT

Authentification initiale (login) au Serveur WAPT

Session Windows

Mot de passe de la clé

Décryptage de la clé privée de l’Administrateur WAPT pour signer les actions et les paquets

Conservé crypté dans l’espace mémoire de la Console WAPT par un secret éphémère également présent dans la mémoire de la Console WAPT et par un secret aléatoire spécifique à la session de l’utilisateur et stocké dans le répertoire privé de l’utilisateur.

Mot de passe du compte administrateur WAPT

Authentification initiale (login) au Serveur WAPT

idem

TOTP authentication key WAPT console

Second initial authentication factor (login) with the WAPT server

RFC6238, 160-bit key derived from a secret of 32 uppercase ascii characters. Sha1 derivation algorithm Duration of 30s 6-digit temporary token

In the otp_key field of the WaptUsers table on the WAPT server. In the administrator’s authentication device.

From the console, the authenticated user can add or reset the key.

Certificat de la Console WAPT

Authentification https du client au Serveur Nginx pour la session de la Console.

Certificat X509 temporaire au format PEM PKI Agents WAPT. Période de validité égale à la durée des cookies de session.

Répertoire temporaire de l’utilisateur

Signé par les CA PKI Agents WAPT sur le serveur après une authentification Kerberos réussie de la Console.

Clé privée Console WAPT

Authentification https du client au Serveur Nginx pour la session de la Console.

Clé RSA temporaire cryptée de 2048 bits. Format PKCS#8 crypté par un mot de passe aléatoire de 120 caractères crypté en mémoire par la clé de session. Dérivation du mot de passe PBKDF2 avec 800 itérations, hmac-sha256. Chiffrement AES-256-CBC

Répertoire temporaire de l’utilisateur

Généré par la Console à chaque fois que vous vous connectez.

Spécifications cryptographiques pour les postes de travail clients équipés de l’Agent WAPT

Agent WAPT

Spécifications cryptographiques pour les postes de travail clients équipés de l’Agent WAPT

Matériel cryptographique utilisé

Utilisation

Spécifications

Localisation

Création / renouvellement

CA https Serveurs.

Vérification du certificat https du Serveur WAPT. Vérification du certificat https du dépot WAPT.

Stockage de certificats X509 au format PEM (Privacy Enhanced Mail) ` (extension :mimetype:.crt`).

Chaque fichier .crt peut contenir plusieurs Serveurs https approuvés CAs.

Le chemin d’accès au magasin de confiance est spécifié par l’attribut verify_cert dans le fichier wapt-get.ini de l’Agent.

Les stocks sont stockés dans le répertoire C:program files (x86)Nwaptsslserver.

Déployé initialement lorsque le WAPTagent est installé sur le poste de travail du client.

Ajouté ou mis à jour par paquets WAPT de configuration dynamique.

Supprimé par un paquet WAPT.

CA système.

Vérification du certificat pour les connexions https si l’attribut verify_cert est égal à True.

Magasin de certificats X509 au format :abbr:`PEM (Privacy Enhanced Mail) `.

Fichier %localappdata%icacert.pem.

Extraction automatique à partir des magasins CA et ROOT de CERTSTORE du système CA de confiance utilisé pour vérifier les certificats https.

1h de cache.

Paquets de clients et actions.

authentification et autorisation des paquets.

Authentification et autorisation des actions.

Chaîne de certificats X509 au format :abbr:`PEM (Privacy Enhanced Mail) `.

Le premier certificat de chaque fichier est approuvé, les autres sont des CA intermédiaires.

Type de signature pour les actions et les paquets : Algorithme RSA-SHA256 sans remplissage appliqué au condensat sha256 des données sérialisées.

La fonction « Code signing » du certificat est utilisée pour autoriser ou non l’exécution du code python dans le paquet.

C:program files (x86)waptssl*.crt.

Déployé initialement lorsque l’Agent WAPT est installé sur le poste de travail du client.

Ajouter ou mettre à jour les paquets WAPT configurés dynamiquement.

Processus de signature d’un paquet WAPT.

Certificats de l’Agent WAPT.

Authentification https du client au Serveur Nginx Signature des données d’inventaire.

Certificat X509 au format PEM PKI Agents WAPT.

C:program files (x86)waptprivate<agent UUID>.crt.

Signé lorsqu’un Agent WAPT est enregistré après une authentification Kerberos réussie de l’Agent.

Clé privée Agent WAPT.

Authentification https du client au Serveur Nginx Signature des données d’inventaire.

Clé RSA 2048 bits non chiffrée.

C:program files (x86)waptprivate<agent UUID>.pem.

Généré par l’Agent WAPT lors de l’installation ou lorsque l”:abbr:`UUID (Universally Unique IDentifier)`de l’Agent est modifié.

Agent secret WAPT.

Chiffrer les jetons d’authentification pour les applications locales.

Chaîne aléatoire de 64 caractères.

C:NProgram Files (x86)NwaptNprivateNsecret_key.

Généré aléatoirement lors de l’installation de l’Agent.

Applications client locales : waptexit, waptself, wapttray

Spécifications cryptographiques pour les applications côté client : waptexit, waptself, wapttray

Matériel cryptographique utilisé

Utilisation

Spécifications

Localisation

Création / renouvellement

Token Applications locales

Authentification des actions locales sur l’Agent WAPT initiées à partir d’applications locales (sur la même machine que l’Agent WAPT).

Jeton JWT daté Algorithme : HS512 Validité : 24 heures Contenu : nom d’utilisateur et groupes.

Mémoire d’application locale.

Après avoir authentifié les applications locales auprès de l’Agent WAPT, ce dernier génère un jeton pour authentifier les actions suivantes.

Ticket Kerberos Utilisateur de la session Windows.

Session Windows.

Local WAPT Agent https server certificate

Encryption and authentication of https connections from local wapt-get, waptexit, waptself, wapttray clients on the local wapt service

X509 certificate with RSAFormat PEM key. Valid for 2 days

C:Program Files (x86)waptpubliclocalservice.crt

When the local wapt (the local service is restarted every day)

Secret token transmission

Ephemeral encryption of the « Local Applications Token » when it is temporarily stored on the file system during login to the local service, clients

aes-cbc encryption and pkcs#7 padding. Random string of 64 characters minimum passed in the login request. The encryption key is derived from the secret by pbkdf2 hmac sha256 (10000 iterations)

Generated by each /login or /localtoken request by local clients.

FS1. Communications sécurisées

L’Agent WAPT, le Serveur WAPT et le Console WAPT utilisent à la fois du code Python interprété et du code compilé Lazarus / FPC.

Le code Lazarus / FPC utilise le framework mORMot (>= 2.0.4383) pour la gestion du protocole https, la gestion du client kerberos, les opérations sur les certificats X509, et les opérations cryptographiques (Hash, RSA).

Le framework mORMot est lui-même configuré et lié pour utiliser la bibliothèque OpenSSL pour les sockets TLS, les opérations RSA asymétriques (génération de clés, cryptage, décryptage, signature, vérification), et les opérations de certificats X509.

Le code Python (Agent WAPT, Serveur WAPT, paquets WAPT) est lié aux mêmes bibliothèques OpenSSL 1.1.1s 1 Nov 2022 et utilise les modules suivants :

  • les modules python cryptographie==3.3.2 et pyOpenSSL==20.0.1 liés à openssl 1.1.1s : utilisés pour toutes les opérations cryptographiques RSA, les générations de certificats X509 et les vérifications de signatures dans l’Agent WAPT en python.

  • winkerberos (agent Windows) / Kerberos (agent Linux) et requests-kerberos : utilisés pour authentifier l’Agent WAPT lorsqu’il s’enregistre pour la première fois auprès du Serveur WAPT.

  • Certifi : le paquet de certificats de l’autorité utilisé pour la validation des certificats est le magasin de certificats du système d’exploitation qui exécute l’Agent, la Console ou le Serveur (certstore Windows sous Windows et /etc/ssl/certs/ sous Redhat).

Communications between WAPT agents and the WAPT server use the https protocol. The Nginx server uses the TLS layer of the system. The certificate used to encrypt the https connection is generated and configured by the organisation as part of its internal https PKI.

Communications between local clients (wapt-get, waptself, waptexit, wapttray) use the https protocol. The WAPT agent’s local https server uses the Openssl TLS layer installed with the agent.

FS2. Identification, authentification et contrôle d’accès

Enregistrement initial de l’Agent WAPT

Après l’installation, l’Agent WAPT effectue un enregistrement initial sur le Serveur WAPT. L’enregistrement initial correspond à la création d’un certificat client, qui sera utilisé pour authentifier l’Agent WAPT :

Authentification de l’Agent sur le Serveur WAPT (Kerberos ou login/mot de passe).

L’agent crée une paire de clés publiques/privées et envoie un CSR au Serveur WAPT.

Le Serveur signe le CSR avec la CA « machine ».

Enregistrement par le Serveur du certificat public de l’Agent et de son identifiant (Bios UUID par défaut).

La PKI CA des Agents WAPT est une CA interne de WAPT utilisée uniquement pour signer les CSR lors de l’enregistrement des postes de travail et pour valider l’authentification des Agents WAPT sur le Serveur WAPT par la suite. Il est généré lors de l’installation du Serveur WAPT avec une clé de 2048 bits. Il est indépendant de la PKI CA de l’Administrateur WAPT ou du client https CA.

Un fichier CRL est généré et rempli lorsqu’une machine est supprimée de l’inventaire WAPT.

Les Agents PKI WAPT CA et PKI WAPT CRL sont intégrés dans le service Nginx, qui gère l’authentification des certificats des clients.

Cela signifie que seules les machines qui ont été correctement enregistrées sur le Serveur WAPT et qui n’ont pas été supprimées peuvent accéder au dépôt de paquets.

L’URL d’enregistrement initial du poste de travail n’est pas protégée par l’authentification du certificat du client Nginx.

Pour l’authentification initiale du poste de travail lors de l’enregistrement, le poste de travail utilise le compte Kerberos de la machine pour récupérer un ticket de service pour le service WAPT, qui sera ensuite utilisé pour authentifier l’agent pour l’enregistrement avec le serveur. Une fois le poste de travail enregistré et le certificat client signé, l’Agent WAPT n’utilise plus Kerberos, mais uniquement l’authentification par certificat sur le Serveur WAPT.

Connexion websocket de l’Agent

Les connexions websockets de l’Agent se font sur le même canal https que les autres connexions, avec une mise à niveau après le premier échange. L’Agent WAPT utilise son certificat d’Agent WAPT pour s’authentifier sur le Serveur Nginx. Si l’authentification échoue, l’Agent tente de se réenregistrer (voir le paragraphe précédent).

Pour rappel, aucune connexion n’est établie entre le Serveur et les Agents.

Connexion de l’Agent pour un retour d’information sur l’inventaire

Les inventaires sont téléchargés via une connexion https. L’authentification est effectuée avec le certificat de l’Agent WAPT par le Serveur Nginx. En cas d’échec de l’authentification, le poste de travail tentera de se réenregistrer.

Connexion des Agents pour le téléchargement des paquets

l’index des paquets et les paquets sont téléchargés via la connexion https. L’authentification est effectuée avec le certificat de l’Agent WAPT par le Serveur Nginx.

Authentification du Serveur par les Agents

Le client authentifie le Serveur WAPT à l’aide du Serveur https CA.

Authentification du (des) dépôt(s) par les Agents

Le poste client authentifie le référentiel WAPT à l’aide du Serveur https CA.

Actions à distance sur les Agents

Il est possible, à partir de la Console WAPT, d’envoyer des actions aux Agents WAPT, telles que « mettre à jour la liste des mises à jour disponibles », « lancer l’installation des mises à jour disponibles », etc. Ces différentes actions sont initiées à partir de la Console WAPT et relayées par le Serveur WAPT vers les agents via la websocket existante. Ces différentes actions sont initiées par la Console WAPT et relayées par le Serveur WAPT vers les Agents via le websocket existant.

La communication entre la Console et le Serveur WAPT se fait via le canal https. La communication entre le Serveur WAPT et l’Agent WAPT s’effectue par l’intermédiaire du websocket préalablement mis en place par l’Agent.

Authentification de l’administrateur sur la Console WAPT

Après l’installation du Serveur WAPT, la première authentification est effectuée en utilisant le compte « admin » et le mot de passe saisi lors de l’exécution de postconf. Ce compte est utilisé pour terminer la configuration et définir ACL pour les comptes d’administration de WAPT définis dans Active Directory. Après cette configuration initiale, le compte ACL « admin » peut être assigné à des comptes Active Directory nommés.

L’authentification sur le Serveur WAPT utilise ces comptes de domaine.

A second TOTP factor is then defined for each account and is requested during the authentication phase.

En outre, l’accès au Serveur WAPT et au référentiel WAPT est protégé sur le Serveur Nginx par une authentification par certificat client basée sur les Agents WAPT PKI CA.

FS3. Protection des données

Les fonctions de protection des données n’utilisent pas de procédures cryptographiques et reposent entièrement sur la sécurité du système de fichiers.

FS4. Fonctions cryptographiques : Authenticité et intégrité

Signature des attributs du fichier de contrôle

Lors de la signature d’un paquet WAPT, les attributs sensibles du paquet sont répertoriés dans l’attribut signed_attributes.

Les attributs énumérés dans signed_attributes sont signés avec la clé privée de l’administrateur et la signature est stockée dans l’attribut signature du fichier de contrôle.

Le certificat associé à cette clé privée est stocké dans le fichier :<wapt>certificate.crt à l’intérieur du paquetage WAPT.

Sur le Serveur WAPT, lors de l’opération wapt-scanpackages (déclenchée par l’ajout ou la suppression d’un paquet), l’index Packages est régénéré.

Le Serveur WAPT extrait le certificat du signataire de chaque paquet et l’ajoute au fichier ZIP Packages, dans le répertoire <wapt>/ssl. Chaque certificat est nommé avec son empreinte digitale codée en hexadécimal.

Lorsque l’Agent WAPT effectue une mise à jour, il télécharge le fichier d’index des paquets, qui contient à la fois les attributs signés de tous les paquets et les certificats des signataires. Si le certificat du signataire des attributs d’un paquet est approuvé (ce qui signifie que le certificat est signé par une autorité de certification ou que le certificat lui-même est fiable) ET que le certificat du signataire peut vérifier la signature des attributs, le paquet est ajouté à l’index des paquets disponibles, sinon il est ignoré.

Signature des paquets WAPT

Lorsqu’un administrateur ou un développeur de paquet construit une WAPT :

Un fichier <wapt>/manifest.sha256 est créé, qui liste les sommes de contrôle de tous les fichiers du paquet.

Un fichier signature.sha256 crypté avec la clé privée est alors créé dans le dossier WAPT, contenant la somme de contrôle du fichier <wapt>/manifest.sha256.

Tous les fichiers sont archivés au format ZIP avec l’extension .wapt.

Lorsqu’un Agent WAPT télécharge un paquet WAPT, il vérifie que le fichier signature.sha256 a été signé avec la clé privée correspondant au certificat <wapt>/certificate.crt du paquet.

L’Agent WAPT vérifie ensuite que le certificat (ou la chaîne de certificats) certificate.crt a été signé avec une clé privée correspondant à l’un des certificats du dossier <wapt>ssl.

L’Agent WAPT vérifie ensuite la somme de contrôle de tous les fichiers du paquet (à l’exception des fichiers signature.sha256 et certificate.crt) et s’assure que la somme de contrôle correspond au fichier <wapt>manifest.sha256 contenu dans le paquet.

Si l’une de ces étapes n’est pas validée, cela signifie qu’un fichier a été modifié / ajouté / supprimé. Dans ce cas, l’exécution de setup.py est annulée.

Le paquet défectueux est alors supprimé du cache local ; l’événement est signalé dans les journaux de l’Agent.

FS5. Protection contre les manipulations

Signature « Microsoft Authenticode » pour les binaires et les programmes d’installation.

Nous utilisons le mécanisme standard intégré dans Windows. Les binaires sont signés dans la chaîne de construction avec un certificat Extended Validation « Code signing » délivré par une autorité validée par Microsoft.

Le Serveur d’horodatage utilisé est « http://timestamp.sectigo.com ».

Vérification du hachage de l’installateur avec waptdeploy

L’utilitaire waptdeploy est responsable du lancement silencieux de l’installateur waptagent.exe avec des droits élevés.

Pour garantir l’authenticité de l’installateur, nous vérifions que l’empreinte sha1 du certificat de signature « Authenticode » de l’installateur est l’une de celles utilisées par Tranquil IT. Cette liste est intégrée dans le binaire waptdeploy.exe lors de la compilation de waptdeploy.exe. L’intégrité de cette liste est assurée par la signature du binaire waptdeploy.exe.

L’installateur waptagent.exe est l’agrégation d’un binaire standard waptsetup.exe (signé par Tranquil IT) et d’une partie variable json pour la configuration spécifique à l’organisation (en particulier les URL du Serveur WAPT et du référentiel, les certificats de paquets autorisés, les certificats https de confiance). Pour garantir l’intégrité de l’ensemble « Installer » + configuration spécifique, une empreinte sha256 est fournie comme argument à l’utilitaire waptdeploy. Après avoir téléchargé waptagent.exe et avant de l’exécuter en mode silencieux, waptdeploy vérifie que l’empreinte digitale de waptagent.exe correspond à celle fournie en argument. L’intégrité de l’argument –hash est assurée par la ACL du GPO dans lequel cette ligne de commande est spécifiée. Il est de la responsabilité de l’administrateur de l’organisation de s’assurer que l’empreinte digitale de l’installateur dans le GPO est correcte.

FS6. Journalisation

Demandes de signature envoyées aux Agents WAPT

Les commandes sont signées par la Console WAPT avant d’être envoyées individuellement à chaque Agent WAPT.

Tous les attributs des demandes d’action sont signés :

l’UUID de l’Agent concerné ;

l’action (par exemple, l’installation) ;

arguments (par exemple tis-firefox) ;

demande d’horodatage.

Le certificat associé à la signature est également transmis. Lorsque l’Agent WAPT reçoit une demande, il vérifie :

Que l’UUID mentionné dans l’action correspond à son UUID.

Que le certificat associé provient d’une autorité présente dans son répertoire <wapt>/ssl.

Que la demande est correctement signée par la clé du certificat.

La date de signature doit être comprise dans l’intervalle de temps défini dans la configuration de l’Agent WAPT.

Informations sur le traitement des données

Aucune