Le Bitcoin, les aspirateurs Roomba, le like ou un crash aérien: le code a tout changé. | Joshua Aragon via Unsplash
Le Bitcoin, les aspirateurs Roomba, le like ou un crash aérien: le code a tout changé. | Joshua Aragon via Unsplash

Ces lignes de code qui ont tout changé (2001-aujourd'hui)

Apollo 11, le JPEG, le premier pop-up et 33 autres morceaux de code qui ont transformé notre monde.

Ceci est le quatrième et dernier épisode de notre série «Le code, c'est la vie». Retrouvez tous les épisodes ici.

2002 – Le système de navigation des robots aspirateurs Roomba

A défini une nouvelle manière de se déplacer dans le monde réel pour les technologies (et les chats).

(define-behavior (bounce
:start-when (or (bump?)
bounce-trigger? )
:abort-when (bump-edge?)
:onetime? t
)
)

iRobot

On n'oublie jamais la première fois que l'on a vu un robot aspirateur. Pour moi, c'était il y a près de dix-sept ans, chez une amie. Je me revois assise sur son canapé en train de pouffer pendant qu'il évoluait dans la pièce.

C'était l'aube d'une révolution robotique qui semblait aussi importante que ridicule (il y a tout de même quelque chose d'amusant à voir qu'un robot ayant l'ADN d'un engin de déminage se retrouve à passer l'aspirateur dans des millions de foyers à travers le monde).

Le succès des robots aspirateurs Roomba est aussi dû au fait qu'ils ont toujours été difficiles à copier. Le Roomba a prouvé que si nous portons principalement notre attention sur le matériel lorsqu'apparaît une nouveauté (comme avec ces étranges chiens robots qui ouvrent des portes), le logiciel est sans doute encore plus important si l'on souhaite qu'un produit soit largement adopté.

La société iRobot (ainsi nommée en hommage à Asimov) n'a pas créé le premier robot aspirateur, mais cela n'a pas empêché le Roomba de devenir rapidement un must de niche, non pas parce qu'il aspirait particulièrement bien, mais en raison de la manière dont il se déplaçait dans une pièce.

Et comme on peut le constater sur un millier de vidéos de chats, en cette époque moderne du tout-informatique, il existe peu de choses aussi viscéralement jubilatoires (et désarmantes) que de voir un Roomba se cogner contre le pied d'une table avant de poursuivre son chemin.

—Lowen Liu, Slate.com

Vers 2003 – L'ordonnancement à équité proportionnelle pour les réseaux de téléphones portables

La solution qui a rendu possible la 3G.

[~, b_user] = max(drc(i, :)/_avg_thruput(i, :));
avg_thruput(i+1, :) = (i/(i+1))*avg_thruput(i, :);
avg_thruput(i+1, b_user) = (i/(i+1))*avg_thruput(i, b_user)+drc(i, b_user)/(i+1);

«Transmitter directed, multiple receiver system using path diversity to equitably maximize throughput» | U.S. Patent No. 6449490, 10 septembre 2002

À tout moment, dans une zone donnée, il y a souvent beaucoup plus de téléphones portables qu'il n'y a d'antennes-relais. Si l'on ne faisait rien, toutes ces transmissions entreraient en interférences les unes avec les autres et empêcheraient la bonne réception des informations.

Les antennes-relais doivent donc régler un problème de priorité en s'assurant que tous les appels puissent être passés, en tenant compte du fait qu'une plus grande quantité de ressources est nécessaire dans les endroits bruyants si l'on souhaite que la qualité du service soit la même.

La solution? Un compromis entre les besoins des individus et la performance globale du réseau entier. L'ordonnancement à équité proportionnelle permet d'assurer à toutes les personnes utilisatrices le même niveau de services tout en maximisant le débit total du réseau.

Ce résultat est obtenu en donnant une priorité moindre aux utilisateurs dont on prévoit qu'ils auront besoin de plus de ressources. Ou comment trois lignes de code font fonctionner tous les réseaux 3G et 4G à travers le monde.

—Lav Varshney, professeur adjoint à l'Université de l'Illinois à Urbana-Champaign

2008 – Le Bitcoin

Le code qui a réussi à donner confiance en un type de monnaie qui n'existerait pas sans lui.

double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 - pow(q / p, z - k));
}
return sum;
}

Satoshi Nakomoto

Que vous fassiez partie des évangélistes du Bitcoin, des sceptiques ou que vous ne soyez pas encore totalement certain·e d'avoir compris de quoi il s'agit, vous savez sans doute au moins qu'il s'agit de quelque chose d'important.

