Presentation is loading. Please wait.

Presentation is loading. Please wait.

第12讲 始于系统引导的完整性保护 第8章:系统完整性保护 第2部分/共4部分.

Similar presentations


Presentation on theme: "第12讲 始于系统引导的完整性保护 第8章:系统完整性保护 第2部分/共4部分."— Presentation transcript:

1 第12讲 始于系统引导的完整性保护 第8章:系统完整性保护 第2部分/共4部分

2 本讲内容 主题:始于系统引导的完整性保护 教材内容: 第8.2节:基于系统安全引导的完整性 第8.3节:基于安全协处理器的完整性
© 2009 电子工业出版社

3 系统引导的背景模型 AEGIS安全引导模型 系统引导(Boot或Bootstrap): 1997:
宾夕法尼亚大学 –W.A. Arbaugh、D.J. Farber和J.M. Smith 系统引导(Boot或Bootstrap): 从计算机上电到操作系统进入正常工作状态的过程 © 2009 电子工业出版社

4 普通PC机的一般引导过程 © 2009 电子工业出版社

5 系统控制权的可信交接 组件A  组件B: 组件B的原始指纹hB0 组件B的即时指纹hBt (计算) 组件A 组件A:对比hBt和hB0
如果hBt == hB0,则把控制权交给组件B 否则,控制权不能交给组件B © 2009 电子工业出版社

6 系统可信引导 存放: 组件的原始指纹 包含: 完整性验证代码 可信根(完整性验证根) © 2009 电子工业出版社

7 组件完整性验证技术 © 2009 电子工业出版社

8 基于签名的组件验证 验证组件B的完整性 hB0 组件B的数字签名{hB0}KPRV-S KPUB-S
系统的公钥证书{KPUB-S}KPRV-CA 公钥KPUB-CA © 2009 电子工业出版社

9 AEGIS安全引导 存放: 存放: 其它组件副本 组件的原始指纹 BIOS组件副本 系统恢复内核 公钥证书 数字签名 包含: 完整性验证代码
© 2009 电子工业出版社

10 安全协处理器研究背景 2001年,IBM沃森研究中心推出安全协处理器 -- IBM 4758。
这是该中心的Abyss(1987年)和Citadel(1991年)等成果的延伸,是长期研究的结晶。 © 2009 电子工业出版社

11 IBM 4758是什么? 它是一个缩微的片上计算机: 用途: 内部拥有独立的操作系统 可以运行独立的应用软件
安全性要求高的软件系统可以部署到4758内部,与部署在主机系统上的软件系统协同工作,提供联合的安全解决方案。 © 2009 电子工业出版社

12 IBM 4758的硬件体系结构 © 2009 电子工业出版社

13 处理器与存储器 存 储 器 唯一的对外接口 密封物理外壳 © 2009 电子工业出版社

14 各种存储器的用途 相当于内存 保存秘密信息: 可上锁的BBRAM:固件的秘密信息。 不可锁的BBRAM:软件的秘密信息。
一小部分:是ROM。 其他部分:相当于硬盘。 © 2009 电子工业出版社

15 硬件锁对可锁存储区域的访问控制 © 2009 电子工业出版社

16 硬件锁对闪存区域的访问控制 © 2009 电子工业出版社

17 IBM 4758的软件层次结构 第0层是固件,其它层是软件。 4758命令:建立责任人 第L层的责任人执行命令,设定第L+1层的责任人。
© 2009 电子工业出版社

18 软件层次结构对应的责任人 责任人 作用:安装或更新代码时,进行代码认证。 目的:确保安装或更新的代码是可信的。 © 2009 电子工业出版社

19 代码的认证和安装支持功能 第0层代码提供的功能:基于共享密钥的认证功能+安装第1层代码的功能。
第1层代码提供的功能:基于公开密钥的认证功能+安装和更新代码的功能。 第0层代码是可信的,而且,总能正常工作。 © 2009 电子工业出版社

