Android HCE 应用程序中的安全消息传递问题 - AID 选择期间无效类 (SW 6E00)

问题描述 投票:0回答:1

我目前正在开发一个针对 API 级别 34 的 Android 主机卡模拟 (HCE) 应用程序。我的应用程序处理 PACE(密码验证连接建立)身份验证的服务器端实现,并响应安全消息传递中的 APDU 命令。

PACE 身份验证部分按预期工作。但是,我遇到了 PACE 流程之后的加密 SELECT AID 命令的问题。具体来说,我收到了 SW 6E00(无效类) 响应。我怀疑这与 SELECT 命令中的 CLA=0C 有关。

我的问题:Android HCE 是否支持安全消息传递的 AID 选择?如果是这样,有人可以指导我实现这一目标的正确方法吗?

我知道解决选择问题至关重要,一旦完成,我将需要探索如何动态注册我的第二个小程序的加密 AID...

非常感谢您的帮助。预先感谢您。

在测试期间,我观察到,在安全消息传递中发送 READ BINARY 时,它始终落入

**processCommandApdu**
。主要问题是只有 SELECT 命令总是返回
6E00

在排除故障时,我尝试检索 Android API 中 SELECT AID 的入口点。我的目标是了解如何管理这部分并深入了解错误处理。不幸的是,我什么也没找到。

android smartcard hce
1个回答
0
投票

-确保 SELECT AID 命令格式正确,且 CLA 字节设置为 0x00。

-验证您选择的 AID 是否已正确编码且其长度字节已正确设置。

-检查您的 HCE 服务是否正确处理 SELECT AID 命令并支持安全消息传递。

-使用日志记录和调试工具检查 APDU 命令和响应是否存在任何问题。

-查看 Android 文档和示例,了解 HCE 和安全消息传递的最佳实践。

关于动态注册第二个小程序的加密 AID,您通常会在 HCE 服务中处理此问题。在 PACE 身份验证过程中与终端成功建立安全通道后,您可以使用 HCE 服务的 onCreate() 方法中的 setDefaultServiceForCategory() 方法向 HCE 服务动态注册其他 AID。

确保您的 SELECT AID 命令格式正确,您的 HCE 服务已正确配置为处理安全消息传递,并且您在 HCE 应用程序中遵循 APDU 命令处理的最佳实践。通过彻底的测试和故障排除,您应该能够解决 SW 6E00 响应,并在 Android HCE 应用程序中通过安全消息传递成功实现 AID 选择。

© www.soinside.com 2019 - 2024. All rights reserved.