Signaux navigateur Linux armv81 : limites de plateforme
Interpréter Linux armv81, les Client Hints et WebGL sans transformer la surface du navigateur en identité matérielle.
BotBrowser Team
Vous voulez la documentation structurée pour Empreinte ?
Cet article fait partie de la bibliothèque éditoriale. Pour les étapes de configuration, la référence et les mises à jour continues, passez directement à la section docs.
Quand une page affiche Linux armv81, la question utile est de savoir quels champs sont visibles et quelles valeurs optionnelles n'ont pas été disponibles. La page /docs/platform/android-emulation/ explique pourquoi cette famille peut être présentée par BotBrowser, mais la chaîne n'est pas un identifiant d'appareil.
TL;DR
navigator.platformest une chaîne visible par la page, pas un modèle de CPU ni une identité.- La réduction User-Agent et les User-Agent Client Hints ont des disponibilités différentes.
- WebGL peut confirmer une capacité de contexte, mais une extension absente ne prouve pas un autre hôte.
- Conserver
unknown,not-requested,not-exposedet les valeurs réelles comme états distincts évite les inférences. - Un relevé de cohérence décrit une observation contextualisée, sans verdict d'un détecteur.
Contents
- La chaîne de plateforme
- User-Agent réduit et Client Hints
- WebGL comme capacité
- Relevé de cohérence
- Échecs et limites
- Diagnostiquer une différence de plateforme
- Limite documentaire BotBrowser
- Conclusion pratique
La chaîne de plateforme
Navigator.platform fournit une chaîne au contenu web. Elle n'encode pas une puce, un noyau, une carte ou une personne. L'exemple Linux armv81 dans la documentation d'émulation décrit une surface observée, pas une règle universelle pour chaque profil ou WebView.
| Champ | Observation | Ce qui n'est pas établi |
|---|---|---|
navigator.platform | Texte exact comme Linux armv81 | CPU physique ou modèle |
navigator.userAgent | Texte UA retourné | Système complet |
navigator.userAgentData | Hints de faible entropie exposées | Hints élevées autorisées |
uaData.architecture | unknown si non demandée | Une architecture physique |
| WebGL | Contexte et extensions | GPU unique ou verdict |
Une branche de compatibilité peut utiliser la chaîne avec une détection de fonctionnalité. Elle ne doit pas en faire un contrôle d'accès ni une clé d'identité.
User-Agent réduit et Client Hints
User-Agent Reduction retire certains détails du UA par défaut. NavigatorUAData fournit des valeurs de base et une demande optionnelle via getHighEntropyValues(). Le guide de réduction User-Agent traite l'en-tête, tandis que le guide des limites du renderer WebGL sépare capacité graphique et identité.
| Observation | Interprétation sûre | Substitution incorrecte |
|---|---|---|
| Interface absente | Non exposée dans ce contexte | Ce n'est pas Chromium |
platform présent | Token de plateforme large | Système complet |
architecture retournée | Hint reçue après demande | Puce physique |
| Promesse rejetée | Demande indisponible ou refusée | Architecture non ARM |
async function readPlatformSurface() {
const result = {
platformString: typeof navigator.platform === 'string' ? navigator.platform : 'not-exposed',
userAgent: navigator.userAgent || 'not-exposed',
uaData: 'not-exposed',
highEntropy: 'not-requested',
};
if (!navigator.userAgentData) return result;
result.uaData = { mobile: navigator.userAgentData.mobile, platform: navigator.userAgentData.platform };
try {
result.highEntropy = await navigator.userAgentData.getHighEntropyValues([
'architecture',
'model',
'platformVersion',
]);
} catch {
result.highEntropy = 'request-failed';
}
return result;
}
WebGL comme capacité
WebGLRenderingContext décrit des appels et paramètres liés à un contexte graphique. Une création réussie, une extension nulle ou un échec sont des observations de capacité, pas une preuve de matériel ARM.
| Résultat | Il permet de dire | Il ne permet pas de dire |
|---|---|---|
| Contexte créé | Cette page a obtenu ce contexte | GPU physique |
Extension null | Extension absente ici | Absence partout |
| Paramètre retourné | Paramètre exposé | Identité unique |
| Création échouée | Demande impossible ici | Cause sans diagnostic |
Relevé de cohérence
Conserver le contexte, la chaîne exacte, le résultat de la demande UA-CH et l'appel WebGL rend un incident reproductible. architecture: unknown signifie que la valeur n'a pas été obtenue; ce n'est pas x86. Comparer d'abord le release et le contexte, puis les champs, et enfin l'opération graphique.
| Clé | Exemple | Règle |
|---|---|---|
context | Window / secure | Contexte de lecture |
platformString | Linux armv81 | Texte littéral |
uaData.architecture | unknown | Ne pas compléter l'absence |
webgl.context | webgl2 | Contexte demandé |
webgl.extension | available / absent | Extension nommée |
Échecs et limites
Une hint absente doit rester inconnue. Un échec WebGL2 doit être relié au contexte, à la policy et à l'exception, pas à une autre machine. Deux chaînes différentes exigent la comparaison du profil, du release et du mode intégré. Un modèle fourni par une hint reste une valeur du navigateur et non une attestation physique.
Diagnostiquer une différence de plateforme
Conservez le contexte de la fenêtre, puis les chaînes exactes de navigator.platform et navigator.userAgent. Notez la présence de navigator.userAgentData, les clés de faible entropie et le résultat de la demande de haute entropie. Une interface absente et une promesse refusée ne sont pas le même état.
Pour WebGL, notez le contexte demandé, le résultat de getContext() et le seul paramètre utile à la décision. Conservez la classe d'exception si l'appel échoue au lieu d'inventer une valeur.
| Étape | Preuve conservée | Arrêt |
|---|---|---|
| Fenêtre sécurisée | isSecureContext et contexte | Ne pas demander de hint dans un contexte invalide |
| Plateforme | Chaîne exacte | Ne pas la convertir en modèle |
| UA-CH | Interface, clés et résultat | Garder inconnues les valeurs absentes |
| WebGL | Type et extension utile | Ne pas inventorier le renderer |
| Comparaison | Même release, profil et fixture | Ne pas comparer des entrées différentes |
| Observation | Lecture prudente |
|---|---|
architecture non demandée | Aucune demande, pas une architecture négative |
architecture refusée | La politique ou le contexte a refusé la demande |
Linux armv81 avec WebGL2 en échec | Deux observations à répéter dans le même contexte |
Ce relevé reproduit une incompatibilité; il n'identifie ni une personne ni un appareil.
Limite documentaire BotBrowser
La documentation BotBrowser décrit une surface d'émulation Android. Elle ne garantit pas chaque Client Hint, un backend WebGL ni le résultat d'un service tiers. Une configuration et une observation de page sont deux preuves différentes; aucune ne promet anonymat, taux de réussite ou identité.
BotBrowser peut présenter cette surface de plateforme pour une revue de compatibilité; il ne garantit pas chaque Client Hint, un renderer WebGL ou un résultat externe.
FAQ
Linux armv81 prouve-t-il Android ?
Non. C'est une chaîne visible, compatible avec une surface Android, mais elle ne prouve ni noyau ni appareil.
Une hint absente signifie-t-elle x86 ?
Non. Absente, non demandée et refusée sont des états distincts.
WebGL identifie-t-il un appareil ARM ?
Non. Il décrit la capacité d'un contexte précis.
Ce relevé identifie-t-il une personne ou un appareil ?
Non. Il conserve des valeurs visibles et leurs états pour le diagnostic, pas pour fabriquer une identité.
Sources
Pour le contexte, consultez la carte des surfaces de plateforme et le guide des propriétés navigator.
Conclusion pratique
Traiter Linux armv81 comme un champ visible. Conserver la chaîne, l'UA réduit, l'état de chaque hint et la capacité WebGL. Laisser inconnue toute valeur non fournie et utiliser le relevé pour la compatibilité, pas pour déduire un matériel ou une personne.
Cet article fait partie du guide : Qu'est-ce qu'une empreinte de navigateur ?
Articles Connexes
WEBGL_debug_renderer_info : limites de vie privée et du renderer
IdentitéSurfaces d’identité du navigateur : vue de cohérence pratique
EmpreinteClient Hints Fingerprinting : en-têtes HTTP et identité
EmpreinteDétection Android WebView avec CreepJS : limites
PlateformeMigrer de User-Agent Reduction vers Client Hints
EmpreinteMoteur de rendu WebGL absent : vie privée ou contexte ?
Exécutez la même vérification dans BotBrowser
Chargez un profil, gardez dans le navigateur les signaux que vous venez de lire, puis confirmez le résultat sur votre propre machine avant le déploiement.