Fonction de hachage appliquée à la facturation électronique : sécuriser la digitalisation fiscale grâce à la cryptographie

Fingerprint

Comme nous l’avons expliqué dans nos articles précédents, l’implémentation d’un système de reporting en temps réel a le potentiel de réduire la fraude à la TVA sans avoir besoin de collecter une large quantité de données. En optant pour un système où la confidentialité des données est au cœur des préoccupations, les entreprises auraient toujours besoin de transmettre leurs données de facturation. Cependant, plutôt que de collecter et stocker leurs données en « texte brut », c’est-à-dire lisible, dans un système centralisé, accessible en permanence par le personnel autorisé pour effectuer des contrôles, il est possible d’effectuer ses mêmes contrôles à partir de données chiffrées. C’est l’un des avantages majeurs à opter pour un système de reporting en temps réel confidentiel : le chiffrement des données. En effet, au lieu de stocker les données en tant que telles, une empreinte numérique chiffrée de la facture peut être générée grâce à une « fonction de hachage ». Ainsi, cet article est une introduction aux fonctions de hachage pour ceux qui s’intéressent aux problématiques relatives à la TVA. Dans le développement qui suit, nous nous pencherons sur les fonctions de hachage appliquées aux solutions existantes. Par la suite, nous nous intéresserons à l’étendue des bonnes pratiques concernant les fonctions de hachage. Enfin, nous verrons comment ses fonctions sont applicables aux systèmes de reporting en temps réel.

Qu’est-ce qu’une fonction de hachage ?

Comme son nom l’indique, hachage vient du verbe « hacher », qui, selon le Larousse, signifie « tailler quelque chose, le mettre en pièces » [1]. Cela réfère au mécanisme de la fonction lorsqu’elle est actionnée. En effet, une fonction de hachage est un algorithme mathématique qui taille les données fournies pour les rendre méconnaissables et les réorganise en empreinte numérique chiffrée qui permettra d’identifier la donnée initiale. Prenons le cas d’une fonction de hachage appliquée à une facture. En hachant les données présentes sur la facture, elles sont donc rendues méconnaissables. Une empreinte numérique chiffrée est par la suite créée, ce qui permet l’exploitation des données de cette facture via cette empreinte, garantissant ainsi l’intégrité des données de facturation. Afin d’illustrer ce concept, imaginez une pierre. Cette pierre peut être hachée en petits morceaux et rendue méconnaissable (voir figure 1 ci-dessous). De la même manière, les données peuvent être mises en morceaux et transformées grâce à un algorithme de hachage.

Figure 1 : Pourriez-vous réassembler les fragments pour leur rendre leur forme originelle ?

stones

Source : Khadeeja Yasser - Unsplash

Mais alors, que fait une fonction de hachage exactement ? À partir de données fournies en entrée, la fonction de hachage va produire une chaîne constituée de chiffres et de lettres à taille fixe. Cette suite est ce qu’on appelle l’empreinte numérique, ou selon les contextes empreinte cryptographique, hash, empreinte, somme de contrôle, résumé de message condensé, condensat, ou bien encore signature. Sur la figure 2 (ci-dessous), vous pouvez trouver quatre exemples simples afin de vous aider à visualiser la transformation :

Figure 2 : Exemples de fonction de hachage appliquée à différentes entrées

Fonction de hachage

Source : summitto

Comme vous pouvez le constater, si vous appliquez une fonction de hachage à des entrées de tailles variables, vous obtenez un résultat de même taille. Et même en changeant seulement une lettre (deuxième et troisième lignes), les résultats sont radicalement différents et dissociés. De la sorte, une fonction de hachage crée une empreinte numérique de la donnée entrée. Les fonctions de hachage entremêlent les données entrées de façon à ce que le résultat soit toujours une empreinte numérique composée aléatoirement de chiffres et de lettres, et ce peu importe la donnée d’entrée.

Comment est-ce que les fonctions de hachage sont utilisées pour effectuer des vérifications et contrôles de données ?

