Vous prendrez bien un peu de nouvelles avant de partir ?

Copyleft Serge Abiteboul

binaire prend ses quartiers d’été et vous retrouve à la rentrée.

 

En attendant, on ne vous abandonne pas. On vous propose tous les vendredis une nouvelle « Bêtises à bloguer » sur le blog de Serge Abiteboul. Vous plongerez dans un univers de science-fiction où le numérique tient une place prépondérante. L’humain s’en amuse et virevolte dans une société qui pourrait être la nôtre ou pas, c’est à nous de voir !

Marie-Agnès Enard

Et si vous en voulez plus : les « Bêtises à bloguer » de la Saison 1 (l’été dernier) sont maintenant disponibles en librairie et sur liseuse :
Le bot qui murmurait à l’oreille de la vieille dame, Éditions le Pommier, 2018.

 

 

 

Langages des maths, langages de l’informatique

Un nouvel « entretien autour de l’informatique ». Serge Abiteboul et Gilles Dowek interviewent Thierry Coquand, informaticien et mathématicien français, professeur à l’Université de Göteborg en Suède. Thierry Coquand est l’auteur de nombreux travaux en théorie de la démonstration et sur les mathématiques constructives. Il est, en particulier, à l’origine, avec Gérard Huet, du Calcul des constructions, qui est la théorie implémentée dans le système Coq (voir encadré en fin d’article).
Cet article est publié en collaboration avec The Conversation.
Thierry Coquand, Wikipédia

B : tes travaux se situent à la frontière de l’informatique et des mathématiques. Est-ce que ce sont pour toi deux domaines distincts ?

TC : le point de départ de ma thèse était une tentative d’identifier ces deux domaines. Avec le recul, je me rends compte de la naïveté de ce projet. Cependant, il existe des analogies remarquables entre les deux domaines, qui nous apprennent énormément sur l’un et sur l’autre, et c’est cela qui m’intéresse.

B : peux-tu nous parler d’une de ces analogies que tu as étudiée dans ta thèse ?

TC : dans ma thèse, je me suis intéressé au raisonnement mathématique et à sa représentation sur un ordinateur. L’étude du raisonnement est ancienne, mais l’arrivée de l’informatique l’a bouleversée, car il devenait possible de confier à une machine la vérification de la correction des raisonnements.

Equations sur un tableau noir – Photothèque Inria

Avant la rencontre avec l’informatique, les mathématiciens, notamment Bourbaki, étaient déjà allés très loin sur le chemin de la formalisation des démonstrations, mais ils voyaient bien les limites de cette démarche. Si on donne tous les détails dans une démonstration, si on la formalise totalement, elle devient vite trop longue et illisible pour les humains. En revanche, un ordinateur a besoin de tous ces détails et ne s’effraie pas de la longueur des démonstrations. L’arrivée de l’informatique changeait donc tout.

J’ai été influencé par les travaux du mathématicien néerlandais, Nicolaas de Bruijn, qui a eu l’idée d’utiliser des notations issues de l’informatique pour représenter les démonstrations. Ses travaux, ceux du statisticien et logicien suédois Per Martin-Löf et du logicien français Jean-Yves Girard m’ont beaucoup influencé. Ma thèse fait la synthèse des langages qu’ils ont proposés.

On retrouve dans nos travaux, l’idée que les démonstrations mathématiques sont des programmes exprimés dans un type particulier de langage de programmation : un langage fonctionnel, comme les langages Lisp ou ML. Cette manière d’exprimer les programmes est particulièrement appropriée pour obtenir une représentation uniforme des programmes informatiques et des démonstrations mathématiques. La programmation fonctionnelle apporte comme une correspondance magique entre programmes et démonstrations. C’est ce que j’ai fait dans ma thèse. Et c’est le programme que j’ai poursuivi pendant trente ans dans un domaine qui reste toujours très riche.

Cette correspondance entre programmes fonctionnels et démonstrations jette rétrospectivement une lumière nouvelle sur les travaux des logiciens des années 1930, par exemple ceux de Gerhard Gentzen, qui y trouve en quelque sorte les bons langages pour être exprimés.

On peut aussi s’intéresser à la généralisation de cette correspondance à d’autres types de langages de programmation. C’est une direction de recherche active aujourd’hui.

© Inria / Photo C. Morel

B : le langage pour décrire des algorithmes ou des démonstrations. C’est bien le sujet ?

TC : on connaît depuis longtemps l’importance des notations en mathématiques. J’aime bien l’exemple de Leibniz. Une de ses grandes contributions pour le calcul différentiel tient dans les notations qu’il introduit. De Bruijn aussi a passé beaucoup de temps à comprendre ce que sont les bonnes notations en logique et en mathématique.

L’informatique ici aussi apporte un renouveau : parce que les systèmes qu’ils conçoivent sont très complexes, les informaticiens sont obligés de trouver de bonnes notations.

B : la manière d’exprimer les démonstrations évolue avec le temps, n’est-ce pas contradictoire avec l’idée d’objectivité de la vérité mathématique ?

La correction d’un raisonnement mathématique doit être un fait objectif. Mais le chemin vers la perfection est long et ce que nous avons découvert, depuis cinquante ans est qu’écrire des démonstrations absolument correctes est impossible sans ordinateur. Chaque étape du développement des mathématiques nous a cependant apporté de nouvelles notations qui nous ont rapproché de cet idéal. C’est pour cela qu’il y a une histoire de des langages d’expression des démonstrations.

Il nous reste cependant encore beaucoup de progrès à faire : les démonstrations formelles que nous écrivons aujourd’hui sont difficilement lisibles par les humains. Nous devons donc comprendre comment concilier complexité, correction et lisibilité. Nous ne sommes qu’au début de cette histoire.

B : l’informatique également est confrontée à cette complexité ?

TC : les informaticiens sont confrontés à la complexité des programmes, de même que les mathématiciens confrontés à celle des démonstrations. Ils ont donc eux aussi besoin de vérifier que leurs programmes sont corrects, qu’ils font bien ce qu’ils sont supposés faire. Les outils pour raisonner sur les programmes, pour vérifier leur correction sont les mêmes que ceux qui permettent de vérifier la correction des démonstrations mathématiques.

C’est une autre illustration de cette correspondance fantastique entre programmes et démonstrations.

© Lonely – Fotolia

B : peux-tu nous donner un exemple de cette complexité ? Où voit-on des signes d’imperfection dans la représentation formelle des raisonnements ?

TC : Georges Gonthier et son équipe ont formalisé une démonstration du théorème de Feit-Thompson. La démonstration de ce théorème était connue depuis les années 1960 mais il leur a fallu six ans pour construire cette démonstration formelle, c’est bien le signe que tout n’était pas dit dans la démonstration originale. La démonstration de Georges nous permet d’avoir véritablement confiance dans ce résultat. Mais au delà, elle nous permet aussi de maîtriser la complexité du problème, de l’analyser, de comprendre sa structure de façon plus fondamentale.

Walter Feit – Konrad Jacobs WikiPedia

À mes yeux, le plus intéressant dans ce tour de force est que pour y arriver il s’est appuyé sur ses intuitions d’informaticien. C’est exactement ce que Gérard Huet et moi avions en tête quand nous avons commencé notre travail sur le Calcul des constructions : l’idée que nos intuitions de mathématiciens étaient utiles pour écrire des programmes et que nos intuitions d’informaticiens étaient symétriquement utiles pour écrire des démonstrations.

Ces systèmes de vérification de démonstrations formelles arrivent aussi à un moment particulier de l’histoire des mathématiques. On commence depuis quelques années à voir apparaître des démonstrations de plusieurs centaines de pages. Les mathématiciens s’attaquent aujourd’hui à des démonstrations très complexes qu’il devient quasiment impossible de vérifier « à la main ».

B : en astronomie, la lunette permet de dépasser les limites de l’œil ? Les systèmes de vérification de démonstrations sont-ils des outils analogues pour les mathématiciens ?

TC : c’est une motivation bien sûr. On peut rêver de proposer aux mathématiciens des outils à la mesure de leurs rêves, des outils qui leurs permettent de dompter la complexité de certaines démonstrations. Mais nous n’en sommes qu’au début. Les mathématiciens ne se sont pas encore emparés de ces logiciels comme les astronomes des télescopes. Peut-être l’outil est-il encore trop récent ?

B : l’outil, c’est la programmation fonctionnelle qui permet d’unifier la démonstration mathématique et la programmation.

TC : un même outil mathématique, le lambda-calcul, représente remarquablement bien à la fois la structure d’une démonstration mathématique et celle d’un algorithme. C’est ce même objet qui est à l’origine de la programmation fonctionnelle.

