web-dev-qa-db-fra.com

Est-il difficile d'intercepter SMS (authentification à deux facteurs)?

De nombreux mécanismes d'authentification à deux facteurs utilisent SMS pour fournir une phrase secrète à usage unique à l'utilisateur. Alors, comment est-il sécurisé? Est-il difficile d'intercepter le SMS = message contenant la phrase secrète? Les réseaux mobiles utilisent-ils un cryptage quelconque sur SMS?

J'ai trouvé un article intéressant sur l'authentification à deux facteurs et les moyens de l'attaquer:

http://www.schneier.com/blog/archives/2012/02/the_failure_of_2.html

121
Paul Podlipensky

GSM inclut une certaine protection par cryptographie. Le téléphone mobile et le fournisseur (c'est-à-dire la station de base qui fait partie du réseau du fournisseur) s'authentifient mutuellement par rapport à un secret partagé, qui est connu du fournisseur et stocké dans la carte SIM de l'utilisateur. Certains algorithmes connus sous les noms de code "A3" et "A8" sont impliqués dans l'authentification. Ensuite, les données (telles qu'elles sont envoyées via la liaison radio) sont cryptées avec un algorithme appelé "A5" et une clé dérivée de A3/A8 et du secret partagé.

Il existe plusieurs algorithmes réels qui se cachent sous le nom "A5". Le choix de l'algorithme dépend du fournisseur, qui à son tour est contraint par les réglementations locales et de ce qu'il pourrait concéder sous licence par le consortium GSM. En outre, un attaquant actif (avec une fausse station de base) peut potentiellement forcer un téléphone mobile à utiliser une autre variante, distincte de ce qu'il aurait utilisé autrement, et il n'y a pas beaucoup de téléphones qui en alerteraient l'utilisateur (et encore moins d'utilisateurs qui s'en soucierait).

  • A5/0 signifie "pas de cryptage". Les données sont envoyées non cryptées. Dans certains pays, c'est le seul mode autorisé (je pense que l'Inde est un tel pays).
  • A5/1 est l'ancien algorithme "fort", utilisé en Europe et en Amérique du Nord.
  • A5/2 est l'ancien algorithme "faible", nominalement destiné aux "pays qui sont de bons amis mais auxquels nous n'avons pas encore totalement confiance" (il n'est pas énoncé de cette façon dans les spécifications GSM, mais c'est l'idée).
  • A5/3 est le nouvel algorithme pour GPRS/UMTS.

A5/3 est un chiffrement par bloc également connu sous le nom de KASUMI . Il offre une sécurité décente. Il présente quelques lacunes qui le rendraient "académiquement cassé", mais aucun n'est vraiment applicable dans la pratique.

A5/2 est en effet faible, comme décrit dans ce rapport . L'attaque nécessite une fraction de seconde, soumise à un précalcul qui prend moins d'une heure sur un PC et nécessite quelques gigaoctets de stockage (pas beaucoup). Il y a des détails techniques, principalement parce que le protocole GSM lui-même est complexe, mais on peut supposer que la couche A5/2 est cassable.

A5/1 est plus fort, mais pas très fort. Il utilise une clé 64 bits, mais la structure de l'algorithme est plus faible et permet une attaque avec une complexité d'environ 242,7 opérations élémentaires (voir cet article que j'ai écrit il y a 12 ans). Il y a eu plusieurs publications qui tournent autour de cette complexité, principalement en effectuant des précalculs et en attendant que l'état interne de l'algorithme atteigne une structure spécifique; bien que ces publications affichent des chiffres de complexité légèrement inférieurs (environ 240), ils ont des inconvénients qui les rendent difficiles à appliquer, comme nécessiter des milliers de bits en clair connus. Avec seulement 64 bits en clair connus, la complexité brute est 242,7. Je n'ai pas essayé de l'implémenter depuis une décennie, il est donc concevable qu'un PC moderne l'exécute plus rapidement que le poste de travail que j'utilisais à l'époque; comme une estimation approximative, un PC quad core avec du code complètement optimisé devrait être capable de le casser en une heure.

La taille de l'état interne de A5/1 et la façon dont A5/1 est appliqué pour crypter les données, le rendent également vulnérable aux compromis temps-mémoire, tels que Rainbow tables . Encore une fois, voir l'article Barkan-Biham-Keller. Cela suppose que l'attaquant a exécuté - une fois un calcul vraiment massif et stocké des téraoctets de données; par la suite, la phase en ligne de l'attaque peut être assez rapide. Détails assez détaillés, en fonction de l'espace de stockage dont vous disposez, de la puissance du processeur disponible pour la phase en ligne et de la durée pendant laquelle vous êtes prêt à attendre le résultat. La phase de calcul initiale est énorme mais réalisable sur le plan technologique (un millier de PC devrait suffire); il y avait un open distribué projet pour ça mais je ne sais pas jusqu'où ils sont allés.

L'interception de SMS est toujours un scénario spécifique. Ce n'est pas une conversation à voix haute; la quantité réelle de données échangées est faible et la connexion est terminée après un temps assez court. Cela peut limiter l'applicabilité des attaques exposées ci-dessus. De plus, l'attaque doit être rapide: le but de l'attaque est de récupérer le mot de passe secret envoyé sous forme de SMS, afin que l'attaquant puisse l'utiliser avant l'utilisateur normal. L'attaquant doit être rapide:

  • Le serveur applique généralement un court délai d'expiration sur ce mot de passe, par exemple quelques minutes. SMS est supposée être une question de quelques secondes.
  • L'utilisateur n'est pas patient (les utilisateurs ne le sont jamais). S'il n'obtient pas son SMS dans les cinq minutes, il en demandera probablement un nouveau, et un système d'authentification à deux facteurs bien pensé sur le serveur invaliderait alors le mot de passe unique précédent). .

Les choses sont plus faciles pour l'attaquant s'il a déjà cassé le premier facteur d'authentification (c'est pourquoi nous utilisons l'authentification à deux facteurs: car un ne suffit pas). Dans ce cas, l'attaquant peut lancer la demande d'authentification alors que l'utilisateur cible ne le sait pas, et il est donc peu probable qu'il déclenche une alarme s'il ne reçoit pas de SMS, ou, du moins, s'il reçoit un message indésirable SMS (l'attaquant peut faire l'attaque tard dans la nuit; l'utilisateur attaqué trouvera l'indu SMS uniquement le matin, quand il se réveille, donnant quelques heures à l'attaquant) pour décréter ses méfaits).

