Une transition ça va. Deux, bonjour le climat !

cop-21-le-logoDérèglement climatique ? Problèmes d’énergie et dégradations que nous faisons subir à notre planète ? La Conférence de Paris de 2015 sur le climat (qui inclut la COP21) est une excellente occasion de mettre la transition écologique au cœur du débat. De plus, nous baignons dans une autre transition, la transition numérique dont on mesure chaque jour un peu plus en quoi elle transforme notre monde de façon si fondamentale. Deux disruptions. Comment coexistent-elles ?

www.greenit.fr, un site de partage de ressources à propos d’informatique durable

Commençons par ce qui fâche le fana d’informatique que je suis : le coût écologique du numérique. Le premier ordinateur, Eniac, consommait autant d’électricité qu’une petite ville. Les temps ont changé ; votre téléphone intelligent a plus de puissance de calcul et ne consomme quasiment rien. Oui mais des milliards de telles machines, d’objets connectés, et les data centers ? La consommation énergétique de l’ensemble est devenue une part importante de la consommation globale ; plus inquiétante encore est la croissance de cette consommation. Et puis, pour fabriquer tous ces objets, il faut des masses toujours plus considérables de produits chimiques, et de ressources naturelles, parfois rares. Et je vous passe les déchets électroniques qui s’amoncellent. Il va falloir apprendre à être économes ! Vous avez déjà entendu cette phrase. Certes ! On ne fait pas faire tourner des milliards d’ordinateurs en cueillant silencieusement des fleurs d’Udumbara.

D’un autre coté, le monde numérique, c’est la promesse de nouveaux possibles, scientifiques, médicaux, économiques, sociétaux. C’est, entre tellement d’autres choses, la possibilité pour un adolescent de garder contact avec des amis partout dans le monde; pour un jeune parent, de travailler de chez lui en gardant un enfant malade ;  pour une personne au fin fond de la campagne, au bout du monde, d’avoir accès à toute la culture, à tous les savoirs du monde ; pour une personne âgée de continuer à vivre chez elle sous une surveillance médicale permanente. C’est tout cela : de nouveaux usages, de nouveaux partages, de nouveaux modes de vie. Alors, il n’est pas question de « se déconnecter » !

Les transitions écologiques et numériques doivent apprendre à vivre ensemble.

Penser écologie quand on parle de numérique

Quand le numérique prend une telle place dans notre société, il faut que, comme le reste, il apprenne à être frugal. Cela conduit à la nécessité de construire des ordinateurs plus économes en électricité, d’arrêter de dépenser d’énormes volumes de temps de calcul pour mieux cibler quelques publicités. Cela conduit aussi à modifier nos habitudes en adoptant un faisceau de petits gestes : ne pas changer d’ordinateur, de téléphone intelligent, de tablette tous les ans juste pour pouvoir frimer avec le dernier gadget, ne pas inonder la terre entière de courriels, surtout avec des pièces jointes conséquentes, etc. Nous avons pris de mauvaises habitudes qu’il est urgent de changer. Les entreprises doivent aussi limiter leurs gaspillages d’énergie pour le numérique. On peut notamment réduire de manière significative l’impact écologique d’un data center, le rendre plus économe en matière d’énergie, voire réutiliser la chaleur qu’il émet. Bref, il faut apprendre à penser écologie quand on parle de numérique.

Oui, mais les liens entre les deux transitions vont bien plus loin. Le numérique et l’écologie se marient en promouvant des manières nouvelles, collectives de travailler, de vivre. Les réseaux sociaux du Web, des encyclopédies collaboratives comme Wikipedia, ne préfigurent-ils pas, même avec leurs défauts, le besoin de vivre ensemble, de travailler ensemble ? L’innovation débridée autour du numérique n’est-elle pas un début de réponse à l’indispensable nécessité d’innover pour répondre de manière urgente aux défis écologiques, dans toute leur diversité, avec toute leur complexité ?

flowers-and keyboard
adapté de pixabay.com

L’informatique et le numérique sont bien des outils indispensables pour résoudre les problèmes écologiques fondamentaux qui nous sont posés. Philippe Houllier, le PDG de l’INRA, peut, par exemple, bien mieux que moi expliquer comment ces technologies sont devenues incontournables dans l’agriculture. Il nous parle dans un article à venir sur binaire de l’importance des big data pour améliorer les rendements en agriculture, un sujet d’importance extrême quand les dérèglements climatiques et la pollution des sols tendent  à faire diminuer ces rendements.

On pourrait multiplier les exemples mais il faut peut-être mieux se focaliser sur un fondement de la pensée écologique :

penser global, agir local.

On avait tendance à penser des équipements massifs, globaux, par exemple une centrale nucléaire, une production agricole intensive destinée à la planète, etc. Les temps changent. On parle maintenant d’énergie locale, diversifiée, d’agriculture de proximité. Mais si cette approche conduit à une économie plus durable, elle est plus complexe à mettre en place ; elle demande de faire collaborer de nombreuses initiatives très différentes, de s’adapter très vite et en permanence, de gérer des liens et des contraintes multiples. Elle ne peut se réaliser qu’en s’appuyant sur le numérique ! On peut peut-être faire fonctionner une centrale nucléaire sans ordinateur – même si je n’essaierais pas – mais on n’envisagerait pas de faire fonctionner un « smart-grid » (réseau de distribution d’électricité « intelligent ») sans. Un peu à la manière dont nos ordinateurs s’échangent des données sans cesse, on peut imaginer des échanges d’électricité entre un très grand nombre de consommateurs et plus nouveau de fournisseurs (panneaux solaires, éolienne, etc.), pour adapter en permanence production et consommation, pour en continu optimiser le système. Il s’agit bien d’une question d’algorithme. Et l’informatique est également omniprésente quand nous cherchons à modéliser le climat, les pollutions, à les prévoir.

Nous découvrons sans cesse de nouvelles facettes de la rencontre entre ces deux transitions. Nous découvrons sans cesse de nouveaux défis pour la recherche et le développement à leur frontière.

Serge Abiteboul, Inria et ENS Cachan

Pour aller plus loin :

Langue et Langages

Langages de programmation et langues naturelles. Le néophyte est un peu perdu. Il n’est pas certain que l’informaticien ait vraiment réfléchi aux liens, aux différences. Maurice Nivat, un des grands pionniers de l’informatique, nous livre quelques réflexions sur le sujet. Il en dégage des pistes intéressantes pour l’enseignement de l’informatique aux enfants. Serge Abiteboul.

Il est bien connu que l’informatique a donné naissance à une étonnante quantité de langages de programmation, il y en a des milliers et je pense qu’il en apparaît toujours de nouveaux.

Après bien des hésitations, des décisions ministérielles récentes vont faire que ces langages, du moins certains d’entre eux, fassent l’objet d’un enseignement pour les élèves du second degré et, avec eux bien sûr, la programmation ou l’art d’écrire dans ces langages des textes baptisés programmes qui permettent de faire réaliser des actions par des machines électroniques. Les programmes décrivent des façons de faire que l’on appelle des algorithmes d’un mot un peu barbare mais ancien puisqu’il apparaît dès le treizième siècle.

