vendredi, 19 août 2022

Authentification sécurisée à second facteur pour les portefeuilles de garde

La garde institutionnelle implique souvent la gestion de quantités substantielles de crypto-monnaies, appartenant souvent à plusieurs utilisateurs. La valeur totale gérée se chiffre souvent en milliards. Alors que les clés de crypto-monnaie peuvent être gérées à l’intérieur de modules de sécurité matériels (HSM), qui sont hautement sécurisés, l’application qui interagit avec le HSM à l’aide d’une clé API se trouve souvent dans un environnement beaucoup moins sécurisé.

Le problème secret zéro

Si cette application se comporte mal ou est compromise et que la clé API est volée, un dépositaire pourrait subir de lourdes pertes. Il s’agit d’un exemple du célèbre problème secret zéro ; alors que la plupart des secrets peuvent être protégés dans des environnements sécurisés, il existe au moins un secret qui reste dans un environnement qui peut être considéré comme moins sécurisé.

Figure 1 : Une illustration du problème du zéro secret.

La façon typique dont les fournisseurs de services de portefeuille de garde résolvent ce problème consiste à fournir un système d’authentification à second facteur. Une fois qu’un utilisateur lance un transfert de crypto-monnaie, l’utilisateur est invité à saisir un code PIN ou un mot de passe à usage unique basé sur le temps (TOTP) généré par une application d’authentification installée sur son téléphone. Google Authenticator et Duo sont des applications d’authentification couramment utilisées.

Dans cet article, je me demande si cette approche est effectivement plus sûre et si cette approche résout le problème du zéro secret.

2FA n’est pas utile dans les environnements non sécurisés

En réalité, les systèmes d’authentification à second facteur sont souvent déployés dans des environnements non sécurisés. C’est-à-dire qu’ils sont souvent déployés dans le même environnement que l’application backend gérant les clés API HSM. Si cet environnement non sécurisé est violé par un attaquant ou un initié malveillant, les clés de crypto-monnaie gérées par le HSM pourraient être utilisées pour signer des transactions, ce qui pourrait entraîner de lourdes pertes pour le fournisseur de portefeuille de garde et ses clients.

Figure 2 : deuxième les systèmes d’authentification par facteur sont souvent déployés dans des environnements non sécurisés.

Lorsque les systèmes d’authentification à second facteur sont compromis, de tels événements font la une des journaux. Par exemple, le système d’authentification à deux facteurs d’un échange bien connu a récemment été compromis et plus de 400 utilisateurs ont perdu entre 30 et 40 millions de dollars en crypto-monnaies. L’échange a pris la perte pour son propre compte et a indemnisé les utilisateurs. Mais de tels événements nuisent à la réputation des entreprises qui visent à maintenir les normes de sécurité les plus élevées.

Le problème ne vient pas de l’authentification à deux facteurs ; 2FA est important. Le problème réside dans la manière dont les systèmes d’authentification à deux facteurs sont mis en œuvre et déployés. Si un système d’authentification à deux facteurs est déployé dans le même environnement non sécurisé que l’application principale contrôlant le zéro secret, il n’y a aucune amélioration qualitative de la sécurité du système dans son ensemble.

Une meilleure façon d’accéder à 2FA

Et si nous pouvions faire mieux ? Et si, au lieu de déployer le système d’authentification à deux facteurs dans un environnement non sécurisé, nous le déployions dans l’environnement HSM sécurisé ? Cette approche a des jambes, surtout si le code déployé peut être « gelé » ; c’est-à-dire qu’un administrateur non autorisé ne devrait pas être en mesure de modifier le code d’authentification de second facteur.

Figure 3 : Une illustration du fonctionnement de TOTP

Comme mentionné précédemment, TOTP est un choix populaire pour un système d’authentification à second facteur. TOTP est un algorithme qui génère un mot de passe à usage unique (OTP) qui utilise l’heure actuelle comme source d’unicité.

Au moment de l’enregistrement de l’utilisateur, le système d’authentification génère un jeton et le partage avec l’utilisateur. Ce jeton est souvent présenté sous la forme d’un code QR que l’utilisateur scanne avec son application d’authentification. L’algorithme TOTP repose sur le fait que la plupart des systèmes informatiques sont à peu près synchronisés les uns avec les autres.

L’application d’authentification prend le jeton partagé et l’heure actuelle comme entrée et génère un nouveau TOTP toutes les 30 secondes. Lorsque l’authentifié veut accéder à certaines fonctionnalités protégées par l’authentificateur, il calcule la valeur TOTP et la fournit à l’authentificateur. L’authentificateur calcule également la valeur TOTP, puis vérifie si la valeur TOTP fournie par l’authentifie correspond à la valeur TOTP générée localement. Si les valeurs correspondent, l’authentifié se voit accorder l’accès à la fonctionnalité protégée.

La sécurité des portefeuilles de garde pourrait être considérablement améliorée en déployant du code à l’intérieur de la frontière HSM qui implémente le TOTP sécurisé, la gestion sécurisée des clés et la signature sécurisée des transactions. Le HSM ne signera pas de transaction même si le système backend du portefeuille de garde est compromis. Les transactions ne peuvent être signées qu’avec la participation de l’utilisateur.

Figure 4 : Signature de la transaction avec 2FA.

Lors de la signature de la transaction, l’utilisateur fournit le TOTP, et le plug-in s’assure que la transaction n’est signée qu’après la validation du TOTP.

Figure 5 : Nouvelle architecture avec le service 2FA déployé en tant que plug-in DSM SaaS.

La nouvelle architecture est illustrée à la figure 5. Par rapport à la figure 2, le service d’authentification à deux facteurs est déployé dans l’environnement sécurisé du HSM. Même si le backend du portefeuille de garde est compromis, les transactions de crypto-monnaie ne peuvent pas être signées sans que l’utilisateur ne fasse partie de la boucle.

En conclusion, le problème du zéro secret est difficile. Il apparaît dans son avatar le plus méchant lorsqu’il s’agit d’actifs basés sur blockchain qui sont porteur dans la nature. Une fois ces actifs transférés, ils ne peuvent pas être récupérés avec une intervention humaine.

Sous le capot, les systèmes d’authentification à second facteur actuels ne sont pas aussi sûrs qu’ils le paraissent. Un système 2FA compromis entraîne souvent une perte de réputation ; prévenir cette perte est essentiel dans l’industrie. Une solution solide et pratique à ce problème est nécessaire. Je propose une solution exigeant que les transactions de crypto-monnaie ne se produisent jamais à moins qu’un utilisateur ne soit dans la boucle.

.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici