2024年6月12日发(作者:邓丽思)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.X
(22)申请日 2005.01.20
(71)申请人 佳能株式会社
地址 日本东京
(72)发明人 大石和臣
(74)专利代理机构 中国国际贸易促进委员会专利商标事务所
代理人 曲瑞
(51)
H04L9/08
权利要求说明书 说明书 幅图
(10)申请公布号 CN 1645792 A
(43)申请公布日 2005.07.27
(54)发明名称
通信装置、数字签名发行方法、装
置及签名发送方法
(57)摘要
本发明提供一种通信装置、数字签
名发行方法、装置及签名发送方法,其中
发起者与响应者之间共享y_ir,根据y_ir
计算HASH_I,把HASH_I发送给IKE代
理服务器,从IKE代理服务器接收针对
HASH_I和发起者的地址生成的数字签名
SIG_S,把SIG_I发送给响应者。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
生成单元,生成数据;以及
通信单元,向数字签名的发行装置发送所述生成的数据;
其中所述通信单元接收由所述数字签名的发行装置针对所述生成的数据以及该通信
装置正在使用的地址而发行的数字签名后,把所述发行的数字签名发送给通信对方。
所述生成单元根据为了生成密钥而与所述通信对方交换的数据而生成密钥和所述数
据,所述通信单元使用所述密钥对所述发行的数字签名加密后,发送给所述通信对
方。
按照来自装置的委托,执行用于共享在加密中使用的秘密数据的委托计算;以及
针对由所述装置生成的数据和所述装置正在使用的地址而生成数字签名,并将其发
送给所述装置。
在所述执行步骤中,一边监视正在执行因特网密钥交换(IKE)的装置所使用的IP地
址,一边按照所述装置的委托、以IKE中的所述迪菲-海尔曼公开密钥配送方式执
行委托计算。
所述发行步骤针对由所述装置生成的散列值和所述装置正在使用的IP地址生成数
字签名,并将其发行给所述装置。
在所述发行步骤中,把公开密钥证明书提供给执行IKE的所述装置,所述公开密
钥证明书包含具有公开密钥和秘密密钥的装置所使用的IP地址、所述公开密钥、
和用于定义该装置是进行所述签名生成的装置的信息。
所述方法在所述装置的默认网关被执行。
从与第一装置进行加密通信的第二装置接收数据;
针对所述接收的数据和所述第二装置使用的地址,利用秘密密钥生成数字签名;以
及
把与所述秘密密钥对应的公开密钥的证明书和所述生成的数字签名发送给所述第二
装置。
字签名,包括:
通信单元,与所述第二装置进行通信;以及
生成单元,针对从所述第二装置接收的数据和所述第二装置使用的地址,利用秘密
密钥生成数字签名;
其中所述通信单元把与所述秘密密钥对应的公开密钥的证明书以及所述生成的数字
签名发送给所述第二装置。
与所述通信对方之间共享秘密数据;
根据所述秘密数据计算散列值;
把所述散列值发送给数字签名的发行装置;
从所述数字签名的发行装置接收针对所述散列值和所述通信装置的地址而生成的数
字签名;以及
向所述通信对方发送所述数字签名。
地址和所述公开密钥作为证明书的内容,其中还包含定义所述装置是在如权利要求
3所述的数字签名发行方法中的进行所述签名生成的装置的信息。
说 明 书
技术领域
本发明涉及通信装置、数字签名发行方法、装置和数字签名发送方法。
背景技术
IPsec是因特网上的2个装置共享其他谁都不知道的秘密数据,根据该秘密数据进
行加密和认证的协议,在通信时,有必要安全地共享秘密数据或彼此的IP地址等。
把秘密数据或彼此的IP地址等数据称作SA(安全性关联,Security Association)。
安全共享SA的协议称作IKE(因特网密钥交换,Internet KeyExchange),在
RFC2409“The Internet Key Exchange(IKE)”中规定。在IKE中,作为共享秘密数据
的方法,使用迪菲-海尔曼公开密钥配送方式(以下称作DH),并规定有4个认证方
法。一个认证方法使用预共享密钥,所以不适合于象因特网那样与不特定的多个对
方进行通信的情形。在剩下的3个认证方法中,使用公开密钥加密。公开密钥是随
机看到的数值,所以为了保证某公开密钥是与哪个装置对应的公开密钥,使用公开
密钥证明书。
即为了使用IKE在因特网上与不特定的多个对方执行IPsec,必须是发行公开密钥
证明书的装置。此外,必须安全生成和管理与公开密钥对应的秘密密钥以及通过执
行IKE而生成的密钥,以便只能由该装置使用。
作为解决计算能力和存储容量的制约的一个方法,考虑到设置代理IKE的服务器
的方法。例如在特开2003-179592号公报中描述密钥交换代理服务器代理DH和认
证的方法。可是,在该方法中,密钥交换代理服务器知道由IKE的执行而生成的
密钥和为了生成签名有效载荷所必要的解密密钥这两个密钥。即不能生成和管理密
钥,以使只能由该装置使用。
因此,作为现在已知的方法,包括为了不让其他人知道密钥,装置完全支持证明书
和IKE,但单独进行处理的方法;和允许其他装置知道密钥后,让其他装置代理证
明书和IKE处理的方法。如果存在装置不单独处理,并由其他装置不知道密钥地
代理处理就可以的方法,则该方法与已经存在的方法相比,能以低成本制作装置,
并且在安全上是最佳的,但是现在还不知道这样的方法。
可是,在用因特网通信的装置中,考虑到难以实现复杂的操作和严格的管理,所以
这些装置不一定局限于较高的计算能力和较大的存储容量。
发明内容
本发明的目的在于:不需要严格的管理,就能使用秘密密钥加密。
本发明的其他目的在于:在缺乏计算能力、不能进行严格管理的装置中,能共享秘
密数据、使用数字签名。
本发明的其他目的在于:防止假冒。
本发明的其他目的在于:提供一种通信装置,包括:生成数据的生成单元;以及向
数字签名的发行装置发送所述生成的数据的通信单元;其中所述通信单元接收由所
述数字签名的发行装置针对所述生成的数据以及该通信装置正在使用的地址而发行
的数字签名后,把所述发行的数字签名发送给通信对方。
此外,本发明的其他目的在于:提供一种数字签名发行方法,包括以下步骤:从与
第一装置进行加密通信的第二装置接收数据;针对所述接收的数据和所述第二装置
使用的地址,利用秘密密钥生成数字签名;以及把与所述秘密密钥对应的公开密钥
的证明书和所述生成的数字签名发送给所述第二装置。
此外,本发明的其他目的在于:提供一种通信装置向通信对方发送数字签名的发送
方法,其中:与所述通信对方之间共享秘密数据;根据所述秘密数据计算散列值;
把所述散列值发送给数字签名的发行装置;从所述数字签名的发行装置接收针对所
述散列值和所述通信装置的地址而生成的数字签名;以及向所述通信对方发送所述
数字签名。
此外,从以下实施例的说明中本发明的其他目的应该变得清楚。
附图说明
下面简要说明附图。
图1是在实施例1中默认网关代理IKE时的协议图。
图2是以太网(注册商标)LAN的模式图。
图3是节点的结构图。
图4是迪菲-海尔曼公开密钥配送方式的图。
图5是DH委托计算的协议图。
图6是实施例2中不是默认网关的装置代理IKE时的协议图。
图7是用数字签名确认对方时的IKE的阶段1的图。
图8是IKE的阶段2(快速模式)的图。
图9是IPsec的隧道模式的模式图。
具体实施方式
说明本发明实施例1。本实施例的连接环境(图2)、装置的结构(图3)与实施例2是
共同的。在实施例2的说明中,详细描述图2、图3。
本方式中,图2所示的主机(通信装置)206在与主机(通信对方)209通信时,与主机
209之间共享秘密数据,根据该秘密数据,计算散列值,把该散列值发送给数字签
名的发行装置即默认网关(路由器)202或主机204,从默认网关202或主机204(数
字签名的发行装置)接收针对该散列值和主机206的地址而生成的数字签名,把该
数字签名发送给主机209。
数字签名的发行装置、即默认网关(路由器)202或主机204从与主机(第一装置)209
进行加密通信的主机(第二装置)206接收数据,针对接收的数据和主机206使用的
地址,利用秘密密钥生成数字签名,把与该秘密密钥对应的公开密钥的证明书以及
生成的数字签名发送给主机206。
此外,数字签名的发行装置即默认网关(路由器)202或主机204按照来自主机206
的委托,执行用于共享在加密中使用的秘密数据的委托计算。
主机206如图3那样构成,具有:生成数据的CPU(生成单元)303;对数字签名的
发行装置发送该生成的数据的网络接口(通信单元)301。网络接口301接收由数字
签名的发行装置(默认网关202或主机204)针对所生成的数据和主机206正在使用
的地址而发行的数字签名,把发行的数字签名向主机(通信对方)209发送。
此外,对与主机(第一装置)209进行加密通信的主机(第二装置)206发行数字签名的
数字签名发行装置即默认网关202或主机204也象图3那样构成。默认网关202具
有与主机206通信的网络接口(通信单元)302,主机204具有与主机206通信的网
络接口(通信单元)301。默认网关202和主机204具有针对从主机206接收的数据
和主机206使用的地址、利用秘密密钥生成数字签名的CPU(生成单元)303,通过
通信单元,把与该秘密密钥对应的公开密钥的证明书以及该生成的数字签名向主机
206发送。
下面,说明实施例2。
在本实施方式中,说明主机经由以太网(注册商标)的LAN与因特网连接的情形。
首先说明现有技术,然后说明本实施例。须指出的是,以下说明了IPv6的情形,
但是也能应用于IPv4。在IPv4和IPv6中,只针对不同点进行附加的说明,而IPv4
和IPv6中共同的说明在IPv6的情形中予以说明。
在1.1中说明环境,在1.2中说明因特网密钥交换和迪菲-海尔曼公开密钥配送方式,
在1.3中说明委托计算,在1.4中说明公开密钥证明书、IP地址的正当性、IKE代
理服务器的可靠性,在1.5中说明本实施例的协议。
1.1环境
图2模式地表示本实施例的连接环境(主机经由以太网(注册商标)的LAN与因特网
连接的环境)。
图2表示连接在LAN上的主机204、205、206经由默认网关202访问因特网201
的环境。在本实施例中,各主机由链路207连接,链路207具体而言是以太网(注
册商标)。链路是指连接在其上的装置通过它能进行通信的设备或媒体,挨着IP层
的下侧。在链路中除了以太网(注册商标)外,还有无线LAN(IEEE802.11)、PPP链
路、X.25、帧中继、ATM网络。
把连接在链路上的IPv6对应装置(默认网关202、DHCP服务器203、主机204、
205、206、209)称作节点。图3表示节点(默认网关202、DHCP服务器203、主机
204、205、206、209)的内部结构的典型例。
在节点中有路由器和主机,路由器转发不是给自己的信息包,但是主机不转发。从
图3可知,节点300是具有网络接口301、302、CPU303、ROM304、RAM305、
HD(硬盘)306、电源307、键盘/定点设备的接口308、监视器的接口309、总线310
等的计算机。
路由器具有多个网络接口301、302,而主机常常具有一个网络接口301。主机204、
205、206通过网络接口301,通过链路207与连接在链路207上的其他节点或通过
网关202与因特网201上的节点通信。默认网关202通过网络接口301,经由因特
网201进行通信,或通过网络接口302,经由链路207进行通信。根据节点,有时
不具有HD的。
须指出的是,以下的处理内容(过程)作为程序或模块实现,在把该程序存储在
ROM304或HD306中的节点执行,或由具有该模块的节点执行。例如当作为程序
而实现时,计算机即CPU303读入该程序,一边根据需要把RAM305用作于计算
的空间,一边进行通过总线310向接口301分配地址的动作。当实现为模块时,将
执行与程序和CPU或RAM等协调执行的上述动作相同的动作的实体作为例如LSI
而实现,并组入节点中。从节点的CPU对模块(LSI)发出指示,并以此为契机,使
模块工作,并执行处理。
这里,说明基本的过程,诸如节点300把地址分配给接口。
连接在图2的链路207上的节点300在接通电源或重新引导时,通过无归属地址自
动配置,在该链路中决定唯一的接口ID(根据MAC地址以IEEEEUI-64格式生成)。
此外,如果根据路由器公告(RA)取得分配给该链路的(可集中)全局地址用子网前缀,
则自动设定为将由子网前缀和接口ID构成的(可集中)全局地址用作节点300的地
址。此外,还自动设定默认网关202(通常称作路由器)的地址。多数情况下,默认
网关202把RA发送给链路。细节记载在
RFC2462“IPv6 Stateless Address Autoconfiguration”中。
在该无归属地址自动配置的执行中,通过在接口ID中使用随机且在链路中为唯一
的值,能利用使因特网上的第三者难以把握与节点的对应关系的匿名地址。细节记
载在RFC3041“Privacy Extensions forStateless Address Autoconfiguration in IPv6”中。
当IPv4时,节点300使用的IPv4地址和默认网关202(路由器)的地址由用户人工
设定,或通过DHCP服务器203自动设定。人工设定的IPv4地址只要不变更,就
是固定的,但是当由DHCP服务器203自动设定时,并不一定局限于固定的地址。
在IPv4地址中存在专用地址和全局地址这2种,根据网络的运用方针而分开使用。
节点在使用专用地址时,(网关)通过进行网络地址变换、通称NAT,把专用地址变
换为全局地址,能与连接在因特网上的其他装置通信。
通过设定节点300使用的(全局)地址和默认网关202(路由器)的地址,节点300能与
连接在因特网201上的其他链路上的节点例如主机209通信。
1.2因特网密钥交换(IKE)和迪菲-海尔曼公开密钥配送方式(DH)
下面说明IKE和DH的概要。
IKE由阶段1和阶段2构成。图7表示使用数字签名作为通信对方的认证方法时的
阶段1。下标i和I表示发起者发送的信息,下标r和R表示响应者发送的信息。
HDR表示ISAKMP标题,记载在其右边的数据表示有效载荷。例如“HDR、SA”表
示ISAKMP信息包的有效载荷是SA。HDR*表示该信息包的有效载
荷被加密。
图7的SA是存储安全性关联的候补的SA协商有效载荷,KE是在迪菲-海尔曼中
交换的后述信息y_i,y_r(图4)。Ni和Nr是Nonce,Idii和Idir是ISAKMP发起者
和ISAKMP响应者的识别有效载荷,CERT是发起者或响应者的公开密钥证明书。
记号用括号包围意味着可省略。SIG_I是针发起者对HASH_I生成的数字签名。
SIG_R是响应者针对HASH_R生成的数字签名。
HASH_I和HASH_R是根据此前交换的数据按如下生成的散列值。
HASH_I=prf(SKEYID、g^xi|g^xr|CK
Y-I|CKY-R|SAi_b|IDii_b)
HASH_R=prf(SKEYID、g^xr|g^xi|CK
Y-R|CKY-I|SAi_b|IDir_b)
可是,prf(key,msg)是带密钥的伪随机函数,输入key和msg时,就输出模拟随机
数。SKEYID是把由Ni、Nr和DH共享的数据输入prf中后计算出的值。xi和xr
是发起者生成的秘密和响应性生成的秘密,g是DH中的生成源。CKY-I和
CKY_R是发起者和响应者的cookie(包含在ISAKMP标题中),SAi_b是SA有效载
荷的实体主体(减去ISAKMP一般标题),IDii_b和IDir_b是IDii有效载荷和IDir
有效载荷的主体。
图4表示DH。如果使图4的实体i与图7的发起者对应,使图4的实体r与图7的
响应者对应,则在从图7的最初到第三,从发起者发送给响应者的KE相当于图4
中的步骤S403i的y_i,而在从图7的最初到第四,从响应者发送给发起者的KE
相当于图4中的步骤S403r的y_r。
执行DH的结果是在实体i和实体r间共享y_ir=y_ri=g^(xi*xr)mod p,但是看到
参数p或g、所交换的数据y_i或y_r的第三者无法知道共享的数据y_ir=y_ri=
g^(xi*xr)mod p。
因此,通过从图7的最初到第三和第四数据的交换而执行DH的发起者和响应者在
该时刻能分别生成加密密钥。在图7的第五和第六交换的两个加密数据使用该加密
密钥被加密。加密密钥的详细生成方法记载在
RFC 2409“The Internet Key Exchange(IKE)”中。
在阶段1结束的时刻,发起者和响应者之间通过加密而受保护(称作确立了
ISAKMP SA),其他装置无法解读加密的通信。
利用该加密通信,执行图8所示的阶段2(快速模式),共享从发起者到响应者的通
信用的IPsec SA和从响应者到发起者的通信用的IPsec SA。图8的记号的意思与
图7同样。在阶段2中,可以执行DH,也可以不执行DH。
此外,当用隧道模式执行IPsec时,如图9所示,与执行ISAKMP的发起者904和
响应者907(称为隧道的两端)不同的两个节点(例如901和908)能变为IPsec的两端。
利用隧道905通信的两端的节点(901、902、903、908、909、910)称作客户机,把
这些客户机的ID有效载荷表示为IDci、IDcr(分别为发起者一侧的客户机、响应者
一侧的客户机)。其他细节参照RFC2409。
如果阶段2结束,则在发起者和响应者之间的双向通信路线中决定了IPsec SA,所
以以后能使用这些SA执行IPsec通信。
1.3委托计算
在本实施例中,连接在链路207上的主机206在执行IKE后与连接在因特网201上
的其他链路上的主机209进行IPsec通信。这时,主机206不是单独执行IKE处理
的全部,不使用自己的证明书。连接在主机206的链路207上的其他装置、例如默
认网关202或主机204等与主机206协调进行IKE内的DH计算。作为该协调计算,
能利用称作委托计算的方式。委托计算是计算能力小的装置(客户机)向计算能力大
的装置(服务器)委托计算的方式,即一边隐藏计算所必要的秘密信息,一边委托的
方法。
参照图5说明该委托计算。图5表示客户机和服务器执行DH的委托计算时执行的
协议。它是特愿2003-314000号(美国专利申请号10/930958、欧洲专利申请号
04255378.4、中国专利申请号2.9)中提出的方式,在本实施例的说明
中,说明其概要。
客户机(节点A)206具有秘密信息x_A,想利用委托计算协议求出在与进行IPsec通
信的通信对方(节点B、图5中未表示的图2中的主机209)之间最终共享的
y_AB(y_B)^(x_A)mod p、为了求出y_AB而在中途需要的y_A=g^(x_A)mod p。
x_A是客户机206的秘密,g和p是公开的。把p的卡米克尔函数称作λ(p)。客户
机206知道服务器(202或204)的IP地址。
在步骤S501中,客户机206准备随机数r_init和y_init=g^(r_init)mod p。r_init是
大于等于1且小于p的整数。过去在执行图5中说明的协议时,把上次计算的r和
g^r mod p用作r_init和y_init=g^(r_init)mod p。在初次执行协议时,客户机206是
IPv6装置,所以认为在制造时生成随机数r_init,并在记录了计算完毕的y_init=
g^(r_init)mod p的状态下出厂。或者考虑到在待机状态(不执行委托计算协议的状态)
下生成随机数r_init并计算y_init=g^(r_init)mod p,然后记录该结果。
在步骤S502中,客户机206随机生成满足
r_1st≡f_1*d_1+f_2*d_2+…+f_M*d_M(modλ(p))的整数向量D=[d_1,d_2,…,
d_M]和二进制向量F=[f_1,f_2,…,f_M]。其中,M和L是整数,d_i是大于等
于1且小于p,F的权重(F的要素f_1、f_2、…、f_M中值为1的元素的个数)小于
等于L。在步骤S503中,客户机206把p、D和g发送给服务器(202或204)。
在步骤S504中,服务器(202或204)计算满足z_i=g^(d_i)modp的[z_1,
z_2,…z_M]。在步骤S505中,服务器把Z发送给客户机。
在步骤S506中,客户机206根据在步骤S502中生成的F和在步骤S505中接收的
Z,按如下计算y_1st=y_M。即y_0=1,如果对于i=1,2,…,M,f_i=1,则
y_i=y_(i-1)*z_i mod p,如果f_i=0,则y_i=y_(i-1)。然后,客户机记录r_1st和
y_1st(=g^(r_1st)mod p),求出y_A为y_A=y_init*y_1st mod p。须指出的是,客户
机(节点A)206执行节点B(209)和IKE,所以把y_A发送给节点B,从节点B取得
y_B(图中未示)。
在步骤S507中,客户机206随机生成满足
r_init+r_1st≡f_1’*d_1’+f_2’*d_2’+…+f_M’*d_M’(modλ(p))的整数向量D=[d_1’,
d_2’,…,d_M’]和二进制向量F=[f_1’,f_2’,…,f_M’]。其中,M和L是整数,
d_i′大于等于1且小于p,F’的权重(F’的元素f_1’,f_2’,…,f_M’中值为1的元素
的个数)小于等于L。在步骤S508中,客户机206把p、D’和y_B发送给服务器
(202或204)。
在步骤S509中,服务器(202或204)计算满足z_i′=(y_B)^(d_i′)mod p的Z’=[z_1’,
z_2’,…z_M’]。在步骤S510中,服务器把Z’发送给客户机。
在步骤S511中,客户机206按如下计算y_2nd=y_M’。即y_0’=1,若对于i=1,
2,…,M,f_i′=1,则y_i′=y_(i-1)’*z_i’mod p,如果f_i′=0,则y_i′=y_(i-1)’。
求出的y_2nd为y_AB(y_AB:=y_2nd)。
通过执行2次以上的委托计算协议,执行一次DH。接着在执行DH时,将这次计
算存储的r_1st和y_1st=g^(r_1st)mod p用为随机数r_init和y_init=g^(r_init)mod p。
1.4公开密钥证明书、IP地址的正当性、IKE代理服务器的可靠度
在本实施例中,连接在与节点206相同的链路207上的其他节点(称作IKE代理服
务器)一边监视节点206使用的IP地址,一边执行IKE。通过该监视,能保证不会
发生既不是节点206也不是IKE代理服务器的节点使用节点206所使用的IP地址
而引起的假冒。具体而言,所述IKE代理服务器连接到与节点206相同的链路207
上,所以通过利用链路层的信息(MAC地址)而实现防止假冒。认为有多种监视方
法,例如,通过记录和监视MAC地址与IP地址的对应关系,能检测到其他节点
(具有其他MAC地址的节点)试图使用相同的IP地址。在本实施例中,与进行
IPsec通信的装置206连接在相同的链路上的其他装置202监视所述装置206的IP
地址。因此,能检测到任何半路出击的人,使用链路层的数据能检测到其他装置使
用所述装置206所使用的IP地址来假冒所述装置206的行为。
此外,在本实施例中,以在IKE中用于通信对方认证的数据(HASH_I或HASH_R)
和节点206使用的IP地址为对象,IKE代理服务器使用公开密钥证明书生成数字
签名,并为了认证而把它发送给通信对方的主机209。主机209通过在确认证明书
的内容后确定链路207并确认取得的证明书的正当性,能确认来自执行DH的对方
的数据、和链路207上的对方的IP地址的正当性。
IKE代理服务器使用证明书保证监视和IP地址的正当性,所以假定IKE代理服务
器是可靠的(不撒谎)。可是当由于任意原因而变为不可靠的状态时,希望估计节点
206受到损害的程度。
此外,IKE代理服务器在IKE中能制造任何半路出击的人。在该攻击中,当节点A
和节点B执行DH时,攻击者即节点C在节点A和节点B之间替换通信内容,对
于节点A假冒节点B,对于节点B假冒节点A。结果,节点A认为与节点B共享
的秘密数据实际在节点A和节点C间共享。同样节点B认为与节点A共享的秘密
数据实际在节点B和节点C间共享。
如果根据各节点间共享的秘密数据生成的加密密钥=译码密钥表示为K_AB(节点
A和节点B间的密钥)、K_AC(节点A和节点C间的密钥)、K_BC(节点B和节点C
间的密钥),则节点A认为与节点B共享的密钥实际上是K_AC,节点B认为与节
点A共享的密钥实际上是K_BC。因此,节点A加密发送给节点B的数据由节点
C夺取该加密的数据后用K_AC译码,节点C把译码的数据用K_BC加密,发送
给节点B。节点B用K_BC对取得的加密数据译码。节点B发送给节点A的加密
数据也用同样的方法处理。因此,节点B虽然以加密的状态取得节点A加密发送
的数据,但是节点A和节点B间的加密通信实际上由节点C窃听。
在IKE中,为了检测出该任何半路出击的人而防止窃听,进行通信对方的认证。
通信对方的认证分为使用预共享密钥的方法和使用公开密钥的方法。在因特网中,
为了与不特定多数用IKE执行IPsec,不能使用预共享密钥。当使用公开密钥时,
根据公开密钥证明书进行节点(的ID及其公开密钥的对应)的确认,但是在本实施
例中,主机206不具有证明书,所以主机206的通信对方不能进行主机206的确认。
可是,本发明应用于发起者时(与IKE代理服务器存在于同一链路上的主机206是
发起者时),响应者(主机209)如果具有自己的公开密钥证明书,发起者(主机206)
就能检测到任何半路出击的人。即在通过数字签名进行通信对方的认证的IKE中,
响应者使用与自己的公开密钥证明书对应的秘密密钥生成对方确认数据(数字签名),
但是充当任何半路出击的人的攻击者不具有与响应者的公开密钥证明书对应的秘密
密钥,所以无法假冒响应者生成对方确认数据(数字签名)。
因此,当对发起者实施本发明时,如果响应者至少具有自己的公开密钥证明书,则
发起者能检测出任何半路出击的人。在不是这样的情形时,例如当发起者和响应者
双方都利用本发明时,IKE代理服务器能进行IPsec通信的窃听,所以在安全性政
策中决定是否允许该窃听,并处理该窃听。
在后者的时候,注意链路207上的节点206和IKE代理服务器(为默认网关202)以
外的节点、例如节点205不是能进行任何半路出击的人,即不能窃听。当使用
IPsec的隧道模式时,隧道外部的链路上的数据是纯文本,所以同一链路的其他节
点能窃听,但是在本实施例中,具有同一链路的其他节点不能窃听的特征。
图9表示使用IPsec的隧道模式时的模式图。发起者904和响应者907执行IKE,
并在因特网906上形成IPsec的隧道905。在把发起者904作为网关的节点组(客户
机901、客户机902、…客户机903)、把响应者907作为网关的节点组(客户机908、
客户机909…客户机910)之间能通过IPsec隧道905进行受保护的通信,但是例如
客户机901和客户机908通信时,与客户机901相同的链路上的客户机902能窃听
客户机901和客户机908之间的通信。对此,本实施例用端对端把图2中节点206
和节点209之间的通信加密,所以链路207上不是IKE代理服务器的节点、例如
节点205不能窃听。因此,比使用IPsec的隧道模式时更安全。
1.5本实施例的协议
下面说明本实施例的协议。分为使用默认路由器202作为IKE代理服务器的情况、
和使用链路207上的默认路由器202以外的节点(例如主机204)作为IKE代理服务
器的情况。图1表示前者时的协议,图6表示后者时的协议。图1和图6中,发起
者代表主机206,响应者代表主机209。主机204(、205、206)通过网络接口301,
经链路207与默认网关202通信。主机209通过网络接口301,经因特网201与默
认网关202通信,而默认网关202通过网络接口301,经因特网201与主机209通
信,并通过网络接口302,经链路207与主机204、205、206通信。图1中,IKE
代理服务器位于从发起者到响应者的路径上,所以与图6相比,发起者进行收发的
次数减少,效率更好。
说明本实施例的前提。IKE代理服务器具有自己的公开密钥和秘密密钥(存储在
HD206中),安全地管理秘密密钥,从而只有IKE代理服务器能访问。从
CA(Certification Authority)发行IKE代理服务器用的公开密钥证明书CERT_S,在
IKE代理服务器(的HD306)中存储该公开密钥证明书CERT_S。在IKE代理服务器
的公开密钥证明书CERT_S中包含IKE代理服务器的IPv6全局地址、和表示该装
置是IKE代理服务器的描述。例如,作为公开密钥证明书的格式,使用X.509v3
时,考虑在subjectAltName中定义、记载表示是IKE代理服务器的信息。虽然可
以采用其他定义·记载方法,但是前提是执行IKE的对方装置(本实施例中的响应者)
同意该定义·记载方法。
响应者(在HD306中)保持从CA向响应者发行的公开密钥证明书CERT_R。例如,
如果响应者是Web站点,则FQDN(正式域名,Fully Qualified Domain Name)记载
在响应者的公开密钥证明书中,如果使用固定的IPv6地址,则固定的IPv6地址记
载在响应者的公开密钥证明书中。发起者和响应者(在HD306中)保持CA的公开密
钥证明书。
发起者知道IKE代理服务器的IP地址(存储在HD306中)。此外,发起者和响应者
知道CA的公开密钥(存储在HD306中)。
下面,参照图1进行本实施例的协议的流程和动作的详细说明。
假定发起者206根据响应者209的FQDN、利用DNS知道响应者的IPv6地址,或
者用其他方法知道响应者的IPv6地址,说明自发起者要与响应者进行IPsec传送模
式的通信的状态起的动作。
在步骤S101中,发起者206对IKE代理服务器202发送在y_i=g^xi mod p的委托
计算中所必需的参数,并且发起者206把多个SA建议发送给响应者209。如果按
照图5中的记号,则y_i=g^xi modp的委托计算中所必需的参数是D,所以图1中
表示为D。在图1中,用一个箭头表示步骤S101的转发,但是实际上是不同的信
息包。须指出的是,发起者206与图5的步骤S501同样,准备随机数r_init和
y_init。
IKE代理服务器202是默认网关,所以把发给响应者209的SA的建议转发给响应
者,并接收发给IKE代理服务器自己的参数。IKE代理服务器202开始对发起者
206所使用的IPv6地址IP_I(从送给IKE代理服务器的信息包中取得)的监视以及对
发起者206和响应者209之间的通信内容的监视,以使其他节点不会假冒发起者。
即IKE代理服务器202一边监视正在执行因特网密钥交换(IKE)的装置(发起者206)
所使用的IP地址,一边按照所述装置(发起者)的委托,执行IKE中的迪菲-海尔曼
公开密钥配送方式的委托计算(图5)。
在步骤S102中,响应者209取得多个SA的建议,从多个SA的建议中选择使用的
SA。在步骤S103中响应者把选择的SA发送给发起者206。
IKE代理服务器202如果取得发给发起者206的SA,就从其内容中取出DH的参
数g和p,根据在步骤S101中取得的D和上述g、p进行y_i=g^xi mod p的委托
计算(步骤s121)。就图5而言,该委托计算是步骤S504的计算。在步骤S104中,
IKE代理服务器把SA和委托计算结果发送给发起者206。就图5而言,委托计算
结果是Z,所以在图1中表示为Z。这样,IKE代理服务器202按照发起者206的
委托,执行委托计算。
在步骤S105中,发起者206根据委托计算结果Z求出(y_1st、)y_i。就图5而言,
是在步骤S506中求出y_A的计算,首先求出y_1st,在根据y_1st、y_init求出y_i。
在步骤S106中,把y_r^xi mod p的委托计算所必需的参数发送给IKE代理服务器
202,把y_i和N_i发送给响应者209。如果用图5中的记号,则y_r^xi mod p的委
托计算所必需的参数是D’,所以在图1中表示为D’。响应者209为了求出y_ri而
使用y_i。在图1中,用一个箭头表示步骤S106的转发,但是实际上是不同的信息
包。
IKE代理服务器202自己接收发给IKE代理服务器的参数,在步骤S107中把发给
响应者206的y_i和Ni转发给响应者206。在步骤S108中响应者209把y_r(=
g^x_r mod p)和Nr发送给发起者206。该y_r和Nr与在图7的最初到第四中,从响
应者发送给发起者的KE、Nr对应。响应者209根据y_i和x_r,求出y_ri(=y_ir)。
IKE代理服务器202如果取得发给发起者206的y_r和Nr,就进行y_r^xi mod p的
委托计算(步骤S122)。就图5而言,该委托计算是步骤S509的计算。在步骤S109
中,IKE代理服务器202把委托计算结果和y_r和Nr发送给发起者。就图5而言,
委托计算结果是Z’,所以在图1中表示为Z’。这样,IKE代理服务器202按照来
自发起者206的委托,执行委托计算。
发起者206取得委托计算结果Z’和y_r和Nr,根据委托计算结果Z’求出与响应者
209的DH的结果。就图5而言,是在步骤S511中求出y_AB的计算。这里,该委
托计算是根据r_init+r_1st求出y_ir的委托计算。发起者206以参数D’代替
r_init+r_1st发送给IKE代理服务器202。这样,在与响应者(通信对方)209之间共
享秘密数据y_ir。即发起者206根据委托计算的结果,共享在加密中使用的秘密数
据y_ir。据此,计算HASH_I(散列值)(步骤S131)。
在步骤S110中,把HASH_I发送给IKE代理服务器202(数字签名的发行装置)。
发起者(主机)206具有:生成数据即HASH_I的CPU(生成单元)、把该生成的数据
发送给IKE代理服务器202(数字签名的发行装置)的网络接口(通信单元)301。须指
出的是,CPU303根据为了生成密钥而与响应者(通信对方)209交换的数据,生成
密钥(与响应者209之间共享的加密密钥)和数据HASH_I。
即与响应者(通信对方)209共享y_ir(第一数据)时,根据r_1st(第三数据)使用委托计
算求出y_1st(第二数据),响应者(通信对方)209根据y_1st(第二数据)和y_init(第五
数据)生成用于求出y_ri(=y_ir(第一数据))的y_i(第四数据),根据利用r_1st(第三数
据)和r_init(第七数据)而生成的r_init+r_1st(第六数据)使用委托计算生成与响应者
(通信对方)共享的y_ir(第一数据)。因为这样进行代理计算,所以执行代理计算的
IKE代理服务器不知道密钥。
IKE代理服务器202从与响应者(第一装置)209进行加密通信的发起者(第二装
置)206接收数据HASH_I。(步骤S123)。
在步骤S111中,IKE代理服务器202计算针对HASH_I(散列值)和IP_I(发起者使
用的IPv6地址)的数字签名SIG_S。虽然能采用各种形式,但是在本实施例中,使
用IKE代理服务器202的秘密密钥,生成针对连接HASH_I和IP_I的数据的数字
签名SIG_S。
在步骤S112中,IKE代理服务器202把CERT_S和SIG_S发送给发起者206。
CERT_S是(由CA发行的)IKE代理服务器202的(与在SIG_S的生成中使用的秘密
密钥对应的公开密钥的)公开密钥证明书。该公开密钥证明书CERT_S包含:具有
公开密钥和秘密密钥的装置(IKE代理服务器202)使用的IP地址、IKE代理服务器
202的公开密钥、定义IKE代理服务器202是进行签名生成的装置的信息。即IKE
代理服务器202是向与响应者(第一装置)209进行加密通信的发起者(第二装置)206
发行数字签名的数字签名发行装置,具有:与发起者206通信的网络接口(通信单
元)302;针对从发起者202接收的数据和发起者206使用的地址,利用秘密密钥生
成数字签名的CPU(生成单元)303。网络接口302把与该秘密密钥对应的公开密钥
的证明书以及生成的数字签名发送给发起者206。发起者206从IKE代理服务器
(数字签名的发行装置)202接收针对散列值HASH_I和发起者(通信装置)206的地址
而生成的数字签名。
在步骤S113中,发起者206使用与响应者209之间共享的加密密钥对IDii和
CERT_S和SIG_S加密,并将其发送给响应者209。这样,把由IKE代理服务器
202生成的数字签名发送给响应者(通信对方)209。在步骤S114中,IKE代理服务
器202把从发起者206取得的数据发送给响应者209。即,在图7中,发起者生成
数字签名SIG_I,把数字签名SIG_I(和发起者的公开密钥证明书CERT)发送给响应
者,但是在图1中,IKE代理服务器202生成数字签名SIG_S,发起者206从IKE
代理服务器202取得数字签名SIG_S和IKE代理服务器的公开密钥证明书
CERT_S,并将其加密后发送给响应者209。
这里,发起者(主机)206通过网络接口301接收由IKE代理服务器(数字签名的发行
装置)202针对先前生成的HASH_I和发起者(主机)206正在使用的地址而发行的数
字签名,把该发行的数字签名向响应者(通信对方)209发送。须指出的是,CPU303
使用所生成的密钥(与响应者209之间共享的加密密钥)对该发行的数字签名加密,
通过网络接口301发送给响应者(通信对方)209。
在步骤S115中,响应者209使用与发起者206之间共享的加密密钥对取得的数据
译码。然后,利用CA的公开密钥认证CERT_S(IKE代理服务器202的公开密钥证
明书)的正当性,确认CERT_S中包含的IKE代理服务器202的公开密钥的正当性、
IKE代理服务器202的IPv6全局地址、和该装置是IKE代理服务器。
接着,计算HASH_I,用IKE代理服务器202的公开密钥确认取得的SIG_S(IKE代
理服务器202针对连接HASH_I和IP_I的数据而生成的数字签名)是IKE代理服务
器202针对HASH_I和此前与发起者206通信时使用的目标地址IP_I’(S103中的
SA、S108中的y_r、Nr的目标地址)的签名。
此外,还确认IKE代理服务器202的IPv6全局地址的子网前缀(/64)和IP_I’的子网
前缀(/64)相同。通过使用在默认网关202代理的IKE中所使用的默认网关202的证
明书,确认进行IPsec通信的装置206的IP地址由其他装置即默认网关202保证,
从而与装置206通信的对方即主机209能确认装置206使用的IP地址的正当性。
如果确认成功,则响应者209计算HASH_R,并生成针对HASH_R的签名SIG_R。
在步骤S116中,响应者209使用与发起者206之间共享的加密密钥对IDir和
CERT_R和SIG_R加密,并发送给发起者206。在步骤S117中,IKE代理服务器
202把从响应者209取得的数据发送给发起者206,发起者206取得来自响应者
209的数据。CERT_R是响应者的公开密钥证明书。
在步骤S118中,发起者206使用与响应者209之间共享的加密密钥对取得的数据
译码。然后利用CA的公开密钥来确认CERT_R的正当性,确认CERT_R中包含
的响应者209的公开密钥的正当性,确认CERT_R中包含的FQDN或IPv6地址与
在步骤S101开始时使用的FQDN或IPv6地址相等。然后,计算HASH_R,用响
应者的公开密钥确认SIG_R是响应者209针对HASH_R的签名。
通过以上的动作,IKE的阶段1结束,在发起者206和响应者209之间确立·设定
ISAKMP SA。然后如上所述执行阶段2,设定IPsecSA,并进行IPsec通信。
须指出的是,IKE代理服务器202如果检测到其他节点对发起者的假冒,则中止该
检测以后的处理。成为中止对象的处理是向发起者206发送(SA和)委托计算结果
Z(S104)、向响应者206转发(y_i)和Ni(步骤S107)、(和y_r和Nr)向发起者206发
送委托计算结果Z’(S109)、向发起者206发送CERT_S和SIG_S(步骤S112)。连接
在与进行IPsec通信的装置206相同的链路上的其他装置、即默认网关202通过监
视装置206的IP地址,能使用链路层的数据检测到其他装置试图使用装置206所
使用的IP地址来假冒装置206的行为。
如上所述,在本实施例中,主机206是通信装置,具有:生成数据的CPU(生成单
元)303;把该生成的数据发送给默认网关(数字签名的发行装置)202的网络接口(通
信单元)301。网络接口301接收由默认网关202针对该生成的数据和主机206正在
使用的地址而发行的数字签名,并把该发行的数字签名发送给主机209。
具体而言,IKE代理服务器202进行迪菲-海尔曼公开密钥配送方式的委托计算,
并监视装置所使用的IP地址和装置的对应关系。IKE代理服务器202针对由正在
执行IKE的装置(发起者206)所生成的数据HASH和该装置206正在使用的IP地址,
生成数字签名,并向该装置206发行。该数字签名利用记载有进行该监视的意思的
公开密钥证明书来确认正当性。IKE代理服务器202一边监视正在执行IKE的装置
206所使用的IP地址,一边按照该装置206的委托,执行因特网密钥交换(IKE)中
的迪菲-海尔曼公开密钥配送方式的委托计算,针对装置206的IP地址和HASH,
生成发行数字签名。正在执行IKE的装置206把发行的签名发送给IKE通信对方
(响应者209),IKE通信对方209利用签名来确认该装置206使用的地址的正当性。
该装置206根据IKE通信对方209的签名进行IKE通信对方209的认证。
下面,说明本发明实施例3。
在实施例2中,默认网关202(路由器)充当IKE代理服务器。在本实施例中,参照
图6,进行对链路207上的默认网关202(路由器)以外的节点、例如主机204充当
IKE代理服务器时的实施例的协议流程和动作的详细说明。
前提和基本流程与图1的实施例2相同。须指出的是,以下的处理内容(步骤)作为
程序或模块实现,在把该程序存储在ROM304或HD306中的节点执行,或由具有
该模块的节点执行。例如当作为程序而实现时,计算机即CPU303读入该程序,一
边根据需要把RAM305用作于计算的空间,一边进行通过总线310向接口301分
配地址的动作。当实现为模块时,将执行与程序和CPU或RAM等协调执行的上
述动作相同的动作的实体作为例如LSI而实现,并组入节点中。从节点的CPU对
模块(LSI)发出指示,并以此为契机,使模块工作,并执行处理。
假定发起者206根据响应者209的FQDN、利用DNS知道响应者的IPv6地址,或
者用其他方法知道响应者的IPv6地址,说明自发起者要与响应者进行IPsec传送模
式的通信的状态起的动作。此外,发起者206知道IKE代理服务器的IP地址。
在步骤S601中,发起者206把多个SA建议发送给响应者209。在步骤S602中,
接收多个SA建议,从多个SA建议中选择使用的SA,把选择的SA发送给发起者。
在步骤S603中,发起者206把在y_i=g^xi mod p的委托计算中所必需的参数发送
给IKE代理服务器204。就图5而言,y_i=g^xi modp的委托计算所必需的参数是
p、D和g,所以在图6中那样表示。
IKE代理服务器204取得p、D和g,为了使其他节点不假冒发起者,开始监视发
起者206使用的Ipv6地址IP_I。按照来自IKE代理服务器204的委托,执行委托
计算(步骤S621)。IKE代理服务器204根据取得的p、D和g,进行y_i=
g^xi mod p的委托计算。就图5而言,该委托计算是步骤S504的计算。在步骤
S604中,IKE代理服务器204把SA和委托计算结果发送给发起者206。就图5而
言,委托计算结果是Z,所以在图6中表示为Z。IKE代理服务器204一边监视正
在执行因特网密钥交换(IKE)的发起者206所使用的IP地址,一边执行IKE中的迪
菲-海尔曼公开密钥配送方式的委托计算。
在步骤S605中,根据委托计算结果求出y_i。如果是图5,就是在步骤S506中求
出y_A的计算。在步骤S606中,把y_i和N_i发送给响应者209。在步骤S607中,
响应者209把y_r和Nr发送给发起者206。
在步骤S608中,发起者206把在y_r^xi mod p的委托计算中所必需的参数发送给
IKE代理服务器204。如果按照图5中的记号,则y_r^xi mod p的委托计算所必需
的参数是p、D’和y_B,所以在图6中表示为p、D’和y_r。这里,图5的y_B是
节点B计算的g^(x_B)modp,图6的y_r是响应者209计算的g^(x_r)mod p。
IKE代理服务器204如果取得p、D’和y_r,就进行y_r^xi modp的委托计算(步骤
S622)。按照IKE代理服务器204的委托执行委托计算。就图5而言,该委托计算
是步骤S509的计算。在步骤S609中,IKE代理服务器204把委托计算结果发送给
发起者206。就图5而言,委托计算结果是Z’,所以在图6中表示为Z’。
发起者206取得委托计算结果Z’,据此求出与响应者209的DH的结果。就图5而
言,是在步骤S511中,求出y_AB的计算。即,发起者(通信装置)206在与响应者
(通信对方)之间,共享秘密数据y_ir。据此计算HASH_I(散列值)(步骤S631)。即,
当与响应者(通信对方)209共享y_ir(第一数据)时,利用委托计算,根据r_1st(第三
数据)求出y_1st(第二数据),响应者(通信对方)209根据y_1st(第二数据)和y_init(第
五数据)生成用于求出y_ri(=y_ir(第一数据))的y_i(第四数据),根据利用r_1st(第三
数据)和r_init(第七数据)而生成的r_init+r_1st(第六数据),使用委托计算生成与响
应者(通信对方)共享的y_ir(第一数据)。因为这样进行代理计算,所以执行代理计
算的IKE代理服务器202不知道密钥。
在步骤S610中,把HASH_I发送给IKE代理服务器204(数字签名的发行装置)。
即,发起者206按图3构成,具有:生成数据HASH_I的CPU(生成单元)303、向
IKE代理服务器204(数字签名的发行装置)发送数据HASH_I的网络接口(通信单
元)301。CPU303根据为了生成密钥而与响应者(通信对方)209交换的数据,生成密
钥(与响应者209之间共享的加密密钥)和HASH_I(数据)。IKE代理服务器204从与
响应者(第一装置)209进行加密通信的发起者(第二装置)206接收HASH_I(数据)。
IKE代理服务器204是向与响应者(第一装置)209进行加密通信的发起者(第二装
置)206发行数字签名的数字签名发行装置。
IKE代理服务器204接收HASH_I(步骤S623)。在步骤S611中,IKE代理服务器
204针对HASH_I(散列值)和IP_I(发起者正在使用的IP地址)计算数字签名。IP_I
是IKE代理服务器204从步骤S603起监视的、发起者正在使用的IPv6地址。生成
针对连接HASH_I和IP_I的数据的数字签名SIG_S。IKE代理服务器204具有:与
发起者206通信的网络接口(通信单元)302;针对从发起者206接收的数据HASH_I
和发起者206正在使用的地址IP_I,利用秘密密钥生成数字签名SIS_S的CPU(生
成单元)303。
在步骤S612中,IKE代理服务器204把CERT_S(与数字签名中使用的秘密密钥对
应的公开密钥的证明书)和SIG_S发送给发起者206。CERT_S是IKE代理服务器
204的公开密钥证明书。IKE代理服务器204把与秘密密钥对应的公开密钥的证明
书CERT_S和生成的数字签名SIG_S发送给发起者206。该公开密钥的证明书
CERT_S还包含IKE代理服务器(具有公开密钥和秘密密钥的装置)204使用的IP地
址、公开密钥、定义该服务器204是进行签名生成的装置的信息。发起者206通过
网络接口301接收由IKE代理服务器(数字签名的发行装置)204针对所生成的数据
HASH_I和响应者(通信装置)206正在使用的地址IP_I而发行的数字签名SIG_S。
在步骤S613中,发起者206使用与响应者209之间共享的加密密钥,对IDii和公
开密钥证明书CERT_S和数字签名SIG_S加密,并发送给响应者209。发起者206
的CPU303使用密钥(与响应者209之间共享的加密密钥)对数字签名SIG_S(和公开
密钥证明书CERT_S)加密。然后把公开密钥证明书SIG_S(和CERT_S)从网络接口
301发送给响应者(通信对方)209。
在步骤S614中,响应者209使用与发起者206之间共享的加密密钥对接收的数据
译码。然后,利用CA的公开密钥来确认CERT_S的正当性,确认CERT_S中包含
的IKE代理服务器204的公开密钥的正当性、IKE代理服务器204的IPv6全局地
址、该装置是IKE代理服务器。
接着,计算HASH_I,用IKE代理服务器202的公开密钥确认取得的SIG_S是IKE
代理服务器针对HASH_I和此前与发起者206通信时使用的目标地址IP_I’(S602中
的SA、S607中的y_r、Nr的目标地址)的签名。此外,还确认IKE代理服务器204
的IPv6全局地址的子网前缀(/64)和IP_I的子网前缀(/64)相同。通过使用在IKE代
理服务器204代理的IKE中所使用的IKE代理服务器204的证明书,确认进行
IPsec通信的装置206的IP地址由其他装置即IKE代理服务器204保证,从而与装
置206通信的对方即响应者209能确认装置206使用的IP地址的正当性。如果确
认成功,则响应者209计算HASH_R,并生成对HASH_R的签名SIG_R。
在步骤S615中,响应者209使用与发起者206之间共享的加密密钥对IDir和
CERT_R和SIG_R加密,并发送给发起者206。
在步骤S616中,发起者206接收来自响应者209的数据,使用与响应者209之间
共享的加密密钥对接收的数据译码。然后,利用CA的公开密钥来确认CERT_R
的正当性,确认CERT_R中包含的FQDN或IPv6地址与在步骤S601开始时使用
的FQDN或IPv6地址相等。然后,计算HASH_R,用响应者的公开密钥确认
SIG_R是响应者209针对HASH_R的签名。
通过以上的动作,IKE的阶段1结束,在发起者和响应者之间确立·设定
ISAKMP SA。然后如上所述执行阶段2,设定IPsec SA,并进行IPsec通信。
须指出的是,IKE代理服务器204如果检测到其他节点对发起者的假冒,就中止该
检测以后的处理。成为中止对象的处理是向发起者206发送委托计算结果Z(S604)、
向发起者发送委托计算结果Z’(S609)、向发起者206发送CERT_S和SIG_S(步骤
S612)。连接在与进行IPsec通信的装置206相同的链路上的其他装置、即主机204
通过监视装置206的IP地址,能使用链路层的数据检测到其他装置试图使用装置
206所使用的IP地址来假冒装置206的行为。
在本实施例中,IKE代理服务器204进行迪菲-海尔曼公开密钥配送方式的委托计
算,监视装置所使用的IP地址和装置的对应关系。IKE代理服务器204针对由正
在执行IKE的装置(发起者206)所生成的数据HASH和该装置206正在使用的IP地
址生成数字签名,并向该装置206发行。该数字签名利用记载有进行该监视的意思
的公开密钥证明书来确认正当性。IKE代理服务器204一边监视正在执行IKE的装
置206所使用的IP地址,一边按照该装置206的委托,执行因特网密钥交换(IKE)
中的迪菲-海尔曼公开密钥配送方式的委托计算,并针对装置206的IP地址和
HASH,生成发行数字签名。正在执行IKE的装置206把发行的签名发送给IKE通
信对方(响应者209),IKE通信对方209利用该签名来确认该装置206使用的地址
的正当性。该装置206利用IKE通信对方209的签名进行IKE通信对方209的认
证。
以上根据实施例说明本发明,但是本发明并不局限于所述实施例。例如在实施例2、
3中,由相同的装置执行委托计算和数字签名的生成,但是也可以采用不同的装置
执行的结构。
例如由默认网关202执行委托计算,主机204执行数字签名的生成。在该例子中,
在图1中,主机206不是与默认网关202,而与主机204之间进行步骤S110和
S112的通信。
此外,例如由主机204执行委托计算,默认网关202执行数字签名的生成。在该例
子中,在图6中,主机206不是与主机204,而与默认网关202之间进行步骤S610
和S612的通信。
此外,也可以由链路207上的默认网关202(路由器)以外的两个节点分担执行委托
计算和数字签名的生成。在该例子中,在图6中,主机206在与主机204以外的主
机之间进行步骤S610和S612的通信。
须指出的是,响应者也可以向IKE代理服务器委托签名的生成(以及公开密钥证明
书、委托计算)。
2024年6月12日发(作者:邓丽思)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.X
(22)申请日 2005.01.20
(71)申请人 佳能株式会社
地址 日本东京
(72)发明人 大石和臣
(74)专利代理机构 中国国际贸易促进委员会专利商标事务所
代理人 曲瑞
(51)
H04L9/08
权利要求说明书 说明书 幅图
(10)申请公布号 CN 1645792 A
(43)申请公布日 2005.07.27
(54)发明名称
通信装置、数字签名发行方法、装
置及签名发送方法
(57)摘要
本发明提供一种通信装置、数字签
名发行方法、装置及签名发送方法,其中
发起者与响应者之间共享y_ir,根据y_ir
计算HASH_I,把HASH_I发送给IKE代
理服务器,从IKE代理服务器接收针对
HASH_I和发起者的地址生成的数字签名
SIG_S,把SIG_I发送给响应者。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
生成单元,生成数据;以及
通信单元,向数字签名的发行装置发送所述生成的数据;
其中所述通信单元接收由所述数字签名的发行装置针对所述生成的数据以及该通信
装置正在使用的地址而发行的数字签名后,把所述发行的数字签名发送给通信对方。
所述生成单元根据为了生成密钥而与所述通信对方交换的数据而生成密钥和所述数
据,所述通信单元使用所述密钥对所述发行的数字签名加密后,发送给所述通信对
方。
按照来自装置的委托,执行用于共享在加密中使用的秘密数据的委托计算;以及
针对由所述装置生成的数据和所述装置正在使用的地址而生成数字签名,并将其发
送给所述装置。
在所述执行步骤中,一边监视正在执行因特网密钥交换(IKE)的装置所使用的IP地
址,一边按照所述装置的委托、以IKE中的所述迪菲-海尔曼公开密钥配送方式执
行委托计算。
所述发行步骤针对由所述装置生成的散列值和所述装置正在使用的IP地址生成数
字签名,并将其发行给所述装置。
在所述发行步骤中,把公开密钥证明书提供给执行IKE的所述装置,所述公开密
钥证明书包含具有公开密钥和秘密密钥的装置所使用的IP地址、所述公开密钥、
和用于定义该装置是进行所述签名生成的装置的信息。
所述方法在所述装置的默认网关被执行。
从与第一装置进行加密通信的第二装置接收数据;
针对所述接收的数据和所述第二装置使用的地址,利用秘密密钥生成数字签名;以
及
把与所述秘密密钥对应的公开密钥的证明书和所述生成的数字签名发送给所述第二
装置。
字签名,包括:
通信单元,与所述第二装置进行通信;以及
生成单元,针对从所述第二装置接收的数据和所述第二装置使用的地址,利用秘密
密钥生成数字签名;
其中所述通信单元把与所述秘密密钥对应的公开密钥的证明书以及所述生成的数字
签名发送给所述第二装置。
与所述通信对方之间共享秘密数据;
根据所述秘密数据计算散列值;
把所述散列值发送给数字签名的发行装置;
从所述数字签名的发行装置接收针对所述散列值和所述通信装置的地址而生成的数
字签名;以及
向所述通信对方发送所述数字签名。
地址和所述公开密钥作为证明书的内容,其中还包含定义所述装置是在如权利要求
3所述的数字签名发行方法中的进行所述签名生成的装置的信息。
说 明 书
技术领域
本发明涉及通信装置、数字签名发行方法、装置和数字签名发送方法。
背景技术
IPsec是因特网上的2个装置共享其他谁都不知道的秘密数据,根据该秘密数据进
行加密和认证的协议,在通信时,有必要安全地共享秘密数据或彼此的IP地址等。
把秘密数据或彼此的IP地址等数据称作SA(安全性关联,Security Association)。
安全共享SA的协议称作IKE(因特网密钥交换,Internet KeyExchange),在
RFC2409“The Internet Key Exchange(IKE)”中规定。在IKE中,作为共享秘密数据
的方法,使用迪菲-海尔曼公开密钥配送方式(以下称作DH),并规定有4个认证方
法。一个认证方法使用预共享密钥,所以不适合于象因特网那样与不特定的多个对
方进行通信的情形。在剩下的3个认证方法中,使用公开密钥加密。公开密钥是随
机看到的数值,所以为了保证某公开密钥是与哪个装置对应的公开密钥,使用公开
密钥证明书。
即为了使用IKE在因特网上与不特定的多个对方执行IPsec,必须是发行公开密钥
证明书的装置。此外,必须安全生成和管理与公开密钥对应的秘密密钥以及通过执
行IKE而生成的密钥,以便只能由该装置使用。
作为解决计算能力和存储容量的制约的一个方法,考虑到设置代理IKE的服务器
的方法。例如在特开2003-179592号公报中描述密钥交换代理服务器代理DH和认
证的方法。可是,在该方法中,密钥交换代理服务器知道由IKE的执行而生成的
密钥和为了生成签名有效载荷所必要的解密密钥这两个密钥。即不能生成和管理密
钥,以使只能由该装置使用。
因此,作为现在已知的方法,包括为了不让其他人知道密钥,装置完全支持证明书
和IKE,但单独进行处理的方法;和允许其他装置知道密钥后,让其他装置代理证
明书和IKE处理的方法。如果存在装置不单独处理,并由其他装置不知道密钥地
代理处理就可以的方法,则该方法与已经存在的方法相比,能以低成本制作装置,
并且在安全上是最佳的,但是现在还不知道这样的方法。
可是,在用因特网通信的装置中,考虑到难以实现复杂的操作和严格的管理,所以
这些装置不一定局限于较高的计算能力和较大的存储容量。
发明内容
本发明的目的在于:不需要严格的管理,就能使用秘密密钥加密。
本发明的其他目的在于:在缺乏计算能力、不能进行严格管理的装置中,能共享秘
密数据、使用数字签名。
本发明的其他目的在于:防止假冒。
本发明的其他目的在于:提供一种通信装置,包括:生成数据的生成单元;以及向
数字签名的发行装置发送所述生成的数据的通信单元;其中所述通信单元接收由所
述数字签名的发行装置针对所述生成的数据以及该通信装置正在使用的地址而发行
的数字签名后,把所述发行的数字签名发送给通信对方。
此外,本发明的其他目的在于:提供一种数字签名发行方法,包括以下步骤:从与
第一装置进行加密通信的第二装置接收数据;针对所述接收的数据和所述第二装置
使用的地址,利用秘密密钥生成数字签名;以及把与所述秘密密钥对应的公开密钥
的证明书和所述生成的数字签名发送给所述第二装置。
此外,本发明的其他目的在于:提供一种通信装置向通信对方发送数字签名的发送
方法,其中:与所述通信对方之间共享秘密数据;根据所述秘密数据计算散列值;
把所述散列值发送给数字签名的发行装置;从所述数字签名的发行装置接收针对所
述散列值和所述通信装置的地址而生成的数字签名;以及向所述通信对方发送所述
数字签名。
此外,从以下实施例的说明中本发明的其他目的应该变得清楚。
附图说明
下面简要说明附图。
图1是在实施例1中默认网关代理IKE时的协议图。
图2是以太网(注册商标)LAN的模式图。
图3是节点的结构图。
图4是迪菲-海尔曼公开密钥配送方式的图。
图5是DH委托计算的协议图。
图6是实施例2中不是默认网关的装置代理IKE时的协议图。
图7是用数字签名确认对方时的IKE的阶段1的图。
图8是IKE的阶段2(快速模式)的图。
图9是IPsec的隧道模式的模式图。
具体实施方式
说明本发明实施例1。本实施例的连接环境(图2)、装置的结构(图3)与实施例2是
共同的。在实施例2的说明中,详细描述图2、图3。
本方式中,图2所示的主机(通信装置)206在与主机(通信对方)209通信时,与主机
209之间共享秘密数据,根据该秘密数据,计算散列值,把该散列值发送给数字签
名的发行装置即默认网关(路由器)202或主机204,从默认网关202或主机204(数
字签名的发行装置)接收针对该散列值和主机206的地址而生成的数字签名,把该
数字签名发送给主机209。
数字签名的发行装置、即默认网关(路由器)202或主机204从与主机(第一装置)209
进行加密通信的主机(第二装置)206接收数据,针对接收的数据和主机206使用的
地址,利用秘密密钥生成数字签名,把与该秘密密钥对应的公开密钥的证明书以及
生成的数字签名发送给主机206。
此外,数字签名的发行装置即默认网关(路由器)202或主机204按照来自主机206
的委托,执行用于共享在加密中使用的秘密数据的委托计算。
主机206如图3那样构成,具有:生成数据的CPU(生成单元)303;对数字签名的
发行装置发送该生成的数据的网络接口(通信单元)301。网络接口301接收由数字
签名的发行装置(默认网关202或主机204)针对所生成的数据和主机206正在使用
的地址而发行的数字签名,把发行的数字签名向主机(通信对方)209发送。
此外,对与主机(第一装置)209进行加密通信的主机(第二装置)206发行数字签名的
数字签名发行装置即默认网关202或主机204也象图3那样构成。默认网关202具
有与主机206通信的网络接口(通信单元)302,主机204具有与主机206通信的网
络接口(通信单元)301。默认网关202和主机204具有针对从主机206接收的数据
和主机206使用的地址、利用秘密密钥生成数字签名的CPU(生成单元)303,通过
通信单元,把与该秘密密钥对应的公开密钥的证明书以及该生成的数字签名向主机
206发送。
下面,说明实施例2。
在本实施方式中,说明主机经由以太网(注册商标)的LAN与因特网连接的情形。
首先说明现有技术,然后说明本实施例。须指出的是,以下说明了IPv6的情形,
但是也能应用于IPv4。在IPv4和IPv6中,只针对不同点进行附加的说明,而IPv4
和IPv6中共同的说明在IPv6的情形中予以说明。
在1.1中说明环境,在1.2中说明因特网密钥交换和迪菲-海尔曼公开密钥配送方式,
在1.3中说明委托计算,在1.4中说明公开密钥证明书、IP地址的正当性、IKE代
理服务器的可靠性,在1.5中说明本实施例的协议。
1.1环境
图2模式地表示本实施例的连接环境(主机经由以太网(注册商标)的LAN与因特网
连接的环境)。
图2表示连接在LAN上的主机204、205、206经由默认网关202访问因特网201
的环境。在本实施例中,各主机由链路207连接,链路207具体而言是以太网(注
册商标)。链路是指连接在其上的装置通过它能进行通信的设备或媒体,挨着IP层
的下侧。在链路中除了以太网(注册商标)外,还有无线LAN(IEEE802.11)、PPP链
路、X.25、帧中继、ATM网络。
把连接在链路上的IPv6对应装置(默认网关202、DHCP服务器203、主机204、
205、206、209)称作节点。图3表示节点(默认网关202、DHCP服务器203、主机
204、205、206、209)的内部结构的典型例。
在节点中有路由器和主机,路由器转发不是给自己的信息包,但是主机不转发。从
图3可知,节点300是具有网络接口301、302、CPU303、ROM304、RAM305、
HD(硬盘)306、电源307、键盘/定点设备的接口308、监视器的接口309、总线310
等的计算机。
路由器具有多个网络接口301、302,而主机常常具有一个网络接口301。主机204、
205、206通过网络接口301,通过链路207与连接在链路207上的其他节点或通过
网关202与因特网201上的节点通信。默认网关202通过网络接口301,经由因特
网201进行通信,或通过网络接口302,经由链路207进行通信。根据节点,有时
不具有HD的。
须指出的是,以下的处理内容(过程)作为程序或模块实现,在把该程序存储在
ROM304或HD306中的节点执行,或由具有该模块的节点执行。例如当作为程序
而实现时,计算机即CPU303读入该程序,一边根据需要把RAM305用作于计算
的空间,一边进行通过总线310向接口301分配地址的动作。当实现为模块时,将
执行与程序和CPU或RAM等协调执行的上述动作相同的动作的实体作为例如LSI
而实现,并组入节点中。从节点的CPU对模块(LSI)发出指示,并以此为契机,使
模块工作,并执行处理。
这里,说明基本的过程,诸如节点300把地址分配给接口。
连接在图2的链路207上的节点300在接通电源或重新引导时,通过无归属地址自
动配置,在该链路中决定唯一的接口ID(根据MAC地址以IEEEEUI-64格式生成)。
此外,如果根据路由器公告(RA)取得分配给该链路的(可集中)全局地址用子网前缀,
则自动设定为将由子网前缀和接口ID构成的(可集中)全局地址用作节点300的地
址。此外,还自动设定默认网关202(通常称作路由器)的地址。多数情况下,默认
网关202把RA发送给链路。细节记载在
RFC2462“IPv6 Stateless Address Autoconfiguration”中。
在该无归属地址自动配置的执行中,通过在接口ID中使用随机且在链路中为唯一
的值,能利用使因特网上的第三者难以把握与节点的对应关系的匿名地址。细节记
载在RFC3041“Privacy Extensions forStateless Address Autoconfiguration in IPv6”中。
当IPv4时,节点300使用的IPv4地址和默认网关202(路由器)的地址由用户人工
设定,或通过DHCP服务器203自动设定。人工设定的IPv4地址只要不变更,就
是固定的,但是当由DHCP服务器203自动设定时,并不一定局限于固定的地址。
在IPv4地址中存在专用地址和全局地址这2种,根据网络的运用方针而分开使用。
节点在使用专用地址时,(网关)通过进行网络地址变换、通称NAT,把专用地址变
换为全局地址,能与连接在因特网上的其他装置通信。
通过设定节点300使用的(全局)地址和默认网关202(路由器)的地址,节点300能与
连接在因特网201上的其他链路上的节点例如主机209通信。
1.2因特网密钥交换(IKE)和迪菲-海尔曼公开密钥配送方式(DH)
下面说明IKE和DH的概要。
IKE由阶段1和阶段2构成。图7表示使用数字签名作为通信对方的认证方法时的
阶段1。下标i和I表示发起者发送的信息,下标r和R表示响应者发送的信息。
HDR表示ISAKMP标题,记载在其右边的数据表示有效载荷。例如“HDR、SA”表
示ISAKMP信息包的有效载荷是SA。HDR*表示该信息包的有效载
荷被加密。
图7的SA是存储安全性关联的候补的SA协商有效载荷,KE是在迪菲-海尔曼中
交换的后述信息y_i,y_r(图4)。Ni和Nr是Nonce,Idii和Idir是ISAKMP发起者
和ISAKMP响应者的识别有效载荷,CERT是发起者或响应者的公开密钥证明书。
记号用括号包围意味着可省略。SIG_I是针发起者对HASH_I生成的数字签名。
SIG_R是响应者针对HASH_R生成的数字签名。
HASH_I和HASH_R是根据此前交换的数据按如下生成的散列值。
HASH_I=prf(SKEYID、g^xi|g^xr|CK
Y-I|CKY-R|SAi_b|IDii_b)
HASH_R=prf(SKEYID、g^xr|g^xi|CK
Y-R|CKY-I|SAi_b|IDir_b)
可是,prf(key,msg)是带密钥的伪随机函数,输入key和msg时,就输出模拟随机
数。SKEYID是把由Ni、Nr和DH共享的数据输入prf中后计算出的值。xi和xr
是发起者生成的秘密和响应性生成的秘密,g是DH中的生成源。CKY-I和
CKY_R是发起者和响应者的cookie(包含在ISAKMP标题中),SAi_b是SA有效载
荷的实体主体(减去ISAKMP一般标题),IDii_b和IDir_b是IDii有效载荷和IDir
有效载荷的主体。
图4表示DH。如果使图4的实体i与图7的发起者对应,使图4的实体r与图7的
响应者对应,则在从图7的最初到第三,从发起者发送给响应者的KE相当于图4
中的步骤S403i的y_i,而在从图7的最初到第四,从响应者发送给发起者的KE
相当于图4中的步骤S403r的y_r。
执行DH的结果是在实体i和实体r间共享y_ir=y_ri=g^(xi*xr)mod p,但是看到
参数p或g、所交换的数据y_i或y_r的第三者无法知道共享的数据y_ir=y_ri=
g^(xi*xr)mod p。
因此,通过从图7的最初到第三和第四数据的交换而执行DH的发起者和响应者在
该时刻能分别生成加密密钥。在图7的第五和第六交换的两个加密数据使用该加密
密钥被加密。加密密钥的详细生成方法记载在
RFC 2409“The Internet Key Exchange(IKE)”中。
在阶段1结束的时刻,发起者和响应者之间通过加密而受保护(称作确立了
ISAKMP SA),其他装置无法解读加密的通信。
利用该加密通信,执行图8所示的阶段2(快速模式),共享从发起者到响应者的通
信用的IPsec SA和从响应者到发起者的通信用的IPsec SA。图8的记号的意思与
图7同样。在阶段2中,可以执行DH,也可以不执行DH。
此外,当用隧道模式执行IPsec时,如图9所示,与执行ISAKMP的发起者904和
响应者907(称为隧道的两端)不同的两个节点(例如901和908)能变为IPsec的两端。
利用隧道905通信的两端的节点(901、902、903、908、909、910)称作客户机,把
这些客户机的ID有效载荷表示为IDci、IDcr(分别为发起者一侧的客户机、响应者
一侧的客户机)。其他细节参照RFC2409。
如果阶段2结束,则在发起者和响应者之间的双向通信路线中决定了IPsec SA,所
以以后能使用这些SA执行IPsec通信。
1.3委托计算
在本实施例中,连接在链路207上的主机206在执行IKE后与连接在因特网201上
的其他链路上的主机209进行IPsec通信。这时,主机206不是单独执行IKE处理
的全部,不使用自己的证明书。连接在主机206的链路207上的其他装置、例如默
认网关202或主机204等与主机206协调进行IKE内的DH计算。作为该协调计算,
能利用称作委托计算的方式。委托计算是计算能力小的装置(客户机)向计算能力大
的装置(服务器)委托计算的方式,即一边隐藏计算所必要的秘密信息,一边委托的
方法。
参照图5说明该委托计算。图5表示客户机和服务器执行DH的委托计算时执行的
协议。它是特愿2003-314000号(美国专利申请号10/930958、欧洲专利申请号
04255378.4、中国专利申请号2.9)中提出的方式,在本实施例的说明
中,说明其概要。
客户机(节点A)206具有秘密信息x_A,想利用委托计算协议求出在与进行IPsec通
信的通信对方(节点B、图5中未表示的图2中的主机209)之间最终共享的
y_AB(y_B)^(x_A)mod p、为了求出y_AB而在中途需要的y_A=g^(x_A)mod p。
x_A是客户机206的秘密,g和p是公开的。把p的卡米克尔函数称作λ(p)。客户
机206知道服务器(202或204)的IP地址。
在步骤S501中,客户机206准备随机数r_init和y_init=g^(r_init)mod p。r_init是
大于等于1且小于p的整数。过去在执行图5中说明的协议时,把上次计算的r和
g^r mod p用作r_init和y_init=g^(r_init)mod p。在初次执行协议时,客户机206是
IPv6装置,所以认为在制造时生成随机数r_init,并在记录了计算完毕的y_init=
g^(r_init)mod p的状态下出厂。或者考虑到在待机状态(不执行委托计算协议的状态)
下生成随机数r_init并计算y_init=g^(r_init)mod p,然后记录该结果。
在步骤S502中,客户机206随机生成满足
r_1st≡f_1*d_1+f_2*d_2+…+f_M*d_M(modλ(p))的整数向量D=[d_1,d_2,…,
d_M]和二进制向量F=[f_1,f_2,…,f_M]。其中,M和L是整数,d_i是大于等
于1且小于p,F的权重(F的要素f_1、f_2、…、f_M中值为1的元素的个数)小于
等于L。在步骤S503中,客户机206把p、D和g发送给服务器(202或204)。
在步骤S504中,服务器(202或204)计算满足z_i=g^(d_i)modp的[z_1,
z_2,…z_M]。在步骤S505中,服务器把Z发送给客户机。
在步骤S506中,客户机206根据在步骤S502中生成的F和在步骤S505中接收的
Z,按如下计算y_1st=y_M。即y_0=1,如果对于i=1,2,…,M,f_i=1,则
y_i=y_(i-1)*z_i mod p,如果f_i=0,则y_i=y_(i-1)。然后,客户机记录r_1st和
y_1st(=g^(r_1st)mod p),求出y_A为y_A=y_init*y_1st mod p。须指出的是,客户
机(节点A)206执行节点B(209)和IKE,所以把y_A发送给节点B,从节点B取得
y_B(图中未示)。
在步骤S507中,客户机206随机生成满足
r_init+r_1st≡f_1’*d_1’+f_2’*d_2’+…+f_M’*d_M’(modλ(p))的整数向量D=[d_1’,
d_2’,…,d_M’]和二进制向量F=[f_1’,f_2’,…,f_M’]。其中,M和L是整数,
d_i′大于等于1且小于p,F’的权重(F’的元素f_1’,f_2’,…,f_M’中值为1的元素
的个数)小于等于L。在步骤S508中,客户机206把p、D’和y_B发送给服务器
(202或204)。
在步骤S509中,服务器(202或204)计算满足z_i′=(y_B)^(d_i′)mod p的Z’=[z_1’,
z_2’,…z_M’]。在步骤S510中,服务器把Z’发送给客户机。
在步骤S511中,客户机206按如下计算y_2nd=y_M’。即y_0’=1,若对于i=1,
2,…,M,f_i′=1,则y_i′=y_(i-1)’*z_i’mod p,如果f_i′=0,则y_i′=y_(i-1)’。
求出的y_2nd为y_AB(y_AB:=y_2nd)。
通过执行2次以上的委托计算协议,执行一次DH。接着在执行DH时,将这次计
算存储的r_1st和y_1st=g^(r_1st)mod p用为随机数r_init和y_init=g^(r_init)mod p。
1.4公开密钥证明书、IP地址的正当性、IKE代理服务器的可靠度
在本实施例中,连接在与节点206相同的链路207上的其他节点(称作IKE代理服
务器)一边监视节点206使用的IP地址,一边执行IKE。通过该监视,能保证不会
发生既不是节点206也不是IKE代理服务器的节点使用节点206所使用的IP地址
而引起的假冒。具体而言,所述IKE代理服务器连接到与节点206相同的链路207
上,所以通过利用链路层的信息(MAC地址)而实现防止假冒。认为有多种监视方
法,例如,通过记录和监视MAC地址与IP地址的对应关系,能检测到其他节点
(具有其他MAC地址的节点)试图使用相同的IP地址。在本实施例中,与进行
IPsec通信的装置206连接在相同的链路上的其他装置202监视所述装置206的IP
地址。因此,能检测到任何半路出击的人,使用链路层的数据能检测到其他装置使
用所述装置206所使用的IP地址来假冒所述装置206的行为。
此外,在本实施例中,以在IKE中用于通信对方认证的数据(HASH_I或HASH_R)
和节点206使用的IP地址为对象,IKE代理服务器使用公开密钥证明书生成数字
签名,并为了认证而把它发送给通信对方的主机209。主机209通过在确认证明书
的内容后确定链路207并确认取得的证明书的正当性,能确认来自执行DH的对方
的数据、和链路207上的对方的IP地址的正当性。
IKE代理服务器使用证明书保证监视和IP地址的正当性,所以假定IKE代理服务
器是可靠的(不撒谎)。可是当由于任意原因而变为不可靠的状态时,希望估计节点
206受到损害的程度。
此外,IKE代理服务器在IKE中能制造任何半路出击的人。在该攻击中,当节点A
和节点B执行DH时,攻击者即节点C在节点A和节点B之间替换通信内容,对
于节点A假冒节点B,对于节点B假冒节点A。结果,节点A认为与节点B共享
的秘密数据实际在节点A和节点C间共享。同样节点B认为与节点A共享的秘密
数据实际在节点B和节点C间共享。
如果根据各节点间共享的秘密数据生成的加密密钥=译码密钥表示为K_AB(节点
A和节点B间的密钥)、K_AC(节点A和节点C间的密钥)、K_BC(节点B和节点C
间的密钥),则节点A认为与节点B共享的密钥实际上是K_AC,节点B认为与节
点A共享的密钥实际上是K_BC。因此,节点A加密发送给节点B的数据由节点
C夺取该加密的数据后用K_AC译码,节点C把译码的数据用K_BC加密,发送
给节点B。节点B用K_BC对取得的加密数据译码。节点B发送给节点A的加密
数据也用同样的方法处理。因此,节点B虽然以加密的状态取得节点A加密发送
的数据,但是节点A和节点B间的加密通信实际上由节点C窃听。
在IKE中,为了检测出该任何半路出击的人而防止窃听,进行通信对方的认证。
通信对方的认证分为使用预共享密钥的方法和使用公开密钥的方法。在因特网中,
为了与不特定多数用IKE执行IPsec,不能使用预共享密钥。当使用公开密钥时,
根据公开密钥证明书进行节点(的ID及其公开密钥的对应)的确认,但是在本实施
例中,主机206不具有证明书,所以主机206的通信对方不能进行主机206的确认。
可是,本发明应用于发起者时(与IKE代理服务器存在于同一链路上的主机206是
发起者时),响应者(主机209)如果具有自己的公开密钥证明书,发起者(主机206)
就能检测到任何半路出击的人。即在通过数字签名进行通信对方的认证的IKE中,
响应者使用与自己的公开密钥证明书对应的秘密密钥生成对方确认数据(数字签名),
但是充当任何半路出击的人的攻击者不具有与响应者的公开密钥证明书对应的秘密
密钥,所以无法假冒响应者生成对方确认数据(数字签名)。
因此,当对发起者实施本发明时,如果响应者至少具有自己的公开密钥证明书,则
发起者能检测出任何半路出击的人。在不是这样的情形时,例如当发起者和响应者
双方都利用本发明时,IKE代理服务器能进行IPsec通信的窃听,所以在安全性政
策中决定是否允许该窃听,并处理该窃听。
在后者的时候,注意链路207上的节点206和IKE代理服务器(为默认网关202)以
外的节点、例如节点205不是能进行任何半路出击的人,即不能窃听。当使用
IPsec的隧道模式时,隧道外部的链路上的数据是纯文本,所以同一链路的其他节
点能窃听,但是在本实施例中,具有同一链路的其他节点不能窃听的特征。
图9表示使用IPsec的隧道模式时的模式图。发起者904和响应者907执行IKE,
并在因特网906上形成IPsec的隧道905。在把发起者904作为网关的节点组(客户
机901、客户机902、…客户机903)、把响应者907作为网关的节点组(客户机908、
客户机909…客户机910)之间能通过IPsec隧道905进行受保护的通信,但是例如
客户机901和客户机908通信时,与客户机901相同的链路上的客户机902能窃听
客户机901和客户机908之间的通信。对此,本实施例用端对端把图2中节点206
和节点209之间的通信加密,所以链路207上不是IKE代理服务器的节点、例如
节点205不能窃听。因此,比使用IPsec的隧道模式时更安全。
1.5本实施例的协议
下面说明本实施例的协议。分为使用默认路由器202作为IKE代理服务器的情况、
和使用链路207上的默认路由器202以外的节点(例如主机204)作为IKE代理服务
器的情况。图1表示前者时的协议,图6表示后者时的协议。图1和图6中,发起
者代表主机206,响应者代表主机209。主机204(、205、206)通过网络接口301,
经链路207与默认网关202通信。主机209通过网络接口301,经因特网201与默
认网关202通信,而默认网关202通过网络接口301,经因特网201与主机209通
信,并通过网络接口302,经链路207与主机204、205、206通信。图1中,IKE
代理服务器位于从发起者到响应者的路径上,所以与图6相比,发起者进行收发的
次数减少,效率更好。
说明本实施例的前提。IKE代理服务器具有自己的公开密钥和秘密密钥(存储在
HD206中),安全地管理秘密密钥,从而只有IKE代理服务器能访问。从
CA(Certification Authority)发行IKE代理服务器用的公开密钥证明书CERT_S,在
IKE代理服务器(的HD306)中存储该公开密钥证明书CERT_S。在IKE代理服务器
的公开密钥证明书CERT_S中包含IKE代理服务器的IPv6全局地址、和表示该装
置是IKE代理服务器的描述。例如,作为公开密钥证明书的格式,使用X.509v3
时,考虑在subjectAltName中定义、记载表示是IKE代理服务器的信息。虽然可
以采用其他定义·记载方法,但是前提是执行IKE的对方装置(本实施例中的响应者)
同意该定义·记载方法。
响应者(在HD306中)保持从CA向响应者发行的公开密钥证明书CERT_R。例如,
如果响应者是Web站点,则FQDN(正式域名,Fully Qualified Domain Name)记载
在响应者的公开密钥证明书中,如果使用固定的IPv6地址,则固定的IPv6地址记
载在响应者的公开密钥证明书中。发起者和响应者(在HD306中)保持CA的公开密
钥证明书。
发起者知道IKE代理服务器的IP地址(存储在HD306中)。此外,发起者和响应者
知道CA的公开密钥(存储在HD306中)。
下面,参照图1进行本实施例的协议的流程和动作的详细说明。
假定发起者206根据响应者209的FQDN、利用DNS知道响应者的IPv6地址,或
者用其他方法知道响应者的IPv6地址,说明自发起者要与响应者进行IPsec传送模
式的通信的状态起的动作。
在步骤S101中,发起者206对IKE代理服务器202发送在y_i=g^xi mod p的委托
计算中所必需的参数,并且发起者206把多个SA建议发送给响应者209。如果按
照图5中的记号,则y_i=g^xi modp的委托计算中所必需的参数是D,所以图1中
表示为D。在图1中,用一个箭头表示步骤S101的转发,但是实际上是不同的信
息包。须指出的是,发起者206与图5的步骤S501同样,准备随机数r_init和
y_init。
IKE代理服务器202是默认网关,所以把发给响应者209的SA的建议转发给响应
者,并接收发给IKE代理服务器自己的参数。IKE代理服务器202开始对发起者
206所使用的IPv6地址IP_I(从送给IKE代理服务器的信息包中取得)的监视以及对
发起者206和响应者209之间的通信内容的监视,以使其他节点不会假冒发起者。
即IKE代理服务器202一边监视正在执行因特网密钥交换(IKE)的装置(发起者206)
所使用的IP地址,一边按照所述装置(发起者)的委托,执行IKE中的迪菲-海尔曼
公开密钥配送方式的委托计算(图5)。
在步骤S102中,响应者209取得多个SA的建议,从多个SA的建议中选择使用的
SA。在步骤S103中响应者把选择的SA发送给发起者206。
IKE代理服务器202如果取得发给发起者206的SA,就从其内容中取出DH的参
数g和p,根据在步骤S101中取得的D和上述g、p进行y_i=g^xi mod p的委托
计算(步骤s121)。就图5而言,该委托计算是步骤S504的计算。在步骤S104中,
IKE代理服务器把SA和委托计算结果发送给发起者206。就图5而言,委托计算
结果是Z,所以在图1中表示为Z。这样,IKE代理服务器202按照发起者206的
委托,执行委托计算。
在步骤S105中,发起者206根据委托计算结果Z求出(y_1st、)y_i。就图5而言,
是在步骤S506中求出y_A的计算,首先求出y_1st,在根据y_1st、y_init求出y_i。
在步骤S106中,把y_r^xi mod p的委托计算所必需的参数发送给IKE代理服务器
202,把y_i和N_i发送给响应者209。如果用图5中的记号,则y_r^xi mod p的委
托计算所必需的参数是D’,所以在图1中表示为D’。响应者209为了求出y_ri而
使用y_i。在图1中,用一个箭头表示步骤S106的转发,但是实际上是不同的信息
包。
IKE代理服务器202自己接收发给IKE代理服务器的参数,在步骤S107中把发给
响应者206的y_i和Ni转发给响应者206。在步骤S108中响应者209把y_r(=
g^x_r mod p)和Nr发送给发起者206。该y_r和Nr与在图7的最初到第四中,从响
应者发送给发起者的KE、Nr对应。响应者209根据y_i和x_r,求出y_ri(=y_ir)。
IKE代理服务器202如果取得发给发起者206的y_r和Nr,就进行y_r^xi mod p的
委托计算(步骤S122)。就图5而言,该委托计算是步骤S509的计算。在步骤S109
中,IKE代理服务器202把委托计算结果和y_r和Nr发送给发起者。就图5而言,
委托计算结果是Z’,所以在图1中表示为Z’。这样,IKE代理服务器202按照来
自发起者206的委托,执行委托计算。
发起者206取得委托计算结果Z’和y_r和Nr,根据委托计算结果Z’求出与响应者
209的DH的结果。就图5而言,是在步骤S511中求出y_AB的计算。这里,该委
托计算是根据r_init+r_1st求出y_ir的委托计算。发起者206以参数D’代替
r_init+r_1st发送给IKE代理服务器202。这样,在与响应者(通信对方)209之间共
享秘密数据y_ir。即发起者206根据委托计算的结果,共享在加密中使用的秘密数
据y_ir。据此,计算HASH_I(散列值)(步骤S131)。
在步骤S110中,把HASH_I发送给IKE代理服务器202(数字签名的发行装置)。
发起者(主机)206具有:生成数据即HASH_I的CPU(生成单元)、把该生成的数据
发送给IKE代理服务器202(数字签名的发行装置)的网络接口(通信单元)301。须指
出的是,CPU303根据为了生成密钥而与响应者(通信对方)209交换的数据,生成
密钥(与响应者209之间共享的加密密钥)和数据HASH_I。
即与响应者(通信对方)209共享y_ir(第一数据)时,根据r_1st(第三数据)使用委托计
算求出y_1st(第二数据),响应者(通信对方)209根据y_1st(第二数据)和y_init(第五
数据)生成用于求出y_ri(=y_ir(第一数据))的y_i(第四数据),根据利用r_1st(第三数
据)和r_init(第七数据)而生成的r_init+r_1st(第六数据)使用委托计算生成与响应者
(通信对方)共享的y_ir(第一数据)。因为这样进行代理计算,所以执行代理计算的
IKE代理服务器不知道密钥。
IKE代理服务器202从与响应者(第一装置)209进行加密通信的发起者(第二装
置)206接收数据HASH_I。(步骤S123)。
在步骤S111中,IKE代理服务器202计算针对HASH_I(散列值)和IP_I(发起者使
用的IPv6地址)的数字签名SIG_S。虽然能采用各种形式,但是在本实施例中,使
用IKE代理服务器202的秘密密钥,生成针对连接HASH_I和IP_I的数据的数字
签名SIG_S。
在步骤S112中,IKE代理服务器202把CERT_S和SIG_S发送给发起者206。
CERT_S是(由CA发行的)IKE代理服务器202的(与在SIG_S的生成中使用的秘密
密钥对应的公开密钥的)公开密钥证明书。该公开密钥证明书CERT_S包含:具有
公开密钥和秘密密钥的装置(IKE代理服务器202)使用的IP地址、IKE代理服务器
202的公开密钥、定义IKE代理服务器202是进行签名生成的装置的信息。即IKE
代理服务器202是向与响应者(第一装置)209进行加密通信的发起者(第二装置)206
发行数字签名的数字签名发行装置,具有:与发起者206通信的网络接口(通信单
元)302;针对从发起者202接收的数据和发起者206使用的地址,利用秘密密钥生
成数字签名的CPU(生成单元)303。网络接口302把与该秘密密钥对应的公开密钥
的证明书以及生成的数字签名发送给发起者206。发起者206从IKE代理服务器
(数字签名的发行装置)202接收针对散列值HASH_I和发起者(通信装置)206的地址
而生成的数字签名。
在步骤S113中,发起者206使用与响应者209之间共享的加密密钥对IDii和
CERT_S和SIG_S加密,并将其发送给响应者209。这样,把由IKE代理服务器
202生成的数字签名发送给响应者(通信对方)209。在步骤S114中,IKE代理服务
器202把从发起者206取得的数据发送给响应者209。即,在图7中,发起者生成
数字签名SIG_I,把数字签名SIG_I(和发起者的公开密钥证明书CERT)发送给响应
者,但是在图1中,IKE代理服务器202生成数字签名SIG_S,发起者206从IKE
代理服务器202取得数字签名SIG_S和IKE代理服务器的公开密钥证明书
CERT_S,并将其加密后发送给响应者209。
这里,发起者(主机)206通过网络接口301接收由IKE代理服务器(数字签名的发行
装置)202针对先前生成的HASH_I和发起者(主机)206正在使用的地址而发行的数
字签名,把该发行的数字签名向响应者(通信对方)209发送。须指出的是,CPU303
使用所生成的密钥(与响应者209之间共享的加密密钥)对该发行的数字签名加密,
通过网络接口301发送给响应者(通信对方)209。
在步骤S115中,响应者209使用与发起者206之间共享的加密密钥对取得的数据
译码。然后,利用CA的公开密钥认证CERT_S(IKE代理服务器202的公开密钥证
明书)的正当性,确认CERT_S中包含的IKE代理服务器202的公开密钥的正当性、
IKE代理服务器202的IPv6全局地址、和该装置是IKE代理服务器。
接着,计算HASH_I,用IKE代理服务器202的公开密钥确认取得的SIG_S(IKE代
理服务器202针对连接HASH_I和IP_I的数据而生成的数字签名)是IKE代理服务
器202针对HASH_I和此前与发起者206通信时使用的目标地址IP_I’(S103中的
SA、S108中的y_r、Nr的目标地址)的签名。
此外,还确认IKE代理服务器202的IPv6全局地址的子网前缀(/64)和IP_I’的子网
前缀(/64)相同。通过使用在默认网关202代理的IKE中所使用的默认网关202的证
明书,确认进行IPsec通信的装置206的IP地址由其他装置即默认网关202保证,
从而与装置206通信的对方即主机209能确认装置206使用的IP地址的正当性。
如果确认成功,则响应者209计算HASH_R,并生成针对HASH_R的签名SIG_R。
在步骤S116中,响应者209使用与发起者206之间共享的加密密钥对IDir和
CERT_R和SIG_R加密,并发送给发起者206。在步骤S117中,IKE代理服务器
202把从响应者209取得的数据发送给发起者206,发起者206取得来自响应者
209的数据。CERT_R是响应者的公开密钥证明书。
在步骤S118中,发起者206使用与响应者209之间共享的加密密钥对取得的数据
译码。然后利用CA的公开密钥来确认CERT_R的正当性,确认CERT_R中包含
的响应者209的公开密钥的正当性,确认CERT_R中包含的FQDN或IPv6地址与
在步骤S101开始时使用的FQDN或IPv6地址相等。然后,计算HASH_R,用响
应者的公开密钥确认SIG_R是响应者209针对HASH_R的签名。
通过以上的动作,IKE的阶段1结束,在发起者206和响应者209之间确立·设定
ISAKMP SA。然后如上所述执行阶段2,设定IPsecSA,并进行IPsec通信。
须指出的是,IKE代理服务器202如果检测到其他节点对发起者的假冒,则中止该
检测以后的处理。成为中止对象的处理是向发起者206发送(SA和)委托计算结果
Z(S104)、向响应者206转发(y_i)和Ni(步骤S107)、(和y_r和Nr)向发起者206发
送委托计算结果Z’(S109)、向发起者206发送CERT_S和SIG_S(步骤S112)。连接
在与进行IPsec通信的装置206相同的链路上的其他装置、即默认网关202通过监
视装置206的IP地址,能使用链路层的数据检测到其他装置试图使用装置206所
使用的IP地址来假冒装置206的行为。
如上所述,在本实施例中,主机206是通信装置,具有:生成数据的CPU(生成单
元)303;把该生成的数据发送给默认网关(数字签名的发行装置)202的网络接口(通
信单元)301。网络接口301接收由默认网关202针对该生成的数据和主机206正在
使用的地址而发行的数字签名,并把该发行的数字签名发送给主机209。
具体而言,IKE代理服务器202进行迪菲-海尔曼公开密钥配送方式的委托计算,
并监视装置所使用的IP地址和装置的对应关系。IKE代理服务器202针对由正在
执行IKE的装置(发起者206)所生成的数据HASH和该装置206正在使用的IP地址,
生成数字签名,并向该装置206发行。该数字签名利用记载有进行该监视的意思的
公开密钥证明书来确认正当性。IKE代理服务器202一边监视正在执行IKE的装置
206所使用的IP地址,一边按照该装置206的委托,执行因特网密钥交换(IKE)中
的迪菲-海尔曼公开密钥配送方式的委托计算,针对装置206的IP地址和HASH,
生成发行数字签名。正在执行IKE的装置206把发行的签名发送给IKE通信对方
(响应者209),IKE通信对方209利用签名来确认该装置206使用的地址的正当性。
该装置206根据IKE通信对方209的签名进行IKE通信对方209的认证。
下面,说明本发明实施例3。
在实施例2中,默认网关202(路由器)充当IKE代理服务器。在本实施例中,参照
图6,进行对链路207上的默认网关202(路由器)以外的节点、例如主机204充当
IKE代理服务器时的实施例的协议流程和动作的详细说明。
前提和基本流程与图1的实施例2相同。须指出的是,以下的处理内容(步骤)作为
程序或模块实现,在把该程序存储在ROM304或HD306中的节点执行,或由具有
该模块的节点执行。例如当作为程序而实现时,计算机即CPU303读入该程序,一
边根据需要把RAM305用作于计算的空间,一边进行通过总线310向接口301分
配地址的动作。当实现为模块时,将执行与程序和CPU或RAM等协调执行的上
述动作相同的动作的实体作为例如LSI而实现,并组入节点中。从节点的CPU对
模块(LSI)发出指示,并以此为契机,使模块工作,并执行处理。
假定发起者206根据响应者209的FQDN、利用DNS知道响应者的IPv6地址,或
者用其他方法知道响应者的IPv6地址,说明自发起者要与响应者进行IPsec传送模
式的通信的状态起的动作。此外,发起者206知道IKE代理服务器的IP地址。
在步骤S601中,发起者206把多个SA建议发送给响应者209。在步骤S602中,
接收多个SA建议,从多个SA建议中选择使用的SA,把选择的SA发送给发起者。
在步骤S603中,发起者206把在y_i=g^xi mod p的委托计算中所必需的参数发送
给IKE代理服务器204。就图5而言,y_i=g^xi modp的委托计算所必需的参数是
p、D和g,所以在图6中那样表示。
IKE代理服务器204取得p、D和g,为了使其他节点不假冒发起者,开始监视发
起者206使用的Ipv6地址IP_I。按照来自IKE代理服务器204的委托,执行委托
计算(步骤S621)。IKE代理服务器204根据取得的p、D和g,进行y_i=
g^xi mod p的委托计算。就图5而言,该委托计算是步骤S504的计算。在步骤
S604中,IKE代理服务器204把SA和委托计算结果发送给发起者206。就图5而
言,委托计算结果是Z,所以在图6中表示为Z。IKE代理服务器204一边监视正
在执行因特网密钥交换(IKE)的发起者206所使用的IP地址,一边执行IKE中的迪
菲-海尔曼公开密钥配送方式的委托计算。
在步骤S605中,根据委托计算结果求出y_i。如果是图5,就是在步骤S506中求
出y_A的计算。在步骤S606中,把y_i和N_i发送给响应者209。在步骤S607中,
响应者209把y_r和Nr发送给发起者206。
在步骤S608中,发起者206把在y_r^xi mod p的委托计算中所必需的参数发送给
IKE代理服务器204。如果按照图5中的记号,则y_r^xi mod p的委托计算所必需
的参数是p、D’和y_B,所以在图6中表示为p、D’和y_r。这里,图5的y_B是
节点B计算的g^(x_B)modp,图6的y_r是响应者209计算的g^(x_r)mod p。
IKE代理服务器204如果取得p、D’和y_r,就进行y_r^xi modp的委托计算(步骤
S622)。按照IKE代理服务器204的委托执行委托计算。就图5而言,该委托计算
是步骤S509的计算。在步骤S609中,IKE代理服务器204把委托计算结果发送给
发起者206。就图5而言,委托计算结果是Z’,所以在图6中表示为Z’。
发起者206取得委托计算结果Z’,据此求出与响应者209的DH的结果。就图5而
言,是在步骤S511中,求出y_AB的计算。即,发起者(通信装置)206在与响应者
(通信对方)之间,共享秘密数据y_ir。据此计算HASH_I(散列值)(步骤S631)。即,
当与响应者(通信对方)209共享y_ir(第一数据)时,利用委托计算,根据r_1st(第三
数据)求出y_1st(第二数据),响应者(通信对方)209根据y_1st(第二数据)和y_init(第
五数据)生成用于求出y_ri(=y_ir(第一数据))的y_i(第四数据),根据利用r_1st(第三
数据)和r_init(第七数据)而生成的r_init+r_1st(第六数据),使用委托计算生成与响
应者(通信对方)共享的y_ir(第一数据)。因为这样进行代理计算,所以执行代理计
算的IKE代理服务器202不知道密钥。
在步骤S610中,把HASH_I发送给IKE代理服务器204(数字签名的发行装置)。
即,发起者206按图3构成,具有:生成数据HASH_I的CPU(生成单元)303、向
IKE代理服务器204(数字签名的发行装置)发送数据HASH_I的网络接口(通信单
元)301。CPU303根据为了生成密钥而与响应者(通信对方)209交换的数据,生成密
钥(与响应者209之间共享的加密密钥)和HASH_I(数据)。IKE代理服务器204从与
响应者(第一装置)209进行加密通信的发起者(第二装置)206接收HASH_I(数据)。
IKE代理服务器204是向与响应者(第一装置)209进行加密通信的发起者(第二装
置)206发行数字签名的数字签名发行装置。
IKE代理服务器204接收HASH_I(步骤S623)。在步骤S611中,IKE代理服务器
204针对HASH_I(散列值)和IP_I(发起者正在使用的IP地址)计算数字签名。IP_I
是IKE代理服务器204从步骤S603起监视的、发起者正在使用的IPv6地址。生成
针对连接HASH_I和IP_I的数据的数字签名SIG_S。IKE代理服务器204具有:与
发起者206通信的网络接口(通信单元)302;针对从发起者206接收的数据HASH_I
和发起者206正在使用的地址IP_I,利用秘密密钥生成数字签名SIS_S的CPU(生
成单元)303。
在步骤S612中,IKE代理服务器204把CERT_S(与数字签名中使用的秘密密钥对
应的公开密钥的证明书)和SIG_S发送给发起者206。CERT_S是IKE代理服务器
204的公开密钥证明书。IKE代理服务器204把与秘密密钥对应的公开密钥的证明
书CERT_S和生成的数字签名SIG_S发送给发起者206。该公开密钥的证明书
CERT_S还包含IKE代理服务器(具有公开密钥和秘密密钥的装置)204使用的IP地
址、公开密钥、定义该服务器204是进行签名生成的装置的信息。发起者206通过
网络接口301接收由IKE代理服务器(数字签名的发行装置)204针对所生成的数据
HASH_I和响应者(通信装置)206正在使用的地址IP_I而发行的数字签名SIG_S。
在步骤S613中,发起者206使用与响应者209之间共享的加密密钥,对IDii和公
开密钥证明书CERT_S和数字签名SIG_S加密,并发送给响应者209。发起者206
的CPU303使用密钥(与响应者209之间共享的加密密钥)对数字签名SIG_S(和公开
密钥证明书CERT_S)加密。然后把公开密钥证明书SIG_S(和CERT_S)从网络接口
301发送给响应者(通信对方)209。
在步骤S614中,响应者209使用与发起者206之间共享的加密密钥对接收的数据
译码。然后,利用CA的公开密钥来确认CERT_S的正当性,确认CERT_S中包含
的IKE代理服务器204的公开密钥的正当性、IKE代理服务器204的IPv6全局地
址、该装置是IKE代理服务器。
接着,计算HASH_I,用IKE代理服务器202的公开密钥确认取得的SIG_S是IKE
代理服务器针对HASH_I和此前与发起者206通信时使用的目标地址IP_I’(S602中
的SA、S607中的y_r、Nr的目标地址)的签名。此外,还确认IKE代理服务器204
的IPv6全局地址的子网前缀(/64)和IP_I的子网前缀(/64)相同。通过使用在IKE代
理服务器204代理的IKE中所使用的IKE代理服务器204的证明书,确认进行
IPsec通信的装置206的IP地址由其他装置即IKE代理服务器204保证,从而与装
置206通信的对方即响应者209能确认装置206使用的IP地址的正当性。如果确
认成功,则响应者209计算HASH_R,并生成对HASH_R的签名SIG_R。
在步骤S615中,响应者209使用与发起者206之间共享的加密密钥对IDir和
CERT_R和SIG_R加密,并发送给发起者206。
在步骤S616中,发起者206接收来自响应者209的数据,使用与响应者209之间
共享的加密密钥对接收的数据译码。然后,利用CA的公开密钥来确认CERT_R
的正当性,确认CERT_R中包含的FQDN或IPv6地址与在步骤S601开始时使用
的FQDN或IPv6地址相等。然后,计算HASH_R,用响应者的公开密钥确认
SIG_R是响应者209针对HASH_R的签名。
通过以上的动作,IKE的阶段1结束,在发起者和响应者之间确立·设定
ISAKMP SA。然后如上所述执行阶段2,设定IPsec SA,并进行IPsec通信。
须指出的是,IKE代理服务器204如果检测到其他节点对发起者的假冒,就中止该
检测以后的处理。成为中止对象的处理是向发起者206发送委托计算结果Z(S604)、
向发起者发送委托计算结果Z’(S609)、向发起者206发送CERT_S和SIG_S(步骤
S612)。连接在与进行IPsec通信的装置206相同的链路上的其他装置、即主机204
通过监视装置206的IP地址,能使用链路层的数据检测到其他装置试图使用装置
206所使用的IP地址来假冒装置206的行为。
在本实施例中,IKE代理服务器204进行迪菲-海尔曼公开密钥配送方式的委托计
算,监视装置所使用的IP地址和装置的对应关系。IKE代理服务器204针对由正
在执行IKE的装置(发起者206)所生成的数据HASH和该装置206正在使用的IP地
址生成数字签名,并向该装置206发行。该数字签名利用记载有进行该监视的意思
的公开密钥证明书来确认正当性。IKE代理服务器204一边监视正在执行IKE的装
置206所使用的IP地址,一边按照该装置206的委托,执行因特网密钥交换(IKE)
中的迪菲-海尔曼公开密钥配送方式的委托计算,并针对装置206的IP地址和
HASH,生成发行数字签名。正在执行IKE的装置206把发行的签名发送给IKE通
信对方(响应者209),IKE通信对方209利用该签名来确认该装置206使用的地址
的正当性。该装置206利用IKE通信对方209的签名进行IKE通信对方209的认
证。
以上根据实施例说明本发明,但是本发明并不局限于所述实施例。例如在实施例2、
3中,由相同的装置执行委托计算和数字签名的生成,但是也可以采用不同的装置
执行的结构。
例如由默认网关202执行委托计算,主机204执行数字签名的生成。在该例子中,
在图1中,主机206不是与默认网关202,而与主机204之间进行步骤S110和
S112的通信。
此外,例如由主机204执行委托计算,默认网关202执行数字签名的生成。在该例
子中,在图6中,主机206不是与主机204,而与默认网关202之间进行步骤S610
和S612的通信。
此外,也可以由链路207上的默认网关202(路由器)以外的两个节点分担执行委托
计算和数字签名的生成。在该例子中,在图6中,主机206在与主机204以外的主
机之间进行步骤S610和S612的通信。
须指出的是,响应者也可以向IKE代理服务器委托签名的生成(以及公开密钥证明
书、委托计算)。