# Enregistreur de frappe

En informatique, un enregistreur de frappe$^,$ (en anglais : keylogger) est un périphérique qui enregistre électroniquement l'utilisation d'un ordinateur. Inoffensif à la base, sa fonction première est l'enregistrement des événements sur le clavier, ces enregistrements peuvent être ensuite utilisés volontairement par l'utilisateur, dans le cas des macros ou des raccourcis clavier par exemple.
Les utilisations de cet outil sont potentiellement variées : il peut par exemple enregistrer les touches saisies au clavier, réaliser des captures d'écran, ou lister les actions de l'utilisateur et les applications actives.
Le terme keylogger est parfois utilisé pour parler de l'enregistrement des périphériques d'entrée/sortie, bien que ces dispositifs puissent être nommés spécifiquement en fonction du périphérique visé, comme les mouseloggers pour la souris.

## Fonctionnement

Le keylogger se place entre la frappe au clavier et l'apparition du caractère à l'écran. Cette opération peut se faire par l'insertion d'un dispositif dans le clavier, par une observation vidéo, sur le câble, par l'interception des requêtes d'entrée et de sortie, le remplacement du pilote du clavier, un filtre dans la mémoire tampon du clavier, l'interception de la fonction dans le noyau par n'importe quel moyen (remplacement des adresses dans les tableaux système, détournement du code de la fonction), l'interception de la fonction DLL dans le mode utilisateur, ou une requête au clavier à l'aide de méthodes standard documentées.

## Types

Les enregistreurs de frappe sont logiciels ou matériels. Dans le premier cas, il s'agit d'un processus inclus, par exemple, dans un autre processus, ou pouvant porter un nom ressemblant à celui d'un processus système. Dans le cas d'enregistreurs de frappe matériels, il s'agit d'un dispositif (câble ou dongle) logé entre le port du clavier et le clavier lui-même.

## Détection et protection

Suivant le type d'utilisation (logicielle ou matérielle), la détection et la protection sont variables.

### L'origine utilitaire

Sous leur forme logicielle, ces outils d'enregistrement ne sont pas répertoriés comme des virus ou des vers car ils n'ont pas pour objectif de modifier quoi que ce soit dans l'ordinateur et permettent simplement la collecte d'informations.
Certains logiciels sont d'ailleurs entièrement basés sur l'enregistrement des actions de la souris pour en rendre compte à l'utilisateur de manière ludique. Même Microsoft a admis publiquement que le système d'exploitation Windows 10 possède un keylogger intégré dans sa version finale « pour améliorer les services de saisie et d'écriture ». Dans le cas de Windows 10 et de son keylogging, il faudra modifier certains paramètres de confidentialité de l'ordinateur.

### L'enregistrement logiciel

Le risque est présent en cas d'absence d'autorisation ou de contrôle de cette autorisation.
Il s'agit alors dans ce cas de logiciel installé à l'insu de l'utilisateur, généralement des chevaux de Troie, et susceptibles d'enregistrer le moindre des mouvements de la machine concernée, la moindre des actions menées sur l'ordinateur, permettant ainsi de collecter par exemple tous les mots de passe qui y sont tapés.
Pour empêcher que les informations du keylogger ne puissent être transmises sur Internet, l'utilisation d'un pare-feu est conseillée, mais les logiciels de protection ne sont (par nature) pas efficaces dans le cas d'enregistrement matériel.

### Dans le noyau

Il s'agit d'un programme implémenté dans l'OS qui enregistre les frappes qui passent vers le noyau. Cette méthode est difficile à la fois à programmer et à identifier parce que ces enregistreurs de frappe résident au niveau du noyau interne (ou kernel). Pour cette même raison cela les rend aussi plus efficaces. Un enregistreur de frappe qui utilise cette méthode agit par exemple comme un pilote de périphérique de clavier ; il a ainsi accès à toute information tapée sur le clavier et destinée au système d’exploitation.

### L'enregistrement matériel

En cas d'enregistrement matériel, il suffit de repérer et de remplacer le matériel en cause par un autre dont le branchement et le fonctionnement seront autorisés et vérifiés par l'utilisateur, ou alors en utilisant des logiciels de remplacement, comme un clavier virtuel. Mais les solutions logicielles de type clavier virtuel simulent souvent des frappes au clavier, et sont donc plutôt inefficaces contre l'enregistrement logiciel.

## Solution

Pour que l'enregistrement soit rendu difficile ou inopérant, il faut que l'information soit limitée (utilisation d'authentification unique, ou à très courte durée de vie), et qu'elle repose sur plus d'un élément qui ne seront pas faciles à récupérer (voir l'authentification forte).