Clair de Lune, Verlaine.
Votre âme est un paysage choisi
Que vont charmant masques et bergamasques
Jouant du luth et dansant et quasi
Tristes sous leurs déguisements fantasques.
Tout en chantant sur le mode mineur
L’amour vainqueur et la vie opportune
Ils n’ont pas l’air de croire à leur bonheur
Et leur chanson se mêle au clair de lune,
Au calme clair de lune triste et beau,
Qui fait rêver les oiseaux dans les arbres
Et sangloter d’extase les jets d’eau,
Les grands jets d’eau sveltes parmi les marbres.
Quicksort, Anonyme
…  if(first<last){
pivot=first;
i=first;
j=last;
while(i<j){
while(x[i]<=x[pivot]&&i<last)
i++;
while(x[j]>x[pivot])
j–;
if(i<j){
temp=x[i];
x[i]=x[j];
x[j]=temp; }  } 

On peut difficilement programmer si l’on n’a pas une idée précise de l’algorithme qu’il s’agit de décrire, comme il est difficile de parler si l’on ne sait pas quoi dire. Et pour avoir une idée de l’algorithme que l’on va programmer il est nécessaire d’avoir un but clairement défini et de savoir de quels moyens on dispose. La prolifération des langages de programmation vient de ce qu’il y a beaucoup de façons de décrire un algorithme comme il y a beaucoup de façons d’exprimer quelque chose que l’on veut dire, beaucoup de langages, c’est dire de systèmes de notation possibles, dans lesquels on peut écrire et aussi de nombreuses écritures possibles dans un même langage.

Je bondis toujours quand je lis, dans des manuels d’informatique, que le corrigé de l’exercice n°17 page 234 est « le » programme suivant, l’exercice consistant à écrire un programme pour décrire un petit algorithme décrit tant bien que mal en français augmenté de quelques formules plus ou moins mathématiques en Python ou ce que vous voudrez. C’est aussi absurde que le serait de dire qu’il y a un seul texte en français décrivant une situation donnée ou rendant compte de faits observés. Il ne faut pas enseigner longtemps la programmation pour se rendre compte qu’à un tel exercice, les élèves peuvent apporter les réponses les plus diverses et parfois toutes exactes. La correction des copies rendues s’apparente plus à celle des compositions françaises par le professeur de français qu’à celle d’un devoir de math et peut se révéler cauchemardesque pour le prof, tout en apparaissant assez arbitraire à l’élève.

Dans la plupart des manuels c’est avec les premières lignes écrites dans un langage de programmation que commence l’apprentissage de l’informatique et de la programmation et je pense que c’est grand dommage car les élèves, quels qu’ils soient, ont commencé à utiliser des programmes bien avant, quand ils ont appris à compter, à faire des additions et multiplications et aussi les règles de phonétique et de grammaire permettant de lire à haute voix un texte écrit en français ou d’écrire sous la dictée. Ces programmes que les enfants apprennent (non sans mal souvent) dès le CP à l’âge de six ans sont écrits en français, seul langue ou langage qu’ils connaissent, et décrivent soit des algorithmes simples comme celui de l’addition soit des algorithmes très complexes comme celui de l’orthographe.

En fait les enfants ont dans la tête quantité d’algorithmes, plus ou moins précis, plus ou moins bien décrits, appris, connus, en français ou dans quelque chose de très près du français, un français élémentaire avec des ajouts de vocabulaire tenant au domaine dans lequel se situe l’algorithme, qui peut être celui du comportement en général, de la vie sociale, du jeu, du sport, de matières scolaires.

En commençant l’enseignement de l’informatique par la présentation d’un langage de programmation artificiel, on donne l’impression que l’informatique est un domaine nouveau, quelque peu ésotérique, concernant les ordinateurs et eux seulement, ce qui est méconnaître que la recherche d’algorithmes pour faire ceci ou cela, avec les moyens qu’on a, est une activité que tout le monde pratique et ce depuis sa plus tendre enfance.

Dire qu’apprendre la programmation c’est apprendre à « coder » est une absurdité, le premier codage que l’on apprend c’est la langue maternelle qui n’est qu’un code, au sens strict, faisant correspondre, de façon très arbitraire (il y en a quand même plusieurs milliers dans le monde), des mots à des objets, des actions, des gestes, des sensations, des sentiments, des idées.

L’enfant est déjà habitué à toutes espèces de restrictions, distorsions, extensions de sa langue maternelle pour répondre aux divers besoins de communication rapide ou secrète ou de dénominations d’objets et d’actions liés à des activités ou des situations particulières qui ne sont pas dans le dictionnaire. Il a déjà senti qu’il y a des façons de dire l’histoire, ou la géographie, ou la science, ou la littérature qui ne sont pas les mêmes, même s’il est incapable de préciser en quoi ces façons diffèrent. On lui a même appris à se servir d’un dictionnaire plus ou moins encyclopédique et de divers livres de classe pour y rechercher et éventuellement trouver des informations en réponse à des questions qu’on lui pose ou qu’il se pose.

Je pense qu’il serait de bonne pédagogie de construire les connaissances de l’informatique qu’on cherche à donner aux enfants sur ce savoir. Il s’agit aussi bien de la connaissance explicite de quelques algorithmes, que de celle, diffuse, de beaucoup d’autres, en s’appuyant sur leur expérience déjà vécue des niveaux de langue, des changements de sens des mots et de phrases quand on change de contexte ou de type de discours.

Le problème de savoir dire en français, dans la langue de tout le monde ce que fait l’informatique, ce qu’est un algorithme, ou comment marche un programme déborde largement le cadre de l’enseignement dans les écoles, lycées et collèges.

La diffusion souhaitable d’une culture informatique à tous les jeunes scolarisés mais aussi tous les citoyens a pour but de permettre à tous de se diriger et se comporter dans un monde où le travail humain est inextricablement mêlé à celui de très nombreuses machines au sein de systèmes complexes dont le bon fonctionnement repose sur des algorithmes de plus en plus nombreux et sophistiqués. Le but de l’enseignement de l’informatique au plus grand nombre qui n’écrira jamais de programme autre que jouet est de faire comprendre ce mouvement d’informatisation galopante, de démythifier la machine et de rendre familiers les algorithmes, ces curieux objets qu’on ne voit jamais (comme les nombres), que nous utilisons tout le temps sans souvent nous en rendre compte et qui cependant de plus en plus nous gouvernent.

Il s’agit surtout de pouvoir parler, dans notre langue, en français, de l’informatique comme on peut parler de cuisine, de jardinage, de bagnoles, de football sans être cuisinier, jardinier, constructeur de voiture ou joueur professionnel.

Maurice Nivat

Une version plus longue est disponible.

3615 EULA

Vous avez peut-être déjà bloqué devant des parfois « infâmes » EULA, en anglais pour « End User License Agreement », ou CGU en français pour Conditions générale d’utilisation (voir Dangerous Terms: A User’s Guide to EULAs). Ces conditions sous lesquelles vous avez accès à un produit ou à un service sur le Web sont souvent  longues, rébarbatives, incompréhensives pour un profane. D’ailleurs, on ne les lit pas, on clique, et on se livre à la merci de leur contenu. C’est le syndrome du « TL;DR », pour « Too long; didn’t read » : trop long, pas lu. Binaire a demandé à Nicolas Rougier de nous parler du sujet. Serge Abiteboul.

© https://xkcd.com/501

Quelques histoires vraies

En 2005, PC Pitstop offrait 1000 dollars à qui lirait ses conditions générales d’utilisation. Et bien entendu, l’offre était écrite dans les dites conditions générales d’utilisation. Ils durent attendre 4 mois avant que quelqu’un ne réclame les 1000$ (voir It Pays To Read License Agreements).

Pour le 1er avril 2010, la chaîne de magasin gamestation qui était spécialisée dans les jeux vidéos d’occasion, ajouta le petit paragraphe suivant à ses conditions d’utilisation:

« By placing an order via this Web site on the first day of the fourth month of the year 2010 Anno Domini, you agree to grant Us a non transferable option to claim, for now and for ever more, your immortal soul. Should We wish to exercise this option, you agree to surrender your immortal soul, and any claim you may have on it, within 5 (five) working days of receiving written notification from gamesation.co.uk or one of its duly authorised minions… We reserve the right to serve such notice in 6 (six) foot high letters of fire, however we can accept no liability for any loss or damage caused by such an act. If you a) do not believe you have an immortal soul, b) have already given it to another party, or c) do not wish to grant Us such a license, please click the link below to nullify this sub-clause and proceed with your transaction. »

En résumé, gamestation demandait à chaque utilisateur de leur céder leur âme immortelle. Ce qu’ont fait joyeusement 88% de ses utilisateurs.

Dans un autre registre, vous seriez surpris d’apprendre que les conditions d’utilisation du service iTunes vous empêchent explicitement d’utiliser iTunes pour fabriquer des armes nucléaires :

« Vous acceptez également de ne pas utiliser ces produits à des fins prohibées par le droit des États-Unis, ceci  y compris et sans toutefois s’y limiter, le développement, la conception, la fabrication ou la production d’armes nucléaires, de missiles ou d’armes chimiques ou biologiques. » (iTunes Store – Conditions générales du service).

On n’est jamais trop prudent ! Parce qu’il s’agit bien ici d’essayer de se protéger par tous les moyens. Les avocats ont la gâchette facile aux États-Unis (où la plupart de ces services voient le jour).

Et la réalité qu’elles cachent

3615Mais en dehors de ces exemples amusants, se cache une réalité bien plus préoccupante notamment concernant les données personnelles car les droits d’utilisation sont savamment cachés dans ces conditions générales parfaitement indigestes . Heureusement, on voit apparaitre des traducteurs, (voir par exemple Terms of Services, Didn’t read) et même des bandes dessinées. Ainsi, vous seriez surpris d’apprendre les droits que s’arrogent Google, Facebook ou Twitter sur tous les contenus que vous postez. Pour en savoir plus, je ne saurais trop vous conseiller « Les Nouveaux Loups du Web » qui sortira le 6 janvier 2016 et qui nous apprend, entre autre chose, que toutes ces licences sont généralement irrévocables, mondiales, perpétuelles, illimitées, transférables, modifiables, etc.

