计算机应用   2017, Vol. 37 Issue (12): 3406-3411  DOI: 10.11772/j.issn.1001-9081.2017.12.3406
0

引用本文 

银伟, 周红建, 邢国强. 蜜罐加密技术在私密数据保护中的应用[J]. 计算机应用, 2017, 37(12): 3406-3411.DOI: 10.11772/j.issn.1001-9081.2017.12.3406.
YIN Wei, ZHOU Hongjian, XING Guoqiang. Application of honey encryption mechanism in protection of private data[J]. Journal of Computer Applications, 2017, 37(12): 3406-3411. DOI: 10.11772/j.issn.1001-9081.2017.12.3406.

基金项目

国家自然科学基金资助项目(61702542);中国博士后基金资助项目(2016M603017)

通信作者

银伟, E-mail:yinwei168@gmail.com

作者简介

银伟(1982-), 男, 湖南邵阳人, 工程师, 博士, 主要研究方向:网络安全、无线网络;
周红建(1972-), 男, 湖北鄂州人, 高级工程师, 博士, 主要研究方向:网络安全、大数据;
邢国强(1981-), 男, 山西太原人, 工程师, 硕士, 主要研究方向:网络安全

文章历史

收稿日期:2017-05-16
修回日期:2017-07-31
蜜罐加密技术在私密数据保护中的应用
银伟, 周红建, 邢国强    
95899部队, 北京 100085
摘要: 针对传统加密技术脆弱性问题,将蜜罐加密技术应用到身份证号码、手机号码和银行卡密码的保护中以保证数据存储安全。首先,分析阐述了蜜罐加密技术原理,并设计了对蜜罐加密系统分布式转换加密器;然后,抽象了消息空间,对系统进行实现和性能评估,发现性能开销问题并提出增强型机制。在蜜罐加密设计与实现中,考虑到均衡分布和随机分布的消息空间,并将其运用到对称加密算法和公钥加密机制。通过所提设计、系统实现和实验结果得出以下结论:1)由于性能问题,蜜罐加密技术更适合小的消息空间;2)设计消息空间时需要考虑周全,不能带来指纹特征,否则不能解决暴力破解脆弱性问题;3)蜜罐加密的保护能力随应用的不同而不同;4)对于不同的应用,蜜罐加密技术的实现需要定制。
关键词: 蜜罐加密    私密数据    暴力破解    消息空间    分布式转换加密器    
Application of honey encryption mechanism in protection of private data
YIN Wei, ZHOU Hongjian, XING Guoqiang     
95899 Unit, Beijing 100085, China
Abstract: In order to solve the vulnerability problem of the traditional encryption mechanisms, the honey encryption mechanism was applied to three types of private data including identity card numbers, mobile phone numbers and bank card passwords to protect data storage security. Firstly, the principle of honey encryption was analyzed and discussed, and a distributed-transforming encryptor for honey encryption system was designed. Then, the message space was abstracted, and the system was implemented and its performance was evaluated. The performance overhead problem was found and an enhanced mechanism was proposed. The message spaces with uniformly/non-uniformly distribution were taken into account and also used for symmetric encryption algorithm and public key encryption mechanism in the design and implementation of honey encryption. Through the proposed design, system implementation and experimental results of honey encryption, the following conclusions are drawn:1)due to the performance issue, honey encryption is more suitable for a small message space instead of a large one; 2)the design of message space needs to be considered comprehensively, which can not bring fingerprint characteristics, otherwise it can not solve the vulnerability problem of brute-force attack; 3)the protection ability of honey encryption is different with the application; 4) the implementation of honey encryption has to be customized for different applications.
Key words: honey encryption    private data    brute-force attack    message space    distributed-transforming encryptor    
0 引言

我们之中大部分人都遭受过垃圾短信的骚扰;有些人可能因为身份被冒用办理了信用卡,被银行要求还款;还有些人被罪犯冒用身份进行犯罪活动。这些事情之所以发生,是因为私密数据没有被很好地保护,遭到泄露,然后被恶意方利用,给当事者带来金钱和名誉的损失。

