RTL-SDR NFC
|Il y a bientôt un an maintenant, alors que je surfais sur le net, un tasse de café à la main, je suis tombé sur un article de Korben présentant un hack d’une clé TNT réalisé par Spiwit permettant de transformer le banal dongle de Terratec en récepteur radio large bande. Ni une, ni deux je me retrouvai à faire la queue dans un centre commercial, la boîte entre les mains, priant pour qu’il s’agisse d’une version compatible.
Après avoir parcouru longuement le spectre hertzien sans réussir à écouter guère plus que quelques conversations entre Orly et des avions de ligne. Je rangeai ce nouveau jouet, en décidant qu’il me faudrait construire une antenne un peu plus volumineuse que le tout-mini-rikiki bout de métal fourni avec la clé. Finalement le temps passa et la clé resta là ou je l’avais abandonné…
Il y a peu, ayant malencontreusement détruit mon téléphone, je décidais de faire l’acquisition d’un smartphone dernier cri… N’ayant pas le courage d’écumer leboncoin à la recherche d’un appareil d’occasion qui ne soit pas volé ou défectueux, je choisis de passer par le marché occasion d’Amazon. Quelques jours plus tard je recevais le nouveau téléphone en bon état et parfaitement fonctionnel (c’est donc un service que je vous recommande chaudement) !
En découvrant les capacités NFC de cet appareil, une idée surgit dans mon esprit (J’ai d’ailleurs été un peu déçu en découvrant que je ne serais pas le premier à proposer ce test…). Pourrait-on utiliser la Cinergy TStick RC pour capter la communication en champ proche entre mon smartphone et un tag NFC ? A priori oui, aucune raison que ça ne soit pas possible.
SDR# à l’abordage du NFC
Galvanisé par l’idée, je récupère tout le matériel nécessaire sur le site sdrsharp.com et me met au boulot. Je branche la clé, trouve un système pour coincer l’antenne entre le téléphone et le tag (photo ci-dessus), je lance SDR#, navigue sur le spectre hertzien jusqu’à la fréquence supposée 13.56 MHz et… rien ! Un peu vexé, je change complètement l’agencement des éléments… Et toujours rien. A force de patience et d’acharnement, j’arrive à trouver une position où effectivement je capte un très léger signal mais pas quoi casser trois pattes à un canard…
Du coup, je me suis dit que le changement c’était maintenant, en tout cas pour ce qui était de mon antenne. J’ai donc fait appelle à toute la barbitude de mon corps pour concevoir deux antennes. La première en enroulant du trop gros fil d’étain autour d’une canette de coca, cependant le diamètre du fil ne permettait pas de le faire entrer dans le trou de mon adaptateur coaxial/Type F, comme quoi la taille ça compte quand même un peu. J’ai réalisé la seconde en enroulant du fil de cuivre gainé et en maintenant le tout avec les moyens du bord, c’est moche mais au moins ça marche !
En relançant SDR#, j’ai eu cette petite larme à l’œil que l’on a lorsque l’on est persuadé que rien ne va marcher comme prévu et qu’en fait si. Le design de l’antenne est peut-être un peu foireux mais les performances sont au rendez-vous ! Sinon, à propos de rien, J’ai été hyper surpris de capter plusieurs signaux puissants à quelques kilohertz d’intervalle, qui n’apparaissaient d’ailleurs pas du sur le spectrogramme de ma première tentative…
Analyse du signal
Le logiciel SDR# permet de faire de l’enregistrement au format wav. Je me suis dit qu’une des solutions pour extraire les données serait de trouver un logiciel capable d’analyser ce format de fichier. En cherchant un peu sur la toile, je suis tombé sur GoldWave. En étudiant un enregistrement créé à partir de la fréquence ou le signal était le plus intense, on découvre un signal carré qui porte très certainement l’information de l’échange NFC entre mon téléphone et le tag.
N’étant cependant pas un spécialiste de la modulation, démodulation ni de l’encodage des données en signaux électriques, je vais d’abord étudier plusieurs possibilités comme GNU Radio ou RFIDIOt avant d’envisager le développement d’un NFC-Reader. Et si je trouve quelque chose qui vaille le coup d’être lu, je présenterais mes découvertes dans un article un peu plus intéressant que celui-ci, promis !