PKI在企业网中的应用
发布时间:2006-10-14 3:58:05   收集提供:gaoqian
江海花 胡小龙
中南大学铁道校区信息工程学院,湖南长沙
  摘 要 为了保证企业网内部数据的安全性,本文提出了一种适合于企业网的证书管理体系CMS。本体系结构以公钥基础设施PKI为基础,提供加密数据,数字签名以及SSL安全协议等应用,并讨论了如何在不同规模的企业中建立不同等级的体系结构问题。

  关键词 公钥基础设施 证书管理体系结构 证书

前言

  随着计算机网络的普及,计算机网络安全已经成为当代社会各个领域都必须面对和解决的问题。在我国,企业网基于成本考虑一般采取以太网结构。这又分为两种,一种是在企业网的网络边缘采用hub扩展拓扑,由于Hub采用简单的共享式工作原理导致这种拓扑存在重大的安全缺陷;另外,随着lanswitch成本急剧降低,大有逐渐取代Hub的趋势,在企业网边缘采用lanswitch来扩展拓扑虽然在保证数据的完整性和保密性方面比Hub有了很大提高,但是真实性和不可否认性却不能满足。目前,国内许多行业,包括证券、银行、税务、公安、军队等都采用对外物理隔离的专用网络。许多人认为,对于这样的网络似乎不存在安全问题。但是,事实表明,这样的网络同样也存在很大的安全威胁。据WarRoom 调查:在过去的十二个月中,有61%的机构遭受了来自内部的攻击,外部攻击只占39%。

  企业信息化应用的信息安全隐患主要有:

    身份认证

由于非法用户可以伪造、假冒企业网站、企业员工和客户的身份,因此登录到企业网站的企业员工和客户无法知道他们所登录的网站是否是可信的企业网站,企业网站也无法验证登录到网站上的企业员工和客户是否是经过认证的合法用户,非法用户可以借机进行破坏。"用户名+口令"的传统认证方式安全性较弱,用户口令易被窃取而导致损失。

  信息的机密性

  在企业内部和外部网络上传输的企业敏感信息和数据有可能在传输过程中被非法用户截取。

  信息的完整性

  敏感、机密信息和数据在传输过程中有可能被恶意篡改。

  信息的不可抵赖性

  企业的财务报表、采购清单、购销合同、生产计划等电子文件一旦被一方所否认,另一方没有已签名的记录来作为仲裁的依据。

  现在初步形成了一套较为完整的Internet安全解决方案,即被广泛使用的PKI体系结构。从广义上讲,所有提供公钥加密和数字签名服务的系统,都可叫做PKI系统。PKI是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(CA),注册权威机构(RA)和关于公开密钥的安全策略等基本成分共同组成的。具体来讲,在任何一个PKI中,一个认证权威机构CA是一个可信的实体,它根据CA颁发策略负责发布,更新和取消证书。CA可以自己创建,也可以是一个第三方机构。在复杂的认证体系中,CA分为不同的层次,各层CA按照目录结构形成一棵树。独立CA是这种结构一个特例。PKI系统中的证书指的是公钥证书,它把公钥和拥有对应私钥的主体的标识信息(如名称、e-mail、身份证号等)捆绑在一起。证书用于Internet、Intranet和Extranet上用户的身份验证。证书的主体可以是一个人,一台路由器,web服务器或者其他的实体。证书的格式遵循ITUT X.509国际标准。在X.509方案中,默认的加密体制是公钥密码体制。X.509提供了证书和CRL的标准格式。一个证书都包含以下信息:



  在企业网中应用PKI,企业可以用电子证书代替那些容易忘记和破坏的用户ID和密码,员工可以安全的获取传送送信息,并且利用数字签名确认邮件的真实性。本文将结合企业网的特点讨论在如何在企业网中建立简单实用的PKI系统。

  建立企业级电子安全认证

  使用PKI来实现全球网络安全,现在还只是在理论上的构想。因为PKI还处于一个完善的过程中,最重要的是并没有一个全球都可以信赖的CA机构,对于许多不同的需求也没有统一的格式,这些都限制了PKI的广泛使用。但是,在企业网中使用PKI来保证企业内部信息的安全是可行的。企业的规模有大有小,企业级电子安全认证系统应灵活适应这种不同。企业规模的大小虽然不同,但是企业网是独立的主体,在企业内部,可以很容易建立一个所有员工都值得信任的的证书颁发权威中心。其客户和服务群基本都信任企业的权威中心,身份和授权课最终由权威中心仲裁,因此在企业网建立CA机构的信任关系比较容易解决,可以保证企业内部信息交流的安全性和真实性。对于小型企业,企业CA系统一般建立在小型的局域网内,并且网络应用需求多为资源访问控制,相对不需要十分复杂的CA系统来保障通信过程的安全性。在不失必要的安全保证的前提下采用单一的CA系统结构,集合CA和RA的职责于一身,由企业自己承担证书的审核、批准职责,完成用户证书的生成、发布、废除等管理工作。对于大中型企业,则需要采用多层CA结构。大中型企业一般在全国各地都有一些分支机构,企业总部设立根CA。根CA负责各分支机构CA证书申请、签发和管理工作。每一份数字证书都与上一级的签名证书相关联,最终通过安全认证链追溯到一个已知的可信赖的机构。由此便可以对各级数字证书的有效性进行验证。但是CA层次越多,证书的管理就越难,建议层次结构小于三层。基于企业级CA系统的这些独有特性,为了维持企业CA系统的可扩展性,在充分权衡系统的安全性和复杂性的前提下,整个系统仍然采用基于公开密钥基础结构PKI标准来设计。数据结构采用遵循X.509标准的证书结构和CRL(Certificate Revocation List)列表结构,网络安全通信平台采用CA+SSL的方式,一方面审核和发布证书由CA完成,另一方面使用证书按照SSL标准进行通信。

  下图是一个典型的中型企业CA认证系统的实例:



  企业级CA系统的体系结构:

  注册权威机构(Registration Authority)

