APP下载

基于CPK的IPSec协议的改进研究*

2010-04-26何青松何青林

舰船电子工程 2010年4期
关键词:私钥公钥报文

何青松 何青林

(中国船舶重工集团公司第七二二研究所1) 武汉 430079)(公安部第一研究所2) 北京 100048)

1 引言

在众多的安全协议中,IPSec[1]是因特网的基础协议,IPSec是负责网络数据通信安全的部分,具有良好的开放性,一般而言,在无边界的开放网络中,更适合用现有的IPSec协议。

但在封闭的网络中,如军队网络、电子政务网,需要有一种安全、高效的网络和认证协议;在IPSec协议簇中,IKE是IPSec协议簇的重要内容,负责密钥的协商和管理。因此,IKE的效率、安全性就显得尤为重要,鉴于IKE对PKI的依赖,以及PKI存在固有的弊端,在使用过程中存在很多不尽人意的地方,如需要大量的CA、多层CA之间的认证既降低了效率,又降低了信任度。

本文主要对IKE进行的分析和改进,采用基于组合公钥(CPK Combined Public Key)提出的不依赖于证书[2],而将用户身份直接作为公钥的思想,给出了基于CPK的IPSec的改进思路,从而提高了IKE的效率。

2 IPSec协议概述

现有的互联网协议IP本身作为其他高层协议的载体,在设计的时候并未考虑安全性问题,因此它无法保证高层协议载荷的安全,很容易便可伪造IP包的地址、修改其内容、重播以前的包以及在传输途中拦截并查看包的内容。出于对上述问题的考虑,IETF(Internet Engineering Task Force)推出了IPSec标准安全协议集,它定义了IP数据包格式和相关基础结构,以便为网络通信提供端对端、加强的身份验证、完整性、抗重播和保密性等服务。

IPSec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议Authentication Header(AH)、封装安全载荷协议Encapsulating Security Payload(ESP)、密钥管理协议 Internet Key Exchange(IKE)[3]和用于网络认证及加密的一些算法等。

1)IPSec安全体系定义了主机和网关应该提供的各种能力,AH[4]为IP数据包提供无连接的数据完整性和数据源身份认证,同时具有防重放攻击的能力。

2)ESP[5]为IP数据包提供数据的保密性、无连接的数据完整性、数据源身份认证以及防重放攻击保护,与AH相比,数据保密性是ESP新增的功能,数据完整性检验、数据源身份认证以及抗重播攻击保护都是AH可以实现的。

3)加密算法:描述各种加密算法如何用于ESP中。

4)验证算法:描述各种验证算法如何用于AH中和ESP身份验证选项。

5)密钥管理包括IKE协议和安全关联(SA)等部分,其中IKE是默认的密钥自动交换协议,IKE为IPSec协议生成密钥,IKE的报文格式适合为任何一种协议协商密钥,并不仅限于IPSec的密钥协商,协商的结果通过解释域转化为IPSec所需的参数。IKE在通信系统之间建立安全关联,提供密钥确定和密钥管理机制,是一个产生和交换密钥并协调IPSec参数的框架。IKE将协商的结果保留在SA中,供AH和ESP使用。

6)IPSec本身没有为策略定义标准,目前只规定了两个策略组件:SAD(安全关联数据库)和SPD(安全策略数据库)。

3 CPK算法原理及应用

CPK公钥体制是一种新的集中式公钥管理模式。它的基本思想是,将标识作为公开密钥,管理中心首先生成很多密钥因子,由密钥因子可组合成很多公、私钥对,公钥全都存贮在一个安全芯片中,私钥则由中心直接发放给用户。CPK以少量的种子生成“海量”公钥,以简捷的方式解决了规模化的密钥管理,为构建认证体系提供了可靠的技术基础[6]。

3.1 CPK中公钥与私钥矩阵的构建

给定素数p和方程的参数a,b,确定了椭圆曲线群Ep(a,b),选取Ep(a,b)中的元素G作为基点,由基点G=(XG,YG)的所有倍点构成Ep(a,b)的子群S。设n是满足nG=0的最小整数,则椭圆曲线密码的参数由a,b,G,n,p组成,记为T=(a,b,G,n,p)。则子群S中的元素都为G的倍点kG(k=1,2,……),S中的元素(Xk,Yk)与该点的倍数值k构成公私钥对。适当选择S×T个整数rij,作为私钥因子,并用矩阵SSK表示,称为私钥种子矩阵。由私钥因子又可以得到相应的公钥因子:gij=rijG,从而可得相应的公钥种子矩阵PSK,即

在PSK中的每列中取一个因子,其和构成一个公钥。如此可构成st<n个不同的公钥。适当选择s和t,可形成一个巨大的密钥空间。一个实体的公、私钥对是根据该实体的标识的映射值分别在公钥矩阵和私钥矩阵中选取对应位置的元素再进行组合而生成的,满足公、私钥对的条件PK=SK×G(PK是公钥,SK是私钥)。

3.2 基于标识的公私钥对的生成

