Améliorations au support SMS

Améliorations au support SMS

De nos jours, les messages échangés entre téléphones portables sont rarement des SMS, car les smartphones privilégient l'utilisation de services de messagerie plus flexibles et plus sécurisés. Néanmoins, l'utilisation de SMS reste intéressante comme méthode de validation indépendante de la connexion réseau, en particulier pour des systèmes automatiques. C'est pourquoi nous avons récemment amélioré la fonctionnalité d'envoi et de réception de SMS sur le YoctoHub-GSM-4G.

Sécurité du transport par SMS

Avant d'entrer dans le vif du sujet, clarifions les risques de sécurité, réels et fantasmés, concernant l'utilisation de SMS. L'envoi de codes d'identification uniques (OTP) par SMS peut représenter un risque de sécurité dans certains cas bien précis, mais qui peuvent facilement être évités:

  • Avec les anciennes versions d'Android (jusqu'à 2015), toutes les applications pouvaient recevoir les SMS sans autorisation particulière. Une application mal intentionnée pouvait donc intercepter un code d'identification unique destiné à un utilisateur Android. C'est donc un problème qui ne nous concerne pas.
  • Sur un réseau GSM 2G, il est relativement facile - bien qu'illégal - d'introduire une fausse antenne de communication GSM (aka Stingray) dans le réseau, et d'intercepter ainsi les messages SMS qui y transitent en clair. Mais si le modem GSM est configuré pour ne travailler qu'en mode LTE, sans accepter le downgrade en 2G, ce type d'attaque est beaucoup plus difficile à mettre en oeuvre et requiert des moyens complexes et très onéreux (attaques sur l'opérateur, services clandestins).

Par ailleurs, les attaques décrites sur des transmissions par SMS partent toujours de l'a priori que les données sont transmises en clair. Si l'on se place dans le contexte d'une transmission d'autorisation à un système automatique, le B.A.BA consiste à chiffrer et authentifier le code d'autorisation (par ex. à l'aide de AES), en y incluant un timestamp et un nonce, de la même manière qu'on le ferait sur un réseau IP, avant d'encoder le message en base64 pour pouvoir le transmettre sous forme de texte. Si cette précaution est prise, la confidentialité n'est pas significativement moins bonne que sur un réseau Wi-Fi, mais on a l'avantage d'un moyen de transport indépendant du réseau IP, donc bien meilleur que d'autres méthodes couramment utilisées, comme l'envoi de codes OTP par mail à la même adresse mail que celle utilisée pour changer de mot de passe...

Il est donc tout à fait pertinent d'utiliser les SMS avec un modem GSM 4G où la communication 2G est désactivée comme canal de transmission supplémentaire pour échanger des jetons d'autorisation cryptés.

Amélioration des fonctionnalités SMS du YoctoHub-GSM-4G

Depuis sa mise sur le marché, le YoctoHub-GSM-4G est capable d'envoyer et de recevoir des SMS à l'aide de notre API disponible dans de nombreux langages de programmation, et en particulier de la classe YMessageBox.

Cette semaine, nous avons amélioré cette API pour gérer deux cas particuliers.


Erreurs d'envoi
Nous avons récemment réalisé qu'en cas de problème à l'envoi d'un SMS (par exemple en cas de crédit insuffisant sur la carte SIM), l'erreur n'était pas remontée jusqu'à l'application sous forme d'exception ou de code d'erreur. C'est maintenant chose faite. Pour bénéficier de cette amélioration, il faudra mettre à jour le firmware du module à la version 72331 (ou plus récente), et utiliser une version à jour de la librairie de programmation (version 2.1.12412 ou plus récente).

Réception par callback
Pour faciliter la gestion réactive des messages entrants, nous avons ajouté une méthode registerSmsCallback() qui permet de recevoir un callback pour chaque nouveau message reçu. Il n'est donc plus nécessaire de coder soi-même une vérification périodique des messages reçus.

De plus, pour vous faciliter la mise en route si vous désirez implémenter un canal de validation par SMS, nous avons ajouté à toutes nos librairies de programmation en version 2.0 un programme d'exemple Prog-SMS-Example, qui illustre l'utilisation de notre API pour envoyer et recevoir des SMS. Quel que soit le langage de programmation que vous utilisez, l'envoi et la réception de SMS ne devraient plus être un problème, et ce sans dépendre d'un service tiers dans le Cloud.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.