RA接受用户的请求,负责将用户的有关申请信息存档备案并存储在数据库中,等待审核,并将审核通过的证书请求发送给证书颁发机构。注册权威RA分担了CA的部分任务,管理更方便。

  证书颁发机构(Certificate Authority)

CA是CA体系结构中的核心,功能是认证授权。包括CA自身的密钥证书管理、用户密钥证书管理、密钥存储恢复、CRL表管理和目录服务五个子系统。

  CA自身密钥证书管理子系统。负责生成CA自身的公用私用密钥对和根证书,其中私用密钥用来给证书签名。

  用户密钥证书管理子系统。当用户的证书申请得到批准后,将用户信息和公开密钥绑定,用CA的私用密钥签名,生成用户的数字证书。并且将加密后的证书发放给批准该用户的RA,把证书加入到证书数据库。一般情况下有两种生成用户钥匙对的方式。一种是用户自己生成的方式,用户自己生成钥匙对,私钥自己保存,同时把公钥和自己的资料发给RA申请证书。另外一种是中心生成方式(central key generation),由中心机构,一般是CA,生成钥匙对,然后把私钥和证书发送给用户。在本系统中采用的是后一种方式,因为这样减轻了申请证书的员工的负担,使证书申请流程更加透明,而且更利于私钥的管理和恢复。

  密钥存储恢复子系统。它允许管理员恢复加密密钥。当丢失或因为其他原因不可获得私钥时,比如说雇员忘记了解密文件或邮件的私钥,或者是雇员离职却忘了交待解密私钥,公司将可能丢失由价值的信息,因此蒙受损失,这是就需要使用密钥恢复系统了。服务器和程序的密钥不需要恢复,如果丢失再生成新的密钥对就可以了。但是用户用来加密解密和签名的私钥就需要恢复。

  CRL表管理子系统。当CA颁发的证书失效或CA接受到用户废除证书的请求时,负责将这些证书列入CRL表,公布在目录中。

  目录服务子系统。CA通过LDAP(Lightweight Directory Access Protocol)协议向用户发布证书以及CRL列表,以提供给用户查询使用。

  管理平台

  CA的管理系统采用Client/Server结构模式,Client端的程序提供了CA系统初始化、用户证书管理、用户密钥管理和CRL管理等功能。CA系统初始化完成CA自身的密钥和证书的初始化;用户证书管理完成用户证书的签发、导入、导出和撤销等功能;用户密钥管理完成用户密钥的生成、恢复和销毁;CRL管理完成CRL的及时更新。用户证书申请审核功能由RA来完成,RA管理系统把通过申请审核的数据导入到CA管理系统的申请库中。