网上购买物品时,需要客户填写手机号码方便投递;购买火车票时,需要填写身份证号码。商家收集我们的私密数据,有些商家以明文方式存储这些数据,有些商家则进行加密存储。但是,只要有足够的时间和计算能力,对现行加密算法进行破解总能成功。这是因为现行的加密算法存在着脆弱性,即攻击者能根据暴力破解的输出结果来判断猜测的口令是否正确。

Juels等[1]提出了蜜罐加密技术来解决这个问题。“蜜”在网络安全界经常被用来描述一个虚假的资源。例如,蜜罐(honey)[2]是虚假的服务器,吸引攻击者扫描和渗透。蜜词(honeyword)[3]是数据库中虚假的用户名和密码。一旦被使用,就检测到了入侵。蜜罐加密技术是解决现行加密技术脆弱性的有效手段。通过该项技术,即使是使用错误的密码去破解,输出结果也看起来像是被正确破解了。这样,攻击者就很难判断猜测的密码是正确的还是错误的。

蜜罐加密技术的创新点在于分布式转换加密器(Distributed-Transforming Encryptor, DTE)的设计。根据消息空间每条消息的出现概率,它将消息映射到种子空间的一段种子区间,然后从中随机选择一个种子,并与密钥进行异或得到密文。在解密时,密文与密钥异或得到种子,DTE根据该种子的位置信息将其映射到明文消息。即使这个密钥是错误的,解密过程也从消息空间中输出一条消息,以此来迷惑攻击者。

本文的工作在于四个方面:一是设计与实现了蜜罐加密系统,并应用在身份证号码、手机号码和银行卡密码上;二是评估了蜜罐加密机制的性能,提出增强型机制解决性能问题;三是将蜜罐加密技术应用到均衡分布的消息空间和随机分布的消息空间,不仅考虑了对称加密算法,还考虑了公钥密码机制;四是总结了在设计、实现和评估中得到的经验。具体而言,有下列几点认识:1)蜜罐加密技术适合小的消息空间,因为大消息空间的处理开销很大。2)设计消息空间需要考虑周全,否则不能有效应对暴力破解攻击。3)蜜罐加密技术对私密数据的保护能力根据应用的不同而不同。4)蜜罐加密技术的实现需要定制,因为消息空间随应用的不同而不同,那么没有一个实现能适合所有的应用场景。

1 相关工作

在大部分的加密机制中。用户通常选择容易记住的弱口令,因此系统容易遭受暴力破解攻击。蜜罐加密技术[4]让攻击者不能从密码猜解过程中获取足够多的信息。对于每个可能的密钥,系统输出一条看起来有效的消息。这样,很难猜测哪个密钥是正确的。通过这种方式,蜜罐加密技术能够保护弱口令和很多应用中的私密数据。

蜜罐加密技术欺骗了攻击者,让其认为错误的密码是正确的。它是一种欺骗技术。过去20年来,安全研究人员提出不少欺骗技术,用于提升系统安全。蜜标(honeytoken)[5]就是其中一种。当蜜标被人使用时,说明入侵正在发生。蜜标的一个重要应用是蜜词[3]。蜜词是数据库中存储的系统登录密码。正常用户不使用。因此一旦检测到被使用,就意味着系统被入侵了,然后系统向安全人员发出警报。蜜罐[2]、蜜网[6]以及蜜场(honeyfarm)[7-10]也是虚假的诱捕资源,容易成为攻击者的攻击目标。设置这些系统是为了学习攻击者的目的、攻击手段和方法。

蜜罐加密技术也与格式保护加密技术[11]以及格式转换加密技术[12]相关。在格式保护加密技术中,明文消息空间与密文消息空间相同。在格式转换加密技术中,密文空间不同于消息空间。蜜罐加密将明文消息映射到种子空间中一段种子区间。因为消息空间与种子空间不同,那么密文空间与明文消息空间不同。

Vinayak等[13]将蜜罐加密技术应用到无线传感器网络,保护无线传感器网络免于暴力破解攻击。Tyagi等[4]采取了蜜罐加密技术保护信用卡卡号和简化版的文本消息通信。这些研究都基于均衡分布的消息空间。基因数据的概率分布不均衡,GenoGuard机制[14]将蜜罐加密技术用于保护基因数据。在这些研究中都使用了固定的DTE,因此不能对二进制流数据,例如视频和图片进行保护。Yoon等[15]提出虚拟蜜罐加密概念,使用了动态DTE保护图片和视频。