B : mais peut-on exprimer n’importe quel raisonnement ?

TC : dans les années 1900-1930, il y a eu de grands débats en logique. Peut-on démontrer l’existence d’un objet sans jamais montrer cet objet. C’est ce qu’il se passe, par exemple, dans un raisonnement par l’absurde. Si on suppose qu’un tel objet n’existe pas, on arrive à une contradiction. Donc un tel objet existe parce qu’il est impossible qu’il n’existe pas. Dans un tel argument, on ne montre jamais l’objet dont on démontre l’existence. On n’a pas le début d’une idée pour imaginer à quoi il ressemble. Avec le lambda-calcul, on se focalise sur les démonstrations « constructives », celles qui montrent comment construire les objets dont elles montrent l’existence.

B : faut-il interdire le raisonnement par l’absurde ?

TC : non bien entendu, mais les démonstrations par l’absurde occupent une place singulière au sein des démonstrations. Cette singularité fait qu’ils trouvent mal leur place dans la correspondance entre programmes et démonstrations. Cette correspondance est surtout une correspondance entre les programmes fonctionnels et les démonstrations constructives. Peut-on aller au-delà des démonstrations constructives ? C’est une direction de recherche active aujourd’hui.

B : tu as apporté des contributions considérables avec le Calcul des constructions, qui est la base du système Coq. Aujourd’hui sur quoi portent tes travaux ?

TC : ma réponse va peut-être surprendre les lecteurs de Binaire. Mais depuis trente ans nous sommes bloqués par une question qui a l’air simple. Qu’est-ce que l’égalité ? Comment définir ce symbole que nous notons « = » ? Les réponses que, depuis Leibniz, nous avons apportées à cette question sont toutes insatisfaisantes. Car elles n’égalisent pas assez d’objets, nous voudrions montrer que tel objet est égal à tel autre, mais nous n’y parvenons pas car notre définition de l’égalité est trop tatillonne.

Un grand mathématicien, Vladimir Voevodsky s’est intéressé à la question. Ses démonstrations étaient tellement complexes qu’elles n’étaient pas suffisamment vérifiées. Il s’inquiétait du fait que des erreurs pourraient rester ignorées et a donc cherché à les vérifier en utilisant le système Coq.

Il a alors découvert des analogies surprenantes entre la topologie, c’est-à-dire la théorie de la représentation des formes et celle de l’égalité. À côté, de la correspondance entre programmes et démonstrations, apparaissait une nouvelle correspondance entre l’homotopie et l’égalité dans la théorie des types. C’est véritablement remarquable !

B : pourrais-tu nous dévoiler un des secrets de tes succès professionnels ?

TC : ce n’est pas un secret : le travail d’équipe. Ce que j’ai fait n’était possible qu’avec les gens qui sont venus avant comme mon directeur de thèse, Gérard Huet, et d’autres pour poursuive les travaux après comme Hugo Herbelin. On bâtit nos résultats sur ceux des autres. J’ai mentionné des travaux qui ont influencé ma recherche. Et leurs impacts ne dépendent pas que de nous. La théorie des constructions n’aurait jamais eu cet impact sans le système Coq, c’est-à-dire plus de 15 ans de travail d’une équipe brillante.

B : pourrait-on enseigner cela aux enfants ?

TC : j’aimerais que toute cette théorie serve pour enseigner les démonstrations aux enfants. Ce sujet passionnait déjà de Bruijn. La notion de démonstration est difficile à enseigner aux enfants. Qu’est-ce que c’est une démonstration ? Comment peut-on se convaincre qu’elle est correcte ? Est-ce que j’ai donné assez de détail pour convaincre quelqu’un d’autre ? Il me semble qu’enseigner la notion de démonstrations en s’appuyant sur la vérification d’algorithmes est la bonne direction. Il y a par exemple les travaux là-dessus de Julien Narboux à Strasbourg. Les enfants comprennent bien la notion d’algorithme et la proximité des notations entre programmes et démonstrations facilite la tâche.

Serge Abiteboul et Gilles Dowek

Définitions

Programmation fonctionnelle : les langages de programmation fonctionnels forment une famille de langage, dans laquelle un programme n’est pas vu comme la prescription d’une succession d’étapes devant être exécutées l’une après l’autre, mais comme la description d’une fonction qui à chaque argument associe une valeur. La programmation fonctionnelle vient du le lambda-calcul, un langage inventé dans les années 1930, donc avant la construction des premiers ordinateurs, pour exprimer les algorithmes. Des exemples de langages fonctionnels : Lisp, ML, Haskell, OCaml, Scala.

Curry-Howard : La correspondance de Curry-Howard, appelée également correspondance de Curry-de Bruijn-Howard, correspondance démonstration/programme ou correspondance formule / type, est une série de résultats à la frontière entre la logique mathématique, l’informatique théorique et la théorie de la calculabilité. Ils établissent des relations entre les démonstrations formelles d’un système logique et les programmes d’un modèle de calcul. Les premiers exemples de correspondance de Curry-Howard remontent à 1958, date à laquelle Haskell Curry remarqua l’analogie formelle entre les démonstrations des systèmes à la Hilbert et la logique combinatoire, puis à 1969 où William Alvin Howard remarqua que les démonstrations en déduction naturelle intuitionniste pouvaient formellement se voir comme des termes du lambda-calcul typé.

Coq est un assistant de démonstration fondé au départ sur le Calcul des Constructions (une variété de calcul fonctionnel typé) introduit par Thierry Coquand et Gérard Huet. Il permet l’expression d’assertions mathématiques, vérifie automatiquement les démonstrations de ces affirmations, et aide à trouver des démonstrations formelles. Thierry Coquand, Gérard Huet, Christine Paulin-Mohring, Bruno Barras, Jean-Christophe Filliâtre, Hugo Herbelin, Chet Murthy, Yves Bertot, Pierre Castéran ont obtenu le prestigieux 2013 ACM Software System Award pour la réalisation de Coq.

Le non-sens écologique des voitures autonomes

On vous parle beaucoup de voitures autonomes. Cela serait même un moyen pour réduire la pollution notamment dans les villes. Qu’en est-il ? Guillaume Pallez, chercheur en informatique propose une déconstruction de ce mythe. Serge Abiteboul
Photo by Josh Hild from Pexels
Pour changer des articles un peu « publicitaires », supposés exciter notre attention sur les voitures autonomes (dilemmes moraux et éthiques, voiture propre sauveuse de la mobilité urbaine, la recherche va-t-elle enfin résoudre ce vieux rêve de l’humanité…), pour mieux nous permettre de les accepter, j’aimerais parler aujourd’hui des potentiels impacts écologiques de ces véhicules.
Je vous propose  de  suivre une approche un peu différente. Qui construit des véhicules autonomes ? Quelles utilisations les intéressent ? En particulier nous allons étudier les possibles effets rebonds de l’implémentation de ces modèles à grande échelle. En particulier celui lié à l’augmentation de consommation grâce à cette technologie et aux moindres contraintes qu’elle engendre. Aujourd’hui il y a trois modèles principaux d’utilisation de ces voitures autonomes, liés en particulier aux différents groupes qui y travaillent : 
  1. Le modèle constructeurs automobiles (Audi, BMW, Ford, General Motors, Renault, Tesla, Toyota…)
  2. Le modèle VTC (Lyft, Uber…)
  3. Le modèle transport en commun
Nota : Je range le modèle économique « Google/Alphabet » dans une catégorie différente : mon impression est, comme pour Android, ce modèle est plus intéressé par une utilisation du système par un maximum de groupes. Ainsi l’entreprise peut contrôler le marché,  récupérer beaucoup de données et les revendre efficacement. Ainsi, leur utilisation serait un sous ensemble des trois modèles précédents.

Le modèle constructeurs automobiles

Photo Pixabay

De manière générale, le modèle économique d’un constructeur automobile est de vendre plus de voitures. Au vu de ce modèle économique, à quoi peut-on s’attendre dans le cadre de ces véhicules autonomes ?

