Sélectionner une page

Cryptographie mobile à destination du cloud !

« C’est dans cette ambiance de bonne humeur et d’entraide que mon projet avance. »

 

Retour d’expérience de Benjamin, stagiaire du Lab’.

 » J’ai rejoint le Lab’ d’Astek début avril 2018. Le jour de mon arrivée, nous avons pris place dans un nouvel espace totalement dédié à l’Innovation Lab’. Un grand « open space » permettant des travaux et de la communication d’équipe nous attendait. On y trouve également de quoi réaliser nos pauses café ! On s’installe, et nous récupérons chacun un ordinateur. Oui mais maintenant ? Mon sujet de stage était ouvert : cryptographie mobile à destination du cloud, et après avoir échangé avec François Varloot, le Directeur de l’Innovation Lab’, à moi de préconiser un sujet permettant d’élaborer une solution innovante en rapport avec la sécurité et les communications mobiles (voix ou data). « 

 

Cryptographie mobile à destination du cloud !

 » J’ai donc commencé mon stage par des recherches documentaires sur l’état du réseau LTE (4G), son fonctionnement, ses failles. Je commence à voir des choses qu’il serait possible de faire. Une discussion avec François Février, le RSSI d’Astek, m’apporte de nouvelles pistes de réflexion. Il me parle de cryptographie homomorphique, quelque chose de tout nouveau dont il a entendu parler dans une conférence. Je me renseigne sur ce sujet, découvre ce qui se cache derrière ce mot effrayant, et trouve quelques ressources qui me permettraient de me lancer dedans. C’est un nouveau cap pour le projet. La cryptographie homomorphique, c’est la capacité de pouvoir effectuer des calculs sur des données chiffrées et en fournir le résultat sans connaître ni les données elles-mêmes, ni le résultat fourni. Seul le propriétaire de la donnée pourra décrypter le résultat et en bénéficier.

Le concept semble puissant, peut-être même un avenir « cybersecure » pour de nombreuses solutions cloud actuelles. La recherche est très active sur le sujet, le concept ayant été révélé possible seulement en 2009 par Craig Gentry. La plupart des informations que je trouve datent de 2017, et une librairie open source permettant de mettre en place des opérations de cryptographie homomorphique est développée sur Git’hub. Je trouve donc des outils nécessaires à la mise en place d’un tel schéma, mais pour faire quoi ? On décide de développer un POC et un prototype pour un usage simple qui puisse concerner le plus grand nombre. « Et pourquoi pas pour nos impôts ? Avec l’arrivée du prélèvement à la source, c’est d’actualité ! ».

L’idée me plait, le tracé du stage se dessine clairement. Développer une application permettant à n’importe qui de saisir en toute confidentialité les données de calcul de son impôt sur le revenu (salaires et compléments, nombre de parts, déductions, …) via une application mobile, et un serveur qui homomorphiquement calculera l’impôt à payer et le renverra chiffré à l’utilisateur, sans que le serveur lui même puisse connaître ce montant d’impôt. Un tel service pourrait évoluer au gré de la législation des impôts pour le bénéfice de tous, tout en préservant l’accès aux données personnelles.

 

Cryptographie mobile

 

Le cadre est là, il ne me reste plus qu’à avancer. Le choix du langage m’est imposé par celui de la bibliothèque que je veux utiliser (Helib), et sera donc C++. Le sujet étant encore très récent, le manque de documentation se fait sentir, et je dois donc découvrir le fonctionnement interne de beaucoup de choses par moi-même. La mise en place des nombreux paramètres cryptographiques est déjà une première étape. Lesquels choisir pour que cela fonctionne, et surtout que cela corresponde aux besoins de mon application ? La vie au Lab’ s’installe en même temps. Le rythme de travail est confié au soin de chacun. L’effet « open space » permet également de discuter facilement avec ceux qui sont sur d’autres projets, et de pouvoir leur poser des questions quand on est bloqué ! C’est dans cette ambiance de bonne humeur et d’entraide que mon projet avance.

J’arrive à chiffrer et déchiffrer des données, il est temps de s’attaquer à la partie algorithmie du programme. Programmer sans connaître les données que l’on manipule, c’est bien plus difficile que ce que l’on imagine au début. Pas de « if », pas de conditions de fin d’arrêt de calcul sur les données : cela revient à traiter tous les cas possibles sans que cela n’altère le résultat. Les contraintes sont nombreuses, et plus la complexité avance plus la documentation se raréfie encore.

 

Après de nombreuses heures de tests, d’expérimentation et de discussions autour d’un café, j’ai finalement une première application fonctionnelle. Elle ne gère pour l’instant que le salaire de l’utilisateur comme paramètre, mais c’est déjà une réussite ! Il est temps de s’attaquer à la partie mobile. Malheureusement après une semaine d’essai, je me rends compte que le portage de mes librairies C et C++ sur Android est trop complexe pour moi. Tant pis, on réoriente le projet.
On va donc développer une application client-serveur et la « dockeriser ». Premier obstacle donc, réussir à transmettre du client au serveur sa clé cryptographique, ses données ainsi que quelques autres données utiles pour les calculs. Je trouve un exemple obsolète au fin fond d’un fichier test commenté de la librairie, et à partir de cela je commence à expérimenter. C’est assez fastidieux, mais de jours en jours les progrès se voient. Au bout de trois semaines, j’ai atteint mon objectif de client-serveur. Les communications sont synchronisées, sans perte, les calculs sont justes et les résultats exacts. La dernière étape est de mettre l’ensemble dans des containers, pour permettre une installation simple, rapide et multiplateformes de mes applications. Pour une fois la documentation est présente à foison, Docker étant largement utilisé et répandu dans le monde. « 

Benjamin a terminé son stage de 6 mois au sein de l’Innovation Lab’. Ainsi, il a pu finaliser ses premiers travaux et définir des orientations pour que le sujet puisse être approfondi par les nouvelles promos. C’est fier de ce qu’il a su accomplir au sein de l’Innovation Lab’, que Benjamin a réalisé sa soutenance et concrétisé son parcours. Il est désormais en CDI chez Astek, et intervient sur un projet pour Alcatel. Nous lui souhaitons le meilleur pour la suite 😊.

Comme Benjamin, rejoignez l’Innovation Lab’ pour votre stage de fin d’études !

Pour en savoir plus sur nos stages, découvrez l’Agorastek !

Précédent

Share This

Vous avez aimé ce contenu ?

Partagez-le à votre réseau

Astek Mag Footer