我应该如何反转这个 USB 加密狗?

逆向工程 硬件 USB
2021-06-11 07:18:52

我有银行提供的某种身份验证令牌设备(我不希望再将其用于最初的预期目的)。我想了解它是如何工作的,以及我是否可以将其回收用于其他目的。

在外面,它是一个非常简单的设备,类似于 USB 闪存棒。在 USB 插头的另一侧,有一个按钮和一些 LED。当我插入它时,LED 呈绿色闪烁,并且设备报告 VID:PID 对0483:a188和声称它是“[软件公司] 智能令牌 ECC”的描述。

我没有任何支持此设备的软件,也不知道去哪里寻找它。OpenSC 不走运:它根本无法识别设备。事实上,令牌甚至不使用“智能卡”USB 设备类;相反,它表现为一个 HID 设备。报告描述符看起来很奇怪:

00000000: 06ff ff09 01a1 0109 0209 0385 0115 0026  ...............&
00000010: ff00 7508 9508 8102 0904 0905 8501 1500  ..u.............
00000020: 26ff 0075 0895 0891 0209 0a09 0b85 0415  &..u............
00000030: 0026 ff00 7508 95fe b102 090c 090d 8505  .&..u...........
00000040: 1500 2609 0075 0895 08b1 0209 0609 0785  ..&..u..........
00000050: 0815 0026 4000 7508 9540 b102 0906 0907  ...&@.u..@......
00000060: 8509 1500 26ff 0075 0895 feb1 02c0       ....&..u......

转储上述内容表明该设备应支持在正常通道上交换 ID 为 1 的报告,并在“功能”(配置)通道上交换 ID 为 4、5、8 和 9 的报告。但它与设备的实际工作方式不一致:除了通过功能报告 4、5 和 9 之外,我无法与设备进行通信,并且报告甚至不遵循描述符中指定的格式(功能报告 5 应携带8 个十进制数字,每个字节一个,但实际上携带 254 个字节)。当令牌收到它不喜欢的报告时,它根本不提供任何答案并超时,而不是返回错误响应。功能报告 9 是只读的,并提供某种标识字符串,将设备(?)命名为“[软件公司] ECC 令牌硬件按钮”。同时,按下按钮没有任何效果。

我不知道从这里去哪里。我还能尝试什么?

(我担心这种问题对于 Stack Exchange 问答格式来说可能过于开放或范围太窄,但也许值得一试。)

1个回答

该设备应该如何使用?如果有银行提供的软件,请尝试弄清楚它是如何与加密狗通信的。