首页
社区
课程
招聘
[原创]《能量分析攻击》系列笔记——第1章:引言(上篇)
2017-4-28 10:23 9314

[原创]《能量分析攻击》系列笔记——第1章:引言(上篇)

2017-4-28 10:23
9314

1998年,Kocher等人指出[1],能量分析攻击可以有效地揭示出智能卡中的秘密信息,人们对密码设备安全性的传统看法瞬间坍塌。

在研究密码设备的防篡改特性之初,Paul Kocher连芯片逆向工程设备都买不起。没有这些设备,就无法实施真正的物理攻击。

于是,Kocher首先考虑了这样一个简单的问题:

  • 对攻击者而言,存在哪些可用却未包含于密码假设中的信息?

这时候的Kocher,已经发现微妙的计时变化有可能会危及密钥。所以,他的脑海里蹦出这样一个想法:

  • 设备的能量消耗,是否也能透露出一些有用的信息?

因此,他从Fry's Electronics买了一台便宜的模拟示波器,价值500美元。把示波器搬回家几个小时之后,他和同事Joshua Jaffe[2]第一次观察到了能量迹[3]。他们还做了一些其他的实验,在这些早期实验中,渐渐诞生出一些方法和技术,它们将在日后产生重大的影响。不过,他们在对密码设备进行攻击时,必须选在晚上进行,因为白天实验室的光线太强,根本无法看清那台廉价的示波器产生的波形。

至此,能量分析攻击这一技术正式进入了研究人员的视线中。

在这之后,人们对能量分析攻击这一领域的研究日益深入,涉及到的学科也逐步扩展到密码学、统计学、测量技术和微电子学[4]。于是,跟历史上的许多技术热点一样,各种各样的研究论文和实验成果如雨后春笋般涌现出来。

这就给想要入门这一领域的人造成了很大的困扰。

这本书就是想做这样一个综述性的工作,能够让读者迅速熟悉各种不同类型的能量分析攻击与防御对策。因此大家在读的时候把它当成科普读物就好,不必将它看做一部研究性的著作,乐趣永远是第一位的。Paul Kocher在为原书作序时,最后一句话就是:And, above all else, have fun.

其实,Kocher的序整个最后一段话都非常精彩,我摘抄在这里:

“读者将会发现,本书非常有趣且令人警醒。卷起袖子准备大干一场吧!要敢于质疑,勤于参加学术会议,并遵纪守法。最重要的一点,愿读者从本书中获得乐趣!”[5,6]


注释:

1 : 参见Kocher等人的论文[KJJ99]:Differential Power Analysishttp://www.cse.msstate.edu/~ramkumar/DPA.pdf

2 : Joshua Jaffe是[KJJ99]这篇论文的三位作者之一,K自然是指Kocher,两个J则分别指Jaffe和另一位作者Jun。

3 : 能量迹Power Taces,我们会在第4章深入了解这个概念。

4 : 微电子学是我的本行专业。

5 : “You will find this book fascinating, interesting, and alarming. As you study, roll up your sleeves. Ask skeptical questions. Attend research conferences. Obey the laws. And, above all else, have fun.”

6 : 该序写于2006年9月,美国旧金山,此时的Kocher已经是Cryptography Research Inc. 的总裁兼首席科学家了。



本章结构: 

(上篇)

1.1:密码学与密码设备

1.2:密码设备攻击

(下篇)

1.3:能量分析攻击

1.4:能量分析攻击防御对策




1.1 密码学与密码设备

我们在开始研究一个领域时,首先要搞清楚一个问题:

  • 我们的研究对象是什么?

很多时候我们都会忽略这样一个最基本的问题,结果辛辛苦苦地钻研很久,到最后却是南辕北辙。

研究软件安全和网络安全的朋友有很多,相信大家一定对“安全”这个概念并不陌生[1]但是由于术业有专攻,对于“硬件”这个词,很可能研究软件和网络安全的人和硬件安全从业者的认识大相庭径。即使同属硬件行业,由于所处的层级不同,对“硬件”这个概念的理解也可能有些差异。

因此,我觉得有必要给我们的研究对象限定一个范围。而这本书的作者,把主要的注意力放在了密码设备上。所以,我们后文研究和讨论的对象,将以密码设备为主。

那么,什么是“密码设备”呢?书中给出了这样的定义:

  • 密码设备(Cryptographic Devices)是能够实现密码算法并储存密钥的电子设备。[2]

那么,什么是“密码算法”呢?简言之:

  • 密码算法(Cryptographic_algorithms)是数学函数,用于对信息进行加密和解密。[3]

