当前位置: 首页 > Web前端 > JavaScript

保险柜钥匙插门,大学生一手盗取11亿淘宝用户手机号

时间:2023-03-27 01:16:42 JavaScript

大家好,我是民间发明家秦建祥。申请发明专利20余项。听到这个数字,有些朋友觉得很神奇,但不明白这些发明与我们日常生活的关系。专利。其实我脑子里有100个创新可以申请专利,但是申请专利的时间成本太高,只能优先申请一些商业价值高的创新。为了消除大家对专利的神秘感,我打算写一篇科普一下。巧合的是,2月23日,我收到了国家专利局的一项名为《基于HMAC算法的密钥保护方法、装置、设备和存储介质》的专利的受理通知书。该专利与淘宝11亿客户手机号被盗的惊天大案有关。我提出的专利漏洞存在于各行各业,很多受害者在不知不觉中被攻击,我提出的保护方案具有很好的通用性。在此,也请各位读者朋友多多转发,让行业早日受益。如果专利授权成功,我将授权国防/政务/科研/教育等公共行业免费使用。为本文传播做出贡献的读者,也可申请免费授权(可商用)。一个黑风高的夜晚,昏暗的房间里,弥漫着浓浓的羊汤香味。一个大学生模样的青年坐在电脑前,数以亿计的手机号码诡异地出现在布满指纹的电脑屏幕上。在千里之外的不夜城,淘宝购物者陆续收到陌生微信好友的申请,然后被拉进微信群领取购物券。形成了一个实现的闭环。究竟是什么神秘力量,让中国两大互联网巨头的用户产生了神奇的交集?手机是如何完成这段不可思议的时间旅行的?天之骄子为何要如此冒险?请收看这一期《走近科学》,啊不不,我手抖打错了,请收看本期《了不起的小发明》,哈哈其中一个容易想到的方法就是爬虫爬行。在人们的常识里,爬虫是只有百度和谷歌才有的高科技工具。确实,百度、谷歌要收录整个互联网上百亿的网页,也要保证一定的实时性。但是,抓取淘宝用户手机号的爬虫不需要这么高的技术含量,因为淘宝有官方的手机客户端,淘宝为自己的手机客户端提供了接口(API)。API有两大优势,使得爬虫抓取的难度远低于网页:一是简单。网页不仅包含数据信息,还包含排版信息。从网页中提取数据需要一些复杂的规则和算法。二是稳定性。该网页可能每月进行一次修订。改版后,原来提取数据的规则和算法都得重写。API非常稳定,通常一次定义后数年不变。所以可以通过API抓取淘宝用户的手机号,不需要写复杂的规则就可以直接获取手机号,爬虫开发一次就可以长期使用。在黑客眼中,淘宝的十亿多用户就是羊圈里的几千只肥羊,下一步就是要想办法攻破羊圈的大门。高价值的用户信息必须具有非常高的安全级别。淘宝采用国际主流的HMAC技术来识别调用者是官方客户端还是未经授权的第三方爬虫。HMAC技术的H代表hash,中文翻译为hash,是全世界银行业和金融业广泛使用的基石技术。目前最流行的区块链也是依靠哈希来保证数据的可信度。听起来淘宝的用户数据库和谍战大片里的银行保险柜一样安全?遗憾的是,淘宝将HMAC算法使用的密钥以明文形式放在了HTTPCOOKIE中(技术细节后面会讲到),就像一把安全钥匙插在了门上。门大开,猛虎入群。一个大学学历的人,一手从淘宝官方界面窃取了11.8亿用户手机号和用户名的隐私。这正是:蓬门今开为王,花径未曾客扫。几只皂雕在追逐紫燕,一群凶猛的老虎在吃羊羔。2.天网不漏,伸手必中真相浮出水面。详情请看腾讯的这篇报道:超过11亿片!您的淘宝信息可能已被泄露。根据这份判决书,我们简单回顾一下重点:时间轴作案人2019年9月开始作案,淘宝风控人员2020年7月发现,8月举报。同月,嫌疑人被捕。2021年6月一审判决。犯罪分子失去自由,淘宝失去商誉。两罪犯被判处有期徒刑3年以上,追缴违法所得,并处罚金数十万元。被盗用户规模淘宝报告为3500万(仅风控人员2020年7月6日至13日监测数据)。司法机关查获,认定为11.8亿元。嫌疑人辩称,只抓取了数千万条数据,其余11亿条是从其他地方下载的,但被法院驳回。作案技术手段是通过手机淘宝官方接口抓取。判决书中的mtop指的是手机淘宝开放平台。手机淘宝专用的接口平台不同于淘宝开放平台(TOP)。只有兄弟公司和极少数合作伙伴可以申请访问。淘宝举报称,嫌疑人非法绕过风控机制,证明其并未合法申请访问权限。据推测,他们利用淘宝的“插门钥匙”冒充淘宝官方客户端进行数据抓取。爬虫的法律风险在我们互联网行业流传着这样几个笑话:爬虫玩的好,想吃就吃;《Python爬虫:从入门到入狱》。我科普的目的是为了提高大家的安全意识和法律意识,分享安全防护技术的同时做一些法律工作。爬虫违法的高危领域如下:大量攫取个人隐私并出售获利。罪名是侵犯公民个人信息,属于刑事犯罪。非法获取/出售个人隐私50条可被处罚。在这起案件中,涉案公民的信息条数超标10倍以上,触犯了特别严重的法律,因此刑期也达到了3年以上。过于频繁的爬虫访问导致对方服务器崩溃。罪名是破坏计算机信息系统,属于刑事犯罪,导致为10,000人服务的系统停止运行一小时,情节严重。比如这个CTO和程序员都被判刑的案例:某公司查封城市居住证系统,导致服务器崩溃,多个政府系统服务中断。CTO和程序员分别被判处有期徒刑3年和1年。出于商业目的抓取同行数据。构成不正当竞争,属于民事侵权行为。比如中国法院网报道的这起案件:大众点评诉百度一审被判赔偿百度323万元。有编程功底的朋友一定要多学习法律知识,保持技术造福社会的初衷,不要迷信“避风港原则”。伸出你的手,你就会被抓住。3.蚂蚁窝不过是一千里的堤坝。早在2015年,我就通过五云漏洞平台向淘宝反映,HMAC密钥明文被放置在cookie中,但淘宝认为这不是密钥,危害程度较低。我认为这是一个应用程序秘密。淘宝认为只是代币而已,只是措辞上的不同而已。即使你把它命名为噪声,也改变不了它100%承担了程序中HMAC算法秘钥的作用。这种将明文密钥放在通信报文中的方法,相当于给了攻击者永久有效的访问权限,导致接口被攻击者用来抓取数据。淘宝的技术团队认为,本质上是跟着淘宝抓人。数据不一样。详细的对话过程可以参考我2015年9月29日发的这条微博。当时这件事也在阿里内网上引起了关注,但是不知道为什么,淘宝一直坚持用这个明显不安全而且解决方案不专业,尽管11亿消费者的隐私被盗,也没能引起淘宝的重视。直到今天(2022年3月1日),淘宝还在用我6年前发现安全漏洞的方案。证据如下:尊敬的警官,电梯运行存在巨大的安全隐患。不,没有电梯,这只是电梯。4、亡羊补牢,为时不晚。提供互联网服务的朋友一定要定期认真检讨自己的安全系统。安全防护方案越多越好,不代表买了防火墙就万事大吉了。淘宝这种级别的公司,竟然遭遇如此重大的安全事件,说明安全绝非轻而易举的事。希望阿里的小伙伴们能帮我把这篇文章转发给阿里的相关技术团队,早日关上这扇打开了7年的大门。这还不算太晚。当然,11亿消费者的手机号码就是这么容易被盗的。错误不仅限于明文密钥。API网关缺乏优秀的限流、限频和隐私过滤功能也是一个重要原因。这也是相当难做到的。在过去的几年里,我投资了一个API安全网关。我服务过央企和小型创业公司。我遇到过很多技术挑战,也申请过很多专利。我尝过酸甜苦辣。懂技术的读者可能会想,把密钥藏在js代码里,反复编码加密几次,然后混淆代码,不就安全了吗?事实上,它不是。由于浏览器运行环境和JavaScript语法的特殊性,网页上的JavaScript是被解释执行的,是可以被改写的。JavaScript无法隐藏真正的秘密。只用了一行代码,几秒就找到了淘宝的key。有了密钥,我发现它实际上是明文放置在cookie中的。正如您在上面的两个屏幕截图中看到的那样,我在控制台上打印了密钥或警告。使用kotlin开发的Android客户端也可能存在类似的风险。我还没有测试过,估计比web客户端更难破解。基于md5或sha系列哈希函数的签名验证机制在互联网上被广泛使用,从各大开放平台的签名算法文档可以看出。大多数网络版本都可以在几秒钟内通过一行代码破解密钥,无论您将密钥隐藏多深。鉴于此,我在2015年发明了一种能够真正防止网页HMAC密钥被盗的方法,并成功应用到我公司的所有产品中。直到2022年,发现行业内仍无同类技术,才申请了专利。该专利的核心是保护密钥的安全,秘密在于以下几点:权利要求1:使用衰减密钥的哈希算法是摘要算法,从输入到输出都存在信息衰减,不能被逆转。通常大家下载一个几百兆的软件,用来验证下载文件完整性的哈希(也叫校验和)只有16到32字节,可见衰减系数有多大。我们可以预先对明文密钥进行部分衰减操作,然后将衰减后的密钥放到网页的JavaScript代码中,在网页的JavaScript代码中实现一个变体哈希函数,这样就可以使用衰减密钥计算产生与标准哈希函数兼容的结果。这样,攻击者就无法从网页中窃取真正的明文密钥,因为你无法窃取不存在的东西。攻击者得到衰减后的密钥,无法用标准的哈希函数计算出正确的签名,因此无法破解HMAC安全机制。这是本专利的权利要求1(专利法规定权利要求1为基石,权利要求2、3、4均以权利要求1为基础)。这是一篇科普文章。我尽量让它容易理解。我不会深入探讨详细的技术细节。我在专利技术公开书中写了证明过程。如果你有兴趣阅读它,请在评论中告诉我,我会在稍后发布。过来。主张2:保护变体哈希函数的代码混淆大大降低了混淆后代码的可读性,大大增加了攻击者人工阅读变体哈希函数源代码的时间成本。事实上,即使不混淆,写得极其优雅的md5和sha256函数的源代码也非常复杂。感觉能看懂md5源码的爬虫判技术员屈指可数。另外,混淆后的哈希函数代码还可以编译成webassembly二进制产品,攻击者只能反编译再读取,难度又增加了一个数量级。主张3:编写周期自动替换的自动化程序,定时执行,替换key,变体哈希函数的算法。替换的时间间隔比攻击者破解的时间要短得多,就算破解了也没用。5、放下迷魂阵,请入瓮中。在能够检测到爬虫行为或者攻击行为的前提下,第一次使用攻防技术未必是最好的选择。兵将就计,业内还有一些招你入瓮的方法:蜜罐检测到攻击行为后,不提示错误代码和警告信息,而是故意卖给漏洞,利用一些假数据与商业价值不大养活攻击者,让他们开心,不再提高技术去攻击真正敏感的地方。如果抓取到毒丸的公共接口,为了保证正常的用户服务不受影响,在识别出非法爬虫后,将毒丸埋在数据中:返回混合数据的爬虫,这样就会被被领导拒绝或被非法买家归咎于数据质量差和业务不可持续。如果对方的变现方式是非法作弊,在第一时间被发现时,不必惊蛇。等对方小有成就,发展了一定数量的收费客户后,就会一举封杀,退款纠纷只会让它火上浇油。如果对方的变现模式是出售抓取的数据,抓取渠道不会立即被封禁,而是会收集证据,达到刑事案件的标准再诉诸法律。如果您喜欢这篇文章,除了转发之外,您还可以扫描下面的二维码关注我们的微信公众号:码狗说码我的同事会在那里和我一起写文章,都是关于信息安全/软件技术/一些智能硬件领域的科普,通俗易懂,也有技术含量。欢迎交流。