-
-
看雪CTF从入门到存活(二)主盾与副盾
-
发表于:
2018-11-29 11:49
3322
-
大家好! 我们又见面了! 这一次 我奉上的作品是:密室逃脱系列之二----魔法森林
既然说是系列 显然与前一作品是有关系的 我们先来理一下它们之间的关联和区别
(1)首先 它们的设计目标是一致的 都是为了验证我的执念到底是否可行(在上一期有提到过 这里不再赘述);
(2)它们都遵循着相同的设计原则:安全 普适 高效 最简
所谓安全 指的是希望能在看雪CTF中存活 攻击方不禁手 不假设攻击者有知识盲区
所谓普适 指保护方法不限定硬件平台 不限定操作系统 不限定编程语言(但在实际比赛中 我只能选择一种来实现)
所谓高效 指不使用攻击难度与防御代价呈线性关系的防护手段(期望是指数关系)
所谓最简 指不做锦上添花的事情 每个操作和每个数据都有存在的必要性 一旦去掉某个保护都会对安全性形成致命威胁 ;
(3)趣味性 虽然这不是比赛必须的 但是我每次都准备了一份‘剧情介绍’ 希望参与者有个更好的心情来干这道题(不是我看不起对手故意放水)。
从设计上讲 这两次的作品 都使用了‘主盾’+‘副盾’的结构
主盾的作用是抵抗最核心的攻击 而副盾的作用可以理解为是主盾的放大器
类似结构在对称密码算法设计中 已经得到了充分的验证 可以认为是一种最优结构
然而 魔法森林并非密室逃脱的简单升级
这两件作品在使用主副盾结构时 是有本质区别的
(1)鉴于密室逃脱在副盾上出现了2处严重bug 导致不到6小时就被攻破 这次的魔法森林更换了副盾(天书,也就是本文) 避免了上次的缺陷 ;
(2)迄今为止 密室逃脱的主盾还没有被发现受到了有效的攻击(可能是因为副盾出现了严重bug导致防御系统崩溃 所以就没人搞主盾了)但是我自己发现了主盾上的一个缺陷(leakage) 于是这次的魔法森林升级了主盾(魔法门)
形象地说 从橡木盾升级为铜盾 一次铸造成型 更小 更重 没有拼接痕迹 但和上次的橡木盾一样 都刷了防水层 能够抵抗攻击者对主盾的直接侵蚀 ;
(3)增加了第三面护盾——隐身盾(金蛋) 它的作用是保护副盾 它能让副盾隐身 如果攻击者找不到副盾 那么主盾将免受攻击(严格意义上讲 它违背了最简原则 因为即使没有它 本题也应该安全 所以此盾的难度故意设得很低 大致相当于签到题 但却增加了“蛋生鸡,鸡生蛋”的乐趣话题)。
如果你是在比赛期间看到了此文 那么恭喜你 你已经找到了副盾
但是 找到了副盾 并不等于攻破了此题
真正的挑战 才刚开始~
Good Luck!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2018-12-15 11:01
被Chikey编辑
,原因: