Bienvenu !

Vous trouverez ici (bientôt) : des articles de réflexions, mon mémoire de recherche en philosophie de la technique, des tutoriels, des résumés/suggestions de lecture …

 

31 Mots

I – Les pratiques de hacking et leur dynamique culturelle.

I-1 – Origine de la culture hacker et descriptions classiques du hack

Le hacking est une notion délicate à manipuler : elle fascine, car elle charrie à la fois une part de mystère en tant que forme d’engagement technique non conventionnel et parallèlement une part de transgression parfois valorisée, parfois minimisée par ceux qui se revendiquent hackers. Au-delà d’une image médiatique construite depuis les années 19801 qui assigne souvent le hacker au rôle du magicien informatique délinquant, la culture hacker manifeste une certaine diversité et une énergie techno-politique frappante2. Ainsi, il existe de multiples caractérisations conflictuelles du hacking comme activité et des qualités qui font le « véritable » hacker, aussi bien chez les acteurs qui se revendiquent de cette identité3 que dans la littérature. En effet, la culture hacker est ancienne et s’est largement diversifiée. Elle est traversée par des conflits générationnels4 et des divergences pratiques aussi bien que de culture politique. Enfin, elle est très stimulante et fait l’objet de nombreuses déclarations d’intention5. Ces tendances participent à un certain flou quant à l’emploi des termes hacker et hacking.

Nous nous proposons d’aborder dans un premier temps quelques approches classiques et de présenter rapidement une double origine historique de la culture hacker. Par la suite, pour donner une image plus actuelle des pratiques de hacking, nous évoquerons deux « genres »6 du hacking qui polarisent en quelque sorte la culture hacker aujourd’hui : il s’agit du « cracking » et du logiciel libre. Nous désignerons le plus souvent le « cracking » comme hacking transgressif ou détournement pour des raisons que nous développerons dans la partie I.2.3. Le logiciel libre met quant à lui en avant le hacking comme une pratique de programmation collaborative.

Ces précisions étant apportées, il semble utile, pour commencer, de s’intéresser à quelques définitions. Le qualificatif de hacker désigne souvent de façon assez générale un informaticien curieux et débrouillard7 ou plus précisément selon le Jargon File, un dictionnaire classique d’argot hacker :

A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary8.

Cependant, correspondre plus ou moins à cette définition ne suffit pas pour être considéré comme un hacker. En effet, cette culture est traversée par un certain élitisme et dans de nombreux cas une forme particulière de reconnaissance par les pairs est nécessaire pour faire de quelqu’un un hacker (Jordan 2008, chap. 2). Cette reconnaissance s’opère sur la base d’un type d’acte particulier, le hack qui manifeste l’ingéniosité, la maîtrise technique voire l’humour de son auteur. Le hack n’est pas aisé à cerner. En tant que « Graal »(Taylor 1999, 16) recherché par les hackers, il est réputé revêtir un sens subtil et profond qui défie l’explication9. De façon très générale, le hack est parfois caractérisé comme une « application adéquate de l’ingéniosité ». Il traduit la capacité d’agir de façon non orthodoxe et inventive dans des contextes technologiques et particulièrement informatiques.

Pour prendre un exemple élégant et humoristique de hack informatique, présenté par Gabriella Coleman, considérons un court programme écrit dans le langage de programmation Perl (E. G. Coleman 2013, 93) :

#count the number of stars in the sky

$cnt = $sky =~ tr/*/*/;

L’objet de cette courte expression est comme l’indique le commentaire initial de « compter les étoiles dans le ciel ». En pratique, elle compte littéralement le nombre de caractères astérisque (*) d’un texte enregistré dans la variable « ciel » ($sky)10.