现代的安全系统使用密码算法以确保数据的机密性(Confidentiality)、完整性(integrity)以及真实性(authenticity)。

因此,以后大家可以把密码算法简单地看做一个函数。它有:

  • 两个输入参数:消息message;也称为明文:plaintext)和密钥(cryptographic key)
  • 一个输出参数:密文(ciphertext)

加密(encryption)的过程就是将消息或明文映射成密文。解密(decryption)过程则反之。

密码算法需要在密码设备中执行,这一事实直接导致了关于密码算法实际安全性的一个新问题。人们不仅需要关注密码算法自身的安全性,还要审视整个系统的安全性,因此,必须将实现密码算法的设备也纳入考虑。

在现代密码学中,关于安全的密码系统(cryptosystem)有这样一个原理:

  • 即使我们知道系统的所有信息(除了密钥),密码系统也必须是安全的。[4]

这一原理最早由荷兰密码学家Auguste Kerckhoffs提出。[5]

从防护者的角度来理解这句话,就是说:永远不要低估你的对手,你要假设他们足够聪明,并且已经掌握了足够多的信息。而且通常情况下,事实就是如此。

  • 密码设备的安全性不应依赖于实现的保密性。[6]

我们以后还有机会继续讨论密码学的知识,因此,目前来说,大家对密码学的了解到这里就足够了,我们等用到的时候再深入展开。


注释:

1 : 当然,不同领域的人对“安全”的理解也会有很大不同。

2 : Cryptographic devices are electronic devices that implement cryptographic algorithms and that store cryptographic keys.”

3 : 想深入了解有哪些密码算法,可以参考Wikipedia的这个词条:Cryptographic_algorithmshttps://en.wikipedia.org/wiki/Category:Cryptographic_algorithms

4 : A cryptosystem should be secure even if everything about the system, except the key, is public knowledge.

5 : Kerckhoffs's principlehttps://wiki2.org/en/Kerckhoffs%27s_principle

6 : The security of a cryptographic device should not rely on the secrecy of its implementation.




1.2 密码设备攻击

前面一小节,我们清楚了我们的研究对象是密码设备。这一小节,我们就来讨论针对密码设备的攻击。

攻击(Attack)是这样的令人着迷,在某种程度上,它似乎是计算机安全技术发展的原动力。“物竞天择”的规律是如此普遍,以至于有生物的地方就有斗争,有人类的地方就有江湖。

计算机领域的攻击行为,常常会有各种各样的表现形式,入侵系统、获取信息、控制设备,不一而足,这些都属于攻击的范畴,因此大家对这个概念的理解通常比较宏观,相应地也就会带来一些混淆和误解。

所以,我觉得有必要把这本书所说的“攻击”行为做一个限定。本书的作者认为,所有对密码设备的攻击,目标都是为了获得密码设备中的密钥。任何企图通过未授权的方式来获取密钥的尝试都可以称为“攻击”。任何一个试图通过未授权的方式获取密码设备中密钥的个体都可以称为“攻击者”。

看到这里,可能大家脑海里还是没有形成一个清晰的印象。我初读此书时也是这种感觉。因为针对密码设备的攻击,和我们通常所接触的那些攻击形式都不太一样。不过不要紧,后面我会通过一些具体的例子,更详细地来阐释这些概念。

针对密码设备的攻击方式有很多,不同的方式在成本、时间、仪器以及专业知识上大相径庭。因此也有许多分类方法。这本书采用了最常用的分类方法,这个方法基于两个准则。

第一个准则是攻击是主动的还是被动的:

  • 被动攻击(Passive Attacks):被动攻击中,密码设备在大多数情况下都会安装其规范运行,甚至可能会完全按照规范运行。这种情况下,通过观测密码设备的物理特性(如执行时间、能量消耗),攻击者就可以获得密钥。[1]
  • 主动攻击(Active Attacks):主动攻击中,攻击者常会对密码设备本身及其输入、甚至是运行环境进行控制或篡改,从而使密码设备运行异常。通过分析密码设备的异常行为,攻击者就能破解出密钥。[2]

第二个准则是攻击所利用的接口(interface)。

