密码是网络安全的核心技术和基础支撑,是数字化空间的坚固防线。从简单的保密通信到复杂的金融交易,密码学确保了我们的信息安全、完整、真实和可用。在本章中,我们将探讨密码学的核心概念、主要技术及数学原理等,旨在为读者揭示密码的奥秘,并为后续的数字政府建设中的密码技术应用提供基础。
密码是国之重器,是国家的重要战略资源,直接关系国家政治安全、经济安全、国防安全和信息安全。密码是网络信任的基石,是网络空间安全的“内在”基因。密码是目前世界上公认的,保障网络与信息安全最有效、最可靠、最经济的关键核心技术。
密码是指采用特定变换的方法对信息等进行加密保护和安全认证的技术、产品、服务。我国密码工作坚持总体国家安全观,遵循统一领导、分级负责,创新发展、服务大局,依法管理、保障安全的原则,对密码实行分类管理,将密码分为核心密码、普通密码和商用密码。核心密码、普通密码用于保护国家秘密信息,核心密码保护信息的最高密级为绝密级,普通密码保护信息的最高密级为机密级。商用密码用于保护不属于国家秘密的信息。公民、法人和其他组织可以依法使用商用密码保护网络与信息安全。
密码在网络与信息安全领域扮演着关键角色。它不仅可以用于数据加密,还可以用于实体身份和数据来源的安全认证。密码具有以下4个关键特性。
1)机密性:保障信息不被未经授权的个人或计算机等实体泄露是网络安全的重要目标。信息是当今网络空间中最宝贵的资源,一旦泄露可能给国家政治、军事、社会等各个层面造成严重威胁。采用密码学中的加密技术,可以有效实现信息的机密性保护,确保只有授权的人才能访问敏感信息。
2)完整性:确保数据在传输和存储过程中不受未经授权的篡改或破坏。在信息时代,海量数据的安全传输和存储是一个巨大挑战。密码学中的杂凑算法等技术可以帮助保障数据的完整性,防止数据在传输过程中被篡改。
3)真实性:确保信息的来源可靠,未被伪造或篡改。验证信息的真实性、确认身份、防止冒充等任务在网络与信息安全领域至关重要。密码学中的安全鉴别技术,如数字签名、消息鉴别码和身份验证协议等,能够解决信息真实性问题,从而确保信息的合法性和可信性。
4)抗抵赖性:确保发生的操作无法被否认。防止网络上的电子合同、声明等被否认是实现网络安全的一项关键任务。基于公钥密码学的数字签名技术等可以解决行为的抗抵赖性问题,确保相关行为的真实性和可信性。
密码学是致力于研究信息和信息系统的安全及保密的科学,可分为密码编码学和密码分析学两大分支。密码编码学探讨如何对信息进行编码,以实现信息与通信的安全;密码分析学则研究如何解密或攻击已被加密的信息。随着信息的编码与解码之间的竞争不断升级,以及计算机技术的不断进步与应用,密码学持续发展,已经演变为一门综合性而又交叉性强的学科。目前,密码学与语言学、数学、信息论、计算机科学等领域紧密相连,相互之间具有广泛而深刻的联系。
在保密通信系统中,通信双方借助密码技术来确保信息的安全传输,使未经授权的人无法获取信息内容,如图1-1所示。在这个过程中,发送方待发送的消息称为明文。通过加密过程,明文被转化成看似随机的数据,这个过程叫作加密,而加密后的结果则称为密文。密文通过解密过程,重新转化为原始明文。
图1-1 保密通信模型示意
在加密和解密的过程中,所使用的数学算法称为加密算法和解密算法。这些算法通常是在一对相关联的密钥的控制下执行,分别称为加密密钥和解密密钥。如果加密密钥和解密密钥是相同的,或者可以很容易地从其中任意一个密钥推导出另一个密钥,那么这样的密码算法称为单钥体制或对称密码体制。在这种体制下,密钥的保密性变得尤为关键,因为知道了密钥就能够轻松进行加解密操作。相反,如果从其中一个密钥推导出另外一个密钥是困难的,或者是计算上不可行的,那么这种密码体制称为双钥体制或非对称密码体制。在这种体制下,加密密钥和解密密钥是不同的,通常称为公钥和私钥。公钥可用于加密信息,私钥则用于解密信息。
常见的密码技术包括密码算法、密码协议、密钥管理以及公钥基础设施等,它们在多种产品形态(包括软件、芯片、模块、板卡,以及整机和系统等)中得以实现。
密码算法是密码技术体系的核心,在保护信息安全和数据传输方面发挥着至关重要的作用。密码算法的实现和应用是密码学的基础,是实现密码技术和保护信息安全的关键。
在密码技术体系中,密码算法可以用于加密和解密,保护信息的机密性;也可以用于数字签名、数据完整性校验与消息鉴别等,保护信息的真实性、完整性、抗抵赖性等。
本节将详细介绍各种密码算法(包括序列密码算法、分组密码算法、公钥密码算法、密码杂凑算法、数字签名算法、消息鉴别码),以及我国商用密码算法体系。本节将介绍这些密码算法的原理和应用,帮助读者理解如何利用这些算法来保护信息安全和实现数据安全传输。
根据对明文的加密方式不同,对称密码算法可分为序列密码算法与分组密码算法。序列密码算法也被称为流密码算法。根据密钥流生成方式不同,序列密码算法分为同步序列密码算法与自同步序列密码算法。
同步序列密码算法(见图1-2)使用种子密钥 k 和初始向量 IV ,根据密钥流生成算法生成密钥流序列 z = z 0 z 1 z 2 …,然后使用密钥流序列依次对明文序列 m = m 0 m 1 m 2 …加密:
图1-2 同步序列密码算法示意
其中,密钥流序列对明文加密的过程通常为异或运算,即依次将每个密钥流与明文流异或得到密文: 。
相应解密过程只需使用同一密钥 k 和相同的初始向量 IV ,根据相同的密钥流生成算法生成同样的密钥流序列 z = z 0 z 1 z 2 …,然后依次对密文序列 c = c 0 c 1 c 2 …解密:
其中, D 为 E 的逆过程。当 E 为异或运算时, D 也为异或运算,即 。
同步序列密码算法具有加解密速度快、便于软硬件实现等特点,适用于大量数据加密,广泛应用于数据通信领域,例如保护互联网通信、VPN通信和无线通信等。
与同步序列密码算法不同,自同步序列密码算法(见图1-3)在生成密钥流的过程中,密文流会参与后续的密钥流生成。这种特性使得即使密文流的部分比特出现错误,当一定数量的正确密文流被反馈回密钥流生成器后,加解密过程也能够重新同步并恢复到正确的状态。这一特性在通信中尤其有用,因为它允许系统在不稳定的信道环境中运作,即便存在信号干扰、传输错误或数据丢失等情况,也能保持一定程度的加密能力。自同步序列密码能够容忍一定程度的错误。然而,为了实现这种错误容忍的特性,系统可能会变得更加复杂,而且可能需要更多的计算开销。
图1-3 自同步序列密码算法示意
与序列密码算法通过生成密钥流对消息加解密不同,分组密码算法(见图1-4)用于对固定分组大小的消息加解密。
图1-4 分组密码算法示意
分组密码算法通常包含以下要素。
1)分组大小:分组密码算法用于固定大小的消息块加解密,常见的分组大小有64bit、128bit等。
2)密钥长度:分组密码算法使用密钥来控制加解密过程,密钥长度关系着算法的安全性。通常来说,较长的密钥能够提供更高的安全性。
3)加密算法:用于将明文分组转换为密文分组。分组密码通常采用迭代结构,通过多轮运算实现加密过程。每一轮包含不同的步骤,如代换和置换等。
4)解密算法:加密算法的逆过程,通常与加密算法结构相似。
5)密钥扩展算法:将初始密钥扩展成加密或解密算法的每一轮运算所使用的轮密钥的过程。
6)填充方案:如果明文块的大小不是分组大小的整数倍,通常需要使用填充方案来将数据填充到合适的大小。
分组密码算法定义了固定长度的消息块上的置换操作,当实际应用分组密码时,需根据应用场景需求,结合适当的工作模式使用。分组密码算法的工作模式规定了分组密码的使用方式。GB/T 17964—2021《信息安全技术 分组密码算法的工作模式》中规定了多种分组密码算法的工作模式。
1)电码本(ECB)工作模式:加密时,每个消息分组独立加密,适用于会话密钥加密。因相同的消息分组会被加密成相同的密文,ECB工作模式不适用于对较长消息加密。
2)密文分组链接(CBC)工作模式:加密时,前一个密文分组会与当前明文分组进行异或操作,然后再进行加密。加密过程串行执行,解密过程可并行处理。
3)密文反馈(CFB)工作模式:加密时,用前一个密文更新初始向量,以用于后一块消息加密。CFB工作模式相当于基于分组密码构造的自同步序列密码,适用于低误码率网络中的流数据加密等。
4)输出反馈(OFB)工作模式:加密时,通过反复加密初始向量生成密钥流序列,再与消息序列异或得到密文。OFB工作模式适用于噪声环境下的流数据加密。GB 35114—2017《公共安全视频监控联网信息安全技术要求》规定OFB工作模式用于视频数据的加密保护。
5)计数器(CTR)工作模式:加密时,通过加密计数器生成密钥流序列,然后与消息异或得到密文。CTR工作模式具有高度并行性的特点,适用于高速网络数据加密,可应对突发的高速加解密需求。
6)带密文挪用的XEX可调分组密码(XTS)工作模式:适用于磁盘加密等场景。
7)带泛杂凑函数的计数器(HCTR)工作模式:适用于磁盘加密等场景。
8)分组链接(BC)工作模式:单一错误将导致所有后续密文分组解密出错。
9)带非线性函数的输出反馈(OFBNLF)工作模式:是OFB与ECB模式的变体,密钥随每个分组改变。
在对称密码体制中,通信双方需共享同一个秘密密钥。该密钥既用于加密,也用于解密通信内容。然而,随着系统中用户数量增多,密钥管理将变得较为复杂。例如,在有 n 个用户的系统中,若每对用户之间都需要加密通信,则每个用户需存储 n -1个不同的密钥,系统中的密钥总数将达到 n ( n -1)/2。
与之不同,公钥密码体制的最大特点是采用两个相关联的密钥,将加密与解密能力分开。其中一个密钥是公开的,称为公开密钥或公钥,用于加密;另一个密钥为用户专有,是保密的,称为秘密密钥或私钥,用于解密。当系统中有 n 个用户时,每个用户只需拥有自己的公私钥对,并公开自己的公钥,即可实现两两之间的加密通信(见图1-5)。例如,当用户1需要将消息 m 加密发送给用户 k 时,用户1使用用户 k 的公钥Pub k 对消息 m 加密得到密文 c =Enc Pub k ( m ),然后将密文 c 发送给用户 k 。用户 k 收到密文 c 后,使用自己的私钥sk k 解密得到明文 m =Dec sk k ( c ),从而实现了用户1与用户 k 之间的加密通信。
图1-5 多用户公钥加密通信示意
公钥密码体制降低了密钥管理的复杂性,使每个用户只需维护自己的公私钥对。因为公钥是公开的,所以任何人都能用它来加密信息并发送给持有私钥的用户,实现安全的加密通信。公钥密码体制为密钥分发和管理提供了更大的便利性。
公钥密码体制需满足以下要求。
1)产生一对公私钥对是计算上可行的。
2)使用公钥对明文加密是计算上可行的。
3)使用私钥对密文解密是计算上可行的。
4)由公钥计算私钥是计算上不可行的。
5)由密文和公钥恢复明文是计算上不可行的。
6)可选的要求是,加密与解密次序可交换。
公钥密码体制常基于数学困难问题设计,如整数分解、离散对数问题等。公钥密码体制的安全强度依赖于这些数学困难问题的求解难度。尽管公钥密码体制提供了更灵活的密钥管理方式,但公钥密码的加解密速度常常远慢于对称密码的加解密速度。在实际应用中,通常将公钥密码算法与对称密码算法结合使用,如可以使用公钥密码算法加密传输对称加解密所需的密钥,然后使用对称密码算法实现大量数据的加密传输。
密码杂凑算法是一种将任意长度的输入数据映射成固定长度(通常较短)输出数据的算法。这个输出值通常被称为“杂凑值”或“摘要”。密码杂凑算法具有以下特点。
1)确定性:对于相同的输入总是产生相同的输出。
2)输出长度固定:无论输入数据的长度如何,密码杂凑算法都会生成固定长度的杂凑值。
3)高效性:对于给定的输入消息,密码杂凑算法能快速计算出对应的杂凑值。
4)单向性:从杂凑值推导出原始输入数据在计算上不可行。
5)抗碰撞性:寻找与给定消息产生相同杂凑值的另一个消息在计算上是困难的,找到两个不同消息具有相同杂凑值在计算上也是不可行的。
6)雪崩性:输入信息的任何微小改变都将导致输出杂凑值发生巨大变化,且变化不可预测。
7)均匀性:一组消息的杂凑值在空间上均匀分布等。
密码杂凑算法在计算机科学和密码学领域有着广泛的应用,可实现数据完整性验证、数字签名、密钥存储、数据检索等。
数字签名算法是实现电子文档或数据的完整性、真实性和抗抵赖性的重要密码技术。数字签名算法使用公钥密码算法的原理,结合数字证书和密码杂凑算法,实现身份验证和消息完整性保护,在网络安全通信的密钥分配、消息鉴别以及电子商务系统中具有重要作用。
《中华人民共和国电子签名法》以法律形式确立了电子签名的法律效力。数字签名是一类基于密码技术的电子签名,具有以下特点。
1)完整性:数字签名提供了对文档的完整性验证,任何对文档内容的篡改都会使签名失效。
2)真实性:数字签名提供了对签名者的身份验证,确保签名来自合法的实体,防止冒名顶替和伪造签名。
3)抗抵赖性:数字签名提供了对签名者的抗抵赖性,即签名者无法否认他已经进行了签名的事实。
4)安全性:数字签名使用了公钥密码技术,确保签名和验证过程中信息的安全性。
一个数字签名体制由以下6部分构成。
1)明文消息空间 M :所有待签名消息的集合。
2)签名空间 S :所有可能的签名结果的集合。
3)密钥空间 K :所有用于签名与验签的密钥对集合。
4)密钥生成算法(sk, pk)←Gen(1 λ ):给定安全参数 λ ,能有效生成密钥空间 K 中的一对公私钥对(sk, pk),其中私钥sk用于签名,公钥pk用于验签。
5)签名算法 s =Sign( m ,sk):给定消息 m ∈ M 及签名私钥sk,能有效计算签名结果 s ∈ S 。
6)验签算法{True, False}←Verify( s ,pk):给定签名值 s 及验签公钥pk,能有效验证签名结果的正确性,若签名正确则返回True,若签名错误则返回False。
数字签名体制的安全性基于公私钥对的安全性,即根据公钥难以推出私钥,以及根据消息 m 及其签名 s 难以推出签名私钥,伪造一个签名( m ', s ')使Verify( m ',pk)=True是困难的。即使拥有大量的签名信息,攻击者也难以伪造一个新的签名。
数字签名几乎总是和密码杂凑算法结合使用,用于缩短签名长度。首先,使用密码杂凑算法 H 将待签名消息 m 转换成消息摘要 z = H ( m ),然后再对消息摘要 z 进行签名。因密码杂凑算法的抗碰撞特性,即寻找 m '使 H ( m ')=( m )是困难的,所以对消息的杂凑值签名,攻击者也难以伪造签名。
为了将验签的公钥与用户身份信息绑定,数字签名体制通常与数字证书结合使用。数字证书由证书认证机构颁发,将签名者公钥与签名者身份进行绑定。验签者通过检查与签名者公钥相关联的数字证书来确保其有效性、完整性和吊销状态等,从而保证该公钥确实属于签名者本人。
消息鉴别码(Message Authentication Code, MAC)是一种用于验证消息完整性和鉴别消息来源的技术。在公开信道上传输消息时,我们不仅需要对消息本身进行加密保护,还需要确认消息来源的真实性和完整性。MAC技术正是为满足这一需求而提出的解决方案。通过在消息上附加MAC,接收者可以验证消息是否在传输过程中被篡改或伪造,并确保消息的来源可信。MAC在保障通信安全和防止数据篡改方面发挥着重要作用。
MAC使用对称密码技术,通信双方需预先共享对称密钥 k 。在消息传输过程中,发送方使用密钥 k 对消息进行计算,生成MAC值,然后将消息和对应的MAC值一同发送给接收方。接收方使用相同的密钥 k 来验证收到的MAC值的正确性。在攻击者没有掌握密钥 k 的情况下,任何对消息的伪造或篡改都会导致接收方无法通过验证,从而有效地保护了消息来源的真实性和完整性。这种方法确保了通信过程中的安全性,防止了未经授权的数据修改或伪造。
消息鉴别码是一个四元组( M , C , K , A )。其中, M 是所有消息的集合, C 是所有消息鉴别码的集合, K 是密钥空间,对每个密钥 k ∈ K ,对应一个MAC函数 A k ∈ A ,使得对任意消息 m ∈ M , A k ( m )∈ C 。
商用密码是密码技术的重要组成部分,在维护国家安全和主权、促进经济发展、保护人民群众利益中发挥着不可替代的重要作用。密码算法作为商用密码技术的核心,受到国家密码管理局的高度重视。在科技和产业发展方面,密码技术的创新能力持续提升,形成了较完善的标准体系,构成了包含序列密码算法、对称密码算法、非对称密码算法、密码杂凑算法、标识密码算法等在内的完整的和自主研发的国产密码算法体系,对促进商用密码技术的发展、保障我国信息安全起到了巨大作用。
国家密码管理局已经发布了一系列国家标准,包括GB/T 32918《信息安全技术 SM2椭圆曲线公钥密码算法》、GB/T 32905—2016《信息安全技术 SM3密码杂凑算法》、GB/T 32907—2016《信息安全技术 SM4分组密码算法》、GB/T 38635《信息安全技术 SM9标识密码算法》、GB/T 33133《信息安全技术 祖冲之序列密码算法》等。相关算法简介如下。
1)SM1算法:一种分组密码算法,分组长度为128bit,密钥长度为128bit。
2)SM2算法:一种椭圆曲线公钥密码算法,包含数字签名算法、密钥交换协议与公钥加密算法等。
3)SM3算法:一种密码杂凑算法,输出长度为256bit。
4)SM4算法:一种分组密码算法,分组长度为128bit,密钥长度为128bit。
5)SM7算法:一种分组密码算法,分组长度为128bit,密钥长度为128bit。
6)SM9算法:一种基于身份标识的非对称密码算法,包含数字签名算法、密钥交换协议、密钥封装机制与加密算法等。
7)祖冲之算法:一种序列密码算法,密钥长度和初始向量长度均为128bit,包含保密性算法和完整性算法。
这些标准涵盖了序列密码、分组密码、公钥密码、密码杂凑算法等,促进了商用密码技术的发展,为保障信息安全、促进密码技术的创新和实际应用做出了重要贡献。
密码协议也称为安全协议,是指基于密码技术的一组规则、流程和算法,用于在通信过程中保护信息安全性和通信可靠性。密码协议的设计目标是抵抗通信过程中的各种攻击(如窃听、篡改、伪造、重放等),满足安全性、真实性、机密性、完整性、抗抵赖性等基本要求。
密码协议已广泛应用于互联网、物联网、移动通信等场景,在网络通信和数据传输中起到了关键作用。根据所要实现的目的,密码协议可分为鉴别协议、密钥交换协议、安全多方计算协议、安全通信协议等。以下简要介绍鉴别协议与密钥交换协议。
鉴别协议指在声称方与验证方之间定义的消息序列,使得验证方能够执行对生成方的鉴别。其中,声称方指被鉴别的本体本身或者代表本体的实体,验证方指要求鉴别其他实体身份的实体本身或其代表。实体鉴别指通过鉴别协议来证实一个实体就是所声称的实体。实体鉴别机制主要有两种模型:一种是通过声称方与验证方的直接通信确认声称方身份,另一种是通过可信第三方来证实声称方身份。实体鉴别协议的选择基于系统的安全需求,主要包括以下几点。
❑是否抗重放攻击。
❑是否抗反射攻击。
❑是否抗暴力延迟。
❑单向或相互鉴别。
❑是否存在预设的秘密信息可以使用,或者是否需要可信第三方帮助建立共享秘密信息等。
密钥交换协议是在网络通道上实现各方建立共享秘密密钥的基础工具。这些协议在密钥的生成和传输过程中保障了数据的保密性、完整性和真实性,是确保通信安全的重要环节。密钥交换的过程涉及在通信实体之间安全地生成和分发密钥。这些密钥随后用于数据的加密和解密,从而确保通信内容在传输中免受未经授权的访问或篡改。密钥交换协议采用多种加密技术(包括对称密码、公钥密码、数字签名、密码杂凑与消息鉴别码等)来实现这些安全目标。密钥交换协议的主要目标是以安全高效的方式解决密钥分发问题,并追求以下目标。
1)保密性:密钥交换协议应确保共享密钥的保密性,确保只有通信各方知道密钥,防止第三方窃听者或攻击者获取密钥。
2)身份认证:密钥交换协议应提供身份认证机制,验证通信各方的身份,确保他们所声称的身份是真实的,从而防止冒充和未经授权的访问。
3)完整性:在密钥交换过程中,密钥交换协议应确保交换的密钥在传输中未被篡改,以保障密钥的完整性,防止任何可能危及后续加密操作安全性的修改。
4)前向保密性:密钥交换协议通常致力于实现前向保密性,即使攻击者获得了长期秘密(如私钥),也不能事后解密之前交换的消息或推导出共享密钥。
密钥是密码系统的核心,保护密钥至关重要。密钥管理是指密钥全生命周期的管理,涉及密钥的产生、分发、存储、使用、更新、归档、撤销、备份、恢复和销毁等环节。有效的密钥管理是确保数据安全、防止未经授权的访问与避免数据泄露的关键。
密钥管理需对密钥的整个生命周期进行保护。密钥的生命周期指密钥经历的一系列状态,具体如下。
1)待激活:在待激活状态,密钥已生成,但尚未激活使用。
2)激活:在激活状态,密钥用于加密、解密或验证数据。
3)挂起:在挂起状态,密钥仅用于解密或验证。
若明确某个密钥已受到威胁,应立即将密钥状态变为挂起状态,之后该密钥仅可用于解密或验证状态变化前收到的数据,不可用于其他场景。需要注意的是,确定受到威胁的密钥不能被再次激活。当密钥确定受到未经授权的访问或控制时,可认为该密钥受到威胁。密钥生命周期中的状态如图1-6所示。
图1-6 密钥生命周期中的状态示意
密钥的有效性应在时间和使用次数上受到限制。用于派生密钥的原始密钥比生成密钥需要更多的保护,同时应避免密钥乱用,如使用密钥的加密密钥去加密数据等。
密钥状态转换指密钥从一个状态迁移到另一个状态。密钥状态如下。
1)生成:应根据指定的密钥生成规则生成密钥。密钥生成过程中使用的随机数生成器应满足相关标准。
2)激活:使密钥有效,可用于密码运算。
3)释放:限制密钥的使用,密钥过期或被撤销都会发生这种情况。
4)再激活:允许挂起的密钥重新用于密码运算。
5)销毁:终止密钥的生命周期,包括对密钥的逻辑销毁,也可包括物理销毁。
密钥状态转换由以下事件触发:需要新密钥、密钥受威胁、密钥过期、密钥生命周期结束等。密钥管理涉及多种密钥状态转换与服务。
1)对称密码技术:密钥生成后,从待激活状态到激活状态的转换包括密钥安装,也可包括密钥的注册和分发。在某些情况下,安装涉及派生一个特殊的密钥。密钥的生命周期应限制在一个固定的期限内。通常,释放终止激活状态是因为密钥过期。如果发现处于激活状态的密钥受到威胁,撤销该密钥可使它进入挂起状态。一个处于挂起状态的密钥可被归档。如果在某些条件下需再次使用已归档的密钥,它将被再激活,在它完全激活前,可能需再次安装和分发;否则,释放后,密钥可能会被注销和销毁。
2)非对称加密技术:密钥(公钥和私钥)对生成后会进入待激活状态。注意,这对密钥的生命周期有关联但不相同。在私钥进入激活状态之前,注册和分发给用户是可选的,但安装是必需的。私钥在激活状态和挂起状态间的转换,包括释放、再激活和销毁,与上述对称密钥的情形类似。当签发公钥时,通常由CA生成一个包含公钥的证书,以确保公钥的有效性和所有权。该公钥证书可放在目录中或其他类似服务中用于分发,或传回给所有者进行分发。当所有者发送用其私钥签名的数据时,也可附上证书。一旦公钥被验证,该密钥对就进入激活状态。当密钥对用于数字签名时,在私钥释放或销毁后,相应的公钥可能不定期地处于激活状态或挂起状态。为了验证相关私钥在原定的有效期内产生的数字签名,我们可能需要访问公钥。当采用非对称技术实现保密服务,且用于加密的密钥已释放或被销毁时,密钥对中的密钥仍可能处于激活或挂起状态,以便后续的解密。对于签名密钥,对应的公钥将处于激活或挂起状态;对于加密密钥,对应的私钥将处于激活或挂起状态。
公钥基础设施(Public Key Infrastructure, PKI)是基于公钥密码理论和技术提供安全服务的基础设施,包括创建、分发、管理、撤销数字证书所涉及的所有软件、硬件、人员和策略等。PKI遵循既定标准,在网络信息安全中扮演着关键的角色,为网络中的各类实体提供安全服务,具体如下。
1)身份鉴别:PKI用于实体的身份鉴别,通过数字证书验证实体的身份信息和公钥,确保通信双方的真实性和可信性。这种认证机制有助于防止身份欺骗和冒充。
2)数字签名:PKI使用数字证书和私钥来创建和验证数字签名。数字签名能够验证信息的完整性、真实性和抗抵赖性,确保数据在传输过程中没有被篡改,并且签署者无法否认其签名。
3)数据加密:PKI支持使用公钥进行数据加密,保护敏感信息在传输过程中的机密性。公钥用于加密数据,相应的私钥用于解密,确保只有授权方能够访问和解读加密数据。
4)密钥管理:PKI提供了密钥的生成、分发、存储和吊销等管理功能。它确保密钥的安全性和可信性,以及及时地吊销失效的密钥,保护系统免受未经授权的访问和攻击。
5)安全通信:PKI建立的加密通道和数字证书,保障了在公共网络上通信的安全性。它确保敏感数据的保密性和完整性,防止被窃听和篡改。
6)权限控制:PKI可以用于实现对网络资源和数据的访问权限控制,通过数字证书和加密机制,可以限制只有经过授权的用户才能访问受保护的资源,确保数据的安全性和合规性。
7)合规性:PKI提供了数字证书的可追溯性,为电子商务、电子签名、合同等领域的合规性提供了支持,并满足各国法律对数字身份和电子交易的要求。
PKI系统由不同的功能模块组成。这些模块具有不同的功能,具体如下。
(1)证书申请和审批
证书申请和审批是PKI系统最基本的功能。证书的申请和审批可直接由证书认证中心(Certificate Authority, CA)或由面向终端用户的注册审核机构(Registration Authority, RA)来完成。根据不同的应用,证书的申请方式分为离线申请方式、在线申请方式等。完成证书申请后,我们需进行相应的证书审批。具体来说,用户提交的证书申请表需经过RA或LRA中的审查人员进行审核。审核方式分在线审核和离线审核等。如果证书申请通过了RA或LRA的审核,该申请将通过专用的应用程序在PKI系统中注册用户,完成证书审批。
(2)密钥管理
密钥管理是PKI系统的重要功能。PKI系统可以产生CA的根密钥,并通过密钥备份与恢复系统保障根密钥的安全,避免密钥丢失导致无法解密的问题发生。PKI系统也为用户产生、分发、备份公私钥对,对用户的密钥强度和持有者身份进行审核,并通过数字证书将用户的公钥与用户身份绑定,将用户密钥存放在CA的资料库中备份。PKI系统具备密钥自动更新功能,可用于解决证书到期失效问题。对于加密密钥对和证书的更新,PKI系统采取对管理员和用户透明的方式进行,提供全面的密钥、证书及生命周期管理服务。PKI系统提供密钥历史档案管理,可管理密钥更新产生的新旧密钥。
(3)证书签发和下载
证书签发是PKI系统中CA的核心功能。完成了证书的申请和审批后,CA签发该请求的相应证书。
(4)证书的验证
在验证信息的数字签名时,用户必须事先获取信息发送者的公钥证书,以对信息进行验证,还需要CA对发送者所发的证书进行验证,以确定发送者身份的有效性。在发送数字签名证书的同时,CA可以发布证书链。这时,接收者拥有证书链上的每一个证书,从而可以验证发送者的证书。
(5)证书和目录查询
因为证书有有效期,所以进行身份验证时要保证当前证书是有效而没有过期的。另外,还有可能存在密钥泄露以及证书持有者身份、机构代码改变等问题,证书需要更新。因此在通过数字证书进行身份认证时,要保证证书的有效性。为了方便对证书有效性的验证,PKI系统提供了对证书状态信息的查询,以及对证书撤销列表的查询机制。CA支持实时访问证书目录和证书撤销列表,提供实时在线查询,以确认证书的状态。
(6)证书撤销
证书在使用过程中可能会因为各种因素而被废止,例如密钥泄露、相关从属信息变更、密钥有效期中止或者CA本身的安全隐患等。因此,证书撤销服务是PKI系统的一个必需功能。