En plus du jeu de mots qui lui donne une connotation humoristique et poétique, cette expression célèbre la centralité de l’astérisque dans les systèmes UNIX11, et la puissance du langage Perl. En effet, elle démontre qu’il est possible d’effectuer, grâce à ce langage, un traitement informatique non élémentaire12 en seulement une ligne grâce à la syntaxe originale du langage qui laisse le programmeur condenser plusieurs opérations avec un minimum de symboles. Un programme explicite effectuant la même tâche utiliserait pour ce faire un code sensiblement plus long13. Le jeu qui consiste à condenser ainsi des expressions est très répandu dans la communauté des programmeurs Perl et demande une ingéniosité combinatoire certaine. Par cette simple expression, l’auteur manifeste une maîtrise importante des détails techniques du langage de programmation et de l’environnement informatique. Il élève en quelque sorte, par un acte qui n’est pas uniquement utilitaire, la programmation au rang de discipline poétique. Le hack et son rapport intime aux méandres de la programmation proviennent des pratiques développées par certains informaticiens du Massachussets Institute of Technology (MIT). Revenons sur cette origine de la culture hacker.


  1. (Thomas 2002, xiv‑xv) 
  2. Plusieurs séjours au Chaos Communication Congress, convention hacker allemande parmi les plus populaires du monde ont achevé de nous en convaincre. 
  3. Coleman relève que les hackers sont constamment en train de débattre du sens des termes hacker et hacking. (E. G. Coleman 2013 Introduction) 
  4. (Taylor 1999, 25) 
  5. Par exemple, Mc Kenzie Wark (Wark 2009) fait des hackers une nouvelle classe virtuelle révolutionnaire. 
  6. (G. Coleman et Golub 2008) 
  7. La culture hacker est traditionnellement une culture très masculine, ce qui est relevé par plusieurs sociologues, notamment (Taylor 1999, 34). Notre choix d’utiliser le masculin neutre, bien que très habituel, invisibilise les femmes hacker. Il nous semble important de préciser qu’il existe aujourd’hui des groupes hacker féminins et féministes et queer politiques qui luttent en particulier contre le sexisme au sein de cette culture. Illes cherchent à se réapproprier ses codes et rendre les groupes et espaces hackers moins excluants pour les femmes et personnes transgenres. 
  8. « Une personne qui aime explorer les détails de systèmes programmables et les façons d’étendre leurs capacités, contrairement à la plupart des utilisateurs qui préfèrent eux, apprendre le minimum nécessaire. » Traduction de l’auteur. Entrée du Jargon File, citée dans (Söderberg 2011, 22). 
  9. (Taylor 1999, 14) 
  10. C’est-à-dire un emplacement de mémoire, qui permet de stocker une information durant l’exécution du programme et auquel le programmeur donne un nom. 
  11. L’astérisque, omniprésente dans les commandes UNIX, est utilisé pour désigner une chaîne de caractère quelconque dans une expression. 
  12. Tâche qui habituellement nécessiterait au moins un télescope et un temps conséquent. 
  13. (E. G. Coleman 2013, 93‑94). Le programme explicite équivalent
    pour être exprimé en 9 lignes comme suit : $cnt = 0;
    $i = 0;
    $skylen = length($sky)
    while ($i < $skylen) {
    $sky = substr($sky,0, $i) . ‘*’ . substr($sky, $i+1,
    length($skylen));
    $i++;
    }
    $cnt = length($sky);
     
1,118 Mots

Abstract (EN)

The hacker is an important although marginal figure in the history of computer technology. Hacker culture brings together in this technical domain political and creative approaches through unusual practices : hacking involve a particular relation to computer systems, between software creation and hijacking. Without minimizing the diversity and evolutive character of thoses practices, the aim of this work is to question how hacking reveals a pervasive tendency of technology to hide the operations and conditions of technical systems.

Our approach begins with an overview of hacker culture. It will first present the origins of this culture and certain classical descriptions of the hack, a technical, aesthetic and provocative act. The progression will then be classically divided between on one side the free software movement and on the other the computer underground and its transgressive activities, often called cracking. We will however discuss the construction process of this opposition, notably political, to overcome this apparent duality.

