Confidentialité et sécurité
VoxelBench est conçu avec la confidentialité à l'esprit. Vous contrôlez quelles données sont collectées et partagées.
Anonymisation des données
Lorsque les résultats de benchmark sont soumis à voxelbench.com, vous choisissez le niveau d'informations identifiantes incluses.
Niveaux d'anonymisation
Configurable dans config.yml :
anonymous:
anonymization-level: PARTIAL # NONE, PARTIAL ou FULL
NONE - Pas d'anonymisation
Toutes les données sont envoyées telles quelles. Inclut :
- Adresses IP complètes (IPv4 & IPv6)
- Adresses MAC complètes
- Numéros de série des disques
- Nom d'hôte complet
- Noms complets des modèles de disque
- Liste complète des plugins avec versions
- Flags Java complets avec chemins
Non recommandé sauf si vous faites entièrement confiance au backend et souhaitez un maximum de données pour la comparaison.
PARTIAL - Recommandé
Les identifiants sensibles sont hachés ou masqués :
| Donnée | Traitement |
|---|---|
| Adresses IP | 2 derniers octets masqués (ex. 192.168.xxx.xxx) |
| Adresses MAC | Hash SHA-256 (16 caractères) |
| Numéros de série | Hash SHA-256 (16 caractères) |
| Nom d'hôte | Hash SHA-256 (16 caractères) |
| Nom du CPU | Envoyé tel quel (nécessaire pour la comparaison) |
| Modèles de disque | Envoyés tels quels (ex. "Samsung 980 PRO") |
| Liste des plugins | Envoyée telle quelle |
| Version Java | Envoyée telle quelle |
| Nom de l'OS | Envoyé tel quel |
C'est le niveau par défaut et recommandé. Il offre un bon équilibre entre confidentialité et comparaisons matérielles utiles.
FULL - Confidentialité maximale
Tout ce qui est dans PARTIAL, plus des protections supplémentaires :
| Donnée | Traitement |
|---|---|
| Modèles de disque | Remplacés par un type générique (ex. "Generic SSD", "Generic NVMe") |
| Liste des plugins | Supprimée (seul le nombre total est envoyé) |
| Interfaces réseau | Noms anonymisés (ex. eth_a1b2) |
| Flags Java | Chemins anonymisés (ex. /home/<user>/...) |
Conserve toujours le nom du CPU, la quantité de RAM, la version Java et le nom de l'OS pour la comparaison de base.
Ce qui est toujours envoyé
Quel que soit le niveau d'anonymisation, les éléments suivants sont toujours inclus dans les rapports :
- Résultats de benchmark : TPS, MSPT, débit et toutes les métriques de test
- Nom et fabricant du CPU : Nécessaire pour des comparaisons matérielles significatives
- Quantité de RAM : Mémoire totale et disponible
- Version Java : Version et éditeur du JRE
- Nom de l'OS : Nom et version du système d'exploitation
- Type de serveur : Spigot, Paper ou Folia
Sécurité de l'authentification
Système challenge-réponse
Lors de la soumission de benchmarks, VoxelBench utilise un système d'authentification challenge-réponse :
- Le plugin demande un token challenge unique au backend
- Le challenge a un TTL (durée de vie)
- Le plugin signe le challenge en utilisant HMAC-SHA256
- Le rapport signé est soumis au backend
- Le backend vérifie la signature avant d'accepter le rapport
Identité du serveur
Chaque serveur a un hash d'identité unique généré à partir de :
- Adresses MAC des interfaces réseau
- Nom d'hôte
- Numéros de série des disques
Ce hash permet de suivre votre serveur entre les soumissions de benchmarks sans révéler les identifiants matériels réels (avec les niveaux PARTIAL ou FULL).
Authentification JWT
Lorsque le serveur est lié à un compte VoxelBench (via /bench link), le plugin utilise des tokens JWT pour les requêtes authentifiées. Le token est stocké dans config.yml sous authentication.token.
Ne partagez jamais votre token d'authentification. Il permet de soumettre des rapports au nom de votre serveur.
Stockage des données
Données locales
VoxelBench stocke les éléments suivants localement dans plugins/VoxelBench/ :
config.yml: Configuration incluant le token d'authentificationreports/: Rapports de benchmark sauvegardés (fichiers JSON)server-identity.yml: Hash d'identité du serveurcertificates/: Certificats SSL (si le monitoring HTTPS est activé)
Données distantes
Les données envoyées à voxelbench.com incluent uniquement :
- Résultats et métriques de benchmark
- Informations matérielles du serveur (selon le niveau d'anonymisation)
- Hash d'identité du serveur
Rate Limiting
Pour prévenir les abus :
- Cooldown local : 30 minutes entre les benchmarks (configurable)
- Rate limiting backend : Protection supplémentaire côté serveur
- Les joueurs avec la permission
voxelbench.start.forcepeuvent ignorer le cooldown local
Obfuscation
Les builds de production de VoxelBench sont obfusqués pour :
- Protéger contre la rétro-ingénierie basique
- Empêcher l'extraction des endpoints API et des secrets d'authentification
- Réduire la taille du fichier JAR