Une empreinte TLS qui concorde avec le user agent
Avant même qu'une page exécute le moindre JavaScript, le handshake TLS a déjà décrit le client. Le handshake de Clearcote est celui de Chromium, et les quelques champs qui changent d'une version de Chrome à l'autre suivent la version annoncée par le persona : la couche réseau et le user agent racontent la même histoire.
Dans toutes les formules, activé par défaut. Rien à configurer.
Le réglage par défaut est déjà le bon
import { launch } from "clearcote";
// default: the ClientHello follows the persona's claimed Chrome major
const browser = await launch({ fingerprint: "account-42", tlsProfile: "match-persona" });
// or pin a major (only together with a matching brandVersion), or leave the build's own TLS untouched:
// tlsProfile: "chrome-150"
// tlsProfile: "native"Points clés
Le handshake propre à Chromium
BoringSSL tel que Chrome le livre : la liste de chiffrements, les bornes de version et l'ordre des extensions propre à chaque connexion sont authentiques, pas une réimplémentation.
Suit la version annoncée
Les champs qui diffèrent entre les versions majeures récentes de Chrome, comme le groupe key-share post-quantique et le codepoint ALPS, suivent la version majeure annoncée au lieu de rester à celle du build.
Aucune couture entre les couches
La surface JavaScript et le handshake viennent d'un seul et même navigateur : aucune incohérence entre un user agent patché et une pile réseau non patchée.
HTTP/2 issu de la même pile
Les trames SETTINGS, les mises à jour de fenêtre et l'ordre des en-têtes viennent de l'implémentation HTTP/2 propre à Chromium, pas d'une bibliothèque cliente séparée.
La marque se trouve dans les en-têtes
Edge, Opera et Vivaldi partagent le handshake de Chromium ; la marque est portée par le user agent et les client hints, pas par le ClientHello.
Configurable, rarement nécessaire
Le réglage par défaut convient à presque tout le monde. L'option existe pour que vous n'épingliez jamais une version qui contredise votre version de marque.
Pourquoi le handshake compte
Une empreinte TLS (JA3, et son successeur JA4) résume le ClientHello : quelles versions, quels chiffrements, quelles extensions et quels groupes un client propose, et sous quelle forme. HTTP/2 ajoute une couche supplémentaire : la trame SETTINGS, les tailles de fenêtre et l'ordre des pseudo-en-têtes. Les deux sont lus côté serveur, avant l'exécution du moindre script, et les deux se comparent facilement au user agent.
C'est sur cette comparaison que beaucoup de stacks d'automatisation achoppent. Une bibliothèque HTTP dotée d'un user agent Chrome envoie toujours le handshake de sa propre bibliothèque, et une couche stealth en JavaScript modifie ce que lit la page, mais pas ce qui a été envoyé sur le réseau. Clearcote est du Chromium de bout en bout : il n'y a pas de second client en dessous.
Ce qu'ajoute Clearcote, c'est la cohérence de version. Chaque version de Chrome modifie quelques détails du handshake. Quand un persona annonce une autre version de Chrome que celle du build sur lequel il tourne, match-persona ajuste uniquement ces champs à la version majeure annoncée et laisse tout le reste tel que Chromium le génère.
Un user agent falsifié face à Clearcote
Cas d'usage
Sites qui notent le handshake
Beaucoup de réseaux edge lisent JA3 ou JA4 avant le chargement de la page. Un handshake cohérent retire une contradiction du tableau.
Une version de marque définie par vous
Si vous définissez brandVersion sur un persona Chrome ou Edge, les principaux champs du handshake dépendant de la version le suivent. Le reste du navigateur déclare toujours la version réelle du moteur : laisser brandVersion non défini reste donc le choix par défaut cohérent.
Recherche réseau
Comparez l'évolution des champs du handshake dépendant de la version d'une version majeure de Chrome à l'autre, avec le même binaire.
Clearcote est conçu pour la confidentialité, les tests, la recherche et l'automatisation licite. Vous êtes responsable de l'usage que vous en faites et du respect des conditions d'utilisation des sites que vous visitez.
Offres qui l'incluent
Dans toutes les formules, avec le réglage par défaut.
Comparer les offresFAQ
Qu'est-ce qu'une empreinte JA3 ou JA4 ?
Un résumé compact du ClientHello TLS d'un client : ses versions, ses suites de chiffrement, ses extensions et les groupes qu'il prend en charge. Les serveurs s'en servent pour distinguer les navigateurs des bibliothèques HTTP et pour vérifier qu'un client est bien ce que son user agent annonce. Voir les questions-réponses sur JA3 et JA4.
Clearcote rend-il l'empreinte TLS aléatoire ?
Non. Des handshakes aléatoires ne correspondent à aucun vrai navigateur, ce qui les rend faciles à repérer. Chrome lui-même mélange l'ordre de ses extensions TLS à chaque connexion, et Clearcote conserve ce comportement exactement tel que Chrome l'applique.
Un persona Edge ou Opera modifie-t-il le ClientHello ?
Non. Ces navigateurs reposent sur Chromium et partagent son handshake. La marque est portée par le user agent, les client hints et les en-têtes, et c'est là que Clearcote la définit.
Dans quels cas modifier tlsProfile ?
Presque jamais. match-persona suit déjà la version de marque que vous annoncez. N'épinglez chrome-<major> que si vous définissez la version de marque par un autre moyen, et utilisez native pour laisser le handshake du build exactement tel qu'il a été compilé.
Aller plus loin dans la documentation
Fonctionnalités associées
Canvas, WebGL, WebGPU, audio, polices, écran et matériel dérivés d'un seul seed dans le moteur C++, avec la locale et le fuseau horaire assortis : chaque surface concorde avec toutes les autres.
Définissez un proxy avec geoip activé : le fuseau horaire, les langues et WebRTC suivent l'IP de sortie. SOCKS5 avec nom d'utilisateur et mot de passe fonctionne directement sur le build sous licence.
Un Chromium prêt à brancher sur Playwright et Puppeteer : un seul import à changer en Python, Node ou .NET, avec le navigateur téléchargé et vérifié par SHA-256 pour vous.
Exécutez Clearcote comme endpoint CDP permanent depuis l'image Docker officielle, serve() ou une CLI, et connectez n'importe quel framework sans toucher au code.
À lire aussi
Essayer Clearcote
S'utilise tel quel avec Playwright et Puppeteer, cohérent jusqu'au handshake TLS, avec un build open source comme point de départ.
Gratuit pour un navigateur avec GitHub. Sans carte.