终端实体申请CA证书的流程如下:



图一(终端实体申请CA证书的流程图)

  1. 证书申请。用户根据个人信息填好申请证书的信息,由于涉及用户身份等个人信息,需要对通信加密,因此通过HTTPS来提交证书申请信息,当然也可能是一个更新或者取消请求。

  2. RA确认用户。在企业级内部网中一般使用手工验证的方式,这样更能保证用户信息的安全性和真实性。

  3. 证书策略处理。如果验证请求成功,那么系统指定的策略就被运用到这个请求上,比如名称的约束,密钥长度的约束等。

  4. RA提交用户申请信息到CA。RA用自己私钥对用户申请信息签名,保证用户申请信息是RA提交给CA的。

  5. CA为用户生成密钥对,并用CA的签名密钥对用户的公匙和用户信息ID进行签名,生成电子证书。这样,CA就将用户的信息和公钥捆绑在一起了。然后CA将用户的数字证书和用户的公用密钥公布到目录中。

  6. CA将电子证书传送给批准该用户的RA,私钥用另外一种更加安全的方式给RA。

  7. RA将电子证书传送给用户,私钥用另外一种更加安全的方式给用户。

  8. 用户验证CA颁发的证书,确保自己的信息在签名过程中没有被篡改,而且通过CA的公钥验证这个证书确实由所信任的CA机构颁发。

  CA系统及安全证书的应用

  1)文件加密

  由于数据在传输过程中有可能遭到侵犯者的窃听而失去保密信息,加密技术是主要的也是最常用保密安全措施。CA的一个重要应用就是给文件加密解密,用某种算法将普通的文件和密钥相结合,生成不可理解得密文,保证数据在传输过程中的安全性,即使数据在传送过程中泄漏,得到也只是加密后无法识别的密文。   数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公开密钥(公钥),为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。如果用户需要发送加密数据,发送方需要使用接收方的数字证书(公开密钥)对数据进行加密,而接收方则使用自己的私有密钥进行解密,从而保证数据的安全保密性。

  当一位员工A想与另一位员工B进行通信时,他的第一步就是获得它需要与之通信人的电子证书,然后要检查CRL列表,确实该证书是否有效,如果证书仍然有效,在检查颁发证书的签名,确认证书。如图三所示:

图三

  这样,A就可以获得B的公钥。为了保证传输的效率,本系统采用的是对称加密和非对称加密结合的方法。使用公用钥匙来加密共享密钥,用共享密钥来加密文件。步骤如下:

  发送方生成一个自己的私有密钥并用接收方的公开密钥对自己的私有密钥进行加密,然后通过网络传输到接收方;

  发送方对需要传输的文件用自己的私有密钥进行加密,然后通过网络把加密后的文件传输到接收方;

  接收方用自己的公开密钥进行解密后得到发送方的私有密钥;

  接受方用发送方的私有密钥对文件进行解密得到文件的明文形式。

  因为只有接受方具有自己的私钥,所以即使别人得到经过加密的文件,也因为无法解密而保证了传输文件的安全性。实际上,上述在文件传输过程中实现了两个加密解密过程:文件本身的加密和解密与共享密钥的加密解密,这分别通过私有密钥和公开密钥来实现。

  文件加密的另外一个优点是可以在企业网中限制网管的权限。事实上,许多攻击是内部犯罪, 这是任何基于隔离的防范措施都无能为力的。网管的主要职能是保证网络的畅通,但这并不意味着网管可以任意使用,窥探网络中的数据信息。用CA体系结构,可以加入保密员,保密员手中有用来恢复用户因为各种原因而破坏的私钥。但网管没有用户的私钥,所以并不能看见在网络中传输的已经被加密的信息。这样把保密和维护的工作分开,使企业网的安全性最大化。