1. On peut s’attendre à ce que la publicité joue son rôle pour convaincre chacun·e de continuer à posséder sa voiture (autonome ou non, mais idéalement autonome). Apparemment, sur chaque voiture neuve achetée, une moyenne de 1500€ vont à la publicité ! Le nombre total de voitures ne devrait donc pas diminuer.
2. Des études sont déjà en cours sur la façon de nous faire profiter du temps dans ce véhicule où nous n’avons plus besoin de conduire. Le « voiture-travail«  sera développé et le temps de trajet ne sera plus du temps « perdu ».
Les transports en commun seront moins attractifs. On peut s’attendre à ce que le nombre de trajets en voiture augmente (effet de substitution). Le temps de trajet n’étant plus une contrainte, les gens pourront aussi habiter plus loin de leur travail (étalement urbain). Ainsi, similairement on peut s’attendre à une durée de trajets moyens augmentée. Finalement, face à cette diminution d’utilisation des transports en commun, il est raisonnable de penser qu’une conséquence  directe serait une réduction des investissements en infrastructure, une suppression de lignes de trains locaux (type TER), ou une diminution des nombres de train à grande vitesses qui poussera les gens à répéter ce cycle. 
3. Finalement on peut s’inquiéter de la montée en flèche du leasing (locations longues qui permettent un changement de voitures très fréquent) : 73% des voitures neuves aujourd’hui ! Cette option « encourage » à changer de véhicule plus fréquemment et à monter en gamme. Cela conduit à une possible augmentation du nombre de véhicules neufs.

Le modèle VTC (compétition avec les transports en commun)

Photo by STANLEY NGUMA from Pexels

De manière générale, le modèle économique d’un VTC est de vous faire utiliser au maximum ses services. Ce modèle peut être résumé ainsi : en ville, une flotte de véhicules autonomes en libre accès tournera et prendra les gens au fur et à mesure des demandes. Grâce à cette simplicité d’usage, les gens arrêteront de prendre leurs voitures  individuelles. Ce modèle est vendu comme « écologique » car selon ses promoteurs :

    – Le nombre de voitures en ville et individuelles devrait diminuer ;
    – Le trafic devrait être plus fluide (réduisant ainsi la congestion et la pollution liée aux embouteillages) ;
    – Le nombre de parking urbains devrait diminuer, libérant de la place pour d’autres usages.
Ce modèle peut paraître familier : c’est exactement le modèle VTC. L’avantage c’est qu’il commence à être étudié et on commence à connaître un peu ses effets rebonds. En particulier une étude récente (en anglais) compare la croissance de la ville par rapport à un modèle sans VTC. Parmi les résultats, on peut mentionner :

– La congestion a augmenté de 60% entre 2010 et 2016 alors que dans le modèle sans VTC elle n’aurait augmenté que de 20%
– La réduction de vitesse dans la ville a été de 13% (vs 4% dans le modèle).

Les causes avancées par les chercheurs sont encore liés aux effets rebonds. Par cette simplicité d’utilisation les gens auraient :

– réduit leur consommation des transports en commun ou de marche à pied.
– fait des trajets qu’ils n’auraient peut-être pas fait sans le système de VTC.
– enfin, de la congestion a été rajoutée par les VTC « à vide », qui se repositionnent, ou pour aller chercher des clients.

L’étude ne dit pas si le nombre de voitures individuelles a réellement diminué.
À nouveau on a un modèle où l’impact écologique attendu est négatif.

Le modèle transport public

Photo Negative Space

Les transports en communs comme service public ont vocation à servir le public, et non pas à générer des bénéfices pour un petit nombre. Dans ce dernier modèle, voitures autonomes et transports en commun ne sont plus en compétition mais collaborent. Les voitures servent de navette pour ramener les gens éloignés des infrastructures vers les transports en commun. Ce service fait partie du réseau de transports en commun.

C’est un modèle que l’on pourrait imaginer écologiquement responsable (cependant, il faudrait prendre en compte l’impact en terme de consommation de métaux et terres rares pour toutes les bornes 5G nécessaires pour que les véhicules communiquent avec l’extérieur).
Malheureusement c’est aujourd’hui le modèle le moins mis en avant. Par exemple, dans ce dernier document du ministère de l’écologie solidaire et du transport, ce cadre n’est pas du tout discuté. On parle au contraire de cohérence entre les transports publics et ces nouveaux modèles économiques (Modèles I et II), qu’on peut interpréter comme « à long terme, réduire l’investissement dans les transports en communs car les gens vont utiliser ces voitures autonomes ».

« ils  peuvent  aussi  modifier  les  limites  entre  transport  individuel  et  collectif.  Il  importe  de  favoriser   l’émergence  de  nouveaux  modèles  économiques  et  tout  en  assurant  la  cohérence  de  ces  services  avec  les  politiques de mobilité locales et les capacités à déployer des infrastructures adaptées au véhicule autonome « .

Pour conclure

Arrêtons le green-washing. Aujourd’hui, je ne connais pas d’étude qui permette d’affirmer que les voitures autonomes sont une solution au problème écologique. Les données ainsi que nos comportements passés liés aux progrès technologiques dans les transports semblent montrer plutôt l’opposé.
Si on voulait vraiment réduire l’usage des voitures en ville, il existe des solutions qui fonctionnent ! Commençons par les mettre en place. En attendant plusieurs actions sont possibles :
    – pour les législateur·rices·s éco-conscient·e·s : mon mieux serait d’interdire les véhicules autonomes tant que les effets ne sont pas bien identifiés. Moins efficaces des premières avancées seraient : (i) d’interdire les ventes de voitures autonomes individuelles qui ne semblent pas répondre à un besoin qui n’ait de solution plus écologique ; et (ii) de limiter le nombre de VTC autonomes en ville comme cela été fait dans le passé pour les taxis
    – pour les journalistes, les tribunes offertes aux lobbyistes de l’automobile ([1], [2] ..), doivent être annoncées comme telles, et idéalement discutées de manière contradictoire. Les autres tribunes devraient être partagés avec votre audience avec la même accessibilité (paywall vs sans paywall).
    – pour les scientifiques et en particulier mes collègues du numérique. Je recommande l’excellente tribune d’Atecopol. Ensuite, pour ces problèmes de recherche dirigés vers un problème précis (par exemple la voiture autonome, la 5G, les data-centers « green »), on peut commencer par évaluer
les considérations « rebonds », non rentables pour un industriel. Il est dommage que l’Inria, institut de recherche dédié aux sciences du numérique, publie un livre blanc sur les véhicules autonomes sans traiter ces problématiques.
Il est donc absolument indispensable qu’un organisme public de recherche puisse continuer à mener une recherche de façon indépendante de celle de l’industrie, avec sa vision propre et des axes de recherche qui ne coïncident pas nécessairement en tout point avec ceux des entreprises. Et avec une remise en question saine de cette recherche.

Pour aller plus loin

Driverless Congestion, Samuel Schlaefli, 2019.

L’insoutenable légèreté des logiciels

L’actualité récente nous a fait découvrir des crashs d’avion qui auraient été causés par des erreurs logicielles. Même si nous savons bien que tous les véhicules depuis les voitures jusqu’aux engins spatiaux en passant par les avions embarquent beaucoup de logiciels, il n’est pas simple de percevoir leur importance et surtout leur impact en cas de panne. Pour nous aider à y voir plus clair, nous avons interrogé, Charles Cuveliez et Jean-Jacques Quisquater, qui nous expliquent l’importance de la fiabilité de ces systèmes dits critiques. Pascal Guitton. 
Photo by Fernando Arcos from Pexels

N’importe quel gratte-ciel depuis les plans jusqu’à son érection impliquera une armée de professionnels, accrédités, formés à concevoir de telles prouesses technologiques car la moindre erreur ne pardonnerait pas. Il en va de même à chaque fois qu’un projet industriel critique voit le jour : rien n’est laissé au hasard quant à la compétence de ceux qui le mènent ou y participent et cette compétence est testée, vérifiée, remise à jour et revalidée régulièrement.

Alors, pourquoi a-t-on laissé des Boeing voler jusqu’au moment où deux d’entre eux se crashent, comme si seul un test grandeur nature pouvait en certifier la conception ? Le problème ne réside pas dans la conception des logiciels critiques, mais plutôt  dans leur mise en œuvre.

Les logiciels critiques sont peut-être les objets les plus complexes jamais fabriqués par l’homme : ils comportent des millions de ligne de code sur lesquels des centaines de développeurs s’affairent et contrairement à la construction d’ouvrages d’art aussi vieille que l’humanité, on ne conçoit des logiciels que depuis quelques dizaines d’années. Ces logiciels critiques sont au cœur de systèmes qui le sont tout autant dans des domaines comme la santé, la défense, la finance. Qui les a conçus, quelle était la qualification de leurs auteurs ? N’est-il pas étrange qu’on demande à des architectes de signer leurs plans mais pas aux ingénieurs informaticiens qui conçoivent des systèmes critiques ? Tout au plus sait-on le nom de la société mandatée pour concevoir tout ou partie des programmes … qui peut très bien les avoir sous-traités. Pourtant, une erreur dans ce programme provoquerait, dans certains cas, l’arrêt de systèmes critiques avec à la clé une situation chaotique, des industries qui s’arrêtent, des catastrophes industrielles… Nous en avons un petit aperçu quand un ransomware, qui n’est pas une erreur de programmation, arrive à se répandre dans le réseau d’une entreprise. Même les industries très réglementées au niveau sécurité et fiabilité feraient face à des conséquences catastrophiques si des défauts se glissaient et se manifestaient dans les logiciels qui les animent. Le scandale du Boeing 737 MAX l’illustre trop bien, mais ne chargeons pas Boeing de tous les maux. Les entreprises qui fournissent des produits ou des services critiques pour notre société sont bien en peine de garantir un niveau de résilience numérique à la hauteur de la confiance que la société place en eux, face à la rapidité avec laquelle évoluent tant les techniques de programmation (software) que la technologie (microprocesseurs).

