5 a% E) w, k; Y1 z# G! J+ V2. 研究对象与方法 % ^% X7 M& A' E考虑到云输入法的多样性和普及率,此次研究选取了9家业内知名厂商的代表性输入法产品。它们分别是:腾讯的QQ输入法、搜狗输入法(腾讯旗下);百度输入法;科大讯飞输入法;三星键盘;华为输入法;小米输入法;OPPO输入法;Vivo输入法;以及荣耀输入法。可以看到,这个名单囊括了国内最主流的第三方输入法,以及手机厂商自研的预装输入法。从用户覆盖面来说,上述输入法的装机量至少在数亿级别。# q/ r8 h D) z9 L
# B) W* ~' g) a5 P; r, I那么,研究者是如何评估如此多款输入法的安全性的呢?这就要说到他们采用的一系列技术手段了。首先是静态分析,通过反编译输入法的安装包,研究者可以审查其源代码,重点关注与数据加密传输相关的逻辑;然后是动态分析,研究者会在真实或模拟的Android设备上运行目标输入法,通过调试器实时监控它的运行状态和内存数据,捕捉可能存在的漏洞;最后也是最重要的,是网络流量分析,研究者使用Wireshark等抓包工具,对输入法客户端与服务端之间的网络数据传输进行截获解析,考察其是否存在可被中间人攻击利用的薄弱点。 . f( V9 T/ O. ~ Z( ^1 _, f2 e3 q* j" q. P; q3 p
值得一提的是,本次研究更关注一种比中间人攻击威胁等级更高的场景,即无需主动干预目标用户的网络连接,攻击者只需被动监听其网络流量,就能直接窃取键盘输入的明文数据。这无疑大大拓宽了攻击者的可能来源,因为他们可以在手机用户难以察觉的任何网络节点发起窃听,如基站、路由器、代理服务器等。研究者希望通过模拟这一更具挑战性的攻击场景,来测试当前主流云输入法的安全防护能力。# X1 M& E, K" \+ [* J- Z
8 y' s2 o- q6 v6 L; H3. 总体研究发现% r9 x z# t3 F+ _7 H
历时数月,研究者通过上述系列技术手段,对9家厂商的云输入法进行了全面的安全审计。然而,让人遗憾的是,测试结果并不乐观。在这9款输入法中,竟有8款不同程度地存在着安全漏洞,导致用户的键盘输入面临着泄露的风险。尽管漏洞的利用难度有所不同,但它们的最终后果却是一致的,即让本应加密的用户输入暴露给了网络监听者。5 x; m g+ F9 h7 Y7 M5 e) x5 L7 j5 _
9 i1 T- o1 y5 R0 ]
在诸多有问题的输入法里,三星自带键盘的表现堪称最差。研究者发现,用户的所有键盘输入均是以明文形式进行网络传输的,三星并未对这些敏感数据做任何加密保护。这相当于,只要攻击者能够监听到三星手机用户的网络流量,他就能直接读取用户输入的内容,无需再去破解加密算法,过程极其简单。可以说,用户的隐私在这款输入法面前完全赤裸裸地暴露无遗。 " g! i. ?( U; m) E9 e 1 |9 T7 v( V3 a5 r. B! s相比之下,令人欣慰的是,华为自研的输入法展现出了业内最佳的安全性。研究者对其进行了详尽的流量分析和逆向工程,却并未发现任何明显的安全漏洞。这表明华为不仅重视输入法的隐私安全问题,而且在技术实现上也颇为得当。当然,这并不意味着华为输入法就是100%安全的,软件工程上没有绝对的安全,但至少华为目前采取的安全防护措施,让网络窃听者无法轻易窥探用户的隐私。 * V; X1 B; t8 \4 i9 T' Q& p) r) f6 V( {0 z3 O+ n' v
4. 各厂商漏洞分析% ^' z/ l# \1 o& T2 `' C
接下来,在这些攻击手段下,让我们一起来看看研究者是如何发现并验证不同输入法的安全漏洞的。" |5 F- B* c. j
2 ~. p) _. X$ @$ [8 W* [- r
先是腾讯系的两款输入法。前不久,腾讯完成了对搜狗的收购,因此现在QQ输入法和搜狗输入法实际上都是腾讯的产品。去年Citizen Lab曾披露过搜狗输入法在数据同步中存在私有协议的漏洞。令人遗憾的是,这一漏洞在最新版的搜狗输入法和QQ输入法中得到了复现。攻击者仍然能够在搜狗客户端程序中恢复出私有协议的密钥,继而对用户的同步数据实施解密。这说明搜狗并未彻底修复这一漏洞,其安全隐患依然存在。+ E1 r% P* B' q8 }
7 \* [6 a6 l. E3 ]
接着是百度输入法。研究者主要分析了该输入法在三大主流平台,即Windows、Android和iOS上的安全表现。在Windows版本中,研究者发现百度直接在代码里硬编码了传输加密所用的对称密钥。这是一种非常糟糕的安全实践,因为一旦攻击者获取输入法的安装程序,通过反编译手段就可以直接提取出密钥,继而解密传输数据。而在Android和iOS版本中,情况也没有好到哪里去。百度自研了一套加密方案,但研究者发现其强度严重不足。他们推测出该方案的种子密钥仅有可能来自于设备的IMEI等特征信息。考虑到IMEI的取值空间非常有限,攻击者可以轻易穷举出所有可能的密钥,再尝试挨个解密,不出意外就能破解出用户的输入内容。' e( V9 g4 \& E
( R y, Q- e5 a再下来是讯飞输入法。研究者的分析表明,该输入法的Android版本在数据加密上采用了DES对称加密算法。众所周知,DES由于其密钥长度较短(只有56bit),在现代密码学看来已经是一种过时且不安全的加密方法。更何况讯飞在密钥管理方面也存在严重的问题。它没有为每个用户生成独立、随机的密钥,而是直接采用设备的IMEI作为密钥来源。这与百度输入法如出一辙,同样面临着密钥空间过小,易被穷举破解的风险。研究者据此复现了针对讯飞输入法Android版本的解密攻击,证实了用户的隐私数据能被还原出来。+ @* N) j L4 y