Alertes de sécurité en cours Discussion Discussion
Faire un lien Lien
Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée


API (informatique)

Dernière mise à jour : 2016-12-03T00:00 - 03.12.2016 - 00h00
29.09.2014 - 00h00 - Paris - (Assiste - Pierre Pinard) - Mise à jour

API (informatique) - une API est une interface entre un logiciel qui demande un service et un autre logiciel qui offre le service. Ce dernier peut être local ou sur le Web. La multiplication du déport des fonctions locales vers des services Web simplifie certaines actions (maintenance, mise à jour, ...) mais universalise la surveillance et le tracking, raisons pour lesquelles elles sont poussées en avant.

APIAPIAPI

API = Application Programming Interface (Interface de Programmation Applicative)

Une API est une interface entre un logiciel qui demande un service et un autre logiciel qui offre le service. Le logiciel qui offre le service peut être local (bibliothèque de services) ou sur le Web (service Web). Une API sert à exposer à un demandeur (un logiciel) les capacités du demandé (appareil, système d'exploitation, etc. ...) afin que le demandeur puisse exploiter une ou des capacités et caractéristiques du demandé sans entrer dans les arcanes du demandé.

Les APIs en Web Service

L'aspect Web (service Web) participe du concept général du DRY ("Don’t Repeat Yourself" - « Ne vous répétez pas »). Au lieu d'avoir une fonction répétée des milliards de fois sur des milliards d'ordinateurs ou objets connectés, avec tous les problèmes de mises à jour et d'homogénéité, il n'y a plus qu'un seul exemplaire de la fonction, sur un seul serveur, et les milliards d'ordinateurs utilisent juste une API pour solliciter la fonction (sur le Web) qui retourne sa réponse (qui rend un service). Mais les ordinateurs sur le Web, pompeusement appelés d'un nom « vendeur » et « ronflant », les « clouds », ne sont que des ordinateurs :

  • appartenant à on ne sait qui
  • se trouvant on ne sait où (dont les risques juridiques)
  • que l'on ne maîtrise pas

Chaque appel à une API déportée fait l'objet d'un tracking (des raisons statistiques sont avancées, mais les autres raisons sont passées sous silence, dont les injonctions faites aux opérateurs du Web par les officines obscures qui ont conduit à, par exemple, Prism et Cie).

Au lieu d'avoir, dans un seul ordinateur, des fonctions standard répétées partout, dans chaque programme qui en a besoin, on les développe une bonne fois pour toutes et on les met à disposition des programmes qui appellent ces fonctions, par une API, en lui passant les arguments sur lesquels la fonction doit travailler pour rendre un résultat. Tous les Framework sont de cette nature.

Ce n'est pas nouveau. Dans un développement de programmation « propre » (antonyme de « brouillon », mal écrit, indéchiffrable, impossible à maintenir sur les 10, 20 ou 50 ans de durée de vie d'un programme, bordélique, etc. ...), les « routines » sont développées séparément et structurées. Cela est plus facile à maintenir, documenter, utiliser et réutiliser, etc. ...

Souvenirs de l'auteur :

Au début des années 70, j'avais déjà mis très logiquement cela en place pour mes beoins personnels, car, dans des développements de plusieurs millions de lignes de code, apparaît très vite un besoin de rationalisation de l'écriture des programmes (pas de monolithisme mais des assemblages de briques logicielles). Si ma mémoire est bonne, j'appelais ces appels aux services externes que j'avais développés, des « call blocks » (ce que l'on appellerait, aujourd'hui, des APIs). Le « call block » était, outre la désignation du programme externe appelé, un buffer (une zone mémoire) dont l'organisation (la structure) était dépendante du programme externe appelé (type de données, taille de chacune des données, etc. ...). Les arguments étaient passés et, si nécessaire, des résultats étaient récupérés au retour dans le même « call block ». Il est probable que toutes les équipes de développement de grands projets, au monde, faisaient la même chose à la même époque, sous je ne sais quels noms.

Un programmeur qui développe une application fenêtrée, sous Windows, ne développe jamais la programmation de l'interface graphique utilisateur (le GUI), mais passe, uniquement, des arguments aux fonctions graphiques de Windows. Ce sont des APIs. Windows est, entre autres choses, une vaste collection d'APIs grâce auxquelles un programmeur peut communiquer avec des couches techniques de Windows sans avoir à se préoccuper de leur écriture.

L'installation de VTZilla comporte l'usage d'une API pour solliciter le service VirusTotal. Mais ce « service », vous le « payez gratuitement » par le fait que le propriétaire du service VirusTotal, la société Google, surveille et note dans ses infinies mémoires (depuis le premier jour où vous vous êtes connecté sur le Web), tout ce que vous manipulez (les programmes, images, fichiers, sites Internet, etc. ...), à chaque instant, afin de savoir à quoi vous vous intéressez). Si quelqu'un regardait par dessus votre épaule, 24/24, 365/365, ce que vous faites sur votre smartphone, tablette, ordinateur, réfrigérateur, voiture, GPS, etc. ... vous lui ficheriez votre poing dans la figure ! Et bien, sur le Web, ils sont des dizaines en même temps à vous suivre à la trace, 24/24, 365/365, et tout le monde s'en fiche ! C'est là le problème des APIs.

Lorsque vous regardez la page sur Saint-Laurent-du-Var, le dessin de la carte (Google Maps) et son déplacement sur cette carte sont appelés par une simple API écrite dans la page Web visitée, tout le reste est un service Web. Encore un service de Google que « vous payez gratuitement ».

La multiplication du déport des fonctions locales vers des « services Web » simplifie certaines actions (maintenance, mise à jour homogène pour tous les utilisateurs du monde en même temps, etc. ...) mais universalise la surveillance et le tracking, raisons pour lesquelles le principe des « Web applications » est poussé, en même temps que les Clouds.

L'appel à un service externe (un service se trouvant sur un serveur distant, dont on ne connaît ni la géolocalisation ni les intensions de l'opérateur), nécessite une ou des requêtes http (et leurs entêtes) porteuses de révélations sur les faits et gestes des internautes.

Les navigateurs Web se vident de plus en plus des actions locales au profit d'actions déportées appelées avec des APIs. Ceci va de pair avec les tentatives industrielles de nous vendre ce que nous n'avons pas encore (principe industriel et commercial de créer le besoin) - des tablettes et smartphones : sortes d'ordinateurs :

  • vidés de nos données (pas de disque dur ou de mémoire locale) qui sont déportées ailleurs, dans des nuages appartenant à on ne sait qui et que nous ne maîtrisons pas. Il faut payer des abonnements mensuels pour accéder à nos données strictement personnelles et privées, et payer encore pour le pas les perdre définitivement
  • vidés de nos programmes dont nous n'achetons plus une licence que nous pouvons conserver 10 ou 20 ans si elle nous donne satisfaction, mais pour lesquels il faut payer des abonnements mensuels pour accéder à nos données ou faire quoi que ce soit qui sera surveiller.

Typiquement, l'abandon des plug-ins dans les navigateurs Web (les plug-ins dans l'ordinateur de l'internaute), pour les remplacer par des services Web (et des APIs pour les solliciter) universalise définitivement la surveillance et le tracking de la totalité des internautes du monde, ce que les acteurs avaient commencé à faire avec leurs principes d'encerclement.