Le Bitcoin en lui-même a accumulé des centaines de milliards de dollars en investissements directs, mais par-dessus tout, le principe technologique qu'il y a derrière, dit blockchain, semble ouvrir la voie à un nombre infini d'applications, de la sécurisation d'élections démocratiques à la fin des relations sexuelles non consenties.

Tout a commencé en 2008 avec la publication par le pseudonyme Satoshi Nakamoto d'un livre blanc annonçant le lancement de Bitcoin. Il comprenait ces lignes de code, qui calculent la probabilité infinitésimale qu'un assaillant puisse prendre le contrôle de la blockchain Bitcoin.

Les mathématiques convainquirent le monde qu'un système formé de personnes peu recommandables pouvait néanmoins être digne de confiance, ce qui ouvrit la voie à la création d'au moins 2.777 autres cryptomonnaies.

—Elena Botella, Slate.com

Octobre 2008 à 2009 – Le ver Conficker

Comment transformer les ordinateurs touchés en une armée de robots dociles tout en en épargnant d'autres.

; BOOL __cdecl HasUkrainianLocale()
push ebx
mov ebx, ds:GetKeyboardLayoutList
push ebp
push esi
xor ebp, ebp
push ebp
push ebp
call ebx
mov esi, eax
cmp esi, ebp
jz short loc_37680A

Les chercheurs en sécurité Tillmann Werner et Felix Leder ont écrit ce code et l'ont testé afin de comprendre et combattre le ver Conficker. | Tillmann Werner et Felix Leder

Il y a dix ans, environ 15 millions d'ordinateurs furent infectés par Conficker, virus exploitant une faiblesse du système d'exploitation Windows. Le virus était craint, mais aussi admiré pour sa sophistication: il avait enrôlé un à un chaque ordinateur de son armée robotique géante, qui restait dans l'attente d'ordres, et il empêchait les ordinateurs infectés d'ouvrir des programmes de sécurité ou de télécharger des patches pouvant permettre de s'en débarrasser.

La première version avait aussi une particularité intéressante et potentiellement révélatrice: elle s'autodétruisait si elle était installée dans un ordinateur utilisant un clavier ukrainien ou une adresse IP ukrainienne.

Des années plus tard, les autorités et les scientifiques qui analysèrent le virus arrivèrent à la conclusion que plusieurs des créateurs de Conficker étaient effectivement ukrainiens et qu'ils avaient conçu le virus de manière à éviter d'enfreindre les lois de leur propre pays.

Fort heureusement, les pirates n'utilisèrent jamais leur armée d'ordinateurs infectés à mauvais escient. En 2018, on estimait que 350.000 ordinateurs étaient encore infectés, ce qui montre à quel point des programmateurs ou des programmatrices qualifiées pourraient facilement déclencher des attaques à l'échelle internationale et semer le chaos.

—Jane C. Hu, rédactrice pour Future Tense

2009 – Le bouton «j'aime»

L'arme n°1 de l'économie de la surveillance.

