- 可信平台度量----完整性度量(哈希函数)
- 可信平台数据保护----加密技术
- 可信平台权限管理----密钥管理
- 可信平台安全信息传输----应用层安全
- 可信平台身份证明----PKI证书,匿名远程证明协议(群签名、隐私协议分析)
密码学的用途
认证 (authentication) 非否认性(nonrepudiation)-不可抵赖性 保密性(privacy) 数据完整性(data integrity) 计算机网络上的通信面临以下的四种威胁: (1) 截获——从网络上窃听他人的通信内容。 (2) 中断——有意中断他人在网络上的通信。 (3) 篡改——故意篡改网络上传送的报文。 (4) 伪造——伪造信息在网络上传送。 截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击。
对称密码学
分组密码一次处理一个数据分组,如DES每次加密64bit消息,AES每次可加密128bit消息。 分组密码工作模式:
ECB(Electronic Code Book)模式
亦即电子码本模式,是最简单的模式,直接利用加密算法分别对分组数据组加密。 如明文分成64比特的分组进行加密,必要时进行填充,每个分组用同一密钥加密。 同样的明文分组得到相同的密文。当明文长度过长时,ECB模式可能不安全。 ECB模式的特性: (1)ECB运行模式在给定的密钥下,同一明文组总产生同样的密文组。 (2)不具有链接依赖性,各组的加密独立于其它分组,重排密文分组,将导致相应的明文分组重排。 (3)具有无错误传播的特点,单个密文分组中有一个或多个比特错误只会影响该分组的解密结果。 (4)安全性有限。由于同一明文产生同样的密文,这会暴露明文数据的格式和统计特征。特别是若明文数据都有固定的格式(例如图像),并需要以协议的形式定义,那么重要的数据常常在同一位置上出现,使密码分析者可以对其进行统计分析、重传和代换攻击。因此当消息长度超过一个组或者重复使用密钥加密多个单组消息时,不建议使用ECB模式。
密码分组链接模式CBC
CBC(Cipher Block Chaining)模式亦即密码分组链接模式,比ECB模式实现复杂、更安全,因此它是最普遍使用的对称密码运行模式。 CBC模式中加密过程第一个明文分组与初始矢量IV(Initial Vector)进行异或,而后面的明文分组和前一密文分组也做异或运算,再使用相同的密钥送至加密算法加密,形成一条链。 特点: 1. CBC模式产生的密文分组不仅与当前明文分组有关,还与以前的密文分组有关。 2. 当密文的第j个分组Cj在传输中被篡改时,接收方在解密时无法正确解密Pj和Pj+1,即CBC具有错误传播性。 3. 当信道噪音等干扰带来密文传输错误时,密文中一个位的错误将影响当前分组以及下一分组的解密。
密码反馈模式CFB
CFB模式能将任意分组密码转化为流密码,因此不需要将消息填充为分组的整数倍。 设传送的每个单元(如一个字符)是j比特长,通常取j=8,与CBC模式一样,明文单元被链接在一起,使得密文依赖是前面所有的明文。 CFB模式的特性如下: (1)输入相同明文,改变IV会导致相同的明文输入得到不同的加密输出,IV无需保密。若待加密消息必须按字符(如电传电报)或按比特处理时,可采用CFB模式。CFB实际上是将加密算法DES作为一个密钥流产生器,因此操作模式使得我们能把分组密码定义为流密码。另外,CFB模式除能获得保密性外,还能用于认证。 (2)CFB与CBC的区别是反馈的密文长度为j,且不是直接与明文相加,而是反馈至密钥产生器。解密采用相同方案,但是使用加密函数而非解密函数。密文分组Cj依赖于Pj和前面的明文分组。
输出反馈模式OFB
Output-Feedback 在OFB模式中,密码算法的输出会反馈到密码算法的输入中。 OFB模式并不是通过密码算法对明文直接进行加密的,而是通过将“明文分组”和“密码算法的输出”进行XOR来产生“密文分组”的。 OFB模式需要使用初始化向量(IV)。一般来讲,我们需要在每次加密时生成一个不同的随机比特序列用作初始化向量。
CFB模式 VS OFB模式
区别仅仅在于密码算法的输入 CFB模式中,密码算法的输入是前一个密文分组,也就是将密文分组反馈到密码算法中,因此有了“密文反馈算法”这个名字。 OFB模式中,密码算法的输入则是密码算法前一个输出,也就是将输出反馈给密码算法,因此就有了“输出反馈模式”这个名字。
计数器模式CTR
CTR(Counter)模式也可将分组密码转换为流密码,使用与明文分组规则相同的计数器长度产生密钥流,与明文分组进行异或。 加密不同的分组所使用的计数器值必须不同,解密采用相同方案,但是使用加密函数而非解密函数。
CTR模式的特性: (1)CTR模式能够对多个分组的加、解密进行并行处理,进行异或之前的基本加密处理不依赖明文和密文的输入。 (2)CTR模式可以看做是CFB模式的一种简化,它使用计数器来更新输入分组,而不是反馈。 (3)不同于ECB和CBC模式,CTR模式只要求实现加密算法,不要求实现解密算法。
流密码
将字符分别与密钥流加密,解密时以同步产生相同的密钥流,其核心问题是密钥流生成器的设计。收发两端密钥的精确同步; 特点:快/RC4/30行代码行/管理密钥困难/数 据包传输、SSL。
对称密钥应用
公钥密码系统
数字签名
非对称加密算法: 非对称加密: 公钥加密,私钥解密; 数字签名:私钥加密,公钥解密; 公钥加密可用于信息分发,私钥加密可用于数字签名。 数字签名的2条假设: 私钥是安全的,只有拥有者获得; 产生数字签名的唯一途径是私钥。
消息摘要
消息摘要(HASH):
- 简化浓缩数据,数据的表示就是摘要
- 公钥密钥处理速度很慢
- 如果用私钥加密全部信息浪费时间,所以只加密数据的一个表示。
- 消息摘要的另外一种叫法叫杂凑(hash)
消息摘要的特性:
- 输出长度是固定的; 输出结果是随机的;输入相差1个比特,结果完全不同; 不能从结果推导输入。只能暴力破解。 不同的输入几乎不会有相同的输出。
- 无法从摘要恢复出消息
- 无法找出两条消息,使得他们的消息摘要相同
碰撞:如果不同的2个信息产生了相同的HASH那么就是一次碰撞。
碰撞是存在的,没有人能按照要求找到一个碰撞。甚至没人发现过碰撞,即使意外也没有。 重要的HASH算法:
- MD(Ron Rivest):
MD(初始)->MD2(进化;128b,不建议继续使用—>MD3(失败)->MD4(有漏洞)->MD5(广泛使用,也存在漏洞,被攻击) - SHA-1:比MD内部更强,摘要为160b。同时还有192b和256b。国密SM3。
- HASH算法的缺点:黑客可篡改内容也可篡改摘要(特别注意:可信计算需要想尽办法实现安全摘要)。
带密钥的摘要HMAC:
HMAC:
- Hash message authentication checksum 消息认证校验和
- Hash Message Authentication Code
检验和
- 改变一个数,检验和也改变
- 改变一个数,再改变另外一个数,抵消检验和不同
运作: SHA-1对“密钥||消息”计算 得到摘要。双方采用同一个密钥,各自将消息和密钥放在一起计算摘要,攻击者必须知道密钥才能改变消息并附以正确的检验和 挑战认证机制
数字签名
安全的数字签名:先hash求数据的表示,然后RSA私钥加密摘要,但是由于结果可由自己的公钥解密,所以不能保密原文。
- 试图修改明文的方式是不可行的
- 试图否认发送信息是不可行的
- 盗取私钥是不可行的
- 实现认证、数据完整性和非否认
签名算法: RSA能加密,能签名。 DSA只能签名不用于加密 ECC(ECDSA):算法与DSA类似。ECDSA的数学基础是椭圆曲线,密钥长度与ECDH相同 安全性:RSA恢复了消息摘要,是一层间接性。DSA和ECDSA是比较2个数,是两层间接性。但是黑客可以只用随机数去碰撞。 性能: 传输长度:DSA/ECDSA传输340bit。RSA是密钥长度1024。 互操作性:RSA/DSA比较普及。
群签名: 所谓群签名(group signature)就是满足这样要求的签名:在一个群签名方案中,一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。与其他数字签名一样,群签名是可以公开验证的,而且可以只用单个群公钥来验证。也可以作为群标志来展示群的主要用途,种类等
应用:比如在公共资源的管理,重要军事情报的签发,重要领导人的选举,电子商务重要新闻的发布,金融合同的签署等事务中,群签名都可以发挥重要作用。比如群签名在电子现金系统中可以有下面的应用:可以利用群盲签名来构造有多个银行参与与发行电子货币的、匿名的、不可跟踪的电子现金系统。在这样的方案中有许多银行参与这个电子现金系统,每一个银行都可以安全的发行电子货币。这些银行形成一个群体受中央银行的控制,中央银行担当了群管理员的角色。
目前群盲签名方案效率不高,这样的电子现金系统离现实应用还有一段距离,因此研究高效的群签名方案,对于实现这样的系统具有重要意义。群签名方案的研究目前是数字签名研究的一个热点
群签名流程: (1)初始化群管理者建立群资源,生成对应的群公钥(Group Public Key)和群私钥(Group Private Key)群公钥对整个系统中的所有用户公开,比如群成员、验证者等。 (2)成员加入在用户加入群的时候,群管理者颁发群证书(Group Certificate)给群成员。 (3)签名群成员利用获得的群证书签署文件,生成群签名。 (4)验证同时验证者利用群公钥仅可以验证所得群签名的正确性,但不能确定群中的正式签署者。 (5)打开群管理者利用群私钥群用户生成的群签名进行追踪,并暴露签署者身份。 公钥传输不可认证的问题;大量分发公钥的问题。解决办法:公钥证书。第三方实体——证书颁发机构。PKI和X.509 判断一个公钥是否属于一个人的最常用方法是数字证书
公钥证书-数字证书
- 公钥证书是一个防篡改的数据集合,它可以证实一个公钥和某个最终用户之间的绑定
- 国际电信联盟(ITU)提出的X.509版本3结构
- 数字证书是名字、公钥、签名三位一体,把名字和公钥看成消息进行签名。证书颁发机构将名字和公钥组成一条消息,再用机构的私钥签署它
- 用户知道证书颁发机构的公钥
PKI的构成: PKI – Public key Infrastructure - 依托主体(relying parties)-用来验证证书真实性
- PKI的各个组成部分协作运转、创建、分配、管理和吊销证书
- 证书颁发机构(CA) :CA最终负责它的所有最终用户身份的真实性。CA必须向所有由它认证的用户和可能使用这些认证信息的可信主体提供它自己的公钥。CA的根证书是自签名的。
- 公共CA:通过internet向大众提供服务。对组织和用户认证
- 私有CA:公司内部或者其他封闭的网络内部建立。
- 注册机构(RA Registration Authority):CA的一个扩展辅助CA完成工作。接受验证注册信息、代表用户生成密钥、接受密钥备份和恢复、吊销证书、颁发设备。
- 证书目录:为了减少最终用户将证书存储于本地机器的需要,CA通常使用一个证书目录,或者中央存储点。
- 密钥恢复服务器:为CA提供了在创建私钥时备份私钥和在以后恢复私钥的一种简单方式。为了解决攻击者可以访问用户私钥并以用户身份伪造消息,一般CA支持2个密钥对,一个用于加密和解密,一个用于签名和验证。
- 管理协议有助于一个PKI内的最终用户之间在线通信和管理。
可以用于RA和最终用户之间通信,也可以用于两个交叉认证的CA之间的通信 注册、初始化、认证、密钥恢复、密钥更新、吊销、交叉认证。 - 操作协议,允许在目录、最终用户主体之间传输证书和吊销的状态信息的协议。常用协议HTTP、FTP、e-mail和LDAP
吊销证书: 当私钥泄露、CA错误、持有者注销,就要吊销没有过期的证书。 吊销列表(CRL): 挂起证书:执行挂起操作。 机构吊销列表(ARL) 信任模型: 认证层次结构,不是加入的所有CA自动信任其他CA,但是必须信任根CA。 交叉认证:非层次信任路径。某个PKI主体可以信任其他PKI的最终用户了。 X.509证书链: 证书链是最常用的用于验证实体和它的公钥之间的绑定的方法。为了获得对某一证书的信任,依托主体必须验证关于每一个证书的三个方面,直到到达一个可信的根 - 证书链的每一个证书是否由证书链上的下一个证书中的公钥对应的私钥签发的
- 证书没有过期,没有被吊销
- 必须符合证书链中的高层证书定义的标准。
获得证书的方式:推模型和拉模型。
管理密钥对:
- 生成密钥对:客户端生成/服务器生成。
- 保护私钥:口令保护Pin、非硬盘的其他硬件介质
- 管理多个密钥对
- 更新密钥对
- 保存密钥对的历史记录
PKI的未来:
- 漫游证书(roaming certificate)
便携性需要 - 属性证书(attribute certificate)
将实体的属性绑定。资格、角色、安全许可、授权信息。属性证书中不包含个体的公钥
|