Sujet Redocs Be Ys 2020

Contexte et motivation

Le but de ce projet est d’étudier la sécurité liée à la réutilisation et le rafraîchissement d’un token dans des applications cryptographiques.

Dans certaines applications, (par exemple le paiement en ligne sur un site marchand), il est parfois souhaitable de ne pas stocker d’informations sensibles (par exemple le numéro de carte) qui nécessiteraient des mesures de sécurité trop drastiques, mais plutôt de stocker un jeton (ou token) qui permette d’assurer la cohérence de l’application, sans laisser fuiter d’information sensible. Ces jetons sont générés le plus souvent via une clef secrète qui est à la disposition du client (par exemple, un boîtier SecurID).

Bien que de nombreuses solutions existent sur le marché [0], il existe très peu d’études théoriques sur plusieurs aspects de la tokenisation, et de nombreux problèmes restent ouverts. Par exemple, un renouvellement de clef invalide de fait tous les tokens précédents. Deux solutions ont été proposées dans [1], mais aucune n’a été implémentée à notre connaissance. De façon similaire, le nombre de fois où un token peut être utilisé n’est pas vraiment étudié, il est assez classique en paiement en ligne de ne jamais utiliser le même token plus de 3 fois, mais sans socle théorique.

Dans le cadre du développement de la solution de Tokenisation de l’entreprise, il est prévu de gérer le cycle de vie des tokens utilisés à la place des PAN (primary account number) lors des transactions bancaires. Pour générer et gérer ces tokens ainsi que stocker leur lien sensible avec les PAN (primary account number), il est envisagé de concevoir et implémenter un produit reposant sur la cryptographie symétrique. En effet, les propriétés de la cryptographie symétrique permettent de répondre à l’exigence de performance des transactions bancaires. Ce produit est appelé Token Service Provider.

Objectifs

L’objectif de ce projet est donc d’explorer une des nombreuses pistes de recherche possible, comme par exemple :

  • Étudier la sécurité d’un système de tokenisation, en particulier quand le token est réutilisé à plusieurs endroits. Ainsi, il faudra étudier, que ce soit de façon théorique ou pratique (mise en place d’une attaque), le niveau de sécurité de la solution à mesure que le token est réutilisé dans des contextes différents.
  • Étudier précisément le protocole du Token Service Provider, et en analyser formellement la sécurité, ou dans le cas contraire trouver des attaques

Une thématique ou l’autre pourra être favorisée par l’équipe en fonction des affinités du groupe.

Moyens à disposition

Pour avancer dans ce projet, vous aurez à disposition une API de Token Service Provider, ainsi que la documentation afférente. Une personne familière au projet sera également présente pour répondre à vos questions lors d’entretiens quotidiens.

[0] Sandra Diaz-Santiago et al. A Cryptographic Study of Tokenization Systems https://eprint.iacr.org/2014/602.pdf

[1] Christian Cachin et al. Updatable Tokenization: Formal Definitions and Provably Secure  constructions https://eprint.iacr.org/2017/695.pdf