Site personnel de Jean GEBAROWSKI sur la sécurité des systèmes informatiques
Archives de catégorie : Concepts
La catégorie concepts regroupe les généralités utiles en sécurité des SI et parfois d’autres plus globales à l’informatique, mais ayant un sens ou un intérêt particuliers en SSI.
Moi qui suit un ardent défenseur de la langue française, je cède ici car l’expression est trop répandue pour ne pas la reprendre. Et surtout le terme fausses informations n’a pas exactement la même signification ni la même connotation complotiste.
Comment ça se passe
Définition
Commençons par tenter de définir ce que c’est. A mon sens, une fake new est une information fausse ou biaisée présentée comme incontestable, dans le but de manipuler les opinions.
le piratage pur et simple d’un site d’information ; c’est difficile car il faut s’introduire frauduleusement dans un SI, et risqué juridiquement ;
la copie visuelle, un peu moins risquée ;
l’usurpation de noms de domaines (prendre un nom de domaine proche d’un site connu) : on a l’embarras du choix avec les nouveaux TLD ;
les campagnes de publicité sur des médias reconnus, avec des supports faisant croire à de l’information (genre publi-information, mais avec un but plus clairement malveillant) ;
le site ad hoc, créé de toute pièces, avec des rédacteurs produisant du contenu régulièrement
Création du faux contenu
Circular reporting
Un mécanisme courant d’apparition et de crédibilisation d’une fausse information est le circular reporting. Le procédé est le suivant :
Un agent A publie l’information souhaitée, sans source ;
Un agent B (complice du premier ou trompé par celui-ci) publie l’information (toujours sans source) ;
L’agent A reprend alors l’information, mais cette fois en citant l’agent B. La boucle est bouclée.
En fonction de la crédibilité ou de la force d’influence de l’agent B, l’information se diffusera plus ou moins rapidement, mais l’agent A pourra désormais donner son information totalement fabriquée avec une source connue (connue ne veut pas dire forcément fiable).
Wikipédia est souvent utilisé comme « agent A », car il est souvent (trop souvent) repris comme source d’information fiable…
Variante : la source cachée
En journalisme, on demande de croiser ses informations en utilisant plusieurs sources différentes.
Or, notamment avec le web, plusieurs médias réputés peuvent reprendre une information dont la source n’est pas connue du lecteur final. Ainsi, ce dernier souhaitant vérifier l’information, ira sur ces différents médias : il aura l’impression d’avoir plusieurs sons de cloche alors qu’en réalité, ces médias ne font que reprendre la même et unique source.
Ca me rappelle un peu ce que je disais à l’époque sur le Web 2.0, avec les flux RSS fleurissant comme des boutons de sébums chez les adolescents, avec pour résultat de vous renvoyer en 50 exemplaires sur 50 sites différents la même information à la virgule près.
Création des faux documents
Tellement facile de nos jours… L’important pour le manipulateur sera d’avoir quelque chose de crédible mais de qualité moyenne, afin d’empêcher toute expertise ou toute recherche de retouche sur une photo, par exemple. Même les vidéos sont facilement contrefaites…
La troncature
Un moyen simple de manipuler un support est de le tronquer pour ne garder qu’une partie en effaçant une partie signifiante du support.
Autre grand travers dans le domaine de fake news : l’absence de visibilité des droits de réponse. En avril 2019, en période de tension entre l’administration américaine et la société Huawei, une nouvelle tombe sur les téléscripteurs : des backdoors auraient été trouvé(e)s sur des équipements réseau Huawei. Or très peu de temps après, Vodafone Italie (pourtant source annoncée de l’information) dément1 en indiquant n’avoir trouvé qu’un accès telnet2. Ok, utiliser ce protocole en soit pourrait être considéré comme une faille, mais il restait pourtant très courant de s’en servir chez les équipementiers réseau.
Faites une recherche Google et vous trouverez cette nouvelle multipliée à l’infini à la date du 30 avril 2019. Ce qui n’apparaît pas clairement est que cette information ne vient que d’une seule source, Bloomberg, qui a pourtant connu des précédents d’informations douteuses34 avec l’affaire SuperMicro5.
Utiliser une information provenant d’une source unique (Bloomberg), ayant eu des problèmes de crédibilité sur le même domaine de la sécurité informatique, pour établir une opinion et des sanctions économiques me semble problématique.
Et ne pas (ou peu ou pas assez) entendre la réponse (crédible ou pas) de Huawei indiquant que ces faits dataient de plusieurs années en arrière (2011 et 2012), que ces problèmes avaient été corrigés et qu’ils n’auraient pas forcément permis un accès à distance par internet2 est tout aussi perturbant.
Diffusion du contenu
Il est impressionnant de voir qu’il n’est pas utile d’écrire beaucoup pour être lu : en positionnant bien son article, avec une accroche bien faite, quelques lignes et une image spectaculaires suffiront.
Le canal privilégié sera les réseaux sociaux, très peu modérés ou contrôlés. Mais l’information ne sera reprise que si elle est issue d’un compte ayant une certaine popularité ou s’étant construit une image de confiance (apparente) suffisante.
Le compte créé pour l’occasion
Les comptes créés spécialement pour diffuser des fake news ont souvent des caractéristiques communes :
Compte récent (car les comptes douteux finissent heureusement souvent par être supprimés) ;
L’activité est surtout du relais d’information, et peu de création par lui-même ;
Beaucoup de mentions de type j’aime, ce qui s’achète facilement ;
En général peu d’abonnés, ou des abonnés de profil douteux (mais c’est difficile à contrôler).
Le compte original (par compromission)
La compromission d’un compte légitime est aussi possible, via phishing ou grâce aux questions secrètes encore beaucoup trop utilisées. Quoi de mieux que l’original pour diffuser une info bidon ?
La contrepartie est la limitation dans le temps : souvent surveillés, ils finissent par être redonnés à leurs propriétaires.
Double switch
Plus subtil, cette technique consiste à compromettre n’importe quel compte ayant un bon niveau de confiance. Sur Twitter, l’attaquant change ensuite le nom du compte pour celui qu’il veut (Donal__Trump par exemple), ce qui libère l’ancien… qu’il peut ensuite reprendre puisqu’il vient lui-même de le libérer !
Ainsi il dispose d’un compte ayant de nombreux followers, avec une identité qu’il a choisie (le compte original), et un autre compte (sans réputation ni followers) mais avec le nom du compte original ! Pas mal avec une seule compromission, non ?
Autres voies (voix)
Tout s’achète, y compris certains comptes de réseaux sociaux (avec leur public de followers). Et les blogs ou autres forums peuvent aussi encore servir, tout comme les commentaires (issus de robots ou pas).
Propagation
Une fois diffusé, le mécanisme continue : il faut toucher le public le plus large possible, et les réseaux sociaux font merveilles dans le domaine (et encore plus s’ils sont aidés par des robots).
Comment on lutte
Comme on peut, surtout que les mesures préconisées sont souvent contradictoires avec la liberté d’expression ou la neutralité du net.
On peut traduire par tas de données, même s’il n’y a pas l’analogie aquatique. Quoi que tas de données serait mieux approprié pour big data. Parce que lac de données c’est bôf. Bref. Si j’ai bien compris1 dans ce monde merveilleux de la grosse donnée, un datalake est un entrepôt de données, mais dont la grande force est de n’avoir aucun format et de stocker des données quasi-brutes (en les améliorant je pense de quelques métadonnées, à savoir d’où viennent ces données, qui les a produites, quand, etc.).
Avant, on récupérait des données, on les formatait pour les stocker de façon structurée quelque part, ça s’appelait un datawarehouse. Et après on chargeait ce dont on a besoin (Extract – Transform – Load).
Maintenant c’est mieux : on les stocke en tas de merde données, sans modification ni altération donc sans perte d’info (ce qui est bien, faut reconnaître), puis on les charge, et seulement à la fin on en fait quelque chose, en leur appliquant des filtres, des modèles, des structures, mais a posteriori2. Donc on passe en Extract – Load – Transform. Comme les puissances de calcul et de stockage peuvent maintenant le permettre (c’est-à-dire stocker des données en tas de merde sans pour autant que ça soit trop le bordel bazar), ben on le fait.
Et on vient de révolutionner pour la 256e fois l’informatique.
Les fonctions de hachage sont des fonctions particulières très utilisées dans le cadre de la sécurité informatique, notamment dans le domaine de la cryptographie et des certificats numériques. Elles permettent d’obtenir une empreinte, également appelée condensat (« hash »), à partir d’un message ou de tout document numérique.
Il existe un nombre assez restreint de fonctions de hachage, car elles sont assez complexes à mettre au point et reposent sur des mécanismes mathématiques complexes.
Principales caractéristiques
En pratique
Une fonction de hachage est une fonction mathématique particulière permettant de calculer rapidement l’empreinte d’une donnée informatique. Une fonction de hachage doit présenter les caractéristiques suivantes :
La taille du condensat (« hash ») est fixe (pour un algorithme donné) ;
Elle ne fonctionne que dans un sens (c’est-à-dire qu’il n’existe pas de fonction inverse) ;
Pour une entrée donnée, on doit toujours obtenir le même résultat (empreinte) ;
Toute modification même très légère en entrée produit un résultat très différent ;
Elle est rapide à calculer.
L’intérêt de ce condensat est d’avoir une sorte de signature d’un document :
L’irréversibilité permet de ne pas pouvoir retrouver le document original à partir du condensat (il est même très difficile de construire un document quelconque à partir d’une empreinte donnée) ;
Si deux hashs sont différents, alors les documents initiaux sont forcément différents.
Intérêt et usage des fonctions de hash
L’intérêt principal est de permettre d’identifier la donnée de façon presque sûre sans pour autant transmettre la donnée : il est mathématiquement très difficile (voire impossible) de retrouver la donnée initiale à partir de son empreinte.
Principe d’une fonction de hachage. Une donnée identique en entrée donnera la même empreinte. A l’inverse, une légère différence donnera une empreinte complètement différente.
Ces fonctions peuvent avoir plusieurs usages, plus ou moins critiques. Cela peut aller du simple contrôle technique pour s’assurer qu’un message a été correctement transmis (ou n’a pas été modifié), jusqu’à la signature électronique.
Pour le mot de passe
On s’en sert également pour chiffrer les mots de passe dans beaucoup de systèmes. Puisque ces fonctions sont rapides, on peut facilement calculer l’empreinte d’un mot de passe ; c’est alors lui qui est stocké dans le système, et non le mot de passe en clair. Comme il est difficile de retrouver la donnée initiale à partir d’une empreinte, la protection ainsi obtenue est bonne (plus ou moins en fonction de l’algorithme utilisé et de sa mise-en-oeuvre).
Lorsqu’un utilisateur veut se connecter à un système, il entre son mot de passe. On calcule ensuite son empreinte : si c’est la même que celle stockée dans le système, l’accès est alors autorisé.
Pour vérifier l’intégrité d’une donnée
Si on souhaite vérifier qu’une donnée (un fichier informatique) est intègre, c’est-à-dire non modifiée, on communique le fichier au destinataire et ce dernier recalcule lui-même son empreinte : celle-ci doit correspondre à une empreinte de référence.
Les fonctions de hachage permettent le contrôle d’intégrité et la prise d’empreinte numérique.
Toute la subtilité vient ensuite de la façon dont on connaît cette empreinte de référence : quand on télécharge un fichier, cela peut être une somme de contrôle ; pour un certificat, c’est une des données du certificat.
Pourquoi presque sûre ?
L’empreinte est généralement de petite taille et de longueur fixe. Même si cela représente beaucoup de possibilités, ce nombre est fini, alors que le nombre d’entrées possibles est, lui, infini.
Statistiquement, il est donc très peu probable que deux données différentes en entrée produisent la même empreinte, mais c’est possible : la difficulté augmente avec la longueur choisie pour l’empreinte. Pour SHA-1, c’est 160 bits. pour SHA-256 c’est… 256 bits !
Trouver deux données différentes ayant un même hash est appelé collision. La probabilité d’une collision dépend principalement de la longueur du hash, mais aussi (un peu) de la façon dont il est calculé (notamment la rapidité de son calcul).
Les propriétés et les attaques
Propriétés formelles attendues d’une fonction de hachage
Reprenons un peu le chemin de la théorie. Selon McAfee Labs (Intel)1, une bonne fonction de hachage doit avoir les propriétés suivantes :
Résistance à la préimage : Pour une valeur de hachage donnée, il doit être difficile de trouver un fichier ou message pour lequel la fonction de hachage produirait une valeur identique.
Résistance à la seconde préimage : Pour un fichier ou message donné, il doit être difficile de trouver un second fichier ou message tel que la fonction de hachage produirait la même valeur pour les deux fichiers ou messages.
Résistance à la collision : Il doit être difficile de trouver deux fichiers ou messages distincts pour lesquels la fonction de hachage produirait la même valeur de hachage.
Dis comme ça, il n’est pas évident de voir la différence (je parle pour moi). Mais l’enjeu de cette formalisation est de voir quels sont les types d’attaques possibles : chaque propriété est plus ou moins forte, pour un type de hash donné. Et plus la propriété est faible, plus une attaque est probable.
Les différents type d’attaques
Attaques par collision
Il existe deux types principaux d’attaques de collisions :
l’attaque de collisions classique : cette attaque consiste à trouver deux messages m1 et m2 différents, tels que hachage (m1) = hachage (m2) ;
l’attaque de collisions avec préfixes choisis : étant donné deux préfixes différents P1 et P2, cette attaque consiste à trouver deux suffixes S1 et S2 tels que hachage (P1 ∥ S1) = hachage ( P2 ∥ S2) (où ∥ est l’opération de concaténation).
Il se passe que la robustesse de SHA-1 est remise en question face au développement de la puissance de calcul disponible. Or SHA-1 est très utilisé, notamment pour les certificats ; or si on peut attaquer SHA-1, on peut alors attaquer des certificats et créer des faux !
La signalétique est généralement univoque. Chrome affiche du vert quand c’est sûr, du gris pour un avis neutre, et du rouge quand le niveau de sécurité est trop faible.
Ce qu’affiche Chrome pour un certificat de type EV considéré comme sûr.
Malheureusement tout le monde applique un peu les règles qu’il veut, comme il le sent, ce qui aboutit à des incohérences pour un utilisateur multi-navigateurs (comme moi). Google a tendance à avoir l’attitude la plus restrictive, ce qui n’est pas forcément condamnable, sauf que cela n’a pas toujours de l’intérêt, comme par exemple sur des sites de peu d’influence ou de peu d’importance.
De plus, Google change ses règle si rapidement qu’un utilisateur peut être perdu en voyant un site « dégradé » (en termes de sécurité) d’une version à l’autre du navigateur.
Exemple d’utilisation
Sous Linux, si vous ne disposez pas des commandes shaxxxsum :
Facile mais instructif : quelques pannes notables sur les grands fournisseurs de Cloud (hors failles de sécurité)
Amazon Web Services
mars 2017 : une panne sur S3 (Virginie) avec plusieurs services affectés 1 . La cause est officiellement… une erreur de frappe2 !
mars 2018 : problèmes réseau (Virgine) 3 , ayant pour origine une panne électrique, avec de forts impacts 4 .
Microsoft Azure
xx
Microsoft Office
xx
IBM
nn
Google Cloud Plateform
17 juillet 2018 : panne sur le StackDriver (données de performance et diagnostic), AppEngine et Cloud Networking touchés5, perturbant notamment Snapchat, Discord, Spotify ou même Pokemon GO 😉
Le calcul multipartite sécurisé est un problème où chacune des parties veut effectuer une opération commune sur des données qui doivent rester privées (aucun des participants ne connaît les données de l’autres) et exactes (non compromises). Il faut aussi qu’un tiers extérieur (attaquant) ne puisse pas accéder lui non plus aux données privées, ni les falsifier.
Participons
Une des applications pratiques est celle du classement de fortunes de millionnaires, sans rendre publics les montants de ces fortunes. Pour deux millionnaires cela revient à savoir lequel est le plus riche sans connaître la fortune de l’autre. La réduction à deux participants n’est pas anodine car elle permet, dans certaines méthodes, une généralisation à plusieurs participants.
Un cas d’usage similaire est celui d’enchères anonymes, ou du comptage des voix dans une élection : il faut savoir qui a gagné sans connaître le vote de chacun (note : ceci est réalisable dans le cas du vote papier, et beaucoup plus difficile dans un vote électronique).
Mathématiquement, cela peut aussi être la création d’un entier aléatoire N que deux parties ne peuvent reconstituer que conjointement. Si N = pq avec p et q étant des facteurs de N, alors aucune des deux parties ne connaît (p,q). Les deux parties peuvent ainsi effectuer des calculs sur des fonctions polynomiales sans révéler les valeurs utilisées en entrée, qui restent donc secrètes, ce qui a des applications en cryptographie.
Les Yao Garbled Circuits sont une solution possible permettant le calcul multipartite sécurisé.
Google Releases Encrypted Multi-Party Computation Tool(June 19, 2019) Google has rolled out its open-source Private Join and Compute (PJC) secure multi-party computation tool. PJC can be used in studies that require data sets containing sensitive information from two separate parties. PJC will allow two sets of data to be used in computations without exposing the data each set contains. The data are encrypted during the computation; all parties can see the result. Read more in: – security.googleblog.com: Helping organizations do more without collecting more data – www.wired.com: Google Turns to Retro Cryptography to Keep Data Sets Private – www.theregister.co.uk: Google takes the PIS out of advertising: New algo securely analyzes shared encrypted data sets without leaking contents – www.zdnet.com: Google open sources Private Join and Compute, a tool for sharing confidential data sets
Le thème n’est pas nouveau, mais entre les progrès techniques (technologiques), l’avènement du big data et autres joyeusetés, nous ne sommes pas près d’avoir la paix quant aux informations personnelles circulant en dehors de notre contrôle. En outre, les petits ruisseaux font les grandes rivières : avec la prolifération des données que nous produisons, il devient possible par inférence ou corrélation de déterminer une quantité énorme d’informations nouvelles et souvent inattendues.
Soyons anonymes
Et bien cela va être de plus en plus difficile. Dernier exemple que je viens de trouver : des chercheurs ont trouvé une technique permettant de déterminer la position d’un téléphone portable à partir d’informations a priorianonymes.
Conservons notre vie privée
Ça va devenir de plus en plus difficile (je me répète). Les applications les plus utilisées sont et seront la cible des autorités et des officines secrètes qui chercheront à savoir tout sur vous, pour des raisons commerciales, idéologiques, de sécurité1, etc.
Le bastionnage (pas sûr que le terme existe) consiste à créer un bastion pour accéder à vos ressources (informatiques). On les utiliser sur des ressources sensibles par leur positionnement (ex : production), par leur nature (ex : outil de gestion de droits), leur contenu, etc.
Ainsi, personne ne peut (en théorie) accéder à vos ressources sans montrer patte blanche et sans passer par ce bastion, qui peut surveiller et mettre en historique les actions effectuées, filtrer les éléments indésirables, gérer des droits d’accès différenciés, etc.
La technique de l’authentification basée sur des assertions (ou « claims-based identity ») est un concept extrêmement intéressant sur lequel est basé SAML. Un des principaux attraits de cette technologie est de permettre la fédération d’identité.
Principes
Très concrètement, un système de jetons de sécurité (STS an anglais, pour Security Token Service) permet la gestion de l’identité d’un utilisateur (et de ses droits). Un des grands intérêts de ce concept est de permettre des relations de confiance entre STS, ce qui permet à différents systèmes d’authentification de propager une identité, et donc de créer des fédérations d’identité.
Les briques
Il y a 3 composants dans un tel système :
Le fournisseur d’identité, qui est un STS ;
Un fédérateur d’identité, qui est aussi un STS ;
Une bibliothèque permettant d’utiliser les jetons, au niveau de l’application cible.
Chez Microsoft
Microsoft permet la mise en œuvre d’un tel mécanisme soit dans son propre système d’information, soit dans le cloud.
Attention : L’Active Directory d’Azure est différent de l’Active Directory classique, car ses fonctionnalités sont limitées à celles utiles pour la gestion d’identité. Il n’y a par exemple rien sur la gestion des politiques des postes Windows rattachés, ce qui est une fonctionnalité très importante dans Active Directory.
Dans le cas où on part d’un fournisseur d’identité interne (ex : Windows Server Active Directory with ADFS) pour se connecter à une application externe via Azure Active Directory, on a besoin d’une synchronisation entre le fournisseur d’identité et le fédérateur. ==> A creuser. A contrario, on peut utiliser Azure AD Access Control en tant que fédérateur d’identité, où la synchronisation est inutile, ce qui est beaucoup plus propre.
Un logiciel antivirus combat les virus. Après ça on est bien avancé, non ? Le nom antivirus est un nom générique donné aux programmes de sécurité, dont le but est de détecter et supprimer les virus (ce qui est un abus de langage pour désigner les programmes malveillants).
La question mérite d’être posée : a-t-on besoin d’un anti-virus ? Sur un serveur web ? Sur un poste client ? Sur un smartphone ?
Les données personnelles sont précieuses, au moins encore quelques temps (je ne sais pas si cela va durer). En tout cas, plusieurs lois et règlements imposent à tous ceux qui en traitent de les protéger.
Pour cela, une techniques possible est l’anonymisation des données, qui consiste(rait) à faire en sorte que les données utilisées ne permettent pas de retrouver l’individu qui en est la source (volontaire ou pas).
Critères d’évaluation
En général, on en retient 3 :
L’individualisation, qui consiste à voir si on peut isoler ou pas les données concernant une seule et même personne ;
La corrélation, qui est la faculté de rapprocher des données a priori distinctes d’un seul et même individu (ou d’un groupe d’individus) ;
L’inférence, qui est la possibilité de déduire d’un ensemble de données des caractéristiques d’un individu. Par exemple on arrive à savoir si c’est un homme ou une femme sans avoir aucune indication du sexe dans les données qu’on possède.
Si un seul de ces critères n’est pas respecté, l’anonymisation n’est que partielle. Autant dire qu’une véritable anonymisation est, en pratique, quasiment impossible à obtenir, surtout à l’heure du big data. D’autant que si elle était effective, cela poserait de gros soucis pour réaliser des tests, car l’anonymisation risque de rompre des contraintes d’intégrité ou des contraintes fonctionnelles dans les jeux de données concernés.
Un exemple : Yoodle, un broker de données (beurk), qui annonce suivre les recommandations de son régulateur, fournit à ses clients des données dont le niveau d’anonymisation est très faible (trop faible), car s’il anonymise unitairement les noms, prénoms, numéros de téléphone ou de sécurité sociale, certains libellés de transactions, etc., il suffit souvent de remettre dans un contexte, de croiser les donner avec d’autres infos pour ré-identifier les personnes. Au mieux on peut dire que les données sont pseudonymisées (et non anonymiser).
Il y en a plusieurs types, plus ou moins faciles à mettre en oeuvre, plus ou moins efficace, et plus ou moins utilisables ensuite (dans les tests). Voici une synthèse de ce qui a été publié par l’AFCDP :
Méthodes radicales
La suppression de la donnée : si elle vraiment sensible, on la vire (un point c’est tout) ;
La génération de données (données fictives), la plus efficace mais assez difficile à mettre en oeuvre ;
Le hachage (de préférence avec salage), mais cela pose problème dans leur traitement ; cela ne peut s’appliquer qu’à des données transférées pour lecture et non pour traitement.
Méthodes de lutte contre l’inférence
La variance (vieillissement, modification dans une certaine plage, etc.) ;
Le mélange, où certaines données d’un enregistrement #1 sont mises dans un enregistrement #2, et ainsi de suite ;
La concaténation où on fabrique une donnée à partir d’autres (à préciser…) ;
Dans tous les cas, on risque d’amener un incohérence fonctionnelle dans le jeu de données (par exemple des parents peuvent devenir trop jeunes par rapport à leurs enfants, dans le cas de modification des dates de naissance).
Méthodes partielles
Souvent inadaptées à une anonymisation réelle, elles peuvent néanmoins contribuer à une certaine sécurité, dans certaines conditions.
Le masquage (comme le numéro de la carte de crédit) ou l’appauvrissement pour rendre les données moins précises ;
Le chiffrement qui n’est qu’une anonymisation faible ;
L’obfuscation qui n’a qu’une efficacité faible.
Pseudonymisation
La grande différence entre l’anonymisation et la pseudonymisation est que cette dernière est en principe réversible.
Les grosses données sont des données nombreuses et volumineuses. Concept fumeux et marketing comme toujours, il n’en est pas moins vrai que l’augmentation des performances de stockage et de calcul posent de nouveaux problèmes de sécurité.
Technologie
D’où ça vient ?
Nous produisons de l’information depuis longtemps, bien avant le temps de l’informatique, mais la mémorisation (stockage) des informations (données) était limitée, tout comme leur analyse : il a fallu longtemps se contenter d’un support papier et de son cerveau !
Avec l’avènement de l’informatique, tout change : on peut à la fois stocker l’information et déléguer son traitement à une machine. Or plus on avance dans le temps, plus les capacités de stockage et d’analyse progressent, au point que certains usages qui nous paraissaient impossibles aux premiers temps de l’informatique sont maintenant à la porté d’un très grand nombre de personnes et d’entreprises.
Alors qu’autrefois, il fallait du matériel spécialisé, l’analyse de données est désormais possible avec du matériel standard. Ce qui relevait des capacités d’une organisation spécialisée est désormais possible à presque tout le monde, y compris des particuliers. Devenant grand public, le marketing inventa comme toujours un concept pour matérialiser cette évolution : le big data. L’analyse rapide de données en masse
Définition informatique formelle
Il n’y en a pas. Il y a plutôt certains critères qui font penser qu’on est dans une implémentation de big data :
Beaucoup de données, généralement non structurée ;
On utilise hadoop !
L’architecture est distribuée et parallélisée ;
On n’arrive pas à traiter les données avec une base de données classique ;
Règle des 3V : Volume, Variété, Vélocité des données et de leur analyse.
En résumé : en cherchant bien, n’importe quoi peut être big data.
Domaines
Pour n’en citer que quelques uns où l’analyse rapide de données en masse le big data est utilisé :
Ciblage publicitaire, suivi des consommateurs
Analyse comportementale
Lutte contre la fraude
Recherche (santé par exemple)
Détection et prévention des pannes de composants ou de systèmes failures
Les technologies en elles-mêmes
MapReduce
MapReduce est une technologie initiée par Google pour le traitement des données en masse. Les deux principales étapes sont :
Map : On transforme la donnée brute en format exploitable (genre clé-valeur), et on les prépare au traitement.
Reduce : On les traite effectivement, de façon statistique.
Hadoop
Hadoop est l’implémentation open source de MapReduce couplé à un système de fichiers distribué, HDFS. HDFS permet notamment de répliquer les données sur plusieurs noeuds pour éviter la perte de données, et la mise-à-jour est également interdite : elle s’effectue par la création d’un nouveau fichier.
D’autres technologies sont adossées à l’écosystème Hadoop :
Des bases de données spécialisées sont également employées, comme Hbase ou Cassandra, opérant un système de fichier HDFS (ou compatible) ;
Les requêtes sont générées en langage HiveQL ou Pig Latin ;
L’import/export de données vers des bases classiques se fait via Sqoop (Sql-to-hadoop) ;
Des composants de haut ou bas niveau, comme pour le machine learning (Mahout) ou l’intégration de logs (Flume).
Hive
Hive n’est ni plus ni moins qu’une infrastructure d’entrepôt de données (comme on disait dans le temps), mais basé sur les outils de type big data, comme HiveQL, HDFS, HBase, etc. Il est interopérable avec de nombreux outils de BI (Business Intelligence).
Autres technologies liées
Massively Parallel Processing (MPP), basé sur des appliances, permettant des requêtes SQL distribuées ;
NoSQL, bases non structurées privilégiant la disponibilité à la consistance (au sens SGBD), stockant sous les formes de clés/valeurs, documents, graphes, etc.
CAP Theorem : ?
NewSQL : ?
La liste ne saurait être limitative, surtout que l’hybridation des architectures est souvent pratiquée dans les entreprises.
En ai-je besoin ?
La plupart du temps : non. Mais ça fait chouette sur sa carte de visite (au niveau personnel ou entreprise). Mais s’il fallait réfléchir avant de mettre en oeuvre une technologie informatique, ça se saurait. S’il y a de nombreux cas d’usage où les technologies big data se justifient, de trop nombreuses organisations ne le font que pour être à la mode. Une des conséquences de cet engouement irréfléchi est la pénurie de statisticiens, appelés data scientists dans le domaine du big data, capables de tirer parti des données.
Comment rester anonyme ?
Big data et respect de la vie privée sont deux notions contradictoires : dans ce monde de données abondantes et déferlantes, il devient bien difficile de rester anonyme, pour deux grandes raisons :
D’abord parce que nous produisons de la donnée à ne plus savoir qu’en faire, en laissant partout un infinité de traces de nos activités (informatiques, ou non-informatiques mais mesurées ou reliées à des outils informatiques) ;
Parallèlement à cette production, les moyens de traitement sont désormais capables d’effectuer des rapprochements ou des corrélations dont on était incapable il y a peu.
Un exemple (théorique) de désanonymisation par corrélation
Cet exemple a été donné par une juriste de ma société, et il est très parlant. Imaginons qu’on dispose d’une vue partielle de l’ensemble des logs d’activité des bornes téléphoniques. Par partiel, j’entends qu’on dispose de données sur l’ensemble des bornes, sur une période suffisamment grande, mais anonymes a priori : on ne disposerait que de l’identité (l’emplacement) de la borne, la date précise (au moins à la minute) et l’identifiant des téléphones (genre IMEI). Un exemple simple de ligne pourrait être :
numéro de ligne ; identité/localisation borne ; date et heure ; IMEI
A prori rien de personnel. Ou plutôt rien que des données anonymes, car les identifiants techniques comme l’adresse IP, l’adresse MAC ou l’IMEI sont indirectement personnelles : les opérateurs disposent d’une base faisant le lien entre ces identifiants techniques et leurs clients. De ces informations brutes, on ne peut tirer aucune information personnelle. On suppose aussi qu’on ne dispose pas d’une base faisant un lien entre IMEI et les clients, bien sûr.
En premier lieu, on isolera toutes les données d’un IMEI, en supposant qu’il n’y ait qu’un seul utilisateur principal. On tracera vite une cartographie de la géographie de ses déplacements, et on trouvera vite l’adresse de son travail (les lieux où le téléphone se trouve durant les heures de travail) et celle de son domicile (aux autres heures), de façon statistique. Puis, à partir d’une annuaire classique, on cherchera sur les adresses proches de la localisation du domicile un premier ensemble de candidats potentiels.
Ensuite, on identifiera les entreprises présentes sur le lieu de travail. Là aussi des données facilement accessibles. Pour continuer, on cherchera sur les réseaux sociaux toutes les personnes de notre première liste de candidats travaillant pour une des sociétés de notre 2e liste, si possible en affinant par localisation.
Dans mon cas, je travaille sur un site de 5000 personnes et j’habite Paris ; or je n’ai jamais rencontré de collègue ou très peu près de mon domicile. Dans le pire des cas, une petite dizaine de personnes doivent à la fois travailler à proximité du lieu de travail et du domiciles identifiés par les logs bruts.
En continuant une corrélation un peu plus ciblée, on finit par donner une identité quasi-certaines à l’IMEI a priori anonyme. Et en repartant sur les logs, on finit par tracer une grande partie des activités de la personne. Merci à nos smartphones !
Après y avoir pensé en théorie, voici l’application pratique, rapportée par le New York Times !
Inférence
On peut déterminer des caractéristiques d’une personne sans rien lui demander. Il faut souvent un niveau un peu plus élevé d’informations, mais à peine. Imaginons qu’en plus des données précédentes, on dispose du niveau de signal (assez précis, quand même). Dans les toilettes hommes, je mets une borne wifi. Une autre est placée dans les toilettes femmes. Les téléphones vont interroger les bornes lorsqu’ils sont à proximité. On en déduit facilement le sexe du propriétaire d’un téléphone quand il se rend aux toilettes : le meilleur signal sera du côté où se trouve la personne !
On a donc ainsi déterminé le sexe d’une personne sans rien lui demander : c’est un mécanisme d’inférence.
Ok mais ça marche pas à tous les coups
Oui. Mais rapportons ça à l’échelle du temps, du volume exponentiel de données et de signaux que nous produisons.
Cherchons bien
Comme prévu, et comme prouvé, l’anonymisation est un art délicat !
L’authentification dans un système informatique est des opérations les plus essentielles pour la sécurité globale de celui-ci. S’authentifier, c’est prouver qui on est au système. Cela comprend en réalité deux actions, qui ne sont pas que des élucubrations théoriques ni des lubies de chercheurs en sécurité : l’identification et l’authentification. Elles peuvent parfois être réalisées en une seule opération, parfois en deux.
L’identification consiste à donner au système une identité. C’est en fonction de cette identité qu’on aura plus ou moins de droits sur le système, et qu’on pourra mettre en œuvre l’ensemble des mécanismes de protection pour empêcher ou autoriser des actions sur le systèmes (lecture ou modification d’information, exécution de tâches, etc.).
Mais il ne suffit pas de dire qui on est, même en jurant sur la Bible. Ça serait trop facile sinon : je dis que je suis l’administrateur, et hop, j’ai tous les droits. Non, il faut aussi prouver que je suis bien celui que je prétends être ! Il existe plusieurs façons de le faire, plus ou moins sûres. Aucune de ces méthodes ne peut être parfaite, dans ce bas-monde ; chacune peut être plus ou moins sûre, plus ou moins facile à utiliser et malheureusement les méthodes les plus sûres sont souvent les plus pénibles à utiliser.
L’exemple le plus commun est celui du mot de passe : je donne mon identité (le « login ») et je prouve qu’il s’agit de moi en donnant un code secret (le « mot de passe »). Ce secret n’est censé être connu que de l’utilisateur et du système, et c’est cela qui prouve l’identité de l’utilisateur : normalement, seul l’utilisateur connaît ce secret en dehors du système.
Un bon facteur
Le bon facteur d’authentification, du point de vue théorique, est celui qui prouve de façon certainel’identité d’un utilisateur.
Dans un monde parfait, où il n’y aurait aucun malfaisant, où personne ne chercherait à prendre la place d’un autre pour voler des informations ou des valeurs quelconques à autrui, tout irait bien. Au risque de surprendre la plupart des lecteurs, ça n’est pas le cas. Il y a même toute une économie liée à la criminalité informatique, où le vol de session est une étape incontournable pour les attaquants.
Compromission
Donc les criminels vont chercher à usurper votre identité, en s’attaquant aux facteurs d’authentification que vous possédez. Et pour cela il existe différentes techniques, auxquelles nous ne pensons pas forcément.
Prenons l’image d’un coffre-fort : seul celui qui détient la clé peut l’ouvrir. Théoriquement. Mais un voleur peut tenter de vous voler la clé, mais s’il n’y arrive pas, il peut aussi utiliser un chalumeau pour passer en force, écouter le cliquetis du mécanisme pour trouver la combinaison, essayer de retrouver les caractéristiques de la clé pour la reproduire (référence constructeur, prise d’empreintes ou de photos sous différents angles), etc.
Il faut donc partir du principe qu’une compromission de notre facteur d’authentification est toujours envisageable.
Caractéristiques
Un facteur d’authentification doit posséder plusieurs caractéristiques. Il doit notamment être, idéalement :
Discriminant (voire unique) : si tout le monde a le même secret, ou si de trop nombreux utilisateurs ont le même secret, il va devenir difficile d’être certain de l’identité de l’utilisateur puisque plusieurs utilisateurs ont le même secret !
Discriminant (encore) : il faut éviter d’utiliser le même facteur sur plusieurs systèmes. Car si ce facteur est compromis, il faut le changer sur tous les systèmes où on l’utilise.
Difficile à deviner ou à retrouver : même s’il reste secret, un pirate va tenter de retrouver le secret. Il peut par exemple tester tout un tas de combinaisons de mots de passe (au hasard ou méthodiquement) pour tenter de deviner ce fameux secret ; tout est alors une question de temps, de moyen.
Difficile à reproduire : la difficulté dépend du type de facteur. Un mot de passe complexe est difficile à retenir, même si on voit l’utilisateur le taper. La clé d’un coffre-fort est difficile à copier, car il faut disposer de l’original au moins le temps d’en faire la copie.
Répudiable, en cas de compromission : en partant du principe que les criminels ont de l’imagination, il est toujours possible que le facteur d’authentification soit irrémédiablement compromis. Il faut alors pouvoir le modifier.
Si la clé de notre coffre-fort était volée, ou si on suspectait qu’elle ait pu être reproduite, il conviendrait alors de changer la serrure du coffre et le jeu de clé pouvant l’ouvrir. Idem pour un mot de passe. Et si on a utilisé la même clé sur plusieurs coffres, l’opération sera à répéter sur chacun des coffres.
Usage
Il est rare qu’un facteur d’authentification soit parfait. En pratique, c’est même impossible. Il faut souvent confronter ses caractéristiques au cas d’usage envisagé, pour voir s’il convient et s’il couvre les risques redoutés. Par exemple, dans un cadre bancaire, il est important de pouvoir répudier un facteur d’authentification, pour éviter qu’un malfaiteur puisse passer sans fin des opérations à son bénéfice depuis votre compte.
Multiplication des facteurs
Un bon moyen de pallier à certaines faiblesses d’un facteur consiste à lui ajouter un second facteur d’authentification.
La biométrie n’est pas, selon moi, adaptée aux processus informatiques. Point final. Et je ne parle même pas des problèmes d’implémentation1… Alors pourquoi ça a le vent en poupe ?
Parce qu’il existe désormais des dispositifs grand public, comme sur les smartphones ;
Parce que c’est confortable ;
Parce que ça donne un faux sentiment de sécurité ;
Parce que le marketing crie plus fort que la sécurité.
Alors pourquoi on nous en vend autant ? Parce qu’on peut en vendre, justement. Avant on ne pouvait pas, car les lecteurs biométriques étaient trop chers. Maintenant qu’ils sont bon marché, on profite de leur prétendue sécurité, issue probablement de l’image véhiculée par le cinéma de science fiction.
Définition
Un système de contrôle biométrique est un système automatique de mesure basé sur la reconnaissance de caractéristiques propres à l’individu (définition du CLUSIF). Il peut en être fait différents usages, mais en informatique, on l’utilise quasi-exclusivement dans des processus d’authentification.
Historiquement, la biométrie est une innovation datant de la préhistoire2 : les artistes utilisaient déjà la forme de leur main3 pour signer leurs peintures, ce qui constitue une forme d’identification biométrique (avec trace, cf ci-dessous).
Facteur d’authentification
Tout d’abord, il faut se rappeler ce qu’est un facteur d’authentification : un moyen de prouver au système que vous êtes bien celui que vous prétendez être.
L’illusion de la sécurité
Tout d’abord, le sentiment de sécurité en ce qui concerne la biométrie provient de l’idée fallacieuse que nous sommes les seuls à disposer des originaux : nos empreintes digitales, la forme de notre main, et donc de toutes les caractéristiques utilisées en biométrie.
Pour commencer, cela est tout d’abord variable selon le type de caractéristique utilisé. La CNIL propose une classification en trois grands groupes4.
Classification CNIL (ancienne)
Biométrie sans trace
Biométrie avec trace
Biométrie intermédiaire
Les caractéristiques biométriques sans trace sont celles qu’on ne peut que lire, sans pouvoir les copier ou ne recueillir un échantillon. Le scan du réseau veineux de la main est un exemple de système de biométrie sans trace : seul un capteur peut lire la forme voulue, on ne peut pas la reproduire (c’est-à-dire qu’on ne sait pas faire de main artificielle ayant les mêmes caractéristiques), et l’utilisateur ne laisse pas derrière lui de trace permettant de retrouver ses caractéristiques biométriques. Les systèmes sans trace sont a priori les meilleurs candidats pour l’authentification biométrique.
Les systèmes avec traces semblent moins propices à l’utilisation, car ils sont par définition ceux où l’utilisateur peut laisser des traces, soit lors de l’authentification, soit en dehors. L’empreinte digitale en est l’exemple parfait : nous laissons nos empreintes partout, ce qui a fait dans un premier temps la joie des policiers de l’identification criminelle, et ce qui fait ou fera la joie des pirates d’ici peu.
Les systèmes intermédiaires sont entre les deux : ils ne laissent pas de trace directement, mais il est (plus ou moins) facile de se procurer un échantillon. La voix, la forme du visage ou la forme de l’iris en font partie. La voix peut être enregistrée, notre visage peut être retrouvé partout, y compris maintenant grâce aux système de vidéosurveillance.
Nouvelle doctrine CNIL
La CNIL considère désormais que toutes les biométries sont à traces. Je trouve ça un tantinet exagéré, mais pourquoi pas : nous laissons tellement de traces directes ou indirectes de nos jours… La biométrie veineuse doit encore être sans trace, mais elle reste trop contraignante pour atteindre le grand public.
De fait, la CNIL classe les solutions en fonction du contrôle que l’utilisateur peut exercer sur la biométrie :
Solutions où l’utilisateur garde le contrôle complet de la biométrie (exemples : l’empreinte digitale stockée uniquement localement sur son smartphone ou sur un badge détenu par l’utilisateur). On parle de type 1 ;
Solutions où le gabarit est stocké avec une responsabilité partagée (stockage du gabarit non contrôlé par l’utilisateur mais protégé en accès, par exemple avec un chiffrement dont la clé n’est détenue que par l’utilisateur). On parle alors de type 2 ;
Solutions où l’utilisateur n’a pas de contrôle sur l’utilisation des gabarits (le gabarit biométrie peut être utilisé sans que la personne n’en soit informée), ou type 3.
Une note sur la centralisation
Autrefois, il était impossible d’avoir une base biométrique centralisée sans avoir une autorisation de la CNIL.
Aujourd’hui c’est un peu différent : il n’y a plus d’autorisation CNIL ! On passe sur le régime des PIA (Privacy Impact Assessment), déclaratif (mais obligatoire dans le cas de la biométrie). Mais la CNIL conserve une doctrine d’usage de la biométrie, et il faudra rester dans les clous : inutile d’espérer centraliser des tonnes de données biométriques sans savoir une bonne raison de le faire, notamment dans le cadre professionnel (cf. délibération 2019-001 de la CNIL).
Biométrie locale vs. base centralisée
L’avantage d’une base locale est évidente en termes de protection de la vie privée : seul l’utilisateur dispose du système biométrique et reste maître du stockage de la donnée, comme dans le cas des lecteurs d’empreinte des téléphones portables.
L’inconvénient est que cela ne permet que de vérifier que l’utilisateur est le bon lors de l’authentification : on ne compare la mesure qu’au seul individu connu dans le système : on fait une comparaison 1 à 1.
Dans une base centralisée, comme par exemple l’authentification vocale par téléphone, les données sont chez le fournisseur de l’accès, avec une maîtrise moins facile par l’utilisateur.
L’avantage de la centralisation est de permettre la confrontation 1 à n : un utilisateur essayant de s’authentifier vocalement avec des identités différentes pourra être signalé par le système, par exemple. Autre cas d’usage : un utilisateur appelle, et le système le reconnaît automatiquement, en comparant sa voix avec celles qu’il connaît : l’authentification se fait sans friction.
Dans certains cas il s’agit d’un choix à faire ; dans d’autres, c’est imposé par la solution.
Inattaquable
La plus grosse des erreurs
La plus grosse des erreurs quand on parle de biométrie est d’imaginer que c’est difficile voire impossible à contrefaire ou reproduire. Peut-être dans certains cas, mais cela ne rend pas la biométrie inattaquable, car il y a d’autres façons d’attaquer un système biométrique, comme l’attaque matérielle. Sans compter que si, les données biométriques peuvent être contrefaites ou reproduites.
Si on ne vous vole pas directement vos données biométriques, on peut encore les récupérer sur les interfaces physiques de liaison, trop souvent oubliées dans le domaine de la sûreté. Le dispositif pour lire le bus de données est en vente libre5 pour pas très cher…
Egalité et ressemblance
Une autre énorme erreur concernant la biométrie est de croire qu’elle est exacte. Or toutes les biométries sont basées sur des mesures, faites par des capteurs, ayant tous une marge d’erreur.
Ouvrons le score
Sans compter que certaines caractéristiques ne sont pas strictement identiques selon les mesures : l’ADN change peu, mais la voix ou même les empreintes peuvent connaître des modulations. Pour établir une correspondance biométrique, on utilise donc toujours un score et non une égalité parfaite (même pour l’ADN).
Ce score est issue de la mesure, transformée en score de ressemblance avec le gabarit de référence (= la voix de référence, l’empreinte de référence, etc.).
On considère ainsi que le spécimen mesuré par le capteur est bien celui qu’on attend quand la ressemblance est suffisante : une empreinte digitale sera considérée comme celle attendue si elle présente suffisamment de points correspondants à l’empreinte attendue.
C’est bien différent d’un mot de passe où soit le mot de passe est le bon, soit il est différent (processus binaire).
Faux et usage de taux
Il existe de nombreux faux en biométrie. C’est-à-dire des valeurs permettant de mesurer et de calibrer un système biométrie, dont les plus courants sont les faux positifs et les faux négatifs.
Faux positifs
Un faux positif est la situation où le système biométrique laisse passer un imposteur : on pense que l’authentification est positive, c’est-à-dire qu’on a identifié un utilisateur légitime, alors que c’est faux.
Faux négatifs
A l’inverse, l’authentification est négative quand on rejette un utilisateur. Or s’il s’agit d’un utilisateur légitime, il sera rejeté à tort : on sera donc dans le cas d’un faux négatif.
Taux et mesures
On utilise les taux de faux positifs (False Acceptance Rate) et de faux négatifs (False Rejection Rate) pour mesurer le fonctionnement d’un système biométrique.
On pense naïvement qu’il faut que les deux taux soient les plus bas possibles pour que le système soit parfait. Or c’est faux. Ces deux taux ne sont pas réglables si facilement et surtout ils ont une influence énorme sur le fonctionnement du système.
Revenons au score
Imaginons qu’une mesure donne un score de similarité de 99% (par exemple). Avons-nous identifié la bonne personne ?
Ca dépend
Ben oui : tout dépend de la tolérance qu’on va autoriser, par choix. Si on est très tolérant, alors cela implique qu’on sera moins strict et qu’une mesure donnant un résultat moins bon (98% par exemple) sera accepté pour identifier l’individu.
Augmenter la tolérance implique d’accepter plus facilement l’utilisateur, donc augmente le risque d’accepter un imposteur !
Ok ? Un utilisateur légitime aura moins de mal à s’authentifier puisqu’on est tolérant, et donc qu’on accepte le risque de laisser passer un imposteur, ce qui augmente les faux positifs.
Diminuer la tolérance implique d’accepter plus difficilement un utilisateur, donc diminue le risque d’accepter un imposteur !
C’est bien dans l’absolu, car on diminue le risque de fraude ; par contre on augmente l’inconfort pour l’utilisateur légitime qui risque de devoir s’y prendre à plusieurs fois pour s’authentifier.
Il faut choisir !
Dilemne : souhaite-t-on privilégier le confort de l’utilisateur ou la sécurité ? Pour cela le seul moyen est de varier la sensibilité de la mesure (et du score de ressemblance) mais tout est lié : augmenter la sensibilité fait baisser le FAR mais augmente le FRR ! Et inversement. Donc soit c’est le confort, soit c’est la sécurité.
Taux d’erreur équivalent
Une mesure souvent utilisée pour mesurer la qualité d’un système biométrique est le taux d’erreur équivalent (Equivalent Error Rate). C’est conventionnellement le taux où FAR = FRR.
On a vu que les taux FAR et FRR peuvent varier, mais en restant liés l’un avec l’autre : augmenter l’un diminue l’autre. Donc ne prendre en compte que l’un des deux n’a pas de signification puisqu’ils sont… variables ! Et pour avoir un chiffre qui caractérise les deux, on prend le point où ces taux se rencontrent.
Croisement du FAR (faux positifs) et FRR (faux négatifs), pour de la biométrie vocale. Cette courbe (ou son équivalent) est souvent appelée Detection error trade-off (DET).
L’intérêt de ce point fixe est qu’il caractérise toutes les solutions de biométrie. Plus il est bas, plus la solution est précise. Ici, pour la biométrie vocale, on est aux alentours de 1-1,5%.
Autre critère important : la forme de la courbe. Elle indique comment varie les FAR et FRR selon qu’on le bouge dans un sens ou dans l’autre.
Un autre critère oublié
Pour qu’une authentification biométrique soit utilisable, elle doit combiner plusieurs caractéristiques ; elle doit être :
Discriminante (deux individus différents doivent avoir des caractéristiques différentes, idéalement uniques) ;
Universelle (ce qui n’est jamais le cas en biométrie, d’où l’obligation d’avoir une solution alternative) ;
Permanente (ou au moins relativement stable dans le temps) ;
Mesurable et enregistrable ;
Infalsifiable.
Or il est impossible d’affirmer qu’une solution est infalsifiable : on peut tout au plus affirmer qu’à notre connaissance, elle est infalsifiable. A contrario, on peut affirmer qu’elle est attaquable quand il existe au moins un scénario d’attaque.
En 2018, quasiment toutes les caractéristiques biométriques peuvent être reproduites de façon à tromper les capteurs, car quasiment aucun d’eux ne vérifie que la personne est effectivement présente lors de l’authentification !
La liveness detection (la vivantitude en français, la détection du vivant) est oublié de quasiment toutes les solutions de biométrie, ou elle n’est que très sommaire (et elle peut être également trompée).
Dans le cas d’une empreinte digitale, certains capteurs (perfectionnés) vérifient la conductivité de la peau ou sa chaleur, caractéristiques pouvant être reproduites facilement ;
Dans l’authentification du visage, le capteur peut demander à bouger la tête pour éviter le présentation d’une photo ; il suffit alors de présenter… une vidéo !
A partir du moment où presque toutes les biométries laissent des traces, et qu’on peut donc reproduire les caractéristiques souhaitées, la détection de vie devrait être un impératif pour tous les systèmes biométriques : personne n’est capable (pour l’instant) de reproduire un être vivant (ou suffisamment vivant) pouvant tromper les capteurs. Or cette liveness detection est délaissée, probablement car elle est très complexe à mettre en oeuvre.
Or tant que cette détection de vie ne sera pas en place, toutes les biométries présentées à froid ne seront pas dignes de confiance. Et si on arrive à un niveau élevé de détection de vie, il faudra garder à l’esprit que les pirates ont plus d’imagination que nous pour tromper les systèmes.
L’empreinte digitale est curieusement très utilisée, alors que c’est un assez mauvais candidat puisqu’étant avec traces. Le Chaos Computer Club a pu tromper très rapidement le système biométrique de l’iPhone, puis du Samsung S5, et surtout à démontré qu’il était possible de récupérer une image de l’empreinte suffisamment précise pour être utilisée à partir d’un appareil photo du commerce, à une distance de trois mètres6.
Ensuite il faut faire preuve de bon sens : sécuriser un terminal grâce à une empreinte qu’on retrouve… partout sur le terminal lui-même, car il est rare de porter des gants avec nos smartphones ! Surtout si on veut utiliser la saisie tactile ou le lecteur d’empreinte. Et comme la mode est aux surfaces brillantes…
Bien que je préfère espérer que certains faits divers stupéfiants ne restent qu’exceptionnels, mais il y a déjà des précédents :
Trois individus arrêtés après avoir kidnappé une fillette afin de falsifier un test ADN7 ;
Alsace : Il utilisait le doigt coupé de sa victime pour usurper son identité8.
J’ai peur que la nature humaine ne pousse des criminels à des actions de plus en plus insensées pour contourner la quasi-exactitude d’une identification biométrique. Comme il est précisément impossible de modifier ses caractéristiques biométriques, des malfrats vont (et l’ont déjà fait) mettre en oeuvre des scenarii insensés et violents soit pour récupérer les identifiants biométriques, soit pour disposer d’échantillons permettant de créer une fausse identité. Au lieu de nous protéger, la biométrie forcera les malfaiteurs à attaquer physiquement les individus, avec la part de violence que cela peut engendrer.
Quelques chiffres et éléments de comparaison
Je me base ici sur les chiffres fournis par les constructeurs ou intégrateur de systèmes biométriques (tels qu’Apple, Samsung9 ou ZTE10). Apple indique que le taux d’erreur de son système de biométrie (EER) par empreinte est de l’ordre de 1 pour 50 000. Pour Fujitsu, qui équipe le ZTE, ce taux est meilleur puisqu’il est de 1 pour 250 000.
Un petit rappel : un mot de passe ne comprenant que des lettres (majuscules et minuscules) et faisant 8 caractères de long, on est à 1 pour 218 340 105 584 896. C’est donc 200 millions de fois plus complexe qu’un scan de l’iris.
A contrario, un code PIN sur 5 chiffres donne 1 pour 100 000, sachant qu’un code PIN peut être répudié. Donc un scan de l’iris est comparable à un code PIN de 5 chiffres, en moins bien (car impossible à répudier). Côté Apple, le lecteur d’empreinte Apple donné 1 pour 50 00011 n’équivaut donc qu’à un code PIN de 4 chiffres (je me répète : en moins bien, car impossible à répudier).
Donc contrairement aux discours commerciaux comme ceux de ZTE, ça n’est absolument pas en termes de sécurité qu’il faut voir les choses mais en termes de confort et d’expérience utilisateur12.
Et le vol de données biométriques ?
Si je me fais voler mon empreinte, c’est grave ?
La réponse est : non, tout va bien. Enfin presque. Normalement. Dans l’état actuel de la technologie. Rassurant, non ?
Oui, car il faut tempérer les propos rassurants comme suite à l’affaire de vol de données confidentielles de l’OPM13 : après quelques investigations, ils se rendent compte que ça n’est pas 1 mais 5 millions d’empreintes qui sont dans la nature 14, mais qu’heureusement il est difficile d’en faire quelque chose… dans l’état actuel des technologies…
Où trouver un échantillon d’empreinte digitale ?
Par chance, le gouvernement américain reviendra vers les victimes si, dans le futur, cela devenait possible. Comme vous le voyez, la biométrie des empreintes digitales est une technique sûre !
Un petit rappel : si une donnée biométrique est compromise (par exemple votre empreinte), non seulement c’est à vie mais également sur tous les autres dispositifs utilisant cette empreinte. Dire qu’on conseille de ne pas réutiliser le même mot de passe sur différents sites, avec une empreinte (ou n’importe quelle donnée biométrique), vous l’utilisez partout à l’identique !
Or où peut-on trouver facilement l’original d’une empreinte utilisée pour déverrouiller un smartphone ?
En tant que technologie intermédiaire, c’est plus risqué. Cela dit, il faut que le pirate puisse enregistrer votre voix, de préférence lorsque vous prononcez la phrase servant à l’authentification. Et encore, les systèmes de reconnaissance ont des mécanismes anti-rejeu. Enfin, parfois. A moins que… A moins qu’on puisse à partir d’échantillons divers de votre voix reconstruire la phrase qu’on veut. Mais ça, c’est de la science-fiction15. Et je ne parle même pas des frères jumeaux16 !
Et l’iris ?
Ayé, c’est fait : le CCC a réussi à en faire son affaire17…
Et la tête ?
Alouette. Maintenant (2018) on peut déverrouiller son smartphone en montrant sa tronche. Il va donc falloir se promener cagoulé pour éviter la compromission de mon moyen d’authentification.
Biométrie révocable
Une solution idéale en biométrie serait de pouvoir révoquer la donnée biométrique utilisée. Or les quelques propositions qu’ont trouve dans la nature n’évoquent que la révocation des minuties stockées, et non de la donnée de base. De plus, la sécurité du stockage est trop souvent perfectible, et quoi qu’il en soit ce stockage sera toujours attaquable.