Accréditation

L’accréditation et la certification des professionnels de l’IT manquent cruellement à ce secteur, comme l’expliquent les auteurs d’un article incisif de La Sloan Management Review. Oui, on peut suivre des cours, passer un examen et recevoir un diplôme, mais on est loin de la manière dont le secteur de la construction, par exemple, s’est organisé pour garantir qu’un bâtiment ne s’effondrera pas. Un architecte commencera par prendre la plume (et/ou la souris) pour concevoir les premiers plans qui seront ensuite contrôlés par une armée d’ingénieurs qui valideront la structure, les systèmes mécaniques et électriques afin de garantir que le bâtiment correspond aux standards du moment. Ce contrôle réglementé et obligatoire, réalisé par les pairs, n’existe pas dans les programmes informatiques. Pire : quand un bâtiment s’effondre, quand un avion s’écrase, un déluge de moyens est mis en œuvre pour comprendre d’où vient l’erreur et les standards et normes sont modifiés pour que telles catastrophes ne se produisent plus. En codage informatique, on en bien est loin. A-t-on vu la mise en place d’un comité indépendant qui examine le code même du programme à l’origine du crash de deux Boeings 737 MAX  (alors qu’il y en a eu pour le crash d’Ariane V, il y a 20 ans) ? Et si normes et standards existent pour utiliser des logiciels dans certains secteurs, ils ne sont que rarement appliqués car rien n’est mis en place pour les contrôler. Et qui dira que ces programmes fautifs sont utilisés autre part ? Il n’y a non plus aucune inspection de la part d’une autorité officielle.

Plus de professionnalisation du secteur et de la manière de concevoir et de déployer des programmes devient indispensable. Cela pourrait commencer par une accréditation ou une certification donnée aux programmeurs qui veulent travailler sur une infrastructure critique. Pour pouvoir conseiller financièrement les gens, n’exige-t-on pas une série de tests à ceux qui se destinent à ce métier. On s’assure qu’ils ont les compétences pour gérer l’argent des autres. Quel équivalent quand des vies humaines sont en jeu ? C’est d’autant plus curieux qu’on certifie et teste quasiment tout dans un avion : les ailes, le train d’atterrissage mais pas les logiciels et, donc, encore moins le cerveau de celui qui les conçoit.

Le recours à l’off shore

Avec les langues qui se délient, le cas du Boeing 737 MAX semble hélas confirmer ce qui précède avec le recours à des sous-traitants offshore pour des parties critiques du 737 MAX. Boeing  a récemment forcé la dose en utilisant largement le prestataire indien HCL pour externaliser l’écriture des softwares de l’avion. Il s’agissait d’une compensation suite à la conclusion de plusieurs méga-contrats en Inde en 2017 dont l’achat de 100 avions 737 MAX. C’est en 2005 que Boeing a commencé à externaliser en Inde avec une promesse de retombées pour 1.7 milliard d’USD dans le pays après une commande de 11 milliards d’Air India. Des témoignages abondent sur des rangées entières de bureaux occupés par le sous-traitant HCL ou de plans/spécifications ou softwares réécrits une dizaine de fois, échangés à de multiples reprises avant que les deux parties ne se comprennent enfin. Il existe un certain nombre de pays où il existe une forte rotation des informaticiens, une pratique, quasiment invisible pour le client, pas vraiment alignée sur les exigences d’expertise et de fiabilité. C’est qu’il est plus rentable de payer un ingénieur sur place à 9 $ de l’heure que de le faire venir aux USA à 35 $ – 40 $ de l’heure. L’Inde n’a évidemment pas le monopole des soucis à externaliser trop. Des problèmes similaires ont eu lieu avec le centre que Boeing avait ouvert à Moscou. Mais tout un chacun sait que l’Inde fait du recours à l’externalisation chez lui son cheval de bataille commercial : dans le cas du 737 MAX, HCL a même proposé de n’être payé qu’au fur et à mesure des ventes du Boeing 737  MAX.

Photo by Rafael Cosquiere from Pexels

Bien sûr, avoir une certification, un titre ne résout pas tous les problèmes : tout le monde a déjà été confronté à un mauvais médecin, architecte ou conseiller financier mais au moins, les « charlatans » seraient déjà hors course. Si le secteur ne s’autorégule pas, le gouvernement doit prendre le relais. Mais c’est loin d’être gagné : on voit aujourd’hui combien il est difficile d’imposer quelque chose aux géants de la tech au niveau national. Ce n’est qu’après plusieurs méga-scandales que Facebook s’est subitement découvert des affinités pro-RGPD. Faut-il plusieurs chutes d’avion dans le cas qui nous occupe ? Techniquement, les briques existent en tout cas pour des logiciels critiques vraiment sûrs : on peut désormais certifier la compilation des logiciels critiques par exemple grâce aux travaux de Xavier Leroy ou Gérard Berry utilisés par Airbus. Ici, aussi, décidément, le maillon faible reste donc ce qui se trouve entre le chaise et le clavier.

Ce n’est qu’une question de temps avant qu’une erreur de programmation n’affecte un programme critique qui causera une  catastrophe à la hauteur de la tâche qu’on lui a confiée ou une autre perte en vies humaines. A côté des gratte-ciels réels qui nous entourent et qu’on n’imaginerait pas s’effondrer, les mêmes gratte-ciels existent virtuellement tout autour de nous et leur allure tient plus du château de cartes bien trop sensibles aux vents contraires.

C. Cuvelliez  (Ecole Polytechnique de Bruxelles, Université de Bruxelles) & J.J. Quisquater (Ecole Polytechnique de Louvain, Université de Louvain)

Pour en savoir plus :

  • What Should We Do to Prevent Software From Failing? Chris de Brusk, May 2019, Sloan Management Review
  • Boeing’s 737 Max Software Outsourced to $9-an-Hour Engineers, Peter Robison, Bloomberg, June 28, 2019

 

 

 

Pourrait-on « toucher » l’information numérique ?

Que ce soit pour attraper un objet, jouer d’un instrument de musique ou prendre la main d’un enfant, le sens du toucher est absolument primordial dans la vie de tous les jours. Il est assez facile de constater que ce sens est très peu mobilisé dans le monde numérique. Pourquoi ? Et comment pourrait-on remédier à cette absence ? Nous avons interrogé trois scientifiques de Lille qui travaillent sur ces questions.  Pascal Guitton.
Photo Pixabay

L’information

Dans un monde baigné par l’information, sous quelque forme que ce soit, la question posée par le titre de ce billet peut sembler saugrenue. Nous avons maintenant l’habitude de voir ou entendre l’information nous arriver grâce aux supports de communication (qu’ils soient numériques ou non) devenus omniprésents dans nos vies. Selon Wikipédia, « L’information désigne à la fois le message à communiquer et les symboles utilisés pour l’écrire ». Le même Wikipédia relève aussi que « Le mot information est parfois utilisé pour théoriser des choses pratiques relevant en réalité de la perception ». Nos sens sont le média dont la nature nous a doté, nous permettant grâce à notre cerveau, qui reçoit et interprète ces signaux, de comprendre le monde. Nos sens sont donc le canal de communication via lequel l’information nous parvient.

La nature de l’information que nos sens nous permettent d’obtenir est très riche et dépasse largement le spectre de l’information numérique dont nous parlons dans ce billet. Au delà du visuel et de l’auditif, nos cinq sens (la vue, l’ouïe, l’odorat, le goût et le toucher) récupèrent quotidiennement et continument de l’information, au sens le plus général du terme. Cette information nourrit tout au long de la vie le développement de l’individu, son développement physique mais aussi social, intellectuel, émotionnel. Grâce à l’évolution naturelle de l’espèce humaine, l’enfant apprend rapidement à tirer le meilleur parti de ses cinq sens en fonction de la situation à laquelle il est confronté. L’adulte sait utiliser intelligemment les informations sensorielles qu’il reçoit passivement ou au contraire les sollicite ; il sait en général utiliser ces informations pour réagir à (ou anticiper) une situation d’urgence, pour améliorer sa communication ; pour lui permettre de s’adapter, de manière plus générale, à un contexte pour réaliser une tâche.

