首页
论坛
课程
招聘
[求助]帮忙提升通过授权的PC工具开启嵌入式设备telnet服务的破解难度
2021-7-14 16:49 4252

[求助]帮忙提升通过授权的PC工具开启嵌入式设备telnet服务的破解难度

2021-7-14 16:49
4252
1
背景:公司的嵌入式产品为了方便排查问题和客户二次开发,预留了一个通过PC工具向设备特定端口发送数据开启设备telnet服务的功能。现有的方案,是用户提供电脑mac,我们提供授权文件和工具给客户,工具运行的时候比较当前电脑mac和授权文件是否匹配,如果匹配就直接和嵌入式设备的特定端口通信,经过多次密钥交换,最后发送一个加密后的开启telnet指令给设备。

最近跟我们合作的安全厂家指出,直接反汇编修改PC工具里的mac比较部分代码就可以跳过授权检测,因此我们又想了一种新方案:

  1. 授权文件里存储一个RSA私钥,授权文件本身用电脑mac+硬盘序号加密
  2. 嵌入式设备里存储对应的RSA公钥
  3. PC工具用当前电脑的mac+硬盘序号去解密授权文件,读取出RSA私钥
  4. PC工具向设备请求一个8位的随机数,并用RSA私钥对该数据签名,再发给嵌入式设备
  5. 嵌入式设备用公钥验证签名,如果验证失败,就断开连接;如果成功就执行后续的开启telnet操作。

新方案的优点:

  1. 如果没有授权文件,即使通过反汇编修改PC工具的授权文件mac地址匹配等逻辑,也会因为没有正确的私钥而导致上面第4步的签名验证失败
  2. 如果有授权文件但不是自己电脑的,因为mac+硬盘序号不匹配会导致授权文件解密失败,也会导致第4步的签名验证失败

方案的风险:

  1. 从其他正当授权的电脑获取到授权文件并获取该电脑的mac和硬盘序号,修改自己电脑环境以使用该程序,甚至是提供电脑环境构造方法在互联网散播
  2. 用第一种方案或是正当获取授权的工具,用动态调试等方法获取到内存中的RSA私钥,然后分析接下来交互代码,自己制作一个工具在互联网散播

希望各位大神能帮忙解答下面几个疑惑:

  1. 是否有方法伪造硬盘序列号或是在PC工具里通过改内存方式修改获取到的硬盘序列号?
  2. 通过调试跟踪获取内存中的RSA私钥的难度有多大?是大多数安全从业人员都能实现的吗?
  3. 上面的新方案是否还有其它漏洞?

2021 KCTF 秋季赛 防守篇-征题倒计时(11月14日截止)!

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 1104
活跃值: 活跃值 (747)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
wuxiwudi 活跃值 2021-7-14 17:45
2
0
1.有方法伪造 2.没啥难度,如果没有高强度vm的话 3.本地化方案只有破解成本问题,基本上没有不能破解的
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
欢乐马703 活跃值 2021-7-14 18:24
3
0
wuxiwudi 1.有方法伪造 2.没啥难度,如果没有高强度vm的话 3.本地化方案只有破解成本问题,基本上没有不能破解的
谢谢大神解惑,我们再考虑一下联网验证的方案
雪    币: 677
活跃值: 活跃值 (831)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
方向感 活跃值 2021-7-18 09:50
4
0
本地工具连接嵌入式设备获取嵌入式设备的硬件号,这个硬件号发给你们,你们用工具加密后算出一个码发用户
用户使用本地工具将这个验证码发给嵌入式设备验证,验证通过后开启telneet,验证不通过不开启。
同时限制10分钟才能验证一次,免得别人暴力验证。
雪    币: 677
活跃值: 活跃值 (831)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
方向感 活跃值 2021-7-18 09:51
5
0
换了一个嵌入式设备,这个硬件码改变了,验证码也改变了,本地工具给用户随便玩
雪    币: 677
活跃值: 活跃值 (831)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
方向感 活跃值 2021-7-18 09:52
6
0
别人会不会dump你嵌入式硬件的flash,直接修改固件呢?
游客
登录 | 注册 方可回帖
返回