2

我开发了一个在 Freescale FRDM-KL25Z (Cortex-M0) 板上运行的嵌入式应用程序,通过 ADB (Android Debug Bridge) 协议连接 Android Phone (HTC Tattoo)。

然而,谷歌最近从 v4.2.2 (Jelly bean) 开始通过 USB ADB 强制执行 RSA 身份验证以提高安全性。这意味着我的设计仅支持从 v1.5 到 v4.2.1 的 Android 设备。

在 A_CNXN 消息期间,我的 Galaxy Nexus 回复了一条 A_AUTH 消息,以将我的 RSA(密钥)作为黑名单。

我找不到有关 ADB 接口中使用的所有 RSA 身份验证的足够信息。如密钥长度、密钥存储位置。我找不到描述实现细节的相关文档。

可以在嵌入式 ARM MCU 上部署 RSA 身份验证吗?到目前为止,我找到了一个 LPC1343 (cortex-M3) 的实现,它具有有限长度整数到 RSA 计算(64 位)。但是 RSA 在商业认证算法中使用至少 512 位进行计算。

如果不是,那么我必须更改我的设计以同时支持 ADK/AOA 和 ADK。但是 AOA/ADK 不支持 v2.3.7 之前的旧设备。它使事情变得更加复杂,至少我在 Android 上运行的应用程序应该以两种方法开发。

真是一团糟。

4

1 回答 1

-1

最近我用STM32F401(512KB ROM/196KB RAM M4 on 84MHz)评估了mbed TLS(mbed-example-tls-benchmark),它的基准图显示RSA2048可以在2000ms内完成。但是,它会在 STM32F103RB(128KB ROM/20KB RAM M3 on 72MHz)上引发内存 malloc 错误。

因此我草拟的结论是,M3/M4 内核可以在可接受的时间窗口内支持 RSA2048,但它的内存是一个瓶颈。至少我们为 RSA/TLS 使用了 32KB/64KB RAM。

于 2017-07-19T04:35:26.680 回答