Dans le monde numérique

A l’heure actuelle, l’essentiel de l’information numérique nous est donnée principalement par les sens visuels et auditifs. Dans ce flot d’information toujours plus intense, pourquoi pas se poser la question d’une autre piste sensorielle pour y accéder ? Au moins pour deux raisons.

D’abord parce que notre accès à l’information est parfois compliqué. Un environnement bruyant rend l’accès à l’information sonore parfois difficile ; certains publics n’y ont pas non plus accès dans un contexte normal, pour cause de handicap ou de vieillissement auditif non-appareillable. Pour l’information visuelle on pourra citer la lecture en environnement mobile (pouvant générer le mal des transports) ; la difficulté à consulter l’écran de son smartphone à l’extérieur par un bel après-midi trop ensoleillé, situation où bien souvent la puissance de l’écran peine à suffire pour rendre visible l’information (au prix d’une consommation énergétique importante).

Ensuite parce que notre accès à l’information est parfois non souhaité, ou non canalisé. Ceci peut être le cas dans des situations de concert ou de séance de cinéma, par exemple, ou les écrans de portables sont autant de sources de gêne visuelle. Par ailleurs, un écran est bien souvent visible par d’autres personnes que celle à laquelle il est destiné. Des solutions existent (filtres directionnels, dit de confidentialité, pour les écrans ; simple écouteur pour le canal audio) mais celles-ci sont souvent très partiellement efficaces et ne répondent pas à la totalité du problème.

Et le toucher ?

En partant de ces deux constats, l’idée d’explorer la piste du sens tactile pour accéder à l’information numérique devient une piste séduisante. Dans l’absolu, les soucis d’accès à l’information en situation trop lumineuse pourraient
s’évanouir, cette partie d’information du bout des doigts pourraient peut-être même se passer du regard, permettant ainsi par exemple à l’automobiliste de pouvoir rester concentré sur la conduite alors qu’il manipule son autoradio. Une personne non-voyante pourrait également entrer son code PIN en toute sérénité, personne ne pouvant plus « lire » son code simplement en regardant discrètement par dessus son épaule !

Le sens tactile, parmi les cinq sens dont nous disposons, est un sens d’une richesse importante. Il nous permet de percevoir, en général en complément du sens visuel, des formes et textures, mais aussi de percevoir une température, un état électrique, la réalité mécanique d’une matière plus ou moins souple ; le support principal de la perception tactile, la main de l’homme, est aussi un média extraordinaire pour agir sur le monde et communiquer. Elle nous permet sans effort de manipuler des objets de formes, poids et matériaux très variés. Au-delà de la perception tactile, la main nous donne également accès à une gamme riche d’actions sur le monde. C’est via elle et grâce à elle que l’on peut, en fonction de son but, transformer un objet en outil, communiquer une émotion, mimer une situation pour la faire comprendre, ou soutenir ce que l’on veut dire. De cette richesse à l’heure actuelle, nous en faisons, très objectivement, relativement peu de chose dans notre relation à l’information numérique. La main est ramenée le plus souvent à interagir via un écran tactile, un clavier ou une souris, avec nos dispositifs standard, et très peu d’informations nous reviennent de la machine via le sens tactile.

Cette photo montre deux mains tenant un gobelet dont on ne voit pas le contenu.
Nos mains. Photo de Foodiesfeed extraite du site FreePhotos.cc

Quelques pistes

D’un point de vue technologique, des pistes commencent à émerger pour recevoir de l’information via le sens du toucher, la recherche est active sur ce sujet. Au-delà des bras à retour d’effort, issus de la robotique, qui sont utilisés depuis plusieurs années dans certains domaines industriels spécifiques, on peut mentionner aussi les technologies électro-tactiles, permettant la génération d’un ressenti via la stimulation électrique (dans une gamme d’intensité sans danger à priori pour l’utilisateur). On peut aussi citer des approches faisant converger des ondes sonores pour faire vibrer l’air suffisamment fortement en un point particulier de l’espace d’interaction, donnant l’illusion à l’utilisateur de « toucher » l’invisible ; ces techniques nécessitent pour le moment une forte énergie mais restent très prometteuses. On peut aussi citer pour finir (et sans chercher à être exhaustif), des solutions utilisant de petits actionneurs en déplacement sur une surface, stimulant le doigt de l’utilisateur. L’équipe dont nous faisons partie travaille, dans une logique pluridisciplinaire, sur des technologies utilisant des céramiques piézo-électriques pour mettre par exemple un écran de téléphone ou de tablette en vibration, ces vibrations étant invisibles pour l’oeil mais perceptibles pour le doigt.

Cette photo montre la main d'un enfant qui touche un petit écran sur lequel est affiché un petit animal (style bande dessinée). Il s'agit d'un prototype de livre tactile.
Prototype de livre tactile. Équipe-projet Inria MINT (Lille)

Il est probable que le sens tactile, s’il s’avérait qu’il puisse servir de support à une récupération d’une forme d’information numérique, serait à envisager, pour une bonne relation d’interaction avec l’utilisateur, au moins ponctuellement en cohabitation avec les autres perceptions sensorielles qui sont, elles, mieux comprises et maitrisées. La plupart des phénomènes auxquels l’individu est confronté au quotidien sont l’occasion d’une perception multi-sensorielle. Les sciences de l’homme nous apprennent que la combinaison des canaux sensoriels chez l’individu, pour la compréhension de l’information, se fait parfois suivant une logique de renforcement (les deux sens concourent à percevoir l’information), ou parfois dans une logique de compensation (l’information d’un canal sensoriel est complétée/corrigée/raffinée/enrichie par un autre canal sensoriel), voire parfois de compétition (si l’information d’un canal sensoriel a une saillance prédominante sur les autres canaux d’informations). Au-delà des possibles technologiques déjà existants, trouver de bonnes manières de combiner du retour d’information tactile avec d’autres retours d’informations visuelles ou auditives reste une question très ouverte, dont les champs d’applications ne sont probablement pas encore tous cernés.

Sur le fond, une réflexion doit encore être menée pour comprendre, au sens le plus profond du terme, ce que peut être la nature d’une information qui serait tactile, comment celle-ci peut coexister aux côtés des informations visuelles et auditives. L’information auditive est la plupart du temps une information extraite du monde réel, nous entendons via le numérique ce que nous pourrions entendre sans ce support, en ayant été au bon endroit au bon moment. L’information numérique visuelle comme nous la connaissons sur nos écrans d’ordinateurs, smartphone et autres, est une information
extrêmement conceptuelle ; ces concepts ont émergés grâce à la longue persévérance de l’humanité sur les représentations visuelles.

Laurent Grisoni, Patricia Plenacoste & Frédéric Giraud (Université de Lille)

Outils de décision automatique : opportunités et risques pour nos sociétés

Les algorithmes d’aide à la prise de décision prennent une place croissante dans nos vies. Il est donc important de s’interroger sur les bénéfices qu’ils procurent mais aussi sur les risques qu’ils induisent. Deux chercheurs Inria, Claude Castelluccia et Daniel Le Métayer, ont récemment remis au Parlement européen un rapport sur ces questions.  Nous reprenons le texte de leur interview réalisé par Pauline Tardy-Galliard paru sur le site d’Inria. Serge Abiteboul & Pascal Guitton.

Votre étude porte-t-elle sur les algorithmes d’aide à la décision ou sur les décisions automatisées ? Pouvez-vous nous donner un exemple concret d’une application où la décision automatisée est déjà opérationnelle ?

Le rôle joué (ou pas) par l’humain dans la décision est effectivement une question essentielle. Dans certains cas, comme des systèmes de pilotage de métro automatique ou des logiciels de passage d’ordres en bourse, la décision est entièrement automatisée. Dans d’autres cas, comme les moteurs de recherche ou les plates-formes de réservation d’hébergements par exemple, il s’agit clairement de recommandations qui restent à la libre appréciation du destinataire.

Cependant, la frontière n’est pas toujours si claire.
Considérons, par hypothèse, le cas d’un médecin disposant d’un système d’aide au diagnostic réputé fiable, et dont il suivrait systématiquement les recommandations. Formellement, il ne s’agit pas de décision automatisée puisque celle-ci relève en dernier ressort du médecin, mais s’il ne remet jamais en cause le résultat de l’algorithme, on pourrait dire qu’en réalité c’est le système qui décide.

