# Z V$ e1 j: x. V先是腾讯系的两款输入法。前不久,腾讯完成了对搜狗的收购,因此现在QQ输入法和搜狗输入法实际上都是腾讯的产品。去年Citizen Lab曾披露过搜狗输入法在数据同步中存在私有协议的漏洞。令人遗憾的是,这一漏洞在最新版的搜狗输入法和QQ输入法中得到了复现。攻击者仍然能够在搜狗客户端程序中恢复出私有协议的密钥,继而对用户的同步数据实施解密。这说明搜狗并未彻底修复这一漏洞,其安全隐患依然存在。 ; x; I% b' [( H% D a! q6 R% Q' r; r 5 f1 X/ @0 ^! l8 H% i3 Y E7 Z' V接着是百度输入法。研究者主要分析了该输入法在三大主流平台,即Windows、Android和iOS上的安全表现。在Windows版本中,研究者发现百度直接在代码里硬编码了传输加密所用的对称密钥。这是一种非常糟糕的安全实践,因为一旦攻击者获取输入法的安装程序,通过反编译手段就可以直接提取出密钥,继而解密传输数据。而在Android和iOS版本中,情况也没有好到哪里去。百度自研了一套加密方案,但研究者发现其强度严重不足。他们推测出该方案的种子密钥仅有可能来自于设备的IMEI等特征信息。考虑到IMEI的取值空间非常有限,攻击者可以轻易穷举出所有可能的密钥,再尝试挨个解密,不出意外就能破解出用户的输入内容。 * ?& X9 ?( M) V% ~2 d # W+ [9 O4 n- Y3 z/ d! Z再下来是讯飞输入法。研究者的分析表明,该输入法的Android版本在数据加密上采用了DES对称加密算法。众所周知,DES由于其密钥长度较短(只有56bit),在现代密码学看来已经是一种过时且不安全的加密方法。更何况讯飞在密钥管理方面也存在严重的问题。它没有为每个用户生成独立、随机的密钥,而是直接采用设备的IMEI作为密钥来源。这与百度输入法如出一辙,同样面临着密钥空间过小,易被穷举破解的风险。研究者据此复现了针对讯飞输入法Android版本的解密攻击,证实了用户的隐私数据能被还原出来。 ! [$ m- \. k* |# m* x( ~- ]7 O$ F( W9 T' k
对于三星键盘,前文已经提到它是本次测试中安全性最差的输入法。三星疏于对用户隐私数据进行必要的加密保护,致使所有键盘输入都是明文传输。窃听者只需嗅探三星手机的流量,就可直接获取用户输入的内容,过程及其简单直接。研究者呼吁三星尽快重视该问题,从代码层面入手,强化输入数据的端到端加密。8 E( s% Z' Z# g' P+ u
7 i3 `2 p% g j: ~- P7 i至于小米、OPPO、Vivo的预装键盘,研究者发现他们采用了一些自研的私有传输协议。初步分析表明,出于安全考虑,这些私有协议都对传输数据进行了加密。然而,研究者进一步挖掘后却发现,它们在加密算法的选择和密钥管理等方面均存在诸多不妥之处,难以抵御针对性的密码分析攻击。这种做法虽然有一定的隐蔽性,但从专业的密码学和安全工程角度来看,仍存在一些值得商榷之处。经过一系列的努力,研究者最终成功破解了上述私有协议,说明它们在逆向工程面前仍不堪一击。 & Q0 w5 c( R7 F, o - d3 U0 a0 H- z首先也是最关键的,私有协议的设计和实现缺乏广泛的同行评审和公开审计,其安全性难以得到全面的验证。与大家熟知的 HTTPS、SSL/TLS 等标准协议不同,这些私有协议的核心思路和技术细节通常不会完全公开,使得业界难以全面了解其是否采用了当前最佳实践,是否存在逻辑缺陷或实现漏洞。而公开透明正是密码学和安全领域的一项基本原则。正所谓"透明性带来安全性",只有经过广泛审视和验证的方案,才可能真正做到"安全"。 & A) a0 q' n8 Z: X& H+ Y/ ^* y 8 H. ]' B* t. g$ M9 f其次由于缺乏标准化,私有协议在跨平台、跨版本的兼容性和一致性方面也难以保证。不同团队在不同时期对协议的理解和实现可能存在偏差,带来安全风险。而采用成熟标准协议,可最大限度避免此类人为疏漏。更形象一点说,就是在私有协议兼容的时候是最容易出现问题的。 0 j& ~& V/ j) j) F# A8 c 4 t) l8 F( i7 u4 n6 j4 j更为严重的是,小米、OPPO、Vivo 的部分私有协议在加密算法选择和密钥管理方面存在明显不当之处。这为恶意攻击者逆向破解协议、窃取用户隐私数据提供了可乘之机。 $ ? C5 r6 P! \& R- E1 |" R% s8 r+ L% @! k
具体而言,在小米输入法的私有协议中,研究者发现其使用了 RC4 流密码。作为一种上世纪 80 年代设计的算法,RC4 早已不再被视为安全的加密方案。学术界发现它在密钥使用、字节序等方面存在种种缺陷,在某些情况下甚至可被破解。现代密码学标准通常建议采用 AES 或 ChaCha20 等更强大的对称加密算法。- d: E7 l$ \0 T, ^6 g8 \7 [
7 U- [1 K" s- ?2 d @
而在 OPPO 和 Vivo 输入法的某些私有协议里,使用的 AES 和 RSA 算法本身是安全的,但密钥却被硬编码写死在 APP 客户端。这和荣耀一样相当于将"钥匙"和"锁"捆绑在一起,攻击者只要获取 APP 安装包,分析并定位到存储密钥的代码,就可轻松解密全部通信数据,形同虚设。" S* r" u$ a! S! x; I G! ^
( G ~4 ]" o) F! v- X* }, c: ~" c
小米、OPPO、Vivo 预装键盘采用私有传输协议,虽有隐蔽之利,但在安全性和兼容性上却难以令人信服。尤其是在加密算法选择和密钥管理上暴露出的诸多不当做法,实际上为用户隐私数据的泄露打开了方便之门。这再次印证了一个道理:安全系统的设计和实现绝非易事,稍有疏忽就可能酿成大错。对于汇聚海量隐私数据的云输入法而言,采用成熟、标准、经过广泛验证的安全通信协议无疑是上上之选。而自行设计私有协议,则需要研发团队具备相当的密码学功底和安全攻防经验,需要经受住来自业界的持续审视和验证,这对大多数商业化产品而言,并非易事。4 h: m" m, g3 t+ g! n% N+ @5 C! d# K
0 x0 ~ ^8 J, Y3 n, e& e
最后是荣耀手机的Magic UI系统自带输入法。研究者同样发现了它在密钥管理中的严重缺陷。Magic UI直接在输入法的客户端代码中硬编码了用于加密的密钥,这几乎等同于把钥匙放在了锁头上。只要攻击者获得了输入法APP的安装包,通过反编译工具就能直接找到并提取密钥,整个过程不超过半小时。有了密钥,攻击者就可以监听用户的网络流量,拦截Magic UI键盘的上传数据,再用密钥解密,最终窃取用户输入的隐私内容。 ! i( }. Q# e$ [1 } % h# k: f+ H7 H, \7 n, l1 V5. 漏洞成因与影响分析 6 `7 e6 W E. l7 u0 |2 a通过上述分析不难看出,尽管不同厂商的云输入法在安全漏洞的表现形式上有所差异,但它们在数据加密传输这一核心安全机制上却普遍存在诸多问题。综合来看,导致这些问题的根源大致有以下几点: / ^$ s; E7 C2 \7 J* Q * w+ L3 B: D, v( z( p8 D一是部分厂商在数据加密时依赖过于简单的自定义方案,设计时明显缺乏必要的密码学基础和安全攻防经验。他们似乎低估了逆向工程和密码分析的威力,采用了一些自以为是的"古怪"加密,结果却无法经受住安全专家的考验。 % S: n5 x- {: D) m2 W % ~& e7 ~: l8 h e1 M y/ e二是不少输入法产品在密钥管理方面犯了很多低级错误。比如直接在客户端代码里硬编码密钥,或者从设备的IMEI等可猜测的信息中派生密钥。这导致密钥的随机性和保密性大打折扣。一旦攻击者拿到了APP安装包或设备特征信息,就能轻松恢复出加密密钥。可以说,再强大的加密算法,没有安全的密钥管理也是白搭。: g+ ^1 X8 v' q" G! X9 M
- F4 T) @& E! b三是大多数输入法为了简化密钥管理的环节而仅采用了对称加密算法来保护数据。单纯使用对称加密虽然效率较高,但一旦密钥泄露,历史发送的所有消息都会遭殃。而成熟的端到端加密通信方案一般会综合利用(非)对称加密、数字签名等密码学技术,严格保护通信双方的身份认证和密钥协商,从而最大限度降低数据泄露的风险。这方面值得输入法厂商们学习借鉴。) ?! U$ o3 W/ ?6 x( f
9 g+ v2 C4 n+ z; ] c
深思一下,输入法的安全问题到底会给用户隐私带来多大的现实威胁呢?依照Citizen Lab的保守估计,受上述输入法漏洞影响的用户可能多达10亿之巨。一旦攻击者利用这些漏洞,他们就能窥视这10亿用户在输入法上的一举一动,获取海量的敏感数据。 ) g3 k1 n& N7 k3 T. v& C' M $ W4 b: P, q! d" [- |1 }& @ u大家应该都有过这样的经历,我们会使用手机输入法输入和发送各种隐私信息,例如姓名、地址、银行账号、交易密码等。而这些信息一旦被不法分子拦截,后果不堪设想。攻击者可能利用它们实施财产盗窃、身份冒用等犯罪活动,或是直接在网上兜售数据谋取暴利。对个人用户而言,经济损失和隐私泄露的双重打击无疑是毁灭性的。 0 ]/ P/ J6 h9 M7 A* C/ [* M) ~6 c( v. U. q4 @: g% ?0 ^& Q# A
此外,这些泄露的隐私数据也可能被用于大数据分析,推断出用户的商业秘密、政治倾向、生活习惯等更加敏感的隐私,造成更大的危害。试想一下,倘若百万千万用户的输入数据落入他人之手,经过大规模、长期的行为模式分析,一家公司的商业机密、用户画像恐怕无所遁形。 5 s3 O, O7 Z* ^- R4 ?, } - A0 Q, t* v/ }" S- J' m7 W4 h如此海量的隐私泄露,其影响之深远已经不是一城一地的问题,而是事关整个移动互联网时代的数据安全。这无疑给予了我们沉重的警示:在移动应用和云服务蓬勃发展的今天,用户隐私保护的重要性空前凸显。作为与用户打交道最为频繁、握有海量用户数据的移动应用,输入法责无旁贷地肩负起保护用户隐私安全的重任。只有从技术和管理两方面入手,切实提升自身的安全防护能力,云输入法才能真正安全。 0 q1 i4 ]1 h( I6 a / e" s+ U; |9 c6. 厂商响应与用户建议) ?' A! ~% k* }8 l% m3 X
在发现上述云输入法的安全漏洞后,Citizen Lab的研究者本着负责任的态度,及时向全部相关厂商进行了漏洞披露与沟通。令人欣慰的是,在收到漏洞报告后,多数厂商对此给予了高度重视。他们与研究者保持了积极的互动,力求在第一时间复现问题,并着手制定修复方案。经过一番紧锣密鼓的安全改造,这些厂商陆续发布了输入法的修复更新,堵上了隐私数据的泄露点。这体现了他们对用户利益的关切,以及对自身产品安全负责的态度。7 B% \$ J0 |' [0 p; Q+ L2 b
+ `2 ~& r% c2 z! H {然而遗憾的是,仍有个别输入法的漏洞修复进展不够理想。截止到本报告发布之日,三星键盘、讯飞输入法等产品的部分版本尚未完成修复。对此,我们强烈建议广大用户尽快将手机系统和输入法APP升级到最新版本。通常情况下,最新版本不仅包含了功能性更新,更集成了必要的安全修复,可大幅提升隐私数据的安全性。2 x" N' \/ \$ N7 ^" Z9 p; D
6 b k4 _, |2 u" D. _2 J
当然,考虑到目前输入法的云端架构设计,即便是最新版本,理论上也难以百分之百地杜绝隐私泄露的可能。对于十分注重隐私的用户而言,我们建议要更加谨慎地选用云输入法。如非必要,可以尽量避免过度依赖其个性化学习等需要频繁联网的功能。在一些涉密场合,不妨直接改用设备本地输入法,牺牲一些输入效率,但可最大程度保护隐私数据不外泄。5 i( q1 Z7 G q2 b' X4 J2 z