Le cryptage GSM ne concerne que la liaison radio. Dans tout ce qui précède, nous nous sommes concentrés sur un attaquant qui écoute les données transmises entre le téléphone mobile et le station de base. L'équipement radio nécessaire semble être disponible standard , et il est facile de concevoir que ce scénario soit applicable dans la pratique. Cependant, le SMS ne se déplace pas seulement de la station de base au téléphone mobile. Son voyage complet commence aux installations du serveur, puis passe par Internet, puis le réseau du fournisseur, jusqu'à ce qu'il atteigne la station de base - et ce n'est qu'à ce moment-là qu'elle est cryptée avec la variante A5 utilisée.

Comment les données sont-elles sécurisées au sein du réseau du fournisseur, et entre le fournisseur et le serveur qui souhaite que le SMS soit envoyé, est hors de portée de la spécification GSM. Donc, tout se passe. attaquant est le fournisseur, vous perdez. Les organismes d'application de la loi, lorsqu'ils veulent écouter les gens, le font généralement en demandant gentiment aux fournisseurs, qui se conforment invariablement. C'est pourquoi les cartels de la drogue, en particulier au Mexique et en Colombie, ont tendance à construire leurs propres réseaux cellulaires .

104
Thomas Pornin

Réseau GSM est crypté . Mais cela ne le rend bien sûr pas à l'épreuve des balles. Il peut être compromis. Cependant, les attaques décrites par Rook (et plus tard de manière beaucoup plus détaillée Thomas Pornin) sont très localisées et nécessitent des efforts importants pour y parvenir. Ils ne sont pas impossibles, mais très difficiles. Cela nécessite de briser le réseau GSM à proximité du téléphone mobile en même temps que le SMS est envoyé. Il y a aussi un potentiel pour qu'un opérateur de réseau intercepte les SMS. Si nous parlons sur les scénarios de sécurité nationale/d'espionnage, où une personne spécifique est ciblée et les attaquants ont des moyens très sophistiqués et beaucoup d'argent à dépenser, alors c'est certainement possible. À peu près la même chose s'applique à l'obtention des valeurs de départ de votre fournisseur de jetons matériels. .

