7.1非对称密码
非对称密码技术:
使用一对密钥: 一个用于加密信息,另一个则用于解密信息 。
两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密。
其中加密密钥不同于解密密钥,公钥加密私钥解密,反之也可私钥加密公钥解密。
密钥依据性质划分,将其中的一个向外界公开,称为公钥;另一个则自己保留,称为私钥。
优点 :
•可以安全地交换公钥,保障了密钥的安全性。
•公钥交换,私钥自己保存,便于密钥的管理。
•可扩展性好,密钥数量 2n 个。
•用数字签名能实现抗抵赖性。
缺点:
计算量大,速度慢,不适合与海量数据加密。
问题:非对称密码系统为每个用户使用一对秘钥。如果该公司有1000人,系统将需要2000个秘钥。
答案:非对称密码系统密钥数量为2n,2×1000人=2000
7.1.1 公钥和私钥
公钥(Public key),常用于数据加密(用对方公钥加密)或签名验证(用对方公钥解密)。
私钥(Private key),常用于数据解密(发送方用接收方公钥加密)或数字签名(用自己私钥加密)。
主要公钥密码系统:
7.1.2 Rivest-Shamir-Adleman (RSA):
基于因式分解大素数的天然计算难度(基于两个大素数的乘积分解难题)。
在已提出的公开密钥算法中,RSA是最容易理解和实现的,也是最流行的算法。
RSA算法既可以用于加密又可以用于数字签名。
问题:哪一个公钥加密算法既可以用于加密又可以用于数字签名?
A.DES
B.IDEA
C.Diffie-Hellman
D.RSA
正确答案:D
问题:什么是RSA超越DSA的优点?
A.它既能提供数据签名又能进行加密功能
B.因为使用对称秘钥,它使用更少的资源,加密速度更快。
C.它使用块加密而不是流加密
D.它采用一次性填充(OTP)加密
解析:DSA的主要功能是数字签名与签名验证
DSA不具备对数据进行加密解密的功能
和RSA相比DSA的签名算法更快
正确答案:A
7.1.3 El Gamal:
基于Diffie-Hellman工作的标准离散对数计算。
优点:
免费,可签名、可加密。
缺点:
加密的任何消息都会在长度上翻一倍,速度慢。
由于密的任何消息都加长了一倍,在加密长消息或者通过窄带宽通信线路时,会造成很大困难。
7.1.4 椭圆曲线密码(Elliptic Curve Cryptography, ECC)
基于椭圆曲线离散对数计算的困难性。
用更短的密钥便可实现RSA 加密算法达到的相同加密强度,提供更高等级的安全。
1024位RSA密钥在密码强度上等同于160位椭圆曲线密码系统密钥。
2048位RSA密钥在密码强度上等同于210位椭圆曲线密码系统密钥。
ECC被认为达到同等安全级别需要的密钥位数较短。
Diffie-Hellman
第一个非对称密钥协商算法,重点解决密钥分发问题(用于交换会话密钥)。
基于有限域上的离散对数计算困难的难题。
通信双方在不可信的网络上交换他们彼此的公钥,再在各自的系统上生成相同的对称密钥。
不提供加密、数字签名功能。
Diffie-hellman,是一种密钥协商协议,该协议能够在不安全的通信介质中,由两个实体通过协商生成一个会话密钥(对会话进行加密的密钥),而无需在通信实体间进行事先的加密或沟通,协商生成的密钥将被用来以对称加密的形式加密双方通信过程中的消息。
通信双方在不可信的网络上交换他们彼此的公钥,再在各自的系统上生成相同的对称密钥。
不提供加密、数字签名功能。
Diffie-Hellman:最早产生,计算离散对数,是一种密钥交换协定算法,不加密、不产生数字签名。
RSA:大素数分解,可加密,可签名
EIGamal:离散对数,可加密,可签名,最慢
ECC 椭圆曲线:计算离散对数,功能与 RSA 相似,更快
DSA:EI 的变种,离散对数,不加密,可签名,比 RSA 慢
背包算法:可加密,可签名,已淘汰
7.2 散列函数
散列函数,的目的非常简单——提取一条可能会比较长的长消息,然后从消息内容中衍生出一个唯一输出。这个值就是我们常说的消息摘要。
消息摘要,可由消息的发送者生成,出于两个原因与整条消息一起发送给接收者。
第一个原因,接收者可用同一个散列函数根据整条消息重算消息摘要。
接收者随后可将算出的消息摘要与传来的消息摘要进行比较,确保原发者发送的消息与接收者收到的消息相同。如果两个消息摘要不匹配,意味着消息在传输过程中有某种程度改动。
第二个原因,消息摘要可用来执行数字签名算法。
消息摘要已经改变了表示消息被修改了。
密码散列函数有5个基本要求:
•输入可以是任何长度。
•输出有一个固定长度。
•为任何输入计算散列函数都相对容易。
•散列函数是单向的(意味着很难根据输出确定输入)。
•散列函数无冲突(意味着几乎不可能找到可以产生相同散列值的两条消息)。
常用散列算法:安全散列算法(SHA) 、消息摘要2(MD2) 、消息摘要4(MD4)和消息摘要5(MD5)
7.2.1 安全散列算法(Secure Hash Algorithm, SHA)
安全哈希算法(secure hash algorithm):是美国联邦政府开发的用于创建安全消息摘要的算法。
SHA-1,实际上可以提取任何长度的输入(该算法的实际上限约为2 097152 太字节),由此生成一个160 位消息摘要。SHA-1 算法可处理512 位块中的消息。
无论输入的消息有多大, SHA-1 散列算法永远都生成一个160 位消息摘要。这个固定长度的输出是任何安全散列算法的一项要求。
SHA-1算法弱点:密码算法攻击。
SHA-2有4个变体:
SHA-256, 用512 位块大小生成256 位消息摘要。
SHA-224, 借用了SHA-256 散列的缩减版,用512 位块大小生成224 位消息摘要。
SHA-384, 借用了SHA-512 散列的缩减版,用1024 位块大小生成384 位消息摘要。
SHA-512, 用1024 位块大小生成512 位消息摘要。
SHA-3,SHA-2算法理论上存在与SHA-1相同的弱点。将Keccak算法定位SHA-3标准。
SHA-256如何创建消息摘要:用可变长度的输入消息生成可变长度的消息摘要。
7.2.2 消息摘要2(MD2)
生成128位消息摘要。不安全。
7.2.3 消息摘要4(MD4)
生成128位消息摘要。不安全。
7.2.4 消息摘要5(MD5)
处理512位消息分组,生成128位消息摘要。不安全。
可变长度散列(HAVAL),MD5 的一个变体。128 、160、192 、224 和256 位消息摘要。
散列消息鉴别码(HMAC),可变长度消息摘要。
针对哈希算法的攻击:
(1)碰撞问题(生日攻击,birthday attack)
用同一个散列函数计算两个不同的消息,得到相同的消息摘要。
基于同一种散列函数,如果有两个不同的消息,得到相同的消息摘要,则扰乱了散列函数应具备的规则,被称作碰撞(Collision)。
利用“生日攻击”可以寻找碰撞。
一个房间中,最少应有多少人,才使至少有两人具有相同生日的概率不小于1/2?(答案是23人。概率结果与人的直觉是相违背的。)
一个房间中,最少应有多少人,才能保证其中有一个人的生日与你的生日是一样的概率不小于1/2?(答案是253人。)
(2)彩虹表,
根据散列值重构原始消息发现另一个消息具有同样的散列值,或者发现任何消息对具有相同的散列值(瞎编原文得到相同散列)。
彩虹表内含为常用口令预先算好的散列值,可用来提高口令破解攻击的效果(蛮力攻击)。
(3)密码分析,
Side-Channel攻击是典型的密码分析的一个例子。攻击者不攻击算法而是算法的执行。
彩虹表是另一个密码分析的例子。防止彩虹表攻击的一个方法是“Salted Hash”。
基于密码的密钥派生函数(PBKDF2):
密钥派生函数将密码、盐(salts)和成本因子(Cost Fact)。
对于PBKDF2,成本因子是迭代次数:PBKDF2迭代次数越多,计算密码哈希所需要的时间越长。
因此,迭代计数应该是验证服务器性能允许的最大值,通常至少10000次迭代。
消息验证码:
HMAC(散列处理的消息鉴别码),私钥混入明文计算散列值 (完整性、数据源身份验证、不提供机密性)
CBC-MAC,密码分组链接解密 CBC 模式下,把明文分组,最后一组加密后密文最为MAC值和明文一起发送(完整性、数据源身份验证、不提供机密性)
CMAC,是CBC-MAC的一种变体,提供与 CBC-MAC相同的数据源认证和完整性,但在数学上更为安全。 把密钥加密后得出散列值(有身份验证)
散列,(完整性、不提供机密性或身份验证,只能检测无意的更改)。
HMAC:提供完整性和数据来源的身份验证,CBC-MAC:使用分组密码创建一个MAC。
单向散列函数的属性或特点:将一个固定长度的信息转换为一个任意长度的值。
问题:下面哪一个使用对称密钥和哈希算法?
A.HMAC
B.Triple-DES
C.ISAKMP
D.RSA
正确答案:A
7.3 数字签名
数字签名不提供机密性。
目的:
(1) 有数字签名的消息可以向接收者保证,消息确实来自声称的发送者。
这样的消息还可提供不可否认性保障(即,它们可使发送者日后不能声称消息是伪造的)。
(2) 有数字签名的消息可以向接收者保证,消息在发送者与接收者之间的传送过程中不曾有过改动。
这样可以抵御恶意篡改(第三方篡改消息的含义)和无意改动(由于通信过程中发生的故障,例如电子干扰等)。
数字签名解决,抗抵赖、验证真实性、数据完整性。
数字签名最重要的三个功能,完整性、真实性、不可抵赖性
7.3.1 散列处理的消息鉴别码(Hashed Message Authentication Code,HMAC)
经过HMAC算法执行部分数字签名——可保证消息在传输过程中的完整性,但不提供不可否认性服务。
※ 记住!
如果你要加密消息,使用接收者的公钥。
如果你要解密发送给你的消息,使用自己的私钥。
如果你要给将发送给别人的消息加上数字签名,使用自己的私钥。
如果你要验证别人发来的消息上的签名,使用发送者的公钥。
(发送者的私钥用于创建数字签名)
7.3.2 数字签名标准(Data Signature Standard,DSS)
DSS规定可用来支持数字签名基础设施的加密算法。
数字签名标准DSS可以提供以下服务。(身份验证、数字签名、完整性)
当前得到批准的三种标准加密算法:
FIPS 186-4规定的数字签名算法(DSA)。
ANSIX9.31规定的Rivest-Shamir-Adleman(RSA)算法。
ANSIX9.62 规定的椭圆曲线DSA(ECDSA) 。
代码签名(Code signing),
用于保证代码的完整性的技术,确定谁开发的那段代码, 并确定开发者打算将这段代码用于何处。
代码签名证书和数字证书帮助用户免于下载泄密文件或应用程序。
代码被签名可以确定代码的可靠度并检测是否被开发人员之外的人所修改。
代码签名用于:
确保代码片段不被修改;
识别代码来源(开发者或签名者);
确定代码是否值得为特定目标的信任。
代码签名不能做的事情:
不能保证代码片段免于安全漏洞;
不能保证在执行过程中APP不会装载不安全或更改的代码(如不可行的插件);
不是数字版权管理(DRM)或拷贝保护技术。
7.4 公钥基础设施 (PKI)
PKI是由软件、通信协议、数据格式、安全策略等用于使用、管理、控制公钥密码体制的一套系统。
它主要有三个目的:发布公钥/证书,证明绑定公钥的实体,提供一个公钥有效性的验证。
公钥基础设施PKI包含哪些要素:证书库、证书撤销、时间戳
7.4.1证书
数字证书:
PKI技术采用证书管理公钥,通过第三方的可信任机构认证中心CA (Certificate Authority),把用户的公钥和用户的其他标识信息(如名称、email、身份证号等)捆绑在一起,在Internet网上验证用户的身份。
数字证书向通信双方保证,与他们通信的确实是他们声称的人。数字证书其实就是一个人的公钥的签注副本。
在一个层次型结构的PKI中,最高级的CA常叫做根CA,常常指的是(顶层CA)。
交叉认证,的主要作用是在不同的PKI体系之间建立信任关系。
数字证书用来证明证书持有者是其声明的那个人。
公钥基础设施如何发布公钥?通过数字证书发布
公钥证书(public-key certificate):
是以数字方式签名的声明,它将公钥的值与持有相应私钥的主体(个人、设备和服务)的身份绑定在一起。通过在证书上签名,CA可以核实与证书上公钥相应的私钥为证书所指定的主体所拥有。
(公钥证书)被用来验证用户的身份。
(公钥证书)绑定了主体名称和公钥值。
数字证书的格式,是由 CCITT X.509国际标准所规定的,它包含了以下几点:
• 证书拥有者的姓名
• 证书拥有者的公钥
• 公钥的有效期
• 颁发数字证书的单位
• 数字证书的序列号(Serial number)
• CA的名称,并用CA的数字签名签署该证书
• CA所遵循的用来确定证书主体身份策略的标识符
• 在证书中标识的密钥对(公钥及相关的私钥)的用法
• 证书废止列表(CRL)的位置
• 用CA的数字签名签署该证书
X.509证书包含了哪个属性?(证书主体的可识别名称)。
数字证书内含具体识别信息,它们的构成受国际标准X.509辖制。符合X.509的证书包含以下数据:
• 证书遵守的X.509 版本;
• 序号(证书创建者编制)
• 签名算法标识符(规定了发证机构给证书内容数字签名时采用的技术)
• 发证者名称(标识签发证书的发证机构)
• 有效期(规定了证书保持有效的日期和时间一—起始日期和时间以及终止日期和时间)
• 主体名称(含拥有证书所含公钥的实体的可识别名, DN);
• 主体的公钥(证书的主要内容一一证书拥有者用来建立安全通信的实际公钥)。
• X.509 的当前版本(第3 版)支持证书扩展——自定义变量,内含由发证机构插入证书的数据,
• 用于支持对证书或各种应用程序的跟踪。
ITU-T X.509并非证书的惟一格式。
例如,==Pretty Good Privacy (PGP)==安全电子邮件 是依赖PGP所独有的一种证书。
7.4.2 发证机构
CA中心:
负责发放和管理数字证书的权威机构。
发证机构(CA)是将公钥基础设施结合到一起的粘合剂。这些中性机构提供数字证书公证服务。
具体功能:
• 接收验证RA转发来的最终用户数字证书的申请
• 确定是否接受最终用户数字证书的申请-证书的审批
• 生成密钥对和证书
• 向申请者颁发证书
• 为签发的证书提供组织与责任的权威公证
• 接收最终用户数字证书的查询、撤销
• 产生和发布证书废止列表(CRL)
• 密钥管理 (密钥备份、密钥恢复、密钥更新)
• 数字证书的归档
• 密钥归档
• 历史数据归档
注册机构(RA),分担了CA 签发数字证书前验证用户身份的负担。
RA 虽然本身并不直接签发证书,但是它们在认证流程中扮演了重要角色,允许CA远程验证用户的身份。(基础资料核实)
7.4.3 证书的生成和销毁
1.注册
向发证机构证明了自己的身份后,你还要向他们提供自己的公钥。内含你的身份识别信息和一个公钥拷贝。
CA随后会在证书上用CA的私钥写上数字签名,并把签了名的数字证书拷贝一个副本交给你。你可以把这份证书出示给你要与之安全通信的任何人。
2.验证
要用CA的公钥检查CA在证书上的数字签名,以此来验证这份证书。
接下来,你必须对照证书注销列表(Certificate Revocation List, CRL)或在线证书状态协议(Online Certificate Status Protocol,OCSP)对证书进行检查,确保这份证书未被注销。
使用证书注销列表的劣势:延迟,由于证书注销列表(CRL) 的发布存在时间滞差, CRL 给证书到期作废流程带来了固有的延迟。
为证明公钥真实,需要满足以下要求:
• CA的数字签名真实;
• 你信任这家CA;
• 证书没有列在CRL上;
• 证书确实包含你信任的数据。
3.注销
注销可能的原因:
• 证书失信(例如,证书拥有者意外泄霹了私钥)。
• 证书误发(例如, CA 未经适当验证就错误签发了证书)。
• 证书细节更改(例如,主体名称发生变化)。
• 安全关联变更(例如,主体不再被申请证书的机构雇用)。
7.5 非对称密钥管理
首先,挑选加密系统时要理智审慎。挑选加密系统需要满足以下条件:
• 它配备的算法已在公共领域公开,经历了业界专家的百殷挑剔。
• 你还必须以合适的方式挑选密钥。所用密钥的长度要能在安全要求和性能考虑之间取得平衡。此外,你还要确保密钥确实是随机生成的。
密钥内存在的任何成形模式都会提高攻击者破解加密信息和降低密码系统安全性的可能性。
• 你若使用公钥加密,你必须为私钥严格保密。
• 密钥完成使命后要退役。
• 你还必须备份自己的密钥!
硬件安全模块(HSM),也提供管理加密密钥的有效方法。
这些硬件设备以某种安全的方式存储和管理加密密钥,使人员不必直接接触密钥。
7.6 应用密码学
7.6.1 便携设备(笔记本电脑、平板、手机)
流行操作系统的当前版本如今都有硬盘加密能力,便于用户在便携设备上使用和管理加密。
Microsoft Windows,配备了BitLocker 和Encrypting File System(EFS)技术,
MacOSX 配备了FileVault 加密,
VeraCrypt 开放源程序包可用来在Linux、Windows 和Mac 系统上给硬盘加密。
7.6.2 电子邮件
介绍几条有关电子邮件加密的简单规则:
如果你发送的电子邮件需要保密性,你应该给邮件加密。
如果你的邮件必须保持完整性,你必须对邮件进行一次散列运算。
如果你的邮件需要鉴别、完整性和/或不可否认性,你应该给邮件加上数字签名。
如果你的邮件要求保密性、完整性、鉴别和不可否认性,你应该给邮件加密后再加上数字签名。
介绍当今广泛使用的几个安全电子邮件标准:
1.良好隐私(Pretty Good Privacy, PGP)
商业版用RSA 进行密钥交换,用IDEA 进行加密/解密,用MD5生成消息摘要。
免费版(基于极其相似的OpenPGP 标准)用Diffie-Hellman进行密钥交换,用Carlisle Adams/Stafford Tavares(CAST)128位加密/解密算法进行加密/解密,用SHA-1散列函数。
生成消息摘要。
2.安全/多用途互联网邮件扩展(Secure/Multipurpose Internet Mail Extensions, S/MIME)协议
已经称为加密邮件的实施标准,但是不支持web的主流邮件系统。
S/MIME通过X.509证书交换密码密钥。这些证书包含的公钥用于数字签名和交换对称密钥,而这些对称密钥将用于较长的通信会话。
RSA是S/MIME唯一支持的公钥密码协议。这一协议支持AES和3DES对称加密算法。
7.6.3 Web应用程序
负责小锁锁定图标(small lock icon) 的两项技术:
(1)安全套接字层(SSL),
SSL 由Netscape 开发,可向客户端/服务端提供Web 流量加密。
超文本传输协议安全(HTTPS)通过端口443来协商Web服务器与浏览器客户端之间的加密通信会话。
SSL 依靠交换服务器数字证书在浏览器与Web 服务器之间协商加密/解密参数。SSL 的目
的是创建面向整个Web 浏览会话开放的安全通信信道。
(2)传输层安全(TLS) ,
TLS 使用TCP 端口443 。TLS 在SSL 技术的基础上采用了许多安全强化方案,最终取代SSL被大多数应用程序采用。
2014 年,POODLE攻击揭示TLS的SSL3.0 回退机制存在一个严重缺陷。在修复这一漏洞的过程中,许多机构完全取消对SSL的支持,如今只依靠TLS 的安全保护。
隐写术(Steganography),通过加密技术把秘密消息嵌入另一条消息。
隐写算法的工作原理是从构成图像文件的大量位中选出最不重要的部分作出改动。
非法目的:一般会把秘密消息嵌入图像文件或WAV文件,如间谍活动和色清活动。
合法目的使用:给文件加上数字水印(watermark) 以保护知识产权。
隐写术(Steganography)用于隐藏消息的秘密通信。
7.6.4 数字版权管理(Digital Right Management, DRM)
DRM通过加密在数字媒体上执行版权限制。
1. 音乐DRM
2. 电影DRM
3. 电子书DRM
4. 电子游戏DRM
5. 文档DRM
7.6.5 联网
1. 线路加密
两种加密技术保护在网络上传送的数据:
(1) 链路加密,也称为在线加密,通常由服务商提供,如:卫星链路、T3、电话线路。
链路加密发生在数据链路层 , 加密沿某种特定通信通道传输的所有数据,攻击者得不到任何数据,为防止包嗅探和偷听提供了保护。
数据包在经过两端之间的每一台设备时都需要进行解密。
加密所有信息,包括用户信息、数据包头部、尾部、地址和路由信息。
(2) 端到端加密,例如SSH(安全壳)
数据包的头部 , 尾部, 地址和路由信息未加密。
仅加密用户信息,不加密数据包头部、尾部、地址和路由信息。
端到端加密发生在应用层,端到端加密对中间通信设备是透明的,传输过程中始终保持加密状态。
链路加密和端到端加密的区别:
• 在链路加密中,所有数据(包括消息报头、消息尾部、地址和路由数据)都是被加密的。因此,每个数据包在每个中继段只有解密后重新加密,
才能正常进入下一个中继段继续发送,这减慢了路由的速度。
• 端到端加密不给报头、尾部、地址和路由数据加密,因此从一个点到另一个点的传送速度更快,但面对嗅探器和窃听者也显得更脆弱。
• 加密在OSI模型的较高层级进行时,通常采用端到端加密;
• 如果加密在OSI模型的较低层级进行,通常使用链路加密。
2. IPsec(互联网协议安全)
IPsec 是一种安全协议,它为在两个实体之间建立交换信息的安全信道定义了一个框架。
IPsec通过公钥加密法提供加密、访问控制、不可否认性和消息鉴别。
IPsec主要用于虚拟专用网(VPN) ,因此IPsec可在传输或隧道模式下运行。
IPsec所依靠的是安全关联(SA),其中包含两个主要成分:
身份验证头(AH),提供消息完整性和不可否认性保障。AH还提供鉴别和访问控制,可抵御重放攻击。
封装安全载荷(ESP),提供数据包内容的保密性和完整性保障。ESP还提供加密和有限的鉴别,也可抵御重放攻击。
IPsec两种工作模式:
IPsec在传输模式下使用时,只加密数据包载荷。这种模式是为对等通信设计的。
IPsec 在隧道模式下使用时,将加密包括报头在内的整个数据包。这一模式是为网关到网关的通信设计的。
3. ISAKMP(互联网安全关联和密钥管理协议)
ISAKMP通过协商、建立、修改和删除安全关联为IPsec提供后台安全支持服务。
IPsec依靠的是安全关联系统(SA) 。这些SA通过ISAKMP接受管理。
互联网RFC2408对ISAKMP提出了四点基本要求:
• 鉴别通信伙伴
• 创建和管理安全关联
• 提供密钥生成机制
• 抵御威胁(例如重放和拒绝服务攻击)
4. 无线联网
用于保护无线网络安全的方案主要有两类:
有线等效保密(Wired Equivalent Privacy, WEP),为保护无线局域网内的通信提供64和128位加密选项。IEEE 802.11 将WEP描述为无线联网标准的一个可选成分。(WEP 算法具有已被明确宣布的缺陷,极易被破解,因此绝不应该用WEP算法来保护无线网络。)
WiFi受保护访问(WPA),以执行临时密钥完整性协议(TKIP)的方式消除破坏WEP的密码缺陷,从而提高了WEP加密的安全水平。这一技术的进一步改进版叫WPA2,增加了AES密码。
WPA2提供的安全算法适合在现代无线网络上使用。Wi-Fi 受保护访问协议给移动客户端与无线访问点之间流过的通信流加密。
7.7 密码攻击
分析攻击:这是试图降低算法复杂性的一种代数操作。分析攻击的焦点是算法本身的逻辑。
执行攻击:这是探寻密码系统在执行过程中暴露的弱点的一种攻击。它着重于挖掘软件代码,其中不仅包括错误和缺陷,还涉及用来给加密系统编程的方法。
统计攻击:统计攻击探寻密码系统的统计学弱点,例如汗点错误和无力生成真随机数。统计攻击试图在承载密码应用的硬件或操作系统中找到漏洞。
蛮力攻击:蛮力攻击是直截了当的攻击。这种攻击尝试找出密钥或口令的每种可能的有效组合。攻击的实施涉及用大量处理能力来系统化猜测用于加密通信的密钥。
频率分析:频率分析一即计数每个字母在密文中出现的次数——被证明是可以帮助破解简单密码的一种技术手段。众所周知, E、T、A、O、I、N 是英语中的最常用字母;
攻击者就是借助这个知识来测试以下两个假设的:
.如果这些字母也在密文中使用得最频繁,则密码可能是一种移位密码,即重新排列了明文字符而未加任何改动。
.如果密文中使用得最频繁的是其他字母,则密码可能是某种替换密码,即更换了明文字符。
唯密文攻击:攻击者拥有若干消息的密文,每条消息都是使用相同的加密算法加密的。攻击者目标是找出加密过程中试用的密钥, 仅有密文,进行密码分析攻击。
已知明文:攻击者拥有一条或多条消息的明文和相对应的密文。例如某些文本有固定的格式、起始和结束语句。拥有明文和其对应的密文,进行密码分析攻击
选择密文:在选择密文攻击中,攻击者能够解密密文消息中被选中的部分,然后用解密后的那部分消息来发现密钥。
选择明文:攻击者选择特定明文发给受害者,待受害者加此明文发送出去后,再截获之。不同于已知明文攻击在于输入可以由攻击者来选定 可以选择明文并得到输出的密文,进行密码分析攻击。
中间相遇:中间相遇攻击利用进行两轮加密的协议(被证明在攻击下不如标准DES更安全)。
攻击者可能通过中间相遇攻击手段来击败采用两轮加密的加密算法。因为这种攻击的出现,造成作为DES加密可行强化版的双重DES(2DES)很快被弃用,被三重DES(3DES)取代。
中间人攻击:欺骗通信双方,使他们都与攻击者通信,而不是相互直接通信。
生日攻击:试图找到散列函数的冲突点
重放攻击:攻击者捕获了某种类型的数据(通常是身份验证信息)并重新提交已通过的身份验证的信息, 欺骗接收设备误以为这是合法信息。
7.9 考试要点:
了解非对称加密法所用密钥类型。
公钥可在通信参与方之间自由共享,而私钥必须保密。
给消息加密时使用接收者的公钥。
给消息解密时使用自己的私钥。
给消息签名时使用自己的私钥。
验证签名时使用发送者的公钥。
熟知三种主要公钥密码系统。
RSA是最著名的公钥密码系统,由Rivest、Shamir 和Adleman于1977 年开发。该密码系统所依赖的素数乘积很难被因式分解。
El Gamal是Diffie-Hellman密钥交换算法的一种扩展,所依赖的是模运算。
椭圆曲线算法依靠椭圆曲线离散对数题,如果所用的密钥与其他算法使用的密钥相同,它会比其他算法安全性更高。
了解散列函数的基本要求。
优质散列函数有五点要求。
它们必须接受任何长度输入、提供固定长度输出、方便地为任何输入计算散列函数、提供单向功能以及不存在冲突。
熟知主要散列算法。
安全散列算法(SHA)的后继者SHA-1 和SHA-2 构成了政府标准消息摘要功能。
SHA-1生成160消息摘要SHA-2支持可变长度最高到512 位。
SHA-3提高了SHA-2的安全性,待相同散列长度。
了解密码盐提高口令散列安全性的原理。
如果对口令直接进行散列运算后保存到口令文件中,攻击者可用预先算好数值的彩虹表来识别常用口令。
但在进行散列运算前给口令加上盐,则可以降低彩虹表攻击的效果。
一些常用口令散列算法还用密钥拉伸技术进一步增加了攻击难度,PBKDF2、Bcrypt和Scrypt是其中的三种。
了解数字签名的生成和验证过程。
你若给消息写数字签名,首先用散列函数生成一个消息摘要,然后用自己的私钥给摘要加密。
你若验证消息的数字签名,首先用发送者的公钥解密摘要,然后将消息摘要与自己生成的摘要进行比较。如果二者匹配,则消息真实可信。
了解数字签名标准(DSS)的成分。
数字签名标准使用了SHA-1、SHA-2和SHA-3消息摘要函数外加以下三种加密算法中的一种:数字签名算法(DSA), RSA(Rivest、Shamir、Adleman)算法或椭圆曲线DSA(ECDSA)算法。
了解公钥基础设施(PKI)。
在公钥基础设施中,发证机构(CA)生成内含系统用户公钥的数字证书。
用户随后将这些证书分发给他们要与之通信的人。证书接收者用CA 的公钥验证证书。
了解密码用于保护电子邮件的常见做法。
S/MIME 协议是新涌现的邮件消息加密标准。另一个流行的电子邮件安全工具是Phil Zimmerman 的PGP。
电子邮件加密的大多数用户都给自己的电子邮件客户端或基于Web的电子邮件服务配备了这一技术。
了解密码用于保护Web 活动的常见做法。
保护Web 通信流的事实标准是在TLS或较老的SSL 的基础上使用HTTP 。
大多数Web浏览器都支持这两个标准,但是许多网站出于安全方面的考虑,如今已取消对SSL 的支待。
了解密码用于保护网络连接的常见做法。
IPsec协议标准为加密网络通信流提供了一个通用框架,被配备到许多流行操作系统中。
在IPsec传输模式下,数据包内容会被为对等通信加密。
在隧道模式下,整个数据包(包括报头信息),会为网关到网关通信加密。
要能描述IPsec。
IPsec是支持IP安全通信的一种安全架构框架。IPsec会在传输模式或隧道模式下建立一条安全信道。
IPsec可用来在计算机之间建立直接通信或在网络之间建立一个虚拟专用网(VPN) 。
IPsec使用了两个协议:身份验证头(AH)和封装安全载荷(ESP) 。
能说明常见密码攻击。
蛮力攻击尝试随机发现正确的密码密钥。
已知明文、选择密文和选择明文攻击要求攻击者除了拿到密文以外,还必须掌握一些附加信息。
中间相遇攻击利用进行两轮加密的协议。
中间人攻击欺骗通信双方,使他们都与攻击者通信,而不是相互直接通信。
生日攻击试图找到散列函数的冲突点。重放攻击试图重新使用鉴别请求。
了解使用数字版权管理(DRM)的使用情况。
数字版权管理(DRM)解决方案允许内容拥有者限制他人对内容的使用。
DRM 解决方案通常用于保护娱乐内容,如音乐、电影、电子书等,不过偶尔也会有企业用它们来保护存储在文档中的敏感信息。
传统的对称密码的两种类型:换位和替换
问题:哪一层提供抗抵赖服务?
A.网络层
B.数据链路层
C.传输层
D.应用层
正确答案:D
问题:哪一项是对“证书路径验证”最好的描述?
A.验证相关证书的撤销状态。
B.验证所关联的根证书的完整性
C.验证相关私钥的完整性
D.验证根证书下某一证书链中所有证书的有效性
正确答案:D
问题:为什么暴力破解的成功率增加了?
A.增加了使用排列和换位的算法
B.由于算法更强壮了,他们变得不那么复杂,因此更容易受到攻击
C.处理器的速度和运算能力增加了
D.密钥长度随着时间的推移而减少
正确答案:C
问题:以下哪个应用层协议需要两对非对称密钥和两个数字证书:
A.SSL
B.PEM(OpenSSL使用的privacy enhanced mail)
C.S/HTTP
D.SET
解析:SET协议(Secure electronic transaction)安全电子交易协议,应用了双重签名(dual signatures)技术。
在一项安全电子商务交易中,持卡人的订购信息和支付指令是相互对应的。
商家只有确认了对应于持卡人的支付指令对应的定购信息才能够按照定购信息发货;
而银行只有确认了与该持卡人支付指令对应的定购信息是真实可靠的才能够按照商家的要求进行支付。
为了达到商家在合法验证持卡人支付指令和银行在合法验证持卡人订购信息的同时不会侵犯顾客的私人隐私这一目的,
SET协议采用了双重签名技术来保证顾客的隐私不被侵犯。
正确答案:D
问题:以下哪一项加密协议和基础设施是开发用来在互联网发送加密的信用卡信息的?
A.Secure Shell(SSH-2)
B.Secure Hypertext transfer Protocol(S-HTTP)
C.Secure Electronic transaction(SET)
D. Pretty Good Privacy(PGP)
正确答案:C