博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
保护你的聊天隐私---“外挂式”加密软件设计思路
阅读量:5979 次
发布时间:2019-06-20

本文共 2715 字,大约阅读时间需要 9 分钟。

---
“外挂式”加密软件设计思路
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、
  
聊天管理系统不知道你的加密控制信息,如加密算法与密码,每个聊天者的选择可能都不相同,聊天成为真正的私密,防止第三方监管的可能。这与聊天软件自己加密,或者是专用聊天加密软件有本质的差别
 
本文转自 zhaisj 51CTO博客,原文链接:http://blog.51cto.com/zhaisj/336573,如需转载请自行联系原作者
你可能感兴趣的文章
Oracle——条件控制语句
查看>>
day-6 and day-7:面向对象
查看>>
CSU Double Shortest Paths 湖南省第十届省赛
查看>>
webgl像机世界
查看>>
php正则怎么使用(最全最细致)
查看>>
javascript数学运算符
查看>>
LC.155. Min Stack(非优化,两个stack 同步 + -)
查看>>
交互设计[3]--点石成金
查看>>
SCCM TP4部署Office2013
查看>>
redis主从配置<转>
查看>>
bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理...
查看>>
利用console控制台调试php代码
查看>>
讲解sed用法入门帖子
查看>>
Linux 内核已支持苹果
查看>>
shell脚本逻辑判断,文件目录属性判断,if,case用法
查看>>
【二叉树系列】二叉树课程大作业
查看>>
ASP.NET Core 2 学习笔记(三)中间件
查看>>
hbase region split源码分析
查看>>
MySQL备份之分库分表备份脚本
查看>>
Java 与 Netty 实现高性能高并发
查看>>