browserforensics
Retour à tous les articles

Les cookies de navigateur en forensique

2026-05-19 · 3 min

Les cookies sont une source de chronologie sous-estimée. Chaque ligne porte trois horodatages et un domaine ; ce triplet à lui seul reconstitue quels sites le navigateur a vus et quand, même lorsque l'historique a été effacé. Sur un poste où l'utilisateur a effacé History mais a oublié la base Cookies, la table des cookies sauve fréquemment l'enquête.

Où ils se trouvent

NavigateurFichierStockage
Chrome / EdgeNetwork/CookiesSQLite cookies
Firefoxcookies.sqlitemoz_cookies
SafariCookies.binarycookiesformat binaire propre à Apple

Chromium a déplacé Cookies dans Network/ aux alentours de M96. Les acquisitions Chrome plus anciennes l'auront à la racine du profil.

Ce que vous obtenez par ligne

  • Domaine (et host_key dans Chromium, avec un point initial pour les wildcards).
  • Nom, chemin.
  • is_secure, is_httponly, samesite, priority.
  • Heure de création, dernière heure d'accès, expiration.

Trois horodatages par cookie signifient un chevauchement de chronologie avec l'historique, les téléchargements et même les échantillons réseau SRUM. Un cookie __Secure-3PSI posé à la même seconde qu'une ligne de téléchargement verrouille la visite de manière incontestable.

Le problème de la valeur chiffrée

Chromium chiffre les valeurs de cookies au repos depuis la v80. Sous Windows, la clé est encapsulée par DPAPI sous la clé maîtresse de l'utilisateur ; sous macOS, elle réside dans le Keychain ; sous Linux, c'est une clé fixe peanuts ou kwallet/gnome-keyring selon la distribution. Sans les clés en direct, la colonne encrypted_value est du chiffré AES-256-GCM.

Pour la plupart des enquêtes, cela n'a pas d'importance : les métadonnées répondent à la question. Les cas où cela compte (prouver un jeton de session précis, récupérer un état OAuth) requièrent les clés de profil de l'utilisateur. Mimikatz, DonPAPI et dpapilab-ng couvrent l'extraction sous Windows ; sous macOS, l'extraction du Keychain avec le mot de passe utilisateur fonctionne pour une acquisition déverrouillée.

Les cookies Firefox restent en clair. Les binarycookies Safari aussi.

Lire Cookies.binarycookies rapidement

Si vous n'avez pas de parseur sous la main, le format est assez petit pour se parcourir à la main. Magie cook, nombre de pages en big-endian, tailles par page en big-endian, puis blocs de pages. Chaque enregistrement de cookie comporte 56 octets d'en-tête plus quatre chaînes terminées par NUL (domaine, nom, chemin, valeur). Les deux horodatages sont en Mac absolute time au format float64.

Pièges

  • La suppression d'un cookie n'efface pas la ligne instantanément dans Chromium ; il existe une fenêtre de tombstone avant que la ligne ne soit réclamée. On peut parfois récupérer des cookies récemment supprimés depuis le WAL.
  • host_key dans Chromium n'est pas toujours l'hôte de l'URL. Un cookie posé par example.com pour .example.com affiche le point initial ; utilisez l'hôte sans le point comme clé de comparaison.
  • Un expires_at Safari à 0 signifie cookie de session. Ne l'affichez pas comme 2001-01-01.

Pour aller plus loin