在本文中将蜜罐加密技术应用到一些新的对象,包括居民身份证、手机号码和银行卡密码。这些数据都是很重要的私人数据,一旦泄露会给个人带来经济和名誉上的损失,因此需要对它们进行保护。虽然学术界对蜜罐加密技术的应用技术进行了一定的研究,但是由于应用对象的消息格式和概率分布不同,那么针对新的应用,需要重新设计消息空间。而本文精心选取了三个应用,目的是为了证实蜜罐加密技术对不同应用的保护能力是有区别的,例如,对储蓄卡密码的保护能力较强,而对手机号码的保护能力较弱。

在针对三个应用的蜜罐加密技术的设计和实现中,考虑了大/小消息空间、均衡/非均衡分布的消息概率以及对称/非对称加密算法。本文对蜜罐加密技术的性能开销进行了评估,发现了大消息空间存在性能问题。针对小消息空间本文提出了一种性能优化方案,研究发现如果消息空间没有设计好,蜜罐加密技术可能失去它的效能;同时还发现蜜罐加密技术需要为不同的应用对象设计消息空间,因此没有一个实现能适合所有的应用场景。

2 蜜罐加密技术 2.1 基本概念

蜜罐加密技术保护的对象是一些具有共同特征的消息集。例如所有信用卡号构成一个消息空间。在加密消息时,先确定消息空间,再将消息空间中的消息按照某个顺序进行排列,然后计算出每条消息的概率分布函数(Probability Distribution Function, PDF)以及加权概率分布函数(Cumulative Distribution Function, CDF)。DTE根据消息的PDF和CDF值将明文消息映射到种子空间中的一段种子区间。DTE确保消息的PDF值与相关的种子区间在种子空间的概率相同。种子空间通常是n比特数字。n需要足够大,以确保每个消息能够映射到至少一颗种子。在大多数情况下,消息能够被映射到多颗种子,DTE会随机选择其中一颗。

下面以加密咖啡为例介绍蜜罐加密技术。如图 1所示,咖啡消息空间M包含卡普奇诺、浓咖啡、拿铁和摩卡。将这四条消息按照字母进行排列。假定北京有4/8的人喜欢卡普奇诺,2/8的人喜欢浓咖啡,1/8的人喜欢拿铁和摩卡。种子空间是3比特数字空间。根据这些概率值,将这四条消息对应到种子空间的四个区间。当加密卡普奇诺时,DTE从相关的种子区间中随机选择一颗种子, 将这个种子与密钥进行异或得到密文。

图 1 使用蜜罐加密技术加密咖啡 Figure 1 Using honey encryption to encrypt coffee

在解密过程中,密文与密钥进行异或获得种子,然后DTE将种子反向映射到原来的明文。在加密过程中,消息可能含有多个映射选择,映射是单向的而且随机的。但是可以将消息空间中明文进行排序,根据消息的CDF和PDF确定消息对应的种子区间,这样能确保种子区间按照同样顺序进行排列,而且种子区间的CDF值与对应消息在消息空间的CDF值一致。因此能够建立反向映射表, 它包含CDF到明文消息的映射。找到种子,就能确定种子所在的种子区间,找到种子区间,就能确定种子区间与对应明文消息共有的CDF。然后通过在反向映射表中根据CDF值就能查到相应的明文,实现解密。

2.2 实现

在蜜罐加密技术中,消息空间随应用的不同而不同,但是加解密算法是相同的。将DTE抽象为一个对象,作为公共模块,实现加解密算法, 再将消息空间抽象为另一个对象。对于加密,DTE模块从消息空间中获取参数,例如PDF和CDF值。因此,在设计消息空间对象时抽象出DTE所需的参数接口。在解密时,DTE的主要工作是搜索反向映射表获得正确的明文消息, 因此消息空间需要提供消息概率和反向映射表的接口。

