Les passkeys sont une approche sécurisée et conviviale de l'authentification qui peut également être utilisée pour créer et stocker en toute sécurité des portefeuilles cryptographiques, grâce à leur utilisation de la cryptographie à courbes elliptiques.
Dans cet article, nous couvrirons le fonctionnement des passkeys, explorerons les risques liés à l'utilisation des passkeys pour les portefeuilles de crypto-monnaie, et plongerons dans la façon dont l'abstraction de compte permet l'utilisation de passkeys lorsqu'ils sont combinés avec des contrats intelligents.
Les passkeys sont un moyen simple et sécurisé pour les utilisateurs de se connecter à une application sans avoir à stocker des mots de passe sensibles ou à se souvenir de leurs informations de connexion. Au lieu de cela, les utilisateurs créent et accèdent à leurs comptes en utilisant des méthodes familières telles que les biométries comme Face ID ou Touch ID.
Cela permet aux utilisateurs de se connecter facilement et d'interagir avec des applications de manière autorisée sans jamais stocker d'informations sensibles; offrant une expérience fluide et une sécurité supplémentaire contre les violations de données et les vecteurs d'attaque courants tels que le phishing.
Sur la plupart des appareils, tels que l'iPhone, les passkeys sont stockés à l'intérieur d'un matériel spécialisé appelé le Enclave sécurisée; un environnement dédié et isolé conçu pour protéger les données sensibles même si le processeur principal est compromis.
Les passkeys utilisent cryptographie à clé publiquegénérer une paire de clés publique-privée sur l'appareil de l'utilisateur, composée de deux clés :
Comme portefeuilles blockchain, la clé privée d'un passkey peut être utilisée pour signer des messages et des transactions qui peuvent être envoyés pour effectuer des changements d'état sur une blockchain.
Pour signer une transaction avec la clé privée d'un passkey, la transaction est envoyée au matériel sécurisé, où elle est signée et la signature résultante est ensuite générée. Tout au long de ce processus, ni le propriétaire ni le développeur de l'application n'ont jamais accès à la clé privée ; ils ne reçoivent que les signatures générées.
Cela offre une sécurité renforcée pour l'utilisateur, car la clé privée n'est généralement pas chargée dans la mémoire de l'application, réduisant ainsi le risque d'exposition à d'éventuelles attaques. Par exemple, sur l'iPhone, l'utilisateur ne peut même pas accéder à la valeur de la clé de passage dans ses paramètres, car la clé est générée et stockée dans un matériel spécialisé qui n'est pas accessible à l'interface.
Les passkeys et les portefeuilles cryptographiques partagent la même technologie sous-jacente de la cryptographie à courbe elliptique pour générer des paires de clés publique-privée. Les développeurs d'applications blockchain peuvent utiliser les passkeys pour créer des portefeuilles sécurisés dans l'application pour les utilisateurs avec une expérience utilisateur puissante.
Cependant, il existe une différence importante qui introduit de la complexité lors de l'utilisation des passkeys pour les comptes blockchain ; les passkeys utilisent une courbe elliptique différente des comptes blockchain.
Alors qu'Apple, Android et WebAuthn utilisent tous la courbe secp256r1 (alias P-256) pour les mots de passe, les comptes blockchain utilisent la courbe elliptique secp256k1.
Cela signifie que les transactions signées par la clé privée d'un passkey ne sont pas comprises (et donc rejetées) par des blockchains telles que Ethereum ou Abstract. L'attente par défaut des blockchains est que la transaction soit signée par une paire de clés générée sur la courbe secp256k1.
Puisque les portefeuilles réguliers (EOA) sont générés sur la courbe k1, des portefeuilles de contrat intelligent sont donc nécessaires, car ils peuvent inclure une logique personnalisée qui vérifie les transactions signées par des clés privées générées par des mots de passe avant d'autoriser l'exécution de la transaction.
Bitcoin a été le premier à adopter la courbe secp256k1 pour les opérations cryptographiques, ce qui a établi la norme pour Ethereum et les autres chaînes basées sur l'EVM à utiliser la variation k1 de la courbe pour les comptes.
La variation k1 de la courbe manque également de certaines fonctionnalités telles que des coefficients supplémentaires qui rendent secp256r1 légèrement plus complexe, ce qui signifie que secp256k1 est plus efficace en termes de génération de clés, de création de signatures et de vérification.
Bien qu'aucune vulnérabilité directe n'ait été trouvée, il existe également des théories du complot selon lesquelles Bitcoin a choisi d'utiliser la courbe k1 plutôt que la courbe r1 plus largement adoptée pour éviter toute possibilité de porte dérobée qui aurait pu être introduite secrètement par des agences gouvernementales comme la NSA, étant donné leur implication dans le développement de normes cryptographiques approuvées par le NIST.
Les portefeuilles de contrats intelligents (tels que ceux pris en charge par Gate.io)Abstraction de compte native d'Abstract) peut contenir une logique arbitraire à exécuter pour l'EVM; y compris la vérification de la signature pour les messages qu'il reçoit signés par une clé privée créée sur la courbe r1.
Des bibliothèques open-source comme Vérificateur P256 open source de Daimoont été construites pour vérifier les signatures sur la courbe secp256r1 à l'intérieur des contrats intelligents écrits en Solidity.
Sur Ethereum, cela signifie que vous pouvez utiliser des contrats intelligents construits avec le Norme d'abstraction de compte ERC-4337pour vérifier la signature r1 de l'opération utilisateur à l'intérieur de lavalidateUserOp
fonction du portefeuille de contrat intelligent.
Sur Abstract, abstraction de compte natifpermet aux portefeuilles de contrats intelligents de soumettre des transactions avec le champ de signature défini comme le message signé par la clé privée de la passe. Si le compte qui a envoyé la transaction est un contrat intelligent qui inclut la logique pour vérifier les signatures r1 (dans le validerTransaction
fonction), la transaction est acceptée.
Les portefeuilles de contrats intelligents utilisent du code (sous forme de contrat intelligent) pour gérer et contrôler leur fonctionnalité, ce qui signifie qu'ils peuvent avoir des fonctionnalités personnalisées, y compris des modules de récupération, plusieurs signataires approuvés, des limites de dépenses, des clés de session et plus encore.
Les portefeuilles de contrats intelligents offrent plus de flexibilité que les portefeuilles traditionnels EOA (Externally Owned Accounts) et, comme ils peuvent inclure un code EVM arbitraire, ils ont le pouvoir de vérifier les signatures (c'est-à-dire d'autoriser les transactions) à partir des paires de clés créées sur la courbe elliptique r1.
Comme la vérification des signatures sur la courbe r1 n'est pas native des blockchains comme Ethereum ou Abstract, il est coûteux en calcul de réaliser cette vérification ; ce qui entraîne une augmentation drastique des frais de gaz pour vérifier les signatures r1 par rapport aux signatures k1 (environ 100 fois plus cher).
RIP-7212 (Rollup Improvement Proposal) propose l'ajout d'un contrat intelligent précompilé aux L2 d'Ethereum pour une vérification de signature plus efficace en termes de gaz sur la courbe r1. Bien que cela ne soit pas encore inclus sur Ethereum, des solutions de mise à l'échelle compatibles avec l'EVM telles que Abstract l'ont déjà implémenté et offrent une réduction de gaz de 100x pour les vérifications de signature r1.
L'inconvénient des portefeuilles de clés d'accès est le fait qu'ils sont liés à un seul domaine. Par exemple, si vous créez un portefeuille sur some-domain.com, votre clé d'accès (et donc votre portefeuille) ne pourra se connecter qu'à ce domaine spécifique.
C'est un choix de conception délibéré pour éviter les attaques de phishing, cependant, cela pose un grave problème pour les utilisateurs qui accordent de l'importance à l'auto-garde, car votre portefeuille est directement lié à une seule application ; cela signifie :
Pour ces raisons, les portefeuilles passkey sont les plus adaptés pour de petites sommes d'argent ou pour accueillir les utilisateurs débutants lors de leurs premières expériences avec la cryptomonnaie, jusqu'à ce qu'ils en sachent plus sur les portefeuilles de garde personnelle.
Cela dépend de la façon dont vous choisissez de sauvegarder votre clé d'accès. Il existe plusieurs options pour sauvegarder votre clé d'accès dans le Cloud (comme Apple Keychain) afin qu'elle soit accessible sur d'autres appareils même si vous perdez l'originale.
La clé privée ne peut pas être lue sur l'appareil à aucun moment, car elle se trouve dans l'Enclave sécurisée. Cependant, s'ils ont accès à vos données biométriques, ils peuvent effectuer des opérations comme s'ils avaient le contrôle de votre mot de passe/portefeuille.
Non. Vos données biométriques ne sont pas envoyées ailleurs ; elles restent sur votre appareil. Vos données biométriques sont simplement utilisées pour "déverrouiller" la clé d'accès.
Les passkeys sont une approche sécurisée et conviviale de l'authentification qui peut également être utilisée pour créer et stocker en toute sécurité des portefeuilles cryptographiques, grâce à leur utilisation de la cryptographie à courbes elliptiques.
Dans cet article, nous couvrirons le fonctionnement des passkeys, explorerons les risques liés à l'utilisation des passkeys pour les portefeuilles de crypto-monnaie, et plongerons dans la façon dont l'abstraction de compte permet l'utilisation de passkeys lorsqu'ils sont combinés avec des contrats intelligents.
Les passkeys sont un moyen simple et sécurisé pour les utilisateurs de se connecter à une application sans avoir à stocker des mots de passe sensibles ou à se souvenir de leurs informations de connexion. Au lieu de cela, les utilisateurs créent et accèdent à leurs comptes en utilisant des méthodes familières telles que les biométries comme Face ID ou Touch ID.
Cela permet aux utilisateurs de se connecter facilement et d'interagir avec des applications de manière autorisée sans jamais stocker d'informations sensibles; offrant une expérience fluide et une sécurité supplémentaire contre les violations de données et les vecteurs d'attaque courants tels que le phishing.
Sur la plupart des appareils, tels que l'iPhone, les passkeys sont stockés à l'intérieur d'un matériel spécialisé appelé le Enclave sécurisée; un environnement dédié et isolé conçu pour protéger les données sensibles même si le processeur principal est compromis.
Les passkeys utilisent cryptographie à clé publiquegénérer une paire de clés publique-privée sur l'appareil de l'utilisateur, composée de deux clés :
Comme portefeuilles blockchain, la clé privée d'un passkey peut être utilisée pour signer des messages et des transactions qui peuvent être envoyés pour effectuer des changements d'état sur une blockchain.
Pour signer une transaction avec la clé privée d'un passkey, la transaction est envoyée au matériel sécurisé, où elle est signée et la signature résultante est ensuite générée. Tout au long de ce processus, ni le propriétaire ni le développeur de l'application n'ont jamais accès à la clé privée ; ils ne reçoivent que les signatures générées.
Cela offre une sécurité renforcée pour l'utilisateur, car la clé privée n'est généralement pas chargée dans la mémoire de l'application, réduisant ainsi le risque d'exposition à d'éventuelles attaques. Par exemple, sur l'iPhone, l'utilisateur ne peut même pas accéder à la valeur de la clé de passage dans ses paramètres, car la clé est générée et stockée dans un matériel spécialisé qui n'est pas accessible à l'interface.
Les passkeys et les portefeuilles cryptographiques partagent la même technologie sous-jacente de la cryptographie à courbe elliptique pour générer des paires de clés publique-privée. Les développeurs d'applications blockchain peuvent utiliser les passkeys pour créer des portefeuilles sécurisés dans l'application pour les utilisateurs avec une expérience utilisateur puissante.
Cependant, il existe une différence importante qui introduit de la complexité lors de l'utilisation des passkeys pour les comptes blockchain ; les passkeys utilisent une courbe elliptique différente des comptes blockchain.
Alors qu'Apple, Android et WebAuthn utilisent tous la courbe secp256r1 (alias P-256) pour les mots de passe, les comptes blockchain utilisent la courbe elliptique secp256k1.
Cela signifie que les transactions signées par la clé privée d'un passkey ne sont pas comprises (et donc rejetées) par des blockchains telles que Ethereum ou Abstract. L'attente par défaut des blockchains est que la transaction soit signée par une paire de clés générée sur la courbe secp256k1.
Puisque les portefeuilles réguliers (EOA) sont générés sur la courbe k1, des portefeuilles de contrat intelligent sont donc nécessaires, car ils peuvent inclure une logique personnalisée qui vérifie les transactions signées par des clés privées générées par des mots de passe avant d'autoriser l'exécution de la transaction.
Bitcoin a été le premier à adopter la courbe secp256k1 pour les opérations cryptographiques, ce qui a établi la norme pour Ethereum et les autres chaînes basées sur l'EVM à utiliser la variation k1 de la courbe pour les comptes.
La variation k1 de la courbe manque également de certaines fonctionnalités telles que des coefficients supplémentaires qui rendent secp256r1 légèrement plus complexe, ce qui signifie que secp256k1 est plus efficace en termes de génération de clés, de création de signatures et de vérification.
Bien qu'aucune vulnérabilité directe n'ait été trouvée, il existe également des théories du complot selon lesquelles Bitcoin a choisi d'utiliser la courbe k1 plutôt que la courbe r1 plus largement adoptée pour éviter toute possibilité de porte dérobée qui aurait pu être introduite secrètement par des agences gouvernementales comme la NSA, étant donné leur implication dans le développement de normes cryptographiques approuvées par le NIST.
Les portefeuilles de contrats intelligents (tels que ceux pris en charge par Gate.io)Abstraction de compte native d'Abstract) peut contenir une logique arbitraire à exécuter pour l'EVM; y compris la vérification de la signature pour les messages qu'il reçoit signés par une clé privée créée sur la courbe r1.
Des bibliothèques open-source comme Vérificateur P256 open source de Daimoont été construites pour vérifier les signatures sur la courbe secp256r1 à l'intérieur des contrats intelligents écrits en Solidity.
Sur Ethereum, cela signifie que vous pouvez utiliser des contrats intelligents construits avec le Norme d'abstraction de compte ERC-4337pour vérifier la signature r1 de l'opération utilisateur à l'intérieur de lavalidateUserOp
fonction du portefeuille de contrat intelligent.
Sur Abstract, abstraction de compte natifpermet aux portefeuilles de contrats intelligents de soumettre des transactions avec le champ de signature défini comme le message signé par la clé privée de la passe. Si le compte qui a envoyé la transaction est un contrat intelligent qui inclut la logique pour vérifier les signatures r1 (dans le validerTransaction
fonction), la transaction est acceptée.
Les portefeuilles de contrats intelligents utilisent du code (sous forme de contrat intelligent) pour gérer et contrôler leur fonctionnalité, ce qui signifie qu'ils peuvent avoir des fonctionnalités personnalisées, y compris des modules de récupération, plusieurs signataires approuvés, des limites de dépenses, des clés de session et plus encore.
Les portefeuilles de contrats intelligents offrent plus de flexibilité que les portefeuilles traditionnels EOA (Externally Owned Accounts) et, comme ils peuvent inclure un code EVM arbitraire, ils ont le pouvoir de vérifier les signatures (c'est-à-dire d'autoriser les transactions) à partir des paires de clés créées sur la courbe elliptique r1.
Comme la vérification des signatures sur la courbe r1 n'est pas native des blockchains comme Ethereum ou Abstract, il est coûteux en calcul de réaliser cette vérification ; ce qui entraîne une augmentation drastique des frais de gaz pour vérifier les signatures r1 par rapport aux signatures k1 (environ 100 fois plus cher).
RIP-7212 (Rollup Improvement Proposal) propose l'ajout d'un contrat intelligent précompilé aux L2 d'Ethereum pour une vérification de signature plus efficace en termes de gaz sur la courbe r1. Bien que cela ne soit pas encore inclus sur Ethereum, des solutions de mise à l'échelle compatibles avec l'EVM telles que Abstract l'ont déjà implémenté et offrent une réduction de gaz de 100x pour les vérifications de signature r1.
L'inconvénient des portefeuilles de clés d'accès est le fait qu'ils sont liés à un seul domaine. Par exemple, si vous créez un portefeuille sur some-domain.com, votre clé d'accès (et donc votre portefeuille) ne pourra se connecter qu'à ce domaine spécifique.
C'est un choix de conception délibéré pour éviter les attaques de phishing, cependant, cela pose un grave problème pour les utilisateurs qui accordent de l'importance à l'auto-garde, car votre portefeuille est directement lié à une seule application ; cela signifie :
Pour ces raisons, les portefeuilles passkey sont les plus adaptés pour de petites sommes d'argent ou pour accueillir les utilisateurs débutants lors de leurs premières expériences avec la cryptomonnaie, jusqu'à ce qu'ils en sachent plus sur les portefeuilles de garde personnelle.
Cela dépend de la façon dont vous choisissez de sauvegarder votre clé d'accès. Il existe plusieurs options pour sauvegarder votre clé d'accès dans le Cloud (comme Apple Keychain) afin qu'elle soit accessible sur d'autres appareils même si vous perdez l'originale.
La clé privée ne peut pas être lue sur l'appareil à aucun moment, car elle se trouve dans l'Enclave sécurisée. Cependant, s'ils ont accès à vos données biométriques, ils peuvent effectuer des opérations comme s'ils avaient le contrôle de votre mot de passe/portefeuille.
Non. Vos données biométriques ne sont pas envoyées ailleurs ; elles restent sur votre appareil. Vos données biométriques sont simplement utilisées pour "déverrouiller" la clé d'accès.