Oh, une dernière chose, une espèce de petite cerise sur la gâteau si vous comptiez effacer tout vos contenus suite à la lecture de ce court billet : sachez que ces service n’oublient rien. Mais vraiment rien. En 2010, Max Schrems, un étudiant en droit autrichien, demanda à Facebook l’ensemble des données relatives à son compte en vertu des lois européennes (Facebook Europe étant basée à Dublin). Quelle ne fût pas sa surprise de recevoir un document PDF de 1200 pages relatant toute son histoire ainsi que tous les contenus postés, y compris… ceux qu’il avait effacés (voir Max Schrems, le « gardien » des données personnelles qui fait trembler les géants du Web).

Nicolas Rougier, Inria Bordeaux

 

La programmation par contraintes expliquée à ma garagiste ou à mon fleuriste

Parmi les grandes familles d’approches et de langages informatiques, on entend parfois parler de « programmation par contraintes ». Un chercheur du domaine vous expliquerait peut-être que « c’est un paradigme de programmation déclarative permettant de traiter des problèmes fortement combinatoires ». Euh… Heureusement, Binaire a son joker : une enseignante-chercheure Charlotte Truchet, spécialiste du domaine, qui sait expliquer ses recherches. Thierry Viéville.

Photo de www.picturalium.com CC-BY

Venez, je vous emmène visiter la boutique de Denis, fleuriste dans un petit village, un beau matin de printemps. Denis vend des fleurs à l’unité, et des bouquets. Comme c’est le printemps, il a ce matin un beau stock de fleurs fraîches, disons : bégonias, marguerites, roses, hortensias et pissenlits. Chaque fleur a des caractéristiques différentes (certaines fleurs sont par exemple associées à des occasions particulières), un standing différent (qui influence le prix), une couleur, etc.

Le matin, à l’ouverture, Denis prépare des bouquets tout prêts pour les clients pressés. Attention, l’exercice est délicat, il ne peut pas faire n’importe quoi. D’abord, il ne peut pas utiliser plus de fleurs qu’il n’en a en stock. Ensuite, il a des goûts : Denis aime bien l’association bégonia-rose, mais il n’aime pas les bouquets mélangeant des pissenlits et des marguerites, il préfèrerait fermer boutique plutôt que vendre de telles horreurs. Et puis, il doit faire tourner son commerce, et pour cela, il doit vendre ses bouquets à un bon prix, qui dépend des marges qu’il réalise sur chaque fleur du bouquet. Bref, Denis se trouve devant un problème compliqué : comment composer ses bouquets, en tenant compte de ses goûts, ses stocks et ses coûts ?

Il pourrait faire ses bouquets au petit bonheur, un peu au hasard, mais il rencontre un problème. Un phénomène tragique l’attend au tournant : l’explosion combinatoire. Un bien grand mot pour dire que le nombre de bouquets possibles est gigantesque, le nombre de possibilités à considérer dépasse l’entendement du pauvre Denis. Imaginons que Denis ait en stock 10 bégonias, 20 marguerites, 15 roses, 5 hortensias et 30 pissenlits. Il peut mettre dans son bouquet : 1 bégonias et rien d’autre, 2 bégonias et rien d’autre, … et ainsi de suite jusqu’à 10 bégonias et rien d’autre. Puis il attaque la série de bouquets avec seulement des marguerites (20 possibilités), seulement des roses (15 possibilités), etc. Ensuite, il commence à associer des fleurs : 1 bégonia, 1 rose et rien d’autre, 1 bégonia et 2 roses, etc : encore un sacré paquet de possibilités, 62496 exactement. Et on est encore loin du compte ! Bref, le nombre de possibilités est vraiment très grand, même pour un seul bouquet (11*21*16*6*31-1 soit environ 680 000). Mais surtout, ce nombre augmente de façon catastrophique dès que l’on augmente le nombre de bouquets : pour deux bouquets, on a 680 000 au carré possibilités, soit environ 470 milliards, pour trois bouquets, 680 000 au cube que je n’ai même pas envie de calculer, etc. C’est la catastrophe (et le « fortement combinatoire » de la phrase du chercheur). Pauvre fleuriste en ce triste matin de printemps !

© www.theplantgame.com Fleurs et Informatique : quand les plantes s’étudient avec les sciences du numérique

Vous me direz, taratata, mon fleuriste fait des bouquets tous les jours, et il n’en fait pas un plat. C’est vrai : en fait, Denis n’a pas besoin d’essayer toutes les possibilités, et c’est ce qui le sauve. Il sait que certaines possibilités sont impossibles pour des raisons diverses. Ce que faisant, il raisonne sur les contraintes de son problème : stocks, goûts et coûts. Par exemple, Denis veut gagner de l’argent, et on peut supposer que les bouquets plus variés se vendent plus chers : Denis évite donc les bouquets monofleurs, ce qui élimine déjà 10 + 20 + 15 + 5 + 30 possibilités. C’est une petite simplification, mais elle est gratuite à opérer, donc elle fait gagner du temps. De même, il n’aime pas la combinaison pissenlits-marguerites. Si on interdit la présence de ces deux fleurs simultanément, on économise 630 000 possibilités ! Avant de crier victoire, remarquons qu’il en reste encore plus de 50 000. Mais tout de même, c’est un pas de géant. Denis n’a donc pas besoin d’essayer toutes les possibilités : il fait des bouquets guidé par son intuition. Ce type de raisonnement, qui permet d’éliminer des possibilités parce qu’elles sont à l’évidence inutiles dans le problème, est au cœur de la programmation par contraintes.

Représentation graphique d’un problème de programmation par contraintes, © users.cecs.anu.edu.au/~jks/G12

La programmation par contraintes consiste à faire des beaux bouquets dans un monde assez similaire à la boutique de Denis, mais un peu plus formel. On travaille sur des problèmes avec des inconnues, les variables : ici, le nombre de chaque fleur par bouquet. On ne sait pas combien valent ces variables, justement, c’est ce que l’on cherche. Cela dit, ces variables doivent rester dans un ensemble donné : de même qu’on sait qu’il y a 15 roses en stock (donc le nombre de roses dans chaque bouquet est entre 0 et 15), chaque variable vient avec un domaine de valeurs possibles. Si on note R1 le nombre de roses dans le premier bouquet, on appelle domaine de R1 l’ensemble des entiers entre 0 et 15.

Enfin, on écrit des contraintes sur les variables. Supposons pour simplifier que Denis se contente de deux bouquets, car son échoppe est modeste. D’abord, il faut s’assurer qu’il ne dépense pas plus que ses 15 roses en stock : cela se formalise avec une contrainte R1+R2<= 15, et de même pour les bégonias, pissenlits, marguerites et hortensias. Ensuite, Denis peut ajouter des contraintes en fonction de ses envies. Comme il déteste l’association marguerites-pissenlits, il peut écrire : M1*P1=0, ce qui force au moins l’une des deux valeurs à être nulle. S’il aime bien les roses et les bégonias, il peut imposer d’en avoir un minimum dans son gros bouquet : par exemple, R1>5 et B1>5. Et ainsi de suite. Les coûts aussi peuvent être écrits avec une formule similaire, en soustrayant au prix du bouquet la somme des prix de chaque fleur.

Ce que l’on appelle contrainte, c’est une formule construire comme cela, à partir des variables du problème et avec des formules mathématiques. Il y a mille et une façons d’écrire ces formules, c’est une étape importante et difficile que l’on appelle « modélisation du problème ». On obtient un problème de satisfaction de contraintes (souvent abrégé en CSP, pour Constraint Satisfaction Problem en anglais) : le problème formalisé avec des variables, des domaines et des contraintes. Résoudre le problème, c’est faire un bouquet, ou encore trouver pour chaque variable une valeur de son domaine telle que les contraintes soient vraies.

© www.theplantgame.com

Au lieu de réfléchir, Denis pourrait utiliser un solveur de contraintes, c’est-à-dire un programme qui résout pour lui le CSP des bouquets, un programme qui sait résoudre de tels problèmes en général. Un solveur de contraintes commence par procéder à un raisonnement sur les contraintes pour éliminer des valeurs inutiles dans les domaines : par exemple, la contrainte R1>5 permet d’éliminer 0,1, 2, 3 et 4 du domaine de R1. En général, cela ne suffit pas à résoudre le problème, il reste encore de nombreuses possibilités. Alors, le solveur devient « bourrin » : il fait des essais. Il donne une valeur à une variable (il commence un bouquet avec 1 rose), il re-raisonne un petit coup et si ça ne suffit pas, il continue (il ajoute des bégonias), etc. Un solveur alterne ainsi des étape de raisonnement et des étapes de commencements de bouquets, ce que l’on appelle instanciation. S’il s’avère que le bouquet commencé est mauvais, et qu’on n’arrive pas à le compléter correctement (par exemple, si on a commencé avec 1 marguerite et 1 pissenlit), le solveur trouve un échec : il revient en arrière, enlève le nombre de fleurs qu’il faut (il enlève le pissenlit) et ré-essaie autrement (avec 0 pissenlits).