In a second part, based on STS, philosophy of technology and philosophy of computer science reflexions, we will study the notion of black box. This notion, as a metaphor, a cybernetic model and a constructivist concept, will help us to describe a paradoxal hiding of the technical conditions, in particular the operations which support technological artefacts functioning. We will then propose a caracterisation of this tendency in the context of computing through the central and structuring concept of computational abstraction.

In this theoretical framework, describing computers as layered systems, computing through multiple and nested black boxes, we will discuss the specificity of hacker action. Our analyse uses a particular hacking example : the memory injection through buffer overflow method. This kind of black box hiding supports a separation between the user’s and designer’s positions, which is transgressed by hackers. Those refuse in fact, as technically aware computer users, to drop out their practical link with the operational reality of computer systems.

Finally, we will consider that, as the black box notion also describe traditionally the disappearing of the social logic of technological systems, this hiding supports hegemonic strategies from the computer industry. We will discuss the notion of technological hegemony, which through the example of graphicals interfaces and the how they make it difficult and secondary to program computers. This approach will open a theorical direction to address the deeply political dimension of hacking practices.

Keywords : hack, free software, cracking, black box, computational abstraction, technological hegemony, buffer overflow

403 Mots

(Re)programmer des boîtes noires (Mémoire)

Les hackers face à l’abstraction informatique et une omniprésente disparition du technique.

Élie Gavoty

Mémoire de recherche pour le Master LOPHISS 2015-2016 Université Paris Diderot
Dirigé par Mme Nadine de Courtenay, Soutenu le 6 septembre 2016.

Jury : Mme Nadine de Courtenay, Maître de conférence en histoire de la physique.
M. Sébastien Broca, Maître de conférence en science de l’information et de la communication.

Ce texte et ses schémas sont distribués sous licence Creative Commons BY-NC-ND
Illustration sous licence Creative Commons BY-SA auteur Elie Gavoty, d’après une icône de George Boukeas, basée sur le thème Gorilla Icon de Jakub Steiner.

Version PDF

>> Suite : Résumé (FR)

 

121 Mots

Résumé (FR)

Le hacker est une figure à la fois marginale et importante dans l’histoire de l’informatique. La culture hacker fait en effet converger, au sein de ce domaine, des approches techniciennes à la fois inventives et politiques autour de pratiques inhabituelles : le hacking implique une façon particulière de se rapporter aux systèmes informatiques entre création et détournement logiciel. Sans enfermer dans une caractérisation figée ces pratiques diverses et en évolution constante, l’objectif de ce mémoire est d’interroger la façon dont elles permettent de questionner une logique omniprésente de masquage de la technicité.

Notre approche débutera par un panorama de la culture hacker. Il s’agira dans un premier temps d’évoquer les origines de cette culture et certaines caractérisations classiques du hack, acte technicien esthétique et provoquant. Notre approche sera ensuite assez classiquement polarisée entre d’un côté le mouvement du logiciel libre et de l’autre le computer underground et les activités transgressives, souvent appelées cracking, qui s’y développent. Nous chercherons cependant à relativiser cette opposition en évoquant le processus, notamment politique, de sa construction.

Dans une deuxième partie, alimentée par des réflexions issues des STS de la philosophie de la technique et de philosophie de l’informatique, nous étudierons la notion de boîte noire. Cette notion, à la fois métaphore, modèle cybernétique et concept constructiviste nous permettra d’interroger une logique paradoxale du masquage du technique et en particulier des opérations appuyant le fonctionnement des artefacts. Nous proposerons ensuite une caractérisation en informatique de cette logique de la boîte à travers la notion centrale et structurante de l’abstraction.

