通过PKCS#11使用智能卡的Android SSL
这个问题产生的原因是我完全迷路了,所以请原谅那些琐碎和无意义的部分 我有一个Android应用程序,一个web服务,一张MicroSD智能卡(移动安全卡)。我需要知道如何使用带有ssl的卡与web服务进行安全通信。重建和刷新操作系统不是一个选项 据我所知:通过PKCS#11使用智能卡的Android SSL,android,ssl,smartcard,pkcs#11,Android,Ssl,Smartcard,Pkcs#11,这个问题产生的原因是我完全迷路了,所以请原谅那些琐碎和无意义的部分 我有一个Android应用程序,一个web服务,一张MicroSD智能卡(移动安全卡)。我需要知道如何使用带有ssl的卡与web服务进行安全通信。重建和刷新操作系统不是一个选项 据我所知: 用于与MSC通信的API 如何将小程序写入/部署到MSC 如何调用web服务 我不知道的是: SSL 关于证书和密码学的内容太多了(只有来自大学的不可靠的学术资料) 事情是如何结合在一起的,我应该用什么来实现这一点 有一个OpenSC
- 用于与MSC通信的API
- 如何将小程序写入/部署到MSC
- 如何调用web服务
- SSL
- 关于证书和密码学的内容太多了(只有来自大学的不可靠的学术资料)
- 事情是如何结合在一起的,我应该用什么来实现这一点
- Android SSL实现能否以某种方式使用(定制)PKCS#11接口,如果是,如何使用?(例如,可能与某些安全提供商合作)
- 我可以在不修补操作系统的情况下使用OpenSC(以及链接指南中提到的其他内容)吗(例如,提取LIB并将其包含在我的应用程序中)
- 总的来说,我应该如何将低级智能卡和高级SSL之间的差距联系起来?我恳请您提供有关这方面的任何资料
如果没有,那么你需要给Android打补丁,才能访问额外的硬件。内置SSL库对客户端“硬件令牌”AFAIK没有任何支持。由于这是封装在microSD卡中的智能卡的一种特殊形式,我假设API基于特殊的SD卡读写操作。如果没有root访问权限,这种操作可能在Android上可用,也可能不可用
这取决于API的特定实现。通常,这种microSD卡已经从供应商那里附带了Android库(因为它是最开放的相关移动平台)。您应该向那里询问更多信息。使用Bouncycastle(Spongycastle是Android的分支)并实现您自己的安全提供商,它使用智能卡而不是存储证书的文件。我可以访问该卡,但我无法实现整个SSL层。我需要标准接口和协作libs来快速完成这一任务。我确实有一个库,可以使用它访问卡,但它只提供一个标准接口来访问Java卡小程序。我还有一个提供PKI功能的Java卡小程序,但我需要将其连接到android ssl实现中,最后连接到某种https传输类中。@Vincent:通常的方法是实现您自己的安全提供程序,以提供自己的Java.security.keystrespi实现。这就是J2SE访问PKCS#11模块(如智能卡)的方式,我认为在Android上使用同样的方式没有问题。谢谢,这似乎很有价值。我会调查一下,看看是否还有更多问题。