服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

应用密码学:CBC-mode padding oracle

日期: 来源:zero 的秘密书房收集编辑:zerotrac

从这一次作业开始感觉没学过本科密码学的应该就看不懂了,因为涉及到不少的概念。不过就当一个自己的笔记吧。


第三次作业的链接(可以点击阅读原文直接跳转):https://cseweb.ucsd.edu/classes/sp22/cse207B-a/hw3/

作业要求:给定一段使用了 AES128 + CBC-mode + PKCS7 padding 加密的密文,以及一个判断任意密文解密出的明文是否满足 PKCS7 padding 的 oracle ,恢复完整的明文。


AES 是一种对称加密方式,以 AES128 为例,它需要一个 128bit key,每次可以把一个 128bit 的明文 block 加密成一个等长度的密文 block。这里的「加密」是可逆的,所以在 key 固定的情况下,AES128 是一个 permutation(一一映射)。

显然我们加密的东西不可能恰好是 128bit 的,所以这里就会有两个问题:

  • 如果明文长度超过 128bit 咋办;
  • 如果明文长度不是 16(128bit = 16byte)的倍数咋办。

第一个问题看似很好解决,我们把明文每 16byte 分成一个块,然后用同一个 key 加密就行了。这叫做 ECB-mode,它是一个解决方法,但它不是 CPA-secure 的,因为相同的块会被加密成相同的密文,所以如果我们在加密例如图片等块状信息的时候,仍然可以从密文中得到一些很明显的 pattern。感兴趣的读者可以搜索「ECB penguin」看到那只可爱的 Linux 企鹅。

因此 CBC-mode 就被引入了。我们首先需要生成一个 128bit 的 IV(初始向量,initialization vector),如果明文被分成了 个块,那么加密的过程为:

其中 是密文的第 个块, 是异或运算。当 时,。最后返回 作为密文。

可以证明 ECB-mode 是 CPA-secure 的,那么第一个问题就解决了。

第二个问题可以使用 padding 把最后一个不满的 block 补齐。例如 PKCS7 padding,如果最后一个 block 缺 x 个 byte,那么就补上 x 个 x。特别地,如果最后一个 block 本来就是满的,就需要补一个额外的 16 个 16 的 block,如果不这样做,我们就无法区分末尾的 x 个 x 到底是 padding 还是明文了。

PKCS7 padding 本身也不会引入啥问题,因为攻击者不知道密钥 ,所以也没啥办法。但如果攻击者可以借助一个 oracle :输入任意构造的密文,输出一个 bool 值,表示该密文解密出的明文是否有正确的 PKCS7 padding,那么就可以恢复明文了。这在现实中也是有意义的,比如攻击者上传一段 session cookie 对应的密文,如果解密出的明文不满足 PKCS7 padding,服务器可能会返回一个 decryption error,如果满足但是明文并没有什么意义,服务器可能会返回 session not found,这里返回状态的差异就可以当成攻击者利用的 oracle。更具体的例子可以参考论文「Security Flaws Induced by CBC Padding Applications to SSL, IPSEC, WTLS...」

恢复的方法就是每次给 喂一个长度为 2 block 的密文,其中第 2 个 block 是 (我们希望得到其对应的明文 ),第 1 个 block 我们可以一位一位来猜。我们的目的就是调整第 1 个 block,使得 返回 True,这样就表示 异或上第 1 个 block 得到的东西有正确的 padding。padding 只有 16 种:1 个 1,2 个 2,3 个 3,...,16 个 16,所以我们先让 padding 变成 1 个 1,得到明文的最后一位,然后让 padding 变成 2 个 2,得到明文的倒数第二位,以此类推,直到得到 block 里面的全部 16 个 byte,这样就得到了

具体的细节我不想写了,感兴趣的就看上面那篇论文吧。


相关阅读

  • 当万彩软件遇上ChatGPT,会擦出什么样的火花?

  • ChatGPT最近真的是火出天际啦,让各行各业都爱它。可能会有小伙伴会有疑惑:ChatGPT是什么东东?接下来让我们一探究竟......01什么是ChatGPT?一款于去年11月底“出生”的聊天机器
  • 警惕丨诺如病毒进入高发期!

  • 日前,“诺如病毒”登上热搜。全国多地疾控提醒,诺如病毒进入高发期,因其具备极强的传染性,常在学校、托幼机构、医院等处引起集体暴发,疾控呼吁大家加强重视,做好防控。诺如到底是
  • 嘉定又有多层住宅将加装电梯→

  • 好消息!嘉定又有多层住宅将加装电梯规划设计方案正在公示中详见↓嘉定区丰庄路301弄27号单元加装电梯项目建设单位嘉定区明日新苑业主委员会建设项目地址嘉定区丰庄路301弄明
  • 我嘉手工课 | 一起制作蜡梅花香牌

  • 蜡梅花期已接近尾声若错过了冬季的蜡梅花香这次不要再错过啦一起来制作腊梅花香牌体验非遗手作的无限魅力 材料香粉、水、模具、牙签 制作步骤通讯员:褚嘉蓉编辑:周倩
  • 【规划】570套!嘉定这里将新建住宅

  • 嘉定这里将新建住宅共570套其中商品房528套,保障房42套详见↓建设单位(个人)上海大众众望城市建设开发有限公司建设项目名称嘉定区马陆镇嘉定新城JDC10502单元(复华园区)02-01地
  • Linux内核常用保护和绕过技术

  • 1、内核是什么?2、内核漏洞3、Linux内核保护与绕过3.1、KASLR 保护3.2、SMEP&SMAP保护3.3、KPTI保护4、新内核漏洞利用方法4.1、pipe管道技术4.2、kernel5.x版本和kernel4.x

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 应用密码学:CBC-mode padding oracle

  • 从这一次作业开始感觉没学过本科密码学的应该就看不懂了,因为涉及到不少的概念。不过就当一个自己的笔记吧。第三次作业的链接(可以点击阅读原文直接跳转):https://cseweb.ucsd.
  • 这冲天的滚滚黑烟,西方主流媒体愣是看不见

  • 文/观察者网专栏作者 沈逸复旦大学国际政治系教授大家好,欢迎来到本期《逸语道破》,今天我们来谈谈美国氯乙烯泄露事件。 最近发生了很多引人瞩目的事,比如之前被吹得神乎其神
  • 《水浒》太“毒”不该进教材?

  • 文/观察者网专栏作者 聆雨子影视文化学博士 近日有人在浙江省政府网站上留言,建议将《水浒传》从中小学课文和课外读物中删除,理由是此部作品无原则歌颂滥杀无辜、不尊重女性
  • 谁的现代化?寻找一个属于人民的发展话语

  • 2022年10月16日至22日,中国共产党第二十次全国代表大会在北京胜利召开。二十大报告中提出并阐述了“中国式现代化”的概念,这一理论创新引发国内外人士的高度关注和广泛讨论。
  • 周期性群体幸福 【不自然博物馆】

  • oi~欢迎来到祖 先 的 传 统Hungry Earth时 机 未 到Not New Yet出 息True Happiness阴 暗 的 家 伙Son of EmptinessTHE END是夜吗~是远方~是那阵忧愁我的晚风~在那往