Ces questions sont d’autant plus critiques que les algorithmes d’aide à la décision concernent quasiment tous les domaines aujourd’hui, à tel point que beaucoup d’internautes n’ont même plus conscience de leur existence (c’est le cas notamment de beaucoup d’utilisateurs de Facebook , et de son algorithme de gestion des fils d’actualité). Nous tenons à insister aussi sur le fait que tous ces algorithmes ne reposent pas sur l’apprentissage, même si cette technique pose des questions plus complexes et se trouve plus sous les feux des projecteurs. Par exemple, les algorithmes de Parcoursup ou de Score Cœur (pour l’appariement entre donneurs et receveurs de greffons) soulèvent des questions intéressantes sans pour autant relever de l’apprentissage.

Selon vous, quelles sont les raisons qui font que l’on s’oriente vers ce type de techniques ?

Il y a trois raisons dominantes. Tout d’abord, ces applications réalisent certains types de tâches de façon plus efficace que l’homme. Par exemple, le métro automatique permet d’améliorer à la fois la sécurité et la fluidité du trafic. On peut espérer les mêmes bénéfices avec les voitures autonomes.

Ces systèmes rendent aussi possible le traitement de gros volumes de données, bien au-delà de ce que peut faire l’humain (par exemple, pour analyser un grand nombre d’images ou un historique important de jurisprudence).

De manière générale, leur utilisation peut permettre de réduire les coûts, d’offrir de meilleur services, ou même de rendre possibles des services complètement nouveaux. Le domaine médical en fournit une multitude d’exemples à cet égard : on peut utiliser ce genre de systèmes pour améliorer les prises de décisions en matière de parcours médical (hospitalisation ou traitement à domicile par exemple, opportunité d’examens complémentaires, etc.), pour détecter beaucoup plus tôt des symptômes de maladie, pour analyser les effets des traitements, etc.

Photo by Lelia Milaya 🌿 on Reshot

Et quels en sont les risques ?

Il existe différents types de risques. Ceux dont on parle le plus, notamment pour les systèmes qui reposent sur l’apprentissage, sont les risques liés aux biais dans les données utilisées pour entraîner ces systèmes.
En effet, les données disponibles reflètent forcément les biais existant dans les comportements passés. Il existe des cas bien connus comme celui du système COMPAS de prédiction de la récidive qui utilisé dans certaines cours de justice américaines. Il a été montré par exemple que COMPAS se trompe beaucoup plus souvent en défaveur des justiciables noirs : le nombre de faux positifs (personnes considérées à tort comme à fort risque de récidive) est deux fois plus important dans la population noire que dans la population blanche.
Il existe également des risques liés à la sécurité car ces systèmes peuvent facilement être attaqués, et leurs mécanismes peuvent être contournés (illustration d’attaques avec les images du rapport p.35).
Il existe enfin des risques liés à la vie privée, dans la mesure où ces systèmes sont très consommateurs de données personnelles. Ces données, qui peuvent être très sensibles comme les données de santé, sont utilisées en phase opérationnelle mais aussi en amont, dans la phase d’entraînement.

A votre avis, que faudrait-il faire pour bénéficier de toutes ces promesses sans en payer les contreparties ? Pour quelles raisons est-ce si difficile à faire ?

Nous avons formulé plusieurs recommandations dans le rapport. Il est aussi accompagné d’un second document intitulé « Options Brief » plus spécifiquement destiné au législateur européen.
La démarche qui nous paraît saine en la matière est celle de l’analyse d’impact. De la même manière que la RGPD impose de réaliser des analyses d’impact « vie privée », il faudrait rendre obligatoires les études d’impact « algorithmique » avant le déploiement des systèmes qui peuvent affecter significativement la vie des personnes concernées. Depuis la publication de notre rapport, le Canada a d’ailleurs adopté une directive dans ce sens. De manière plus générale, il faut rendre plus concrètes et « vérifiables » les déclarations de bonne conduite et autres chartes d’éthique qui se multiplient aujourd’hui à propos de l’IA. Nous insistons beaucoup dans le rapport sur cette notion d’accountability , c’est à dire d’obligation de rendre des comptes.

D’un point de vue de la recherche, le plus gros chantier aujourd’hui est celui de l’explicabilité.

Comment faire en sorte que les décisions prises ou recommandées par ces systèmes soient compréhensibles par les humains ? Cette question est d’autant plus critique quand c’est l’humain qui, in fine , doit prendre la décision et en accepter la responsabilité. On sait pourtant que, pour certains types d’applications, les systèmes les plus précis (au sens de la correction des prévisions) sont aussi les plus opaques. On peut penser aux réseaux de neurones profonds notamment. Comment concilier précision et explicabilité ? Comment formuler les explications pour qu’elles soient véritablement utiles ? Comment mesurer cette utilité ? Toutes ces questions vont susciter de nombreux travaux de recherche dans les années à venir et nous pensons qu’il est important de mener ces travaux de manière interdisciplinaire, non seulement avec des juristes mais aussi des psychologues, sociologues, philosophes, etc.
Beaucoup de questions se posent aussi du point de vue réglementaire : par exemple, dans quels cas exiger l’explicabilité ? Dans quels domaines exiger une certification des outils d’aide à la décision (à l’instar, par exemple, des dispositifs médicaux) ?
Enfin, il est nécessaire de mettre sur pied un débat de société sur certains usages de ces outils d’aide à la décision : par exemple en matière de reconnaissance faciale, comme le recommande la CNIL, dans les domaines militaire, judiciaire, etc. Ce débat est d’autant plus nécessaire que certains principes ou objectifs peuvent entrer en tension et qu’il est parfois nécessaire de décider où nous souhaitons positionner le curseur. Il peut exister notamment des tensions entre efficacité (ou précision) et explicabilité des systèmes, entre vie privée et sécurité des personnes, etc. Il est important aussi de poser ces questions en considérant tous les risques et bénéfices liés à l’usage ou au non-usage des système d’aide à la décision.

Pour quelles raisons la Parlement européen s’est-il tourné vers vous pour ce rapport ?

La réalité est que les femmes et hommes politiques, que ce soit au niveau européen ou à l’échelle nationale, ont généralement une formation plutôt littéraire ou juridique : ils ont conscience des enjeux en la matière mais sont souvent démunis devant la complexité des questions techniques. Ils sont donc demandeurs d’expertise. Ils sont venus vers nous, comme d’autres institutions (Conseil de l’Europe, Assemblée nationale, etc.) parce que nous sommes reconnus par nos travaux scientifiques mais aussi parce que nous avons adopté depuis des années une démarche interdisciplinaire. C’est ce qui nous permet notamment de comprendre les questions juridiques et de pouvoir échanger avec le législateur sur ces sujets. Nous pensons qu’à l’ère des sociétés technologiques, il est impératif de plus développer ces compétences transverses. Inria en particulier a un rôle important à jouer et devrait être plus volontariste sur ce terrain.

Claude Castelluccia et Daniel Le Métayer (Inria, équipe-projet PRIVATICS)

La cybersécurité aux multiples facettes

La cybersécurité, en tant que menace majeure à laquelle nous tous confrontés, fait apparaître de nombreux défis scientifiques. Par ailleurs, l’éducation et la sensibilisation de chacun sont des composants essentiels pour faire face à cette menace. C’est en cela que le Livre Blanc qu’Inria vient de publier sur le sujet est particulièrement important. Nous avons demandé à ses coordinateurs de nous expliquer les enjeux. Ils nous proposent un véritable tour d’horizon de la cybersécurité. Serge Abiteboul, Pascal Guitton.
Cybersécurité, Saint Oma

La transformation numérique de notre société est en train de changer radicalement la manière dont les systèmes informatiques sont utilisés. Une grande partie de la population est connectée en permanence à Internet, utilisant un nombre important de services. Simultanément, nous sommes constamment exposés à des attaques : nos données personnelles peuvent être volées, modifiées ou détruites. Nous courons également le risque de divulguer par erreur et de façon irréversible nos données personnelles sur Internet. Les entreprises, les états et leurs infrastructures critiques, qui sont aujourd’hui interconnectées, sont également vulnérables, et les dommages économiques et sociétaux des cyberattaques réussies peuvent être considérables. Pour de nombreux experts, la question n’est pas de savoir si une attaque de grande envergure pourrait arriver, car la réponse est clairement positive, mais plutôt : y sommes-nous suffisamment préparés ? La cybersécurité est ainsi devenue une préoccupation générale qui nous concerne tous, décideurs, professionnels et citoyens.

Wikipédia définit la cybersécurité comme « la protection des systèmes informatiques contre le vol et l’endommagement de leur matériel, logiciels ou informations, ainsi que contre la perturbation ou le détournement des services qu’ils fournissent. » La cybersécurité touche à de nombreux domaines de l’informatique allant de sujets théoriques proches des mathématiques comme la cryptologie ou les preuves de programmes, à des questions beaucoup plus pratiques liées aux systèmes d’exploitation et à l’architecture des ordinateurs, tout en posant des questions sociétales importantes comme la protection de la vie privée.