Même si cette attaque SMS réussit, elle peut également nécessiter l'obtention du nom d'utilisateur et du mot de passe (en supposant que SMS n'est pas la seule méthode d'authentification, mais plutôt une 2e) Il existe d'autres alternatives, où l'utilisateur initie le message SMS au serveur, et le serveur peut vérifier qu'il correspond au défi/jeton demandé. Le serveur peut également vérifier l'ID de l'appelant d'origine Bien sûr, cela aussi a ses limites, mais s'il est bien fait, il peut théoriquement fournir une protection légèrement plus importante.

Si, comme dans la plupart des cas, l'idée est d'améliorer la sécurité en offrant une authentification à 2 facteurs, l'ajout de SMS dans le mélange l'améliore considérablement par rapport au nom d'utilisateur/mot de passe standard. Le fait que vous utilisez deux canaux de communication distincts (TCP/IP et GSM) le rendent déjà plus sûr. Comme estimation personnelle très approximative, je dirais SMS sont plus ou moins à égalité avec les jetons basés sur le matériel, la sécurité Bien sûr, Dieu (ou le diable) est dans les détails.

14
Yoav Aner

Bien que les discussions sur le chiffrement soient intéressantes, je pense que la question clé est: les opérateurs sont-ils incités à se soucier de la sécurité? Je crains que la réponse soit "non". Quelle est leur incitation à dépenser de l'argent pour sécuriser leurs systèmes SMS? Les gèrent-ils ou sont-ils externalisés? Quelles garanties de sécurité offrent-ils? Dans quelle mesure faites-vous confiance aux personnes qui administrent le les serveurs ?

De plus, à ce sujet: si vous avez 100 millions de clients et que vous compliquez légèrement la réinitialisation de votre mot de passe, vos appels au service d'assistance passeraient par le toit. C'est pourquoi il peut être si facile de reprendre le compte de quelqu'un.

De plus, comme vous le voyez avec le cadre de l'autorité de certification, l'infrastructure SMS sera une cible d'attaque.

J'ai récemment écrit un article de blog sur la synthèse de ces points avec des liens: http://www.wikidsystems.com/WiKIDBlog/fraudsters-defeat-poor-risk-management-not-two-factor-authentication . Du point de vue de la gestion des risques, SMS auth est meilleur que les mots de passe, mais ne comptez pas dessus longtemps. Les attaques actuelles ciblent les institutions financières, mais comme le coût des attaques baisse, il y aura plus.

9
nowen

Un système de sécurité multifacteur ne vaut rien si le service présente des vulnérabilités communes comme XSS, SQL Injection ou protection de la couche de transport insuffisante . Ces failles peuvent conduire à une compromission de compte ou d'informations quel que soit le système d'authentification que vous utilisez.

Cela étant dit, si vous êtes physiquement proche de la victime, vous pouvez effectuer des attaques très méchantes. Par exemple, si votre victime utilise un opérateur GSM, un attaquant peut briser le GSM avec une table d'arc-en-ciel et intercepter le message SMS. Si vous contrôlez le réseau de votre victime, vous pourriez utilisez un outil comme SSLStrip ou SSLSniff pour attaquer le portail de connexion HTTP.

