保护你的聊天隐私
---
“外挂式”加密软件设计思路
Jack zhai
即时通讯工具(常用的是聊天软件与网上电话软件)被现代人越来越多地使用,主要是因为它便捷,随着手机3G技术的推广,即时通的移动在线能力,让你连走路的间歇都“没有”了,MSN、QQ已经成了都市新新人类的生活标志。信息沟通的高速度,使得人们思考的时间越来越少,性格变得急噪,很多话经常脱口而出,很多信息在不经意之间被不该知道的人知道了,不想被人听到的被转播了,不想被人看见的被直播了…越来越多的人在寻找能够加密的聊天软件。
有人推荐聊天软件自身的加密通讯功能,这样做有些掩耳盗铃。当大量的聊天记录被暴光,私下里的评头论足公布于人前,尴尬难耐,羞愧难当,而你常常不知道是什么环节出了问题。究其原因是:这种自带的加密不能阻止知道你聊天口令的人(可能是弱口令被人猜到的,也可以是***盗取的),也不能阻止那些为你提供聊天服务的人们(服务管理者的权限通常是很高的)。
加密做不到真正的“端到端”,不能算是可控的,用户的心里就不塌实…
《手机》中有句话的大意是:当人们不再相信媒体作为交流的工具时,我们如何表达自己的真话?敢跟谁说呢?
聊天通讯的加密与文件存储加密不太相同,主要是工作方式上对时间的要求所致。我们说一句话,对方半天没反应,就没有了交流的兴趣。对于文字方式的聊天,我们可以等待30秒以上,因为人打字输入有间歇的时间,这使得很多人可以同时与多个人聊天;网络电话(音频流)一般是一对一的,等上3秒就难以忍受了(有些象越洋电话);而网络视频是实时的,有0.3秒的延迟,估计就难以满意了。
对时间的敏感,要求加密方式不能太复杂,而加密算法不复杂就容易被破解,这是矛盾的。
目前流行的聊天加密方式有下面几种:
1、 通讯软件工具自己加密:如MSN
、QQ、SkyPi都有自己的加密选项,这种方式是最为直接的,但缺陷也很明显:
a) 加密算法可以说是基本固定的、公开的,很容易在互联网上搜索到
b) 加密强度依赖于软件的开发者,容易成为爱好者破解的“练习题”
c) 因为很多通讯软件都有集中的控制服务器,负责聊天者通讯的管理,对于管理方来说,他不仅可以知道你的密码,而且可以记录你的所有聊天记录
2、 专用外挂加密工具:针对不同的聊天软件有“第三方”的专用加密工具,如MSNSHELL
、EncQQ等,他们工作在聊天工具的用户接口上,把通讯中的用户信息进行加密,但不影响聊天工具的正常使用。这种方式的最大好处是聊天工具再也看不到你的聊天内容,其缺点是:
a) 加密工具是专用的,要随着聊天工具升级而升级,否则有兼容问题
b) 必须聊天的双方都安装并启动外挂工具
c) 这种方式可以说是端到端加密,因为加密软件是针对某个聊天软件的,若聊天软件的开发商不希望被“架空”,组织专人解密不是很困难的
聊天加密有一个常见的误区:就是认为低层的链路加密可以保证自己的信息不被窃听,这是不对的。聊天工具一般是公共网络上的服务工具,是点对点通讯,但中间有管理方负责通讯管理(内容传输是P2P,但控制方可以监听),链路加密只是保护你的信息在传输时不被窃听,对于上层的应用来说,信息都已经成为“明文”
“加密”能给用户安全感的核心是:用户自己对加密是可控的,一是自己可以动态选择算法与密码。这不仅可以躲避监管部门的监听,最主要的是用户自己“放心”。二是用户坚信加密方式是绝对可靠的,如RSA、3DES等加密算法,短时间破译是困难的。
这里推荐一种外挂式加密软件设计思路:
实际上我们在聊天过程中,不是所有的信息都是私密的,尤其是办公室白领们的“非工作”聊天,只要把有些需要保密的信息进行加密就可以了,因此,我们设想了一种方式实现动态聊天加密的方法:
外挂加密软件是一个独立的工具软件,本身只实现加解密功能,它负责与聊天软件互通(可以抓取信息或推送信息),有些象专用聊天加密软件,但可以针对各种聊天软件使用。具体聊天的流程如下:
1、 打开外挂加密软件(
可选定聊天软件,可设定加密算法、密码)
2、 可通过其他通道把加密算法与密码通知对方,也可以事先约定(
如固定密码,或者约定一个生成密码的策略,如日期加手机号加姓名等)
3、 打开聊天软件,如MSN
、QQ等,进行正常聊天
4、 有私密信息时,不在聊天软件窗口中输入,而在外挂软件窗口中输入,把生成的加密信息或打包文件“扔”到聊天软件中(
直接在发送即可)。此时,在聊天软件中看到的是好象输入了一串随机乱码(为了防止加密后不可显示字符问题,可以采用Base64把密文转换为可见字符),也可以把加密的信息打包为特殊格式的文件,利用聊天软件的文件传送功能把打包的文件送给对方
5、 接收方收到信息后,发现是乱码信息,或是特定格式的打包文件,就“扔”到自己的外挂加密软件的信息窗口中,收到的信息自然解密。
这个设计思路的核心要点是:一是用户动态选择加密方式,让用户自己控制;二是实现对短信息的动态加密,保证聊天的顺利进行。
外挂加密软件方法的缺点:
1、 聊天加密增加了操作上麻烦,但若与聊天软件的接口做好,应该不影响聊天
2、 有音、视频的聊天,需要进一步增强与聊天软件接口(
屏蔽聊天软件自身的输入与播放,转入到加密软件窗口),保证音视频的播放正常
3、 加密算法与密码需要另外通道传送,直接通过聊天软件传送明文是不明智的,若有CA
证书时,可采用RSA算法加密,通过聊天软件传送
外挂加密软件方法的优点:
1、 与聊天工具无关,加密软件独立运行,可以适用于任何聊天工具软件,不需要为每个聊天软件单独安装加密软件
2、 加密算法与密码是用户选择的,独立于软件开发商,独立于聊天软件管理者,加密是端到端的,没有中间环节,安全级别高。也就是说,聊天记录中都是密文,而且密码是不同、一次性的。即使被人盗取聊天口令,也无法识别聊天记录
3、 用户聊天过程中,可以更换密码或加密算法,只要对方知道,同步更换就可以,解密难度大大提高
4、 密码传送走第三方通道(
也可以利用RSA算法加密,通过聊天软件发送),如电话、邮件等,避免被网络嗅探,或聊天软件本身截取
5、 聊天管理系统不知道你的加密控制信息,如加密算法与密码,每个聊天者的选择可能都不相同,聊天成为真正的私密,防止第三方监管的可能。这与聊天软件自己加密,或者是专用聊天加密软件有本质的差别