基于证书认证

1.简介

基于证书认证(Certificate-based authentication)是基于用户的数字证书。基于证书认证是比基于口令认证更强大的认证机制,因为用户拥有什么(证书)而不是知道什么(口令)。登录时,用户通过网络向服务器发送证书,和登录请求一起发送。服务器中具有证书的副本,可以用于验证证书是否有效。

2.基于证书认证工作原理

第一步:生成、存储与发布数字证书
基于证书认证的第一步是个前提条件。CA对每个用户生成数字证书并将其发给相应用户。此外,服务器数据库中以二进制格式存储证书的副本,以便在用户进行基于证书认证时验证证书。
第二步:登录请求
登录请求期间,用户只向服务器发送用户名。
第三步:服务器生成随机挑战
服务器收到只有用户名的用户登录请求时,首先检查用户是否有效(只检查用户名)。如果无效,则向用户返回相应的错误信息;如果用户名有效,则服务器生成一个随机挑战(随机数,用伪随机数生成方法生成),将其返回用户。随机挑战可以以明文形式传递到用户计算机,如下图所示:
在这里插入图片描述
第四步:用户签名随机挑战才能打开私钥文件
现在用户要用私钥签名随机挑战。这个私钥对应于用户的公钥。为此,用户要访问其私钥,存放在计算机磁盘文件中。但是,私钥不是任何人可以访问的。为了保护私钥,可以使用口令。只有正确的口令才能打开私钥文件。因此,用户要输入秘密密钥才能打开私钥文件,用户输入正确的口令后,应用程序,应用程序打开用户的私钥文件,从文件中取得私钥,用其加密从服务器收到的随机挑战,生成用户数字签名。技术上,这是个两步过程:第一步是生成随机挑战的数字签名的消息摘要;第二步是用用户的私钥加密消息摘要。这个过程如下图所示:
在这里插入图片描述
现在服务器要验证用户的签名,为此,服务器从用户数据库取得用户的公钥(用其验证用户的签名),然后用这个公钥解密(也称为设计)从用户收到的签名随机挑战。最后比较解密的随机挑战与原先的随机挑战,如下图所示:
在这里插入图片描述
第五步:服务器向用户返回相应消息
最后,根据上述操作成功与否,服务器向用户返回相应是消息。

3.使用智能卡

使用智能卡实际上可以和基于证书认证相联系,因为智能卡可以在卡中生成公钥/私钥对,还可以在卡中存储数字证书。私钥总是放在卡中,安全,不会被篡改。公钥和证书可以导出到外部。另外,智能卡还可以在卡中执行加密功能,如加密、解密、生成消息摘要和签名。这样,基于证书认证期间,可以在卡中签名服务器发来的随机挑战,既可以把随机挑战作为智能卡的输入,在卡中用智能卡持卡人的私钥加密,从而在卡中生成数字证书,输出到应用程序中。
但是,使用智能卡有一点需要注意,它们只能谨慎地用于选择性的加密操作。例如,如果要用智能卡签名1MB文档,通过半双工的9600bps智能卡接口将1MB数据移到智能卡中就要花上15分钟。所以,应该先在智能卡外(即计算机中)生成消息摘要,然后将其输入到智能卡中,让其加密,产生数字签名。
由于智能卡是可移植的,因此可以带着私钥和数字证书。传统上,智能卡有它的问题。下表列出了这些问题及其解决方案:

问题解决方案
桌面计算机中还没有智能卡阅读器,而不像软驱和硬驱一样方便新的计算机与移动设备可能带上智能卡阅读器
还没有智能卡阅读器驱动软件大多数智能卡阅读器厂家都带有PC/SC兼容的阅读器驱动软件
还没有支持智能卡加密服务Microsoft Windows免费提供Microsoft Crypto API之类支持智能卡的软件
智能卡和智能卡阅读器的成本提高正在下降

智能卡厂家之间还缺乏标准化和相互操作性。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhInen丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值