SSL使用USBKey证书的需求分析

本文分析了SSL使用USBKey证书代替文件证书以提高安全性,特别是对于客户端/服务器结构的炒股软件。当USBKey插入时,客户端认证无需用户输入PIN码,提升了安全性。解决方案包括回调函数、基于CSP的引擎和基于PKCS11的引擎方法,每种方法有其特点和适用场景。回调函数灵活性高,CSP限于Windows,PKCS11支持多平台且功能全面但开发工作量大。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景 很多系统,如炒股软件采用客户端/服务器结构,用户安装客户端炒股软件在本地计算机,并与证券公司的服务器系统连接,以完成股票的买卖等操作。 客户端与服务器端采用SSL安全通道连接,以防止第三方窃听和篡改通信的内容。但连接时不使用双向认证或者只使用文件证书来进行双向认证。这样做会存在一些风险。 任何人获取了本地主机的访问权限就可以连接到服务器端。 文件证书保存在本地计算机的磁盘上,任何人获取了本地计算机的访问权限就可对其修改、替换或者删除. 所以,要使用USBKey证书来替换文件证书来解决文件证书的安全风险。另外,有的软件公司提出了一个USBKey证书和文件证书两者兼顾的想法,既当客户端检查到有USBKey插入,并能够读出用户的证书时,则使用USBKey来实现服务器端认证客户端,并不需要用户输入PIN码,并当有多个USBKey插入时,也不需要用户选择。 如未检查到USBKey插入,则还使用原来的文件证书. 另外,需求不需要USBKey支持对称密码算法,只需要支持客户端认证算法。思考他们的需求,他们可能是出于以下的考虑。 他们可能是对OpenSSL客户端认证如何使用USBKey证书不太了解,并基于文件证书的认证是他们已经存在的应用模式. 他们不需要USBKey支持对称的密码算法,可能是基于股票交易的实时性需求方面的考虑. 解决方案 USBKey在OpenSSL客户端中的使用有两个方面的应用,第一是实现客户端认证,第二是实现对称算法的加密和解密。以上的需求,只要满足客户端认证的需求就可以了。 OpenSSL实现客户端认证的方法有两种。在OpenSSL0.9.8i以下的版本中,客户端认证是通过回调函数的方法来实现的。在OpenSSL0.9.8i以上的版本中,客户端认证是通过引擎来实现的,并兼容回调函数的方法,既当设置了客户端认证所要使用的引擎,则使用引擎。未设置引擎,而设置了回调函数,则使用回调函数的方法。 实现客户端认证我们可提供三种方案。 回调函数的方法。 在SSL_CTX结构中定义了成员int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey);的回调函数,用户获取客户端证书及相关联的密钥,此函数返回1,指明函数调用成功,返回其它值,表示获取客户端证书及密钥失败。获取的密钥被包装在EVP_PKEY结构中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值