密码设备通常有一些物理接口(physical interfaces)和逻辑接口(logical interfaces),其中有些接口可以很容易地访问,而另一些则只能通过特定的设备才能访问。基于攻击时利用的接口,可以将攻击分为入侵式攻击、半入侵式攻击和非入侵式攻击。所有这些攻击可以是主动攻击,也可以是被动攻击。

  • 入侵式攻击(Invasive Attacks):入侵式攻击是能够对密码设备实施的最强大的一类攻击。这类攻击中,攻击者能够对密码设备进行的操作和处理基本上没有任何限制。[3]
    • 通常,实施入侵式攻击首先要从拆解设备开始。这样,就可以使用探测台来直接访问密码设备的多个不同部分。
    • 如果使用探测台仅用于观测数据信号(比如处理器总线上的数据),那么这种入侵式攻击就是被动攻击。
    • 如果改变了设备中的信号,从而改变了设备的功能,那么这种入侵式攻击就是主动攻击。为了达到这一目的,可以使用激光切片机(laser cutters)、探测台(probing stations)或者是聚焦离子束(focused ion beams)之类的设备和手段。
    • 入侵式攻击的能力异常强大。但是,实施这类攻击所需要的设备通常也十分昂贵。因此,目前只有少数文献讨论该主题,其中最重要的几篇文献包括[KK99][And01][Sko05]
  • 半入侵式攻击(Semi-Invasive Attacks):半入侵式攻击同样需要对密码设备进行拆解。但是,和入侵式攻击不同,半入侵式攻击和芯片表面没有任何直接的电子接触,即保持芯片钝化膜的完好无损。[4]
    • 被动型半入侵式攻击的目标通常是在无需利用或者探测储存单元的数据读取电路的情况下,读取出储存元件中的内容。文献[SSAQ02]公开发表了一种成功的此类攻击。
    • 主动型半入侵式的目标是诱发设备产生故障。这项工作可以通过使用X射线(X-rays)、电磁场(electromagnetic fields)或者是光学(light)等手段来完成。例如,文献[SA03]中发表了关于通过光学手段实施故障诱发攻击的描述。
    • 通常,半入侵式攻击不需要使用实施入侵式攻击所需要的那样昂贵的设备,然而其成本仍然相对高昂。特别地,在现代芯片的表面,选择一个实施半入侵式攻击的正确部位就需要花费一些时间,同时也需要一定的专业知识。
    • 关于半入侵式攻击最全面的已公开文献可以参见Skorobogatov的博士论文[Sko05]
  • 非入侵式攻击(Non-Invasive Attacks):非入侵式攻击中,被攻击的密码设备本质上和其正常工作时的状态没有任何区别,也就是说,这种攻击攻仅仅利用了设备上可被直接访问的接口。设备自身永远不会发生改变,因而实施这种攻击之后不会留下任何痕迹。[5]
    • 大多数非入侵式攻击都可以借助于价格相对低廉的设备来实施,因此这类攻击对密码设备的安全性造成了严重的实际威胁。
    • 特别地,近些年来,被动式非入侵式攻击受到了极大的关注。这种攻击通常也称为侧信道攻击(Side-Channel Attacks,SCA)。最重要的侧信道攻击有三类:
      • 计时攻击(Timing Attacks):[Koc96]
      • 能量分析攻击(Power Analysis Attacks):[KJJ99]
      • 电磁攻击(Electromagnetic Attacks):[GMO01][QS01]
    • 除了侧信道攻击之外,还存在主动型非入侵式攻击。这类攻击的目标是在无需拆解设备的情况下诱发设备产生故障。例如,可以通过时钟突变、电压突变或者改变环境温度等手段来诱发密码设备产生故障。关于这类攻击的综述,可查阅文献[BECN+04]

本书专门讨论能量分析攻击。对于通过其他方式对密码设备实施攻击的更多信息感兴趣的读者,可以参阅文献[ABCS06]。同样,还有一个在线的“侧信道密码分析憩园”[Cha06],它提供了关于面向密码设备中各种攻击的科研文献的一个列表。在这些文献中,绝大多数都涵盖了能量分析攻击及其对策。

截止到作者成书时,在对密码设备的各种攻击中,能量分析攻击受到了最为广泛的关注。事实上,关于该主题的公开文献很多,所以要跟踪该领域内正在进行的所有研究的确很困难。因此,提供一个关于能量分析攻击及其对策的全面概述也是此书的目标之一。

能量分析攻击引起了十分广泛的关注,原因之一是这种攻击功能强大,同时实施起来相对容易。因此,这种攻击对密码设备的安全性造成了严重的威胁。对于现代密码设备的设计和研发而言,熟悉能量分析攻击及其对策就显得尤为重要。通常,借助于能量分析攻击,只需付出很小的代价就可以破译未受保护的密码设备。


注释:

1 : Passive Attacks: In a passive attack, the cryptographic device is operated largely or even entirely within its specification. The secret key is revealed by observing physical properties of the device (e.g. execution time, power consumption).

2 : Active Attacks: In an active attack, the cryptographic device, its inputs, and/or its environment are manipulated (tampered with) in order to make the device behave abnormally. The secret key is revealed by exploiting this abnormal behavior of the device.