20 第1层代码的安装 4758拥有密钥K(0),0层责任人知道K(0)。 该责任人利用K(0)证实自己的身份。
该责任人向0层代码签发命令:“安装1层代码”。 0层代码验证命令的有效性,有效时,安装1层代码。 © 2009 电子工业出版社

21 第L层代码的安装(L=2或3) 由第L-1层的责任人为第L层的责任人签发公钥证书: {KPUB(L)}KPRV(L-1) ①
© 2009 电子工业出版社

22 {Cinstall(L, CODE(L), KPUB-new(L), …)}KPRV(L) ②
© 2009 电子工业出版社

23 第L层代码的安装(L=2或3) 辅引导代码在闪存中获取第L-1层责任人的公钥KPUB(L-1),据此验证①的签名,从而获得第L层责任人的公钥KPUB(L),据此验证②的签名,从而获得如③所示的“安装第L层代码”的命令。 © 2009 电子工业出版社

24 第L层代码的安装(L=2或3) 由辅引导代码根据③所示的命令安装第L层代码。 © 2009 电子工业出版社

25 代码真实性的认证 安装时,第L层代码的真实性,在第L-1层责任人的帮助下认证。 4758安装代码时,把对应责任人的公钥保存到闪存中。
实线:安装时的认证。 虚线:更新时的认证。 © 2009 电子工业出版社

26 {Cupdate(L, CODE(L), KPUB-new(L), …)}KPRV(L) ④
第L层代码的更新(1≤L≤3) 第L层责任人向4758签发更新该层代码的命令: {Cupdate(L, CODE(L), KPUB-new(L), …)}KPRV(L) ④ 辅引导代码从闪存取第L层责任人的公钥KPUB(L),据此验证④的签名,从而获得如⑤所示的“更新第L层代码”的命令。 辅引导代码根据⑤所示的命令更新第L层代码。 © 2009 电子工业出版社

27 用消息认证码验证代码完整性 记第L层代码CODE(L)的消息认证码为MAC(L)。
安装或更新CODE(L)时,责任人随代码提供MAC(L),4758保存MAC(L) ,记为MACsaved(L) 。 验证时,根据CODE(L)计算得到MACnow(L)。 对比MACnow(L)和MACsaved(L) ,相同则代码完整性完好,否则代码完整性受损。 © 2009 电子工业出版社

28 IBM 4758的可信引导过程(1/5) 上电或复位时, 4758硬件自动执行ROM中的主引导程序miniboot0,置硬件锁的状态值为0;
© 2009 电子工业出版社

29 IBM 4758的可信引导过程(2/5) miniboot0执行初始上电自检程序POST0,检查基本硬件的工作状况,验证自己的消息认证码和辅引导程序miniboot1的消息认证码,如果发现问题,则中止引导过程,如果顺利,则硬件锁的状态值加1,启动miniboot1的执行; © 2009 电子工业出版社

30 IBM 4758的可信引导过程(3/5) miniboot1执行后续上电自检程序POST1,检查其它硬件的工作状况,验证第2层和第3层的消息认证码,如果发现问题,则中止引导过程,如果顺利,则硬件锁的状态值加1,启动第2层(即操作系统)的执行; © 2009 电子工业出版社

31 IBM 4758的可信引导过程(4/5) 操作系统进行初始化处理,进入正常工作状态(如果必要,则硬件锁的状态值加1),启动第3层(即应用软件)的执行; © 2009 电子工业出版社

32 IBM 4758的可信引导过程(5/5) 应用软件开始运行,必要时,硬件锁的状态值加1,以保护应用软件的私有信息。
© 2009 电子工业出版社

33 IBM 4758完整性保护措施归纳 通过多种措施的综合运用,实现系统的完整性保护: 物理攻击反应 硬件锁访问控制 代码装入认证
消息认证码验证 © 2009 电子工业出版社

34 问题? © 2009 电子工业出版社


Download ppt "第12讲 始于系统引导的完整性保护 第8章:系统完整性保护 第2部分/共4部分."

Similar presentations


Ads by Google