2.2.1 消息空间API

DTE将明文消息映射到种子区间中的一颗种子。种子区间的起始处由消息的CDF决定,种子区间的末端由消息的PDF决定。因此可为消息空间定义两个函数:cumulative_probability(msg)和probability(msg),这两个函数接受消息msg为参数,分别返回消息的CDF和PDF值。当定义消息空间时,需要实现这两个函数。

在解密时,DTE通过种子的CDF从反向映射表中查找明文消息。反向映射表储存在一个文件中,定义get_inverse_table_name()函数,返回该文件名。然后由DTE打开文件并进行解密。如果反向映射表不大,可以在系统启动时将其读入内存,那么在解密时,可以使用二分查找算法来寻找明文消息,从而节省时间。但是,如果反向映射表大于主机内存时,内存就无法容纳反向映射表。因此,需要逐行读入该文件,进行处理,最终找到相应的明文。

2.2.2 DTE实现

DTE将明文消息映射到一段种子空间,从中随机选择一颗种子,并将其与密钥异或得到密文。种子空间的起始处由消息的CDF决定,末端由消息的PDF决定,然后从中随机选择一颗种子。

当对密文进行解密时,将密文与密钥进行异或得到种子。然后DTE确定该种子在种子空间的位置。这个位置对应着一个概率值,该概率值位于对应明文消息和其下一条消息的CDF之间。反向映射表每一行包含一个CDF值以及相应的明文。所有的行按照CDF升序排列。DTE根据种子概率值寻找反向映射表,得到明文。

3 蜜罐加密的应用

在本章中,将蜜罐加密技术应用到身份证号码、手机号码和银行卡密码。DTE和消息空间接口的代码可以重用。但需要根据不同的应用定制消息空间。实现代码在https://github.com/yinweihappy168/honeyencryption.git可以下载。

3.1 身份证号码

身份证号码标识居民个人信息, 在银行开户、买房、购买火车/飞机票等场合时使用, 因此很多商家都保存有身份证号码的信息,而身份证号码一旦泄露,就可能被恶意攻击者利用,造成经济和名誉损失。因此,需要对身份证号码进行很好的保护。

身份证号码含有18位,如图 2所示。前6位是位置标识,指示持有者出生的省、市、区。第7到14位标识出生日期,格式为YYYYMMDD,例如,1985年5月11日出生的人表示为19850511。第15到17位是顺序码,唯一标识同一个区中同一天出生的人;特别地,第17位能标识一个人的性别。第18位是校验码,根据特定算法对前17个位进行运算得到。在本文中,不必关心这个位如何计算,因为这个位是确定的。因此当产生消息空间时忽略该位以简化实现。

图 2 身份证号码组成 Figure 2 Composition of identity card number

中国拥有3519个地区,因此前6位有3519个选择。因为一年有365天,所以第11到14位含有365个选择。顺序码有999个选择,但是实际上顺序码很少达到999。因此消息空间共有N=3519*Y*365*999条消息,其中Y是考虑到的年数。假设每条消息拥有同样的PDF值p,那么p=1/N。因此,probability(msg)函数为每条消息返回p。将消息空间按照升序排列, 那么消息的CDF值取决于消息在消息空间所在位置, 则CDF为i/N,其中i为消息在消息空间的位置。因此,实现cumulative_probability(msg)函数时,需要先确定消息的位置,再计算出CDF。

当考虑100年和999个顺序码时,消息空间太大,反向映射表的大小远大于内存大小, 这使得处理开销非常大。因此,只考虑在2012年到2016年之间出生的人,顺序码为1到49之间,即使这样,消息空间也有5.7 GB,大于测试机3 GB内存。

定义Identification类,实现了消息空间接口,定义probability(msg)、cumulative_probability(msg)以及get_inverse_table_file_name(msg)函数。当加密时,DTE输出种子,系统与将密钥与种子异或得到密文。解密时,系统将密钥与密文进行异或得到种子,然后DTE将种子映射到身份证号码。我们也使用了错误的密钥对密文进行解密,蜜罐加密系统从消息空间中输出一条随机消息。从消息格式上看来,像是正确解密了但是实际上却没有。

