人机交互智能安全第4讲.pptx
《人机交互智能安全第4讲.pptx》由会员分享,可在线阅读,更多相关《人机交互智能安全第4讲.pptx(75页珍藏版)》请在文库网上搜索。
1、2.2.2 侧信道攻击与防御侧信道攻击(Side-Channel Attack,简称SCA)也叫边信道攻击或旁路攻击,是密码分析的一种主要攻击方式。侧信道攻击主要通过从密码算法的硬件实现运行过程中获取旁路信息,而非暴力破解法或是利用算法中的理论弱点。在侧信道攻击中密码算法正常执行,并不会对密码算法的执行和硬件实现造成破坏或影响,所以侧信道攻击是一种被动型非入侵式攻击。目前市场上大多数嵌入式设备的电路设计都是基于互补金属氧化物半导体(Complementary Metal Oxide Semiconductor,CMOS)工艺的,其实现的基础元件是与、非、异或门电路,密码算法得实现可以通过门电路
2、的状态变化实现。CMOS 反相器是由 PMOS(又称负载管)和 NMOS(又称驱动管)管组成,如图2-5所示为 CMOS 反相器的反向电路原理:当输入电压为高电平时,即Vin=1,与 PMOS 管的电压相等,此时 PMOS 管截止,NMOS 管导通,负载电荷将通过接地将电荷释放,输出为低电压,即Vout=0;当输入为低电平时,即Vin=0,与 NMOS 管的电压相等,此时,NMOS 管截止,PMOS管导通,Vout=Vdd=1。反相器的能量消耗主要分为两部分,一部分是静态消耗,即状态没有任何变化时的能量消耗;另一部分是动态消耗,即当输入信号发生变化时,还要产生额外的能量消耗。一个逻辑元件的能量
3、消耗总和由静态能量和动态能量组成。汉明距离模型(Hamming Distance,HD):通过计算在某个特定时间段内 CMOS反相器由01和10的状态变化总数。依据数据状态变化总数反应算法在该时刻的能量消耗值。汉明重量模型(Hamming Weight,简称HW):汉明距离模型是建立在攻击者对设备网表十分熟悉的前提下,而汉明重量是一种更加有效的方式,即使攻击者对网表一无所知,分析者仍然可以根据汉明重量模型对能量消耗进行建模仿真。在HW模型中,假定能量消耗与被分析数据中比特位为1的个数成正比,不考虑该数据在处理前后的数值;在CMOS电路中,能量消耗根据逻辑状态的变化而变化,并不是数据本身的值,因
4、此,HD模型对电路的能量消耗仿真并不合适。计时攻击主要依据密码芯片在不同密钥的作用下执行的时间有所差异,通过测量密码算法的执行时间而获得密钥。该攻击方法对密码芯片、协议、智能卡均是有效的。在计时攻击中,攻击者通过获得一系列密码算法处理的返回信息和处理时间,进 而对信息分析获得密码参数。其攻击模型如图 2-6所示:我们设定符号意义为m消息,k密钥,S输出,,*是指算法,T:算法计算需要的时间,。假定计算中密钥恒定,且监听者已经破解一组消息及计算时间T,现为了攻击密钥的第i个比特ki,当监听者捕获时间 ,则可建立函数判断比特位的值。假定随机变量 的分布是不同的,通过观察实际的 与 的分布,则有可能
5、推测出ki,进而推测出完整的密钥值。能量攻击由 Kocher 等人提出,该技术方便实用且简单有效,几乎对所有的密码算法均适用,也是发展最快的攻击手段。主要包含简单能量攻击、差分能量攻击、相关能量攻击、互信息分析等。具体攻击描述如下:简单能量攻击(Simple Power Analysis,SPA)是根据密码芯片在计算过程中消耗的功耗特征获取与密钥有关的信息,通过该方法攻击者能够根据能量曲线的特征及其本身具备的经验能够直观的分析出指令执行的顺序,从而对指令顺序与数据相关的密码算法进行破解。该攻击方法只需采集少量的能量曲线,便可实现对密码算法的破解,但是对攻击者的要求较高,需要了解算法的具体执行过
6、程,具备深厚的密码理论知识。例如,在RSA密码算法的执行过程中,当比特位为1和为0时所对应的操作时不一样的,当比特位为1时,执行平方及模乘运算,当比特位为0时,仅有平方运算,因此,我们可以通过直观上的观察,对其能量消耗进行区别以判别密钥信息。因为密码算法在执行过程中,针对每一比特的能量消耗信息在一些时段中会出现较大差别,因此,如果测量设备的精度很高,那么算法所执行的每条指令都能够通过SPA观察出来。RSA密码算法SPA分析如图2-7所示:差分能量攻击(Differential Power Analysis,DPA)经过采集大量的能量曲线,分析能量曲线微小的差分信号来获取关键信息。DPA 首先采
7、集大量的能量曲线,将其作为先验函数,然后,对密钥的猜测值进行中间值计算并采集能量,将其进行分类并作为后验函数,通过分析两组函数之间的相关性来判断猜测密钥是否正确,如果相关性强,则猜测密钥正确,反之,猜测错误。最早的 DPA 模型由 Kocher 提出,如下所示为 DPA 模型:其中,表示能量区分函数;表示输入的消息,可以是明文或密文,是所猜测的密钥值;表示所采集的能量,其中i表示能量曲线数,j 表示各个能量曲线中的采样点。在能量采集结束之后,猜测密钥值,通过对区分函数 与所有的能量曲线做处理,当密钥值猜测错误时,区分函数将对所有的能量曲线进行随机分类,差分结果为随机噪声;若密钥猜测正确,则区分
8、函数所引起的差分峰值就会显示出来,从而验证密钥猜测正确。相关性能量攻击(Correlation Power Analysis,CPA)是由 Brier 等提出,该攻击方法通过一个未知但恒定的参考值,构造具有数据相关性的汉明模型,利用能量消耗样点与被处理数据的汉明重量之间的相关系数进行分析。该攻击方法的假设前提是攻击者已知明文,并能够变化明文且同时采集对应的能量曲线。通过猜测算法的密钥值,结合明文与密钥计算中间变量,利用中间变量的汉明权重和能量的相关系数进行分析,相关系数最高的就是猜测正确的密钥,而对于错误密钥,由于不能正常显示中间变量与功耗之间的正比关系,因此,相关系数较低。其计算公式如下:其
9、中,代表相关系数,P表示能量消耗,HW表示汉明重量,E 表示期望值,D表示方差。故障注入攻击(Fault Injection Attack,FIA)是指攻击者通过某种手段(瞬时高压、电磁脉冲、激光等)在密码算法运行过程中的某一时刻注入故障,使得算法执行错误的操作或者产生错误结果,然后依据这些错误信息进行分析,获取密钥相关的信息。故障注入攻击分为两种:一、当密码算法遭受故障注入攻击之后一直处于非正常的工作模式,使得密码算法在运行过程中一直产生错误结果,称为永久性故障。二、在密码算法运行过程中进行故障注入,使得其某些操作出现错误,当再次运行密码算法时,该算法正常工作,称为短暂性故障。故障分析属于主
10、动攻击,攻击者需要充分掌握算法原理,不同的算法其实现过程也不一样,故障发生的位置、时间等都不一样,在实际的分析过程中,往往需要借助SPA 来确定实施攻击的位置。防御对策的目的都是使密码算法的物理消耗减少或不依赖密码算法执行时的中间值。主流的研究方向分为:低功耗设计、功耗平衡、随机化功耗。其中,低功耗设计是通过降低硬件的能量消耗,减少攻击者可获取的泄露信息;平衡功耗主要是通过平衡不同指令之间的能量消耗,尽可能的使不同指令消耗相同的能量,达到混淆的目的;随机化功耗主要是为了消除能量消耗与密钥之间的依赖性,从而无法根据能量信息获取密钥值。常见的实现方法分为两种,一种称作隐藏(Hiding),一种称作
11、掩码(Masking)。隐藏的目的是破坏被处理数据与能量消耗之间的关联,从而防御侧信道攻击,主要是通过改变算法的实现过程实现。掩码技术是通过引入随机数,对算法执行过程中的中间值进行随机化运算,使得数据在掩码状态下进行操作,从而达到防御侧信道攻击的目的。隐藏防御方案主要通过插入伪操作、乱序等方法来实现隐藏能量与中间值之间的关联,该方案相对较为容易实现。1)插入伪操作插入伪操作的根本思想是在密码算法执行的前后,及算法执行的过程中,随机插入伪操作。插入的伪操作数量越多,算法执行消耗的时间越长,加密操作的位置随机性变化越大,攻击者越难实施攻击。2)乱序乱序操作的核心是在某些密码算法的实现过程中,将不需
12、要顺序执行的操作进行随机化处理。乱序操作与插入伪操作效果相同,都能将算法的能量消耗随机化。但是,乱序操作没有引入过多的操作,所以对算法的数据吞吐量影响不是很明显。乱序操作对算法的整体性能影响较小,且易于实现,是一种很好的隐藏措施。然而,缺点在于并不是一切密码算法都跟操作顺序无关,这取决于算法自身的设计及实现的体系结构,该方法只能针对限定的操作执行,其实际应用范围比较局限。掩码是通过引入随机数,对算法执行过程中涉及到的中间值进行掩码处理,使所有数据在掩码状态下进行计算,从而达到防御侧信道攻击的目的,是最常见也最广泛的一种算法级防御技术。该措施不需改变密码算法的能量消耗特征,仅改变其算法的实现过程
13、,消除密码算法的能量消耗与中间值之间的依赖性。在掩码方案的计算过程中,所有中间数据值 通过与掩码值 进行转换操作,使其满足 ,其中*表示两者之间的运算关系,常见的掩码运算包括异或 、模加、模乘。其中,掩码值 是随机产生,每一次计算过程中的值均不相同,且对攻击者来说是保密的。因此,该方法能够有效的保护中间值信息。根据掩码计算方式的不同,可以将其分为布尔型掩码方案和算术型掩码方案。布尔型掩码方案是指中间数据值与掩码值通过异或操作运算 ;而算术型掩码方案是指中间数据值与掩码值之间的操作为加法或乘法运算 。掩码技术的核心思想是通过掩码来改变中间值,对于给定的信息 能够有效的计算出中间值v。当给定 中的
14、任何一个时,不会泄露关于中间值的任何信息,因此,掩码技术又可以看作是基于两个共享因子的秘密共享方案。根据需要防护的DPA 攻击阶数,可以设定不同的掩码数量,一般来说,为了防御 n阶 DPA 攻击,需要 n个掩码值。但是,将多个掩码值作用到同一个中间值,需要寄存器存储掩码值及更大的内存提供计算,增加资源开销。公钥密码算法的实现主要为算术运算,一般采用加法掩码或者乘法掩码实现侧信道攻击的防御,对应的算术掩码操作称作“盲化”。通过利用算法实现过程中的运算方 法,适当添加一些随机数,对中间值进行掩码处理。如在 RSA 算法的实现过程中,可以对密钥采用加法掩码操作,也可以对密文进行乘法掩码操作。在实施掩
15、码操作的过程中,掩码所达到的效果取决于随机数的随机性好坏,只有生成随机性好的随机数,才能实现对数据的有效掩盖,得到的差分能量曲线没有较大的波动,造成 DPA 区分函数对能量曲线的划分出现错误,消除或降低其相关性。2.2.3 黑客常用攻击方法与防御 黑客,这个时代的独有词,起源于50年代麻省理工学院的实验室中,他们精力充沛,热衷于解决难题。60、70年代,“黑客”一词极富褒义,用于指独立思考、奉公守法的计算机迷,他们智力超群,对电脑全身心投入,对计算机的最大潜力进行智力上的自由探索,为电脑技术的发展做出了巨大贡献。到了80、90年代,计算机越来越重要,大型数据库也越来越多,同时,信息越来越集中在
16、少数人的手里。这样一场新时期的“圈地运动”引起了黑客们的极大反感。黑客认为,信息应共享而不应被少数人所垄断,于是将注意力转移到涉及各种机密的信息数据库上。本节将抽取几种黑客攻击方法加以阐述。1.扫描攻击扫描技术是一种基于网络远程检测目标网络或本地主机安全性脆弱点的技术。获取与网络有关的敏感数据的手段是网络扫描,也称为网络信息采集。它既可能被黑客利用,对网络安全造成危害,也可能被系统管理员用来检测危险。黑客在一次入侵过程中通常会有以下这些动作:(1)搜集目标信息(fingertelnetrusers,各种扫描器如NMAP,ISS,SATAN);(2)查找系统已知漏洞,构造攻击方案(通过安全邮件列
17、表、讨论组的消息等);(3)获得普通用户权限(口令破解,伪装,窃听等);(4)获得超级用户权限(缓冲区溢出,符号连接,root的木马);(5)清除入侵痕迹(utmp,lastlog,messages);(6)设置后门,为下一次进入系统提供方便;(7)作为中转站攻击另一目标。要完成一次成功的网络攻击,第一步就是要收集目标站点的各种信息。对于黑客来说,信息是最好的工具。它可能就是黑客发动攻击的最终目的(如绝密文件、经济情报等等):也可能是黑客获得系统访问权的通行证,如用户口令、认证票据(ticket):也可能是黑客获取系统访问权的前奏,如目标系统的软硬件平台类型、提供的服务与应用及其安全性的强弱等
18、等。攻击者主要利用手工探测或一些扫描软件对目标进行彻底分析,尽可能收集攻击目标的大量可能而有效的信息,以至最后可以分析得到所攻击目标的漏洞列表。分析结果包括:操作系统类型,操作系统版本,所开服务,所开服务版本,网络拓朴结构,网络设备,防火墙,入侵检测装置等等。一次完整的网络安全扫描分为三个阶段:第一阶段:发现目标主机或网络;通常称为主机扫描;第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、运行的服务以及服务软件的版本等;通常称为OS探测和端口扫描;第三阶段:根据搜集到的信息判断或者进一步测试系统是否存在安全漏洞,通常称为漏洞扫描。主机扫描用于网络安全扫描第一阶段,目的是识别系统是否处
19、于活动状态,采用ping命令实现。ping是潜水艇人员的专用术语,表示回应的声纳脉冲。在网络中,用ping命令向目标主机发送ICMP回显请求报文,并等待ICMP回显应答,从而检测网络的连通情况和分析网络速度。经验丰富的网络命令使用者可以手工输入各种探测命令,收集和比较各个目标系统的返回信息,建立一个信息库。此后,当他得到某一返回信息时,便将该返回信息和信息库进行比较,以确认系统版本或所开放的服务等。1)操作系统识别扫描操作系统(Operating System,简称OS)识别是入侵或安全检测需要收集的重要信息,是分析漏洞和各种安全隐患的基础。只有确定了远程主机的操作系统类型、版本,才能对其安全
20、状况作进一步的评估。由于TCP/IP协议栈只是在RFC文档中进行了描述,并没有一个统一的实现标准,可以利用操作系统里的TCP/IP协议栈作为特殊的“指纹”,通过对不同操作系统的TCP/IP协议栈存在的细微差异的鉴别来判定操作系统类型。(1)主动协议栈指纹识别FIN探测向目标主机上一个打开的端口发送一个FIN分组(或无ACK和SYN标记的包),然后等待回应。许多系统如Windows NT、CISCO IOS、HP/UX、IRIX都将返回一个Reset,而有的没有回应。BOGUS标记探测向目标主机发送一个含有未定义的TCP标记的TCP头的SYN包,一些操作系统如Linux将在回应里包含这个未定义的
21、标记,而其它一些系统收到这种包将关闭连接。初始化序列号(ISN)采样探测寻找初始化序列号的值与特定的操作系统之间的规律。如早期的Unix系统初始化序列号以64K递增,而一些新的Unix系统如Solaris、IRIX、FreeBSD、Digital Unix、Cray等则是随机增加初始化序列号的值。Dont Fragment(DF)位探测一些操作系统会设置IP头部“Dont Fragment位”(不分片位)以改善性能,监视这个位就可以判定区分远程OS。TCP初始窗口的大小检测这种方法检查返回的数据包里包含的窗口大小。某些操作系统在实现TCP/IP协议栈时将这个域设置为独特的值。如AIX是0 x3
22、F25,Windows NT和BSD是0 x402E。TCP可选项探测利用发送的TCP数据包里所设定的一些TCP可选项,根据返回包的内容判断操作系统。ACK值探测寻找不同的操作系统在设置ACK序列号上存在的差异和规律。有些操作系统会将其设置为所确认的TCP数据包的序列号,而另外一些则将所确认的TCP数据包序列号加1作为ACK序列号返回。ICMP错误消息抑制有些操作系统限制返回ICMP错误消息的速率。发送一些UDP包给某个随机选定的高端口,统计在给定时间段内接受到的不可达错误消息的数目。ICMP错误消息引用当需要发送ICMP错误消息时,不同的操作系统所引用的原网络包信息量不同。通过检测返回的IC
23、MP错误消息中所引用的消息可以粗略的判断操作系统类型。ICMP错误消息回射完整性某些操作系统对TCP/IP协议栈的实现在返回ICMP错误消息的时候会修改所引用的IP头,可以通过检测其对IP头的改动粗略判断操作系统。(2)被动协议栈指纹识别主动协议栈指纹识别需要主动往目标发送数据包,但由于正常使用网络时数据包不会按这样的顺序出现,因此这些数据包在网络流量中比较惹人注意,容易被IDS(Intrusion Detection System入侵检测系统)捕获。为了提高隐秘性,需要使用被动协议栈指纹识别。它的原理和主动协议栈指纹识别相似,但是它从不主动发送数据包,只是被动的捕获远程主机返回的包来分析其操
24、作系统类型,一般观察以下4个方面:TTL值操作系统对出站的数据包设置的存活时间。Window Size操作系统设置的TCP窗口大小,这个大小是在发送FIN信息包时包含的选项。DF可以查看操作系统是否设置了不准分片位。TOS查看操作系统是否设置了服务类型。被动分析这些属性并将得到的结果与属性库比较,以判断远程操作系统类型。当然,探测到的系统不可能100%正确,也不可能依靠上面的单个信号特征来判断系统类型,但是,通过查看多个信号特征,把足够多的差异组合起来,可以大大提高对远程主机系统判断的精确程度。2)端口扫描TCP/IP协议提出的端口是网络通信进程与外界通讯交流的出口,可被命名和寻址,可以认为是
25、网络通信进程的一种标识符。进程通过系统调用与某端口建立连接绑定后,便会监听这个端口,传输层传给该端口的数据都被相应进程所接收,而相应进程发给传输层的数据都从该端口输出。在互联网上通信双方不仅需要知道对方的IP地址,也需要知道通信程序的端口号。目前使用的IPv4协议支持16位的端口,端口号范围是065535。其中,01023号端口称为熟知端口,被提供给特定的服务使用,由IANA(网络 Assigned Number Authority)管理;102449151号端口称为注册端口,由IANA记录和追踪;4915265535号端口称为动态端口或专用端口,提供给专用应用程序。一个端口就是一个潜在的通信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人机交互 智能 安全