Dans ce cadre théorique décomposant les systèmes informatiques en différents niveaux de réalité, fonctionnant grâce à des boîtes noires multiples et emboîtées, nous chercherons à mettre en valeur une spécificité de l’action hacker. Pour cela nous étudierons en particulier un exemple de technique de hacking, l’injection mémoire par débordement de tampon. Ce type de masquage joue notamment un rôle important dans la séparation entre une position de concepteur et une position d’usager, qui est transgressée par les hackers. Ces derniers refusent en effet, en tant qu’utilisateurs des systèmes informatiques, de renoncer à un nouer un lien pratique avec la réalité opératoire de ces systèmes.

Enfin, nous aborderons la façon dont la notion de boîte noire qui décrit également la disparition du processus de genèse des systèmes techniques peut être vue comme le support d’une hégémonie de l’industrie informatique. Nous aborderons, cette notion d’hégémonie technique à travers l’exemple des l’interfaces graphiques et de la façon dont elle supprime la possibilité de programmer les ordinateurs. Cette approche ouvrira une direction théorique permettant de rendre compte de la dimension profondément politique des pratiques de hacking.

Mots clés : hack, logiciel libre, cracking, boîte noire, abstraction informatique, hégémonie technique, débordement de tampon,

Introduction

Depuis quelques années, la culture hacker gagne en visibilité, en particulier en France. À travers le mouvement des hackerspaces1, ces espaces dédiés à la bidouille informatique qui apparaissent depuis peu dans diverses villes, une certaine forme de passion pour l’informatique trouve de nouveaux lieux d’expression et de diffusion. Parallèlement, un public de plus en nombreux fait un usage courant de logiciels libres, liés à la culture hacker, tels que le navigateur web Firefox, le système d’exploitation GNU/Linux ou encore les services libres en ligne proposés par l’association Framasoft. Cependant si différentes initiatives sortent du bois, l’ampleur de la « galaxie hacker » semble relativement méconnue et sa cohésion problématique. Comment les « exactions » des Anonymous, ce groupe médiatique d’activistes en ligne et les hackathons, événements ponctuels de développement logiciel, organisés notamment par Mozilla (entreprise derrière Firefox), sont-ils susceptibles d’être apparentés ? Cette cohésion de la culture hacker pose problème en terme d’identité pour les acteurs eux-mêmes : qui peut aujourd’hui se revendiquer hacker et pourquoi ? Les avis divergent.

La culture hacker est relativement ancienne. Elle trouve ses racines, durant les années 1960, dans deux mouvements techniciens assez spécifiques. D’une part, les concepts de hack et hacker proviennent d’un collectif étudiant du Massachussets Institute of Technology. D’autre part, une orientation plus transgressive, centrée sur les technologies de communication est héritière d’un mouvement de pirates téléphoniques appelés les phreakers(Sterling 1992). À la conjonction de ces deux tendances, au moment où les PC et les réseaux informatiques se répandent, notamment aux États-Unis et en Europe, s’est développé sous diverses formes un rapport à la fois pratique et politique à l’informatique comme technologie radicalement appropriable et partageable.

Au cœur de la culture hacker, on trouve traditionnellement un motif consacré : le hack désigne un acte technicien, qui en manifestant la compétence technique, l’astuce voire l’audace de son auteur l’élève véritablement au rang de hacker. La dynamique du hack lorsqu’on essaie de l’exprimer de façon générale, apparaît relativement abstraite (Jordan 2008, chap. 1). C’est qu’un hack peut s’appliquer à l’informatique dans de nombreux contextes, mais également à tout dispositif technique, voire pour certains, aux relations humaines. Là encore, ce qui constitue légitimement un hack est sujet à débat(E. G. Coleman 2013 Introduction) et la cohésion pratique du hacking demeure problématique.

