首页logo
  •  

jonllen

金龙,目前就职于一家软件公司,从事Java和.Net信息安全开发设计。

个人档案

jonllen
心情闪存 | 给他留言
妮称:jonllen
来自:中国. 湖南. 湘潭
简述:金龙,目前就职于一家软件公司,从事Java和.Net信息安全开发设计。
博客日历

SSL的服务器客户端双向认证

分类:工作

在一些安全性比较高的网站,我们有时候会需要使用https(加密的HTTP)访问,这就是SSL最常见的应用,安全套接层(Secure Sockets Layer)协议,为网络通信提供安全及数据完整性保护。SSL双向认证即是对服务器和客户端两边同时进行认证。

服务器身份验证

在IIS里面部署一个https网站,要先配置一个SSL服务器证书。服务器证书是用来标识服务器的身份,应该由受信任的第三方CA认证机构颁发。IIS中可直接从pfx证书文件中导入,也可以先在IIS中创建证书申请,然后拿req申请文件在CA中做好证书,再导入生成的证书。SSL服务器证书要使用服务器地址或域名作为证书主体名称,多个地址可在证书的使用者备用名称项中标识,密钥标识项中应有服务器身份验证。如果使用了与访问地址不一致的服务器证书,则客户端浏览器会出现安全警报,如下图所示,IE6下提示证书的安全警报。

客户端浏览器中存了受信任的根证书颁发机构列表,如果服务器证书不在受信任的列表中,同样也会有安全警报。如果证书不是默认的受信任第三方CA机构颁发,则一般需在客户端导入根证书。

客户端身份验证

如果把IIS的SSL设置为要求SSL,并且必需要客户证书,则客户端内也要有匹配的个人证书,以进行客户端身份验证,如下图所示,浏览器提示选择数字证书。

客户证书颁发的根证书(证书颁发机构证书)同样在 Web 服务器上也必须是受信任的,否则不会在客户端的选择证书列表中出现。如果客户证书不是默认的受信任第三方CA机构颁发,则需要导入到服务器的受信任的根证书颁发机构中,并再把根证书导入到“受信任的根证书颁发机构”〉“本地计算机”中,重启IIS后生效。如果客户端没有找到有效的用户证书,服务器会拒绝访问。

客户证书向远程计算机证明您的身份,密钥标识项有客户端身份验证或有CRL分发点,Web 服务器会检查客户证书有效性是否被撤销。客户证书可以从pfx文件中导入,也可以来自智能卡设备,一般使用UKey可移动存储介质,这样可以保护私钥不允许导出。例如使用华大智宝的建行网银盾,在插入UKey的网银盾时驱动程序会自动把里面证书加载到客户端的个人证书中,拔掉UKey时自动移除,在使用UKey设备中的证书做客户端认证时,会启动Ping码保护,如下图所示,选择UKey设备中证书做认证时需要口令保护。

在ASP.NET中,可以使用Request.ClientCertificate来获取客户证书,以编程方式更灵活的来验证客户端,比如做用户的登录身份验证。

目前,SSL 安全协议被广泛应用,例如安全电子邮件保护电子邮件消息、使用SSL 协议进行认证和数据加密的SSL VPN等。

标签:工作
  • posted@ 2013-04-20 23:06
  • update@ 2013-04-20 23:09:17
  • 阅读(12027)
  • 评论(0)

相关文章

评论
暂无任何评论。
发表评论
*必填
回复通知我
*必填