一种高隐秘且抗溯源的通信方法与流程

文档序号:11253948阅读:854来源:国知局

本发明属于通信技术领域,涉及一种通信方法,尤其涉及一种高隐秘且抗溯源的通信方法。



背景技术:

伴随互联网在生产生活中的广泛使用,网络窃密活动也愈发猖獗,给政治、军事、经济、科研等领域的活动带来严重威胁。特别是涉及国家利益的政治、经济、军事、科研活动,不仅需要防范来自网络黑客的恶意攻击和窃密,更需要防范来自其他国家或机构的有计划有组织的攻击与窃密活动。

因此,有必要在现有网络架构和通信协议的基础上,提高网络通信的隐秘性,给网络通信各方带来相对安全隐私、不易被第三方察觉的通信环境。这就是隐秘通信技术,该技术基于信息隐藏技术,将机密信息嵌入到普通载体信息中,并通过公开信道,特别是互联网进行传递。隐秘通信不仅要求通信行为的隐蔽性和鲁棒性,还要求具备较强的抗溯源性,能保证通信信道和通信主体都不会被攻击者追踪和发现。20世纪90年代中期以来,人们对隐秘通信技术进行了大量研究,不仅发表了大量论文,还出现了一批商业软件。

随着隐秘通信技术的蓬勃发展,国内外知名的安全公司,如fireeye、mandiant、瀚海源、安天等纷纷提出了自己的防御与检测隐秘通信的方案。综合分析这些解决方案可以发现,虽然现有的隐秘通信技术难于检测,但与其相关的命令与控制网络流量在时间维度上却相对容易在网络层被发现,深入的日志分析和比对有助于检测隐秘通信行为。尽管要从正常流量中分离出异常流量有一定难度,但各个安全公司已经提出自己的流量分析与日志比对解决方案,自动化的发现异常流量,并交给安全专家进行分析。

因此,有必要研究新型隐秘通信协议,该协议不但具有较高的隐秘性,能抵御现代基于大数据流量分析和日志分析的异常检测系统;还能具备抗溯源性,最大程度保护通信双方的身份安全,即需要做到即使通信源端和通信链路被控制,也能确保目的端的身份安全,反之亦然。

目前针对隐秘通信协议的技术在僵尸网络领域应用较多。控制命令服务器(英语:controlandcommandserver,简称:c&c服务器),一般是指挥控制僵尸网络(简称botnet)的主控服务器,用来和僵尸网络的每个感染了恶意软件(简称malware)的宿主机进行通讯并指挥它们的攻击行为。c&c控制服务的攻防要点在于,僵尸网络所有者能否欺骗检测者并成功隐藏c&c服务:如果检测者侦测到了隐藏的c&c服务,通过一些技术(封禁域名和ip等)或者非技术手段(汇报给安全应急中心等)切断malware和c&c之间的联系,就可以有效的摧毁botnet。c&c服务器需要谨慎的选择通信方法,现有的c&c通信方法总结如下:

(1)硬编码ip。

容易被逆向和检测,而且不能有效隐藏所有者身份和c&c服务

(2)单一c&c域名。

同样容易被逆向发现,而且新的c&c域名会在dns数据的异常检测里面形成一些特定的模式,通过数据做威胁感知的厂商很容易侦测到这些新出现的奇怪域名,并且通过ip和其他网络特征判定这是可疑c&c域名。

(3)fastflux、doubleflux和tripleflux技术。

能有效对抗逆向,但是由于域名对ip的记录转换太快,导致域名ttl等网络特征可以很容易被机器学习算法利用来判别此类僵尸网络。

(4)随机dga算法。

这是现在高级c&c方法的主流,它的基本设计思想是,绝不把域名字符串放到malware代码里,而是写入一个确定随机算法计算出来按照一个约定的随机数种子计算出一系列候选域名。攻击者通过同样的算法和约定的种子算出来同样列表,并注册其中的一个到多个域名。这样malware并不需要在代码里写入任何字符串,而只是要遵守这个约定就好。这个方法厉害在于,这个随机数种子的约定可以不通过通讯完成,比如当天的日期,比如当天twitter头条等。这种方法在密码学里称之为puzzlechallenge,也就是控制端和被控端提前约定好一个数学问题,该问题有很多答案,控制端选一个,被控端都给算出来,只要有一个答案正确就算回答成功。

该方案能有效地对抗逆向技术,但是安全研究人员可以正好利用dga算法生成的域名的随机性,通过机器学习算法来对其进行检测,检测方法和第三类类似。

