Hardy les gars

From GHM-SC
Jump to navigation Jump to search

Introduction aux "Capabilities" en informatique

En informatique, une capability (ou « habilitation » / « capacité » en français) est un jeton ou une clé sécurisée et inforgeable qui donne à un programme un droit d'accès direct à une ressource spécifique (comme un fichier, une zone mémoire ou un périphérique).

C'est un concept fondamental de la sécurité informatique, souvent résumé par la formule : « détenir l'objet, c'est avoir le droit de l'utiliser ».

Exemple analogique

  • Sécurité classique (ACL - Liste de contrôle d'accès) : C'est comme un videur à l'entrée d'un club qui vérifie votre carte d'identité sur une liste. Si votre nom y est, vous entrez.
  • Sécurité par Capability : C'est comme un ticket de cinéma ou une clé de chambre d'hôtel. Peu importe qui vous êtes, si vous présentez le ticket valide, vous entrez. Le ticket contient à la fois la désignation de la ressource et le droit d'accès associé.

Caractéristiques techniques

  1. Inforgeables : Un programme utilisateur ne peut pas fabriquer une fausse capability. Elles sont créées et protégées par le noyau du système (Kernel).
  2. Transmissibles : Un processus qui possède une capability peut la transmettre à un autre processus pour lui déléguer ses droits.
  3. Granulaires : Une capability ne donne pas tous les droits, mais un droit précis (ex: "lire uniquement le fichier X").

Cas d'usage principaux

Les systèmes d'exploitation (Ex
Linux Capabilities) : Les Linux Capabilities séparent le pouvoir du super-utilisateur (root) en dizaines de petits morceaux indépendants (ex: <codemacro>CAP_NET_BIND_SERVICE</codemacro> pour se lier au port réseau 80 sans avoir d'autres privilèges).
La sécurité de la mémoire (Hardware & OS)
Dans les architectures modernes comme le projet CHERI (Université de Cambridge / ARM), les pointeurs de mémoire classiques sont remplacés par des capabilities matérielles pour empêcher définitivement les failles de type "buffer overflow".
Le Cloud et les architectures Web
Les jetons d'accès (comme les JWT - JSON Web Tokens) ou les clés d'API fonctionnent comme des capabilities. Le service cloud valide le jeton pour donner accès aux données sans revérifier l'identité à chaque seconde.

Avantages et limites

Avantages Inconvénients
Principe du moindre privilège : Un programme n'a que ce dont il a strictement besoin. Révocation difficile : Comme le système ne garde pas de liste centralisée des droits, il est complexe d'annuler un accès une fois le ticket distribué.
Sécurité accrue : Réduit drastiquement l'impact si un composant est piraté. Complexité de gestion : Suivre et passer des milliers de jetons entre les processus peut alourdir l'architecture.

Qui est Norman Hardy ?

Norman "Norm" Hardy (1937–2018) est un informaticien pionnier américain et l'un des plus grands théoriciens et praticiens des systèmes basés sur les capabilities. Ayant travaillé chez IBM, au Lawrence Livermore National Laboratory, puis chez Tymshare, il a marqué l'histoire de la cybersécurité à travers deux contributions majeures :

Le "Problème du député confus" (The Confused Deputy Problem)

Formalisé par Hardy en 1988, ce problème de sécurité survient lorsqu'un programme privilégié (le "député") est manipulé par un utilisateur malveillant pour effectuer une action interdite en utilisant les privilèges du programme plutôt que ceux de l'utilisateur.

Hardy a démontré que la seule façon de régler nativement ce problème était d'utiliser des capabilities, car l'autorité (le droit d'accès) y est indissociable de la désignation de la ressource.

Le développement de KeyKOS

Norman Hardy a été l'architecte principal de KeyKOS (au sein de Key Logic), l'un des tout premiers systèmes d'exploitation dotés d'une architecture à micro-noyau entièrement guidée par les capabilities. Ce système a prouvé l'efficacité commerciale d'un OS extrêmement sécurisé sans aucun mode global <codemacro>root</codemacro>.

Les contributions d'Ann Hardy

L'épouse de Norman Hardy (dont elle a divorcé plus tard) était Ann Hardy (1933–2023). C'est une figure majeure et une pionnière de l'informatique, en particulier dans le développement des systèmes d'exploitation à temps partagé (time-sharing) et de l'informatique en réseau.

Développement du système d'exploitation de Tymshare

En 1966, la start-up Tymshare l'embauche pour concevoir son système d'exploitation commercial. Ann Hardy a entièrement réécrit le système d'origine pour l'adapter à un usage commercial à grande échelle, jetant les bases logicielles du réseau Tymnet.

Travaux chez IBM

Au milieu des années 1950, elle intègre la division de recherche d'IBM et apporte des contributions logicielles cruciales pour le Stretch (IBM 7030), qui était alors le supercalculateur le plus rapide du monde.

Entrepreneuriat et sécurité

  • Elle fut la première femme vice-présidente de Tymshare.
  • Elle a cofondé KeyLogic aux côtés de Norman Hardy pour commercialiser le système KeyKOS.
  • Elle a fondé Agorics, une entreprise spécialisée dans les systèmes de micro-paiement et la sécurité des architectures Web.