3.2 手机号码

目前,手机是主要的通信工具;除此之外,手机号码还与储蓄卡或网上银行绑定处理金融交易。手机号码遭到泄露不仅威胁到银行账号的安全,而且持有者容易成为垃圾短信的受害者,因此要对手机号码进行很好的保护。

手机号码由11位组成,前3个位是运行商码。在中国有三大运营商:中国移动、中国联通和中国电信。每个运营商分配了一定数目的运行商码。第4到7位是地理码,我们为北京联通号码进行了蜜罐加密保护。对于北京联通公司,前7位有2872个选择,最后4位有10000个选择,因此消息空间有N=2872*10000条消息。假定每个号码的PDF相同为p,则probability(msg)函数返回p=1/N,cumulative_probability(msg)返回i/N,其中i是消息在消息空间中的位置。

定义MobileNumber类,并实现上述三个接口函数。给定一个手机号码,DTE输出一个随机种子,然后将种子与密钥进行异或,得到密文。对于一个特定的手机号码,使用系统加密多次,系统输出不同的密文,因为种子的选择是随机的。解密过程中,将密文与密钥进行异或,得到种子,然后DTE根据种子查询反向映射表得到明文。

3.3 密码

密码是用来认证用户的常见手段,由大小写字母、数字和符号组成。密码越长,密码的安全性越高。但是,在现实生活中,很多密码很弱,比如6位数字的银行卡密码。因此,银行系统需要好好地保护银行卡密码免于暴力破解攻击。银行卡密码消息空间包含N=106条消息,从000000到999999。对消息空间进行排序,假定每条消息含有同样的概率,因此probability(msg)返回PDF=1/N,cumulative_probability(msg)返回i/N,其中i是消息位置。

实现Password类,并与DTE进行对接。系统能正确地进行加解密。当使用错误的猜测口令时,系统能从消息空间中输出一条消息,以此来迷惑攻击者。

4 性能评估

在本文中,使用东芝Portege M800笔记本作为性能评估平台,处理器是英特尔双核Duo 2.0处理器,内存为3 GB,操作系统为Ubuntu麒麟16.04版本。实验的目的是评估加解密所需时间。为了能够方便地对消息空间进行成倍增加,选择密码消息空间作为实验对象,并将消息空间大小从106增加到108

4.1 加密时间

对于大消息空间,DTE需要逐行读入消息空间文件,计算出消息的PDF和CDF值,确定种子区间并随机选择一颗种子。最终,被选择的种子与密钥进行异或获得密文。

将消息空间的大小从106增加到108,对加密时间进行了评估,实验结果如图 3(a)所示,其中横轴代表消息在消息空间中的位置。例如,0.25代表消息位于消息空间的25%处。如图 3(a)所示,加密时间随着消息在消息空间的位置加深而增长。这是因为加密过程逐行读入消息空间获取概率值。此外,消息空间越大,需要的加密时间越长, 这是因为加密中最耗时的过程是处理消息空间。对于消息空间为106和107时,加密时间比较小,但是对于108消息空间,时间最高达70 s。

图 3 蜜罐加密技术性能 Figure 3 Performance of honey encryption mechanism
4.2 解密时间

在解密过程中,DTE首先将密钥与密文进行异或获取种子,然后确定种子在种子空间中的位置,使用位置信息查询反向映射表,获得明文消息。

对解密时间进行测量,结果如图 3(b)所示,横轴代表明文消息在反向映射表中的位置。从图 3(b)中看出,随着消息在反向映射表中的位置加深,解密时间随之增加。这是因为解密过程逐行读入反向映射表并进行处理,最终实现解密。

5 增强型机制

对于大消息空间,解密算法需要逐行读入反向映射表,根据CDF找到明文消息。对于小的消息空间,因为它占据内存空间小,可以在系统初始化时将整个反向映射表读入内存,然后使用二分查找算法查找对应的明文消息。