(5)高级变形dga:如果dga看起来不随机

基于dga侦测的多数办法利用dga的随机性,所以现在高级的dga一般都用字典组合,比如obamapresident123.info等等看起来远不如cqaqofiwtfrbjegt.info可疑,攻击者利用这种方法对付威胁感知和机器学习方法的侦测。最近的一个例子出现在cisco的一篇blog,里面提到的dga就是一个很小的硬编码在代码里字典文件,通过单词的组合生成c&c域名。这些字典组合的dga看起来并不随机,多数论文和blog里针对随机dga机器学习的办法就不管用了。

对于这种dga暂时并没有成熟有效的侦测方法,因为字典是未知的,可以是英语词汇,可以是人名,可以是任何语言里的单词。常用的方法还是基于随机dga里面用到过的n-gram方法,比如用已知的dga的n-gram分布判断未知dga,同时结合其它的特征比如解析的ip等等,或者利用dga频繁查询的特性用n-gram特征作聚类。相关论文关键词为“algorithmicallygenerateddomains”。

(7)利用twitter、reddit等论坛:难度低,被抓看运气

这种方案本质是将私设的c&c服务器迁移到了公开的大型网站。比如在twitter发一条在特定冷门话题下的包含c&c指令的tweet,或者reddit上面找个十分冷门的subreddit发个包含控制指令的贴,这样即使被运营商或者安全研究小组发现了,也无法查封twitter和reddit。

2015年被捕获的名为mac.backdoor.iworm的恶意软件就是利用reddit做c&c控制服务器。该恶意软件会通过reddit网站搜索一个特定字符串,该字符串是当天日期md5值的前八个字节的十六进制值。返回结果都是恶意软件所有者通过某特定账号vtnhiaovyd上传的真实c&c服务器列表,恶意软件下载这些列表凭随机选取一个读取控制指令。

综上所述,现有隐秘通信协议大都存在一些缺点,总结如下:

(1)现有隐秘通信协议大都需要自建服务器中转或者源端和目的端直接通信,这导致一旦该服务器被控制,不但通信过程会被阻断,还会造成通信源端和目的端被溯源。需要研究并提出具有高抗溯源性的通信协议。

(2)现有隐秘通信协议即使有加密,其加密密钥也只能通过硬编码的方式写在代码中。即使采用通信前的密钥交换协议,交换的过程本身就可能导致新的安全问题。这样的设计导致攻击者通过逆向就能提取其加密密钥,即使是rsa等非对称加密算法,在长时间的已知密文攻击或者已知明文攻击中也会不安全。因此,需要研究“一次一密”级的安全通信协议。

(3)现有隐秘通信协议大都需要通信源端和目的端同时上线,发送延迟很短,这导致攻击者通过监控通信链路日志挖掘流量的时空相关性,容易发现某些ip之间总会在固定时间通信。有必要研究异步通信的隐秘通信协议,切断时空相关性,增强抗检测能力。



技术实现要素:

针对现有技术中存在的技术问题,本发明的目的在于提供一种具有高度隐秘性和抗溯源性的单工通信方法。本发明利用公开的网上随机数发生器作为单次通信密钥,利用大型公开网站的信息发布功能作为通信信道,将传统易被追踪的点对点通信模式改变为利用公开网站进行“中转暂存”的间接通信模式,极大地保护了通信双方身份,提高了通信安全性。

本发明的技术方案为:

一种高隐秘且抗溯源的通信方法,其步骤为:

1)通信源端和目的端分别从一个预先指定的随机数发生源获得一相同的随机数,然后分别根据该随机数计算生成一中转地址,通信源端和目的端分别生成或保存一相同的密钥;

2)通信源端将利用该密钥对待发送信息加密后的密文上传到一网站,并将该密文在该网站的访问地址指定为该中转地址;

3)通信目的端从该网站的该访问地址获取该密文,并利用该密钥对其解密。

生成该中转地址的方法为:将该随机数和一设定字符串拼接起来送入单向摘要函数,生成该中转地址。

通信源端和目的端分别根据该中转地址生成该密钥。

该密钥为对该中转地址字符串拼接而成。

该设定字符串为当天日期、若干字母或若干数字。

所述网站为日平均通信流量大于设定阈值的大型公开网站。

通信源端通过该网站的开放api发布消息;该消息内容包含该中转地址和该密文。

