Intro
Welcome visitor, this is my (Benoit Michau) minimal personal page, where you will find some various information on:
software and scripts, music, pictures, and few other kind of content in which I'm interested.
I worked at France Telecom for more than 7 years: on IT security and then on mobile and IP network security;
I participated to the 3GPP project on security aspects of mobile networks between 2008 and 2011.
Between 2011 and 2018, I worked in the wireless security laboratory at ANSSI.
From 2018 to 2024, I was R&D engineer at P1 Security.
I am now moving on a new job and challenge !
For any kind of professional aspect, you can find me linked'in,
you can also have a look at my resume.
Most of the software libraries I develop are hosted on github.
For friends and family, you can also find me on facebook.
Software development
Most of my programs are written for Python, because it's easy, quick, well documented and supported... Also because I am not a hardcore developer and I like the smoothness of the language (no memory management, dynamic typing, ...). To use them, you can install them as explained in the READMEs. Most of the time, it is also possible to load and use them directly as soon as they are in the PYTHONPATH. These programs have nothing special, but still consider them under GPLv3 when nothing is said about licensing:
- A dataset related to mobile operators identifiers, codes and related geographical information: MCC_MNC. All information are sourced from public websites (Wikipedia, the World Factbook, ITU-T...). This has been open-sourced thanks to P1 Security.
- A minimal 3G and LTE / EPC core network, making use of many features available in pycrate and CryptoMobile: corenet. It implements all the necessary functions of an MME-SGW-PGW, MSC-SGSN-GGSN and AuC to drive home-NodeBs, eNodeBs and UEs over standard Iuh and S1 interfaces. It mostly supports SMS and IP connectivity. 5G support is currently on hold, and only a basic NGAP support exists yet. Like always, it is open-source and entirely written in Python.
- The almighty Python mobile framework pycrate. It implements a very complete ASN.1 compiler and runtime (current support includes BER, CER, DER, APER and UPER, and OER thanks to a great external contribution), a CSN.1 translater and runtime, and more and more protocols and file formats. It runs on both with Python 2.7 and 3.4+, without any specific dependency. A growing wiki is also available with guidelines for interested people. Pycrate integrates decoders for many cellular and mobile protocols ; it also integrates all the logic required to make corenet work (see above). This work was initiated and open-sourced thanks to my former employer (ANSSI), the excellent osmocom project and their accelerate3g5 initiative, maintained and extended during my former position at P1 Security. See my osmocom wiki page for some more info. Please note the project is newly available (from February 2024) as part of the github organization pycrate-org to encourage external collaboration.
- A library implementing 3G, 4G and 5G mobile cryptographic algorithms (Kasumi, SNOW 3G, ZUC, AES, COMP128, Milenage, TUAK and ECIES) and their modes of operation for ciphering and integrity protection. C codes are simply taken from the 3GPP and GSMA specifications and Python bindings are provided: CryptoMobile. This is of particular use with the LTE and 5G NAS format implementation within pycrate.
- A library, originally named card, for reading and writing smartcards like SIM and USIM: card. I use it e.g. to personalize blank SIM / USIM, and to read and graph filesystems of commercial SIM cards (here is an example).
Following are old and unmaintained software:
- An old program to monitor IEEE 802.15.4 channels with Texas Instruments CC2531 dongles (and their stock firmware) ; based on python-libusb1 and libmich: CC2531. It is working well on Linux, but not that much on Windows (where the USB backend used by libusb does not allow some required USB controls). Only works with Python2.7.
- An old library firstly intended to help with building and parsing multiple digital formats and protocols, and more especially for mobile network protocol, including some basic ASN.1 features: libmich. It was initially published in 2009 and its development has been stopped in 2017, after the release of pycrate. It only works with Python2.7.
- A (loosely) attempt at making an audio sequencer with Python: Cequence. The sequencer in itself is very simple, the most difficult being to find a stable and multi-platform audio library usable in Python. To me, the one with the best result is provided by pygame. Only works with Python2.7.
- A (very, very) old code for scanning SCTP ports, even if nmap does it since years. Only works with Python2.7.
- A very old script to parse and make python dictionnaries from IANA text file referencing protocols parameters. I used it to parse SIGTRAN registries. Only works with Python2.7.
- Another very old bash script for reading your 1st pair of IPsec SA thanks to the setkey command (from the "ipsec-utils" package), and print wireshark-friendly launch commands. To get it working right in wireshark, you need to configure the ESP protocol decoding options.
Technical doc
- You can find various technical blog posts on the P1 Security Labs web site, written by former colleagues at P1 Security and myself. Most of them relates to the security of mobile and telecom infrastructures. Unfortunately, a website migration in late 2023 broke some of the content.
- A presentation in french I gave on the general aspects of roaming security, during the SSTIC 2022 conference in Rennes, again. This work was done together with Marin.
- An article in french I wrote for the MISC magazine, on the security of 5G communications, in 2021.
- A presentation in french I gave on the ASN.1 compiler integrated into pycrate, during the SSTIC 2018 conference in Rennes (France).
- A presentation in french I gave for the "Journées Nationales 2018 Pré-GDR" organized by the CNRS, on the security of modems and mobile terminals in may 2018 in Paris.
- An article Christophe and I wrote and a presentation we gave, again on LTE baseband security at SSTIC 2016.
- An article I wrote and a presentation I gave on 2G-3G-LTE baseband security at SSTIC 2014 (great security conference), in french. The original PDF article and HTML slides (based on reveal.js) are available.
- A presentation I gave at C&ESAR 2011 about LTE security. Mostly in french, and available here: CAESAR LTE security.
- A nice PNG showing the very most basic security procedures when connecting an LTE network, with EPS-AKA authentication, key derivation and encryption / integrity protection of communication channels.
Music
Actually, in my free time, I much like to hack my MIDI sequencer, drum machines and synthesizer. You can find some (good and bad) electronic
(very old) tracks and mixes.
And now embrassing modern cloudy technologies, you can find me on mixcloud and
soundcloud with more recent mixes and music productions.
Pictures
I am accumulating a bunch of pictures from several trips. Do no hesitate to take a look to these nice or suprising shoots (updated 2018).
Contact
If you encounter any troubles on the site or with programs, or for any question or comment,
do not hesitate to send me an email:
michau [dot] benoit [at] gmail [dot] com