Run #4 FAIL
| Run ID | 4 |
|---|---|
| Timestamp | 2026-05-13T01:40:30.892Z |
| Profile ID | — |
| Cohort | desktop |
| IP | 103.196.9.139 |
| IP / Geo | — |
| JA3 Hash | 64ba54d8…
full64ba54d864ec585cf76aa66af34ce7bc
|
| JA4 | t13d1516h2_8daaf6152771_d8a2da3f94cd |
| HTTP/2 FP | 1:65536;2:0;4:6291456;6:262144|15663105|1:1:0:256,3:1:0:256,5:1:3:220,7:1:0:220,9:1:0:220|m,a,s,p |
| Headless Prob | 16% |
| Composite Score | 54 / 100 |
Verdict
| Overall | FAIL |
|---|---|
| Composite Score | 54 / 100 Composite score rough calibration: ≥85 ≈ browserscan 90+/iphey Trustworthy; 70-84 ≈ Suspicious; <70 ≈ Unreliable |
| Headless Probability | 16% |
| IP / Geo | — |
Categories
| Category | Verdict |
|---|---|
| identity | PASS |
| hardware | WARN |
| network | WARN |
| automation | FAIL |
Inconsistencies (lies)
- [WARN] no geo data — không cross-check được timezone với IP
- [WARN] WebGL1 vs WebGL2 lệch nhau — có thể spoof lệch context: unmaskedVendor: WebGL1='Apple Inc.' ≠ WebGL2='Google Inc. (Google)'; unmaskedRenderer: WebGL1='Apple GPU' ≠ WebGL2='ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver)'
- [WARN] WebRTC gather lỗi: webrtc-ice after 5000ms — không verify leak được
- [FAIL] permissions.query('notifications') ≠ Notification.permission — dấu hiệu môi trường tự động/patched
- [WARN] window.chrome shape bất thường: chrome.loadTimes vắng, chrome.csi vắng
Rule Details (18 rules)
| Rule ID | Category | Verdict | Detail |
|---|---|---|---|
ua-platform-consistency |
identity | PASS | skipped (không đủ data để cross-check platform) |
ua-version-consistency |
identity | PASS | skipped (UA không claim Chrome) |
tls-browser-consistency |
identity | PASS | TLS fingerprint nhất quán với claimed browser |
timezone-ip-consistency |
network | WARN | no geo data — không cross-check được timezone với IP |
locale-ip-consistency |
network | PASS | geo unavailable — chỉ check header↔JS |
screen-dpr-mobile-consistency |
hardware | PASS | screen/DPR/mobile nhất quán |
webgl-platform-consistency |
hardware | PASS | WebGL GPU nhất quán với platform: gpu=desktop |
webgl1-webgl2-consistency |
hardware | WARN | WebGL1 vs WebGL2 lệch nhau — có thể spoof lệch context: unmaskedVendor: WebGL1='Apple Inc.' ≠ WebGL2='Google Inc. (Google)'; unmaskedRenderer: WebGL1='Apple GPU' ≠ WebGL2='ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver)' |
fonts-platform-consistency |
identity | PASS | skipped (không xác định được claimed OS) |
hwconcurrency-devicememory-plausibility |
hardware | PASS | hardwareConcurrency và deviceMemory không có — skipped |
webrtc-ip-leak |
network | WARN | WebRTC gather lỗi: webrtc-ice after 5000ms — không verify leak được |
datacenter-ip |
network | PASS | geo data không có — datacenter check skipped |
permissions-consistency |
automation | FAIL | permissions.query('notifications') ≠ Notification.permission — dấu hiệu môi trường tự động/patched |
navigator-completeness |
automation | PASS | navigator fields đầy đủ và đúng shape Chrome |
chrome-object-shape |
automation | WARN | window.chrome shape bất thường: chrome.loadTimes vắng, chrome.csi vắng |
headless-aggregate |
automation | PASS | headless prob 16% — trong ngưỡng Real Chrome (≤45) |
canvas-audio-noise-sanity |
hardware | PASS | canvas/audio hash có entropy bình thường — noise patch OK |
mobile-cohort-consistency |
identity | PASS | desktop cohort — mobile-cohort rule N/A |
Raw Signals
screen
| Signal | Value |
|---|---|
| width | {"value":390} |
| height | {"value":844} |
| availWidth | {"value":390} |
| availHeight | {"value":844} |
| colorDepth | {"value":24} |
| pixelDepth | {"value":24} |
| taskbar_height_hint | {"value":0} |
| orientation | {
"value": {
"type": "portrait-primary",
"angle": 0
}
} |
| devicePixelRatio | {"value":3} |
| outerWidth | {"value":390} |
| outerHeight | {"value":844} |
| innerWidth | {"value":390} |
| innerHeight | {"value":844} |
| screenX | {"value":0} |
| screenY | {"value":0} |
locale
| Signal | Value |
|---|---|
| language | {"value":"en-US"} |
| languages | {
"value": [
"en-US",
"en"
]
} |
| dateTimeFormat | {
"value": {
"locale": "en-US",
"calendar": "gregory",
"numberingSystem": "latn",
"timeZone": "America/Los_Angeles",
"year": "numeric",
"month": "numeric",
"day": "numeric"
}
} |
| numberFormat | {
"value": {
"locale": "en-US",
"numberingSystem": "latn",
"style": "decimal",
"minimumIntegerDigits": 1,
"minimumFractionDigits": 0,
"maximumFractionDigits": 3,
"useGrouping": "auto",
"notation": "standard",
"signDisplay": "auto",
"roundingIncrement": 1,
"roundingMode": "halfExpand",
"roundingPriority": "auto",
"trailingZeroDisplay": "auto"
}
} |
| collator | {
"value": {
"locale": "en-US",
"usage": "sort",
"sensitivity": "variant",
"ignorePunctuation": false,
"collation": "default",
"numeric": false,
"caseFirst": "false"
}
} |
| numberSample | {"value":"1,234.5"} |
| dateSample | {"value":"12/31/1969, 4:00:00 PM"} |
timezone
| Signal | Value |
|---|---|
| timeZone | {"value":"America/Los_Angeles"} |
| offsetNow | {"value":420} |
| offsetJan | {"value":480} |
| offsetJul | {"value":420} |
| hasDST | {"value":true} |
| tzNameLong | {"value":"Pacific Daylight Time"} |
| dateToString | {"value":"Tue May 12 2026 18:40:25 GMT-0700 (Pacific Daylight Time)"} |
webgl
| Signal | Value |
|---|---|
| webgl1 | {
"vendor": null,
"renderer": null,
"version": null,
"shadingLanguageVersion": null,
"unmaskedVendor": "Apple Inc.",
"unmaskedRenderer": "Apple GPU",
"params": {
"MAX_TEXTURE_SIZE": {
"error": "getParameter is not a function"
},
"MAX_VIEWPORT_DIMS": {
"error": "getParameter is not a function"
},
"MAX_RENDERBUFFER_SIZE": {
"error": "getParameter is not a function"
},
"MAX_VERTEX_ATTRIBS": {
"error": "getParameter is not a function"
},
"MAX_VERTEX_UNIFORM_VECTORS": {
"error": "getParameter is not a function"
},
"MAX_FRAGMENT_UNIFORM_VECTORS": {
"error": "getParameter is not a function"
},
"MAX_VARYING_VECTORS": {
"error": "getParameter is not a function"
},
"MAX_COMBINED_TEXTURE_IMAGE_UNITS": {
"error": "getParameter is not a function"
},
"MAX_CUBE_MAP_TEXTURE_SIZE": {
"error": "getParameter is not a function"
},
"MAX_TEXTURE_IMAGE_UNITS": {
"error": "getParameter is not a function"
},
"ALIASED_LINE_WIDTH_RANGE": {
"error": "getParameter is not a function"
},
"ALIASED_POINT_SIZE_RANGE": {
"error": "getParameter is not a function"
},
"RED_BITS": {
"error": "getParameter is not a function"
},
"GREEN_BITS": {
"error": "getParameter is not a function"
},
"BLUE_BITS": {
"error": "getParameter is not a function"
},
"ALPHA_BITS": {
"error": "getParameter is not a function"
},
"DEPTH_BITS": {
"error": "getParameter is not a function"
},
"STENCIL_BITS": {
"error": "getParameter is not a function"
}
},
"extensions": [
"ANGLE_instanced_arrays",
"EXT_blend_minmax",
"EXT_clip_control",
"EXT_color_buffer_half_float",
"EXT_depth_clamp",
"EXT_float_blend",
"EXT_frag_depth",
"EXT_polygon_offset_clamp",
"EXT_sRGB",
"EXT_shader_texture_lod",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"OES_element_index_uint",
"OES_fbo_render_mipmap",
"OES_standard_derivatives",
"OES_texture_float",
"OES_texture_float_linear",
"OES_texture_half_float",
"OES_texture_half_float_linear",
"OES_vertex_array_object",
"WEBGL_color_buffer_float",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_depth_texture",
"WEBGL_draw_buffers",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode"
],
"shaderPrecisions": {
"VERTEX_SHADER_HIGH_FLOAT": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"VERTEX_SHADER_MEDIUM_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"VERTEX_SHADER_LOW_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"VERTEX_SHADER_HIGH_INT": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"VERTEX_SHADER_MEDIUM_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"VERTEX_SHADER_LOW_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"FRAGMENT_SHADER_HIGH_FLOAT": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"FRAGMENT_SHADER_MEDIUM_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"FRAGMENT_SHADER_LOW_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"FRAGMENT_SHADER_HIGH_INT": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"FRAGMENT_SHADER_MEDIUM_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"FRAGMENT_SHADER_LOW_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
}
},
"hash": "04f4eba76e146b"
} |
| webgl2 | {
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
"shadingLanguageVersion": "WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)",
"unmaskedVendor": "Google Inc. (Google)",
"unmaskedRenderer": "ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver)",
"params": {
"MAX_TEXTURE_SIZE": 8192,
"MAX_VIEWPORT_DIMS": [
8192,
8192
],
"MAX_RENDERBUFFER_SIZE": 8192,
"MAX_VERTEX_ATTRIBS": 16,
"MAX_VERTEX_UNIFORM_VECTORS": 4096,
"MAX_FRAGMENT_UNIFORM_VECTORS": 4096,
"MAX_VARYING_VECTORS": 31,
"MAX_COMBINED_TEXTURE_IMAGE_UNITS": 64,
"MAX_CUBE_MAP_TEXTURE_SIZE": 16384,
"MAX_TEXTURE_IMAGE_UNITS": 32,
"ALIASED_LINE_WIDTH_RANGE": [
1,
1
],
"ALIASED_POINT_SIZE_RANGE": [
1,
1023
],
"RED_BITS": 8,
"GREEN_BITS": 8,
"BLUE_BITS": 8,
"ALPHA_BITS": 8,
"DEPTH_BITS": 24,
"STENCIL_BITS": 0,
"MAX_3D_TEXTURE_SIZE": 2048,
"MAX_SAMPLES": 4,
"MAX_COLOR_ATTACHMENTS": 6,
"MAX_DRAW_BUFFERS": 6,
"MAX_VERTEX_UNIFORM_COMPONENTS": 16384,
"MAX_FRAGMENT_UNIFORM_COMPONENTS": 16384,
"MAX_ARRAY_TEXTURE_LAYERS": 2048
},
"extensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"OVR_multiview2",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_stencil_texturing"
],
"shaderPrecisions": {
"VERTEX_SHADER_HIGH_FLOAT": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"VERTEX_SHADER_MEDIUM_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"VERTEX_SHADER_LOW_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"VERTEX_SHADER_HIGH_INT": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"VERTEX_SHADER_MEDIUM_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"VERTEX_SHADER_LOW_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"FRAGMENT_SHADER_HIGH_FLOAT": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"FRAGMENT_SHADER_MEDIUM_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"FRAGMENT_SHADER_LOW_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"FRAGMENT_SHADER_HIGH_INT": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"FRAGMENT_SHADER_MEDIUM_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"FRAGMENT_SHADER_LOW_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
}
},
"hash": "04f4eba76e146b"
} |
canvas2d
| Signal | Value |
|---|---|
| text_hash | 1e5cd717143aef |
| geometry_hash | 17f6df8d7b5d36 |
| winding | {
"evenodd": false,
"nonzero": true
} |
| emoji_supported | true |
sensors
| Signal | Value |
|---|---|
| Accelerometer | true |
| Gyroscope | true |
| Magnetometer | false |
| AmbientLightSensor | false |
| LinearAccelerationSensor | true |
| GravitySensor | true |
| AbsoluteOrientationSensor | true |
| RelativeOrientationSensor | true |
| DeviceMotionEvent | true |
| DeviceOrientationEvent | true |
netinfo
| Signal | Value |
|---|---|
| effectiveType | {"value":"4g"} |
| rtt | {"value":200} |
| downlink | {"value":1.5} |
| downlinkMax | {} |
| saveData | {"value":false} |
| type | {} |
clientRects
| Signal | Value |
|---|---|
| rects | [
{
"label": "emoji",
"x": -9999,
"y": -9996,
"width": 59.890625,
"height": 17
},
{
"label": "ligature",
"x": -9939.109375,
"y": -9994,
"width": 33.1875,
"height": 15
},
{
"label": "arabic",
"x": -9905.921875,
"y": -9996,
"width": 42,
"height": 16
},
{
"label": "monospace",
"x": -9863.921875,
"y": -9993,
"width": 28.8125,
"height": 15
},
{
"label": "transform",
"x": -9835.109375,
"y": -9995,
"width": 24.453125,
"height": 22
}
] |
| hash | 0fbfdd794f7e62 |
math
| Signal | Value |
|---|---|
| tan_neg1e308 | {"value":0.5086861259107568} |
| sin_1e308 | {"value":0.4533964905016491} |
| cosh_100 | {"value":1.3440585709080678e+43} |
| acosh_1e308 | {"value":709.889355822726} |
| expm1_1 | {"value":1.718281828459045} |
| atanh_0_5 | {"value":0.5493061443340548} |
| sinh_1 | {"value":1.1752011936438014} |
| exp_1 | {"value":2.718281828459045} |
| log1p_1e_15 | {"value":9.999999999999995e-16} |
| pow_pi_neg100 | {"value":1.9275814160560206e-50} |
| tanh_0_123 | {"value":0.12238344189440875} |
| hash | 19bf68ab593bb0 |
errorStack
| Signal | Value |
|---|---|
| firstFramePattern | {"value":"at Object.ut (<url>)"} |
| frameCount | {"value":6} |
| hasCaptureStackTrace | {"value":"function"} |
| hasPrepareStackTrace | {"value":"undefined"} |
| stackTraceLimit | {"value":10} |
| nestedFrameCount | {"value":10} |
| stackStartsWithMessage | {"value":true} |
headlessTells
| Signal | Value |
|---|---|
| signals | {
"webdriver": false,
"chrome": {
"exists": true,
"has_runtime": true,
"has_load_times": false,
"has_csi": false,
"has_app": true
},
"plugins_count": 5,
"mime_types_count": 2,
"languages_empty": false,
"outer_dims_zero": false,
"screen_depth_normal": true,
"screen_avail_normal": true,
"connection_present": true,
"connection_type": "4g",
"native_bindings": {
"permissions_query": false,
"rtc_peer_connection": true,
"notification_request": true,
"canvas_to_data_url": true,
"webgl_get_parameter": false,
"date_get_timezone_offset": true
},
"console_cdp": false,
"iframe_check": {
"webdriver_diff": false,
"chrome_diff": false
},
"proto_chain": {
"webdriver_descriptor_ok": true,
"navigator_tostring_ok": true
},
"notification_is_promise": true,
"doc_hidden": false,
"doc_visibility": "visible",
"doc_focused": false
} |
| suspicious_count | 4 |
| notes | [ "plugins_count: Chrome 142 new-headless có 5 PDF plugins giả — signal yếu nếu đứng một mình", "outer_dims_zero: Chrome new-headless (2023+) đã fix; signal này chỉ catch old headless", "console_cdp: rebrowser-puppeteer đã vá Runtime.enable — false negative với rebrowser" ] |
permissions
| Signal | Value |
|---|---|
| states | {
"geolocation": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"notifications": "default",
"camera": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"microphone": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"clipboard-read": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"clipboard-write": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"accelerometer": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"gyroscope": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"magnetometer": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"midi": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"background-sync": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"persistent-storage": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"push": "error:Failed to execute 'query' on 'Permissions': Illegal invocation"
} |
| notification_mismatch | true |
| query_native | false |
uaCH
| Signal | Value |
|---|---|
| brands | [] |
| mobile | false |
| platform | |
| high | {
"architecture": "",
"bitness": "",
"brands": [],
"formFactors": [],
"fullVersionList": [],
"mobile": false,
"model": "",
"platform": "",
"platformVersion": "",
"uaFullVersion": "",
"wow64": false
} |
battery
| Signal | Value |
|---|---|
| charging | true |
| level | 1 |
| chargingTime | 0 |
| dischargingTime | null |
speechVoices
| Signal | Value |
|---|---|
| count | 0 |
| sample | [] |
| langs | [] |
mediaDevices
| Signal | Value |
|---|---|
| devices | {
"counts": {
"audioinput": 0,
"audiooutput": 0,
"videoinput": 0,
"other": 0
},
"labelsEmpty": true,
"deviceIds": []
} |
| supportedConstraints | {
"aspectRatio": true,
"autoGainControl": true,
"brightness": true,
"channelCount": true,
"colorTemperature": true,
"contrast": true,
"deviceId": true,
"displaySurface": true,
"echoCancellation": true,
"exposureCompensation": true,
"exposureMode": true,
"exposureTime": true,
"facingMode": true,
"focusDistance": true,
"focusMode": true,
"frameRate": true,
"groupId": true,
"height": true,
"iso": true,
"latency": true,
"noiseSuppression": true,
"pan": true,
"pointsOfInterest": true,
"resizeMode": true,
"restrictOwnAudio": true,
"sampleRate": true,
"sampleSize": true,
"saturation": true,
"sharpness": true,
"suppressLocalAudioPlayback": true,
"tilt": true,
"torch": true,
"voiceIsolation": true,
"whiteBalanceMode": true,
"width": true,
"zoom": true
} |
webgpu
| Signal | Value |
|---|---|
| adapter_info | null |
| features | [] |
| limits | {} |
| preferred_format | rgba8unorm |
| unsupported | true |
storage
| Signal | Value |
|---|---|
| localStorage | {"value":true} |
| sessionStorage | {"value":true} |
| indexedDB | {"value":true} |
| cookieEnabled | {"value":true} |
| storageEstimate | {
"quota": 225478221004,
"usage": 0
} |
| persisted | false |
fonts
| Signal | Value |
|---|---|
| available | [ "Arial", "Arial Black", "Calibri", "Cambria", "Cambria Math", "Comic Sans MS", "Consolas", "Courier New", "Georgia", "Impact", "Lucida Console", "Lucida Sans Unicode", "Microsoft Sans Serif", "Palatino Linotype", "Segoe UI", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Wingdings", "Helvetica", "Helvetica Neue", "Avenir", "Avenir Next", "Gill Sans", "Menlo", "Monaco", "Optima", "Futura", "Apple Chancery", "Baskerville", "Didot", "American Typewriter", "DejaVu Sans", "DejaVu Serif", "DejaVu Sans Mono", "Liberation Sans", "Liberation Serif", "Liberation Mono", "Ubuntu", "Ubuntu Mono", "Noto Sans", "Noto Serif", "FreeSans", "FreeSerif", "FreeMono", "Courier", "Garamond", "Bookman Old Style", "Century Gothic" ] |
| method2_detected | [ "Arial", "Courier New", "Times New Roman", "Helvetica", "Liberation Sans", "Liberation Serif", "Liberation Mono", "Ubuntu", "Ubuntu Mono", "FreeSans", "FreeSerif", "FreeMono", "Courier" ] |
| count | 50 |
audio
| Signal | Value |
|---|---|
| compressor_sum | 124.04347527516074 |
| compressor_hash | 0993127a704f15 |
| analyser_hash | 11cffa6b7daca5 |
| sample_rate | 44100 |
| max_channel_count | 2 |
| destination_channel_count | 2 |
| state | suspended |
webrtc ERROR
webrtc-ice after 5000ms
Full fp_blob JSON
{
"schema": 1,
"profile_id": null,
"collected_at": "2026-05-13T01:40:25.633Z",
"ua_header_echo": "Mozilla/5.0 (iPhone; CPU iPhone OS 26_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/144.0.7559.95 Mobile/15E148 Safari/604.1",
"page_url": "https://tls.noffers.us/",
"navigator": {
"userAgent": {
"value": "Mozilla/5.0 (iPhone; CPU iPhone OS 26_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/144.0.7559.95 Mobile/15E148 Safari/604.1"
},
"appVersion": {
"value": "5.0 (iPhone; CPU iPhone OS 26_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/144.0.7559.95 Mobile/15E148 Safari/604.1"
},
"platform": {
"value": "iPhone"
},
"vendor": {
"value": "Google Inc."
},
"vendorSub": {
"value": ""
},
"productSub": {
"value": "20030107"
},
"oscpu": {
"value": {
"unsupported": true
}
},
"language": {
"value": "en-US"
},
"languages": {
"value": [
"en-US",
"en"
]
},
"hardwareConcurrency": {
"value": 16
},
"deviceMemory": {
"value": 8
},
"maxTouchPoints": {
"value": 5
},
"doNotTrack": {
"value": null
},
"pdfViewerEnabled": {
"value": true
},
"webdriver": {
"value": false
},
"cookieEnabled": {
"value": true
},
"plugins": {
"value": [
{
"name": "PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chrome PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Chromium PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "Microsoft Edge PDF Viewer",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
},
{
"name": "WebKit built-in PDF",
"filename": "internal-pdf-viewer",
"description": "Portable Document Format"
}
]
},
"mimeTypes": {
"value": [
{
"type": "application/pdf",
"suffixes": "pdf",
"description": "Portable Document Format"
},
{
"type": "text/pdf",
"suffixes": "pdf",
"description": "Portable Document Format"
}
]
}
},
"screen": {
"width": {
"value": 390
},
"height": {
"value": 844
},
"availWidth": {
"value": 390
},
"availHeight": {
"value": 844
},
"colorDepth": {
"value": 24
},
"pixelDepth": {
"value": 24
},
"taskbar_height_hint": {
"value": 0
},
"orientation": {
"value": {
"type": "portrait-primary",
"angle": 0
}
},
"devicePixelRatio": {
"value": 3
},
"outerWidth": {
"value": 390
},
"outerHeight": {
"value": 844
},
"innerWidth": {
"value": 390
},
"innerHeight": {
"value": 844
},
"screenX": {
"value": 0
},
"screenY": {
"value": 0
}
},
"locale": {
"language": {
"value": "en-US"
},
"languages": {
"value": [
"en-US",
"en"
]
},
"dateTimeFormat": {
"value": {
"locale": "en-US",
"calendar": "gregory",
"numberingSystem": "latn",
"timeZone": "America/Los_Angeles",
"year": "numeric",
"month": "numeric",
"day": "numeric"
}
},
"numberFormat": {
"value": {
"locale": "en-US",
"numberingSystem": "latn",
"style": "decimal",
"minimumIntegerDigits": 1,
"minimumFractionDigits": 0,
"maximumFractionDigits": 3,
"useGrouping": "auto",
"notation": "standard",
"signDisplay": "auto",
"roundingIncrement": 1,
"roundingMode": "halfExpand",
"roundingPriority": "auto",
"trailingZeroDisplay": "auto"
}
},
"collator": {
"value": {
"locale": "en-US",
"usage": "sort",
"sensitivity": "variant",
"ignorePunctuation": false,
"collation": "default",
"numeric": false,
"caseFirst": "false"
}
},
"numberSample": {
"value": "1,234.5"
},
"dateSample": {
"value": "12/31/1969, 4:00:00 PM"
}
},
"timezone": {
"timeZone": {
"value": "America/Los_Angeles"
},
"offsetNow": {
"value": 420
},
"offsetJan": {
"value": 480
},
"offsetJul": {
"value": 420
},
"hasDST": {
"value": true
},
"tzNameLong": {
"value": "Pacific Daylight Time"
},
"dateToString": {
"value": "Tue May 12 2026 18:40:25 GMT-0700 (Pacific Daylight Time)"
}
},
"webgl": {
"webgl1": {
"vendor": null,
"renderer": null,
"version": null,
"shadingLanguageVersion": null,
"unmaskedVendor": "Apple Inc.",
"unmaskedRenderer": "Apple GPU",
"params": {
"MAX_TEXTURE_SIZE": {
"error": "getParameter is not a function"
},
"MAX_VIEWPORT_DIMS": {
"error": "getParameter is not a function"
},
"MAX_RENDERBUFFER_SIZE": {
"error": "getParameter is not a function"
},
"MAX_VERTEX_ATTRIBS": {
"error": "getParameter is not a function"
},
"MAX_VERTEX_UNIFORM_VECTORS": {
"error": "getParameter is not a function"
},
"MAX_FRAGMENT_UNIFORM_VECTORS": {
"error": "getParameter is not a function"
},
"MAX_VARYING_VECTORS": {
"error": "getParameter is not a function"
},
"MAX_COMBINED_TEXTURE_IMAGE_UNITS": {
"error": "getParameter is not a function"
},
"MAX_CUBE_MAP_TEXTURE_SIZE": {
"error": "getParameter is not a function"
},
"MAX_TEXTURE_IMAGE_UNITS": {
"error": "getParameter is not a function"
},
"ALIASED_LINE_WIDTH_RANGE": {
"error": "getParameter is not a function"
},
"ALIASED_POINT_SIZE_RANGE": {
"error": "getParameter is not a function"
},
"RED_BITS": {
"error": "getParameter is not a function"
},
"GREEN_BITS": {
"error": "getParameter is not a function"
},
"BLUE_BITS": {
"error": "getParameter is not a function"
},
"ALPHA_BITS": {
"error": "getParameter is not a function"
},
"DEPTH_BITS": {
"error": "getParameter is not a function"
},
"STENCIL_BITS": {
"error": "getParameter is not a function"
}
},
"extensions": [
"ANGLE_instanced_arrays",
"EXT_blend_minmax",
"EXT_clip_control",
"EXT_color_buffer_half_float",
"EXT_depth_clamp",
"EXT_float_blend",
"EXT_frag_depth",
"EXT_polygon_offset_clamp",
"EXT_sRGB",
"EXT_shader_texture_lod",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"OES_element_index_uint",
"OES_fbo_render_mipmap",
"OES_standard_derivatives",
"OES_texture_float",
"OES_texture_float_linear",
"OES_texture_half_float",
"OES_texture_half_float_linear",
"OES_vertex_array_object",
"WEBGL_color_buffer_float",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_depth_texture",
"WEBGL_draw_buffers",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode"
],
"shaderPrecisions": {
"VERTEX_SHADER_HIGH_FLOAT": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"VERTEX_SHADER_MEDIUM_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"VERTEX_SHADER_LOW_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"VERTEX_SHADER_HIGH_INT": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"VERTEX_SHADER_MEDIUM_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"VERTEX_SHADER_LOW_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"FRAGMENT_SHADER_HIGH_FLOAT": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"FRAGMENT_SHADER_MEDIUM_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"FRAGMENT_SHADER_LOW_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"FRAGMENT_SHADER_HIGH_INT": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"FRAGMENT_SHADER_MEDIUM_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"FRAGMENT_SHADER_LOW_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
}
},
"hash": "04f4eba76e146b"
},
"webgl2": {
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
"shadingLanguageVersion": "WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)",
"unmaskedVendor": "Google Inc. (Google)",
"unmaskedRenderer": "ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver)",
"params": {
"MAX_TEXTURE_SIZE": 8192,
"MAX_VIEWPORT_DIMS": [
8192,
8192
],
"MAX_RENDERBUFFER_SIZE": 8192,
"MAX_VERTEX_ATTRIBS": 16,
"MAX_VERTEX_UNIFORM_VECTORS": 4096,
"MAX_FRAGMENT_UNIFORM_VECTORS": 4096,
"MAX_VARYING_VECTORS": 31,
"MAX_COMBINED_TEXTURE_IMAGE_UNITS": 64,
"MAX_CUBE_MAP_TEXTURE_SIZE": 16384,
"MAX_TEXTURE_IMAGE_UNITS": 32,
"ALIASED_LINE_WIDTH_RANGE": [
1,
1
],
"ALIASED_POINT_SIZE_RANGE": [
1,
1023
],
"RED_BITS": 8,
"GREEN_BITS": 8,
"BLUE_BITS": 8,
"ALPHA_BITS": 8,
"DEPTH_BITS": 24,
"STENCIL_BITS": 0,
"MAX_3D_TEXTURE_SIZE": 2048,
"MAX_SAMPLES": 4,
"MAX_COLOR_ATTACHMENTS": 6,
"MAX_DRAW_BUFFERS": 6,
"MAX_VERTEX_UNIFORM_COMPONENTS": 16384,
"MAX_FRAGMENT_UNIFORM_COMPONENTS": 16384,
"MAX_ARRAY_TEXTURE_LAYERS": 2048
},
"extensions": [
"EXT_clip_control",
"EXT_color_buffer_float",
"EXT_color_buffer_half_float",
"EXT_conservative_depth",
"EXT_depth_clamp",
"EXT_float_blend",
"EXT_polygon_offset_clamp",
"EXT_texture_compression_bptc",
"EXT_texture_compression_rgtc",
"EXT_texture_filter_anisotropic",
"EXT_texture_mirror_clamp_to_edge",
"NV_shader_noperspective_interpolation",
"OES_draw_buffers_indexed",
"OES_sample_variables",
"OES_shader_multisample_interpolation",
"OES_texture_float_linear",
"OVR_multiview2",
"WEBGL_clip_cull_distance",
"WEBGL_compressed_texture_astc",
"WEBGL_compressed_texture_etc",
"WEBGL_compressed_texture_etc1",
"WEBGL_compressed_texture_s3tc",
"WEBGL_compressed_texture_s3tc_srgb",
"WEBGL_debug_renderer_info",
"WEBGL_debug_shaders",
"WEBGL_lose_context",
"WEBGL_multi_draw",
"WEBGL_polygon_mode",
"WEBGL_stencil_texturing"
],
"shaderPrecisions": {
"VERTEX_SHADER_HIGH_FLOAT": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"VERTEX_SHADER_MEDIUM_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"VERTEX_SHADER_LOW_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"VERTEX_SHADER_HIGH_INT": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"VERTEX_SHADER_MEDIUM_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"VERTEX_SHADER_LOW_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"FRAGMENT_SHADER_HIGH_FLOAT": {
"rangeMin": 127,
"rangeMax": 127,
"precision": 23
},
"FRAGMENT_SHADER_MEDIUM_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"FRAGMENT_SHADER_LOW_FLOAT": {
"rangeMin": 15,
"rangeMax": 15,
"precision": 10
},
"FRAGMENT_SHADER_HIGH_INT": {
"rangeMin": 31,
"rangeMax": 30,
"precision": 0
},
"FRAGMENT_SHADER_MEDIUM_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
},
"FRAGMENT_SHADER_LOW_INT": {
"rangeMin": 15,
"rangeMax": 14,
"precision": 0
}
},
"hash": "04f4eba76e146b"
}
},
"canvas2d": {
"text_hash": "1e5cd717143aef",
"geometry_hash": "17f6df8d7b5d36",
"winding": {
"evenodd": false,
"nonzero": true
},
"emoji_supported": true
},
"sensors": {
"Accelerometer": true,
"Gyroscope": true,
"Magnetometer": false,
"AmbientLightSensor": false,
"LinearAccelerationSensor": true,
"GravitySensor": true,
"AbsoluteOrientationSensor": true,
"RelativeOrientationSensor": true,
"DeviceMotionEvent": true,
"DeviceOrientationEvent": true
},
"netinfo": {
"effectiveType": {
"value": "4g"
},
"rtt": {
"value": 200
},
"downlink": {
"value": 1.5
},
"downlinkMax": {},
"saveData": {
"value": false
},
"type": {}
},
"clientRects": {
"rects": [
{
"label": "emoji",
"x": -9999,
"y": -9996,
"width": 59.890625,
"height": 17
},
{
"label": "ligature",
"x": -9939.109375,
"y": -9994,
"width": 33.1875,
"height": 15
},
{
"label": "arabic",
"x": -9905.921875,
"y": -9996,
"width": 42,
"height": 16
},
{
"label": "monospace",
"x": -9863.921875,
"y": -9993,
"width": 28.8125,
"height": 15
},
{
"label": "transform",
"x": -9835.109375,
"y": -9995,
"width": 24.453125,
"height": 22
}
],
"hash": "0fbfdd794f7e62"
},
"math": {
"tan_neg1e308": {
"value": 0.5086861259107568
},
"sin_1e308": {
"value": 0.4533964905016491
},
"cosh_100": {
"value": 1.3440585709080678e+43
},
"acosh_1e308": {
"value": 709.889355822726
},
"expm1_1": {
"value": 1.718281828459045
},
"atanh_0_5": {
"value": 0.5493061443340548
},
"sinh_1": {
"value": 1.1752011936438014
},
"exp_1": {
"value": 2.718281828459045
},
"log1p_1e_15": {
"value": 9.999999999999995e-16
},
"pow_pi_neg100": {
"value": 1.9275814160560206e-50
},
"tanh_0_123": {
"value": 0.12238344189440875
},
"hash": "19bf68ab593bb0"
},
"errorStack": {
"firstFramePattern": {
"value": "at Object.ut (<url>)"
},
"frameCount": {
"value": 6
},
"hasCaptureStackTrace": {
"value": "function"
},
"hasPrepareStackTrace": {
"value": "undefined"
},
"stackTraceLimit": {
"value": 10
},
"nestedFrameCount": {
"value": 10
},
"stackStartsWithMessage": {
"value": true
}
},
"headlessTells": {
"signals": {
"webdriver": false,
"chrome": {
"exists": true,
"has_runtime": true,
"has_load_times": false,
"has_csi": false,
"has_app": true
},
"plugins_count": 5,
"mime_types_count": 2,
"languages_empty": false,
"outer_dims_zero": false,
"screen_depth_normal": true,
"screen_avail_normal": true,
"connection_present": true,
"connection_type": "4g",
"native_bindings": {
"permissions_query": false,
"rtc_peer_connection": true,
"notification_request": true,
"canvas_to_data_url": true,
"webgl_get_parameter": false,
"date_get_timezone_offset": true
},
"console_cdp": false,
"iframe_check": {
"webdriver_diff": false,
"chrome_diff": false
},
"proto_chain": {
"webdriver_descriptor_ok": true,
"navigator_tostring_ok": true
},
"notification_is_promise": true,
"doc_hidden": false,
"doc_visibility": "visible",
"doc_focused": false
},
"suspicious_count": 4,
"notes": [
"plugins_count: Chrome 142 new-headless có 5 PDF plugins giả — signal yếu nếu đứng một mình",
"outer_dims_zero: Chrome new-headless (2023+) đã fix; signal này chỉ catch old headless",
"console_cdp: rebrowser-puppeteer đã vá Runtime.enable — false negative với rebrowser"
]
},
"permissions": {
"states": {
"geolocation": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"notifications": "default",
"camera": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"microphone": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"clipboard-read": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"clipboard-write": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"accelerometer": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"gyroscope": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"magnetometer": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"midi": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"background-sync": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"persistent-storage": "error:Failed to execute 'query' on 'Permissions': Illegal invocation",
"push": "error:Failed to execute 'query' on 'Permissions': Illegal invocation"
},
"notification_mismatch": true,
"query_native": false
},
"uaCH": {
"brands": [],
"mobile": false,
"platform": "",
"high": {
"architecture": "",
"bitness": "",
"brands": [],
"formFactors": [],
"fullVersionList": [],
"mobile": false,
"model": "",
"platform": "",
"platformVersion": "",
"uaFullVersion": "",
"wow64": false
}
},
"battery": {
"charging": true,
"level": 1,
"chargingTime": 0,
"dischargingTime": null
},
"speechVoices": {
"count": 0,
"sample": [],
"langs": []
},
"mediaDevices": {
"devices": {
"counts": {
"audioinput": 0,
"audiooutput": 0,
"videoinput": 0,
"other": 0
},
"labelsEmpty": true,
"deviceIds": []
},
"supportedConstraints": {
"aspectRatio": true,
"autoGainControl": true,
"brightness": true,
"channelCount": true,
"colorTemperature": true,
"contrast": true,
"deviceId": true,
"displaySurface": true,
"echoCancellation": true,
"exposureCompensation": true,
"exposureMode": true,
"exposureTime": true,
"facingMode": true,
"focusDistance": true,
"focusMode": true,
"frameRate": true,
"groupId": true,
"height": true,
"iso": true,
"latency": true,
"noiseSuppression": true,
"pan": true,
"pointsOfInterest": true,
"resizeMode": true,
"restrictOwnAudio": true,
"sampleRate": true,
"sampleSize": true,
"saturation": true,
"sharpness": true,
"suppressLocalAudioPlayback": true,
"tilt": true,
"torch": true,
"voiceIsolation": true,
"whiteBalanceMode": true,
"width": true,
"zoom": true
}
},
"webgpu": {
"adapter_info": null,
"features": [],
"limits": {},
"preferred_format": "rgba8unorm",
"unsupported": true
},
"storage": {
"localStorage": {
"value": true
},
"sessionStorage": {
"value": true
},
"indexedDB": {
"value": true
},
"cookieEnabled": {
"value": true
},
"storageEstimate": {
"quota": 225478221004,
"usage": 0
},
"persisted": false
},
"fonts": {
"available": [
"Arial",
"Arial Black",
"Calibri",
"Cambria",
"Cambria Math",
"Comic Sans MS",
"Consolas",
"Courier New",
"Georgia",
"Impact",
"Lucida Console",
"Lucida Sans Unicode",
"Microsoft Sans Serif",
"Palatino Linotype",
"Segoe UI",
"Tahoma",
"Times New Roman",
"Trebuchet MS",
"Verdana",
"Wingdings",
"Helvetica",
"Helvetica Neue",
"Avenir",
"Avenir Next",
"Gill Sans",
"Menlo",
"Monaco",
"Optima",
"Futura",
"Apple Chancery",
"Baskerville",
"Didot",
"American Typewriter",
"DejaVu Sans",
"DejaVu Serif",
"DejaVu Sans Mono",
"Liberation Sans",
"Liberation Serif",
"Liberation Mono",
"Ubuntu",
"Ubuntu Mono",
"Noto Sans",
"Noto Serif",
"FreeSans",
"FreeSerif",
"FreeMono",
"Courier",
"Garamond",
"Bookman Old Style",
"Century Gothic"
],
"method2_detected": [
"Arial",
"Courier New",
"Times New Roman",
"Helvetica",
"Liberation Sans",
"Liberation Serif",
"Liberation Mono",
"Ubuntu",
"Ubuntu Mono",
"FreeSans",
"FreeSerif",
"FreeMono",
"Courier"
],
"count": 50
},
"audio": {
"compressor_sum": 124.04347527516074,
"compressor_hash": "0993127a704f15",
"analyser_hash": "11cffa6b7daca5",
"sample_rate": 44100,
"max_channel_count": 2,
"destination_channel_count": 2,
"state": "suspended"
},
"webrtc": {
"candidates": [],
"has_mdns": false,
"srflx_ips": [],
"host_ips": [],
"sdp_fingerprint_algo": null,
"sdp_ice_options": null,
"sdp_m_lines": 0,
"sdp_msid_semantic": null,
"prototype_patched": false,
"error": "webrtc-ice after 5000ms"
},
"__server": {
"ja3": "560bdce5f73487f2a2aa1fe957a0c64c",
"ja3_hash": "64ba54d864ec585cf76aa66af34ce7bc",
"ja4": "t13d1516h2_8daaf6152771_d8a2da3f94cd",
"http2_fp": "1:65536;2:0;4:6291456;6:262144|15663105|1:1:0:256,3:1:0:256,5:1:3:220,7:1:0:220,9:1:0:220|m,a,s,p",
"ip": "103.196.9.139",
"accept_language": "en-US,en;q=0.9;q=0.9",
"geo": {
"available": false,
"country": null,
"city": null,
"timezone": null,
"asn": null,
"org": null,
"rdns": null,
"datacenter": {
"flag": false,
"layers": {
"usageType": null,
"asnMatch": false,
"rdnsPattern": false
}
}
}
},
"__verdict": {
"rules": [
{
"id": "ua-platform-consistency",
"category": "identity",
"verdict": "pass",
"detail": "skipped (không đủ data để cross-check platform)"
},
{
"id": "ua-version-consistency",
"category": "identity",
"verdict": "pass",
"detail": "skipped (UA không claim Chrome)"
},
{
"id": "tls-browser-consistency",
"category": "identity",
"verdict": "pass",
"detail": "TLS fingerprint nhất quán với claimed browser"
},
{
"id": "timezone-ip-consistency",
"category": "network",
"verdict": "warn",
"detail": "no geo data — không cross-check được timezone với IP",
"evidence": {
"jsTimezone": null
}
},
{
"id": "locale-ip-consistency",
"category": "network",
"verdict": "pass",
"detail": "geo unavailable — chỉ check header↔JS"
},
{
"id": "screen-dpr-mobile-consistency",
"category": "hardware",
"verdict": "pass",
"detail": "screen/DPR/mobile nhất quán"
},
{
"id": "webgl-platform-consistency",
"category": "hardware",
"verdict": "pass",
"detail": "WebGL GPU nhất quán với platform: gpu=desktop"
},
{
"id": "webgl1-webgl2-consistency",
"category": "hardware",
"verdict": "warn",
"detail": "WebGL1 vs WebGL2 lệch nhau — có thể spoof lệch context: unmaskedVendor: WebGL1='Apple Inc.' ≠ WebGL2='Google Inc. (Google)'; unmaskedRenderer: WebGL1='Apple GPU' ≠ WebGL2='ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver)'",
"evidence": {
"wgl1": {
"vendor": null,
"renderer": null,
"unmaskedVendor": "Apple Inc.",
"unmaskedRenderer": "Apple GPU"
},
"wgl2": {
"vendor": "WebKit",
"renderer": "WebKit WebGL",
"unmaskedVendor": "Google Inc. (Google)",
"unmaskedRenderer": "ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver)"
}
}
},
{
"id": "fonts-platform-consistency",
"category": "identity",
"verdict": "pass",
"detail": "skipped (không xác định được claimed OS)"
},
{
"id": "hwconcurrency-devicememory-plausibility",
"category": "hardware",
"verdict": "pass",
"detail": "hardwareConcurrency và deviceMemory không có — skipped"
},
{
"id": "webrtc-ip-leak",
"category": "network",
"verdict": "warn",
"detail": "WebRTC gather lỗi: webrtc-ice after 5000ms — không verify leak được"
},
{
"id": "datacenter-ip",
"category": "network",
"verdict": "pass",
"detail": "geo data không có — datacenter check skipped"
},
{
"id": "permissions-consistency",
"category": "automation",
"verdict": "fail",
"detail": "permissions.query('notifications') ≠ Notification.permission — dấu hiệu môi trường tự động/patched",
"evidence": {
"notification_mismatch": true
}
},
{
"id": "navigator-completeness",
"category": "automation",
"verdict": "pass",
"detail": "navigator fields đầy đủ và đúng shape Chrome"
},
{
"id": "chrome-object-shape",
"category": "automation",
"verdict": "warn",
"detail": "window.chrome shape bất thường: chrome.loadTimes vắng, chrome.csi vắng",
"evidence": {
"chrome": {
"exists": true,
"has_runtime": true,
"has_load_times": false,
"has_csi": false,
"has_app": true
}
}
},
{
"id": "headless-aggregate",
"category": "automation",
"verdict": "pass",
"detail": "headless prob 16% — trong ngưỡng Real Chrome (≤45)",
"evidence": {
"probability": 16,
"signals": {
"webdriver": false,
"chrome_exists": true,
"chrome_has_load_times": false,
"chrome_has_csi": false,
"plugins_count": 5,
"languages_empty": false,
"console_cdp": false,
"native_bindings": {
"permissions_query": false,
"rtc_peer_connection": true,
"notification_request": true,
"canvas_to_data_url": true,
"webgl_get_parameter": false,
"date_get_timezone_offset": true
},
"proto_chain": {
"webdriver_descriptor_ok": true,
"navigator_tostring_ok": true
},
"iframe_check": {
"webdriver_diff": false,
"chrome_diff": false
},
"outer_dims_zero": false,
"doc_hidden": false,
"connection_present": true
},
"reasons": [
"chrome.loadTimes vắng (+5)",
"chrome.csi vắng (+5)",
"native binding bị wrap: permissions_query (+3)",
"native binding bị wrap: webgl_get_parameter (+3)"
]
}
},
{
"id": "canvas-audio-noise-sanity",
"category": "hardware",
"verdict": "pass",
"detail": "canvas/audio hash có entropy bình thường — noise patch OK"
},
{
"id": "mobile-cohort-consistency",
"category": "identity",
"verdict": "pass",
"detail": "desktop cohort — mobile-cohort rule N/A"
}
],
"categories": {
"identity": "pass",
"hardware": "warn",
"network": "warn",
"automation": "fail"
}
}
}