{"__typename":"PageLikeAction","action_type":"LIKE","label":{"text":"Like"}

Page de Facebook.com en septembre 2019

Facebook a vendu le bouton «like» comme un moyen de montrer au monde que nous aimons les Simpson, le tennis ou les chips. Mais il s'agissait en réalité de tirer parti de nos biais cognitifs et de la puissance du design pour nous inciter à partager encore plus d'informations.

Il nous a ensuite suivis sur internet (grâce au pixel espion que Sara Wachter-Boettcher a décrit auparavant) pour collecter toutes les données relatives à nos habitudes de surf. Facebook a alors utilisé ces informations afin de mieux vendre son algorithme de ciblage aux annonceurs.

Si une entreprise de produits de plein air souhaitait faire de la publicité, Facebook savait qu'il fallait cibler les personnes qui avaient précédemment liké des posts traitant de randonnée, avaient visité des sites internet sur le camping et avaient des amis amateurs de plein air.

Et lorsque ces internautes likaient la publicité d'une entreprise, l'information était à nouveau renvoyée vers l'algorithme de ciblage. Et ainsi se poursuivaient les cycles infernaux de la surveillance et de la manipulation commerciales. Tout cela à cause de petits pouces bleus.

—Ari Ezra Waldman, enseignant, New York Law School

Vers 2009 – HTTP Strict Transport Security

Protège vos données en vous faisant passer par défaut par des canaux sécurisés.

Strict-Transport-Security: max-age=31536000; includeSubDomains

Guide du développeur, Mozilla

Envoyer des informations à un site web via un bon vieil HTTP implique inévitablement un risque de fuite: quelqu'un pourrait les intercepter, voir votre numéro de carte de crédit, tout savoir sur vos problèmes de santé, apprendre le nom de votre partenaire, de vos enfants, de votre animal domestique...

En cryptant les données, le HTTPS permettait de les protéger des yeux indiscrets. Mais durant longtemps, l'utilisation de ce protocole avancé fut considérée comme optionnelle.

C'est alors qu'est arrivé le HTTP Strict Transport Security (HSTS), mécanisme de sécurité qui permet de s'assurer que toutes les données échangées avec un site sont cryptées dès le début. Par exemple, si vous tentez d'aller sur http://google.com, vous serez automatiquement dirigé vers https://google.com. C'est le HSTS. Malheureusement, le HSTS n'est pas encore très répandu: on estime que seuls 11,1% des sites l'utilisent.

Toutefois, un pas important a été franchi au printemps 2015, lorsque le gouvernement fédéral américain et ses partenaires du secteur ont mis en place le HSTS pour dix-neuf domaines gouvernementaux (parmi lesquels Whitehouse.gov, AIDS.gov, et donotcall.gov). Peu après, il était demandé à toutes les agences fédérales de suivre cet exemple.

Rusty D. Pickens, ancien responsable des nouveaux médias auprès de la Maison-Blanche sous la présidence Obama

Écrit en 2012, découvert en 2014 – La faille Heartbleed

L'une des failles de sécurité les plus répandues et pernicieuses de l'histoire de l'informatique.

buffer = OPENSSL_malloc(1 + 2 + payload + padding);
bp = buffer;

/* Enter response type, length and copy payload */
*bp++ = TLS1_HB_RESPONSE;
s2n(payload, bp);
memcpy(bp, pl, payload);
bp += payload;
/* Random padding */
RAND_pseudo_bytes(bp, padding);

Naked Security

En 2014, des chercheurs en sécurité informatique découvrirent une faille dans OpenSSL, une bibliothèque open source extrêmement prisée et utilisée par près de deux tiers des sites internet (parmi lesquels DropBox, Twitter, Yahoo et GitHub) afin de permettre la communication entre deux ordinateurs.

Heartbleed aurait pu permettre à des personnes mal intentionnées de voler des informations secrètes non cryptées, notamment des identifiants et des clés de chiffrement, en utilisant une faille de sécurité de type «dépassement de mémoire tampon» touchant des millions d'appareils.

Cela a attiré l'attention sur les risques associés à l'utilisation de logiciels libres pour des fonctions de sécurité essentielles, ainsi que sur les problèmes liés à l'identification des failles dans des codes qui semblent fonctionner parfaitement depuis des années.

Pour finir sur une note plus positive, la découverte de Heartbleed a aussi déclenché une réponse mondiale rapide et assez efficace, avec notamment une campagne d'information planétaire et coordonnée et des efforts allant bien au-delà de ce qui avait déjà été fait auparavant lors de la découverte de failles similaires.

—Josephine Wolff, professeure assistante, Université Tufts

2017 – Le Boeing 737 Max

Quand une erreur logicielle motivée par l'appât du gain entraîne des centaines de morts et cloue au sol toute une flotte d'avions.

En octobre 2018, le vol 610 Lion Air plongea dans la mer peu de temps après le décollage, laissant les observateurs dubitatifs. Boeing assura au public que ses avions étaient sûrs en affirmant qu'il allait juste leur falloir mieux former les pilotes et procéder à une «mise à jour» logicielle.

Quatre mois plus tard, les pilotes du vol 302 Ethiopian Airlines tentèrent vingt fois de suite de redresser le nez de l'avion pendant que le pilote automatique les faisait systématiquement plonger. Le crash qui s'en suivit, seulement quelques minutes après le décollage, tua toutes les personnes à bord.

À la suite de cet événement, les compagnies aériennes et les autorités du monde entier décidèrent d'interdire de vol tous les 737 Max jusqu'à nouvel ordre. Les enquêtes montrèrent par la suite que les crashs avaient été causés par une erreur de conception, notamment au niveau du logiciel peu connu et qui pouvait forcer l'appareil à plonger de manière répétée.

—Mar Hicks, historienne des technologies et autrice de Programmed Inequality

En ce moment

Proteus, le centre de recherche sous-marin géant de Fabien Cousteau

Tech

Proteus, le centre de recherche sous-marin géant de Fabien Cousteau

L'équivalent d'une station spatiale, mais à 20.000 lieues sous les mers.

Le diesel renouvelable, ou comment «Big Oil» tente de sauver sa peau

Biz

Le diesel renouvelable, ou comment «Big Oil» tente de sauver sa peau

Changement climatique et baisse du prix du pétrole obligent, les sociétés pétrolières cherchent des portes de sortie.

Connaissez-vous Civvl, le Uber des expulsions?

Biz

Connaissez-vous Civvl, le Uber des expulsions?

L'époque de tous les possibles, même les évictions en free-lance.