"Se souvenir de moi" est mauvais . Certaines implémentations de SMS l'authentification multi-facteurs (comme Google) vous permettent de bénir un appareil pendant 30 jours. Il s'agit simplement d'un cookie persistant qui fonctionne comme un jeton d'authentification pendant 30 jours. Si vous en êtes propriétaire votre machine victime, vous pouvez alors obtenir ce cookie et l'utiliser pour l'authentification. Il n'y a aucun moyen d'implémenter une fonction "Remember Me" en toute sécurité.

Les jetons cryptographiques basés sur le matériel sont beaucoup plus difficiles à compromettre. C'est vraiment le pas en avant du SMS, dans la mesure où il s'agit d'un jeton que vous avez et qu'il devrait être difficile de faire des compromis. Cela est vrai pour la plupart, sauf si vous utilisez bien sûr jetons matériels de RSA .

6
rook

Les autres réponses expliquent déjà la sécurité du GSM et les technologies impliquées contre les attaques techniques.

Cependant, il existe un certain nombre d'autres attaques qui contournent les protections techniques.

Le article Wikipedia allemand sur les numéros d'authentification des transactions (qui sont souvent envoyés par SMS) répertorie certaines attaques:

  • voler ou accéder furtivement au téléphone portable de la victime
  • installer des logiciels malveillants sur le téléphone mobile, en particulier s'il s'agit d'un smartphone
  • attaques d'initiés contre le fournisseur de services mobiles
  • utiliser l'ingénierie sociale pour contourner le système, par exemple en:
    • obtenir l'accès aux messages
    • obtenir une nouvelle carte SIM auprès du fournisseur de services
    • porter le numéro de téléphone sur un autre compte

Par exemple, en 2015, il y a eu une série de transferts d'argent frauduleux en Allemagne, où les fraudeurs ont obtenu une nouvelle carte SIM sous le nom du client. Des attaques similaires s'étaient déjà produites auparavant, les fournisseurs de téléphones portables avaient donc amélioré l'authentification des clients commandant de nouvelles cartes SIM. Pour contourner ce problème, lorsqu'ils ont appelé le fournisseur de téléphonie, les fraudeurs se sont fait passer pour des employés d'une boutique de téléphonie mobile et ont prétendu activer des cartes SIM pour le compte de clients (Source [allemand]: Banque en ligne: Neue Angriffe auf die mTAN ).

Évidemment, toutes les protections techniques sont inutiles si l'attaquant parvient à les contourner.

6
sleske

Dernièrement, de nombreuses applications de téléphonie mobile demandent l'accès aux SMS messages et les utilisateurs l'autorisent car ils sont intéressés par l'application. Cela rend l'attaque moins difficile que l'interception du SMS sur les réseaux mobiles.

3
AdnanG

Je sais que cela ne répond pas directement à votre question, mais j'espère que cela répond à certaines préoccupations:

Si la mise en œuvre est effectuée correctement, je ne serais pas très préoccupé par l'interception SMS. C'est parce que les authentificateurs uniques SMS offrent une excellente opportunité pour -heure d'alerte aux attaques potentielles. Si l'authentificateur est intercepté, il est très probable que vous en serez immédiatement conscient et que vous pourrez réagir rapidement.

Si le SMS est intercepté lors d'une session d'authentification que vous avez tenté d'initier, l'une des deux choses suivantes doit se produire:

  • Si vous vous authentifiez d'abord avec succès, la tentative de l'attaquant devrait échouer. En effet, le système doit rejeter les tentatives de réutilisation de l'authentificateur. Dans cette situation, l'attaque est entièrement contrecarrée.

  • Si l'attaquant parvient à s'authentifier en premier, votre tentative d'authentification devrait échouer en raison de la réutilisation de l'authentificateur. Le système doit également vous informer que c'est la raison de l'échec. À ce stade, vous devez prendre toutes les mesures nécessaires pour sécuriser à nouveau votre compte. Le fait de pouvoir le faire rapidement limitera l'impact potentiel de l'attaque.

