手机输入法是最危险的隐私黑洞——深度解读Citizen Lab最新云输入法安全研究报告
1. 研究背景
随着智能手机的普及和移动互联网的发展,云输入法已经成为人们日常生活中不可或缺的打字工具。它利用云端强大的语言模型和个性化学习能力,为用户提供了智能、便捷的输入体验。用户只需轻点几下,云输入法就能联想出他想要表达的词句。然而,用户的海量按键数据也随之通过网络传输到云端,这一过程引发了人们对于隐私安全的诸多担忧。倘若数据传输缺乏恰当的安全防护,用户的输入内容极易被网络中的窃听者所截获,导致隐私泄露,后果不堪设想。
多伦多大学Citizen Lab是网络安全领域久负盛名的学术机构,他们在输入法安全领域已经深耕多年。去年,该实验室曾发布过一份研究报告,揭露了搜狗输入法在数据传输中存在的安全漏洞。该漏洞源自输入法使用的私有传输协议,攻击者可以恢复出协议的密钥,继而解密用户的同步数据。这一发现引起了学界和业界的广泛关注。今年4月,Citizen Lab的研究者们再接再厉,发布了一份全新的安全研究报告。这一次,他们将目光投向了国内外主流的云输入法,对它们的安全现状进行了一次全面而系统的评估。
2. 研究对象与方法
考虑到云输入法的多样性和普及率,此次研究选取了9家业内知名厂商的代表性输入法产品。它们分别是:腾讯的QQ输入法、搜狗输入法(腾讯旗下);百度输入法;科大讯飞输入法;三星键盘;华为输入法;小米输入法;OPPO输入法;Vivo输入法;以及荣耀输入法。可以看到,这个名单囊括了国内最主流的第三方输入法,以及手机厂商自研的预装输入法。从用户覆盖面来说,上述输入法的装机量至少在数亿级别。
那么,研究者是如何评估如此多款输入法的安全性的呢?这就要说到他们采用的一系列技术手段了。首先是静态分析,通过反编译输入法的安装包,研究者可以审查其源代码,重点关注与数据加密传输相关的逻辑;然后是动态分析,研究者会在真实或模拟的Android设备上运行目标输入法,通过调试器实时监控它的运行状态和内存数据,捕捉可能存在的漏洞;最后也是最重要的,是网络流量分析,研究者使用Wireshark等抓包工具,对输入法客户端与服务端之间的网络数据传输进行截获解析,考察其是否存在可被中间人攻击利用的薄弱点。
值得一提的是,本次研究更关注一种比中间人攻击威胁等级更高的场景,即无需主动干预目标用户的网络连接,攻击者只需被动监听其网络流量,就能直接窃取键盘输入的明文数据。这无疑大大拓宽了攻击者的可能来源,因为他们可以在手机用户难以察觉的任何网络节点发起窃听,如基站、路由器、代理服务器等。研究者希望通过模拟这一更具挑战性的攻击场景,来测试当前主流云输入法的安全防护能力。
3. 总体研究发现
历时数月,研究者通过上述系列技术手段,对9家厂商的云输入法进行了全面的安全审计。然而,让人遗憾的是,测试结果并不乐观。在这9款输入法中,竟有8款不同程度地存在着安全漏洞,导致用户的键盘输入面临着泄露的风险。尽管漏洞的利用难度有所不同,但它们的最终后果却是一致的,即让本应加密的用户输入暴露给了网络监听者。
在诸多有问题的输入法里,三星自带键盘的表现堪称最差。研究者发现,用户的所有键盘输入均是以明文形式进行网络传输的,三星并未对这些敏感数据做任何加密保护。这相当于,只要攻击者能够监听到三星手机用户的网络流量,他就能直接读取用户输入的内容,无需再去破解加密算法,过程极其简单。可以说,用户的隐私在这款输入法面前完全赤裸裸地暴露无遗。
相比之下,令人欣慰的是,华为自研的输入法展现出了业内最佳的安全性。研究者对其进行了详尽的流量分析和逆向工程,却并未发现任何明显的安全漏洞。这表明华为不仅重视输入法的隐私安全问题,而且在技术实现上也颇为得当。当然,这并不意味着华为输入法就是100%安全的,软件工程上没有绝对的安全,但至少华为目前采取的安全防护措施,让网络窃听者无法轻易窥探用户的隐私。
4. 各厂商漏洞分析
接下来,在这些攻击手段下,让我们一起来看看研究者是如何发现并验证不同输入法的安全漏洞的。
先是腾讯系的两款输入法。前不久,腾讯完成了对搜狗的收购,因此现在QQ输入法和搜狗输入法实际上都是腾讯的产品。去年Citizen Lab曾披露过搜狗输入法在数据同步中存在私有协议的漏洞。令人遗憾的是,这一漏洞在最新版的搜狗输入法和QQ输入法中得到了复现。攻击者仍然能够在搜狗客户端程序中恢复出私有协议的密钥,继而对用户的同步数据实施解密。这说明搜狗并未彻底修复这一漏洞,其安全隐患依然存在。
接着是百度输入法。研究者主要分析了该输入法在三大主流平台,即Windows、Android和iOS上的安全表现。在Windows版本中,研究者发现百度直接在代码里硬编码了传输加密所用的对称密钥。这是一种非常糟糕的安全实践,因为一旦攻击者获取输入法的安装程序,通过反编译手段就可以直接提取出密钥,继而解密传输数据。而在Android和iOS版本中,情况也没有好到哪里去。百度自研了一套加密方案,但研究者发现其强度严重不足。他们推测出该方案的种子密钥仅有可能来自于设备的IMEI等特征信息。考虑到IMEI的取值空间非常有限,攻击者可以轻易穷举出所有可能的密钥,再尝试挨个解密,不出意外就能破解出用户的输入内容。
再下来是讯飞输入法。研究者的分析表明,该输入法的Android版本在数据加密上采用了DES对称加密算法。众所周知,DES由于其密钥长度较短(只有56bit),在现代密码学看来已经是一种过时且不安全的加密方法。更何况讯飞在密钥管理方面也存在严重的问题。它没有为每个用户生成独立、随机的密钥,而是直接采用设备的IMEI作为密钥来源。这与百度输入法如出一辙,同样面临着密钥空间过小,易被穷举破解的风险。研究者据此复现了针对讯飞输入法Android版本的解密攻击,证实了用户的隐私数据能被还原出来。
对于三星键盘,前文已经提到它是本次测试中安全性最差的输入法。三星疏于对用户隐私数据进行必要的加密保护,致使所有键盘输入都是明文传输。窃听者只需嗅探三星手机的流量,就可直接获取用户输入的内容,过程及其简单直接。研究者呼吁三星尽快重视该问题,从代码层面入手,强化输入数据的端到端加密。
至于小米、OPPO、Vivo的预装键盘,研究者发现他们采用了一些自研的私有传输协议。初步分析表明,出于安全考虑,这些私有协议都对传输数据进行了加密。然而,研究者进一步挖掘后却发现,它们在加密算法的选择和密钥管理等方面均存在诸多不妥之处,难以抵御针对性的密码分析攻击。这种做法虽然有一定的隐蔽性,但从专业的密码学和安全工程角度来看,仍存在一些值得商榷之处。经过一系列的努力,研究者最终成功破解了上述私有协议,说明它们在逆向工程面前仍不堪一击。
首先也是最关键的,私有协议的设计和实现缺乏广泛的同行评审和公开审计,其安全性难以得到全面的验证。与大家熟知的 HTTPS、SSL/TLS 等标准协议不同,这些私有协议的核心思路和技术细节通常不会完全公开,使得业界难以全面了解其是否采用了当前最佳实践,是否存在逻辑缺陷或实现漏洞。而公开透明正是密码学和安全领域的一项基本原则。正所谓”透明性带来安全性”,只有经过广泛审视和验证的方案,才可能真正做到”安全”。
其次由于缺乏标准化,私有协议在跨平台、跨版本的兼容性和一致性方面也难以保证。不同团队在不同时期对协议的理解和实现可能存在偏差,带来安全风险。而采用成熟标准协议,可最大限度避免此类人为疏漏。更形象一点说,就是在私有协议兼容的时候是最容易出现问题的。
更为严重的是,小米、OPPO、Vivo 的部分私有协议在加密算法选择和密钥管理方面存在明显不当之处。这为恶意攻击者逆向破解协议、窃取用户隐私数据提供了可乘之机。
具体而言,在小米输入法的私有协议中,研究者发现其使用了 RC4 流密码。作为一种上世纪 80 年代设计的算法,RC4 早已不再被视为安全的加密方案。学术界发现它在密钥使用、字节序等方面存在种种缺陷,在某些情况下甚至可被破解。现代密码学标准通常建议采用 AES 或 ChaCha20 等更强大的对称加密算法。
而在 OPPO 和 Vivo 输入法的某些私有协议里,使用的 AES 和 RSA 算法本身是安全的,但密钥却被硬编码写死在 APP 客户端。这和荣耀一样相当于将”钥匙”和”锁”捆绑在一起,攻击者只要获取 APP 安装包,分析并定位到存储密钥的代码,就可轻松解密全部通信数据,形同虚设。
小米、OPPO、Vivo 预装键盘采用私有传输协议,虽有隐蔽之利,但在安全性和兼容性上却难以令人信服。尤其是在加密算法选择和密钥管理上暴露出的诸多不当做法,实际上为用户隐私数据的泄露打开了方便之门。这再次印证了一个道理:安全系统的设计和实现绝非易事,稍有疏忽就可能酿成大错。对于汇聚海量隐私数据的云输入法而言,采用成熟、标准、经过广泛验证的安全通信协议无疑是上上之选。而自行设计私有协议,则需要研发团队具备相当的密码学功底和安全攻防经验,需要经受住来自业界的持续审视和验证,这对大多数商业化产品而言,并非易事。
最后是荣耀手机的Magic UI系统自带输入法。研究者同样发现了它在密钥管理中的严重缺陷。Magic UI直接在输入法的客户端代码中硬编码了用于加密的密钥,这几乎等同于把钥匙放在了锁头上。只要攻击者获得了输入法APP的安装包,通过反编译工具就能直接找到并提取密钥,整个过程不超过半小时。有了密钥,攻击者就可以监听用户的网络流量,拦截Magic UI键盘的上传数据,再用密钥解密,最终窃取用户输入的隐私内容。
5. 漏洞成因与影响分析
通过上述分析不难看出,尽管不同厂商的云输入法在安全漏洞的表现形式上有所差异,但它们在数据加密传输这一核心安全机制上却普遍存在诸多问题。综合来看,导致这些问题的根源大致有以下几点:
一是部分厂商在数据加密时依赖过于简单的自定义方案,设计时明显缺乏必要的密码学基础和安全攻防经验。他们似乎低估了逆向工程和密码分析的威力,采用了一些自以为是的”古怪”加密,结果却无法经受住安全专家的考验。
二是不少输入法产品在密钥管理方面犯了很多低级错误。比如直接在客户端代码里硬编码密钥,或者从设备的IMEI等可猜测的信息中派生密钥。这导致密钥的随机性和保密性大打折扣。一旦攻击者拿到了APP安装包或设备特征信息,就能轻松恢复出加密密钥。可以说,再强大的加密算法,没有安全的密钥管理也是白搭。
三是大多数输入法为了简化密钥管理的环节而仅采用了对称加密算法来保护数据。单纯使用对称加密虽然效率较高,但一旦密钥泄露,历史发送的所有消息都会遭殃。而成熟的端到端加密通信方案一般会综合利用(非)对称加密、数字签名等密码学技术,严格保护通信双方的身份认证和密钥协商,从而最大限度降低数据泄露的风险。这方面值得输入法厂商们学习借鉴。
深思一下,输入法的安全问题到底会给用户隐私带来多大的现实威胁呢?依照Citizen Lab的保守估计,受上述输入法漏洞影响的用户可能多达10亿之巨。一旦攻击者利用这些漏洞,他们就能窥视这10亿用户在输入法上的一举一动,获取海量的敏感数据。
大家应该都有过这样的经历,我们会使用手机输入法输入和发送各种隐私信息,例如姓名、地址、银行账号、交易密码等。而这些信息一旦被不法分子拦截,后果不堪设想。攻击者可能利用它们实施财产盗窃、身份冒用等犯罪活动,或是直接在网上兜售数据谋取暴利。对个人用户而言,经济损失和隐私泄露的双重打击无疑是毁灭性的。
此外,这些泄露的隐私数据也可能被用于大数据分析,推断出用户的商业秘密、政治倾向、生活习惯等更加敏感的隐私,造成更大的危害。试想一下,倘若百万千万用户的输入数据落入他人之手,经过大规模、长期的行为模式分析,一家公司的商业机密、用户画像恐怕无所遁形。
如此海量的隐私泄露,其影响之深远已经不是一城一地的问题,而是事关整个移动互联网时代的数据安全。这无疑给予了我们沉重的警示:在移动应用和云服务蓬勃发展的今天,用户隐私保护的重要性空前凸显。作为与用户打交道最为频繁、握有海量用户数据的移动应用,输入法责无旁贷地肩负起保护用户隐私安全的重任。只有从技术和管理两方面入手,切实提升自身的安全防护能力,云输入法才能真正安全。
6. 厂商响应与用户建议
在发现上述云输入法的安全漏洞后,Citizen Lab的研究者本着负责任的态度,及时向全部相关厂商进行了漏洞披露与沟通。令人欣慰的是,在收到漏洞报告后,多数厂商对此给予了高度重视。他们与研究者保持了积极的互动,力求在第一时间复现问题,并着手制定修复方案。经过一番紧锣密鼓的安全改造,这些厂商陆续发布了输入法的修复更新,堵上了隐私数据的泄露点。这体现了他们对用户利益的关切,以及对自身产品安全负责的态度。
然而遗憾的是,仍有个别输入法的漏洞修复进展不够理想。截止到本报告发布之日,三星键盘、讯飞输入法等产品的部分版本尚未完成修复。对此,我们强烈建议广大用户尽快将手机系统和输入法APP升级到最新版本。通常情况下,最新版本不仅包含了功能性更新,更集成了必要的安全修复,可大幅提升隐私数据的安全性。
当然,考虑到目前输入法的云端架构设计,即便是最新版本,理论上也难以百分之百地杜绝隐私泄露的可能。对于十分注重隐私的用户而言,我们建议要更加谨慎地选用云输入法。如非必要,可以尽量避免过度依赖其个性化学习等需要频繁联网的功能。在一些涉密场合,不妨直接改用设备本地输入法,牺牲一些输入效率,但可最大程度保护隐私数据不外泄。
另外,面对云输入法可能存在的安全隐患,普通用户在日常使用中还可采取一些自我保护措施。比如,定期检查和关闭输入法的非必要权限,尤其是对陌生的敏感权限更要慎之又慎;使用输入法前要认真阅读其隐私政策,明确你的数据会被如何收集、传输和处理;尽量选择知名度高、口碑好、更新勤快的输入法产品,因为它们通常拥有更完善的安全基础设施;输入密码、财务信息等高度敏感内容时,建议切换回系统自带的输入法,这样可减少数据上传的频率和隐私暴露面;要养成定期清除输入法本地数据缓存的好习惯,不给不法分子可乘之机;同时也要密切关注业内的输入法安全动态,一旦某款自己正在使用的输入法被披露出高危漏洞,就要果断弃用。
输入法 | 漏洞描述 | 影响 | 修复情况 |
---|---|---|---|
百度输入法 | Android和iOS版本使用自研加密方案,强度不足。种子密钥可能来自IMEI等设备特征信息,容易被穷举破解。 | 攻击者可通过穷举密钥破解用户输入内容。 | 未知 |
搜狗输入法 | Android版本使用自研加密算法,seed key硬编码在Java层代码中。iOS版本使用AES加密,但密钥仅取决于设备的UDID。 | 攻击者可通过反编译APP获取seed key,进而解密用户输入数据。iOS版本密钥生成方式不够安全,存在被破解的风险。 | 已发布修复更新 |
腾讯输入法 | Android版本使用自研对称加密算法,但密钥硬编码在Java层代码中。 | 攻击者可从APP安装包中轻松提取密钥,解密用户隐私数据。 | 已发布修复更新 |
讯飞输入法 | Android版本使用DES对称加密算法,密钥长度仅56位,强度不足。密钥直接采用设备IMEI,易被破解。 | 攻击者可破解密钥,解密用户隐私数据。 | 部分版本尚未修复 |
三星键盘 | 未对用户隐私数据进行加密,明文传输。 | 攻击者可直接嗅探流量获取用户输入内容。 | 部分版本尚未修复 |
小米/OPPO/Vivo键盘 | 使用自研私有传输协议,加密算法选择和密钥管理存在不当。 | 私有协议可被逆向破解,用户隐私面临泄露风险。 | 已发布修复更新 |
荣耀Magic UI键盘 | 加密密钥硬编码在客户端代码中。 | 攻击者可从APP安装包中直接提取密钥,解密用户隐私数据。 | 已发布修复更新 |
7. 业界警示与展望
云输入法的隐私安全问题绝非一日之寒,它深刻反映了整个移动互联网时代对个人隐私保护的困境与挑战。在云计算、大数据的驱动下,海量用户数据的采集、传输、存储已成为众多互联网应用的常态。然而,数据安全的专业门槛却非一朝一夕之功。因此,我们经常看到,许多厂商一方面热衷于利用大数据增强产品的智能化水平,另一方面却疏于甚至忽视了隐私数据的必要保护,给不法分子可乘之机。
Citizen Lab此次披露的云输入法漏洞无疑给业界敲响了警钟。作为无处不在、又最能洞悉用户隐私的应用,输入法一旦成为恶意窃听的突破口,其危害将是灾难性的。对此,正如报告所呼吁的,广大输入法厂商必须从思想认识到技术实现等方方面面,切实强化自身的安全防护能力。这需要厂商在产品设计之初就树立隐私安全至上的理念,并贯穿于整个产品生命周期。在技术选型上,要以密码学和安全工程的专业视角,审慎评估每一种数据加密传输方案的可靠性,杜绝不安全的私有协议。在开发过程中,要遵循安全编码规范,提防各种常见的编程陷阱,并引入威胁建模、渗透测试等必要的安全评估环节。而在运营阶段,更要与安全业界保持顺畅沟通,及时响应各方的漏洞反馈,做到防患于未然。
另一方面,对用户隐私安全负责不应只是厂商的自觉之举,更需要用法律的武器来捍卫。可喜的是,近年来,《网络安全法》、《数据安全法》、《个人信息保护法》等一系列法规的出台,无疑为维护国民在数字时代的合法权益提供了坚实的法治保障。面对触犯用户隐私的行为,执法机关应当依法严查重罚,以儆效尤。而作为用户一方,我们也要擦亮眼睛,通过司法手段维护自身权益。只有用户、企业、政府多方共同发力,携手构筑起全方位的数据安全防线,云输入法的隐私安全才能得到根本的保障。
展望未来,随着人工智能的发展,云输入法有望从单纯的输入工具发展为集语音识别、自然语言交互、智能写作于一体的生产力平台。与之相伴的,必将是越来越多的用户数据被采集和利用。在数据驱动的创新浪潮面前,隐私保护无疑面临着更大的挑战。这需要在本地智能和云端大数据之间,寻求最佳的安全平衡点,最大限度地在端侧就近处理数据,减少隐私数据的跨网传输。同时,加密算法、传输协议的设计也要与时俱进,严格遵循成熟的国际标准,杜绝不安全的私有方案,并适时引入零知识证明、联邦学习等前沿的隐私保护技术。只有在隐私安全的前提下,云输入法才能真正实现智能化、个性化,成为用户可以放心依赖的贴心助手。
以下是已经修复过的:
以下是建议卸载的:
8. 结语
但愿Citizen Lab此次披露的云输入法安全研究报告能够给业界和公众敲响警钟。在数字时代,个人隐私数据已然成为最宝贵的资产之一。对于与用户隐私数据打交道最为频繁的云应用,尤其是云输入法而言,保护好用户隐私是头等大事,容不得半点马虎。这需要厂商在思想认识和技术实现等各个层面下足功夫,切实履行保护用户隐私安全的责任与义务。
同时,隐私保护也需要用户、企业、政府等各方通力合作,共同营造一个重视隐私、尊重隐私的良好生态。用户要提高隐私保护意识,珍惜每一次授权;企业要以隐私为本,将保护用户隐私作为产品的生命线;政府要以法律为剑,对危害公民隐私的行为依法严惩。只有在多方共同努力下,云时代的隐私保护才有希望成为现实。
展望未来,随着云计算、人工智能的发展,云输入法必将承载更多的用户隐私数据,面临更大的安全挑战。这需要输入法厂商与安全业界携手并进,在深耕传统安全防御的同时,更要放眼前沿的隐私保护技术。唯有如此,云输入法才能更好地在便捷性和安全性之间取得平衡,成为用户真正放心的贴心助手,实现可持续的创新发展。
报告出处:https://citizenlab.ca/2024/04/vulnerabilities-across-keyboard-apps-reveal-keystrokes-to-network-eavesdroppers/
原文始发于微信公众号(上堵吟):手机输入法是最危险的隐私黑洞——深度解读Citizen Lab最新云输入法安全研究报告