移动终端安全关键技术与应用分析(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-20 09:41:05

点击下载

作者:张滨,赵刚,袁捷,胡入祯,邱勤,徐扬,董航,唐勇

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

移动终端安全关键技术与应用分析

移动终端安全关键技术与应用分析试读:

前言

在移动互联网高速发展的今天,通过智能终端呈现的丰富应用深刻地影响着人们衣食住行的方方面面。从出门查询交通路线,到理财、购物,再到运动、睡眠情况记录,移动终端应用给人们带来了巨大的便利。与此同时,终端安全问题也日益突出,成为社会关注的重点。

我国政府高度重视移动终端安全管理,已经出台“加强移动智能终端进网管理”“打击治理移动互联网恶意程序”“做好应用商店安全检查”等多项要求,取得了一定成效。但是近年来,移动终端安全事件仍呈高发态势。CNCERT在2014年上半年新收录恶意程序36.7万个,较2013年同期增长13%。2014年“七夕”节当天,一条疯狂群发恶意程序链接的手机病毒“××神器”在安卓手机间通过短信大肆传播,不到一天时间感染上百万部手机,广大用户人心惶惶。2014年9月,“好莱坞艳照门”震惊全球,相关报告指出,黑客利用苹果手机Find My iPhone的漏洞攻击了iCloud账户,从而成功盗取欧美女星存储在个人苹果手机上的照片、视频等内容。

移动终端安全关系到用户财产安全、个人信息安全、企业信息安全,甚至国家安全。移动终端安全的维护需要国家、行业、厂商和用户各个层面的共同努力。芯片、终端、操作系统、应用软件厂商提高技术安全标准能够从源头上减少终端安全威胁,政府部门立法和监管能够有效打击不法分子破坏终端安全的行为,电信运营企业在网络侧封堵恶意程序链接是截断病毒传播渠道的重要手段,用户提高安全使用意识则是终端安全的最后一道防线。

本书作者不仅参与了电信行业终端安全相关标准的制定、电信运营商对终端安全环境的治理,还承担了SIM卡防复制、手机不良信息治理、终端操作系统漏洞分析、应用软件测评加固、移动设备管理(MDM)等技术的研究和应用,在长期实践中形成了较全面的终端安全视角。本书理论知识与实际案例并重,详细分析了智能终端软/硬件层面的安全风险,并系统介绍了相关安全管理要求、行业标准和关键技术,希望能够帮助读者由浅入深地了解终端安全的技术现状和发展趋势,同时为企业加强终端安全管理、做好终端安全防护提供帮助。

在本书的撰写过程中,中国移动信息安全管理与运行中心终端测评工作组、中国移动研究院张峰博士、中国移动设计院陈涛博士向作者提供了宝贵的数据素材,在此向他们致以诚挚的感谢!

由于作者水平有限,书中不当之处恐难避免,敬请广大读者批评指正。终端安全技术发展日新月异,作者愿与广大读者深入交流、共同进步。作者2014年10月第1章背景

移动终端具有隐私性、智能性、便携性、网络连通性,已成为我们日常工作、生活的重要工具。在移动终端推动移动互联网快速发展的同时,移动终端安全问题也日益严峻,引起社会的广泛关注。本章主要介绍移动互联网的发展现状、智能终端对移动互联网发展的影响以及移动智能终端面临的安全形势。1.1 移动互联网的发展现状

移动互联网结合了移动通信随时随地的接入能力和互联网强大的创新业务能力,为移动用户提供移动接入方式和互联网服务。伴随着移动通信和互联网融合的扩大和深入,移动互联网为用户提供更具移动特性、更丰富多彩的应用服务。如图1-1所示,从每天早晨的天气指数,到出行路上的交通路况,再到“吃货”必备的美食搜索,甚至是购物、理财……移动互联网应用对于个人生活已是无孔不入。图1-1 移动互联网应用于生活的方方面面[1]

工业和信息化部发布的《2013年通信运营业统计公报》显示,2013年,我国互联网网民数净增5358万人,达6.81亿人,互联网普及率达到45.8%,比2012年提高 3.7个百分点。手机网民规模达到5亿人,比2012年增加8009万人,网民中使用手机上网的人群占比由2012年的74.5%提升至81%,如图1-2所示。手机即时通信、手机搜索、手机视频和手机网络游戏用户规模比2012年分别增长22.3%、25.3%、83.8%和4.5%。电子商务应用在手机端应用发展迅速,手机在线支付用户在手机网民中占比由2012年年末的13.2%上升至25.1%。[2]图1-2 手机网民规模及比例变化情况(2007~2013年)

在移动互联网行业中,与传统行业有较大区别的一点就是应用商店。随着移动互联网行业时代到来,作为用户进入移动互联网的重要入口之一,移动应用商店在移动互联网的产业链中占有举足轻重的位置。苹果App Store 首创移动应用商店模式,无论从盈利方面还是从影响力方面来讲都获得了巨大的成功。此后的许多系统提供商、终端[3]生产厂商和一些互联网公司纷纷加入移动应用商店的市场竞争。从苹果发布App Store 开始,到后来谷歌推出的Android Market(后更名为Google Play)和微软推出的Windows Marketplace(后更名为Windows Phone Store),移动互联网中的应用程序基本上是通过应用商店下载的,全球四大移动应用商店的特点对比见表1-1。[4][5][6][7]表1-1 四大移动应用商店对比

当前移动市场上的主流操作系统Android、iOS、Windows Phone及Symbian均通过官方应用商店为终端用户提供应用程序分发服务,截至2014年3月,苹果App Store、谷歌 Google Play 中的应用程序数[8][9][10]量均已经突破百万,微软 Windows Phone Store和诺基亚OVI商[11][12]店中的应用程序数量则分别达到24万和12万。在应用下载量上,App Store下载量突破600亿,Google Play已超过750亿,在移动平台应用程序中,Android与iOS系统占据了明显的优势。

根据苹果App Store、Google Play、App Annie、亚马逊App Store 及Windows Phone应用商店截至2014年8月的公开数据统计,Facebook、WhatsApp、微信、Youtube、TED等66个非游戏类应用正在全球范围内流行,持续时间都超过1年。这些应用涉及社交、视频、音乐、拍摄、咨询、出行、购物等类别,几乎同时满足人性多种底层的高频需求,包括但不限于满足提升存在感、成长、娱乐、人际沟通、[13]节约时间、节约金钱、获取信息、安全需求等。1.2 移动互联网终端的发展现状

移动互联网环境下,终端出现了便携化、智能化的发展趋势。一方面,手机等便携式设备成为人们上网的主要工具,2013年中国手机网民占整体网民的比例达81%。另一方面,智能终端超过传统的非智能终端,成为手机的主流形式。根据美国市场研究公司IDC的报告,2013年全球智能手机出货量达到10.04亿部,较2012年增长了38.4%,而非移动智能终端出货量仅为8.2亿部,同比下滑了22%。在中国,无论是增速还是市场占有率方面,智能终端已成为国内移动终端市场主体。2013年1~11月,智能终端出货量为3.47亿部,同比增长76.8%,占有率升至72.7%,如图1-3所示。图1-3 2009~2013年智能终端出货量及占比

移动终端的智能性主要体现在4个方面:其一是具备开放的操作系统平台,支持应用程序的灵活开发、安装及运行;其二是具备 PC 级的处理能力,可支持桌面互联网主流应用的移动化迁移;其三是具备高速数据网络接入能力;其四是具备丰富的人机交互界面,即在 3D 等未来显示技术和语音识别、图像识别等多模态交互技术的发展下,以人为核心的更智能的交互方式。

伴随着终端技术和移动通信技术的飞速发展,智能终端的形态和应用呈现多样化趋势。智能终端的产品形式从当初的PDA发展到今天,出现了智能手机、平板电脑、可穿戴设备等多类产品。与此同时,终[14]端与应用整合迈向了新高度,带来了空前的用户体验。从iPhone 4S智能语音识别Siri 功能到可穿戴设备人体运动感应功能,都是软硬件一体化的典型案例。随着终端软硬件技术的进一步融合发展,应用程序能够更加自如地调用应用处理器、图像编解码芯片、显示屏、传感器、摄像头等在内的多类终端硬件能力,而增强现实及普适交互类新型应用正逐步走入我们的生活。1.3 智能终端对移动互联网发展的影响

伴随着移动互联网的飞速发展,网络通信、应用服务、终端设备及其商业模式等均发生了颠覆性的变革,移动智能终端业已成为整个产业竞争的战略制高点和核心平台,对产业发展产生了深远影响。移动智能终端引领了信息通信产业几乎所有关键要素的发展,是移动互联网业务的实现载体,也是用户使用运营商业务的最终环节,更是引领运营商业务和用户发展的关键手段。同时,移动智能终端也成为影[15]响运营商市场竞争的首要因素。

国内手机市场已迈入“智能时代”,不仅终端产业本身发生巨变,移动智能终端也引发了整个ICT产业的颠覆性变革:互联网式开源、免费的终端系统软件制造方式、变革性的终端应用软件传播模式、超乎想象的移动交互体验、爆发性的应用、流量和模式创新颠覆了业界对移动终端原有的认知。移动终端引领的制造与服务的一体化创新和[16]跨界融合正深刻地冲击着整个信息通信产业。

智能终端是移动互联网应用的载体,而应用创新引领ICT产业发展新图景。智能终端的发展推动应用趋向多元化繁荣、广范围延伸,在任何时间、任何地点、利用任何终端享有全媒体的信息服务成为业界努力的方向。应用形态多样化扩展,多屏合一、多屏互动等新型业态批量涌现;应用模式不断变革,高价值信息和能力的持续引入,模糊着虚拟与现实的界限,扩展着应用场景和空间,极大地激励了应用创新的发展;移动互联网与物联网融合进一步深化,推动信息技术应用深入到生产、生活的各个领域,影响范围不断扩大。回顾过去,借力快速普及、规模空前的移动智能终端发展浪潮,电子商务、行业应用已成为移动互联网应用的热点。展望未来,二维码、NFC等技术的普及将推动移动支付逐步走向成熟,随着产业规模迅速扩大,移动电子商务将成为今后一个时期整个ICT领域发展的焦点。1.4 移动智能终端安全形势

在移动智能终端及移动互联网应用高速多元化发展的同时,移动终端安全问题也日益突出,不少安全事件甚至给用户的合法权益造成了严重损害。根据美国安全公司McAfee的数据,2013年全球新增移动恶意程序样本247万个,样本总数较2012年年底增长197%,如图1-4所示,这些恶意程序的传播途径多种多样,包括APP下载、恶意[17]网站访问、垃圾邮件、诱骗短信和含毒广告等。[18]图1-4 全球移动恶意应用数量变化(2011~2013年)

而在我国,CNCERT于2013年捕获移动互联网恶意程序70.3万个,是2012年的3.3倍。2013年,我国境内感染移动互联网恶意程序的用户数量已超过200万。从恶意程序的行为特征上看,恶意扣费类恶意程序数量占72%,排名第一,其次是资费消耗类、系统破坏类和隐私窃取类,如图1-5所示。[19]图1-5 CNCERT统计2013年移动恶意程序行为特征分布

移动恶意程序只是移动智能终端面临的安全威胁之一。移动智能终端不仅承载了传统移动终端的无线通信能力,还具有通用操作系统、接近普通 PC 的强大处理能力、相对固定的IP地址、存储大量个人隐私数据、无处不在的移动接入、开放业务平台、海量的应用等特点,可能被不法分子进行信令攻击、数据攻击、数据窃取、资源滥用、计费欺骗等多种渠道的攻击。综合来看,以下8个方面的安全风险需要我们加以重视。(1)空中接口安全威胁

对于移动通信终端,用户数据/信令均通过无线信号在空间传播并与基站进行通信,因此,用户数据有在空中被截获的风险,如图1-6所示。用户的通话、短消息等个人私密内容均有被攻击者在空中接口进行窃听的威胁。(2)信息存储安全威胁

智能终端的更新换代比较快,当用户需要更换智能终端时,在旧的智能终端中存储的个人私密信息有被泄露的安全威胁。目前很多手机在删除用户电话簿、短消息等信息时仅仅是删除了文件的索引,实际并没有覆盖掉原来的信息,当智能终端流落到别处时,就存在被攻击者恶意恢复智能终端上的所有私密信息的风险,导致用户隐私被泄露。图1-6 空中接口安全威胁

另外,用户在暂时离开智能终端时,如开会放在会场、上班放在办公桌上,智能终端上的信息(电话簿、短信、日程安排等)就存在被泄露的风险,这可能导致一些商务机密被泄露,从而造成巨大的损失。因此,我们需要研究如何安全存储机密信息,如何控制智能终端内信息不被非法访问。(3)终端丢失安全威胁

由于智能终端体积较小且一般随身携带,容易丢失或被盗。智能终端中存储的个人私密信息很多,如果被他人获得并利用,则会给用户造成很大的损失。因此需要研究相应的安全机制来保护智能终端在丢失、被盗的情况下个人信息的安全。(4)数据接入安全威胁

随着技术的不断发展,智能终端接入网络的速度越来越快,这也给智能终端带来巨大的安全威胁。一方面,用户使用各种上网业务越来越便捷、高效,另一方面,通过网络传播病毒的可能性也大大增加。

移动智能终端通过无线网络连接访问互联网络可能访问到携带病毒的网页;玩网络游戏、下载应用程序,都可能造成病毒感染;还有一些业务应用,如彩信等,也可能给智能终端引入病毒。(5)外围接口安全威胁

很多智能终端具有丰富的外围接口,无线接口有蓝牙、Wi-Fi、红外等,有线接口有USB接口等,这些外围接口给智能终端带来了很大的安全威胁。无线接口可能在用户不知情的情况下被非法连通,并进行非法的数据访问和传送,不但造成私密信息的泄露,还可能造成病毒的传播。(6)终端刷机安全威胁

很多智能终端在出厂后还能够进行刷机操作,通过对智能终端刷机,可以修改智能终端的协议栈,从而可能给智能终端植入恶意代码,因此,如果不限制智能终端出厂后的刷机操作,会带来巨大的安全威胁,如图1-7所示。图1-7 终端刷机安全威胁(7)垃圾信息安全风险

越来越多的垃圾短信、骚扰电话及不良信息的传播给用户带来巨大的困扰,如图1-8所示。非法的广告营销以及色情、反动等不良信息的传播,不但会对人们尤其是青少年的身心健康造成伤害,还会对社会造成巨大的安全威胁。图1-8 垃圾信息安全风险(8)终端恶意程序安全威胁

对于智能终端来说,由于采用了开放的操作系统平台,并且智能终端的处理能力大大增强,因此针对智能终端存在的各种漏洞,攻击者开发出的病毒等恶意程序越来越多,危害也越来越大。借助各种外部接口以及无线网络,病毒传播的速度也越来越快。

病毒等恶意程序对智能终端本身可能带来的危害有:侵占终端内存导致移动智能终端死机/关机;修改手机系统设置或者删除用户资料,致使手机软/硬件功能失灵,无法正常工作;盗取手机上保存的个人通讯录、日程安排、个人身份信息,甚至个人机密信息,窃听机主的通话、截获机主的短信,对机主的信息安全构成重大威胁;自动外发大量短信、彩信、拨打声讯台、订购增值业务,导致机主通信费用及信息费用剧增。

手机病毒还可能导致终端对网络产生危害,例如,向网络发起DOS/DDoS攻击,致使网络资源被耗尽,网络无法正常为用户提供服务等。

注 释

[1].中华人民共和国工业和信息化部.2013年通信运营业统计公报[Z].2014.

[2].中华人民共和国工业和信息化部.2013年通信运营业统计公报[Z].2014.

[3].廖梓丞.细数全球最流行的66款App的共同规律[EB/OL].http://kuailiyu.cyzone.cn/article/10906.html?utm_source=articletail&utm_medium=RSS.

[4].Wikipedia.Google Play —— Wikipedia,The Free Encyclopedia[Z].2014.

[5].Wikipedia.App Store(iOS) —— Wikipedia,The Free Encyclopedia[Z].2014.

[6].Microsoft.Microsoft by the Numbers[Z].2014.

[7].Wikipedia.Ovi(Nokia) —— Wikipedia,The Free Encyclopedia[Z].2014.

[8].Wikipedia.Google Play —— Wikipedia,The Free Encyclopedia[Z].2014.

[9].Wikipedia.App Store(iOS) —— Wikipedia,The Free Encyclopedia[Z].2014.

[10].Google.Millions of Choices[Z].2014.

[11].Microsoft.Microsoft by the Numbers[Z].2014.

[12].Wikipedia.Ovi(Nokia) —— Wikipedia,The Free Encyclopedia[Z].2014.

[13].廖梓丞.细数全球最流行的66款App的共同规律[EB/OL].http://kuailiyu.cyzone.cn/article/10906.html?utm_source=articletail&utm_medium=RSS.

[14].电信研究院.2013十大关键词专家点评:智能终端[EB/OL].http://www.miit.gov.cn/n11293472/n11293832/n15214847/n15218234/15924413.html.

[15].李远东.国内移动智能终端的发展现状[EB/OL].http://www.dvbcn.com/2014/06/12-111538.html.

[16].电信研究院.2013十大关键词专家点评:智能终端[EB/OL].http://www.miit.gov.cn/n11293472/n11293832/n15214847/n15218234/15924413.html.

[17].Mcafee.McAfee Labs Threats Report,Fourth Quarter 2013[Z].2013.

[18].Mcafee.McAfee Labs Threats Report,Fourth Quarter 2013[Z].2013.

[19].CNCERT移动互联网安全监测与处置专报[EB/OL].http://www.jn.gov.cn/images/zwgk/jgzn/nsjg/wlyxxaqc/xxaqtb/2013/08/22/346958761F74DC6C17E7FAEDE475ABBB.pdf.2013.第2章安全基础知识

本章主要介绍与终端安全相关的基础知识,包括SIM卡安全涉及的身份认证、访问管理与加密技术,终端应用软件安全涉及的分析技术以及终端安全防护涉及的软件保护技术等。2.1 身份认证与访问管理2.1.1 身份认证

身份认证是确认操作者身份的过程,它是安全的第一道大门,是各种安全措施发挥作用的前提。身份认证可分为用户与主机间的认证和主机与主机间的认证。用户与主机间的认证可以基于以下一个或几个因素:用户所知道的东西,如口令、密码等;用户拥有的东西,如USB Key、印章、智能卡(如信用卡)等;用户所具有的生物特征,如指纹、声音、视网膜、签字、笔迹等。用户身份认证的4种主要方式如下。

1.静态密码

静态密码是一串静态数据,静态密码一旦设定之后,将保持不变,除非用户更改。我们经常见到和使用的“账号+密码”身份验证方式中提及的密码即为静态密码。静态密码的优点是使用方便,缺点是容易被偷看、监听猜测、窃取、遭受字典攻击、重放攻击、木马攻击、暴力破解等。

为了提高静态密码的安全性,用户往往需要定期更改静态密码,但这又导致使用和管理上的困难,特别是当一个用户有多个密码需要管理维护时,非常容易产生密码混淆、遗忘等一系列问题,而且也很难要求所有的用户都能够严格执行定期修改密码的操作,况且即使用户定期修改,密码也会有相当一段时间是固定的。从总体上来说,静态密码的缺点主要表现在以下几个方面。

① 静态密码安全性低,容易遭受各种形式的安全攻击,例如,用户经常使用容易被猜解的简单数字组合。

② 静态密码的易用性和安全性互相排斥,两者不能兼顾,简单容易记忆的密码安全性弱,复杂的静态密码安全性高但是不易记忆和维护。

③ 静态密码的使用和维护不便,特别是当一个用户有几个甚至十几个静态密码需要使用和维护时,静态密码遗忘及遗忘以后所进行的挂失、重置等操作通常需要花费不少的时间和精力,影响使用。

④ 静态密码的风险成本高,一旦泄密将可能造成非常大的损失,而且在发生损失以前,用户通常不知道静态密码已经泄露。

2.动态密码

动态密码与静态密码相对应,是指每次使用时内容不固定的密码。目前动态密码主要有短信密码、动态口令牌、手机令牌等。

① 短信密码。短信密码是指以手机短信形式请求的随机动态密码,如图2-1所示。一般的使用场景是,身份认证系统以短信形式发送随机的6位密码到客户的手机上,客户在登录或者交易认证时输入此动态密码,从而确保系统身份认证的安全性。

② 动态口令牌。动态口令牌是客户手持用来生成动态密码的终端,据特定算法生成不可预测的随机数字组合,主流的是基于时间同步方式,每60s变换一次动态口令,口令一次有效,如图2-2所示。采用动态口令牌方式的优点在于无需安装软件,操作简单;与客户电脑无关,不需要安装其他任何程序即可直接使用。由于动态口令牌是目前最为安全的身份认证方式之一,而且使用起来非常便捷,因此,世界500强企业85%以上用它来保护登录安全,其被广泛应用在VPN、网上银行、电子政务、电子商务等领域。图2-1 短信密码示例图2-2 动态口令牌示例

③ 手机令牌。手机令牌也称手机口令牌,是用来生成动态口令的手机客户端软件,如图2-3所示。在生成动态口令的过程中,不会产生任何通信及费用,不存在在通信信道中被截取的可能性,手机作为动态口令生成的载体,欠费和无信号对其不产生任何影响。图2-3 手机令牌示例

手机令牌的实质就是把动态密码技术用手机软件的方式实现,软件启动后,通过手机运算并在手机液晶屏幕每分钟显示一个不可猜测的动态密码。手机动态密码可在Windows Mobile、iOS、Android、Symbian 等手机操作系统中运行。和动态令牌的硬件令牌形式一样,可做到密钥与手机捆绑。

手机令牌具有高安全性、零成本、无需携带、易于获取以及无物流等优势,相比硬件令牌更符合互联网的精神,由于以上优势,手机令牌可能会成为移动互联网时代动态密码身份认证令牌的主流形式。

3.智能卡

智能卡(Smart Card)又称IC卡、集成电路卡(Integrated Circuit Card),在有些国家和地区也称智慧卡(Intelligent Card)、微电路卡(Microcircuit Card)或微芯片卡等。智能卡内置集成电路芯片,芯片中存有与用户身份相关的数据,并封装成外形与磁卡类似的卡片形式。智能卡由专门的厂商通过专门的设备生产,是不可复制的硬件。智能卡由合法用户随身携带,登录时必须将智能卡插入专用的读卡器读取其中的信息,以验证用户的身份。

智能卡认证是通过智能卡硬件不可复制来保证用户身份不会被仿冒的。然而,由于每次从智能卡中读取的数据是静态的,通过内存扫描或网络监听等技术还是很容易截取用户的身份验证信息,因此仍然存在安全隐患。另外,智能卡需要配合读卡器使用,因此,无论在易用性,还是在成本方面,都比动态令牌稍逊一筹。

4.数字证书

数字证书是一种能在Internet上进行身份验证的权威性电子文档,由权威公正的第三方机构,即CA中心签发。人们可以在互联网交往中用它来证明自己的身份和识别对方的身份。以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性。数字证书可用于:发送安全电子邮件、访问安全站点、网上证券交易、网上招标采购、网上办公、网上保险、网上税务、网上签约和网上银行等安全电子事务处理和安全电子交易活动。

从数字证书的应用角度分类,目前的数字证书在广义上可分为个人数字证书、单位数字证书、单位员工数字证书、服务器证书、VPN证书、WAP证书、代码签名证书和表单签名证书等。常见的数字证书有以下几种。(1)服务器证书(SSL证书)

服务器证书被安装于服务器设备上,用来证明服务器的身份和进行通信加密。服务器证书可以用来防止欺诈钓鱼站点。在服务器上安装服务器证书后,客户端浏览器可以与服务器证书建立SSL连接,在SSL连接上传输的任何数据都会被加密。同时,浏览器会自动验证服务器证书是否有效,验证所访问的站点是否是假冒站点,服务器证书保护的站点多被用来进行密码登录、订单处理、网上银行交易等。全球知名的服务器证书品牌有Globlesign、Verisign、Thawte、Geotrust等。(2)电子邮件证书

电子邮件证书可以用来证明电子邮件发件人的真实性。它并不证明数字证书上标识的证书所有者姓名的真实性,只证明邮件地址的真实性。收到具有有效电子签名的电子邮件,我们除了能相信邮件确实由指定邮箱发出外,还可以确信该邮件从被发出后没有被篡改过。(3)客户端证书

客户端证书主要被用来进行身份验证和电子签名。安全的客户端证书被存储于专用的USB Key(USB 接口的硬件数字证书载体)中,利用USB Key内置的公钥算法实现对用户身份的认证。由于存储于USB Key中的证书不能被导出或复制,且USB Key使用时需要输入Key的保护密码,这种认证手段是目前在Internet上最安全的身份认证手段之一。USB Key的种类有多种,包括指纹识别、第三键确认、语音报读,以及带显示屏的专用USB Key和普通USB Key等。2.1.2 访问控制

1.访问控制的内容

安全访问控制(Access Control)是众多计算机安全解决方案中的一种,是最直观、最自然的一种方案。访问控制是当计算机系统所属的信息资源遭受未经授权的操作威胁时,能够提供适当的管制以及防护的措施,来保护信息资源的机密性与正确性。访问控制实质上是对资源使用的限制,决定主体是否被授权对客体执行某种操作。它涉及的基本要素有发起访问的主体、接受访问的客体和访问授权规则。

访问控制的目的是限制访问主体(用户、进程、服务等)对访问客体(文件、系统等)的访问权限,从而使计算机系统在合法的范围内使用:它用于鉴别使主体合法化,并将组成员关系和特权与主体联系起来。只有经授权的用户,才允许访问特定的系统资源。当用户向系统确定并验证了自己的身份后,就可以请求访问系统。但是,只有某些管理员才可以完全地访问系统,多数用户只拥有非常有限的访问权限。授权是确定用户访问权限的机制。用户访问权限必须始终遵循最小特权原则,该原则规定用户只拥有执行他们的作业功能所必须的访问权限,而不能拥有其他权限。为了保证网络资源受控、合法地使用,用户只能根据自己的权限大小来访问系统资源,不得越权访问。

访问控制已广泛应用在企业信息管理系统中,以用户认证作为访问控制的前提,将各种安全策略相互配合来对企业信息资源起保护作用。信息系统通过实施访问控制,可以限制对关键资源的访问,防止非法用户的侵入或者因合法用户的不慎操作而造成破坏。

2.访问控制的模型

访问控制就是要在访问者和目标之间介入一个安全机制,验证访问者的权限,控制它受保护的目标。访问者提出对目的访问请求,被访问控制执行单元(Access Control Enforcement Function,AEF)截获,执行单元将请求信息和目标信息以决策请求的方式提交给访问控制决策单元(Access Control Decision Function,ADF),决策单元根据相关信息返回决策结果,执行单元根据决策结果决定是否执行访问。其中执行单元和决策单元不必是分开的模块。访问控制模型如图2-4所示。[1]图2-4 访问控制模型

3.访问控制的策略

策略包含应用系统中的所有用户和资源信息以及用户和信息的组织管理方式,用户和资源之间的权限关系,保证安全的管理授权约束,保证系统安全的其他约束。因此,策略主要包含的基本因素如下。

① 访问者。应用中支持哪些用户,定义了用户的范围。

② 目标。策略要保护的是哪些目标,定义了受保护的资源的范围。

③ 动作。应用中限定访问者可以对目标设施的操作。

④ 权限信任源。应用信任什么机构发布的权限信息。

⑤ 访问规则。访问者具有什么权限才能够访问目标。

访问控制策略定义了在系统运行期间的授权和非授权行为,也就是哪些行为是允许发生的,哪些是不允许发生的。一般的访问控制策略有3种,即自主访问控制(Discretionary Access Control,DAC)、强制访问控制(Mandatory Access Control,MAC)和基于角色的访[2]问控制(Role-Based Access Control,RBAC),如图2-5所示。[3]图2-5 访问控制策略

① 自主访问控制。一般是指由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。在自主访问控制下,用户可以按自己的意愿,有选择地与其他用户共享他的文件。在自主访问控制下,一个用户可以自主选择哪些用户可以共享他的文件。例如,Linux系统中的两种自主访问控制策略,一种是9位权限码(User-Group-Other),另一种是访问控制列表(Access Control List,ACL)。

② 强制访问控制。一般是指将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。在强制访问控制下,用户(或其他主体)与文件(或其他客体)都被标记了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定一个用户是否有权访问该文件。例如,多级安全(Multi Level Secure,MLS)就是一种强制访问控制策略。

③ 基于角色的访问控制。一般是指系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合,每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这种控制方法可以使用户不必在每次创建时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多。这种策略的优点是可以简化用户的权限管理,减少系统的开销。2.2 加密技术

加密是最常用的安全保密手段,利用技术手段把重要的数据编码进行(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。

加密技术的两个要素是算法和密钥。算法一般是指将可以理解的信息与一串密钥结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的数据。

现代密码学的加密算法从使用密钥策略上,可分为对称密码体制和非对称密码体制两种。2.2.1 对称密码体制

对称密码体制中,使用的密钥必须完全保密,且要求加密密钥和解密密钥相同,或由其中的一个可以很容易地推出另一个,所以,对称密码体制又称为秘密密钥密码体制、单钥密码体制或传统密码体制。对称密码体制包括分组密码和序列密码,典型的对称加密算法有DES、3DES、AES、IDEA、RC4、A5和SEAL等。

对称密码体制的优点如下。

① 加密和解密的速度都比较快,具有很高的数据吞吐率,不仅软件能实现较高的吞吐率,还易于硬件实现,硬件加密/解密的处理速度更快。

② 对称密码体制中使用的密钥相对较短。

③ 密文的长度往往与明文长度相同。

对称密码体制的缺点如下。

① 密钥分发需要安全通道。发送方如何安全、高效地把密钥送到接收方是对称密码体制的软肋,对称密钥的分发过程往往很烦琐,需要付出的代价较高。

② 密钥量大,难以管理。多人用对称密码算法进行保密通信时,将极大地增加密钥管理(包括密钥的生成、使用、存储、备份、存档、更新等)的复杂性。

③ 难以解决不可否认的问题。因为通信双方拥有同样的密钥,所以接收方可以否认接收到某消息,发送方也可以否认发送过某消息,即对称密码体制很难解决鉴别认证和不可否认的问题。2.2.2 非对称密码体制

非对称密码体制主要是为了解决对称密码体制的缺陷而提出的,其一是为了解决对称密码体制中密钥分发和管理的问题,其二是为了解决不可否认的问题。基于以上两点,公钥密码体制在密钥分配和管理、鉴别认证、不可否认性等方面具有重要的意义。

非对称密码体制中使用的密钥有两个,一个是对外公开的公钥,可以像电话号码一样进行注册公布;另一个是必须保存的私钥,只有拥有者才知道。从公钥推出私钥在计算上困难或不可能,非对称密码体制又称为双钥密码体制或公开密钥密码体制。典型的非对称密钥密码体制有RSA、ECC、Rabin、Elgamal和NTRU等。

非对称密码体制的优点如下。

① 密钥分发相对容易。在非对称密码体制中,公钥是公开的,而用公钥加密的信息只有对应的私钥才能解开。所以当用户需要与对方发送对称密钥时,只需利用对方公钥加密这个密钥,而这个加密信息只有拥有相应私钥的对方才能解开并得到对称密钥。

② 密钥管理简单。每个用户只需保存好自己的私钥,对外公布自己的公钥,则n个用户仅需产生n对秘钥,即密钥总量为2n,当n较大时,密钥总量的增长是线性的,而每个用户管理密钥的个数始终为一个。

③ 可以有效地实现数字签名。消息签名的产生来自用户的私钥,其验证使用了用户的公钥,可以使信息不可否认性问题得到解决。

非对称密码体制的缺点如下。

① 与对称密码体制相比,加/解密速度较慢。

② 同等安全强度下,非对称密码体制要求的密钥位数较多。[4]

③ 密文的长度往往大于明文的长度。2.3 软件分析技术2.3.1 静态分析技术

程序静态分析(Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分析、控制流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种[5]代码分析技术。

在实际分析的过程中,完全不运行程序不太可能,分析人员往往会先运行目标程序,寻找程序中可能存在的问题,作为分析的基础。在静态分析的整个过程中,主要的工作就是阅读反汇编的代码,对代码进行分析,发现其中存在的问题。

1.静态分析的特点

程序静态分析是与程序动态分析相对应的代码分析技术,它通过对代码的自动扫描发现隐含的程序问题,主要具有以下特点。

① 不实际执行程序。动态分析是通过在真实或模拟环境中执行程序进行分析的方法,多用于性能测试、功能测试、内存泄露测试等方面。与之相反,静态分析不运行代码,只是通过对代码的静态扫描对程序进行分析。

② 执行速度快、效率高。目前成熟的代码静态分析工具每秒可扫描上万行代码,相对于动态分析,具有检测速度快、效率高的特点。

③ 误报率较高。代码静态分析是通过对程序扫描找到匹配某种规则模式的代码从而发现代码中存在的问题,有时会造成将一些正确代码定位为缺陷的问题,因此,静态分析存在误报率较高的缺陷,可结合动态分析方法进行修正。

2.常用的静态分析技术

① 词法分析。从左至右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描,通过使用正则表达式匹配方法将源代码转换为等价的符号(Token)流,生成相关的符号列表,常用分析工具有Lex。

② 语法分析。判断源程序结构上是否正确,通过使用上下文无关语法将相关符号整理为语法树,常用工具有Yacc。

③ 抽象语法树分析。将程序组织成树状结构,树中相关节点代表了程序中的相关代码,目前已有JavaCC等抽象语法树生成工具。

④ 语义分析。对结构上正确的源程序进行上下文有关性质的审查。

⑤ 控制流分析。生成有向控制流图,用节点表示基本代码块,节点间的有向边代表控制流路径,反向边表示可能存在的循环;还可生成函数调用关系图,表示函数间的嵌套关系。

⑥ 数据流分析。对控制流图进行遍历,记录变量的初始化点和引用点,保存相关数据信息。

⑦ 污点分析。基于数据流图判断源代码中哪些变量可能受到攻[6]击,是验证程序输入、识别代码表达缺陷的关键。

大多数情况下,静态分析的输入都是源程序代码,只有极少数情况会使用目标代码。静态分析越来越多地被应用到程序优化、软件错误检测、信息安全等领域。2.3.2 动态分析技术

动态分析(Dynamic Analysis)是指通过执行被分析应用软件,利用各种方式对软件执行过程进行监控,并在软件运行过程中提取各种数据,分析软件的各种行为和内部实现逻辑,来挖掘软件实现缺陷导致的漏洞,检测软件隐藏功能导致的后门,以及检测恶意代码攻击[7]引起的软件运行状态异常等技术。

常用的动态分析方法主要有动态监控、符号执行、污点传播分析、Fuzz测试等。

1.动态分析的特点

① 程序必须运行。动态分析要求应用程序必须运行在实际硬件环境或虚拟环境中,以分析应用程序的动态运行信息。

② 人工干预。动态分析需要人工干预运行流程,采用多种方式尝试干扰正常运行流程,以达到发现问题的目的。

③ 准确率较高但效率较低。动态分析能够精确地发现应用中实际存在的问题,而且可以将问题全面暴露出来,具有很高的准确性,但由于人工审核有条件限制,所以工作效率较低,远比不上机器分析。

2.常用的动态分析技术

① 动态执行监控。主要以软件调试、虚拟化等技术为基础,通过在受控环境中运行软件,利用系统提供的调试接口直接分析获取应用的动态执行信息。基于调试技术的动态执行监控方法主要利用操作系统和硬件提供的调试接口实现,往往需要修改被分析软件的二进制[8]代码或设置特定的标志位等。基于虚拟化的分析方式通过在系统接[9]口或虚拟硬件的层次构建分析引擎,在硬件层次提取信息。

② 符号执行。在不执行目标软件的前提下,采用数值或逻辑公式表示软件代码指令的操作语义,然后通过对数值及逻辑公式进行推[10]理和求解模拟软件执行过程来实现软件分析的技术。符号执行既可以对代码的全部语义信息进行分析,也可以只对部分语义信息进行分析,其分析过程包括构建符号化描述和模拟执行求解。符号化描述的构建方法由用户经验和分析目标决定,多采用逻辑公式;模拟执行求解通过制订推理规则,在符号化描述的基础上通过求解路径条件完成。符号执行分析方法在使用过程中往往作为辅助技术配合其他方法开展分析。

③ 动态污点传播分析。它是一种确定软件代码中指令与指令、指令与数据之间关系的有效手段,主要包括污点源标记、传播规则制[11]订和污点传播计算3个方面的内容。污点源标记即确定被监控数据的起源,该数据往往是程序中的一段内存或函数的返回值;传播规则是根据程序指令和函数的语义,结合污点源数据的特点所制订的针对污点数据处理过程的推理规则;污点传播计算是在前面两方面工作的基础上,结合动态执行监控获取的动态过程信息,展开对于污点数据处理过程的分析,确定其中指令和指令、指令和数据之间的关系。动态污点传播分析被广泛应用于恶意软件分析、攻击代码检测等软件安[12]全性分析研究中。

④ Fuzz分析方法。该方法通过向目标软件提供按照某种规则构造的外部输入,检测软件在处理这些输入时是否发生系统异常从而发现软件错误。传统的Fuzz分析方法并不猜测哪个数据会导致破坏,而是使用穷举的方式生成数据,通过将尽可能多的杂乱数据投入目标[13]软件中以期触发潜在的程序异常。传统的Fuzz分析方法存在较高的盲目性,分析效率较低,所以当前的Fuzz分析方法往往与符号执行、动态污点传播分析等方式结合,根据已有的软件分析结果,采用一定的规则指导后续测试数据的生成过程,从而提高分析的效率和准

[14]确度。

⑤ 沙箱(Sandboxie)技术。沙箱是一种按照安全策略限制程序行为的执行环境。通常用于应用软件的安全性测试。经典的沙箱系统的实现途径一般是通过拦截系统调用、监视程序行为,然后依据用户定义的策略来控制和限制程序对计算机资源的使用。其主要工作原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。通过加载自身的驱动来保护底层数据,属于驱动级别的保护。例如,用Sandboxie来测试病毒,在里面运行病毒可以说也是安全操作,具体如图2-6所示。图2-6 沙箱2.4 软件保护技术2.4.1 代码混淆技术

代码混淆技术是一种用于对移动代码保护和软件知识产权保护的安全技术。可视为一种高效的编译技术,它将原程序转换成新的程序,[15]新程序具有与原程序相同的外部行为,且代码的安全性能更强。图2-7为代码混淆过程示意。[16]图2-7 代码混淆过程(1)词法转换

词法转换算法是一类原理简单、实现容易的转换算法。程序的设计原则一般是要求对程序中用到的对象、函数与变量用易懂的方式进行命名,这样会给攻击者提供分析的资源和线索。词法变换的原理就是通过对函数和变量名称进行变换,使其违背见名知义的软件工程原则,从而达到增大攻击难度的目的。常用的变换规则有标识符交换、随机字符串替换等。RetrologicSystems 公司的 RetroGuard、EastrigeTM公司的Jshrink和CodingArtTM公司的CodeShield等产品都[17]是基于词法转换算法开发的。

虽然词法转换算法为程序增加的混淆度有限,算法的强度性能比较低,但因其单向性强,转换后无法通过机器攻击还原,同时没有给程序带来额外的开销,算法实现比较容易,而得到了广泛的应用,目[18]前大多数混淆器都支持词法转换。(2)流程转换

流程转换算法是对程序的运行流程进行转换,使攻击者无法掌握程序真正的运行流程,从而达到混淆的目的。流程转换算法包括两个部分,一部分是设计不透明谓词,另一部分是设计改变程序流程的方法。流程转换算法关键在于不透明谓词的设计。

不透明谓词是一种混淆者可知而攻击者却难以判断其值的结构[19]。由于攻击者无法获知真实的原代码,通过不透明谓词这种结构,能方便、有效地构造转换算法来对程序的流程进行混淆。流程转换算法增加了程序的复杂度,其抵抗攻击的能力非常强,但同时带来的开销也很大。(3)数据转换

数据转换算法对程序中的数据结构进行转换,以非常规的方式组织数据,增加攻击者获取有效信息的难度,实现对程序的有效混淆。常用的转换方法有静态数据动态生成、数组结构转换、类继承转换、数据存储空间转换等。

① 静态数据动态生成。利用函数或子程序对静态数据进行动态生成的方式混淆,能增加程序复杂度。将需要混淆的静态数据利用函数或者子程序替代并分散嵌入各控制块后,算法的强度与弹性能大大提升。在应用中适当地选择混淆数据能有效增强算法的性能,可以防止对程序中所有静态数据混淆而增加开销,也不会造成仅对关键数据混淆而给攻击者提供有效提示。

② 数组结构转换。对数组的混淆方式包括将数组拆分为几个子数组、合并几个数组为一个、增加或减少数组的维度等。合并数组增加了程序的复杂度,拆分数组在合并数组的基础上还增加了复杂度,而改变数组维度在这两者之上还增加了复杂度。单独使用一种转换方式抵抗攻击的性能较弱,将上述方式有效组合能大大加强抵抗攻击的强度。

③ 类继承转换。通过对类设计结构以及类继承关系进行混淆,可以隐藏类的设计结构以及类之间的继承关系反映出来的程序设计思路,能有效达到抵抗攻击的目的。类继承转换方法主要有合并类、分割类以及类型隐藏等。类继承转换提高了程序的复杂度,给程序带来的额外开销也很小。

④ 数据存储空间转换。对数据空间位置的随机化增加了攻击者获取有效信息的难度,可以避免设计者对数据以符合逻辑的方式存储给攻击者提供攻击的线索与资源。这类转换算法增加的复杂度较少,但抵抗攻击的能力很强,具有单向性,同时算法开销很小,通常与其[20]他的混淆算法组合使用。2.4.2 软件加壳

软件加壳是用来保护软件不被非法修改或反编译的一种安全机制。加壳保护机制是利用特殊的算法,对编译后的文件(如EXE、DLL)里的数据进行压缩、加密,并且把解压算法、解密算法作为程序的外壳附加到被保护的程序中。当加载器加载程序到内存执行时,壳先于原始程序得到控制权,对原始程序解密、还原后,再把控制权交还给原程序,执行原程序的代码部分。加上外壳后,原程序代码在磁盘文件中一般是以加密的形式存在的,当执行时在内存中还原。程序加壳后不仅可以改变原程序的运行流程和特征,还可以有效改变原[21]程序的静态特征,因此,可以有效地防止破解者对程序的非法修改,同时也可以防止程序被静态反编译。此外,加壳程序可以开发成独立的软件,对大的软件公司而言,开发独立、安全的加壳软件将大大节省软件保护的成本。加壳技术经过多年的发展,已经采用了很多不同的技术,如花指令、代码混淆、加密与压缩等。图2-8为软件加[22]壳原理示意。[23]图2-8 软件加壳原理

按照软件加壳目的和方法,壳可分为两类,第一类是压缩壳(Packers),第二类是保护壳(Protectors)。压缩壳的主要目的是减小程序体积,如ASPack、UPX 和PECompact等。压缩壳实现相对简单,在传统的此类壳中,并没有过多地引入反跟踪、反破解技术,因此,其脱壳相对容易,针对不同的压缩壳,一般都有相应的脱壳机。保护壳更加注重壳软件的安全性,因此,用上了各种反调试、反分析等先进技术,保证程序不被调试、脱壳,其加壳后的体积大小不是其考虑的主要因素,如ASPack、ASProtect、ArmadillO、Themida等,图2-9、图2-10为ASPack和ASProtect加壳软件。随着加壳技术的发展,这两类软件之间的界限越来越模糊,很多加壳软件除具有较强的压缩[24]性能外,还同时具有较强的保护性能。[25]图2-9 ASPack[26]图2-10 ASProtect

软件脱壳就是对软件加壳的逆操作。按照脱壳方式的不同,可以分为工具脱壳和手动脱壳。工具脱壳是指在脱壳过程中,采用专业的脱壳软件,对已加壳的文件进行破解;手动脱壳是指在脱壳过程中,主要依靠破解者的专业知识,辅助以相应的软件,对已加壳的文件进行破解。脱壳软件主要分为两类:专业脱壳软件和通用脱壳软件。专业脱壳软件只能脱掉特定的一种或两种加壳软件所加的壳,是专门针对某种加壳软件的某个版本制作的。通用脱壳软件可以脱掉多种不同的壳。较常见的专业脱壳软件有UnASPack、UPXShell、UnPECompact等。较常见的通用脱壳软件有ProcDump、UN-PACK等。2.4.3 反破解技术

保护应用软件还有一个常用方法就是反破解技术。反破解技术不是单一的一种方法或手段,而是针对软件分析技术的一般流程,总结出通用的一个过程,整个过程可以分为对抗反编译、对抗静态分析、对抗动态调试和防止重编译4个步骤。(1)对抗反编译

对抗反编译一般是通过寻找反编译工具处理软件中的可执行文件或资源文件的缺陷,然后在自己的软件中加以利用。一般的手段是让反编译工具处理经过处理的文件时抛出异常而反编译失败。这样应用软件可以正常运行,而在反编译工具中却是不可以处理的软件。(2)对抗静态分析

对抗静态分析需要综合混淆技术、加壳技术,而且要对开发包进行保护。(3)对抗动态调试

对抗动态调试一般的做法是在代码中加入动态调试检测,当检测到软件被调试器连接或运行在模拟器中时,终止软件的运行。(4)防止重编译

软件破解者无论是注入代码分析还是修改逻辑破解,都会使软件本身的特性改变。针对这种情况,可以采用检查签名和校验保护两种方法防止破解者对软件进行重编译。软件在发布时需要开发人员对其进行签名,而签名使用的密钥文件是开发人员独有的,破解者通常不可能拥有相同的密钥文件,如果软件运行时的签名与发布时的不同,说明软件被篡改过,可以在代码中加入CheckSignature等方法对签名进行校验,终止软件运行。软件重编译后,内部文件的Hash值肯定发生了变化,可以对运行软件的Hash值进行校验,如果与最初的版本不同,说明文件已经被改变,应终止软件运行。

注 释

[1].穆美好.用户身份管理及访问控制技术研究[D].西北工业大学.2005.

[2].穆美好.用户身份管理及访问控制技术研究[D].西北工业大学.2005.

[3].谷利泽,郑世慧,杨义先等.现代密码学教程[M].北京:北京邮电大学出版社.2009.

[4].谷利泽,郑世慧,杨义先等.现代密码学教程[M].北京:北京邮电大学出版社.2009.

[5].丰生强.Android软件安全与逆向分析[M].北京:人民邮电出版社.2013.

[6].百度百科.程序静态分析[EB/OL].http://baike.baidu.com/link?url=LRzYS5ag4SMVCZWL65mh1 Mye7qFo-qAIE_NHTma6kqBDfrAxiRAx_ehuYkAK54j8cGgCUtGmK5KLeliWYf3ra_.

[7].应凌云,杨轶男.软件动态分析与信息系统安全[EB/OL].http://www.docin.com/p-377035033.html.

[8].KIRIANSKYV,BRUENING D,AMARASINGHE S P.Secure execution via program shepherding[A].Proceedingsofthe11thUSENIXSecurity Symposium[C].2002.191-206.

[9].BAYER U,KRUEGEL C,KIRDA E.TTAnalyze:a tool for analyzing malware[A].Proceedings of the 15thAnnual Conference of the European Institute for ComputerAntivirus Research[C].2006.

[10].YANG J,SAR C,TWOHEY P,et al.Automatically generating malicious disks using symbolic execution[A].Proceedings of the 2006 IEEE Symposium on Security and Privacy[C].2006.243-257.

[11].NEWSOME J,SONG D.Dynamic taint analysis for automatic detection,analysis,and signature generation of exploits on commodity software[A].Proceedings of the Network and Distributed System Security Symposium[C].2005.

[12].EGELE M,KRUEGEL C,KIRDA E,et al.Dynamic spyware analysis[A].Proceedings of USENIX Annual Technical Conference[C].2007.233-246.

[13].单锦辉,王戟,齐治昌.面向路径的测试数据自动生成方法述评[J].电子学报,2004,32(1):109-113.

[14].SHARIF M I,LEE W,CUI W,et al.Secure In-VM monitoring using hardware virtualization[A].Proceedings of the 16th ACM Conference on Computer and Communications Security[C].2009.477-487.

[15].BLUM M,EVANS W,GEMMELL P.Checking the correctness of memories[J].Algorithmica 1994,12(2/3):225-244.

[16].红黑联盟.被黑客们使用的代码混淆技术[EB/OL].http://www.2cto.com/Article/201204/128122.html.

[17].沈海波,洪帆.保护软件知识产权的三利器[J].计算机与现代化,2005,4(116):46-49.

[18].雷植洲.代码混淆技术及其在软件安全保护中的应用研究[D].华中科技大学.2007.

[19].甘晟科,段隆振,王凤斌.Java软件的加密方法研究与应用[J].计算机与现代化,2005,2:84-86.

[20].雷植洲.代码混淆技术及其在软件安全保护中的应用研究[D].华中科技大学.2007.

[21].庞立会.PE 文件动态加壳技术的研究与实现[J].计算机工程,2008,10:160-161.

[22].姚为光.软件加壳技术的研究[D].电子科技大学.2011.

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载