Si l'attaquant tente de lancer l'authentification alors que vous ne l'êtes pas, vous devriez être averti par le fait que vous recevrez un SMS que vous n'avez pas demandé. Il existe peu de moyens pratiques par lesquels quelqu'un pourrait subrepticement intercepter un SMS envoyé à votre téléphone sans vous aussi le recevoir ou bientôt remarquer quelque chose d'autre qui ne va pas.

Tout cela est rendu théorique de toute façon, si vous êtes soumis à une attaque Man-in-the-Browser .

De plus, étant donné que la plupart des implémentations d'authentification SMS SMS utilisent l'authentification SMS comme seconde facteur, je serais vraiment plus préoccupé par la façon dont le premier facteur d'authentification a été compromis. Si cela n'est pas fait via l'ingénierie sociale nue, c'était probablement via un navigateur ou un exploit du système d'exploitation qui a entraîné un enregistreur de frappe sur votre système. Ensuite, nous ne sommes pas à de nombreuses étapes de la situation Man-in-the-Browser qui aboutit effectivement à un compromis total quelle que soit votre méthode d'authentification.

2
Iszi

Tout le monde (même Schneier?) Semble manquer une pièce cruciale:

Si votre téléphone est perdu/volé, vous êtes déjà grillé , car votre SIM y est!

Il est étonnant pour moi que personne ne semble l'avoir remarqué pour autant que je sache, mais SMS souffre du fait qu'il ne vous oblige même pas à pouvoir accéder aux données sur ton téléphone.

Même si la télécommunication était cryptée, et même si votre téléphone est verrouillé et crypté, si vous avez SMS ou l'authentification par appel activée et votre téléphone est volé, vous êtes complètement grillé jusqu'au moment où vous parvenez à trouver un moyen d'amener votre fournisseur à désactiver votre SIM (et à signaler aux forces de l'ordre, etc.) Un attaquant a littéralement besoin de moins de 1 minute pour retirer votre carte SIM et la mettre dans un autre téléphone pour recevoir le SMS, donc au moment où vous réussirez à signaler le problème, il aura presque certainement eu la chance de l'essayer une douzaine de fois puis d'éteindre votre téléphone ou simplement le remettre afin qu'il ne puisse pas être suivi.

Votre seulement chance ici lorsque vous utilisez SMS 2FA est si l'attaquant ne connaît pas votre nom d'utilisateur, ou que votre carte SIM est verrouillée en toute sécurité contre utiliser dans un autre téléphone:

  1. Si votre téléphone était allumé lorsqu'il a été perdu ou volé, il est probable qu'il soit écrit quelque part sur votre écran de connexion ou s'affichera comme une notification à un moment donné.

  2. Si vous venez d'être agressé et que vous avez réussi à éteindre votre téléphone, votre ID ou votre carte de crédit est probablement allée avec votre téléphone, auquel cas votre nom d'utilisateur ou votre e-mail n'est probablement pas si difficile à deviner ou à trouver sur Google. Si votre téléphone était allumé, (1) représente toujours un risque également.

  3. Si l'attaquant vous connaissait d'une manière ou d'une autre, alors vous êtes presque certainement un toast.
    Comme, disons, vous laissez votre téléphone sur votre bureau pendant que vous êtes en train de déjeuner, et quelqu'un vient échanger la carte SIM, obtenir le SMS et l'échanger. Cela ne prendrait que quelques minutes si personne ne regarde.

Donc, même si vous pouvez vous inquiéter de quelqu'un qui essaie d'intercepter votre communication avec un appareil semblable à Stingray ou en infiltrant les installations de votre fournisseur de téléphone, la réalité est qu'un homme au milieu ce n'est pas le risque réel pour la plupart des gens. Le risque réel est au point final - c'est-à-dire vous. Perdez votre téléphone et la vérification basée sur les appels téléphoniques et les SMS se retournera complètement contre vous, quelle que soit la force de vos mots de passe ou de votre cryptage.

1
user541686