Mais alors, à quoi peuvent bien servir ses algorithmes ? À bien des choses ! Les empreintes numériques sont des éléments constitutifs essentiels. Elles sont notamment utilisées pour les signatures numériques par exemple, qui sont largement utilisées dans les domaines de la facture et de l’archivage électronique. Si deux empreintes numériques venaient à être identiques, cela veut forcément dire que les données entrées sont, elles-aussi, identiques. C’est un outil puissant si utilisé en adoptant de bonnes pratiques.

Il est important de souligner que toutes les fonctions de hachage ne sont pas toutes d’égale efficacité ou présentant le même degré de sécurité. Par exemple, pour qu’un algorithme de hachage soit considéré comme « fort », il devrait être impossible pour deux entrées de donner le même résultat. De plus, il devrait être également impossible de retrouver les données entrées à partir d’une empreinte numérique. L’explication mathématique approfondie est en dehors du périmètre de cet article, néanmoins des ressources seront listées en conclusion si vous souhaitez aller plus loin.

Au fil des années, les cryptologues ont considérablement amélioré les algorithmes de hachage, mais ils ont aussi appris à les « casser ». L’algorithme MD5 fut développé en 1992 par le cryptologue Ronald Rivest. Aujourd’hui, il est facilement déjoué par un simple ordinateur de puissance « normale » en quelques secondes [2]. L’algorithme SHA1 (Secure Hash Algorithm), standardisé en 1995, a été utilisé aux quatre coins du globe jusqu’en 2017 où il a été cassé pour la première fois, après des années de tentatives infructueuses [3]. Au moment de l’écriture de cet article, l’Institut national des normes et de la technologie des États-Unis (US National Institute of Standards and Technology) recommande l’utilisation d’algorithmes plus récents tels que SHA2, ou même SHA3. Il importe néanmoins de relever qu’il existe de nombreuses alternatives, chacune offrant des fonctionnalités variées étant optimisées pour des applications variées [4].

Pourquoi utiliser des empreintes numériques pour sécuriser et vérifier les données de facturation ?

Les algorithmes de hachage peuvent améliorer la façon dont les contrôles de données de facturation sont effectués, ainsi que la sécurité desdites données. Et pour vous montrer comment cela serait possible, nous avons décidé d’utiliser un exemple. Voici Alice, une fabricante automobile, et Bob le constructeur.


Figure 3 : Alice envoie une facture à Bob

Empreinte

Source : Freepik, summitto


Un large éventail de contrôleurs va effectuer des vérifications croisées sur les factures afin de s’assurer que les informations sont correctes. Imaginez les cas de figure suivants :

  • Les contrôleurs financiers voudraient savoir si Alice et Bob ont tous les deux inclus les factures des achats et des ventes dans leurs registres de comptabilité
  • L’administration fiscale voudrait savoir si Alice et Bob ont déclaré un montant identique vis-à-vis de leur échange
  • Les institutions financières, telles que les agences de notation de crédit ou les sociétés d’affacturage, souhaiteraient, elles aussi, avoir la garantie qu’Alice et Bob aient bien déclaré les mêmes informations aux institutions financières, contrôleurs financiers et à l’administration fiscale

Figure 4 : Plusieurs parties sont intéressées par les informations financières d’Alice et Bob

Empreinte

Source : Freepik, summitto


Dans tous les cas de figure présentés ci-dessus, la tierce partie n’a pas besoin d’accéder aux informations présentes sur les factures. La seule information qui a besoin d’être connue, c’est si les informations communiquées aux différentes agences et institutions sont identiques. L’une des façons de rendre cela possible est de requérir des entreprises d’appliquer une fonction de hachage sur leurs factures et de publier les empreintes numériques publiquement. Les contrôleurs en tout genre pourraient ainsi avoir la preuve que les factures sont enregistrées auprès de l’administration fiscale, l’administration fiscale a la preuve qu’Alice et Bob ont déclaré des montants correspondants et les administrations financières ont la preuve que les informations déclarées sont les mêmes partout. Toutefois, cela est seulement possible si toutes les parties utilisent la même source d’information.


Figure 5 : Tout le monde devrait pouvoir avoir accès à une source unique de vérité

Empreinte

Source : Freepik, summitto


Démonstration de la création d’une empreinte numérique électronique

