基于PKI体系的数据加密系统架构
2022-12-10梁丹池李敏盛
梁丹池 李敏盛
因特网技术的发展使得许多应用系统相继诞生。用户在使用各类应用系统过程中产生了庞大的数据信息,其中包含了隐私信息、交易信息、商业信息等不可泄露的秘密信息。信息在增多的同时将可能产生信息泄露的风险。因此,网络数据安全的重要性与日俱增。在互联网中,通信双方传输数据时如果没有对数据进行可靠的加密与验证,则容易受到各种各样的攻击,如信息被捏造、截取、重放等,将严重影响网络安全和用户体验。
公共密钥基础设施(Public Key Infrastructure,PKI)采用可信赖的证书签发组织(Certificate Authority,CA),将数据发送者可公开的密钥和其他个人标志信息等封装起来,以供数据接收者校验数据发送者的身份。在网络中传输信息时,使用加密算法技术、数字签名技术和数字证书技术,保证数据的保密性、完整性、可用性和不可否认性,解决数据加密、身份认证、数据完整等安全问题,满足各种应用系统的安全需求。
一、对称加密算法
对称加密算法是一种由加密算法逆推出解密算法且可以使用加密的密钥来解密密文的算法。目前常用的对称加密算法有DES、3DES、AES等。以AES算法为例,该算法基于数据块的加密,每次处理一个分组共16字节块的数据,一个分组经加密函数处理后再继续下一个分组的处理,直至将整个明文数据加密完。AES的密钥长度可以是27比特、27+26比特、28比特,密钥的长度不同,加密的核心函数执行的次数也不同。对称加密算法需在通信双方传输数据前商定好使用的密钥。若在网络中直接传输未处理的密钥,则容易使密钥直接暴露于网络中进而被黑客获取,导致密文被解密。因此,管理好密钥对于算法安全十分重要。在传输密钥前,必须对密钥进行加密。
二、非对称加密算法
非对称加密算法也叫公钥算法,非对称加密算法的加密密钥不能用于解密密文,加解密算法之间无法逆推。用来加密的密钥可以被公开,而解密密钥只能由特定用户拥有。常见的公钥算法有RSA、ECC等。RSA是目前应用最广泛的公钥算法。在RSA密码体系中,A发信息给B时,用B公开在网络中的密钥(简称公钥)对要传输的数据进行加密。B收到密文后,用自己的私钥还原出原始数据。RSA公钥密码体系的原理如下:1.随机取两个质数 p和 q,求出 n=p*q和 z=(p-1)*(q-1);2.取一个与 z互为质数的数 d;3.求出 e值,使得e*d=1 mod z等式成立;4.(n,e)这组数是公开密钥,(n,d)这组数是私密密钥。
在RSA算法中,通过p*q得到n的过程非常简便,而从n逆推得到p和q非常困难。因为p*q是一种单向函数,当p和q是数值很大的素数时,非法接收者不可能在有限时间内从大数n分解得到p和q,所以大数n的位数长度越大,RSA的安全性越高。
公钥算法与对称加密算法相比,前者解密密文还原出原始数据的难度更高,后者在执行加解密运算时所花费的时间更短。在实际运用场景中,通常将对称加密算法和公钥算法组合来加密传输数据,即用对称加密算法加密数据,用非对称加密算法加密对称加密算法的密钥,使加解密的速度得到提升,并保证了数据传输的安全性。
三、数字签名
数据在互联网传输时,必须保证其完整性、可用性和不可否认性,以确保数据没有被改动,并能验证发送者的身份,这通常需要使用数字签名来实现。数字签名是数据通过不可逆算法运算后生成一个数据摘要附加在原始数据信息上,接收者可通过对摘要进行核验,达到对数据的完整性和身份进行确认的目的。
在数字签名中,最常用的是公钥算法。具体原理是:若发送方A要给接收方B发送数据,则A基于HASH不可逆函数对将要传输的明文信息进行散列计算,产生一个信息摘要ml。A使用自己的私钥d对产生的信息摘要执行加密运算后得到签名E(ml)附着在要传输的数据后面,通过网络传递给B。B用A的公钥p对收到的签名E(ml)进行解密得到信息摘要ml,再对发送过来的数据执行一次相同的HASH函数运算,得到新的信息摘要ml2。HASH函数是一种难以逆向求解的单向函数,不同的数据经过散列函数运算后通常会生成不同的散列值,只要将解密后的信息摘要ml和新生成的信息摘要ml2进行比对,如果一致就表明该数据没有被篡改,是真实可靠的。另外,HASH函数会存在罕见的HASH碰撞现象,即两个不同的输入会生成一个相同的散列值。互联网中的黑客常利用此算法漏洞,使碰撞发生,冒充权限用户,达到入侵系统的目的。为防止HASH碰撞发生,可尽量扩大散列值的取值范围,使发生碰撞的可能性降到最低。
数字签名的过程如图1所示。
图1 数字签名的过程
四、数字证书和PKI密钥基础设施
(一)数字证书
数字证书是一张电子凭证,封装着可标识证书拥有者身份的各种信息数据,用户可根据数字证书来验证证书拥有者的身份。数字证书是由一个可信任的第三方证书机构CA发行的,通常采用国际X.509V3标准,由用户申请证书的私有信息和签发证书机构的信息组成。证书中还包含了使用CA的签字密钥对证书的所有明文信息进行加密运算生成的数字签名,以便用户对证书的真伪进行检验。
(二)PKI密钥基础设施
PKI密钥基础设施是一个集合安全策略、权威机构、应用系统的安全体系架构,在网络中为各类应用系统提供基于公钥密码体系算法的安全服务,包含密钥和数字证书的管理,保证数据的保密性、完整性、可用性和不可否认性。一个完整的PKI基本结构由证书签发机构CA、审核机构RA、签发系统、密钥管理平台、应用接口API组成。CA签发机构为用户提供证书生成、签发、销毁等功能,密钥管理平台为CA提供密钥生成、下发、备份、复原等相关密钥管理功能,证书审核机构RA为用户提供注册、核验、发证等功能,证书颁发系统可以查询证书的各种信息,应用接口API为各类应用安全系统提供使用PKI安全服务的功能。
五、基于PKI体系的数据加密在广播电视发射台站监控中的应用
在企业的数据加密系统架构中,通常建设一个证书颁发系统向各应用服务系统颁发数字证书,各应用服务系统用数字证书实现数据收发双方的双向认证,并使双方得到对方的公钥,双方结合非对称密码体系和对称加密体系传输加密数据并实现密文的解密,同时根据对方的公钥来验证对方传输过来的含有数字签名的数据是否完整或真实可靠。广播电视无线发射台站数量众多,且管理台站的监控系统仅限企业内部网络运行,大量包含涉密信息的数据在台站和数据中心服务器之间传输,若数据没有经过验证和加密就直接在网络中传输,则可能遭到破坏、窃取、篡改等攻击。基于PKI体系在监控系统平台中构建一个数据加密系统架构,可对涉密信息进行加密传输,解决传输过程中数据可能存在的安全性问题。主要核心步骤如下。
(一)部署证书颁发系统
台站与数据中心服务器进行通信传输时,为了保证数据的可靠性,需要使用数字证书进行双向认证。因为台站数量多,所需颁发的数字证书数量多,如果在系统中自建PKI/CA机构,相比于第三方PKI/CA机构,前者具有以下的优势。一是都需要在数据传输交换过程中对证书进行查验,因为自建CA机构建设在企业内部网,速度和可靠性都比第三方CA机构更能得到保证。二是用户量越大,自建CA机构比第三方CA机构所需的费用越少。三是自建CA机构比第三方CA机构更易与企业内部网其他系统进行集成,证书安全策略更具灵活性。因此,应在广播电视发射台站监控系统中自建CA机构,为需要进行数据加密传输、数据验证的应用系统颁发私有证书,以实现数据收发双方的双向认证并对数据加密传输。PKI/CA系统架构拓扑图如图2所示。
图2 PKI/CA系统架构
目前,实现PKI数据加密体系的方案有SSL和TLS两种。OpenSSL是一个可实现SSL和TLS两种方案的开源软件库包,可选用该库自建PKI/CA系统。以使用linux系统为例,搭建PKI/CA系统的主要步骤如下。一是验证linux系统中是否已安装OpenSSL工具,若无,则用命令安装。二是在监控系统中自建PKI/CA系统生成根证书,用于对各台站用户的证书进行验证授权。三是创建并初始化证书管理库,管理PKI/CA系统发放的所有证书。根证书是PKI/CA系统自颁发的证书,是整个信任架构的源点。生成根证书步骤如下:一是使用OpenSSL命令生成私钥;二是通过私钥采用自签名方式生成根证书。
各台站的系统控制器或数据中心服务器在本地基于RSA算法随机产生自己的公钥和私钥,将公钥与其他一些身份信息、算法信息通过OpenSSL生成CSR文件发送至PKI/CA系统申请数字证书。PKI/CA系统利用OpenSSL对CSR文件进行处理,在确认申请者的真实身份后,返回一个CRT文件,即颁发了一个数字证书。各台站的系统控制器或数据中心服务器须提前下载PKI/CA系统根证书,在收到自己申请的证书后,根据相关信息,计算生成新的证书签名摘要。用根证书中的公钥解密证书中签发机构附加的数字签名得到原始的签名摘要,比较新的签名摘要与证书中原始的签名摘要是否一致,若一致则表明收到的证书来自PKI/CA系统,双方即可在各自的系统内置该CA证书。
(二)利用数字证书确认双方身份并交换公钥
在进行数据传输时,若未对数据进行签名,数据有可能遭截断并被改动后发送,或发送方否认发送过该数据,这种情况下接收方都无法验证真伪。为了保证密钥的可靠性和不可否认性,数据发送方可利用基于公钥密码技术的数字签名技术,使用自己的私钥对数据进行签名后发送;数据接收方收到数据后用对方的公钥对数字签名进行验证,确认数据是否完好无损、是否为原发送方发送。该验证过程的前提是双方需知道对方真实的公钥。为避免公钥在传输时被篡改,使公钥的真实性遭到破坏,须利用数字证书进行公钥交换。数字证书认证流程如图3所示。
图3 数字证书认证流程
当数据发送方给数据接收方传输数据时,需要向数据接收方发送自己的数字证书,以便数据接收方验证数据发送方的身份。数据接收方收到数据发送方传输的证书后,用此前下载的PKI/CA系统根证书对收到的证书中的签名进行验证。若签名有效,则确认该证书为PKI/CA系统颁发给数据发送方,数据接收方便可从证书中知道对方的公钥、签名的算法等信息。数据收发双方采用此认证流程,可交换证书,确认对方身份,获得对方信息。
(三)生成数字签名
通信双方均确认双方的身份并知道对方的公钥、数字签名的算法、加解密的算法等信息后,当数据发送方发送数据时,首先须将任意长度的明文数据m使用HASH函数产生固定的信息摘要ml,再用自己的私钥sa对信息摘要ml进行加密签名,形成签名密文Esa(ml)。
(四)结合公钥密码体系和对称密码体系传输密文
数据发送方基于AES算法随机生成一个对称密钥K,使用AES加密算法对要传输的信息m进行加密,形成密文EK(m);使用数据接收方的数字证书中的公钥pb对密钥K进行加密,形成临时通信密钥KI。将数字签名密文Esa(ml)、密文 EK(m)、临时通信密钥 KI封装成最终密文c,通过网络发送给数据接收方。
(五)结合公钥密码体系和对称密码体系解密获得数据
数据接收方收到数据c后,首先用自己的私钥sb解密密钥KI,得到AES算法密钥K,用K解密密文EK(m)得到原数据m;然后接收方根据证书交换得对方公钥pa,使用公钥pa对数字签名密文Esa(ml)进行解密,得到数据的信息摘要ml;最后对原数据m使用相同的HASH函数进行计算得到新的信息摘要ml。将两个信息摘要进行比较,若一致,则表明数据发送方传输过来的数据没有遭到篡改或伪造等攻击,是真实可靠的。数据加密通信总流程如图4所示。
图4 数据验证、加密传输过程
六、总结
通过PKI体系的数据加密系统在广播电视无线发射台站监控系统数据传输中的综合应用可知,该技术可广泛应用于需要对数据进行加解密、身份验证的场合,使用户在一个受信任、安全的网络中进行数据的传输交换,以保证数据的保密性、完整性、可用性和不可否认性。