公钥基础设施(Public Key Infrastructure, PKI)是典型的密码应用技术。在 PKI 系统中, 由证书认证机构(Certification Authority, CA)签发数字证书、绑定 PKI 用户的身份信息和公钥。 PKI 依赖方(Relying Party)预先存储有自己所信任的根 CA 自签名证书,,用来验证与之通信的 PKI 用户的证书链,,从而可信地获得该用户的公钥、用于各种安全服务。
PKI 的发展简史1978 年, L. Kohnfelder 首次提出证书的概念;1988 年,第一版本的 X.509 标准推出,发展至 2005 年的版本 3 标准;1995 年,IETF 成立 PKIX 工作组,将 X.509 标准用于 Internet, 2013 年,,IETF PKIX 工作组结束工作任务。经过多年的技术研究, PKI 技术已经有了长足的进展、广泛的应用, 在全球的信息系统中发挥了重要的安全支撑作用。
身份认证技术身份认证技术是保护信息安全的第一道屏障,其核心技术是信息安全保障体系,也是最基本的环节。它的基本思路:经过验证用户所具有的属性,来判断用户身份是否真实。根据不同的标准身份认证技术,分为四种类型。
依据认证消息的不同性质,分为以下三种类型:一是物理介质认证是通过被验证方出据其持有的物理介质来身份认证,包括信用卡和令牌卡等;二是秘密知识验证是通讯两方应用一同拥有的秘密信息来身份认证,如口令、个人识别码等;三是实体特征验证一方面是实体具有的物理特性,如硬盘的序列号等,另一方面是个体的生物学特性,如指纹和声音等。
依据待认证的实体与实体之间的相关性,共有单、双向两种认证。单向系统中被验证方必须信任验证方,由被验证方向验证方提供认证信息,双向系统中两方必须互相为对方提供自己的身份证实信息,来相互验证。
根据认证对象分为实体身份认证和信息身份认证。前者主要用于鉴别实体的真实身份,后者主要是用于消息传递过程中的不可抵赖性、完整性和新鲜性。
根据双方的信任关系分为无仲裁认证和有仲裁认证两类。无仲裁认证体系里,进行消息传递的两方一起抵御敌方的进攻,而且都信任对方。在有仲裁认证系统中,通信过程中任意一方均有作弊的可能性,两方均不信任对方,如果出现纠纷的现象,则由可信的第三方进行仲裁。 当前广泛应用的主要有:基于口令的验证方法,基于生物特征识别的验证,基于 PKI 技术的验证等。在身份认证系统实际的设计及应用过程中,设计者经常同时使用多种认证机制,使两种及以上的认证方法相互配置,达到认证过程更加安全可靠的目标。
常用的身份认证方法基于口令的身份认证技术口令分为两种:静态口令和动态口令。前者为过去常用的方式,它的原理为系统有一个认证服务器。服务器提前保存每一个用户的一组信息,即用户名 ID 和密码 PW,当用户要求访问系统时,用户在客户机或终端上输入用户名和密码。系统将用户输入的用户名和密码与认证服务器内保存的合法用户的用户名和密码信息对进行匹配,如果匹配成功,则证明该用户为合法用户,允许用户访问系统资源,反之用户身份没有通过验证,系统拒绝用户登录和访问。静态口令的优点是方便使用,操作特别简单,成本低,运行速度快,但还有诸多安全隐患,例如易被盗取和冒充、窥探等。
动态口令是为处理静态口令或许会出现的安全隐患而产生的。动态口令亦称一次性口令,采用一次性使用口令的方法,用户每次使用动态口令牌生成动态密码,因为只有合法用户才能使用动态令牌,所以认证服务器可以通过验证密码来认证用户,保证了用户身份的安全性。动态口令分为同步和异步认证技术,其中同步认证技术有基于时间和基于事件两种方式;异步认证技术则是基于“挑战-应答”的认证技术。例如用基于时间同步认证技术时,若用户端和服务器端的时间未能一致,用户就可能无法登录系统。
基于生物特征的身份认证技术基于生物特征识别的身份认证,是指用户特有的生物特征的使用,例如虹膜,指纹,声纹认证技术。基于生物特征识别的身份认证,基本上被认为最值得信任的认证方法,几乎找不到两个人会拥有一样的生物特性,用户信息是独一无二和无法替代的,用户也就不可能被假冒。
其中,指纹身份认证系统经过剖析、抽取和留存指纹的全部及部分特征,将用户的指纹与事先留存的指纹进行比对,用于验证用户身份的真实性。声纹身份认证是预先将说话人的语音波形保存起来,根据语音波形中反映说话人的声道和发音特征的语音参数,将待识别的语音信号与之进行比较来识别说话人的身份。 但是,生物特征识别技术还不完全成熟,其稳定性和准确性还不够高,例如指纹识别时,如果用户手指有污渍或受伤指纹改变,则系统不能正如通常情况一样识别出用户的指纹信息,则用户被系统拒绝访问。另外因为生物特征认证系统的研发成本投入高,而市场应用比较少,现阶段还无法广泛推广。
基于 PKI 的身份认证技术PKI 即为公钥基础设施,是一种遵循公钥密码理论和技术为电子商务等提供普适性安全服务平台的基础设施。其基本原理是:第三方权威机构—身份认证中心 CA,将用户所持有的公开密钥与其身份信息(如名称、电话等)结合在一起。在两者相结合之前,由身份认证中心 CA 证实用户身份的真实性,而后身份认证中心 CA 给用户及其公开密钥捆绑的证书签名,则签名证书有效。
每个用户均拥有一对公钥和私钥,其中公钥在网络中是公开的,用于文件发送时对信息进行加密;私钥是保密的,只归用户所有,用于对文件信息进行解密和签名。当准备发送消息时,发送方使用接收方的公开密钥加密要传输的数据,接收方得到数据后用其所持有的私有密钥来解密灵气,这样,用户可以在 PKI 服务平台安全通信。
基于 PKI 的身份认证技术选用公开密钥技术,数字签名具有不可复制性,且数据得到完整和保密的保护。PKI 采用数字证书方式,由第三方可信任机构CA 颁发数字证书,同时存储在 USB Key、IC 智能卡等独立设备中,不在网络上传输,无需在线查询数字证书,即可证明用户的身份,能够扩展用户扩大服务范围,可以为大用户群服务。PKI 技术提供数字证书的恢复和撤销机制,如果用户的数字证书丢失或用户信息改变等情况,可以对恢复或撤销数字证书,防止数字证书被窃取或被恶意盗用。基于 PKI 的身份认证技术具有灵活性、可扩展性。
PKI 相关技术对称密钥加密技术对称加密技术,即专用密钥加密技术或单钥密码技术,加密密钥与解密密钥一致,发送方与接收方用同一组的公私密钥对加密或者解密信息。数据加密的一个关键要求是有相同的密钥才能解密。因为通信双方共享密钥,如果密钥丢失或泄露,那么获取密钥的人就可以加密或者解密数据,所以为保证消息的机密性必须保障密钥的安全。
目前经常使用的对称加密算法有 DES、AES 等。这种算法比较简单且计算量比较小,对网络开放、从而能够效率高地加密。同时存在的缺点,一是通讯双方基于通过非面对面的方式协商一个共同的密钥,因此不能保证协商过程的安全性。二是通讯双方每次进行数据传输时都使用惟一密钥,这使得对称加密技术在开放型的网络中需要使用和生成大量的密钥,对于密钥的管理就成为用户的很大负担。三是对称加密算法只能对数据进行加解密,保证数据的机密性,但无法验证通讯双方的真实身份,不能确定数据的完整性。
非对称密钥加密技术非对称密钥加密技术,由公钥和私钥形成一个密钥对,其中公钥向公众公开,私钥归密钥持有人单独保管。通讯双方使用非对称密钥对数据进行加密和解密时,必须使用相互匹配的公钥和私钥。这种算法包括 RSA,PKCS 等。
它有两种方式:一种是发送方用接收方的公钥来加密信息,接收方用其私钥解密信息,这样接收方可以收到多个发送方传来的加密数据,且此加密数据只有接收方一个用户可以解读;另一种即发送方利用自身的私钥加密信息,接收方用对方公钥解密信息,这样一个信息有可能被多个接收方解密。
非对称密钥加密技术的优点是简化了密钥的发放及管理的过程,支持数字签名等安全认证技术,缺点是加密和解密的计算过程特别复杂,运行数据加密和解密的速度比较慢。
在实际应用中,经常同时使用两种加密技术,解决数据加解密过程里的各种问题。
消息摘要这种算法的核心特点:一是不使用密钥进行加密;二是如果需要得到相同的曾加密过的密文数据,要满足两个条件,使用同一个消息摘要算法和提供同一个原文数据;三是经加密完成的数据是无法被逆向解密的。消息摘要算法的适应范围很广,主要包括分布式网络等。
输入不同长度的原文数据经过同一个消息摘要算法计算,所得到的消息摘要的长度是一样的,即消息摘要的长度不因输入的原文数据的多或少而改变。然而不同的算法都有各自固定长度,如 MD5 算法为 128 个比特位,SHA-1 为 192和 256 比特位。普遍认为消息摘要算法的安全程度与计算出消息摘要的长度成正比,即摘要越长算法越安全。
消息摘要的内容看似有随机性,实质并不是随机的。这可以通过多次输入不同的原文数据来检验经消息摘要算法计算的结果是否相同来论证,通常输入的原始数据不同得到的消息摘要就不相同,如果真的具有随机性,那么每次输入相同的原文数据,得到的消息摘要应该不相同,每次得到的消息摘要都是不可重现的,但是,事实并非如此,经同一消息摘要计算的同一原文数据得到的相同的消息摘要,也就是说消息摘要并不是真正随机的。同时,两份原文数据内容基本相似,得到的消息摘要却相差很大。
消息摘要应用的是单向函数,只能将原文数据计算出消息摘要,但是不能依据消息摘要逆向得到原文数据,甚至是找不到原文数据任何相关信息。如果尝试强力攻击,倒推计算消息摘要,判断与已有的消息摘要是否相同,得到的相关信息是数以万计的可能的消息中的一个,因此强力攻击方法是不可取的。
消息摘要算法对构造数字签名方案起到重要作用,通过它计算得到的消息摘要与原文数据紧密相关,改动原文数据就会使消息摘要发生改变,并用它始终是固定长度,比原文数据简短很多。消息摘要与原文数据是单向的一对一关系,对数据的消息摘要进行签名大大提高了签名效率。
数字证书接收方利用发送方的公钥解密对方的数字签名,来验证信息是否是由发送方所提供,但却无法证实发送方与其所