Afin que vous puissiez avoir une compréhension approfondie des empreintes numériques de factures, il est temps que vous essayiez vous-même ! Ci-dessous, vous trouverez une facture avec plusieurs champs d’informations et son résultat, une empreinte numérique hachée grâce à l’algorithme SHA3. Si vous changez un ne serait-ce qu’un caractère, vous verrez l’empreinte numérique changer.


Guide de bonnes pratiques à l’usage des fonctions de hachage

Il y a plusieurs éléments à prendre en compte en développant un système utilisant une fonction de hachage pour créer des empreintes numériques à partir de factures.

D’une part, il est crucial d’utiliser une fonction de hachage sécurisée. Lors de la configuration initiale, il est recommandé de recourir aux algorithmes les plus récents et les plus sécurisés. Il est également conseillé de continuer à s’informer sur les avancées technologiques des fonctions de hashing. De nouvelles failles sont découvertes chaque année, cependant il aura fallu 20 ans pour arriver à casser SHA1. Selon toute vraisemblance, la fonction SHA3, dont l’usage est largement répandu et dont l’algorithme a été testé publiquement, sera exploitable pendant de nombreuses années. On regrette néanmoins que des administrations fiscales continuent d’utiliser SHA1, et ce aujourd’hui encore, avec de nouveaux systèmes.

L’utilisation de ses algorithmes perméables rend possible la falsification. En effet, n’importe qui, armé de quelques compétences techniques, un bon ordinateur, et la volonté d’altérer des factures peut créer de différentes factures ayant la même empreinte numérique. Dans ce contexte, les empreintes numériques sont inutilisables à des fins de vérification.

Par ailleurs, pour pouvoir publier les empreintes numériques sur un registre public afin de créer une source unique de vérité, il devrait être impossible que les informations de facturation soient cassées à partir de leur empreinte numérique. En effet, en utilisant des attaques par « force brute » sur des algorithmes perméables, il est possible de casser l’empreinte numérique d’une facture afin d’accéder aux informations présentes sur celle-ci en texte lisible [5]. Pour éviter que cela arrive, les empreintes numériques devraient être créées ou chiffrées de telle sorte que seul le propriétaire et les individus/entités autorisés par le propriétaire puissent avoir accès à la clé permettant de reconstruire les données à partir de l’empreinte numérique.

Conclusion

Dans cet article, nous vous avons présenté une introduction poussée des fonctions de hachage et les possibilités d’applications à la transmission de données de facturation. Nous vous avons expliqué comment les fonctions de hachage peuvent transformer arbitrairement les données en une empreinte numérique de taille fixe. Cette empreinte numérique peut être utilisée pour transmettre les données financières des entreprises de façon plus sécurisée car cela permet aux contrôleurs de vérifier les informations présentes sur les factures sans avoir besoin de consulter l’entièreté de celle-ci. Prudence toutefois, cet article n’est en aucun cas une explication approfondie. Si vous souhaitez en apprendre plus, n’hésitez pas à nous contacter à info@summitto.com.

[1] Définition de « hacher », Larousse, dictionnaire en ligne, accessible en ligne ( consulté le 29 mars 2021) : < https://www.larousse.fr/dictionnaires/francais/hacher/38800 >

[2] Tao Xie, Fanbao Liu et Dengguo Feng, ‘Fast collision attack on MD5’, IACR Cryptol. ePrint Arch., 2013, accessible en ligne : < https://eprint.iacr.org/2013/170.pdf >

[3] Marc Stevens, et al., ‘The first collision for full SHA-1’, Int. Cryptol. Conf. — CRYPTO 2017, IACR, 08/2017, pp.570-596, accessible en ligne : < https://shattered.io/static/shattered.pdf >

[4] (En anglais) US National Institute of Standards and Technology, Hash Functions, 08/2015, accessible en ligne (consulté le 29 mars 2021) : < https://csrc.nist.gov/Projects/Hash-Functions/NIST-Policy-on-Hash-Functions >

[5] CNIL, Force brute (attaque informatique), accessible en ligne (consulté le 30 mars 2021) : < https://www.cnil.fr/fr/definition/force-brute-attaque-informatique >