HttpClient USB-KEY
来源:互联网 发布:linux chown r 777 编辑:程序博客网 时间:2024/05/17 02:46
插入USB-KEY, 想通过HttpClient来向服务器发送https请求。
一、httpClient只能够支持java证书文件,他提供的例子如下
如果USB-KEY的驱动程序支持PKCS#11接口,则OpenSSL通过engine可以比较方便地访问USB-KEY。
不晓得哪些厂商实现了这个接口,既然涉及到安全大家都没有那么友好了。我用下面这段代码来访问农行的KEY宝(厂商是华大),报错:
Exception in thread "main" java.security.ProviderException: Initialization failed
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:186)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:80)
at cn.com.hd.test.pkcs11.main(pkcs11.java:65)
Caused by: java.io.IOException: ???????¨????ò??
at sun.security.pkcs11.wrapper.PKCS11.connect(Native Method)
at sun.security.pkcs11.wrapper.PKCS11.<init>(PKCS11.java:125)
at sun.security.pkcs11.wrapper.PKCS11.getInstance(PKCS11.java:138)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:128)
... 2 more
应该根本就不支持这个接口吧
二、听说最新版本的OpenSSL 0.9.8i版本已经增WINDOWS CAPI的支持。有人进行测试:
进行对USB-KEY的试验(特别说明,试验用的USB-KEY是公安专用,所以第一次访问USB-KEY时会要求输入KEY的密码,并在公安内网中进行试验。)
1、用新编译的软件发起HTTPS页面请求,软件弹出公安KEY的密码输入窗口。(可以证明去访问了CAPI,并成功访问到该USB)。
2、输入密码后,返回的页面中带有USB-KEY主人的信息。(被证明USB-KEY支持成功)
3、拨出USB-KEY,再次请求该页面。返回的页面中不带任何人员信息,直接跳转到登录窗口。
4、再次插入(测试软件不重启),再次请求HTTPS,又出现密码输入窗口,输入密码后,成功访问页面,页面中并带有USB-KEY主人的信息。
5、再次请求该页面,没有出现密码输入窗口,页面返回正常,即同样带有USB-KEY主人的信息。
通过以上五步测试,证明新编译的OPENSSL0.9.8i版本可以自动的向CAPI进行调用。这给需要在OPENSSL中支持CAPI接口的开发者来说是一种福音,至少对我来说是,不用自己写代码,还要测试等等,呵呵。
这个版本好像只支持WINDOWS下的CAPI接口,LINUX下的不清楚了。就说到这里,本着OPENSSL开源的原则,我把我的测试经过供大家参考。以后如果有类似需求的朋友可以尝试一下。
通过调用OpenSSL 的BIO 库来建立安全连接和非安全连接具体方式可以参考:
http://www.ibm.com/developerworks/cn/linux/l-openssl.html
不过这些都是C的方式,本来想用httpClient提交请求的,难道就没有好java的方法了吗?
- HttpClient USB-KEY
- USB Key
- USB key 调试方法
- USB Key的安全漏洞
- Make USB key:
- 根据USB 序列号 生成USB Key
- USB KEY 身份认证简介
- Cracking KEY-LOK USB Dongle
- USB Key 设备描述符
- 免费usb管理软件 SUB key
- USB KEY 身份认证简介
- 加密狗和USB-key
- USB KEY产品的解决方案
- USB-KEY原理简要说明
- USB key身份认证介绍
- 使用USB Key 完善PKI体系
- 中国网上银行的USB Key安全评测
- Creating A Bootable WinPE 2.0 USB Key
- 【转】关于static和extern的用法
- Python当前的默认编码设置setdefaultencoding
- MTK修改音乐播放器
- [转]sql server 到底能否处理百万级,千万级的数据?
- 解决R.java文件丢失
- HttpClient USB-KEY
- 深度剖析WinPcap之(十)——数据包的内核过滤(12)
- 博客开通
- Nginx+PHP的虚拟主机目录权限控制的探究
- 深度剖析WinPcap之(十)——数据包的内核过滤(13)
- runtime error program c:/WINDOWS/Explorer.EXE
- 深度剖析WinPcap之(十)——数据包的内核过滤(14)
- 【转】extern详细用法
- 深度剖析WinPcap之(十)——数据包的内核过滤(15)