首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有硬件令牌密钥的SSLSocket

带有硬件令牌密钥的SSLSocket
EN

Stack Overflow用户
提问于 2015-07-02 16:41:17
回答 1查看 296关注 0票数 4

我对使用客户端令牌来执行SSL/TLS的客户端证书身份验证很感兴趣,但是客户机私钥驻留在一个(非PKCS11 11可访问的)硬件令牌上。我最初想替换密钥管理器,但是我不能从令牌返回私钥,所以我考虑修改底层的SSLSocket和相关类以实现我的目标。

在建立TLS会话时使用的私钥是哪些Java类,以便我可以覆盖该功能?还有其他建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-02 14:30:13

最后,我创建了一个新的提供者来完成这个任务。我的提供者注册了以下内容:

  • 实现PrivateKey的硬件设备抽象;我称之为“令牌”。
  • 扩展KeyStoreSpi的自定义密钥存储库。keystore知道如何从令牌枚举证书和别名。
  • 自定义签名对象,它知道如何使用令牌执行签名操作。我只需要为我的类实现RSA/SHA签名算法的一个子集。
  • 扩展SSLSocketFactory的自定义套接字工厂。我这么做是为了设置首选密码套件。

提供程序将我的令牌注册为PKCS11设备,以避免在客户端身份验证期间出现默认密码提示(我对令牌PIN使用自定义密码提示)。我将我的provder放在提供者列表的顶部,创建了一个新的SSLContext并设置了SSLSocketFactory,最后建立了连接。

客户端和服务器上的-Djavax.net.debug=true始终是我的朋友。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31190205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档