Ses multiples facettes

La première étape de la cybersécurité consiste à identifier les menaces et à définir une politique de sécurité. Les menaces peuvent cibler toutes les composantes d’un système informatique. D’abord la sécurité du matériel peut être compromise : une « backdoor[1] », un trou de sécurité, peut avoir été inclus dans ce matériel. Le problème peut venir du logiciel, aussi bien du système d’exploitation que des applications elles-mêmes. Il peut venir du réseau, par exemple, dans des attaques qui donneraient aux attaquants accès aux communications. Enfin, l’utilisateur lui-même peut représenter une menace, par exemple, en utilisant des clés USB d’origines douteuses, en laissant trainer ses mots de passe, en répondant à des messages de phishing[2], etc.

Des mécanismes de protection et de détection doivent être conçus pour se défendre contre toutes ces menaces.

L’un des principaux mécanismes de protection est la cryptographie : les primitives cryptographiques peuvent assurer la confidentialité et l’intégrité des données. Elles doivent faire l’objet d’une analyse continue (on parle de cryptanalyse) pour assurer et maintenir le plus haut niveau de sécurité. Les primitives cryptographiques ne sont toutefois que des briques de base au-dessus desquelles sont construits des protocoles cryptographiques, mettant en œuvre des interactions plus riches entre des entités distribuées. Des techniques de vérification formelle sont alors utilisées pour s’assurer que les protocoles cryptographiques offrent bien les propriétés qu’ils cherchent à garantir.

Des services de sécurité supplémentaires nécessaires pour appliquer une politique de sécurité, tel que le contrôle d’accès, sont finalement fournis par le système d’exploitation ou les périphériques réseau. Comme ils peuvent eux-mêmes être attaqués et parfois contournés, les activités sur le système d’information doivent être supervisées afin de détecter toute violation de la politique de sécurité ; le système doit pouvoir réagir automatiquement et au moins se reconfigurer pour éviter que les attaques ne se propagent.

Un aspect important de la cybersécurité concerne la protection de la vie privée qui s’appuie sur les primitives et protocoles cryptographiques, mais utilise des propriétés, des techniques et des méthodologies qui lui sont propres et doit prendre en compte des aspects juridiques, économiques et sociologiques.

Cryptographie : primitives, schémas et protocoles

La cryptographie joue un rôle essentiel et constitue la base de la cybersécurité.

Les primitives cryptographiques, telles que les fonctions de chiffrement, constituent les briques de base. On distingue deux familles : les primitives symétriques et asymétriques.

La cryptographie symétrique suppose que les parties en communication partagent une clé secrète. Ce type de cryptographie est plus efficace que la cryptographie asymétrique, mais nécessite l’échange préliminaire de la clé secrète. La cryptographie asymétrique, ou à clé publique, ne nécessite pas cet échange, car la clé publique (utilisée pour le chiffrement) n’a pas besoin de rester secrète. L’utilisation de ces deux types de primitives est complémentaire et nécessaire dans la plupart des mises en œuvre : on utilise typiquement la cryptographie asymétrique pour échanger une clé privée utilisée ensuite pour chiffrer, de façon symétrique, les communications ultérieures. Le but du cryptanalyste est de trouver les faiblesses et d’évaluer la résistance des constructions existantes. Son travail permet, d’une part d’évaluer finement la difficulté des problèmes supposés difficiles sur lesquels reposent les primitives, en tenant compte à la fois de l’évolution de la puissance de calcul et de l’amélioration des algorithmes, d’autre part d’explorer de nouvelles méthodes d’attaque, telles que celles reposant sur l’existence d’un ordinateur quantique ou celles exploitant des canaux auxiliaires.

Alors que les primitives cryptographiques sont les éléments de base, les schémas cryptographiques atteignent des propriétés plus fortes via des modes d’opération spécifiques. En effet, certaines applications, telles que l’externalisation du calcul, peuvent nécessiter des fonctionnalités plus avancées que le chiffrement classique : les schémas de chiffrement homomorphe et fonctionnel permettent de travailler sur des données chiffrées. Par exemple, le chiffrement homomorphe permet, à partir des données chiffrées de x1 et x2, d’évaluer une fonction f et ainsi calculer le chiffré de f(x1,x2) sans pour autant avoir la possibilité de déchiffrer les données.

La sécurité des communications et des transactions est de nos jours assurée par des protocoles cryptographiques, tels que TLS (Transport Layer Security[3]). La sécurité des primitives et des schémas cryptographiques sous-jacents n’est cependant pas suffisante pour garantir des objectifs globaux en matière de sécurité, tels que la confidentialité, l’authenticité ou l’anonymat. Même un examen minutieux de ces protocoles par des experts peut difficilement garantir l’absence de vulnérabilités : des preuves de sécurité rigoureuses, éventuellement assistées par ordinateur, allant de la spécification à l’implémentation, sont devenues indispensables.

On peut distinguer trois approches. La première utilise des preuves par réduction pour montrer que le fait de casser la sécurité d’un protocole impliquerait de casser les primitives cryptographiques sous-jacentes. La deuxième utilise des outils de vérification automatique (sans intervention humaine) pour analyser le protocole et trouver des vulnérabilités dans la logique du protocole. Ces outils sont capables d’analyser des protocoles complexes mais idéalisent la cryptographie sous-jacente. Enfin, la troisième approche vise à produire des implémentations vérifiées de bout en bout, en s’appuyant sur des systèmes de type expressifs pour des langages de programmation dédiés. Cette dernière approche requiert une très grande expertise. Un de ses succès majeurs est une implémentation complètement vérifiée de TLS.

Services et mécanismes de sécurité

Pour utiliser un système informatique, un utilisateur doit tout d’abord affirmer son identité puis prouver qu’il est vraiment celui ou celle qu’il prétend être. L’authentification est réalisée en présentant un authentifiant qui appartient généralement à l’une des catégories suivantes : une connaissance (comme par exemple un mot de passe ou un code pin), une possession (comme par exemple une carte d’accès), une caractéristique physique (par exemple une empreinte digitale). Pour augmenter la force de la preuve, ces authentifiants peuvent aussi être combinés dans ce que l’on appelle l’authentification « multifacteur ». Malgré leurs nombreux inconvénients, les mots de passe restent le moyen d’authentification le plus courant.

Cette identité prouvée est ensuite utilisée par le système pour accorder ou restreindre les accès de cet utilisateur aux ressources du système (contrôle d’accès) ou pour éviter qu’une information spécifique ne circule vers une destination donnée (contrôle de flux). En effet, la mise en œuvre de la sécurité passe par la définition précise des entités qui peuvent avoir accès à telle ou telle information. Classiquement, les droits d’accès (en lecture ou écriture, par exemple) à l’information sont accordés si et seulement si une condition est remplie (par exemple, l’utilisateur qui demande l’accès est correctement identifié et authentifié). Une séquence de lecture-écriture engendre un flux d’informations qui peut également être contrôlé dans certains cas.

Lorsqu’un utilisateur a besoin d’exécuter un programme sur une machine non fiable, un mécanisme matériel peut être utilisé. On parle dès lors d’informatique de confiance, le matériel permettant d’assurer l’intégrité de la plate-forme sur laquelle il est installé et par conséquence la sécurité du lancement du système d’exploitation. Il est également possible d’instaurer une confiance au niveau des applications en exécutant du code dans des environnements isolés et fiables, appelés enclaves.

Tous les services de sécurité mentionnés ci-dessus sont préventifs. Ils peuvent malheureusement être parfois contournés, car des défauts de conception ou d’implémentation restent possibles. Il est donc nécessaire de leur adjoindre des mécanismes de supervision permettant de vérifier que les actions réalisées sur le système n’enfreignent pas sa politique de sécurité. L’approche principale et largement déployée de nos jours pour détecter ces violations consiste à en définir les symptômes et à rechercher l’apparition de ces symptômes dans les données dont on dispose (trafic réseau, fichiers du système d’exploitation, journaux applicatifs, etc.). Une alternative à cette approche consiste à définir les activités normales du système supervisé pour mesurer ensuite les écarts potentiels par rapport à cette référence. Dans les deux cas, le défi consiste à détecter toutes les intrusions, mais seulement les intrusions. Dans la pratique, cependant, les mécanismes de détection sont loin d’être parfaits, ce qui entraîne de nombreux faux positifs (fausses alertes) ou faux négatifs (attaques non détectées). Une étape supplémentaire, la corrélation des alertes, est donc nécessaire. Un aspect important consiste à vérifier que les conséquences de l’attaque dénoncée sont bien présentes dans le système, sans quoi l’alerte correspondante est probablement un faux positif.