当消息空间超过内存大小,加密算法需要逐行读入消息空间文件,确定消息的PDF和CDF值。在Password消息空间中,消息是按照升序排列,那么消息的值V与其位置信息L就相关了,即L=V+1。而加权概率CDF值与消息的位置也相关,即CDF=L/N,其中N是消息数目。因此,CDF值与消息值V也相关。那么在加密过程中,不需要搜索消息空间文件来确定CDF值,只用根据消息值V计算出CDF值。本文改进了加解密算法,并进行了性能评估。需要指出的是并不是所有的消息空间都有这种特性。以身份证号码为例,消息的CDF值与消息本身的值不相关,因此不能进行优化。

增强型机制的加密时间如图 4(a)所示,不管消息位于何处,加密时间仅仅只有136 μs,而且对于106至107消息空间,加密时间曲线重叠,意味着加密时间与消息空间大小不相关。这是因为对消息进行加密时,消息的PDF和CDF值能根据公式计算得出,而不用读入和处理文件。

图 4 增强型蜜罐加密技术性能 Figure 4 Performance of enhanced honey encryption mechanism

增强型机制的解密时间如图 4(b)所示,不管消息位于何处,解密时间大约是45 μs。对于且对于106至107消息空间,解密时间曲线重叠,意味着解密时间与消息空间不相关。这说明当消息空间很小时,二分查找算法的开销相近。我们尝试评估108消息空间的解密时间,可是因为其反向映射表太大,超过内存大小,导致发生错误,因此不能证实该估计。

6 蜜罐加密的其他应用 6.1 非均衡分布的消息空间

在第4章中,将蜜罐加密技术应用到身份证号码、手机号码和银行卡密码。在这些应用中,假设消息空间里的消息构成均衡分布,同时将蜜罐加密技术与对称密钥机制结合设计了加解密算法。在本节中,将蜜罐加密技术应用到非均衡分布的消息空间,也将其扩展到非对称密钥加密机制——RSA(Rivest, Shamir, Adelman)算法。

在第2章中讨论的咖啡例子是非均衡的消息空间,这一节将蜜罐加密技术应用到该咖啡空间。将消息的PDF和CDF值分别存储到字典里。probability(msg)和cumulative_probability(msg)通过查询字典返回相应的概率值。

将咖啡空间大小扩展到106消息,并对加解密性能进行了评估。实验数据如图 5所示。从图 5中可以看出,加解密时间不随消息在消息空间的位置改变而改变。概率值存储在字典中,而字典是无序的。不管消息位于何处,查询字典所需时间相同,因此加密时间相同。同时,解密过程通过二分查找算法查询列表,因此解密时间相同。这个例子说明当消息空间里的消息构成非均衡分布时,可以将概率值存储到字典等数据结构实现加密过程。

图 5 非均衡分布消息空间蜜罐加密技术性能 Figure 5 Performance of honey encryption mechanism with non-uniformly distributed message space
6.2 非对称密钥加密

目前为止,我们将异或(eXclusive OR, XOR)操作作为对称加密算法与蜜罐加密技术结合实现加解密算法。对称加密算法假定涉及的加解密双方能够保护好密钥,而且密钥是通过安全方式进行分发的。在本节中,将蜜罐加密技术应用到公开密钥机制RSA,解除这些限制。

加密过程很容易与RSA结合,使用公钥对DTE的encode()方法输出的随机种子进行加密,得到密文。解密过程的实现较难一些,因此当使用错误的私钥进行解密时,RSA算法会发生错误,而不是输出一个看似有效的种子。为了解决这个问题,系统将解密密钥与正确的私钥进行比较,如果解密密钥是正确的私钥,则运行RSA解密函数,获取种子;否则,系统从种子空间输出一颗随机种子,而不运行RSA解密函数。基于银行卡密码应用(增强版)实现了非对称密钥的蜜罐加密系统,其中消息空间大小为106

对该系统进行了性能评估,实验数据如图 6所示。从图 6中可以看出,基于RSA的蜜罐加密系统所用加密时间是基于对称密钥的蜜罐加密系统的四倍;而且对于解密时间来说,这种差异更加明显。基于对称密钥的蜜罐加密系统的解密时间只有46 μs,而基于RSA的蜜罐加密系统所用解密时间达到0.045s。因为RSA计算开销比较大,所以基于RSA的蜜罐加密系统继承了这个缺点。