SSK由管理中心统一生成并保管。用户私钥是t个私钥因子的和,由管理中心利用适当选择的函数 f作为映射算法,根据用户标识先确定PSK中的因子,继而查找SSK中的相应因子,并将诸因子之和即用户私钥面对面或通过专门的秘密通道发放给用户。公钥查询函数 f通常取单向函数或单向陷门函数,以用户标识作为输入。由于每个用户有自己的私钥,可用于解密、签名或身份认证。而当验证其它用户的签名时,可以直接输入该用户标识,利用f在PSK中查找其公钥即可。任一用户验证其它用户的公钥时,可先访问管理中心,然后利用公钥查询函数 f查找PSK即可。

4 基于CPK的IPSec协议改进

4.1 改进协议的必要性

只有在集中式管理模式下才有可能从技术上解决密钥管理的规模化和基于标识的密钥分发,才有可能建立有效率的信任系统。CPK认证系统是建立在密钥算法和映射算法基础上,采用集中式管理的新型认证体制,从技术上解决了密钥的规模化和密钥存储技术,因而不需要多层CA结构,也不需要LDAP等目录库的支持;CPK解决了基于标识的密钥分发,密钥变量本身直接证明标识或身份的真伪,因而不再需要第三方的证明和第三方机构。CPK不需要庞大的支持系统,几乎没有维护量,与PKI相比较,可以说是一个高效、安全的解决方案。

4.2 对协议的改进

基于CPK技术的IPSec的协议改进是指:基于身份标识的IPSec协议公、私钥都是由CPK管理中心统一生成的并分发的。用户公钥由用户标识来确定,证书与用户标识之间存在一一对应关系,并且,私钥面对面分发,不需作更多认证,只要满足可解性,就可鉴别密钥的真伪。

在网络中所有的终端主机都能实现基于CPK技术的认证,并且被分配了基于身份标识的私钥,我们对IKE密钥协商协议过程进行了改进,在此基础上完成密钥建立协议后,再进行ESP封装,从而完成IPSec交互。因为协议是基于身份标识的,报头部分的地址不需校验,原协议中AH协议可以略去。IPSec协议的实现过程将大大简化。实现过程如下:

设该CPK算法使用的参数为T=(a,b,G,n,p),数据发送方的私钥为SKa,公钥为PKa,数据接收方的私钥为SKb,公钥为PKb。

1)数据发起方A发送过程:

(1)用散列函数对数据部分进行处理,生成报文M的散列码,表述为h=H(M);

(2)用发起方的私钥SKa对报文的散列码h进行签名,得到标识认证码IDa,这个过程表述为IDa=SIGNSKa(h);

(3)对IKE密钥交换协议进行改进,首先产生随机数R用于密钥交换,计算R×PKb作为密钥交换字段,其次计算R×G作为公共密钥K;

(4)使用公共密钥K对报文M进行加密,表述为code=Encryk(M);

(5)将加密后的报文code和标识认证码IDa、密钥交换字段R×PKb作为一个封装数据包一起发送出去;

2)数据接收方B接收过程

(1)用私钥SKb计算出SKb-1,然后根据接收到的密钥交换字段计算SKb-1×R×PKb=SKb-1×R×SKb×G=R×G=K,得到了公共密钥K;

(2)用K 对接收到的加密报文code′进行解密 ,表述为 Dk(code′)=M′,然后在接收端再次计算报文的散列码h′=H(M′);

(3)由发送方A的标识,根据公钥矩阵计算出发送方的公钥PKa,使用该公钥对IDa进行验证得到h,将 h和 h′进行比较,如果一致,则接收该报文,否则对报文作去弃处理。

上述的过程中,该改进方案只需要一次交互,即可实现密钥交换、数据加密和数字签名这一系列过程。特别值得指出的是:终端根据标识,通过公钥矩阵就可以计算出对方的公钥,有了公钥就可以当场验证对方标识签名的真伪,大大的提高了鉴别的效率。标识或数据的任意一位被篡改后,都会导致h和h′的不一致,因此,该基于CPK技术的认证方案能够有效的防欺骗攻击,同时实现了加密的数据传输。

5 结语

基于CPK改进了IPSec协议中的密钥交换协议,公钥由用户标识来确定,证书与用户名之间存在一一对应关系,实现了双方直接认证,大大的提高了认证的效率,同时没有给网络的核心增加任何的负担;而且私钥面对面分发,是一种直接的信任关系,可信度较高,用于认证的数据通信开销也十分有限。因而效率较之原协议有明显的提高,改进的协议具有较高的安全性。

[1]S.Kent,R.Atkinson.Security Architecture for the Internet Protocol.RFC2401[S].1998,11

[2]南湘浩,陈钟.网络安全技术概论[M].北京:国防工业出版社,2003

[3]D.Harkins,D.Carrel.The Internet Key Exchange(IKE).RFC2409[S].IETF Network Working Group,1998,11

[4]S.Kent,R.Atkinson.IP Authentication Header(AH).RFC2402[S].1998,11

[5]S.Kent,R.Atkinson.IP Encapsulating Security Payload(ESP).RFC2406[S].1998,11

[6]南湘浩.CPK标识认证[M].北京:国防工业出版社,2006

猜你喜欢

私钥公钥报文
清扫机器人避障系统区块链私钥分片存储方法
基于J1939 协议多包报文的时序研究及应用
比特币的安全性到底有多高
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
低轨星座短报文通信中的扩频信号二维快捕优化与实现
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案