1. 浏览器指纹中的 SpeechVoices 是什么
SpeechVoices 是浏览器通过 Web Speech API 暴露的可用文本转语音声音列表,特别是 speechSynthesis.getVoices() 方法。
每个浏览器或操作系统都带有不同的内置语音声音集,取决于:
- 操作系统版本
- 已安装的 语言包
- 第三方语音引擎 的存在
- 浏览器 区域设置 和区域配置
这种看似次要的指纹向量被高级检测系统用于增加指纹熵,并区分在更常见特征(如用户代理或屏幕分辨率)上看起来相似的浏览器会话。
2. 平台如何检测 SpeechVoices 指纹
网站通过以下方式收集 SpeechVoices 数据:
speechSynthesis.getVoices()
在启动时调用此方法,或通过后台脚本中的隐藏行为,允许网站收集声音列表及其细节,如voiceURI、name、lang、localService和default。声音唯一性分析
检测平台比较确切的声音列表——包括它们的顺序——以确定多个会话是否来自同一台机器。声音数量作为指纹指标
可用声音的数量是一个区分属性——例如,macOS 和 Windows 系统通常比 Linux 或 Docker 环境拥有更多声音。Promise 和事件计时延迟
指纹引擎可以监控声音加载所需的时间(因为它们通常是异步加载的),检测注入或合成环境的迹象。仿真模式违规
在某些自动化环境中,尝试更改语音声音会导致default标志或检测到的语言不匹配,从而揭示伪装尝试。
教育、语音驱动界面和内容可读性工具中的平台可能利用语音声音来提高 浏览器剖析准确性,使其成为一种微妙但有效的 次要指纹信号。
3. FlashID 如何生成和掩码 SpeechVoices 指纹
FlashID 隔离并更改浏览器语音声音,以确保嘈杂或重叠的声音数据不会将不同配置文件关联在一起。
FlashID 处理 speechSynthesis.getVoices() 指纹伪装的方式如下:
自定义声音列表
FlashID 允许添加或移除语音声音,甚至添加合成声音。您可以为每个浏览器配置文件实时设置name、lang、default和voiceURI。声音顺序随机化
修改内置默认语音声音顺序,以匹配用户定义的偏好,或基于目标系统(如 macOS 上的 Chrome、Windows 上的 Edge)显得自然。声音注入计时仿真
FlashID 在脚本级计时注入中延迟声音加载,以模拟原生行为,使声音访问对指纹引擎看起来合法。与配置文件集的声音语言匹配
选定的声音会自动匹配配置文件的navigator.languages和Accept-Language标头,以保持地理位置和语言验证的连贯身份。静默检测处理
如果沙箱或虚拟化环境中没有真实的语音声音可用,FlashID 会传递合成但真实的结果,而不会触发空列表检测。跨标签的声音一致性
当网站打开多个标签或窗口时,FlashID 确保每个都有隔离的语音指纹,除非有意应用组掩码。
通过控制这种高熵但低知名度的指纹字段,FlashID 确保浏览器配置文件具有 合理 和 独特 的语音声音数据——这对于在高安全性平台中保持低调至关重要。
您可能还喜欢

