Passer au contenu principal

Mécanisme de sécurité du transfert OneKey

Mis à jour aujourd’hui

OneKey Transfer est une fonctionnalité de l'application OneKey qui déplace en toute sécurité les clés privées de votre portefeuille logiciel entre vos appareils. Ce guide explique les multiples niveaux de sécurité qui protègent vos données.

Note sur les portefeuilles : Cette fonctionnalité est actuellement réservée aux portefeuilles logiciels uniquement. La prise en charge des portefeuilles matériels est plus complexe et sera ajoutée dans une version future.


Principes fondamentaux

Notre sécurité repose sur trois promesses clés :

  • Open-Source et digne de confiance

    Le code de notre application et de notre serveur est public. N'importe qui peut l'examiner pour vérifier nos affirmations de sécurité.

  • Chiffrement de bout en bout (E2EE)

    Vos données sont chiffrées sur votre appareil et ne sont déchiffrées que sur l'appareil de destination. Personne entre les deux – pas même OneKey – ne peut les lire.

  • Zéro connaissance du serveur

    Notre serveur sert uniquement de contrôleur de trafic pour connecter vos appareils. Il n'a aucun accès ni aucune connaissance des données transférées.


Comment la clé de chiffrement est construite

Vos données sont verrouillées avec une clé composée de plusieurs parties indépendantes. Un attaquant devrait voler toutes les parties à différents endroits simultanément pour même tenter de casser le chiffrement.

1. Clé partagée dynamique (ECDHE)

  • Ce que c'est : Une clé partagée temporaire, utilisée une seule fois, créée directement entre vos deux appareils au début de la session.

  • Point clé : Cette clé n'est jamais transmise ni vue par le serveur. Elle sécurise la connexion même si votre code d'appariement est intercepté (par exemple, via un enregistrement d'écran).

2. Le code d'appariement

  • 10 premiers caractères : Envoyés au serveur pour identifier quels appareils souhaitent se connecter.

  • 40 derniers caractères : Utilisés comme ingrédient secret pour la clé de chiffrement finale. Cette partie n'est jamais envoyée au serveur.

3. Ingrédients secrets supplémentaires

  • Depuis votre appareil (local) : Le mot de passe de verrouillage de votre appareil, un nombre aléatoire pour le transfert, un identifiant unique pour votre instance d'application et un secret d'application intégré (sel).

  • Depuis le cloud (serveur) : Un identifiant de connexion temporaire et un autre nombre aléatoire généré par le serveur pour la session.

En bref, cette composition de clé multi-sources crée une barrière de sécurité incroyablement élevée. Pour avoir une chance de déchiffrer vos données, un attaquant devrait simultanément compromettre le serveur (pour détourner des données, obtenir les parties de clé côté cloud et falsifier la clé ECDHE via une attaque de l'homme du milieu) ET enregistrer votre écran d'application (pour voler le code d'appariement et d'autres parties de clé locales).


Défenses et vérifications

Nous utilisons plusieurs mesures actives pour bloquer les attaques et garantir que vous avez le contrôle.

Protection côté serveur

  • Anti-force brute :

    • Limitation de débit : Un seul appareil ne peut faire une requête qu'une fois toutes les 3 secondes, empêchant les attaques par force brute.

    • Limites de tentatives : Le code d'appariement ne peut être essayé que 10 fois. Après 10 échecs, la session est terminée.

Vérification contrôlée par l'utilisateur

  • Vérification du mot de passe de l'écran de verrouillage

    • Ce que vous faites : Vous devez entrer le mot de passe de votre téléphone pour autoriser le transfert.

    • Pourquoi c'est important : Cela garantit que quelqu'un qui prend votre téléphone déverrouillé ne peut pas voler vos clés.

  • Vérification physique à 6 chiffres

    • Ce que vous faites : Après l'appariement, vous devez confirmer physiquement qu'un code à 6 chiffres correspond sur les écrans de vos deux appareils.

    • Pourquoi c'est important : Cela arrête une attaque de l'homme du milieu. Un pirate ne peut pas terminer le transfert car il ne peut pas voir le code sur votre deuxième appareil.

  • Code d'appariement à usage unique

    • Ce que c'est : Le code d'appariement expire après une utilisation réussie.

    • Pourquoi c'est important : Ceci offre une défense de « connexion préventive ». Si un pirate vole votre code et se connecte en premier, votre propre tentative de connexion légitime déconnectera de force le pirate, garantissant que seul vous pouvez procéder.

Options avancées

Grâce à notre code open-source, vous pouvez renforcer davantage la sécurité et la confidentialité de vos transferts de données :

  • Auto-hébergez votre serveur : Déployez notre code serveur sur votre propre serveur, puis connectez-vous en sélectionnant l'option « Serveur personnalisé » dans l'application. Cela vous donne un contrôle total sur vos données.

  • Transfert LAN (à venir) : Dans une version future, l'application de bureau OneKey pourra agir comme un relais de réseau local (LAN). Cela permettra à vos appareils de transférer des données sans jamais toucher à Internet public, atteignant une véritable isolation physique.

Avez-vous trouvé la réponse à votre question ?