如果你已经看到了Quentin Tarantino的电影inclourious Basterds,你可能会记得那个带有纳粹官员的英国间谍卧底的酒吧场景,通过无意识的姿态下降他的面具。
虽然他穿着纳粹制服并讲得德语,但他通过一个小细节来赋予自己:他的手指。订购三个品脱时,而不是使用他的拇指,指数和中指(作为德国人),他使用他的环,中间和食指。桌子上的另一名官员立即将这种微妙的细节视为令人无法理解的Anglophone。
我们在网上工作的任何一个都一样。如果您忽略了一些次要的生命值,请放弃守卫并发出您的身份很容易。在本文中,我们将介绍设备检测的世界,并展示为什么以及模仿设备几乎不可能。
在潜入之前,让我们快速查看为什么系统尝试检测设备 - 这也是人们试图检测或模拟设备的答案。
在浏览器的早期和整个后续的“浏览器战争”中,无数的浏览器供应商意味着开发人员需要了解供应商连接到其网站的哪个客户,并且他们开始根据检测到的浏览器定制和优化响应。从这个意义上讲,这是一个技术性必需品。
如果您忽略了一些次要的生命值,请放弃守卫并发出您的身份很容易。
我们的旧朋友用户 - 代理字符串是从这几天的生存 - 但现在检测和预防技术现在都更先进。
在检测侧,大多数网站采用检测机制来帮助他们的客户服务。例如,Netflix为每个设备的各种分辨率提供了数百种不同的视频格式,从移动设备到智能电视。没有设备检测,那将如何?
同样地,考虑为笔记本电脑和桌面设备提供完全有能力的产品的公司,它们只提供给移动用户的有限版本。
到目前为止我们要求的问题让我们在这里,答案是问题。想要获得特定于某些设备的更多元素的人或机器人,或者想要突破所谓的“设备河岸”(例如,他们不想因移动设备而有限制的可能性)。同样,一些威胁演员希望利用一些安全措施对某些设备不那么紧张。
谁可以阻止人们利用设备欺骗,如果网站不能向移动设备显示验证码,即使超过了速率限制,或者公司仅提供特定的折扣或仅适用于某些类型的设备?
这将我们带来了今天的一天:一个隐喻的“军备竞赛”在试图检测设备的人之间出来的顶部和试图防止该检测的人。虽然这导致了更高的机器学习或AI的高级技术投资,但还有一些其他方法令人惊讶地没有引起大量关注,如谷歌的设备分类方法,毕加索。我们很快就会详细介绍它,但首先,让我们不要忘记那些可以让你离开的小细节。
从修改用户代理字符串以采用更高级的技术,设备欺骗以不同的方式可以实现 - 但这也意味着不同的发现方式。
许多人认为,欺骗设备和更改用户委托字符串一样简单:我们对他们说,“声称很便宜;展示你的证明!“
例如,大多数欺骗尝试声称该设备是移动的,立即让游戏远离游戏。他们忘记了模仿设备特定的功能,例如回答关于触摸支持的问题。
var touch_capable =(' ontouchstart'在窗口)|| (Navigator.maxTouchPoints> 0)|| (Navigator.msmaxTouchPoints> 0);如果(touch_capable){警报("支持");}否则{警报("不支持");}
正如我们所说,特定于设备的功能和信息都是必不可少的。如果您声称您的设备是Apple iPhone 6,则必须知道特定于设备的详细信息,至少至少是iPhone 6的屏幕大小。
你有没有见过iPhone 6,其屏幕分辨率为1920×1080?我们还没有,也没有检测系统!
另一个例子:如果您已成功传递Navigator.platform测试,则没有人会发现它奇怪的是您有MacBook的奇怪:
但是,您不能声称您正在使用Max OS X和Windows同时使用!
在欺骗设备时,有更多的异常忽略。如果您曾使用过移动浏览器(当然是),您知道您无法调整浏览器窗口的大小。它总是打开,最大化,覆盖整个屏幕。这意味着检测系统,窗口的x和y值应该始终为0,如果不是..
关于设备特定属性的例子可以继续,但现在是时候微笑了一点。
您是否意识到Emojis,同时键入相同的方式,在不同的设备中可视化不同?
例如,这里是一个微笑的表情符号,使用:和),您的系统将其转换为甜蜜的图片。 🙂
假设您的客户声明它在Android操作系统上运行。检测系统可以获得EMOJI的散列值,并将其与真正的Android系统中获得的散列值进行比较。如果结果不一样,它会突出显示您的设备。这是真正的魔法!只需使用U + 1F600,同时生成可视化,添加一个定义其他人的值。
这里SHA256在Windows 10 OS上从不同版本的Google Chrome获得的相同表情符号中。
每个系统都附带了一些预先安装的字体,具有默认使用某些特定的字体。例如,虽然iOS 13 Academy雕刻了:1.0字体预装,但它没有Al Bayan Bold。但是,麦斯卡塔利娜做了!
同样,而Tahoma是Windows XP中的默认字体,因为Vista,它是Segoe UI。 Microsoft的Windows 10的最新字体列表附带:
“请注意:并非所有桌面字体都将在Windows 10的非桌面版本中,如Xbox,Hololens,SurfaceHub等。”
因此,如果探测字体可以立即决定,检测系统可以立即决定,如果他们没有看到字体列出的Microsoft的页面,那么您不是正常的Windows 10。
截至目前,我们审查了一些问题,欺骗了,但并不难以找到解决方法。通过覆盖浏览器和运输字体,表情符号和二进制属性,这是一个问题,即您可以解决,尽管需要大量的努力和成本。
Google Picasso通过执行一些严重依赖于OS和图形硬件的渲染操作来了解浏览器的设备分类。
2006年,谷歌反滥用团队的Elie Bursztein分享了他的工作,公开分享了毕加索的工作,详细介绍了Google在Google Play中争夺设备欺骗的尝试。
Picasso旨在通过在大量依赖于浏览器的操作系统和图形硬件来了解浏览器的设备分类。通过使用种子,Picasso在每轮随机地在画布上创建几何符号。种子,圆形,宽度和高度等值是毕加索运行的成分。因此,Picasso可以获得由客户端的不可分布的功能生成的图形输出,如操作系统和图形硬件。除非S /他在手中具有相同的设置,否则对扬声器无法防止这种情况。
除非数据库具有通过使用正版设备获得的预先计算值,否则该系统并不意味着任何内容。此数据库稍后将其用作真实引用。
我们必须注意毕加索在这里的一些重要观点。例如,它通过使用HTML画布产生图形工作。人们倾向于认为画布用于增加指纹熵以获得唯一性。随着多年前的MultiLogin工程师,而不是有前途的独特指纹,Canvas Hash在设置中与硬件相同的成分相同。 2006年,Google Guys开始使用Canvas指纹的此功能来对设备进行分类以了解设备欺骗尝试。
虽然这相当古老的工作(2006年),但它已经由CloudFlare改编。当我们考虑他们的市场份额有多重大时间时,毕加索将作为设备欺骗企图的不可辩护机制。
只要对侧具有由正版设备获得的预先计算的散列组成的数据库,似乎难以逃离毕加索的设备和操作系统欺骗尝试。难道你认为谷歌和CloudFlare有足够的数据集来检查设备真实性吗?
来自诗人Rumi的这句话可以为我们的情况进行量身定制。长期以来,我们建议我们的用户在Multilogin中创建浏览器配置文件时,请务必选择浏览器配置文件工作的正确操作系统。
虽然Multilogin采用一些步骤来防止通过带有配置文件的字体来防止检测系统,但提供正宗的Canvas结果默认值等;最好的是尽可能地留下真实。离开操作系统并不意味着检测系统的任何内容;但是,检测假设设置之间的错配意味着很多!
关键规则在人群中混合,以免成为手指指向的人。从一个设备欺骗的角度来看,正如Rumi所说,我们建议:似乎是你的或似乎就像你一样!