一、前言
随着因特网技术的发展和成熟,已经渗透到社会的各个领域,网络电子事务日益频繁,大大提高了传统工作的效率,增强了工作的灵活性和准确性。然而目前网络本身的一些固有技术缺陷,产生了不可避免的安全性问题。其中比较典型的如冒名操作、截取他人的敏感数据、抵赖发布过的信息等,给网络应用造成 了极大的危害;
二、问题
1、访问网站时,怎么确定该网站可信赖,是正规网站?例如:https://www.12306.cn等;
2、军工类网站或者系统,要求访问用户必须是可信的,那么怎么证明法访问用户是可信的?
3、邮件发送过程中,怎么确保交易双方接收到的数据与原数据完全一致,不会存在安全问题?
三、PKI定义
公钥基础设施(Public Key Infrastructure,简称:PKI)是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能;
PKI体系是计算机软硬件、权威机构及应用系统的结合。它为实施电子商务、电子政务、办公自动化等提供了基本的安全服务,从而使那些彼此不认识或距离很远的用户能通过信任链安全地交流;
四、PKI系统组成
完整的 PKI 系统必须具有数字证书、认证中心(CA)、证书资料库、证书吊销系统、密钥备份及恢复系统等构成部分;
4.1 组件说明
组件 | 描述 |
数字证书 | 包含了用于签名和加密数据的公钥及电子凭证,是PKI的核心元素 |
认证中心(CA) | 数字证书的申请及签发机关,CA必须具备权威性 |
证书资料库 | 存储已签发的数字证书和公钥,以及相关证书目录,用户可由此获得所需的其他用户证书及公钥 |
证书吊销列表(CRL)/OCSP | 在有效期内吊销的证书列表,在线证书状态协议OCSP是获得证书状态的国际协议 |
密钥备份及恢复 | 为避免因用户丢失解密密钥而无法解密合法数据的情况,PKI提供备份与恢复密钥的机制。必须由可信的机构来完成。并且密钥备份与恢复只能针对解密密钥,签名私钥不能够作备份 |
PKI应用接口(API) | 为各种各样的应用提供安全、一致、 可信的方式与PKI交互,确保建立起来的网络环境安全可靠,并降低管理成本 |
4.2 数字证书
PKI中核心载体为数字证书,即由具有公信力的机构为个人颁发的身份证明,其可看作个人在虚拟网络世界的身份证。
数字证书的分类一般为4大类,1、根据证书持有者分类;2、根据秘钥分类;3、根据验证模式分类;4、根据域名分类;如下图所示:
图3.1 数字证书分类图
4.3 CA中心
CA 中心管理并运营 CA 系统,CA 系统负责颁发数字证书。专门负责颁发数字证书的系统称为 CA 系统,负责管理并运营 CA 系统的机构称为 CA 中心。所有与数字证书相关的各种概念和技术,统称为 PKI(Public Key Infrastructure),具体可参考:https://blog.csdn.net/liuhuiyi/article/details/7776825;
图4.3.1 PKI签发流程
五、PKI的意义
PKI的应用非常广泛,其主要包括网上金融、网上银行、网上证券、电子商务、电子政务等行业,其主要作用是为网络中的数据交换提供完备的安全服务功能。PKI作为安全基础设施,能够提供身份认证、数据完整性、数据保密性、数据公正性、不可抵赖性和时间戳六种安全服务;
5.1 身份认证
由于网络具有开放性和匿名性等特点,非法用户通过一些技术手段假冒他人身份进行网上欺诈的门槛越来越低,从而对合法用户和系统造成极大的危害。身份认证的实质就是证实被认证对象是否真实和是否有效的过程,被认为是当今网上交易的基础。在PKI体系中,认证中心(Certification Authority,CA)为系统内每个合法用户办一个网上身份认证,即身份证;
图4.1.1 身份认证
5.2 数据完整性(电子邮件)
数据的完整性就是防止非法篡改信息,如修改、复制、插入、删除等。在交易过程中,要确保交易双方接收到的数据与原数据完全一致,否则交易将存在安全问题。如果依靠观察的方式来判断数据是否发生过改变,在大多数情况下是不现实的。在网络安全中,一般使用散列函数的方法(Hash函数,也称密码杂凑函数)来保证通信时数据的完整性。通过Hash算法我们将任意长度的数据通过变换为长度固定的数字摘要(消息认证码,MAC),并且原始数据中任何一位的改变都将会在相同的计算条件下产生截然不同的数字摘要。
这一特性使得人们很容易判断原始数据是否发生非法篡改,从而很好地保证了数据的完整性和准确性。PKI系统主要采用的散列算法有SHA一1和MD一5;
图4.2.1 数据完成性流程图
5.3 数据保密性(服务访问)
数据的保密性就是对需要保护的数据进行加密,从而保证信息在传输和存储过程中不被未授权人获取。在PKl系统中,所有的保密性都是通过密码技术实现的。密钥对分为两种,一种称作加密密钥对,用作加解密;另一种称作签名密钥对,用作签名。一般情况下,用来加解密的密钥对并不对实际的大量数据进行加解密,只是用于协商会话密钥,而真正用于大量数据加解密的是会话密钥。
在实际的数据通信中,首先发送方产生一个用于实际数据加密的对称算法密钥,此密钥被称为会话密钥,用此密钥对所需处理的数据进行加密。然后,发送方使用接收方加密密钥对应的公钥对会话密钥进行加密,连同经过加密处理的数据一起传送给接收方。接收方收到这些信息后,首先用自己加密密钥对中的私钥解密会话密钥,然后用会话密钥(对称秘钥)对实际数据进行解密。
图4.3.1 数据保密流程图
5.4 不可抵赖性(合同)
不可抵赖性保证参与双方不能否认自己曾经做过的事情。在PKI系统中,不可抵赖性来源于数字签名。由于用户进行数字签名的时候.签名私钥只能被签名者自己掌握,系统中的其他实体不能做出这样的签名,因此,在私钥安全的假设下签名者就不能否认自己做出的签名。保护签名私钥的安全性是不可抵赖问题的基础;
5.5 数字签名
由于单一的、独一无二的私钥创建了签名,所以在被签名数据与私钥对应的实体之间可以建立一种联系,这种联系通过使用实体公钥验证签名来实现。如果签名验证正确,并且从诸如可信实体签名的公钥证书中知道了用于验证签名的公钥对应的实体,那么就可以用数字签名来证明被数字签名数据确实来自证书中标识的实体。因此,PK的数字签名服务分为两部分:签名生成服务和签名验证服务。签名生成服务要求能够访问签名者的私钥,由于该私钥代表了签名者,所以是敏感信息,必须加以保护。如果被盗,别人就可以冒充签名者用该密钥签名。因此,签名服务通常是安全应用程序中能够安全访问签名私钥的那一部分。相反,签名验证服务要开放一些,公钥一旦被可信签名者签名,通常就被认为是公共信息。验证服务接收签名数据、签名、公钥或公钥证书,然后检查签名对所提供的数据是否有效。它返回验证成功与否的标识;
六、总结
1、针对PKI我们有哪些?
- 认证中心:数字证书的申请及签发机关(CA,自己签发自己);
- 证书资料库:存储已签发的数字证书和公钥,以及相关证书目录,用户可由此获得所需的其他用户证书及公钥;
- 证书历史吊销列表:可以提供给用户所有有效,无效、过期等证书;
2、未来我们的期望是什么?
- PKI应用接口:为各种各样的应用提供安全、一致、 可信的方式与PKI交互,确保建立起来的网络环境安全可靠;
- 目录服务系统(LDAP):解决数字证书查询和下载的性能问题,避免 CA 中心成为性能瓶颈;
- 在线证书状态验证系统(OCSP):方便用户快速获得证书状态,是否需要执行吊销等操作;