智能卡安全应用
2016-11-26
智能卡概述
智能卡是IC卡(集成电路卡)的一种,按所嵌的芯片类型的不同,IC卡可分为三类:
1.存储器卡:卡内的集成电路是可用电擦除的可编程只读存储器EEPROM,它仅具数据存储功能,没有数据处理能力;存储卡本身无硬件加密功能,只在文件上加密,很容易被破解。
2.逻辑加密卡:卡内的集成电路包括加密逻辑电路和可编程只读存储器EEPROM,加密逻辑电路可在一定程度上保护卡和卡中数据的安全,但只是低层次防护,无法防止恶意攻击。
3.智能卡(CPU卡)。
从功能上来说,智能卡的用途可归为如下四点:
1.身份识别:运用内含微计算机系统对数据进行数学计算,确认其唯一性。
2.支付工具:内置计数器(counter)替代成货币、红利点数、等,数字体的数据。
3.加密/解密:网络迅速发展的情况下,电子商务的使用率亦大幅成长,部分厂商表示,网络消费最重要的在于身份的真实性、资料的完整性、交易的不可否认以及合法性,藉由密码机制如DES、RSA、MD5等,除可增加卡片的安全性外,还可采用离线作业,以降低网络上的通讯成本。
4.信息:由于GSM行动电话的普及,SIM卡需求量大增,加速智能卡的技术发展,使得行动电话从原来单纯的电话功能,延伸到今日的网络联机等功能。
使用智能卡身份验证,是当前包括银行(网银转帐、在线支付)、广电(电视机顶盒)、税务系统广泛采用的一种安全认证体系。
智能卡的应用非常广泛,本文介绍智能卡在计算机网络中的应用,使用USB接口的智能卡结合了USB接口技术和智能卡技术、比传统的智能卡设备更加方便、价格更加低廉、应用也比较方便。
智能卡主要在以下四个方面具有广泛的应用:
1.网站身份验证体系:对于一些放在Internet或局域网内的网站,有时候需要限制用户访问。传统的方式采用用户名、密码进行身份验证,但用户名密码很容易泄露。应用之一是采用硬件智能卡代替传统的用户名、密码身份验证体系。另外,有些网站后台管理,仍然采用用户名、密码进行身份验证。对于安全性要求高的、必须发布到Internet的网站,可以将网站的前台发布供Internet用户访问,而网站的后台采用智能卡身份验证体系,以提高安全性。
2.计算机登录:传统的计算机登录使用用户名密码,现在许多笔记本集成指纹验证也是智能卡的一种应用。但对于大多数的办公计算机来说,则没有集成这一硬件功能,本文介绍将智能卡与Active Directory、证书结合,采用智能卡登录计算机,提高系统的安全性。
3.VPN访问企业内网:传统的VPN采用用户名密码。如果密码泄露,则整个内网可能就处于攻击之下。为了提高安全性,可以用智能卡代替传统的用户名密码,并且智能卡再丢失后可以通过“吊销”的方式,注销丢失的智能卡,防止被盗用。
4.移动设备、计算机数据安全防护:人们在U盘、活动硬盘、笔记本计算机、台式机硬盘保存了重要的数据,如果一旦遗失,在损失硬件的前提下,重要的数据(相片、财务数据、设计文档、源代码)可能一同丢失。黄金有价,数据无价。如果避免在硬件损失的前提下,避免数据的丢失及泄露呢?采用智能卡将硬盘加密是其中的一种选择。
使用智能卡访问受保护的网站
使用智能卡访问受保护的网站,主要可以有两种方式实现。一种是使用“证书”方式,即将证书写入智能卡,而访问网站必须要验证与网站服务器由同一证书颁发机构颁发的证书。如果是自己颁发证书或证书已过期,则不能访问。二是修改网站代码,在网站代码中验证智能卡硬件序列号,凡是不属于或者不在访问范围之内的硬件,则不允许访问。本文介绍使用第一种方式来实现。其指导思想如下:
1.配置一台证书服务器用于身份验证:可以使用Windows Server 2003/2008/2012等服务器,Windows服务器不需要升级到Active Directory,安装“独立证书服务器”即可。
2.配置Web服务器:为网站服务器申请证书(使用本节提供的证书服务器),修改Web服务器配置,要求“安全通道”并“要求客户端证书”。
3.为访问网站客户端颁发智能卡:登录证书服务器,申请证书,在申请证书时,将证书“写”到智能卡。
4.客户端访问:在客户端计算机安装智能卡驱动程序,插入智能卡,登录要访问的网站服务器,在访问网站时提示选择证书。如果没有证书则不能访问。
证书服务器的安装我们不做过多介绍,下面介绍主要步骤:
1.在Web服务器上,使用浏览器,登录证书申请页面,为Web服务器申请证书。申请证书之后,打开“Internet信息服务管理器”,为Web服务器绑定申请的证书,并修改Web服务器的配置,在“目录安全性→编辑”中,打开“安全通信”对话框,选择“要求安全通道(SSL)”,并选中“要求客户端证书”,如图1所示。
2.管理员在管理工作站上,安装智能卡驱动程序,打开证书申请网页,申请证书并将证书写到智能卡中。在“高级证书申请”对话框中,在“姓名”后面输入智能卡的使用单位,在“需要的证书类型”下拉列表中选择“客户端身份验证证书”,在“CSP”列表中选择与你的智能卡对应的选项,例如本例为“EnterSafe ePass2000Auto CSP v1.0”,然后单击“提交”按钮,提交申请,如图2所示。
3.之后会弹出输入智能卡的PIN码,输入设置的PIN码,之后单击“确定”按钮。
4.在“证书己颁发”对话框,单击“安装此证书”链接,将证书写入到智能卡。每次可以将证书写入到一个“智能卡”,如果要为另一用户准备智能卡,请插入新的智能卡,为用户重新申请证书并完成写卡操作。
图1 网站要求安全通道并要求客户端证书
图2 申请证书
5.客户端使用。在客户端计算机上,插入智能卡并安装驱动程序,然后在浏览器以“https://Web服 务 器 IP或域名”的方式,打开Web服务器,会弹出“选择数字证书”的对话框,查看并单击“确定”按钮,选择数字证书。
注意:此证书必须为第上一步颁发的证书(即与Web服务器与绑定的证书是同一“证书服务器”颁发的证书),使用其他证书无效。随后弹出输入PIN的对话框,输入PIN之后,打开网站。
6.如果在选择数字证书对话框后,在列表中为空白,则表示证书无效,或者没有插入智能卡,或者智能卡证书损坏,都不能访问网站。
组建采用智能卡进行身份验证的VPN网络
组建使用“智能卡”进行身份验证的VPN网络,其基础是组建VPN网络,但VPN客户端身份验证改为硬件“智能卡”。之所以不采用普通的用户名、密码,是因为普通的用户名与密码很容易泄漏。而采用智能卡进行身份验证,其基本则是使用储存在智能卡中的“证书”进行身份验证。证书具有唯一性,并且可以与传统身份验证的用户“绑定”,只是写入到智能卡中的证书具有不可复制性。
如果要组建用“智能卡进行身份验证”的VPN网络,设计思想如下:
1.身份验证采用Windows服务器中的“Active Directory”,并且安装“企业证书服务器”,颁发证书时,证书与Active Directory用户一一对应。
2.VPN服务器采用Windows Server集成的“路由和远程访问服务”,或者Microsoft“自家”的产品,例如ISA Server或Forefront TMG Server,这两款防火墙产品都可以做VPN服务器,并且可以很好的与Active Directory进行集成。
3.在配置VPN服务器时(以 Forefront TMG 2010为例),选择使用“可扩展的身份验证协议(EAP),使用智能卡或其他证书”,取消其他选择。
4.为了统一颁发证书,管理员使用证书申请Web页中的“智能卡证书注册站”,为每个用户申请并颁发证书。
5.VPN客户端,创建VPN客户端连接,选择“使用我的智能卡进”,在拨号VPN时,插入智能卡,输入智能卡的PIN,完成拨号。需要注意,VPN客户端要“信任”根证书颁发机构。
使用智能卡登录计算机
使用智能卡登录计算机,实际上,大多数的配置步骤,与上一节“组建采用智能卡进行身份验证的VPN网络”是相同的,都需要Active Directory、企业 证书、使用智能卡证书注册站为用户注册证书。可以这样说,只要采用上节的方法与步骤,将Active Directory用户证书写入到智能卡中,加入到Active Directory的计算机,在登录界面中,插入智能卡,即自动跳转到登录页面,提示输入用户的PIN,即可登录系统(登录的用户名是智能卡中写入的证书对应的AD用户名)。
计算机登录采用Active Directory、企业证书服务器来实现。使用“智能卡注册站”为每个用户注册证书(每个用户对应一个智能卡),通过修改计算机的策略,由原来的用户名身份验证改为智能卡验证。达到插卡访问、拔卡锁定计算机的目的和功能。
使用智能卡加密系统与数据
智能卡数据加密是基于Windows Vista操作系统开始支持的BitLocker驱动器加密实现,以达到对计算机的操作系统盘及数据盘加密、解密。当操作系统及硬件被非常侵入或修改时,必须要使用原加密的智能卡才能解密,达到保护数据的目的。
BitLocker驱动器加密是从Windows Vista操作系统开始提供的一个必不可少的安全功能,该功能帮助保护存储在固定和可移动数据驱动器以及操作系统驱动器上的数据。BitLocker有助于防范“脱机攻击”,即通过禁用或阻止已安装的操作系统而展开的攻击,或通过实际取走硬盘来单独攻击数据而展开的攻击。对于固定和可移动数据驱动器,BitLocker帮助确保用户只有在拥有所需密码、智能卡凭据或者在拥有合适密钥的计算机上使用受BitLocker保护的数据驱动器时才能够在驱动器上读取数据和将数据写入到驱动器。
注意:BitLocker驱动器加密时,有多种方法可以验证其身份,最简单的是使用密码,或者将解密密钥保存于U盘中,或者将“智能卡”应用于BitLocker驱动器加密。几种方式加密的取得的安全效果相同。但将“智能卡”用于BitLocker驱动器加密,可以在企业网络中部署。在采用这种方式时,可以将加密密钥保存在Active Directory,万一加密的智能卡丢失时,可以在Active Directory中查找BitLocker恢复密钥,以恢复被加密的数据,如果是其他方式,如果加密密码遗忘并且没有保存恢复密钥,则加密的数据将不能被查看。
在企业中,为网络中的计算机部署,或采用“智能卡”进行身份验证,对用户计算机采取BitLocker驱动器加密,保护数据的主要步骤如下。
1.配置Active Directory与企业证书服务器。
2.在企业证书服务器中,添加BitLocker驱动器加密功能,之后添加复制用于BitLocker模板,并修改证书模板用于BitLocker驱动器加密。
3.之后登录证书申请页面,为智能卡申请证书,证书模板选择上一步中添加复制的模板,在“密钥选项”中,选择智能卡的CSP,之后申请证书,输入智能卡PIN,将申请的证书安装到智能卡中。
4.在要加密驱动器的计算机上,插入上一步写入证书的智能卡,在“控制面板→所有控制面板项→BitLocker驱动器加密”中,选择一个磁盘,例如E盘,单击“启用BitLocker”,在“BitLocker驱动器加密”对话框,选择“使用智能卡解锁驱动器”。
5.之后设置并保存恢复密钥,最后开始加密选择的驱动器。
6.当驱动器加密后,如果要查看或使用被加密的驱动器,可以在“资源管理器”,中,右击加密的驱动器,在弹出的对话框中选择“解锁驱动器”。
7.在弹出的“此驱动器由BitLocker驱动器加密保护”对话框中,插入智能卡,单击“解锁”按钮。如果选中了“从现在开始在此计算机上自动解锁”,只要解锁成功,以后在重新开机后会自动解锁,只有当BitLocker驱动器加密检测到硬件变动时,会自动锁定此驱动器并需要再次解锁。
8.在输入智能卡的PIN后,开始解锁。解锁之后,显示驱动器内容,并能正常读写。