Bref, un solveur de contraintes commence des tonnes de bouquets et finit bien par un trouver un qui convienne. Si le problème a une solution, il la trouve. S’il n’en a pas, il le prouve, ce qui est toujours bon à savoir : Denis est trop exigeant, voilà tout. Il faut qu’il reconsidère ses contraintes.

Il reste encore des choses à noter dans l’échoppe de Denis.

D’abord, à aucun moment, Denis n’a réfléchi à une méthode de résolution pour son problème. Il s’est contenté de décrire ce qu’il voulait, et se moque bien de savoir comment le solveur travaille. C’est ce que l’on appelle de la programmation déclarative dans le jargon informatique. C’est assez rare en informatique (pas le jargon, la programmation déclarative). En programmation, en général, il faut construire un algorithme qui arrive à obtenir le résultat voulu. Ici, ce n’est pas la peine, et c’est très pratique pour Denis, qui n’y connaît rien en algorithmique.

Ensuite, quand j’ai dit que le fleuriste pouvait écrire des formules pour décrire les bouquets, je vous ai arnaqués ! En informatique, pour pouvoir écrire une formule, il faut savoir dans quel langage, sinon on écrit n’importe quoi. Ainsi Denis a le droit d’écrire R1>5 mais il n’aurait pas le droit d’écrire R1/(bleu vif)+(il existe une herbe verte)=beaucoup de tune. En fait, il existe des langages de contraintes que l’on sait traiter et Denis doit s’y tenir. La plupart des solveurs de contraintes autorisent des langages assez proches les uns des autres. On a le droit aux formules mathématiques basiques, construites avec des nombres, des opérations comme +, -, *, etc, et des prédicats comme =, <, /=. Et, on a aussi le droit d’utiliser des contraintes « prêtes à l’emploi », faites sur mesure par les chercheurs pour faciliter la vie de Denis. On les appelle contraintes globales. Elles sont recensées dans un grand catalogue qui en compte plus de 350 (http://sofdem.github.io/gccat/gccat/sec5.html). N’hésitez pas à aller les visiter, c’est un peu austère mais vous aurez sous vos yeux l’état de l’art de la recherche sur les contraintes globales !

choco-solver.org est un solveur de contrainte libre et dont le code est ouvert

La plus célèbre et la plus couramment utilisée des contraintes globales est certainement celle que l’on appelle alldifferent. Pour la comprendre, il faut imaginer qu’un jour, Denis se réveille d’humeur fantasque. En ce beau matin de printemps, il se dit : j’en ai assez de faire des bouquets ennuyeux avec 6 bégonias et 6 roses. Ça tombe mal dans le vase. Aujourd’hui, j’ai envie de bouquets bizarres, étonnants, asymétriques. Aujourd’hui, je veux des compositions avec un nombre différent de chaque fleur ! Le malheureux perd un peu la boule, si vous voulez mon avis, mais on n’y peut rien.

Il se met donc à composer des bouquets où il est interdit d’avoir autant de roses que de bégonias, autant de bégonias que de marguerites, etc. Essayons d’y réfléchir. Ce matin là, il lui reste 3 camélias, 2 bégonias, 25 tulipes, 7 poinsettias et 2 hortensias. Il veut faire un gros bouquet avec un peu de chaque fleur (C>0, B>0, etc). Comme il n’a que 2 bégonias et 2 hortensias, il peut déduire qu’il doit forcément mettre dans son bouquet exactement 3 camélias, et au moins 3 tulipes et poinsettias. En effet, s’il met 1 bégonia, il est obligé de mettre 2 hortensias (donc plus de trois des autres fleurs). De même, s’il met 1 hortensia, il doit mettre 2 bégonias et rebelote (plus de trois des autres fleurs). Dans tous les cas, il doit mettre au moins 3 camélias et au plus 3 camélias (car il n’en a pas plus en stock), donc exactement 3 camélias, et plus de 4 tulipes et poinsettias.

Voilà qui aide grandement ! On élimine d’un seul coup beaucoup de possibilités, on trouve même directement le bon nombre de camélias ! Même si l’exemple choisi ici est simple, il faut imaginer qu’on pourrait appliquer le même raisonnement pour des nombres beaucoup plus grands. Il faut bien voir que pour trouver cette simplification, Denis a dû cette fois raisonner sur toutes les fleurs en même temps. C’est le principe d’une contrainte globale : elle exprime une propriété globale sur plusieurs variables en même temps, soit pour raisonner plus efficacement, soit pour exprimer des propriétés plus complexes que le langage basique sus-cité. Une contrainte globale embarque sa propre méthode de déduction, qui est utilisée directement par le solveur.

Les questions explorées par les chercheurs en contraintes sont évidemment nombreuses et dépassent parfois un peu le cadre de la boutique du fleuriste, mais elles tournent tout de même beaucoup autour de l’organisation du procédé décrit plus haut  : comment bien modéliser un problème ? Comment rendre la résolution efficace ? Comment bien programmer le solveur ? Peut-on le rendre interactif ? Peut-on écrire des contraintes un peu subtiles, pour exprimer par exemple des préférences ? Et cætera.

Quant aux applications, elles sont assez variées. Une contrainte comme alldifferent écrit par Denis porte sur des fleurs, mais elle aurait aussi bien pu porter sur des avions (à ranger dans un aéroport), des fréquences (à placer dans une bande radio), des régions limitrophes (à colorier sur une carte), des notes de musique (à organiser harmonieusement sur une partition), des cartons de formes diverses (à ranger dans un container), des enseignements (à placer dans des emplois du temps), etc. On trouve donc la programmation par contraintes, avec ses cousins comme la programmation linéaire en nombres entiers, les métaheuristiques, l’optimisation linéaire ou non-linéaire, etc, dans beaucoup d’applications où le nombre de variables est très grand comme la logistique ou l’ordonnancement de tâches. Mais sa nature déclarative (qui permet de fabriquer des langages à destination de non-informaticiens) la tourne aussi vers des applications moins informatico-centrées, comme en médecine, musique, visualisation, graphisme, biologie, urbanisme, etc.

Charlotte Truchet, Université de Nantes
@chtruchet

Data Publica : l’entreprise qui connait vos clients mieux que vous

Ne pas connaître uniquement ses clients, mais aussi ses futurs clients, est le rêve de toute entreprise qu’elle soit petite ou grande. Pour y arriver, deux solutions s’offrent aux entrepreneurs : acheter une boule de cristal ou avoir recours aux services de Data Publica. Des tas de connaissances sur les entreprises sont à portée de clics, encore faut-il savoir les trouver, les comprendre et les consolider. C’est ce que propose Data Publica, fondée par François Bancilhon, entrepreneur récidiviste, et Christian Frisch. La startup récupère du web et de bases de données publiques un tas d’informations sur les entreprises. Avec comme impératif : que tout soit réalisé automatiquement.

logo_datapublica_370Prenons la mesure du travail à réaliser. Parmi les 9 millions de numéros INSEE d’entreprises, seulement une partie représente des entreprises avec une vraie activité, et une partie encore plus restreinte a au moins un employé. Seules 590 000 d’entre elles ont un site Web. 590 000, ça fait quand même beaucoup d’entreprises à connaître. Ce sont les cibles de Data Publica qui annonce en couvrir déjà près de 95%. Data Publica a eu un Prix Mondial de l’Innovation, de la BPI, représentant un financement de 1 million d’euros.

Rentrons un peu dans la techno. Il faut trouver (automatiquement) les sites Web des entreprises en s’appuyant sur un crawler maison et des moteurs de recherche. Puis catégoriser les entreprises correspondantes en utilisant des techniques d’apprentissage (machine learning). On va regrouper les sites (automatiquement encore) en utilisant les similarités de vocabulaire. Un livreur de pizza et un fabricant de machines outils ne vont pas utiliser les mêmes termes. Donc ça marche plutôt bien.

Maintenant, essayons de comprendre un scénario pour une entreprise cliente – on est ici dans le B2B ou Business to Business, autrement dit les clients de Data Publica sont des entreprises qui vendent aux entreprises, et non à des particuliers. L’entreprise fourni sa base client (donc une liste d’entreprises), puis le logiciel de Data Publica analyse cette liste, la segmente à partir des données récupérées sur les sites Web des clients. Ensuite, pour chacun des segments détectés, le logiciel propose de potentiels futurs clients. Mieux connaître sa base client, trouver de nouveaux clients. C’est ce que François Bancilhon appelle « le marketing prédictif ».  Un rêve pour le marketing et la vente ?

Mais les entreprises ne sont pas présentes sur la toile uniquement par leurs sites Web. Elles sont de plus en plus sur les réseaux sociaux, Facebook, Twitter, LinkedIn. En plus d’informations statiques, les messages postés sur ces systèmes donnent des informations « en temps réel ». Ces messages, là encore il faut les analyser. Cela concerne une offre d’emploi ? Une annonce financière ? Une promo ? Data Publica réalise donc pour ses clients le monitoring de ces messages et leur catégorisation. Ces informations aident les commerciaux en leur disant à quel moment appeler un prospect et à quel sujet l’appeler.

Pour permettre l’accès à de petites entreprises et pour faciliter l’accès de tous, Data Publica vient d’introduire une offre Freemium (*) sous le nom de C-radar. Le service de base coûte 99 euros par mois. Pour l’instant, seules les entreprises françaises et belges sont répertoriées, mais Data Publica est en train de traiter les entreprises du Royaume Uni et compte s’attaquer bientôt aux sociétés américaines, plus difficiles à gérer car elles ne sont pas référencées comme en France avec un numéro unique.

Quand on considère toutes les informations que l’on trouve sur le Web, on imagine bien que beaucoup de possibilités s’ouvrent à Data Publica. Améliorer encore sa technologie pour découvrir plus d’information, comprendre encore mieux les informations trouvées. Se développer dans de nouveaux secteurs demandeurs d’une telle technologie. Des domaines où on a besoin de mieux comprendre ce qui se passe sur le Web ? Ça ne doit pas ��tre compliqué à trouver…

Serge Abiteboul, Marie Jung

(*) Le freemium (mot-valise des mots anglais free : gratuit, et premium : prime) est une stratégie commerciale associant une offre gratuite, en libre accès, et une offre « Premium », plus haut de gamme, en accès payant. Ce modèle s’applique par sa nature aux produits et services à faibles coûts variables ou marginaux, permettant aux producteurs d’encourir un coût total limité et comparable à une offre publicitaire.

FBDans une vie antérieure, François Bancilhon a été professeur d’informatique à l’Université d’Orsay (la future Université Paris Saclay). Puis, il a arrêté une recherche académique particulièrement brillante pour devenir entrepreneur au début des années 80. Dommage pour la recherche française, et tant mieux pour l’industrie. Sa plus belle réussite jusqu’à présent, O2 Technology, issue d’Inria, a été particulièrement novatrice dans le champ des bases de données objet.

Mise-à-jour : Paris, le 17 novembre 2015 – ​ François Bancilhon, co-fondateur de Data Publica, s’est vu décerner le prix European Data Innovator 2015 lors de la conférence European Data Forum (EDF). Ce prix récompense son esprit d’entreprise, sa contribution à la gestion de données, et son outil de marketing prédictif B2B C-Radar.

 

Concours Castor informatique 2015

Concours castorLa semaine prochaine, du 14 au 21 novembre, se déroule le concours Castor informatique ! L’édition 2014 avait touché plus de 220 000 élèves ! L’édition Française est organisée par l’association France-ioi, Inria et l’ENS Cachan, grâce à la contribution de nombreuses personnes. Ce concours international est organisé dans 36 pays. Plus de 920 000 élèves ont participé à l’épreuve 2014 dans le monde.

Les points à retenir, le concours est :

  • entièrement gratuit ;
  • organisé sur ordinateur ou sur tablette sous la supervision d’un enseignant ;
  • il dure 45 minutes ;
  • entre le 14 et 21 novembre 2015, à un horaire choisi par l’enseignant ;
  • avec une participation individuelle ou par binôme ;
  • aucune connaissance préalable en informatique n’est requise.

Nouveautés 2015 :

  • Ouverture aux écoles primaires : le concours est désormais ouvert à tous les élèves du CM1 à la terminale !
  • Niveau adaptable : chaque défi est interactif et se décline en plusieurs niveaux de difficultés pour accommoder les élèves de 9 à 18 ans.

Il est encore temps de s’inscrire pour les enseignants (vous pouvez le faire jusqu’au dernier jour, même si nous vous conseillons d’anticiper).

En attendant, ou si vous n’êtes plus à l’école, vous pouvez vous amuser à tester les défis des années précédentes depuis 2010, et en particulier les défis interactifs de 2014 !

Sylvie Boldo, Arthur Charguéraud, Mathias Hiron et Françoise Tort

poster_castor_2015_primaire

Connecte-moi un objet !

Les objets connectés transforment chaque jour un peu plus notre monde. Ils nous offrent des possibilités qui n’existaient encore récemment que dans des livres de science fiction. Tout cela ne va pas sans risques que la technique doit nous aider à surmonter, que la société doit apprendre à réguler. Binaire a demandé à Philippe Pucheral, un des meilleurs spécialistes du domaine, de nous en parler. Serge Abiteboul.

Philippe Pucheral
Philippe Pucheral

Nous voici entrés de plain-pied dans l’ère de l’homme connecté, assisté, augmenté. Écartée la crainte du trou de mémoire face à un visage déjà rencontré, nos lunettes connectées nous délivrent instantanément l’identité et le CV de notre interlocuteur. Plus besoin de lire une carte ni même d’apprendre à conduire, notre véhicule connecté connait la route, évite les embouteillages et conduit avec une vigilance infaillible. Plus besoin d’éteindre la lumière ou de régler le chauffage, notre centrale domotique sait quand activer ou désactiver chacun des appareils électriques de la maison pour une gestion optimale de l’énergie, au niveau du foyer comme du quartier. Enfin, envolée la crainte de l’infarctus en grimpant un col de montagne, notre bracelet connecté veille sur notre rythme cardiaque.

Nous ne sommes pas dans une nouvelle d’Isaac Asimov ou d’Aldous Huxley mais bien en 2015. Certains considéreront que le monde perd en poésie ce qu’il gagne en efficacité et en prévisibilité. Mais laissons ce débat de côté. De toute évidence, un mouvement inexorable est enclenché. Le concept d’Internet des Objets est né en 1999 au centre Auto-ID du MIT avec l’idée d’associer à chaque objet du monde réel une puce RFID (*) permettant de l’identifier, de l’inventorier, de capturer ses déplacements. Et déjà, selon une étude de l’institut IDATE, 42 milliards d’objets sont connectés aujourd’hui et plus de 80 milliards le seront en 2020. Les objets connectés ont également gagné en puissance et en fonctionnalité. De puces RFID passives, ils sont devenus objets autonomes capables de mesurer leur environnement via des capteurs et d’interagir avec lui via des actuateurs (**). A chacun désormais de placer le curseur entre fonctionnalités utiles rendues par ces objets et l’asservissement qui en résulte. Pour éclairer ce choix, plusieurs dimensions devraient être considérées :

Source : IDATE DigiWorld in « Internet of things », Octobre 2015
Source : IDATE DigiWorld in « Internet of things », Octobre 2015

Sûreté de fonctionnement : par sa capacité à prendre des décisions et à agir physiquement à notre place, l’objet connecté devient une prolongation de notre propre corps et un supplétif de notre conscience. Dès lors que l’objet intervient dans une tâche critique, par exemple freiner un véhicule, la confiance dans l’objet doit être absolue. Il est donc impératif de prouver formellement que le programme embarqué par l’objet est « zéro défaut ». La preuve de programme est une tâche complexe à laquelle de nombreuses équipes de recherche françaises et étrangères contribuent. Le lecteur pourra consulter avec intérêt le blog Binaire du 24 septembre 2015 traitant de ce sujet. Le matériel (hardware) qui compose l’objet doit également être zéro défaut et potentiellement redondant pour prévenir tout type de défaillance. A part pour des applications hautement sensibles telles que le contrôle de centrales nucléaires ou la commande d’avions de ligne, nous sommes loin aujourd’hui de ce niveau d’exigence.

Sécurité : le constat de dépendance vis-à-vis de l’objet est le même que pour la sûreté de fonctionnement mais la menace d’un dysfonctionnement vient ici d’une attaque malveillante. La psychose d’actions terroristes n’est jamais très éloignée. Deux pirates informatiques installés à Pittsburgh ont ainsi prouvé qu’ils pouvaient prendre le contrôle d’une voiture conduite par un journaliste volontaire circulant à Saint Louis. De même, en février 2015, BMW a dû diffuser un patch de protection comblant une faille de sécurité sur l’ordinateur de bord de plus de 2 millions de ses véhicules. L’omniprésence des objets connectés peut ainsi ouvrir la porte à des attaques de grande ampleur et ces anecdotes montrent que les industriels n’ont pas toujours pris la mesure du risque encouru. Alors que la voiture autonome (sans conducteur) fonctionne déjà en circuit fermé et est annoncée commercialement pour 2025, la sécurité reste un des grands défis à relever. Un problème similaire se pose avec les objets connectés à usage médical : à quand le crime parfait réalisé en piratant à distance une pompe à insuline ?

Confidentialité : les objets connectés captent une quantité considérable de données personnelles, données de santé, déplacements, consommation de ressources. A titre d’exemple, avec un compteur électrique intelligent captant la consommation avec une granularité de 1Hz, la plupart des équipements électriques domestiques ont une signature unique. Il devient alors possible de tracer l’intégralité de l’activité du foyer au cours d’une journée. Des chercheurs allemands ont montré qu’il était même possible d’identifier la chaîne de télévision regardée à un instant donné, en analysant, dans la trame sortante d’un compteur électrique intelligent, le spectre de consommation de l’écran de TV. Les exemples d’atteinte à la vie privée sont légion, du fait d’usages abusifs des données collectées ou d’attaques sur les serveurs. Face à cela, la communauté scientifique se mobilise pour concevoir des objets connectés moins intrusifs. Mais il est souvent difficile de concilier préservation du service et préservation de la vie privée. Comment par exemple récupérer l’adresse du restaurant Japonais le plus proche sans dévoiler notre localisation à un serveur ? En fonction des usages, différentes techniques existent pour limiter les risques de fuite d’information, comme par exemple exécuter les calculs utiles directement dans l’objet connecté plutôt que d’externaliser l’information vers un serveur, regrouper les données captées dans un serveur personnel sous le   contrôle de chaque individu (Cloud Personnel), faire des calculs sécurisés distribués (ex: Secure Multi-party Computation), anonymiser ou ajouter du bruit dans les données émises (ex: differential privacy) ou encore passer par des relais de communication (ex: TOR). La capacité de croiser de multiples sources de données émanant de différents objets est un facteur complémentaire de complexité dans la recherche de solutions efficaces. Nous ne sommes donc qu’au début d’un chemin escarpé.

Source: National Institute of Standards and Technology
Source: National Institute of Standards and Technology

Durabilité environnementale : mais au fait, que deviennent les flux continus d’information captés par ces milliards d’objets intelligents ? A un mois de la conférence COP 21, la question mérite d’être posée. A l’instar d’Amazon qui a annoncé le lancement de son nouveau service d’hébergement de données issues de l’internet des objets, AWS IoT, Microsoft annonce la sortie d’Azure IoT Suite offrant un service similaire. Ainsi, la bataille pour l’analyse de ces données massives (big data) fait rage entre les géants de l’internet. Mais de quels volumes parle-t-on concrètement ? Selon une étude IDC parue en avril 2014, le volume de données numériques produit au niveau mondial devrait être multiplié par 10 entre 2013 (4,4 Zettaoctets) et 2020 (44 Zettaoctets). Soit 44 000 milliards de gigaoctets, ou, pour les amateurs d’analogies, une pile de DVD dépassant la moitié de la distance Terre-Mars. Les objets connectés sont à l’origine de plus de 20% de ce total. Faut-il réellement stocker toutes ces données sur des serveurs après les avoir acheminées via des réseaux ? Au même titre que dans le cerveau humain, mieux vaudrait être capable d’oublier le superflu pour rester efficace sur l’essentiel. Reste à être capable d’identifier le superflu.

Le Petit Prince d'Antoine de Saint-Exupéry, annotation Serge A.
Le Petit Prince d’Antoine de Saint-Exupéry, annotation Serge A.

A l’heure où le Conseil National de l’Ordre des Médecins préconise un remboursement des objets connectés de « mesure de soi » (quantified-self) par la sécurité sociale, où des compagnies d’assurances proposent des services de « Pay as you drive » en pistant votre conduite, où ERDF déploie des compteurs électriques intelligents Linky et où les constructeurs automobiles investissent massivement dans la voiture connectée et bientôt autonome, l’Internet des objets a de beaux jours devant lui. Mais cette révolution n’est pas que technologique. Elle bouscule aussi en profondeur nos modes de vie, nous fait nous interroger sur notre autonomie et notre libre arbitre. Faire remarcher une personne handicapée grâce à une puce retransmettant les commandes du cerveau touche au sublime. Mais a-t-on besoin d’un réfrigérateur connecté ? L’essentiel est que chacun puisse répondre. Pour cela, il serait inquiétant de laisser les industriels du secteur seuls modeler ce que doit devenir notre mode de vie connecté. Il y a donc urgence à développer des réflexions pluridisciplinaires sur ce sujet, avec notamment des informaticiens, des sociologues, des économistes et des juristes.

Philippe Pucheral, Université de Versailles Saint Quentin & Inria

(*) La radio-identification, le plus souvent désignée par le sigle RFID (de l’anglais radio frequency identification), est une méthode pour mémoriser et récupérer des données à distance en utilisant des marqueurs appelés « radio-étiquettes » (« RFID tag » ou « RFID transponder » en anglais). (Wikipedia)

(**) Dans une machine, un actionneur est un organe qui transforme l’énergie qui lui est fournie en un phénomène physique utilisable. Le phénomène physique fournit un travail qui modifie le comportement ou l’état de la machine.

Pour aller plus loin

[1] Internet des objets

[2] Internet of things, the comic book

[3] L’Internet des Objets… Internet, mais en mieux, de Philippe Gautier et Laurent Gonzalez, préfacé par Gérald Santucci, postfacé par Daniel Kaplan (FING) et Michel Volle, Éditions AFNOR, 2011 (ISBN : 978-2-12-465316-4)

[4] Andy Greenberg (21 July 2015). « Hackers Remotely Kill a Jeep on the Highway—With Me in It ». Wired. Retrieved 21 July 2015.

La culture de la cybersécurité

Dans le cadre des « Entretiens autour de l’informatique », Serge Abiteboul et Claire Mathieu ont rencontré Stanislas de Maupeou, Directeur du secteur Conseil en sécurité chez Thalès. Stanislas de Maupeou parle à Binaire de failles de logiciels et de cybersécurité.

190c61a
Stanislas de Maupeou

Failles, attaques et exploits… et certification

B : À quoi sont dûs les problèmes de sécurité informatique ?
SdM : Le code utilisé est globalement de mauvaise qualité et, de ce fait, il existe des failles qui ouvrent la porte à des attaques. Le plus souvent, ce sont des failles involontaires, qui existent parce que le code a été écrit de façon hâtive. Il peut y avoir aussi des failles intentionnelles, quelqu’un mettant volontairement un piège dans le code.

Il y a des sociétés, notamment aux USA, dont le travail est de trouver les failles dans le logiciel. C’est toute une économie souterraine : trouver une faille et la vendre. Quand on trouve une faille, on y associe un « exploit » (*), un code d’attaque qui va exploiter la faille. On peut vendre un exploit à un éditeur de logiciels (pour qu’il comble la faille) ou à des criminels. Si une telle vente est interdite par la loi en France, cela se fait dans le monde anglo-saxon. Pour ma part, si je trouve une faille dans un logiciel, je préviens l’éditeur en disant : « on vous donne trois mois pour le corriger, et si ce n’est pas fait, on prévient le public ».

C’est pour pallier au risque de faille qu’on met en place des processus de certification de code. Mais développer un code sans faille, ou avec moins de failles, cela peut avoir un coût faramineux. On ne peut pas repenser tout un système d’exploitation, et même dans des systèmes très stratégiques, il est impensable de réécrire tout le code. Ça coûterait trop cher.

B : Comment certifiez-vous le code ?
SdM : Il y a différentes méthodes. J’ai des laboratoires de certification. Nous n’écrivons pas le code. Nous l’évaluons selon un schéma de certification, suivant une échelle de sûreté qui va de 1 à 7. En France, la certification est gérée par l’ANSSI (Agence Nationale de la Sécurité des Systèmes d’Information). Le commanditaire dit : « Je voudrais que vous certifiez cette puce », et l’ANSSI répond « Adressez vous à l’un des laboratoires suivants qui ont été agréés». Sur l’échelle, le 1 signifie « J’ai une confiance minimum », et le 7 signifie « j’ai une confiance absolue ». Le niveau « évaluation assurance niveau 7 » ne peut être obtenu que par des méthodes formelles, de preuve de sécurité. Par exemple, nous avons certifié au niveau 7 un élément de code Java pour Gemalto. Il y a peu de spécialistes des méthodes formelles dans le monde, un seul dans mon équipe. Dans le monde bancaire, on se contente des niveaux 2 et 3. On fait des tests en laboratoire, on sollicite le code, on regarde la consommation électrique pour voir si c’est normal. On fait ça avec du laser, de l’optique, il y a tout un tas d’équipements qui permettent de s’assurer que le code « ne fuit pas ». Pour la certification de hardware, le contrôle se faire à un niveau très bas. On a le plan des puces, le composant, et on sait le découper en couches pour retrouver le silicium et faire des comparaisons.

B : Le code lui-même est-il à votre disposition?
SdM : Parfois oui, si on vise à développer la confiance dans les applications. C’est par exemple le cas pour l’estampille « visa » sur la carte bancaire qui donne confiance au commerçant. Dans d’autres contextes, on n’a pas accès au code. Par exemple, on nous demande de faire des tests d’intrusion. Il s’agit de passer les barrières de sécurité. Le but est de prendre le contrôle d’un système, d’une machine, par exemple avec une requête SQL bien ficelée.

B : Cela aide si le logiciel est libre ?
SdM : Le fait qu’un logiciel soit libre n’est pas un argument de sécurité. Par exemple, dans la librairie SSL de Debian, il y avait eu une modification de quelque chose de totalement anodin en apparence, mais du coup le générateur de nombres aléatoires pour la librairie SSL n’avait plus rien d’aléatoire ; on n’a découvert cette erreur  que deux ans plus tard. Pendant deux ans tous les systèmes qui reposaient sur SSL avaient des clés faciles à prévoir. Ce n’est pas parce qu’un logiciel est libre qu’il est sûr ! Par contre, s’il est libre, qu’il est beaucoup utilisé, et qu’il a une faille, il y a de fortes chances que quelqu’un la trouve et que cela conduise à sa correction. Cela dit, pour la sécurité, un bon code, qu’il soit libre ou pas, c’est un code audité !

B : Est-ce que les méthodes formelles vont se développer ?
SdM : On a besoin aujourd’hui de méthodes formelles plus pour la fiabilité du composant que pour la sécurité. On fait de la gestion de risque, pas de la sécurité absolue qui n’existe pas. Vérifier les systèmes, c’est le Graal de la sécurité. On peut acheter un pare-feu au niveau 3, mais, transposer ça à tout un système, on n’y arrive pas. Notre palliatif, c’est une homologation de sécurité : on prend un système, on définit des objectifs de sécurité pour ce système (par exemple, que toute personne qui y accède doive être authentifiée), et on vérifie ces objectifs. On sait qu’il y aura toujours des trous, des risques résiduels, mais au moins, le système satisfait des règles conformes avec certains objectifs de sécurité. C’est une approche non déterministe, elle est floue, et on accepte qu’il y ait un risque résiduel.

Un problème c’est qu’on ne sait pas modéliser le risque. Je sais dire qu’un boulon casse avec probabilité 1%, cela a un sens, mais je ne sais pas dire quelle est la probabilité d’une attaque dans les 10 jours. Comme on ne peut pas modéliser la malveillance, on ne sait pas vraiment faire l’évaluation de la sécurité d’un système avec une approche rationnelle.

Les métiers de la cybersécurité

@Maev59
@Maev59

B : Quel est le profil des gens qui travaillent dans votre laboratoire ?
SdM : Ce sont des passionnés. Ils viennent plutôt d’écoles spécifiquement d’informatique que d’écoles d’ingénieur généralistes comme les Mines, ENSTA, ou Supélec, où les élèves sont moins passionnés par l’informatique.

B : Comment en êtes vous arrivé à vous intéresser à la cybersécurité ?
SdM : À l’origine j’étais militaire, et pas du tout en lien avec l’informatique. Étudiant, je n’avais pas accroché au Fortran ! Et puis, quand on fait une carrière militaire, après une quinzaine d’années, on suit une formation. Il était clair que le système militaire allait avoir de plus en plus d’informatique. J’ai suivi en 1996, un mastère de systèmes d’information à l’ENST avec stage chez Matra, et j’ai adoré. Même si à l’époque, on ne parlait absolument pas de sécurité, j’ai réorienté ma carrière vers le Service central de sécurité et services d’information, un petit service de 30 personnes, qui à l’origine ne servait guère qu’à garder le téléphone rouge du président. À l’époque, un industriel devait donner à l’état un double de sa clé de chiffrement. En 1999, il y a eu un discours de Lionel Jospin à Hourtin, dans lequel il a dit que ce n’était plus viable et qu’il fallait libéraliser la cryptographie, libérer ce marché. À l’époque il fallait déclarer toute clé de plus de 40 bits. Il a demandé qu’on élève le seuil à 128 bits, et c’est grâce à cela que les sites de la SNCF, la FNAC, etc., ont pu se développer. Ce service est devenu une agence nationale, passant de 30 à plus de 400 personnes, l’ANSSI.

Ensuite je suis passé chez Thalès où j’ai eu à manager des informaticiens. Ce n’est pas une population facile à manager. Et puis le domaine évolue très vite ; nous sommes en pleine période de créativité. On a encore plus besoin de management.

B : Qu’est ce qu’un informaticien devrait savoir pour être recruté dans votre domaine ?
SdM : J’aimerais qu’il connaisse les fondamentaux de la sécurité. J’aimerais qu’il y ait un cours « sécurité » qui fasse partie de la formation et qui ne soit pas optionnel. L’ennemi essaie de gagner des droits, des privilèges. Les fondamentaux de la sécurité, c’est, par exemple, la défense en profondeur, le principe du moindre privilège systématique sur des variables, la conception de codes segmentés, le principe du cloisonnement, les limites sur le temps d’exécution. Le moindre privilège est une notion essentielle. Le but est de tenir compte de la capacité du code à résister à une attaque. Déjà, avoir du code plus propre, de meilleure qualité au sens de la sécurité, avec plus de traçabilité, une meilleure documentation, cela aide aussi. Mais tout cela a un coût. Un code sécurisé, avec des spécifications, de l’évaluation, de la relecture de code, cela coûte 30 à 40% plus cher.

Etat et cybersécurité

@Mev59
@Maev59

B : Est-ce que l’ANSSI a un rôle important dans la sécurité informatique ?
SdM : L’ANSSI a un rôle extrêmement important, pour s’assurer que les produits qui seront utilisés par l’état ou par des opérateurs d’importance vitale (définis par décret, par exemple les télécommunications, les banques, EDF, la SNCF, Areva…) satisfont à des règles. L’ANSSI peut imposer des normes par la loi, garantissant un niveau minimum de qualité ou sécurité sur des éléments critiques, par le biais de décisions comme « Je m’autorise à aller chez vous faire un audit si je le décide. »

B : De quoi a-t-on peur ?
SdM : La première grande menace que l’État craint est liée à l’espionnage. En effet, l’immense majorité des codes et produits viennent de l’extérieur de la France. Un exemple de régulation : les routeurs Huawei sont interdits dans l’administration française. La deuxième menace, c’est le dysfonctionnement ou la destruction de système. L’État craint les attaques terroristes sur des systèmes industriels. Ces systèmes utilisent aujourd’hui des logiciels standard, et de ce fait, sont exposés à des attaques qui n’existaient pas auparavant. Une des grandes craintes de l’état, c’est la prise de contrôle d’un barrage, d’un avion, etc. C’est déjà arrivé, par exemple, il y a eu le cas du « ver informatique » Stuxnet en Iran, qui a été diffusé dans les centrales nucléaires iraniennes, qui est arrivé jusqu’aux centrifugeuses, qui y a provoqué des dysfonctionnements de la vitesse de la centrifugeuse, cependant que le contrôleur derrière son pupitre ne voyait rien. Avec Stuxnet, les US sont arrivés à casser plusieurs centrifugeuses, d’où des retards du programme nucléaire iranien. Un déni de service sur le système de déclaration de l’impôt fin mai, c’est très ennuyeux mais il n’y a pas de mort. Un déni de service sur le système de protection des trains, les conséquences peuvent être tout à fait dramatiques, d’un autre ordre de gravité.

Il y a aussi une troisième menace, sur la protection de la vie privée. Dans quelle mesure suis-je libre dans un monde qui sait tout de moi ? Dans les grands volumes de données, il y a des informations qui servent à influencer les gens et à leur faire prendre des décisions. C’est une préoccupation sociétale.

B : En quoi le fonctionnement de l’armée en temps de guerre a-t-il été modifié par l’informatique ?
SdM : L’armée aux États-Unis est beaucoup plus technophile que l’armée française, qui a mis un certain temps à entrer dans ce monde-là. Dans la fin des années 1990, les claviers sans fil étaient interdits, le wifi était interdit, le protocole Internet était interdit. Aujourd’hui, l’armée française en Afghanistan utilise énormément le wifi. Maintenant, il n’y a plus de système d’armes qui n’utilise pas d’informatique.

B : La sécurité est-elle une question franco-française ?
SdM : Il faut admettre que le monde de la sécurité est très connecté aux services de renseignement, ce qui rend les choses plus difficiles. Pour gérer les problèmes en avionique, on est dans un mode coopératif. Si un modèle pose un problème mécanique, on prévient tout le monde. En revanche, dans le monde de la sécurité informatique, si on trouve une faille, d’abord on commence par se protéger, puis on prévient l’état qui, peut-être, se servira de cette information. Ce sont deux logiques qui s’affrontent, entre la coopération et un monde plus régalien, contrôlé par l’État.

B : Avez vous un dernier mot à ajouter ?
SdM : Il faudrait développer en France une culture de la « sécurité ». Peu de systèmes échappent aujourd’hui à l’informatique. La sécurité devrait être quelque chose de complètement naturel, pas seulement pour les systèmes critiques. C’est comme si on disait, les bons freins, ce n’est que pour les voitures de sport. La sécurité doit être intégrée à tout.

(*) Exploit : prononcer exploït, anglicisme inspiré du verbe anglais “to exploit” qui signifie exploiter, lui-même inspiré du français du 15e siècle.

Ne ratez pas Le Prochain Train

CoupDeCoeurBinaireC’est une pièce de théâtre écrite et mise en scène par Orah de Mortcie, direction d’acteurs par Laetitia Grimaldi. Le Prochain Train parle très intelligemment des liens entre les personnes à l’ère du numérique. Où nous conduit cette nouvelle technologie ? Comment les réseaux sociaux, les blogs, les tweets, toutes ces applications vont-elles nous transformer ?  Ce beau texte attaque bille en tête ces sujets complexes avec de l’humour, accompagné d’une jolie musique pas num��rique du tout.

Vincent est un de ces « workaholics » que l’on croise de plus en plus, soumis à la dictature des mails. Karine est la spécialiste qu’il embauche pour gérer sa vie numérique. La pièce les plonge dans des rapports improbables. « J’ai grandi avec Internet et le numérique… j’ai du mal à utiliser Twitter, instatruc, et toutes ses applications qui arrivent chaque jour », avoue Elsa de Belilovsky qui joue le rôle de Karine.  Pourtant, pendant une heure et demi nous avons cru qu’elle était la Reine du Numérique. Quel talent !

Le Prochain Train passe à la Manufacture des Abesses, à Paris, jusqu’à la fin de novembre. Il reste des places, courrez-y !

Serge Abiteboul, Sophie Gamerman

vz-7c0cdde4-41be-4f7f-9f8a-8d28230eaf5f

Les musées informatique dans le monde

Il existe plusieurs musées consacrés à l’informatique ou au numérique à travers le monde. Pierre Paradinas, par ailleurs personnellement impliqué dans  le projet #MINF de musée de l’informatique et du numérique en France, propose un petit aperçu de ce qui se fait dans certains pays, à la fois sur le plan muséal et au niveau du modèle d’affaires de ces lieux. Serge Abiteboul

En Allemagne à Padenborn, la fondation Nixdorf fait vivre un musée informatique important. Ce dernier expose sur 6 000 m2 l’informatique et contextualise son impact dans la vie des entreprises avec des reconstitutions du « bureau » à différentes époques. Un accent important est donné aux ordinateurs de la marque allemande Zuse. Ce musée est très impliqué dans la vie locale du land et l’université de Padenborn. Son modèle d’affaires repose sur un fort soutien de la fondation Nixdorf.

On remarque en particulier durant cette visite un métier à tisser de Jacquard qui en fonctionne ce qui permet de voir mais aussi d’entendre fonctionner cet appareil.

Jacquart
Métier à tisser Jacquard, Photo P. Paradinas

Une ligne du temps des interfaces du poste de travail est proposée. Le visiteur fait glisser un écran qui affiche l’interface offerte par les systèmes d’exploitation à l’utilisateur depuis les premiers ordinateurs personnels avec l’ancêtre MSDOS à ceux d’aujourd’hui, on voit ainsi les évolutions de l’expérience utilisateur en déplaçant un écran sur les différentes années.

Interface-History
Interface à regarder sur une ligne de temps, Photo P. Paradinas

En Allemagne, il y a aussi des présentations de l’informatique au Musée des Sciences de Munich et un projet pour un musée de l’internet doit ouvrir ces portes en 2016 à Berlin.

En Angleterre, on trouve aussi plusieurs initiatives. La plus récente « Information Age » est la rénovation de la section communication du Science Museum de Londres dont une grande partie du financement a été apporté par l’opérateur téléphonique historique (BT), un concepteur de microprocesseur très utilisé dans les plateformes mobiles (ARM) et un moteur de recherche très utilisé dans le monde (Google). La Reine s’était déplacée pour l’inauguration de ce nouvel espace en 2014.

Par ailleurs, d’autres initiatives intéressantes sont présentes sur le site de Bletchley Park rendu célèbre depuis les commémorations liées à la vie d’Alan Turing ainsi que le film Imitation Game. Dans ce National Museum of Computing , initialisé par Tony Sale, la reconstruction du Colossus a été entreprise, c’est  le premier calculateur binaire électronique construit par Thomas Flowers pour « casser » le code des machines à chiffrer Lorenz utilisées pendant la seconde guerre mondiale.

Colossus_Rebuild
Photo Colossus, Photo P. Paradinas

Porté à bout de bras par les bénévoles en terme de fonctionnement et de financement, le National Museum of Computing est confronté à des difficultés similaires à celles des initiatives françaises décrites dans un précédent article. Le musée britannique est très ouvert et offre de nombreuses activités aux acteurs de l’écosystème local. Il y a aussi des ateliers avec des plateformes rasberry PI qui permettent d’accueillir le public dans un esprit fablab.

Aux États-Unis, une des plus grandes et plus récentes initiatives est le Computer History Museum à Mountain View au milieu de la Silicon Valley à 2 pas de Google et Microsoft. Les chiffres sont vertigineux, dans les anciens locaux de la société Silicon Graphics, 12 000 m2, 75 000 visiteurs en 2012 et un budget de près de 6 M$. Une très grande surface d’exposition articulée autour d’un parcours au travers d’une vingtaine de « salles » sur les différentes périodes et domaines. Le CHM accueille des événements connexes dans ses locaux annexes.

HCM
Le parcours dans le HCM… Photo P. Paradinas

L’exposition ouverte en 2011, porte le nom de «Révolution». Elle présente l’informatique à travers une approche chronologique. Elle est centrée sur l’histoire de l’Informatique aux États-Unis. Cependant, les européens sont cités et en particulier la France avec le Minitel, et le réseau Cyclade…

Pouzin-HCM
Louis Pouzin et le projet Cyclade au HCM, Photo P. Paradinas

Le modèle d’affaire est simple, et typique des musées américains. Les revenus proviennent des revenus des placements du capital de la fondation support du musée, de versements annuels et récurrents d’entreprises partenaires, et enfin de ressources propres.

Il existe bien d’autres initiatives dans plusieurs autres pays, comme le musée Bolo appuyée sur une école d’ingénieurs suisse réputée à Lausanne, l’EPFL. Enfin, la Belgique vient de lancer une fondation en phase avec des initiatives locales dont le but est de construire un musée. Cette liste d’initiatives n’est pas exhaustive. L’engouement pour le numérique donne naissance à de nombreuses actions.

Et la France dans tout ça ?

Pour poser la question de ce que nous pourrions et devrions faire en France pour réaliser un « Musée de l’informatique et du numérique« ,  il est important de connaitre les possibles réalisés par d’autres pays. Nous reviendrons sur ce sujet dans un prochain article.

Pierre Paradinas, Prof. titulaire de la chaire Systèmes Embarqués au Cnam

Une partie des visites dans ces musées ont été réalisées dans le cadre d’une mission supportée par le Cnam et le Musée des arts et métiers dans le cadre de la réflexion menée pour la construction d’un musée de l’informatique et du numérique en France et présentée dans le cadre d’un colloque sur ce sujet.

Pour aller plus loin :

 

Happy Birthday Professor Boole

Binaire a failli être pris au dépourvu ! Mais le 2 novembre 2015 ne s’achèvera pas sans que nous célébrions l’anniversaire d’un scientifique sans lesquels l’informatique n’aurait pas pu exister. Ca, pour l’Histoire. Et pour l’histoire, quelqu’un dont le nom est devenu un adjectif connu de millions d’étudiants et d’étudiantes.

Toute étudiante d’informatique doit un jour travailler son algèbre de Boole. Celle-ci est utilisée quand elle écrit un algorithme et qu’elle doit combiner des conditions pour sortir d’une boucle ou gérer une conditionnelle. La même algèbre permet d’organiser des requêtes complexes en bases de données. Et surtout, elle permet de comprendre l’architecture des ordinateurs : si les 0 et les 1 pour tout décrire on le doit plutôt à Leibnitz, le fait que ces mêmes 0 et les 1 peuvent servir à tout calculer, ça c’est à George Boole qu’on le doit.

George Boole, ca. 1860, wikimedia commons
George Boole, ca. 1860, wikimedia commons

Informatiquement, le calcul Booléen se substitue à tous les autres calculs : il suffit (!) alors d’imaginer une façon de réaliser physiquement les portes de base qui combinent un bit (valant 1 ou 0, vrai ou faux) et un second bit pour redonner un 1 ou un 0…

Quelques portes logiques. wikipedia commons
Quelques portes logiques. wikipedia commons

George Boole est né le 2 novembre 1815. 200 ans plus tard ses idées sont présentes dans tous les objets numériques que nous manipulons.

Il a son cratère sur la lune et est un possible modèle pour le Professeur Moriarty. Et il est devenu un adjectif qualificatif, ce qui est tout de même rare !

Happy Birthday, Goeorge Boole.

Pour en savoir plus :