3 : Invasive Attacks: An invasive attack is the strongest type of attack that can be mounted on a cryptographic device. In such an attack, there arc essentially no limits to what is done with the cryptographic device in order to reveal its secret key.

4 : Semi-Invasive Attacks: In semi-invasive attacks, the cryptographic device is also depackaged. However, in contrast to invasive attacks, no direct electrical contact to a chip surface is made—the passivation layer stays intact.

5 : Non-Invasive Attacks: In a non-invasive attack, the cryptographic device is essentially attacked as it is, i.e. only directly accessible interfaces are exploited. The device is not permanently altered and therefore no evidence of an attack is left behind. Most non-invasive attacks can be conducted with relatively inexpensive equipment, and hence, these attacks pose a serious practical threat to the security of cryptographic devices.


文献:

[Koc96] : Paul C. Kocher. Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems. http://www.cse.msstate.edu/~ramkumar/TimingAttacks.pdf

[KJJ99] : Paul Kocher, Joshua Jaffe, and Benjamin Jun. Differential Power Analysis. http://www.cse.msstate.edu/~ramkumar/DPA.pdf

[KK99] : Oliver Kömmerling Markus G. Kuhn. Design Principles for Tamper-Resistant Smartcard Processors. https://www.usenix.org/legacy/events/smartcard99/full_papers/kommerling/kommerling.pdf

[And01] : Ross Anderson. Security Engineering - A Guide to Building Dependable Distributed Systems. http://www.cl.cam.ac.uk/~rja14/book.html

[Sko05] : Sergei P. Skorobogatov. Semi-invasive attacks - A new approach to hardware security analysis. https://pdfs.semanticscholar.org/2b7b/a7f2db6ae96cc7869282a1ab5d25fbe02f5b.pdf

[SSAQ02] : David Samyde, Sergei Skorobogatov, Ross Anderson and Jean-Jacques Quisquater. On a New Way to Read Data from Memory. https://www.cl.cam.ac.uk/~rja14/Papers/SISW02.pdf

[SA03] : Sergei P. Skorobogatov and Ross J. Anderson. Optical Fault Induction Attacks. https://www.cl.cam.ac.uk/~sps32/ches02-optofault.pdf

[GMO01] : Karine Gandolfi, Christophe Mourtel, Francis Olivier. Electromagnetic Analysis: Concrete Results. https://link.springer.com/chapter/10.1007/3-540-44709-1_21

[QS01] : Jean-Jacques Quisquater, David Samyde. ElectroMagnetic Analysis (EMA): Measures and Counter-measures for Smart Cards. https://link.springer.com/chapter/10.1007/3-540-45418-7_17

[BECN+04] : Hagai Bar-El, Hamid Choukri, David Naccache, Michael Tunstall, Claire Whelan. The Sorcerer’s Apprentice Guide to Fault Attacks. https://eprint.iacr.org/2004/100.pdf

[ABCS06] : Ross Anderson, Mike Bond, Jolyon Clulow, Sergei Skorobogatov. Cryptographic processors - a survey. https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-641.pdf

[Cha06] : Chair for Communication, Ruhr-Universität Bochum. Security Side Channel Cryptanalysis Lounge. https://www.emsec.rub.de/research/projects/sclounge/



由于章节内容比较多,因此分成上下两篇。

这一贴写完了上篇内容:

1.1:密码学与密码设备

1.2:密码设备攻击

下篇内容预告:

1.3:能量分析攻击

1.4:能量分析攻击防御对策


如果什么地方有错漏或者是存在疑问,欢迎大家在评论区指出~


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞1
打赏
分享
最新回复 (7)
雪    币: 63
活跃值: (261)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Asimov 2017-5-2 22:08
2
0

上篇内容已经完结:

1.1 密码学与密码设备

1.2 密码设备攻击

下篇内容正在写作中:

1.3 能量分析攻击

1.4 能量分析攻击防御对策

雪    币: 189
活跃值: (154)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
flamepeak 1 2017-5-10 15:56
3
0
不错,等更新!
雪    币: 2576
活跃值: (447)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
wyfe 2017-5-10 19:06
4
0
是一本书吗?
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nemolee 2017-5-11 20:08
5
0
同微电子专业,留一个联系方式交流一下可好?
雪    币: 251
活跃值: (1433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
EOF 2017-5-15 18:36
6
0
谢谢LZ!正在研究中
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
starvows 2017-10-25 17:52
7
0
写的挺好,等更新!
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
梅豆儿 2017-10-27 11:41
8
0
点赞,等待更新,能不能更新稍微快点
游客
登录 | 注册 方可回帖
返回