通过 PKCS#11 使用智能卡的 Android SSL

Vin*_*ent 5 ssl android smartcard pkcs#11

之所以产生这个问题,是因为我完全迷失了,所以请原谅那些琐碎和无意义的部分。

我有一个 Android 应用程序、一个网络服务、一张 MicroSD 智能卡(移动安全卡)。我需要知道如何使用带有 ssl 的卡来安全地与网络服务进行通信。重建和刷新操作系统不是一个选择。

我知道的:

  • 用于与MSC通信的API
  • 如何编写/部署小程序到 MSC
  • 如何调用网络服务

我不知道的是:

  • SSL协议
  • 关于证书和密码学的内容太多(只有来自大学的可疑学术内容)
  • 事情是如何结合在一起的以及我应该用什么来实现这一点

eek-for-android有一个 OpenSC 教程和库,但操作系统需要为此打补丁。有没有办法避免这种情况并仍然使用该解决方案?

我知道我可以通过一些研究进一步深入,但我的截止日期非常接近(几天),所以我需要帮助,很多帮助,而且很快......提前谢谢你!

编辑:

进一步来说:

我有一张 Giesecke & Devrient 的智能卡 SD 卡,带有 Java Card 操作系统以及精美的小程序和开发工具。我还收到了一个 Android 服务,用于通过 APDU 与卡(小程序)进行通信。这是相当低级的,它接受字节码作为命令和数据。

我需要通过 SSL 身份验证调用 Web 服务。现在我知道 SSL 使用(可以使用)具有 PKCS#11 接口的硬件令牌。

有一个名为eek-for-android 的项目,其中包含修补操作系统的指南,并在智能卡上有一个标准的 PKCS#11 接口(我相信这将是 OpenSC)。我无法修补操作系统。

那么问题又来了:

  • Android SSL 实现可以以某种方式使用(自定义)PKCS#11 接口吗?如果可以,如何使用?(例如可能与某些安全提供商合作)
  • 我可以在不修补操作系统的情况下使用 OpenSC(以及链接指南中提到的其他内容)(例如提取库并将其包含在我的应用程序中)吗?
  • 总的来说,我应该如何链接低级智能卡和高级SSL之间的差距?我恳请您提供与此相关的任何材料。

Mar*_*jak 0

如果您可以在不修补 ROM 的情况下访问您的卡,您可以在其上实施您自己的(需要密码学知识)SSL 实现。

如果没有,那么据我所知,您需要修补 Android 才能访问额外的硬件。并且内置 SSL 库不支持客户端“硬件令牌”AFAIK。