对加密算法的攻击
1. 对称密钥的攻击我们是知道的,对公钥密码是否还存在攻击
对于公钥密码的原理我在另外一篇答案中曾有解释 公钥的原理
首先我们知道公钥密码算法应满足如下要求:
- 接收方B产生密钥对(公开钥PKB和秘密钥SKB)是计算上容易的。
- 发送方A用收方的公开钥对消息m加密以产生密文c,即c=EPKB[m]在计算上是容易的。
- 接收方B用自己的秘密钥对c解密,即m=DSKB[c]在计算上是容易的。
- 窃听者由B的公开钥PKB求秘密钥SKB在计算上是不可行的。
- 敌手由密文c和B的公开钥PKB恢复明文在计算上是不可行的。
- 加、解密次序可换哗旁,即EPKB[DSKB[m]]= DSKB[EPKB[m]]这一点虽然非常有用,但不是对所有的算法都有要求。
对公钥密码的攻击
和单钥密码体制一样,如果密钥太短,公钥密码也易受穷举搜纤宽索攻击,因此密钥必须足够长才能抵抗穷举搜索攻击,然而又由于公钥密码所使用的可逆函数的计算复杂性与密钥长度常常不是线性关系,而是增大得更快,所以密钥长度太大又会使得加解密算法运算太慢而不实用。因此公乱竖橡钥密码目前主要用于密钥管理和数字签名。
对公钥密码算法的第二种攻击是寻找由公开钥计算秘密钥的方法。目前为止,对常用公钥算法还都未能证明这种攻击是不可行的。
还有一种仅适用于公钥密码算法的攻击方法,称为可能字攻击。例如对56比特的DES密钥用公钥密码算法加密后发送,敌手用算法的公开钥对所有可能的密钥加密后与截获的密文相比较,如果一样,则相应的明文即DES的密钥就被找出。因此不管公钥算法的密钥多长,这种攻击的本质是对56比特DES密钥的穷举攻击。抵抗方法是在欲发送的明文消息后添加一些随机比特。
2. 常见的几种SSL/TLS漏洞及攻击方式
SSL/TLS漏洞目前还是比较普遍的,首先关闭协议:SSL2、SSL3(比较老的SSL协议)配置完成ATS安全标准就可以避免以下的攻击了,最新的服务器环境都不会有一下问题,当然这种漏洞都是自己部署证书没有配置好导致的。
Export 加密算法
Export是一种老旧的弱加密算法,是被美国法律标示为可出口的加密算法,其限制对称加密最大强度位数为40位,限制密钥交换强度为最大512位。这是一个现今被强制丢弃的算法。
Downgrade(降级攻击)
降级攻击是一种对计算机系统或者通信协议的攻击,在降级攻击中,攻击者故意使系统放弃新式、安全性高的工作方式,反而使用为向下兼容而准备的老式、安全性差的工作方式,降级攻击常被用于中间人攻击,讲加密的通信协议安全性大幅削弱,得以进行原本不可能做到的攻击。 在现代的回退防御中,使用单独的信号套件来指示自愿降级行为,需要理解该信号并支持更高协议版本的服务器来终止协商,该套件是TLS_FALLBACK_SCSV(0x5600)
MITM(中间人攻击)
MITM(Man-in-the-MiddleAttack) ,是指攻击者与通讯的两端分别创建独立的联系,并交换其所有收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个对话都被攻击者完全控制,在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。一个中间人攻击能成功的前提条件是攻击者能够将自己伪装成每个参与会话的终端,并且不被其他终端识破。
BEAST(野兽攻击)
BEAST(CVE-2011-3389) BEAST是一种明文攻击,通过从SSL/TLS加密的会话中获取受害者的COOKIE值(通过进行一次会话劫持攻击),进而篡改一个加密算法的 CBC(密码块链)的模式以实现攻击目录,其主要针对TLS1.0和更早版本的协议中的对称加密算法CBC模式。
RC4 加密算法
由于早期的BEAST野兽攻击而采用的加密算法,RC4算法能减轻野兽攻击的危害,后来随着客户端版本升级,有了客户端缓解方案(Chrome 和 Firefox 提供了缓解方案),野兽攻击就不是什么大问题了。同样这是一个现今被强制丢弃的算法。
CRIME(罪恶攻击)
CRIME(CVE-2012-4929),全称Compression Ratio Info-leak Made Easy,这是一种因SSL压缩造成的安全隐患,通过它可窃取启用数据压缩特性的HTTPS或SPDY协议传输的私密Web Cookie。在成功读取身份验证Cookie后,攻击者可以实行会话劫持和发动进一步攻击。
SSL 压缩在下述版本是默认关闭的: nginx 1.1.6及更高/1.0.9及更高(如果使用了 OpenSSL 1.0.0及更高), nginx 1.3.2及更高/1.2.2及更高(如果使用较旧版本的 OpenSSL)。
如果你使用一个早期版本的 nginx 或 OpenSSL,而且你的发行版没有向后移植该选项,那么你需要重新编译没有一个 ZLIB 支持的 OpenSSL。这会禁止 OpenSSL 使用 DEFLATE 压缩方式。如果你禁用了这个,你仍然可以使用常规的 HTML DEFLATE 压缩。
Heartbleed(心血漏洞)
Heartbleed(CVE-2014-0160) 是一个于2014年4月公布的 OpenSSL 加密库的漏洞,它是一个被广泛使用的传输层安全(TLS)协议的实现。无论是服务器端还是客户端在 TLS 中使用了有缺陷的 OpenSSL,都可以被利用该缺陷。由于它是因 DTLS 心跳扩展(RFC 6520)中的输入验证不正确(缺少了边界检查)而导致的,所以该漏洞根据“心跳”而命名。这个漏洞是一种缓存区超读漏洞,它可以读取到本不应该读取的数据。如果使用带缺陷的Openssl版本,无论是服务器还是客户端,都可能因此受到攻击。
POODLE漏洞(卷毛狗攻击)
2014年10月14号由Google发现的POODLE漏洞,全称是Padding Oracle On Downloaded Legacy Encryption vulnerability,又被称为“贵宾犬攻击”(CVE-2014-3566),POODLE漏洞只对CBC模式的明文进行了身份验证,但是没有对填充字节进行完整性验证,攻击者窃取采用SSL3.0版加密通信过程中的内容,对填充字节修改并且利用预置填充来恢复加密内容,以达到攻击目的。
TLS POODLE(TLS卷毛狗攻击)
TLS POODLE(CVE-2014-8730) 该漏洞的原理和POODLE漏洞的原理一致,但不是SSL3协议。由于TLS填充是SSLv3的一个子集,因此可以重新使用针对TLS的POODLE攻击。TLS对于它的填充格式是非常严格的,但是一些TLS实现在解密之后不执行填充结构的检查。即使使用TLS也不会容易受到POODLE攻击的影响。
CCS
CCS(CVE-2014-0224) 全称openssl MITM CCS injection attack,Openssl 0.9.8za之前的版本、1.0.0m之前的以及1.0.1h之前的openssl没有适当的限制ChangeCipherSpec信息的处理,这允许中间人攻击者在通信之间使用0长度的主密钥。
FREAK
FREAK(CVE-2015-0204) 客户端会在一个全安全强度的RSA握手过程中接受使用弱安全强度的出口RSA密钥,其中关键在于客户端并没有允许协商任何出口级别的RSA密码套件。
Logjam
Logjam(CVE-2015-4000) 使用 Diffie-Hellman 密钥交换协议的 TLS 连接很容易受到攻击,尤其是DH密钥中的公钥强度小于1024bits。中间人攻击者可将有漏洞的 TLS 连接降级至使用 512 字节导出级加密。这种攻击会影响支持 DHE_EXPORT 密码的所有服务器。这个攻击可通过为两组弱 Diffie-Hellman 参数预先计算 512 字节质数完成,特别是 Apache 的 httpd 版本 2.1.5 到 2.4.7,以及 OpenSSL 的所有版本。
DROWN(溺水攻击/溺亡攻击)
2016年3月发现的针对TLS的新漏洞攻击——DROWN(Decrypting RSA with Obsolete and Weakened eNcryption,CVE-2016-0800),也即利用过时的、弱化的一种RSA加密算法来解密破解TLS协议中被该算法加密的会话密钥。 具体说来,DROWN漏洞可以利用过时的SSLv2协议来解密与之共享相同RSA私钥的TLS协议所保护的流量。 DROWN攻击依赖于SSLv2协议的设计缺陷以及知名的Bleichenbacher攻击。
通常检查以下两点服务器的配置
服务器允许SSL2连接,需要将其关闭。
私钥同时用于允许SSL2连接的其他服务器。例如,Web服务器和邮件服务器上使用相同的私钥和证书,如果邮件服务器支持SSL2,即使web服务器不支持SSL2,攻击者可以利用邮件服务器来破坏与web服务器的TLS连接。
aNULL 包含了非验证的 Diffie-Hellman 密钥交换,这会受到中间人(MITM)攻击
eNULL 包含了无加密的算法(明文)
EXPORT 是老旧的弱加密算法,是被美国法律标示为可出口的
RC4 包含的加密算法使用了已弃用的 ARCFOUR 算法
DES 包含的加密算法使用了弃用的数据加密标准(DES)
SSLv2 包含了定义在旧版本 SSL 标准中的所有算法,现已弃用
MD5 包含了使用已弃用的 MD5 作为哈希算法的所有算法
Openssl Padding Oracle
Openssl Padding Oracle(CVE-2016-2107) openssl 1.0.1t到openssl 1.0.2h之前没有考虑某些填充检查期间的内存分配,这允许远程攻击者通过针对AES CBC会话的padding-oracle攻击来获取敏感的明文信息。
强制丢弃的算法
3. 计算机三级题:对密码系统的攻击种类
对密码系统的攻击种类分为以下四种:
1、惟密文攻击
在惟密文攻击中,密码分析者知道密码算法,但仅能根据截获的密文进行分析,以得出明文或密钥。由于密码分析者所能利用的数据资源仅为密文,这是对密码分析者最不利的情况。
2、已知明文攻击
已知明文攻击是指密码分析者除了有截获的密文外,还有一些已知的“明文—密文对”来破译密码。密码分析者的任务目标是推出用来加密的密钥或某种算法,这种算法可以对用该密钥加密的任何新的消息进行解密。
3、选择明文攻击
选择仿乎游明文攻击是指密码分析者不仅可得到一些“明文—密文对”,还可以选择被加密的明备销文,并获得相应的密文。这时密码分析者能够选择特定的明文数据块去加密,并比顷罩较明文和对应的密文,已分析和发现更多的与密钥相关的信息。
密码分析者的任务目标也是推出用来加密的密钥或某种算法,该算法可以对用该密钥加密的任何新的消息进行解密。
4、选择密文攻击
选择密文攻击是指密码分析者可以选择一些密文,并得到相应的明文。密码分析者的任务目标是推出密钥。这种密码分析多用于攻击公钥密码体制。
4. rsa算法的攻击方法有哪些
1 密码破译者知道的信息
密文:可以通过窃听来获取。
数E和N:公钥是公开的信息,因此密码破译者知道E和N。
2 密码破译者不知道的信息
明文:需要破译的内容。
数D:私钥至少D是不知道的信息。
其他:密码破译者不知道生成密钥对时所使用的p、q和L
二 通过密文来求明文
RSA的加密过程如下。
密文=明文的E次方 mod N
由于密码破译者知道密文、E和N,那么有没有一种方法能够用E次方 mod N之后的密文求出原来的明文呢?如果没有 mod
N的话,即:
密文=明文的E次方
通过密文求明文的难度不大,因为这可以被看作是一个求对数的问题。
但是,加上 mod N之后,求明文就变成了求离散对数的问题,这是非常困难的,因为人类还没有发现求离散对数的高效算法。
三 通过暴力破解来找出D
只要知道数D,就能够对密文进行解密。因此,可以逐一尝试有可能作为D的数字来破译RSA,也就是暴力破解法。暴力破解的难度会随着D的长度增加而变大,当D足够长时,就不可能在现实的时间内通过暴力破解找出数D。
现在,RSA中所使用的p和q的长度都在1024比特以上,N的长度为2048比特以上。由于E和D的长度可以和N差不多,因此要找出D,就需要进行2048比特以上的暴力破解。要在这样的长度下用暴力破解找出D是极其困难的。
5. 旁路攻击 是什么
旁路攻击[1] (Side Channel Attacks,SCA)
在密码学中,旁路攻击是指绕过对加密算法的繁琐分析,利用密码算法的颂链档硬件实现的运算中泄露的信息,如执行时间、功耗、电磁辐射等,结合统计理论快速的破解密码系统。
旁路攻击条件
要成功对集成电路芯片进行旁路攻击必须满足两条:
1.在泄漏的物理信号与处理野乱的数据之间建立联系;
2.在信息泄漏模型中唤没处理的数据与芯片中处理的数据之间建立联系。
6. 通常攻击密码都有什么方法
攻击密码系统的方法大概可以分为三种对密码进行分析的尝试称为攻击。Kerckhoffs最早在19世纪阐明密码分析的一个基本假设,这个假设就是秘密必须完全寓于密钥中。Kerckhoffs假设密码分析者已有密码算法及其实现的全部详细资料。
密码分析者攻击密码系统的方法主要有以下三种。
穷举攻击
所谓穷举攻击是指密码分析者采用依次试遍所有可能的密钥,对所获密文进行解密,直至得到正确的明文;或者用一个确定的密钥对所有可能的明文进行加密,直至得到所获得的密文。显然,理论上对于任何实用密码,只要有足够的资源都可以用穷举攻击将其攻破。
穷举攻击所花费的时间等于尝试次数乘以一次解密(加密)所需的时间。显然可以通过增大密钥量或者加大解密(加密)算法的复杂性来对抗穷举攻击。当密钥量增大时,尝试的次数必然增大。当解密(加密)算法的复杂性增大时,完成一次解密(加密)所需的时间增大,从而使穷举攻击在实际上不能实现。穷举攻击是对密码的一种最基本的攻击方法。
统计分析攻击
所谓统计分析攻击就是指密码分析者通过分析密文和明文的统计规律来破译密码。统计分析攻击在历史上为破译密码做出过极大的贡献。许多古典密码都可以通过分析密文字母和字母组的频率和其他统计参数而破译。对抗统计分析攻击的方法是设法使明文的统计特性不带入密文。这样密文不带有明文的痕迹,从而使统计分析攻击成为不可能。能够抵抗统计分析攻击已成为近代密码的基本要求。
数学分析攻击
所谓数学分析攻击是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。数学分析攻击是对基于数学难题的各种密码的主要威胁。为了对抗这种数学分析攻击,应当选用具有坚实数学基础和足够复杂的加解密算法。
7. 什么是密码分析,其攻击类型有哪些
答:密码分析是指研漏稿究在不知道密钥的情况下来恢复明文的科学。攻击类型棚前有只有密文的攻击,已知明文的攻击,选择明文的攻击,适应性选择明文攻击,选择密文的攻击,选择密钥的攻击,橡皮管密码攻击。S盒是DES算法的核心。其功能是把6bit数据变为4bit数据。返和孝