Au-delà de ses origines historiques, on peut identifier en suivant notamment le sociologue Tim Jordan, deux orientations principales exprimant en pratique cette notion aujourd’hui. D’une part le cracking désigne généralement des pratiques très diverses de détournement ou de piratage qui visent à outrepasser ou à mettre simplement à l’épreuve la sécurité des systèmes informatiques. D’autre part la création de logiciels libres, c’est-à-dire de programmes informatiques dont le code est librement accessible, ce qui permet leur partage et un développement collaboratif. La mise en regard de ces deux orientations révèle une tension particulière entre, d’un côté, des pratiques de développement logiciel collaboratives, qu’on pourrait aisément qualifier de constructives et qui sont considérées très positivement de façon générale, et de l’autre des pratiques de détournement, transgressives voire délinquantes, c’est-à-dire dont la légitimité est largement contestée et qui sont perçues par beaucoup comme destructrices.

Lorsqu’on cherche à dépasser cette opposition, et que l’on considère les motivations qui guident les hackers dans leur diversité, on comprend que ce qui est au cœur du hacking est souvent le besoin de (re)prendre en main, de s’approprier librement les systèmes informatiques, en particulier de pouvoir les (re)programmer. Il semble notamment que les hackers ne trouvent pas leur compte face aux divisions professionnelles de l’informatique, séparant le travail de développement, c’est-à-dire une tâche de conception de l’usage d’un ordinateur tel qu’il est proposé aux utilisateurs finaux. Ils refusent en particulier une forme d’impuissance à laquelle sont assignés les usagers de l’informatique en tant que récepteurs de machines et de logiciels déjà parfaitement clos.

Cette situation renvoie plus conceptuellement à un paradoxe en philosophie de la technique : les différents aspects de la technicité (les opérations, décisions et réseaux) qui permettent le fonctionnement et la médiation opérée par les objets techniques (on parle plus largement d’artefacts techniques dont font partie les programmes informatiques) disparaissent généralement pour laisser la place à l’objet lui-même dans son identité fonctionnelle. Mais cette disparition participe d’une forme d’impuissance de l’usager à choisir et adapter les conditions de son environnement technique puisqu’elle le pousse à adopter une position de récepteur globalement passif. Même les logiciels libres, pourtant faits pour favoriser une forme d’appropriation plus profonde, semblent parfois pris dans ce paradoxe.

Dès lors, le hacking, lorsqu’il manifeste une volonté de transgression des conditions techniques existantes, nous paraît être un type d’activité philosophiquement intéressant en ce qu’il s’éloigne d’une logique de la boîte noire caractéristique de la technique moderne : plutôt que de réduire la technique, à une alternance de processus de conception et d’actes d’usage, il illustre une façon de remettre au centre de l’action les éléments du fonctionnement d’un artefact (généralement informatique) et une certaine réflexivité technicienne sur la médiation qu’il opère. Il s’agit ainsi de valoriser l’action transformatrice, voire contestataire, plutôt que la stabilisation des artefacts en tant qu’objets non problématiques.

Pour étudier cette originalité du hacking et du rapport hacker à l’informatique, nous chercherons ainsi à mettre en regard une approche transversale des pratiques de hacking inspirée par la littérature sociologique sur la culture hacker avec un questionnement plus conceptuel sur la notion de boîte noire. Cette dernière nous permettra en effet d’interroger sous différents angles la façon dont au coeur du technique se met en place un masquage de la technicité qui incorpore une forme de séparation entre conception et usage comme deux moments distincts. Il s’agira notamment de proposer un cadre théorique pour aborder la profondeur des systèmes informatiques et la centralité des processus de masquage dans leur architecture. Nous nous intéresserons dans ce contexte théorique à une technique de hacking particulière et en en quelque sorte canonique en sécurité informatique : l’injection mémoire par débordement de tampon. À partir de cet exemple, nous proposerons une analyse de l’attitude hacker en informatique comme un rapport particulier aux systèmes informatiques et à leur structure « feuilletée ». Enfin, nous aborderons, comment ces processus de masquage en informatique, en particulier dans le cas de la conception des interfaces graphiques, font écho à des logiques hégémoniques contre lesquelles luttent les hackers.


  1. Dont le modèle est notamment présenté sur le site http://hackerspace.org.