可信计算
安全威胁
- 基于硬件的嵌入式安全解决手段
- 为计算平台增加具有安全保护功能的硬件
- 通过软硬件结合的方式构建可信计算环境
- 使用可行计算环境保证其中运行程序和数据的真实性、机密性、可控性等
- 结合硬件弥补软件安全防护方式带来的不足
- USB Key(加密锁、U盾、友key)
- 可信计算芯片
信息安全学科的研究内容
- 密码学:密码编码学和密码分析学组成。
- 对称密码、公钥密码、Hash函数、密码协议、新型密码技术(生物密码、量子密码)、密码应用。
- 网络安全:在网络各个层次和范围内采取保护措施。
- 通信安全、协议安全、网络防护、入侵检测、入侵响应、可信网络等。
- 信息系统安全:从系统整体上研究信息系统安全与威胁。
- 设备安全、硬件系统安全、软件系统安全、访问控制、信息安全等级保护、可信计算、应用信息系统安全。
- 信息内容安全:信息内容安全是信息在政治、法律、道德层次上的要求。
- 信息内容获取、信息内容的分析与识别、信息内容管控、信息内容安全的法律保障。
- 信息安全主要包括设备安全、数据安全、内容安全、和行为安全。
- 信息系统硬件结构安全和操作系统安全是信息系统安全的基础。
- 密码和网络安全等是信息系统安全的关键技术。
- 只有从硬件和软件底层做起,从整体上采取措施,才能有效确保信息系统的安全。
- 信息系统安全的基本观点:
- 在各种信息安全技术措施中,硬件结构的安全和操作系统的安全是基础,密码等其他安全技术是关键技术。
- 只有从整体上采取措施,特别是从底层采取措施,才能比较有效的解决信息安全问题。
- 在可信计算体系中,密码技术是最重要的核心技术。具体的方案是以密码算法为突破口。
可信计算
解决人与程序之间、人与机器之间的信息安全传递。因此,“可信计算”成为信息安全发展的必由之路。
有别传统的信息安全技术,可信计算的目标希望杜绝的是不可信任代码的存在,包括有漏洞的,或者恶意的。
对于微机,只有从芯片、主板、BIOS(Basic Input Output System,基本输入输出系统)和操作系统做起,采取综合措施,才能提高微机的安全性。正是这一思想推动了可信计算的产生和发展。
可信计算定义:如果一个实体的行为总是以预期的方式达到预期的目标,那么它是可信的。可见 ,可信计算组织对可信的定义强调了行为的预期性。
- 首先建立一个信任根。信任根的可信由技术安全和管理安全确保。
- 再建立一条信任链。从信任根开始到硬件平台、到操作系统、再到应用,一级认证一级,一级信任一级。从而把这种信任扩展到整个计算机系统。
可信赖计算
- 源于容错计算
- 针对元器件、系统和网络,对包括设计、制造、运行和维修在内的全过程中出现的各种非恶意故障进行故障检测、故障诊断、故障避免、故障容许,使系统达到高可用。
安全计算
- 针对系统和网络运行过程中的恶意攻击
信任计算
-
假定真实性可以用于度量并且不考虑度量中的损失,给出了一个信任在实体间传递的方法——在计算机系统中首先建立一个信任根,再建立一条信任链,一级度量认证一级,一级信任一级,把信任关系扩大到整个计算机系统,从而确保计算机系统的可信。
-
广义上的可信计算应该包括可信赖计算、安全计算和信任计算,而本文的可信计算侧重于TCG及沈昌祥院士给出的定义,即信任计算(Trusted Computing)
密码是安全技术核心:以数据加密、用户认证为基础的开放型网络安全保障技术。可望成为网络安全问题的最终的一体化解决方案。
利用加密技术来保护网络系统中包括用户数据在内的所有数据流,在不对网络环境作特殊要求的前提下,从根本上解决 *网络服务中的可用性* 和 *信息的完整性* 这两大要求。
不需要网络拓扑结构的支持,在数据传输中不对所经的网络的安全有要求,实现网络通信过程端到端的安全保障。
目前的防火墙系统都支持基于密码技术的私有虚拟网,可以说密码是任何安全技术所不可缺少的部分。
密码算法分类:按照密钥的特点分类
- 对称密码算法(传统密码算法):就是加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个,又称秘密密钥算法或单密钥算法。
- 非对称密钥算法:加密密钥和解密密钥不相同,从一个很难推出另一个,又称公开密钥算法。公开密钥算法用一个密钥进行加密,而另一个进行解密。其中,加密密钥可以公开,又称公开密钥,简称公钥;解密密钥必须保密,又称私人密钥,简称私钥。
Diffie-Hellman
-
D-H方案提供两个用户生成共享密钥,是基于离散对数问题。步骤如下:
-
Diffie-Hellman密钥协商交换协议
通信相互传递部分信息,再分别根据对方的部分信息计算出秘密信息,使得双方计算结果相同,而攻击者却不能根据所截获的信息计算出这个秘密信息,于是就达到了密钥传递的目的。 这种方法不是密钥传递,而是密钥协商,最终得到的密钥不是某一方选取的,而是根据双方选取的随机数产生的。 其困难程度被认为等同于求解有限域上的离散对数问题。
认证
两个方面:
- 消息/数据认证:证实一个收到的消息来自可信的源点且未被篡改的过程,(完整性、真实性)防止主动攻击。证明接受的消息是可信的内容未被篡改、可靠的消息来源、以正确的顺序及时发送。
- 身份/实体认证:证实某主体的真实身份与其所声称的身份是否相符的过程(真实性)。
散列函数h=H(x)
- 函数参数
- 输入:可以任意长度
- 输出:必须固定长度n比特,一般n=128、160
- 函数特性
- 单向性质:给定h,要找x使H(x)=h是困难的
- 弱抗碰撞特性:对于给定的y,找x,使H(x)=H(y)是困难的
- 强抗碰撞特性(生日攻击):找x和y,使H(x)=H(y)是困难的
- 单向散列函数 h=H(m)
- 单向散列函数(单向+散列)
- 有的散列函数并不能满足单向(抗冲突)性质
- 密码学上用的散列函数都是指单向散列函数
- 抗冲突性质
- 给定h,找m满足H(m)=h很难
- 给定m,找m’满足H(m’)=H(m)很难
- 找m1和m2满足H(m1)=H(m2)很难
- 单向散列函数(单向+散列)
数字签名
-
数字签名
-
数字签名系统
- 具体原理见数字签名-原理_学无止境-CSDN博客_数字签名的原理,下面附一张图。
-
数字签名算法
- 普通数字签名算法:RSA、EIGamal、DSS/DSA
- 不可否认的数字签名算法
- 群签名算法
- 盲签名算法
信息安全技术
- 认证——采用数字签名技术作用于相应数据之上
- 被认证的数据——数据源认证服务
- 用户发送的远程请求——身份认证服务
- 远程设备生成的challenge信息——身份认证
- 完整性——PKI采用了两种技术
- 数字签名:既可以是实体认证,也可以是数据完整性
- MAC(消息认证码)——如DES-CBC-MAC或者HMAC-MD5
- 保密性——公钥分发**随机密钥(会话密钥)**然后用随机密钥对数据加密
- 不可否认性
- 发送方的不可否认——数字签名
- 接受方的不可否认——收条+数字签名
数字证书
通过由可信认证机构签发的数字证书,验证者可以确定证书中包含的公钥是属于该用户的。证书需要有合适的有效期限。
PKI
-
定义:用公钥原理和技术实施和提供安全服务的具有普适性的安全基础设施。
-
一个完整的PKI应该包括:
- 认证机构(CA)
- 证书库
- 证书注销
- 密钥备份和恢复
- 自动密钥更新
- 密钥历史档案
- 交叉认证
- 支持不可否认
- 时间戳
- 客户端软件
-
PKI的关键点
- 性能:尽量少用公钥加解密操作,在实用中,往往结合对称密码技术,避免对大量数据作加解密操作;除非需要数据来源认证才使用签名技术,否则就使用MAC或者HMAC实现数据完整性检验。
- 在线/离线模型
- 签名的验证可以在离线情况下完成
- 用公钥实现保密性也可以在离线情况下完成
- 离线模式的问题:无法获得最新的证书注销信息
- 证书中所支持算法的通用性
- 在提供实际的服务之前,必须协商到一致的算法
- 个体命名:如何命名一个安全个体,取决于CA的命名登记管理工作。
-
PKI主要组成
-
一般的证书产生过程
SSL
ssl被设计用来使用tcp提供一个可靠的端到端安全服务,为两个通讯个体之间提供保密性和完整性
ssl提供四个基本功能:Authentication;Encryption;Integrity;Key Exchange
采用两种加密技术:非对称加密(认证;交换加密密钥)对称加密(加密传输数据)
ssl密码算法
ssl密码算法包含3个:
- 密钥交换协议:定义了共享对称密钥在客户端及服务器之间是怎样协商生成的
- 对称加密算法
- 消息摘要(用于创建消息认证码MAC)
Kerberos
- Kerberos是一种网络认证协议,使用对称加密方式为C/S结构应用程序提供强大的认证服务
- 身份认证过程由中间可信赖的认证服务器(AS)实现
- Ticket:指定一个已通过验证的特许客户端
- Realm:认证服务器可控的网络范围。
- 来源于古希腊神话”三个头的狗——地狱之门守护者”
- 为了减轻每个服务器的负担,Kerberos把身份认证的任务集中在身份认证服务器上。Kerberos的认证服务任务被分配到两个相对独立的服务器:
- 认证服务器AS
- 票据服务器TGS
- 他们同时连接并维护一个中央数据库存放用户口令、标记等重要信息。整个Kerberos系统有四部分组成:AS,TGS,Client,Server
- Kerberos使用两类凭证:票据(ticket)和鉴别码(authenticator)。该两种凭证均使用私有密钥加密,但加密的密钥不同。
TPM架构
TPM至少需要具备四个主要功能:对称/非对称加密、安全存储、完整性度量和签名认证。数据的非对称加密和签名认证是通过RSA算法来实现的,而完整性度量则是通过高效的SHA-1散列算法来完成的,对称加密可以使用任意算法,既可以使用专用协议处理器也可以使用软件来完成。
远程证明
- 远程证明是通过一个典型的“挑战-应答”协议来实现的
- 一个平台(挑战者)向另一个平台(证明者)发送一份挑战证明的消息和一个随机数(nonce),要求获得一份或者多个PCR值对证明者的平台状态进行证明。
- 每个TPM拥有唯一的背书密钥
- 为了尽可能减少隐私的泄露。TCG规定不能使用EK用作身份认证,而使用身份认证密钥AIK以作为EK的别名。TPM使用EK生成AIK,并通过PCA签发的AIK证书来完成身份认证。
数据保护
数据安全保护是可信平台的核心功能之一
- 数据安全保护就是通过密钥对数据采用特定的保护方式进行处理
- 基本单元包括:密钥、数据、数据保护方式
- 用于数据安全保护的密钥分为对称密钥和非对称密钥;被保护的数据可以是任何数据。
- 数据安全保护方式包括:数据加解密、数据封装、数字信封等方式。
附:21年内科大简答题
什么是可信计算?
- 可信计算组织(TCG)用实体行为的预期性来定义“可信”:如果一个实体的行为是以预期的方 式符合预期的目标,则该实体是可信的。
- 广义上可信计算应该包括可信赖计算、安全计算和信任计算。
说明PKI架构中公钥证书申请的流程
- 用户申请:用户获取CA的数字证书(根证书),与安全服务器建立连接;生成自己的公钥和私钥,将公钥和自己的身份信息提交给安全服务器,安全服务器将用户的申请信息传送给RA服务器。
- RA审核:RA收到用户的申请,用户向RA证明自己的身份,RA进行核对,如果RA同意用户申请证书的请求,则对证书申请信息做数字签名;否则拒绝用户的申请。
- CA发行证书:RA将用户申请和RA签名传输给CA,CA对RA数字签名做认证,如果验证通过,则同意用户请求,颁发证书,然后将证书输出。如果认证不通过,则拒绝证书申请。
- RA转发证书:RA从CA得到新的证书,首先将证书输出到LDAP服务器以提供目录浏览,再通知用户证书发行成功,告知证书序列号,到指定的网址去下载证书。
- 用户证书获取:用户使用证书序列号去指定网址下载自己的数字证书,只有持有与申请时提交的公钥配对的私钥才能下载成功。
RSA数字签名
-
体制参数:
选 取 两 个 保 密 的 大 素 数 p 和 q 计 算 n = p × q 和 φ ( n ) = ( p − 1 ) ( q − 1 ) 选 一 个 整 数 e , 满 足 1 < e < φ ( n ) , 且 g c d ( φ ( n ) , e ) = 1 计 算 d , 满 足 d ⋅ e ≡ 1 m o d φ ( n ) 以 p k = { n , e } 为 公 开 钥 , 以 s k = { d , n } 为 私 密 钥 选取两个保密的大素数p和q \\ 计算n=p\times{q}和\varphi(n)=(p-1)(q-1) \\ 选一个整数e,满足1<e<\varphi(n),且gcd(\varphi(n),e)=1 \\ 计算d,满足d\cdot{e}\equiv1\mod{\varphi(n)} \\ 以pk=\{n,e\}为公开钥,以sk=\{d,n\}为私密钥 选取两个保密的大素数p和q计算n=p×q和φ(n)=(p−1)(q−1)选一个整数e,满足1<e<φ(n),且gcd(φ(n),e)=1计算d,满足d⋅e≡1modφ(n)以pk={n,e}为公开钥,以sk={d,n}为私密钥
-
签名过程:
1. A 计 算 消 息 m 的 消 息 摘 要 , 记 为 h ( m ) 2. A 使 用 私 钥 ( n , d ) 对 h ( m ) 加 密 , 生 成 签 名 s , s 满 足 : s = ( h ( m ) ) d m o d n 3. A 发 送 消 息 和 签 名 ( m , s ) 给 B \begin{aligned} &1.\ A计算消息m的消息摘要,记为h(m) \\ &2.\ A使用私钥(n,d)对h(m)加密,生成签名s,s满足:s=(h(m))^d\mod{n} \\ &3.\ A发送消息和签名(m,s)给B \end{aligned} 1. A计算消息m的消息摘要,记为h(m)2. A使用私钥(n,d)对h(m)加密,生成签名s,s满足:s=(h(m))dmodn3. A发送消息和签名(m,s)给B
- (由于A是用自己的私钥对消息摘要加密,所以只用使用s的公钥才能解密该消息摘要,这样A就不可否认自己发送了该消息给B)
-
验证过程:
1. B 计 算 消 息 m 的 消 息 摘 要 , 记 为 h ( m ) 2. B 使 用 公 钥 ( n , e ) 解 密 s , 得 到 : H ( m ) = s e m o d n 3. B 比 较 H ( m ) 与 h ( m ) , 相 同 则 证 明 确 实 是 A 发 送 了 消 息 给 B \begin{aligned} &1.\ B计算消息m的消息摘要,记为h(m) \\ &2.\ B使用公钥(n,e)解密s,得到:H(m)=s^e\mod{n} \\ &3.\ B比较H(m)与h(m),相同则证明确实是A发送了消息给B \end{aligned} 1. B计算消息m的消息摘要,记为h(m)2. B使用公钥(n,e)解密s,得到:H(m)=semodn3. B比较H(m)与h(m),相同则证明确实是A发送了消息给B
Diffie Hellman密钥交换过程
-
步骤:
1. 首 先 A l i c e 和 B o b 共 享 一 个 大 素 数 q 和 一 个 公 共 的 生 成 元 g , 这 些 参 数 公 开 。 2. A l i c e 选 择 随 机 数 X A , B o b 选 择 随 机 数 X B 3. A l i c e 计 算 Y a = g X A m o d q , B o b 计 算 Y b = g X B m o d q 4. A l i c e 和 B o b 交 换 Y a , Y b 5. A l i c e 计 算 K a = Y b X A m o d q , B o b 计 算 K b = Y a X B m o d q 6. 事 实 上 , K a = K b \begin{aligned} &1.\ 首先Alice和Bob共享一个大素数q和一个公共的生成元g,这些参数公开。 \\ &2.\ Alice选择随机数X_A,Bob选择随机数X_B \\ &3.\ Alice计算Y_a=g^{X_A}\mod{q},Bob计算Y_b=g^{X_B}\mod{q} \\ &4.\ Alice和Bob交换Y_a,Y_b \\ &5.\ Alice计算K_a=Y_b^{X_A}\mod{q},Bob计算K_b=Y_a^{X_B}\mod{q} \\ &6.\ 事实上,K_a=K_b \end{aligned} 1. 首先Alice和Bob共享一个大素数q和一个公共的生成元g,这些参数公开。2. Alice选择随机数XA,Bob选择随机数XB3. Alice计算Ya=gXAmodq,Bob计算Yb=gXBmodq4. Alice和Bob交换Ya,Yb5. Alice计算Ka=YbXAmodq,Bob计算Kb=YaXBmodq6. 事实上,Ka=Kb
-
密钥协商交换协议:
- 通信相互传递部分信息,再分别根据对方的部分信息计算出秘密信息,使得双方计算结果相 同,而攻击者却不能根据所截获的信息计算出这个秘密信息,于是就达到了密钥传递的目的。
- 这种方法不是密钥传递,而是密钥协商,最终得到的密钥不是某一方选取的,而是根据双方选取的随机数产生的。