基于公开密钥体系(PKI)的认证
PKI即Public Key Infrastruction的缩写,也就是所谓“公开密钥体系”,是一种利用现代密码学的公钥密码技术在公开的网络环境中提供数据加密以及数字签名服务的,统一的技术框架。使用公开的密钥算法(也称非对称加密算法)的用户同时拥有匹配的公钥和私钥。私钥由用户保存,且不能泄露,公钥则要广泛公开的发布。私钥无法通过公钥计算获得。公开密钥体系的作用不仅可用于安全密钥交换,还可用于鉴别用户的身份,下面将就如何鉴别用户身份进行描述。
当服务器端需要验证客户端的身份时,服务器端产生一个随机数,发送给客户端,客户端通过USB接口,把随机数R传送入USB Key中,使用自己的私钥对随机数进行加密,并把加密结果传给服务器端,服务器端通过使用客户的公钥对接收到的加密数据进行解密,对比解密后的数是否和随机数R一致,一致就通过验证。
基于冲击/响应服务的应用
下图为基于冲击响应体制实现强双因子认证流程示意图以及USB Key在网络安全登录拓扑图:
USB Key认证流程图
当需要在网络上验证用户身份时,先由客户端向服务器发出一个验证请求。服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为冲击)。客户端将收到的随机数通过USB接口提供给USB Key,由USB Key使用该随机数与存储在USB Key中的密钥进行MD5-HMAC运算并得到一个结果作为认证证据传给服务器(此为响应)。与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行MD5-HMAC运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。
密钥运算分别在USB Key硬件和服务器中运行,不出现在客户端内存中,也不在网络上传输,由于MD5-HMAC算法是一个不可逆的算法,就是说知道密钥和运算用随机数就可以得到运算结果,而知道随机数和运算结果却无法计算出密钥,从而保护了密钥的安全,也就保护了用户身份的安全。
【编辑推荐】