2)数字签名

  对文件进行加密只解决了传送信息的保密问题,而防止他人对传输的文件进行破坏,以及如何确定发信人的身份还需要采取其它的手段,这一手段就是数字签名。用户可以通过数字签名实现数据的完整性和有效性,只需采用私有密钥对数据进行加密处理,由于私有密钥仅为用户个人拥有,从而能够签名文件的唯一性,即保证:数据由签名者自己签名发送,签名者不能否认或难以否认;数据自签发到接收这段过程中未曾作过任何修改,签发的文件是真实的。数字签名也可以用于时间戳,同时签署信息发出的时间。用户可以用他的私钥签名文件和生成时间戳,证实该文件在某一时间中存在。数字签名同样可以用来确认某一公钥属于某人。数字签名通过计算文件的摘要生成,后面接着是签名人和时间戳。把这些数据通过适当的算法用签名人的密钥进行加密,就生成了数据签名。然后将数字签名作为文件的文件的附件一起发送给接受方。为了确认签名,接受者首先将密文解密得到文件内容并用同样的算法获得文件的摘要,然后确认公钥却是属于发送者,用发送者的公钥对签名进行解密。如果解密得到的数据和用文件生成的摘要相匹配,签名就会认为是有效的。

  数字签名用于企业网中,可以用来签发文件。当文件需要签名时,可以直接在计算机上用签名人的私钥签名。数字签名与书面文件签名有相同之处,采用数字签名,能确认以下两点:第一,信息是由签名者发送的;第二,信息自签发后到收到为止未曾作过任何修改。这样数字签名就可用来防止电子信息因易被修改而有人作伪,或冒用别人名义发送信息。或发出(收到)信件后又加以否认等情况发生。

  3)SSL安全协议

  SSL,"安全套接层(Secure Sockets Layer)协议",主要用于提高应用程序之间的数据的安全系数。SSL协议的整个概念可以被总结为:一个保证任何安装了安全套接字的客户和服务器间事务安全的协议,它涉及所有TC/IP应用程序。

  SSL安全协议主要提供三方面的服务:

  用户和服务器的合法性认证

  认证用户和服务器的合法性,使得它们能够确信数据将被发送到正确的客户机和服务器上。安全套接层协议要求在握手交换数据进行数字认证,以此来确保用户的合法性。

  加密数据以隐藏被传送的数据

安全套接层协议所采用的加密技术既有对称密钥技术,也有公开密钥技术。在客户机与服务器进行数据交换之前,交换SSL初始握手信息,在SSL握手信息中采用了各种加密技术对其加密,以保证其机密性和数据的完整性,并且用数字证书进行鉴别。这样就可以防止非法用户进行破译。

  保护数据的完整性

  安全套接层协议采用Hash函数和机密共享的方法来提供信息的完整性服,建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中能全部完整准确无误地到达目的地。

  在一个企业网内部,会有很多地方需要用到SSL协议。在用户申请证书的第一步,用户需要提交的个人信息就要保证是提交到用户所信任的服务器,如果这些信息中途被窃取,下面颁发的证书就是无效的,可是用户的CA还可能不知道这一点。所以,客户端与服务器连接之初,首先是通过SSL协议的握手层负责进行身份认证、为记录层协商具体的加密算法和HASH算法、生成通信用的密钥,如果握手成功然后进入记录层。记录层负责通信数据的分片、压缩、加密、解密和校验,并且检查数据的完整性。在数据传输过程中,利用证书在客户端和服务器端进行的身分验证过程。当上述动作完成之后,两者间的资料传送就会加密,另外一方收到资料后,再将编码资料还原。即使盗窃者在网络上取得编码后的资料,如果没有原先编制的密码算法,也不能获得可读的有用资料。发送时信息用对称密钥加密,对称密钥用非对称算法加密,再把两个包绑在一起传送过去。接收的过程与发送正好相反,先打开有对称密钥的加密包,再用对称密钥解密。

结束语

  在一个企业内部建立一个安全认证系统是必要和可行的。花相对较少的代价这样可以很大程度上加强企业网的安全性,确保企业内部员工通信的安全和真实性,企业内部资料的保密性。在和外部公司建立了信任关系的同时,也可以用证书和外部公司建立安全的联系,进行交叉认证。

由CHINA通信网组稿
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50