图 6 蜜罐加密技术性能(非对称vs.对称密钥) Figure 6 Performance of honey encryption mechanism (asymmetric keys vs. symmetric keys)
7 与传统加密技术比较

以密码应用为例,将蜜罐加密技术与传统的高级加密标准(Advanced Encryption Standard, AES)进行比较。如图 7所示,使用这两种技术分别对字符串“062500”进行加解密。当使用错误的密钥对经过蜜罐加密技术处理的密文进行解密时,系统输出“250650”,和明文消息具有相同的格式,从而迷惑攻击者。这是因为蜜罐加密技术在即使解密秘钥错误时,也能从消息空间输出一条格式正确的消息。而当使用AES进行加密,并使用错误的密钥进行解密,AES算法输出一串乱码。这是因为传统的加密技术没有类似蜜罐加密的机制对破解者进行欺骗, 而攻击者根据这串乱码就可以断定猜测的密钥是错误的。由此可以看出,传统的加密技术能够提供给攻击者足够的信息判断暴力破解何时可以成功退出,因此具有脆弱性。

图 7 蜜罐加密技术与AES比较 Figure 7 Comparison of honey encryption mechanism and AES
8 相关认识

本文针对身份证号码、手机号码以及银行卡密码三个应用设计、实现和评估了蜜罐加密系统,通过研究发现蜜罐加密技术能有效地解决暴力破解问题,但是也存在着一些局限性。

1) 蜜罐加密技术更适合小的消息空间,因为大消息空间的处理开销很大。

在蜜罐加密机制中,如果消息空间很大,导致反向映射表文件大于主机内存,DTE需要逐行读入文件进行处理,因此开销巨大。为了提高加解密速度,最好的方法是将文件读入内存,然后使用二分查找算法进行解密,但是这需要主机有足够大的内存和强大的计算能力。因此,我们认为蜜罐加密技术更适合消息空间比较小的应用,否则,需要系统有很好的硬件配置。

2) 消息空间需要设计好,否则蜜罐加密不能很好地解决暴力破解脆弱性问题。

当猜测到错误口令时,虽然蜜罐加密技术能从消息空间中返回一条格式正确的消息迷惑攻击者,使得攻击者无法确定破解是否成功。但是攻击者可以利用其他手段来确定。在手机号码应用中,攻击者可以通过拨打手机号码来确定手机号码是否正确。对于身份证号码,如果数据库是男性医院的,那么破解得到的身份证不会是女性的。对于0~4岁的小孩身份证,不太可能在网上商城数据库中出现。在中学,学生年龄大都处于12~19岁。利用这些信息可以判断暴力破解结果是否正确。由于在解密过程中,蜜罐加密技术总会从消息空间中输出一条消息,那么所输出的消息不应该具有任何特征,以免被黑客利用进行识别。

3) 蜜罐加密的保护能力随应用的不同而不同。

不管密码是否正确,解密过程会从消息空间中输出一条消息,那么这就会泄露一条信息。这对于不同的应用可能有不同的后果。以身份证号码为例,恶意攻击者能获取一些身份证号码,但是他可能无法获取持有者的姓名,因此他冒用身份证进行犯罪的可能性就不太大。对于发垃圾短信的攻击者,泄露的手机号码就足够了,因为他不关心手机号码的持有者姓名。对于银行卡密码,不管猜测的密码是否正确,解密过程返回的都是随机数字,因此毫无用处,也因此安全性最高。

4) 对于不同的应用,蜜罐加密技术的实现需要定制,没有任何一种实现能够适合所有的应用。

不同的应用有不同的消息空间,所以,没有任何一个蜜罐加密实现能够适合所有的应用场景。为了将蜜罐加密应用到某个应用,需要开发者定制消息空间和反向映射表。

9 结语

为避免被滥用和恶意使用,私密数据需要受到很好的保护。在现行加密算法中,由于攻击者可以根据暴力破解结果来判断猜测的密码是否正确,因此存在着安全隐患。蜜罐加密技术是应对该脆弱性的有效技术。本文介绍了蜜罐加密技术概念,并为身份证号码、手机号码和银行卡密码三个应用设计和实现了蜜罐加密系统。对蜜罐加密系统的性能进行了评估并提出一种增强型机制来解决性能开销问题,并总结了学习到的经验。

