Votre mot de passe n'est jamais stocké
Mot de passe & Dérivation de clé
Lors de la création de votre compte, votre mot de passe n'est jamais stocké — même sous forme chiffrée. Il est utilisé pour dériver une clé de chiffrement unique pour vos données. Cela signifie : même si l'intégralité de notre base de données était volée, votre mot de passe ne pourrait pas être reconstruit à partir de celle-ci. Lors de la connexion, le même processus est répété pour dériver votre clé afin de déchiffrer vos données.
Nerd Info
Votre mot de passe est traité avec Argon2id — le vainqueur de la Password Hashing Competition (PHC) et la recommandation actuelle d'OWASP. Argon2id est une fonction memory-hard qui nécessite une quantité significative de RAM pour le calcul. Cela rend les attaques par force brute sur GPU ou ASIC extrêmement coûteuses. La clé dérivée (KEK — Key Encryption Key) chiffre votre DEK personnel (Data Encryption Key), qui chiffre à son tour toutes les données sensibles. Le mot de passe lui-même n'est jamais persisté.
Connexion sécurisée & Protection de session
Authentification & Sessions
La connexion est protégée contre les attaques automatisées. Chaque soumission de formulaire est validée pour s'assurer qu'elle s'est produite à l'intérieur de l'application — des sites tiers ne peuvent pas soumettre des formulaires silencieux en votre nom. Après une connexion réussie, votre session est établie de manière sécurisée et liée à votre navigateur.
Nerd Info
Toutes les requêtes modifiant l'état sont protégées par des tokens CSRF (pattern Synchronizer Token). Les cookies de session sont définis avec les flags HttpOnly, Secure et SameSite=Strict, ce qui empêche l'accès JavaScript et la soumission cross-site. Les ID de session sont régénérés à la connexion pour prévenir les attaques de fixation de session. Les sessions sont stockées côté serveur ; le client ne détient qu'un token de session opaque.
Qu'est-ce que l'AES ?
Standard de chiffrement
AES — l'Advanced Encryption Standard — est l'algorithme de chiffrement symétrique le plus utilisé au monde. Il est utilisé par les banques, hôpitaux, gouvernements et armées du monde entier pour protéger les données sensibles. Pensez-y comme à une serrure à combinaison extrêmement complexe : avec la bonne clé, les données s'ouvrent immédiatement. Sans elle, le déchiffrement prendrait plus longtemps que l'âge de l'univers — même en combinant toute la puissance de calcul de la Terre.
Nerd Info
AES est un algorithme de chiffrement par blocs symétrique, standardisé par le NIST en 2001 (FIPS 197). Il opère sur des blocs de 128 bits et supporte des tailles de clé de 128, 192 et 256 bits. MyGuns utilise AES en mode GCM (Galois/Counter Mode), qui fournit à la fois confidentialité et authenticité — toute manipulation des données chiffrées est détectable. Chaque opération de chiffrement utilise un IV (Initialization Vector) aléatoire de 96 bits pour garantir que des textes en clair identiques produisent des textes chiffrés différents.
AES-128, AES-192 et AES-256
Niveaux de chiffrement
Les trois variantes AES sont considérées comme sûres à des fins pratiques. La différence réside dans la longueur de la clé et le nombre de cycles de traitement. Une clé plus longue signifie plus de combinaisons qu'un attaquant devrait essayer, et plus de cycles signifie plus de transformations — rendant le chiffrement plus résistant aux attaques cryptanalytiques. Même AES-128 prendrait des milliards d'années à craquer avec la technologie actuelle ou prévisible.
| Niveau |
Longueur de clé |
Cycles |
Sécurité |
Disponible dès |
| AES-128-GCM |
128 bit |
10 |
Très élevée |
Free & supérieur |
| AES-192-GCM |
192 bit |
12 |
Extrême |
Plus & supérieur |
| AES-256-GCM ⭐ |
256 bit |
14 |
Militaire |
Pro |
Nerd Info
AES-128 utilise 10 cycles de substitution-permutation, AES-192 en utilise 12 et AES-256 en utilise 14. La complexité théorique par force brute est respectivement 2^128, 2^192 et 2^256 opérations. Pour comparaison : 2^128 ≈ 3,4 × 10^38 — bien au-delà de toute capacité de calcul imaginable avec les ordinateurs classiques. AES-256 offre également une marge de sécurité supplémentaire contre les potentielles avancées futures en cryptanalyse et est prescrit par la NSA Suite B pour le niveau de classification TOP SECRET.
GCM — Chiffrement avec vérification d'intégrité intégrée
Chiffrement authentifié
MyGuns ne chiffre pas seulement vos données — il vérifie également si quelqu'un les a manipulées. Même si un seul bit de vos données stockées était modifié par un attaquant, le déchiffrement échouerait immédiatement et l'application rejetterait les données. Cette protection est intégrée dans chaque champ que nous stockons.
Nerd Info
GCM (Galois/Counter Mode) combine le chiffrement AES en Counter Mode avec un tag d'authentification GHASH (MAC de 128 bits). C'est donc un schéma AEAD (Authenticated Encryption with Associated Data). Le tag d'authentification est calculé sur le texte chiffré et les données associées optionnelles. Toute modification — même un seul bit flip — produit une divergence du tag, rendant la manipulation détectable. Les champs MyGuns sont ainsi protégés contre l'écoute passive et la manipulation active du texte chiffré.
SSL/TLS — Chiffré pendant la transmission
Chiffrement du transport
Chaque octet transmis entre votre navigateur et nos serveurs est chiffré. Cela signifie : même si quelqu'un surveillait votre connexion réseau — par exemple sur un Wi-Fi public — il ne verrait que des données incompréhensibles. Le symbole du cadenas dans la barre d'adresse de votre navigateur confirme que cette protection est active.
Nerd Info
La connexion est sécurisée avec TLS 1.2 ou TLS 1.3 (Transport Layer Security). TLS utilise la cryptographie asymétrique (RSA ou ECDSA) pour le handshake initial et l'échange de clés, puis passe à l'AES symétrique pour la transmission réelle des données. TLS 1.3 offre également la Forward Secrecy via Diffie-Hellman éphémère (ECDHE), ce qui signifie : même si la clé privée du serveur était compromise ultérieurement, les sessions passées ne peuvent pas être déchiffrées.
Partage de session & Accès accompagnateurs
Chiffrement multi-utilisateur
Lorsque vous invitez un accompagnateur à une session de tir, il peut enregistrer ses propres tirs et voir les informations partagées de la session — mais n'obtient jamais accès à votre inventaire personnel d'armes, vos données de munitions ou vos notes privées. Les données personnelles de chaque utilisateur restent protégées par leur propre clé. Les données de session partagées sont accessibles à tous les participants via une clé de session séparée.
Nerd Info
Chaque session de tir reçoit sa propre clé de session AES lors de la création. Quand un accompagnateur rejoint, la clé de session est chiffrée avec son DEK personnel et stockée comme enregistrement séparé — chaque participant détient sa propre copie chiffrée de la clé de session. Les aperçus d'armes visibles pendant une session partagée sont rechiffrés avec la clé de session, ainsi tous les participants peuvent les afficher — sans révéler le DEK du propriétaire ou l'image originale. Conceptuellement, c'est similaire à l'Envelope Encryption telle qu'utilisée dans les systèmes Cloud KMS.
Clé de récupération
Accès d'urgence
Si vous oubliez votre mot de passe, votre clé de récupération est le seul moyen de retrouver l'accès à vos données. Elle est générée une seule fois lors de la configuration et devrait être conservée dans un endroit sûr — par exemple dans un gestionnaire de mots de passe ou imprimée et mise sous clé. Sans elle et sans votre mot de passe, vos données ne peuvent pas être récupérées — ni par vous, ni par nous.
Nerd Info
La clé de récupération est un token aléatoire cryptographiquement sûr qui — comme votre mot de passe — peut être utilisé pour dériver votre KEK (Key Encryption Key) et ainsi déchiffrer votre DEK. Elle est stockée comme version séparée chiffrée de votre DEK, protégée par une clé dérivée avec Argon2id à partir du token de récupération. Cela signifie : la clé de récupération offre le même accès mathématique que votre mot de passe — mais c'est un secret séparé, ainsi compromettre l'un ne met pas l'autre en danger.