Une violation de politique peut se produire à l’insu de l’utilisateur qui l’engendre, car celui-ci peut avoir été attaqué par un logiciel malveillant. L’analyse et la détection des logiciels malveillants sont donc aussi des services de sécurité importants. La détection de tels logiciels s’appuie généralement sur l’analyse de toute l’information reçue par un appareil (une machine, un téléphone, un pare-feu, etc.) ou sur l’analyse complète des fichiers de cet appareil. Le moteur de détection compare ces données à une base de référence contenant les caractéristiques des logiciels malveillants connus. Le défi consiste à maintenir cette base à jour, les auteurs de logiciels malveillants générant constamment de nouvelles variantes du même code afin d’éviter cette détection. Des projets de recherche proposent donc des techniques de détection s’appuyant sur le comportement concret du logiciel malveillant, qui reste souvent identique entre ses différentes variantes.

Idéalement, si une intrusion ou un logiciel malveillant est détecté, le système doit réagir, au moins pour se reconfigurer afin d’éviter la propagation de l’attaque ainsi que des attaques similaires. Bien entendu, il est important d’éviter que les contre-mesures n’aient elles-mêmes des conséquences néfastes, comme par exemple d’empêcher un accès légitime à un service.

Photo Rawpixel.com

Protection de la vie privée et des données personnelles

 

En France, la loi « Informatique et Libertés » de 1978 définit les données à caractère personnel comme des informations pouvant être directement ou indirectement liées à une personne, quel que soit le moyen mis en œuvre. Cette notion et les obligations qui en découlent constituent la pierre angulaire de la réglementation. Pour tenir compte des évolutions technologiques, l’Union européenne a récemment adopté le « Règlement Général sur la Protection des Données » (RGPD), en vigueur depuis mai 2018, qui met en particulier l’accent sur la responsabilité juridique des responsables de traitements et de leurs sous-traitants.

Toutefois, le RGPD fournit très peu d’indications sur la mise en œuvre efficace de ces concepts. Aussi, un travail interdisciplinaire est nécessaire pour réduire l’écart entre instruments juridiques et techniques, par exemple en définissant des méthodes rigoureuses d’analyse des risques, de protection de la vie privée dès la conception, ou en proposant des techniques pour renforcer la transparence et le contrôle utilisateur.

Le développement de nouveaux outils est aussi nécessaire. En particulier, l’anonymisation d’une base de données, qui exige un difficile compromis entre respect de la vie privée et utilité, est une tâche complexe pour laquelle la confidentialité différentielle s’est avérée être un concept clé pour fournir des propriétés démontrables. L’avènement du stockage dans un cloud personnel permet pour sa part de redonner un contrôle aux utilisateurs.

Cependant, notre monde connecté, en englobant progressivement des domaines jusque-là hors d’atteinte, est à l’origine de fuites de données personnelles massives. Certaines fuites sont consenties par l’utilisateur, comme le partage sur des réseaux sociaux qui peut avoir des conséquences significatives sur la vie privée de l’utilisateur. Le profilage ainsi rendu possible a permis l’émergence d’entreprises spécialisées dans la manipulation des utilisateurs, notamment lors d’élections ou de consultations publiques.

Les données de géolocalisation, fréquemment partagées, sont tout aussi préoccupantes du fait des possibilités d’inférences, allant des habitudes de vie jusqu’à des informations sensibles comme la fréquentation régulière d’un hôpital. Enfin, les données biométriques posent soucis, ces données étant à la fois hautement discriminantes et stables, ce qui crée des risques majeurs en matière de sécurité et de vie privée.

Cependant, les fuites de données personnelles surviennent le plus souvent sans le consentement utilisateur. C’est le cas lorsque l’on navigue sur le Web puisque chaque site visité peut déclencher à l’insu de l’utilisateur de multiples échanges de données au profit de sociétés tierces spécialisées dans le profilage. Les protections sont à la fois réglementaires, mais aussi techniques, via des mécanismes côté client comme les outils de blocage de publicités ou de traçage, dont l’efficacité reste toutefois variable. Ce domaine est en constante évolution, autant du côté des outils de traçage que des outils de protection.

L’avènement des smartphones et de l’Internet des Objets ont contribué à ce que les fuites de données atteignent un volume et une précision sans précédent, sans que l’utilisateur en ait conscience. Les objectifs de la recherche sont ici d’analyser ces systèmes, de donner une information transparente qui mette en évidence les bonnes et mauvaises pratiques, d’encourager certains acteurs à changer, et de proposer des techniques pour améliorer le contrôle utilisateur.

Enfin, Internet est aussi à la source de fuites de données, les réseaux d’accès sans fil en étant un bon exemple. Des centres commerciaux ont ainsi déployé des systèmes de traçage afin d’analyser leur fréquentation, basés sur l’analyse des trames Wi-Fi envoyées par un smartphone à la recherche d’un point d’accès. Des recherches sont nécessaires pour analyser ces technologies et proposer des versions préservant la vie privée, dans la mesure du possible.

Des risques et des opportunités

Tous les mécanismes de sécurité décrits précédemment doivent être soigneusement intégrés dans les applications critiques. Cela englobe les applications traditionnelles, critiques du point de vue de la sûreté, comme l’aéronautique, le transport, les réseaux électriques, ou les télécommunications, qui en étant de plus en plus connectées sont aussi de plus en plus vulnérables aux attaques intentionnelles, mais aussi les nouvelles infrastructures fonctionnant dans le cloud ou connectées à une multitude d’objets (IoT) souvent peu sécurisés.

Heureusement, face à ces risques accrus, d’énormes progrès ont aussi été accomplis. On note en premier lieu une prise de conscience généralisée des risques, au niveau des États, avec la mise en place de mesures de protection pour nos infrastructures critiques, au niveau des décideurs, qui prennent de plus en plus en compte la cybersécurité de façon systématique et préventive, et au niveau des citoyens. Il faut toutefois rester humble en matière de cybersécurité : être informé ne signifie pas être expert car la cybersécurité ne s’improvise pas. Il convient donc d’agir, rigoureusement, à son niveau de compétence, mais, au-delà, de toujours s’en remettre à des experts.

Des nombreux progrès ont aussi été accomplis dans le domaine de la recherche. Une avancée importante face aux risques croissants est le succès récent des méthodes de vérification formelle pour prouver certaines primitives et protocoles cryptographiques de bout en bout, c’est-à-dire de leur conception jusqu’au code compilé s’exécutant sur la machine, permettant ainsi d’approcher le zéro faute. La France est très en pointe sur le plan académique dans ce domaine, avec en outre quelques belles réussites dans l’industrie : c’est donc une opportunité dont il faut vite se saisir !

Toutefois, même les approches formelles ne font que reculer la ligne de front, repoussant les risques en dehors de la partie formellement vérifiée ou au niveau de la modélisation, toujours idéalisée, de l’attaquant. Celui-ci s’adapte en permanence, à la recherche du maillon faible qui, en bout de chaîne, reste encore trop souvent le facteur humain. La formation a donc un rôle essentiel à jouer, mais plus encore l’amélioration de l’ergonomie des outils de sécurité, encore trop souvent difficiles à mettre en œuvre. Dans ce jeu de cache-cache entre le défenseur et l’attaquant, il faut poursuivre la recherche de pointe dans tous les domaines de la cybersécurité, accroître le nombre d’experts, et diffuser les compétences dans d’autres domaines de l’informatique, afin que les défenseurs conservent toujours un avantage par rapport aux attaquants.

Steve Kremer (Inria, Nancy), Ludovic Mé (Inria, Rennes), Didier Rémy (Inria, Paris), et Vincent Roca (Inria, Grenoble)

Pour aller plus loin

Les bilans et défis scientifiques en cybersécurité, Web Inria, https://www.inria.fr/actualite/actualites-inria/inria-publie-son-livre-blanc-sur-la-cybersecurite

[1] Dans un logiciel, une « backdoor » (ou porte dérobée en français) est une fonctionnalité inconnue de l’utilisateur légitime, qui donne un accès secret au logiciel. (Wikipedia).

[2] L’hameçonnage ou phishing est une technique utilisée par des fraudeurs pour obtenir des renseignements personnels dans le but de perpétrer une usurpation d’identité. La technique consiste à faire croire à la victime qu’elle s’adresse à un tiers de confiance — banque, administration, etc. — afin de lui soutirer des renseignements personnels : mot de passe, numéro de carte de crédit, numéro ou photocopie de la carte nationale d’identité, date de naissance, etc. (Wikipédia).

[3] TLS est un protocole très utilisé par exemple dans des échanges entre serveurs et navigateurs web ou bien dans les clients de messagerie.