Vous saviez que la majorité des applications mobiles sont sensibles aux attaques de type "Man in the middle" ? La majorité des développeurs oublient de vérifier l'authenticité du certificat SSL utilisé et peuvent ainsi permettent à des systèmes tiers d'écouter les flux échangés entre l'application mobile et son serveur malgré l'utilisation du HTTPS.
Voici un moyen simple en mode boite noire qui permet de vérifier le comportement d'une application mobile à une attaque de type "Man in the middle" sur une connexion HTTPS.

Si vous ne connaissez pas Fiddler, il s'agit d'un analyseur de trames HTTP disponible gratuitement sous Windows et sur Mac OS. Il vous permet d'analyser toutes les trames HTTP qui entrent et sortent de votre ordinateur.

Sachant que la majorité des échanges réalisés réalisés par les applications mobiles sont réalisés via le protocole HTTP, lorsque Fiddler est configuré en mode proxy HTTP, il permet d'analyser les échanges réseau qu'une application mobile peut entreprendre avec son serveur.

Pour vérifier la sécurité de la connexion SSL d'une application mobile, cela se fait en 6 étapes simples :

  • Configurez Fiddler afin qu'il fonctionne en mode proxy

fiddler-network.png

  • Configurez Fiddler afin qu'il déchiffre les trames SSL

fiddler-ssl.png

  • Redémarrez Fiddler.

  • Installez le certificat Root généré par Fiddler sur votre terminal mobile en naviguant sur l'URL suivante depuis le navigateur de votre terminal mobile :

http://:8888/FiddlerRoot.cer

  • Configurez votre terminal mobile afin qu'il se connecte au proxy initialisé par Fiddler.
  • Lancez l'application et vérifiez si elle accepte ou rejette la connexion SSL générée par Fiddler.

À l'issu de ce test, deux résultats sont possibles :

  1. L'application fonctionne correctement et vous voyez le détail des trames HTTPS dans Fiddler : cela signifie que l'origine de la clef n'est pas vérifiée par l'application mobile, l'application accepte n'importe quel certificat dans la mesure où un certificat root reconnu est présent sur le terminal. Dans ce cas, supprimez le certificat Root et refaites un nouveau test pour voir si l'application accepte des certificats non signés ...

  2. L'application plante ou s'arrête : cela signifie que le développeur a correctement réalisé son travail de sécurisation de la connexion HTTPS.

Vous voilà prêt à tester la sécurité de vos applications mobiles !