所述网站为提供长网址和短网址的对应转换服务的在线短网址服务网站;通信源端将密文作为长网址上传到该网站,并将生成的短网址指定为该中转地址;通信目的端将计算出的中转地址当做短网址直接访问,短网址服务网站会响应该访问并返回相应的长网址。

使用日开型彩票作为该随机数发生源。

与现有技术相比,本发明的积极效果为:

(1)本发明通过大型网站来进行中转通信,切断了通信两端的时空关联性,通信源端的发信行为和目的端的收信行为完全可以间隔几小时甚至几天,能够做到隐藏通信者身份、抵御逆向追踪。

(2)本发明具有较高的抗溯源性和鲁棒性。本发明基于大型公开网站进行中转通信,利用公开的大型网站进行通信不但不会被阻断,还能通过代理技术具有很高的抗溯源性,并且将通信隐藏在这些大型网站的正常访问行为很难被异常检测系统发现。

(3)本发明通过一个网上公开的随机数发生源来获取本次通信密钥,实现了“一次一密”通信,保证了通信的机密性。

附图说明

图1为基本通信过程示意图。

具体实施方式

本部分先介绍本发明的基本通信过程,再对其中的几个关键技术点进行了分析。

本发明的基本通信过程如图1所示,分为以下三个步骤:

1随机数获取阶段

这一阶段通信源端和目的端分别从一个预先指定的随机数发生源获得一个随机数。该随机数用于计算生成信息传输阶段的中转地址,并进而作为一次一密的aes加密密钥对通信内容进行加密。因此,这要求该随机数发生源不但能不断变化并且不可预测(防止攻击者提前预测到并阻断通信或者破解通信),还能在一个时间段t内生成的随机数相同(从而保证在一个时间段t内保持稳定,即源端和目的端得到的是同一随机数)。

本发明可以根据具体通信频率来选择随机数发生源,如果每日一次通信,那么可以选择日开型彩票,比如福彩3d。使用日开型彩票作为随机数发生源,每天使用其结果作为随机数,不但不可预测,而且生成后就不可更改。

2信息传输阶段

这一阶段是全异步间接通信,通信源端和目的端没有实时的直接的通信过程,而是通过大型公开网站进行中转通信。详细来说,通信源端将信息加密后上传到公开网站,并通过该网站的开放接口将待传输信息在该网站的访问地址指定为某特定地址(以下将该地址称为中转地址)。此时,该信息理论上向整个互联网公开,但是只有知晓该中转地址的互联网用户才能访问到它。而目的端由于提前约定好了计算方法,可以很轻易地计算出这个中转地址,则可在之后的任意时间从公开网站下载该信息。

因此,这一阶段有两个技术要点,一个是这个特定中转地址的计算方法,一个是公开网站的选择方法。

(1)中转地址计算方法

将上一阶段获得的随机数和一个特定字符串拼接起来送入单向摘要函数之后,就可以得到此次通信的中转地址。其中特定字符串可以是任何信息,需要通信源端和目的端提前约定,比如当天日期、字母、数字等。

中转地址本质上也是一个字符串,长度可以是32位或者16位或8位,应该根据中转网站的要求灵活选择。因此,单向摘要函数可以选择32位或者16位或8位的md5函数作为随机数生成算法。

令上一阶段获得的随机数为seed,特定字符串选择当天日期date,那么

中转地址addr=md5(seed+date)

(2)上传到公开网站

这一步是整个通信协议的核心,该中转网站在本发明中的作用是信息暂存,保存通信源端上传的通信内容,并等待通信目的端来收取。因此,该中转网站不能随意选取,对它的要求一是大型网站,平时网络环境内就会有大量访问流量,这样才方便隐藏本发明的通信流量;二是能利用api来指定上传信息的访问地址;三是要能对抗干扰和异常检测。

a.微博、twitter和reddit

这三类网站是主流的微博和bbs网站,访问量很大,每个使用者都可以发布公开的消息(微博或者帖子),该信息可被所有人查看。

通信源端通过账号访问此类网站,可以利用网站提供的开放api发布消息。该消息内容包含两部分:第一部分是之前获得的中转地址字符串,该字符串作为本次消息的唯一标识符用于让目的端通过搜索功能定位该消息;第二部分是加密后的真正通信内容。

这三类网站访问量很大,相关api也很成熟,而且能有效对抗干扰。防御方即使察觉到了该隐私情报被外泄也无法删除通信内容。

