SSL/TLS协议安全系列:CBC 模式的弱安全性介绍(一)

GoSSIP_SJTU · 2015/06/24 10:45

编辑标注: 因drops对数学符号的支持存在问题,所以部分内容采取图片的形式显示,我们会经快解决这个问题,希望见谅。

一 前言


在SSL的一些版本中,使用CBC分组模式对数据进行加密,而CBC分组模式在使用中常会出现一些问题。本文对CBC分组模式中Padding Oracle Attack做基本介绍,主要包括Padding Oracle Attack的背景知识、在多种填充模式下的攻击原理以及现实场景应用。

Padding Oracle Attack,顾名思义:Padding是“填充”,这里指在CBC分组加密模式中的填充数据;Oracle是“提示”,意指服务器返回的提示信息。Padding Oracle Attack可理解为“填充提示攻击”,是一种逻辑上的旁路攻击。简要来说,Padding Oracle Attack是指以明文分组和填充为根源,依据系统解密密文时泄露的填充信息,通过不断尝试填充字节直到获得有效填充信息,从而恢复出明文或者构造任意明文对应的密文这样一种攻击方式。利用Padding Oracle Attack,恢复一块长度为b字节的密文块,只需要平均128*b次oracle回应,而不是尝试2^k次(k指密钥长度为多少bit)。

Padding Oracle Attack最初是Serge Vaudenay在EUROCRYPT 2002会议上提出, Vaudenay介绍了CBC模式中基本的Padding Oracle Attack攻击原理;在 2010 年的 BlackHat 欧洲大会上,Juliano Rizzo 与 Thai Duong 把这种攻击应用到了一些流行的Web应用框架上,包括JavaServer Faces,Ruby on Rails 以及 ASP.NET,他们在2011年的Symposium on Security and Privacy大会上发表文章详细分析ASP.NET中的Padding Oracle问题;同年,在Pwnie Rewards中,ASP.NET的Padding Oracle漏洞被评为“最具价值的服务器漏洞”;次年,Romain Bardou和Riccardo Focardi等人发现,这种攻击对于一些安全设备同样有效;在 2014年,谷歌的安全人员又提出了针对 SSL v3协议中Padding Oracle漏洞的POODLE攻击,99%以上使用 https 服务的网站受到影响。

二 背景知识


在介绍Padding Oracle Attack原理之前,这里首先简单介绍一些相关的背景知识。

CBC(Cipher Block Chaining)分组模式

常用的对称加密算法(如AES、3DES等),一般使用分组加密模式,其中CBC是最常见的分组模式之一。CBC分组模式在对消息进行加/解密时,会根据使用的不同对称加密算法,将消息进行分块(block),每块大小可被分为16字节(AES)、8字节(3DES等)。

CBC分组模式加密流程如下图:

CBC分组模式中引入初始化随机向量IV,使得相同明文在不同的加密次数中产生不同的密文,IV随密文一起发送给接收方。整个加密过程可以表示为:

其中C表示密文块,P表示明

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值