参考文献(References)
[1] JUELS A, RISTENPART T. Honey encryption:security beyond the brute-force bound[C]//Proceedings of the 2014 Annual International Conference on the Theory and Applications of Cryptographic Techniques, LNCS 8441. Berlin:Springer, 2014:293-310.
[2] OWEZARSKI P. A near real-time algorithm for autonomous identification and characterization of honeypot attacks[C]//Proceedings of the 10th ACM Symposium on Information, Computer and Communications Security. Berlin:Springer, 2015:531-542.
[3] JUELS A, RIVEST R L. Honeywords:making password-cracking detectable[C]//CCS 2013:Proceedings of the 2013 ACM SIGSAC Conference on Computer & Communications Security. New York:ACM, 2013:145-160.
[4] TYAGI N, WANG J, WEN K, et al. Honey encryption applications[EB/OL].[2017-04-16]. https://courses.csail.mit.edu/6.857/2016/files/tyagi-wang-wen-zuo.pdf.
[5] SPITZNER L. Honeytokens:the other honeypot[J]. Network Security, 2003, 12(2): 12-14.
[6] KIM I S, KIM M H. Agent-based honeynet framework for protecting servers in campus networks[J]. IET Information Security, 2012, 6(3): 202-211. DOI:10.1049/iet-ifs.2011.0154
[7] JAIN P, SARDANA A. Defending against internet worms using honeyfarm[C]//Proceedings of the 2010 CUBE International Information Technology Conference. New York:ACM, 2012:795-800.
[8] 王力, 万园春, 邱卫东. 基于蜜罐的Android恶意代码动态分析[J]. 微型电脑应用, 2016, 32(11): 50-53. (WANG L, WAN Y C, QIU W D. Dynamic analysis of Android malware based on honeypot[J]. Microcomputer Applications, 2016, 32(11): 50-53. DOI:10.3969/j.issn.1007-757X.2016.11.015)
[9] 陈翠云, 梁华庆. 基于蜜罐提升Snort检测能力的设计[J]. 电子设计工程, 2016, 24(4): 48-51. (CHEN C Y, LIANG H Q. Design on enhancement of Snort detection capabilities based on honeypot technology[J]. Electronic Design Engineering, 2016, 24(4): 48-51.)
[10] 郭军权, 诸葛建伟, 孙东红, 等. Spampot:基于分布式蜜罐的垃圾邮件捕获系统[J]. 计算机研究与发展, 2014, 51(5): 1071-1080. (GUO J Q, ZHUGE J W, SUN D H, et al. Spampot:a spam capture system based on distributed honeypots[J]. Journal of Computer Research and Development, 2014, 51(5): 1071-1080. DOI:10.7544/issn1000-1239.2014.20120738)
[11] BELLARE M, RISTENPART T, ROGAWAY P, et al. Format-preserving encryption[C]//Proceedings of the 2009 International Workshop on Selected Areas in Cryptography, LNCS 5867. Berlin:Springer, 2009:295-312.
[12] DYER K P, COULL S E, RISTENPART T, et al. Protocol misidentification made easy with formattransforming encryption[C]//CCS 2013:Proceedings of the 2013 ACM SIGSAC Conference on Computer & Communications Security. New York:ACM, 2013:61-72.
[13] VINAYAK P P, NAHALA M A. Avoiding brute force attack in MANET using honey encryption[J]. International Journal of Science and Research, 2015, 4(3): 83-85.
[14] HUANG Z C, AYDAY E, FELLAY J, et al. GenoGuard:protecting genomic data against brute-force attacks[C]//Proceedings of the 2015 IEEE Symposium on Security and Privacy. Piscataway, NJ:IEEE, 2015:447-462.
[15] YOON J W, KIM H, JO H J, et al. Visual honey encryption:application to steganography[C]//Proceedings of the 20153rd ACM Workshop on Information Hiding and Multimedia Security. New York:ACM, 2015:65-74.