缺点是发消息需要注册账号,而且该账户和密码需要硬编码在通信源端。并且还有一些网站安全策略导致的稳定性问题,比如新浪微博账号在没有绑定手机的情况下发送一些无意义信息容易被识别为僵尸账号并封禁。还有需要考虑的就是通信内容的长度问题,微博和twitter都有140个字的通信限制和每小时若干次的通信频率限制。

b.短网址服务

在线短网址服务网站提供长网址和短网址的对应转换和暂存服务,部分短网址网站还允许用户自定义生成的短网址。因此通信源端可以将待传输的通信内容作为长网址上传到该网站,并将生成的短网址指定为之前获得的中转地址字符串。

可选择的网站有以下三个:

●http://tinyurl.com/

●http://dwz.cn/

●https://is.gd

这三个网站有开放api,也支持自定义短网址,使用的也非常广泛。

短网址服务最大的优点是无需注册即可使用,并且一旦将消息发出,除非该网站配合否则无法删除。但是短网址服务最主要的缺点是难以应对干扰,存在被抢注的风险,并且一样存在通信内容长度的限制。

(3)从公开网站下载

这一步由通信目的端来完成,通信目的端访问该中转网站,并下载通信内容。同样,对于不同的网站类型下载方法也略有不同。

a.微博、twitter和reddit

通信目的端尽量不通过账号访问该网站,而是利用搜索功能,搜索计算得到的中转地址字符串,就能定位到该消息。这是为了最大程度上降低通信源端和通信目的端的时空相关性,防止被追踪者发现目的端的下载行为。

b.短网址服务

通信目的端把计算出的中转地址当做短网址直接访问,短网址服务网站会响应该访问并返回相应的长网址,即真正的通信内容。

3加解密阶段

由于通信内容在通信信道中一直是以公开的形式存在,从理论上任何互联网用户均可以对其进行访问,因此必须对其进行加密和签名,保证整个通信过程的机密性和完整性。加密算法选择aes算法,128位密钥可以直接使用之前计算得到的中转地址字符串拼接而成,令其为keyaes(通信源端和通信目的端保持一致);签名算法选择rsa算法,2048位密钥则在本次通信过程发生之前由通信源端和目的端提前约定并各自保存,通信源端持有的私钥和目的端持有的公钥分别为keyprivate和keypublic。

(1)通信源端

首先用aes算法对通信明文message进行加密,获得密文ciphertext,即

ciphertext=aes(key=keyaes,input=message)

这之后使用私钥keyprivate对密文的md5值进行加密,作为签名signature,即

signature=rsa(key=keyprivate,input=md5(ciphertext))

将密文ciphertext和签名signature拼接后作为最终通信内容上传到中转网站即可。

(2)通信目的端

在通信目的端,下载后分离得到密文ciphertext和签名signature。首先我们要对签名进行验证,确认本次信息是由通信源端签发。这之后,再对其解密得到原始通信明文。

首先,用rsa公钥keypublic验证签名是否正确,即检验

rsa(key=keypublic,input=signature)==md5(ciphertext)

结果为true表示签名正确,结果为false表示签名错误。

这之后再对密文进行解密获得明文message,即

message=aes(key=keyaes,input=ciphertext)

安全性分析

安全性分为隐秘性和抗溯源性,下面分别描述。

1隐秘性

隐秘性是指攻击者通过对网络流量的深度分析无法发现本次通信过程。

本发明将敌手能力定位为网络安全管理员,部署有异常检测系统来监控网络信道和所有网络流量,进行深度包检测和分析;还部署有网关防火墙,可以进行包过滤。

对于随机数发生器,访问操作都是http或者https协议,访问目标都是大型网站,并且访问频度很低(每天一次),因此很难被异常检测系统发现。但是,如果在网关防火墙部署了针对ip的过滤规则,通信就会被阻断。

对于中转网站,一般都是ssh、http或者https协议,而且这些网站的访问流量通常很大,因此很难被异常检测系统发现,也无法在网关部署过滤规则。

2抗溯源性

抗溯源性是指攻击者在控制了源端或者目的端之后,能通过追踪溯源找到另一端的ip地址和身份信息。

本发明将敌手能力定义为安全专家,可以控制通信一端的程序,可以对该程序进行彻底的逆向和监控,可以完全模拟通信行为,最坏情况下可以控制中转网站。

此时攻击者能通过分析程序代码,找到中转网站和相应账户信息,通过中转网站监视访问流量。但是由于通信源端和目的端访问中转网站的时间和ip均不相同,使得攻击者无法提前预测访问的时间和目的地址,完全切断了时空相关性,也就无法追踪通信另一端的身份和位置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1