网络系统的制作方法

文档序号:7919586阅读:217来源:国知局
专利名称:网络系统的制作方法
技术领域
本发明涉及在客户机与第 一服务器经由双方都信赖的第二服务器 交换密钥信息并使用该密钥进行加密隧道通信的系统中即使在上述客 户机与上述第 一服务器之间的通信路径上存在网络地址转换装置的情 况下也可以进行通信的方法。
背景技术
在以因特网为代表的IP (Internet Protocol,网际协议)网络中, 作为避开通信路径上的窃听等安全性上的威胁保护通信内容,而在主 机之间进行安全的通信的方法, 一般是对通信进行加密。加密通信协 议有各种各样的协议,作为代表性的例子,可以举出OSI(Open Systems Interconnection,开放系统互连)参考模型中的网络层的加密 通信协议即IPsec (IP Security Protocol, IP安全协议)、传输层的加 密通信协议即TLS ( Transpor Layer Secruity,传输层安全)等。
一般在加密通信中,在开始通信之前,需要(l)通信对方的认证、 (2 )与通信对方共享通信数据的加密以及i/v证中使用的密钥信息这2 个步骤。例如,如果通过TLS进行加密通信,则(l)是通过通信主 机的一方接收另一方的公开密钥证明书,并利用自身所具有的路由证 明书对该公开密钥证明书是由可以信赖的认证站发布的公开密钥证明 书进行确认来实现的。(2)是通过通信主机的一方使用从另一方接收 到的公开密钥证明书中包含的公开密钥对自身生成的公共密钥进行加 密发送来实现的。只要可以在双方的通信主机中共享公共密钥,则可 以使用该密钥进行基于公共密钥的加密通信、基于HMAC (Keyed-Hashing for Message Authentication Code )的通信数据认证。
在通过IPsec进行加密通信时, 一般使用被称为IKE( Internet KeyExchange,因特网密钥交换)的密钥交换协议来进行(1 )以及(2)。 即、 <吏用#皮称为 ISAKMP ( Internet Security Association Key Management Protocol,因特网安全连接和密钥管理协议)的协议来进 行用于执行(2)的加密通信路径的建立和(1),使用该加密通信路径 来进行(2 )。
另外,在专利文献l中,示出在通过IPsec进行加密通信时,使 用进行双方通信主机的认证和密钥交换的中继的服务器(以后称为认 证、密钥交换服务器)来进行(1 )以及(2 )的方法。在专利文献1 的方法中,作为SIP ( Session Initiation Protocol,会话初始化协i义) 的UA (User Agent,用户^理)而动作的双方通信主积W吏用通过TLS 加密的SIP即SIPS ( SecureSIP ),向作为SIP服务器动作的认证、密 钥交换服务器连接,从而进行用于执行(2)的加密通信路径的建立和
(1)。使用该加密通信路径,经由认证、密钥交换服务器,进行(2) 的密钥信息的共享。
另一方面,在将用户所具有的内部网络(以后还将其称为LAN
(Local Area Network,局域网))连接到因特网等外部网络(以后还 将其称为WAN (Wide Area Network,广域网))时,多在两者之间进 行被称为NAPT (Network Address Port Translation,网络地址端口 转换)的IP地址以及TCP (Transmission Control Protocol,传输控 制协议)、UDP ( User Datagram Protocol,用户数据才艮协议)端口的 转换。通过进行NAPT,可以在LAN侧的多个主机中共享WAN侧的 一个IP地址。因此,作为用于抑制因特网中的IPv4 (IP Version 4) 地址的分配数,并将多个用户主机连接到因特网的有效手段,广泛利 用NAPT。
NAPT —般多被安装成设置于LAN与WAN之间的边界处的路由 器或防火墙等通信装置的一个功能。以下,将安装有NAPT功能的通 信装置总称为NAPT路由器。通常,对NAPT路由器的WAN侧接口, 通过手动或自动仅分配一个可以在因特网整体的通信中利用的全局 IP地址。 一般对NAPT的LAN侧,使用仅可以在LAN内使用所认识的私有IP地址。
另夕卜,NAPT根据情况还被称为NAT (Network Address Translation,网络地址转换)。在NAT中存在狭义的概念和广义的概 念,狭义的概念表示不进行TCP'UDP端口的转换,而仅进行IP地址 的转换。广义的概念被用作表示NAPT以及狭义的NAT这双方的称 呼,但与狭义的NAT相比多数情况下利用NAPT,以与NAPT大致 相等的含义使用广义的NAT。在本申请中,为了避免混乱,基本上使 用NAPT这样的称呼而并非NAT。
公知当在经由NAPT路由器的通信路径中希望通过IPsec进行加 密通信的情况下, 一般无法直接对通常的IPsec分组进行通信。在此 存在几个原因,对IPsec分组未附加未加密的TCP.UDP头成为其中原 因之一。即、在IPsec分组的形式中,有传输模式(对加密之前的IP 分组的有效载荷部分进行加密的形式)和隧道模式(对加密之前的IP 分组整体进行加密而新附加IP头的形式)这2种,但在任意一种的形 式的分组中TCP.UDP头(包含在IP分组的有效载荷部分)都被加密, 所以NAPT路由器中的端口转换无法发挥功能,其结果无法越过 NAPT路由器。
在专利文献2中,示出该问题的回避方法。在专利文献2示出的 通信方法中,调查在通信路径上是否存在NAPT路由器,在存在的情 况下,在生成传输模式形式的IPsec分组时,在紧接着开头的IP头后 新插入UDP头。即使在隧道模式形式的IPsec分组的情况下,也与专 利文献2示出的方法同样地,在紧接着对开头新附加的IP头之后追加 插入新的UDP头,从而回避该问题。
专利文献1:专利第3859667号^>报
专利文献2:专利第3793083号公才艮

发明内容
在通过IPsec进行加密通信的方法中,如上所述,为了通信对方 的认证以及密钥信息的共享,有使用IKE的方法和专利文献l示出的使用认证、密钥交换服务器的方法这2种。在IPsec加密通信分组的 形式中,有传输模式形式和隧道模式形式这2种,在各个之上可以追 加UDP头。以后,对使用认证、密钥交换服务器进行通信对方的认证 以及密钥的共享,在IPsec分组的形式中使用追加了 UDP头的隧道模 式形式的情况的例子进行说明。
在上述前提下,在NAPT路由器中针对IPsec分组的NAPT发挥 功能,但无法仅通过该功能进行经由NAPT路由器的IPsec通信。作 为NAPT路由器的设置位置,考虑作为请求开始通信的一侧的应用程 序客户机动作的通信主机(以后将其称为用户终端)的一侧的LAN 与WAN的边界(图1的网络结构中的NAPT路由器130-C)、以及 作为接受上述通信开始请求的一侧的应用程序服务器动作的通信主机 (以后将其称为服务提供服务器)的一侧的LAN与WAN的边界(图 1的网络结构中的NAPT路由器130-S)这2个位置,但由于各位置 的NAPT路由器产生以下问题,所以无法正确地进行经由NAPT路由 器的IPsec通信。
当在用户终端侧存在NAPT路由器的情况下,在经由该路由器的 IPsec通信中,产生以下2个问题。
(I)用户终端通过LAN内的私有IP地址(图1中的IP地址A) 识别自身的IP地址,所以还在IPsec隧道才莫式形式分組的内侧IP头 的用户终端侧IP地址域(在用户终端发送的分组的情况下,是指图 21的发送源IP地址2111)中设置有其私有IP地址。该内侧IP头在 被加密的状态下通过NAPT路由器,所以无法进行基于NAPT的IP 地址转换,在保持存储有用户终端的私有IP地址的状态下到达服务提 供服务器。但是,用户终端的私有IP地址是在与服务提供服务器侧的 LAN不同的管理下被分配的IP地址,所以服务提供服务器有可能无 法正确地识别向其私有IP地址的路径。不仅如此,IP地址还有可能 与存在于服务提供服务器侧LAN、其他用户终端侧LAN (与分组发 送源的用户终端不同的NAPT路由器之下i殳置的LAN)内的主才几重 复。(II) 作为解决上述(I)的问题的方法,还考虑在服务提供服务
器中,将IPsec隧道模式形式分组的内侧IP头中包含的用户终端侧IP 地址转换成对用户终端侧的NAPT路由器分配的全局IP地址来解释 这样的方法。通过该处置,服务提供服务器除了可以正确地识别向用 户终端侧IP地址的路径,而且IP地址也不会与存在于服务提供服务 器侧LAN、其他用户终端侧LAN内的主机重复。但是另一方面,当 存在于同一NAPT路由器之下的LAN内的2个用户终端在IPsec隧道 模式形式分组的内侧TCP*UDP头的用户终端侧端口号域(在用户终 端发送的分组的情况下,是指图21的发送源端口号2121)中使用相 同端口号而与同 一服务提供服务器进行通信的情况下,服务提供服务 器无法得知所接收到的分组是从哪个用户终端到达的。
另外,当在服务提供服务器侧存在NAPT路由器的情况下,在经 由该路由器的IPsec通信中,产生以下2个问题。
(III) 服务提供服务器通过LAN内的私有IP地址(图1中的IP 地址E)识别自身的IP地址,所以在向认证、密钥交换服务器登记自 身的IP地址、向用户终端通知自身的IP地址时,通知该私有IP地址, 而并非对服务提供服务器侧NAPT路由器侧分配的全局IP地址(图1 中的IP地址D)。另外,对于IPsec隧道模式形式分组的外侧UDP头 中使用的服务提供服务器侧端口号,如果在服务提供服务器侧NAPT 路由器的转换规则中WAN侧的值与LAN侧的值(图1中的UDP端 口号d-udp与e-udp)不同的情况下,也向用户终端通知LAN侧 的值。其结果,虽然用户终端使用这些私有IP地址和LAN侧UDP 端口号来构筑IPsec隧道模式形式分组的外侧头,但该分组不到达服
务提供服务器。另外,在从用户终端向服务提供服务器的通信开始请 求协议中使用SIP的情况下,为了构筑通信开始请求消息,用户终端 需要得知与服务提供服务器对应的URI ( Uniform Resource Identifier,统一资源标识)。但是,如果使用私有IP地址向认证、密 钥交换服务器登记服务提供服务器的IP地址,则即使使用专利文献l 示出的AOR (Address-of-Record,地址记录)取得消息那才羊的方法,根据用户终端的应用程序所发送的发送目的地IP地址(全局IP
地址)向认证、密钥交换服务器查询URI,也无法得到期望的URI。
(IV)假设解决(III)的问题,以作为服务提供服务器的IP地 址以及外侧UDP头的服务提供服务器侧端口号,向用户终端以及认 证、密钥交换服务器通知全局IP地址(图1中的IP地址D)以及 WAN侧端口号(图1中的d-udp)的方式进行变更。在该情况下, 在IPsec隧道模式形式分组的内侧IP头的服务提供服务器侧IP地址 域(在用户终端发送的分组的情况下,是图21的发送目的地IP地址 2112)中也存储有其全局IP地址。但是,该内侧IP头以被加密的状 态通过NAPT路由器,所以不进行基于NAPT的IP地址转换,保持 存储有服务提供服务器的全局IP地址的状态到达服务提供服务器。但 是,服务提供服务器自身由于未将该全局IP地址识别成对自身分配的 IP地址,所以服务提供服务器的IP处理有可能无法以其分组正确地 处理。
本发明的目的在于,通过解决上述(1)、 (11)、 (III)、以及(IV) 的课题,在用户终端与服务提供服务器之间的通信路径上存在NAPT 路由器的环境中,两个主机进行使用了认证、密钥交换服务器的相互 认证以及密钥信息共享,使用该密钥信息,通过追加了 UDP头的IPsec 隧道模式形式分组,可以在两个主机之间进行加密通信。
在本发明的通信方法中,为了解决上述(I)、 (11)、 (III)、以及 (IV)的课题,进行以下的(a)、 (b)、 (c)、 U)、以及(e)的处理。 (a)为了解决上述(III)的课题,在服务提供服务器内的加密通信 处理中,预先登记对服务提供服务器侧NAPT路由器分配的全局IP 地址、以及外侧UDP头的WAN侧端口号。该登记也可以由服务提供 服务器的管理者手动进行,也可以在与NAPT路由器之间自动地同步 设定。在向认证、密钥交换服务器或用户终端通知自身的IP地址和外 侧UDP头的端口号时,使用这些预先登记的IP地址以及端口号。
(b )为了解决从用户终端向服务提供服务器发送IPsec隧道模式 形式分组时的上述(I)以及(IV)的课题,在服务提供服务器内的加密通信处理内的封装去除处理中,在对分组的被加密的部分(图22 的加密分组数据2240 )进行解密之后,使用外侧IP头的发送源IP地 址域(图22的发送源IP地址2211 )和发送目的地IP地址域(图22 的发送目的地IP地址2212)的值,重写所解密的数据中包含的内侧 IP头的发送源IP地址域(图21的发送源IP地址2111)和发送目的 地IP地址域(图21的发送目的地IP地址2112 )。
(c )为了解决从用户终端向服务提供服务器发送IPsec隧道模式 形式分组时的上述(II)的课题,在服务提供服务器内的加密通信处 理内的封装去除处理中,在对分组的被加密的部分(图22的加密分组 数据2240 )进行了解密之后,将所解密的数据中包含的内侧TCP.UDP 头的发送源端口号域(图21的发送源端口号2121)的值,变更成关 于外部IP头的用户终端侧IP地址相同的全部的通信,针对每个SPI (Security Parameter Index,安全参数索引)值成为唯一的值(如果 尚未被分配唯一的值,则新分配)。
(d )为了解决从服务提供服务器向用户终端发送IPsec隧道模式 形式分组时的上述(1)、 (11)、以及(III)的课题,在服务提供服务 器内的加密通信处理内的封装去除处理中,在表中存储按照(c)决定 的端口号。另外,对于其他外侧头信息(发送源、发送目的地IP地址、 以及发送源、发送目的地UDP端口号)、以及内侧头信息(发送源、 发送目的地IP地址、协议号、以及TCP'UDP的发送源、发送目的地 端口号),根据依据从用户终端接收到的IPsec隧道模式形式分组、或 经由认证、密钥交换服务器在与用户终端之间发送接收的通信开始请 求消息得到的信息,也存储在表中。在服务提供服务器内的加密通信 处理内的封装化处理中,如果接收到从服务提供服务器内的应用程序 向用户终端发送的内侧分组,则将该发送源、发送目的地IP地址与所 存储的表的外侧头信息的相应栏进行比较,将该发送源端口号与所存 储的表的内侧头信息的相应栏进行比较,将该发送目的地端口号与以 所存储的表的(c)中决定的端口号的栏进行比较。然后,根据这些完 全一致的条目的内侧头信息改写分组的内侧头,根据相同条目的外侧头信息生成分组的外侧头。
(e)进行了上述(b )、 ( c )、以及(d )的处理的结果,在分组的 IP头以及TCP'UDP头被改写的情况下,将该分组的IP头校验和、以 及TCP.UDP分组校验和恰当地重新计算,向该分组的头内的相应域 重新设定计算结果的值。
这样,通过使用本发明的通信方法,在用户终端与服务提供服务 器之间的通信路径上存在NAPT路由器的环境中,两个主机进行使用 了认证、密钥交换服务器的相互认证以及密钥信息共享,使用该密钥 信息,可以在两个主机之间通过追加了 UDP头的IPsec隧道模式形式 分组进行加密通信。此时,NAPT路由器也可以仅存在于用户终端侧, 也可以仅存在于服务提供服务器侧,也可以存在于双方。
另外,本发明的通信方法需要应用于服务提供服务器侧的加密通 信处理中,但也可以应用于用户终端侧的加密通信处理中。因此,即
环境下,任意用户终端都可以毫无问题地进行经由NAPT路由器的加 密通信。进而,在加密通信处理以外的通信装置和软件中,无需任何 变更。
另外,在本发明的通信方法中,除了服务提供服务器从NAPT路 由器动态地取得自身的全局IP地址以及外侧UDP头的WAN侧端口 号的情况,无需判定在通信路径上是否存在NAPT路由器。因此,可 以将由于追加本发明的通信方法而引起的处理算法的复杂化抑制成最 小限。


图l是示出实施例l中的成为具备本发明的通信方法的加密通信 模块的应用对象的系统的网络结构的图。
图2是示出实施例1中的具备本发明的通信方法的加密通信模块 动作的用户终端或服务提供服务器的内部处理体系结构的图。
图3是示出实施例1中的包括具备本发明的通信方法的加密通信模块的用户终端或服务提供服务器的软件结构的图。
图4是示出实施例1中的定位信息的图。
图5是示出实施例1中的策略列表的图。
图6是示出实施例1中的SP表的图。
图7是示出实施例1中的接收SA表的图。
图8是示出实施例1中的发送SA表的图。
图9是示出实施例1中的定位数据库的图。
图10是示出实施例1中的NAPT转换表的图。
图ll是在实施例1中以来自UAC侧应用程序的数据分组发送为 契机在UAC与UAS之间建立加密通信路径而开始加密通信时的发送 接收时序图。
图12是在实施例1中以从UAC侧应用程序向加密通信模块的通
信开始请求为契机在UAC与UAS之间建立加密通信路径而开始加密
通信时的发送接收时序图。
图13是在实施例1中在建立了 UAC与UAS之间的加密通信路
径之后使用该加密通信路径从UAC侧应用程序向UAS侧应用程序发
送数据分组时的发送接收时序图。
图14是在实施例1中在建立了 UAC与UAS之间的加密通信路
径之后使用该加密通信路径从UAS侧应用程序向UAC侧应用程序发
送数据分组时的发送接收时序图。
图15是示出实施例1中的定位登记请求消息的数据结构的图。 图16是示出实施例1中的定位登记应答消息的数据结构的图。 图17是示出实施例1中的URI取得请求消息的数据结构的图。 图18是示出实施例1中的URI取得应答消息的数据结构的图。 图19是示出实施例1中的通信开始请求消息的数据结构的图。 图20是示出实施例1中的通信开始应答消息的数据结构的图。 图21是示出实施例1中的未被加密的IP分组的数据结构的图。 图22是示出实施例1中的带被加密了的UDP头的IPsec隧道模
式形式分组的数据结构的图。图23是示出在实施例1中具备本发明的通信方法的加密通信模块 从网络接口驱动器接收到接收分组时进行的封装处理应用判定的流程的图。
图24是示出在实施例1中具备本发明的通信方法的加密通信模块 从OS的IP处理接收到发送分组分组时进行的封装处理应用判定的流 程的图。
图25是示出在实施例1中具备本发明的通信方法的加密通信模块 从OS的UDP处理接收到接收分组时进行的封装去除处理的流程的 图。
图26是示出在实施例1中从具备本发明的通信方法的加密通信模 块的封装处理应用判定调出的发送分组的封装化处理的流程的图。
图27是示出实施例2中的成为具备本发明的通信方法的加密通信 模块的应用对象的系统的网络结构的图。
图28是示出实施例2中的具备本发明的通信方法的加密通信模块 动作的带加密通信功能的NAPT路由器的内部处理体系结构的图。
图29是示出实施例2中的包括具备本发明的通信方法的加密通信 模块的带加密通信功能的NAPT路由器的软件结构的图。
图30是示出在实施例2中具备本发明的通信方法的加密通信模块 从OS的IP终端、地址转换、中继处理接收到中继分组时进行的封装 处理应用判定的流程的图。
图31是示出在实施例2中具备本发明的通信方法的加密通信模块 从网络接口驱动器(LAN侧)接收到中继分组时进行的封装处理应用 判定的流程的图。
图32是示出在实施例2中从具备本发明的通信方法的加密通信模 块的封装处理应用判定中调出的中继分组的封装去除处理的流程的 图。
图33是示出在实施例2中从具备本发明的通信方法的加密通信模 块的封装处理应用判定中调出的中继分组的封装化处理的流程的图。 图34是示出实施例3中的成为具备本发明的通信方法的加密通信模块的应用对象的系统的网络结构的图。
图35是示出在实施例3中在建立了 UAC与UAS之间的加密通 信路径之后使用该加密通信路径从UAC侧应用程序向UAS侧应用程 序发送数据分组时的发送接收时序图。
图36是示出在实施例3中在建立了 UAC与UAS之间的加密通 信路径之后使用该加密通信路径从UAS侧应用程序向UAC侧应用程 序发送数据分组时的发送接收时序图。
图37是示出实施例4中的成为具备本发明的通信方法的加密通信 模块的应用对象的系统的网络结构的图。
(标号说明)
100实施例1中的加密通信模块
101定位信息
102策略列表
103 SP表
104接收SA表
105发送SA表
110应用程序
120用户终端(UAC)或服务提供服务器(UAS)
130 NAPT路由器
131 NAPT转换表
140 HUB (层2交换机、转发器) 150 LAN内的其他主才几 160外部网络(因特网等) 170认证、密钥交换服务器 171定位数据库 210 CPU
220主存储装置(存储器) 221软件 222数据230网络接口
240内部总线
301封装处理应用判定
302封装去除处理
303封装化处理
304 ^f言令处理
310 OS
311 IP处理
312 TCP处理
313 UDP处理
314 TLS处理
320网络接口驱动器
2700实施例2中的加密通信模块
2720用户终端或服务提供服务器
2730 NAPT路由器模块
2735带加密通信功能的NAPT路由器
2810 CPU
2820主存储装置(存储器) 2821软件 2822数据
2831网络接口 (LAN侧)
2832网络接口 (WAN侧)
2840内部总线
2901封装处理应用判定
2卯2封装去除处理
2903封装化处理
2904信令处理
2910 OS
2911 IP终端、地址转换、中继处理2912 TCP处理
2913 UDP处理 2914TLS处理
2921网络接口驱动器(LAN侧) 2922网络接口驱动器(WAN侧) 3730双重设置的NAPT路由器
具体实施例方式
以下,使用附图对本发明的实施例进行说明。 (实施例1)
图1是示出实施例1中的成为具备本发明的通信方法的加密通信 模块的应用对象的系统的网络结构的图。
用户终端120 - C以及服务提供服务器120 - S分别经由NAPT路 由器130-C、 130-S与因特网等外部网络160连接。用户终端120 - C与NAPT路由器130 - C之间的网络成为用户终端侧LAN, NAPT 路由器130-C与NAPT路由器130- S之间的网络成为WAN,NAPT 路由器130 - S与服务提供服务器120 — S之间的网络成为服务提供服 务器侧LAN。
一般,在用户终端侧LAN以及服务提供服务器侧LAN中使用私 有IP地址,在WAN中使用全局IP地址,在本实施例中也如上所述 假定。但是,在实施本发明时,也可以未必一定进行这样的地址分配。 在本实施例中,设对用户终端120-C分配了私有IP地址A,对用户 终端侧的NAPT路由器130 - C的WAN侧接口分配了全局IP地址C, 对服务提供服务器侧的NAPT路由器130 _ S的WAN侧接口分配了全 局IP地址D,对服务提供服务器120 - S分配了私有IP地址E。
在用户终端侧LAN的内部,也可以如图所示,存在1台以上的 用户终端120-C以外的其他主机150-C。另外,也可以设置用于将 这些主机连接到LAN的HUB 140-C、或同样的通信装置(交换机、 路由器等)。在本发明的实施中,设置于LAN内的用户终端120-C可以使用对自身分配的IP地址A,而经由NAPT路由器与认证、密 钥交换服务器170以及服务提供服务器120 - S进行通信是必要条件, 如果满足该必要条件,则LAN内的主机数和网络结构没有限制。该 情况在服务提供服务器侧LAN中也相同。
NAPT路由器130 - C以及130 - S在其内部分别具有NAPT转换 表131-C、 131-S,使用这些转换表,转换在LAN侧与WAN侧之 间中继的IP分组中包含的IP地址以及TCP.UDP端口号。
在外部网络160中,配置有认证、密钥交换服务器170。在本实 施例中,设为认证、密钥交换服务器170被实现SIPS服务器。在认 证、密钥交换服务器170的内部,存储有定位数据库171,该定位数 据库171表示与服务提供服务器的服务对应关联的URI与其IP地址、 端口号的对应关系。
在服务提供服务器120-S的内部,应用程序服务器110-S以及 加密通信模块100-S动作。同样地,在用户终端120-C的内部,应 用程序客户机110-C以及加密通信模块100-C动作。以后,将应用 程序服务器110-S和应用程序客户机110-C统称为应用程序。
应用程序110-C以及110-S是用于用户终端120-C与服务提 供服务器120 - S进行通信而实现服务这样的本来的目的的软件,将与 通信对方的主机(针对服务提供服务器120的用户终端120-C、针对 用户终端120-C的服务提供服务器120-S)之间的通信分组,在与 加密通信模块100 - C或100 - S之间,直接发送接收明文的IP分组。
加密通信模块100 - C以及100 - S使用认证、密钥交换服务器170 对通信对方的主机进行认证,经由认证、密钥交换服务器170与通信 对方的主机交换通信开始请求及其应答,在与通信对方的主机之间共 享密钥信息。在本实施例中,加密通信模块100-S作为SIPS客户机 动作,使用用TLS加密后的SIP协议来进行这些的处理。在本实施例 中,上述的通信开始请求取SIP消息的形式,将用户终端120-C的 加密通信模块100-C作为发送源,经由认证、密钥交换服务器170 发送到服务提供服务器120-S的加密通信模块100-S。因此,还可以将用户终端120 —C视为SIP的UAC (User Agent Client,用户代 理客户机),将服务提供服务器120 - S视为SIP的UAS ( User Agent Server,用户代理服务器)。
另外,加密通信模块100-C以及IOO-S使用通过上述处理得到 的密钥信息,对从通信对方的主机接收到的IPsec隧道模式形式的加 密通信分组进行解密,作为明文的IP分组向应用程序110-C或110 -S中继。另外,对从应用程序服务器110-C或IIO-S接收到的明 文的IP分组进行加密,作为IPsec隧道模式形式的加密通信分组发送 到通信对方的主机。另外,为了经由NAPT路由器130-C以及130 -S在与用户终端120 - C之间进行加密通信,服务提供服务器侧的加 密通信模块100-S需要具备本发明的通信方法。另一方面,用户终端 侧的加密通信模块100-C也可以具备本发明的通信方法,也可以不 具备。
在服务提供服务器120 - S侧的加密通信模块100 - S的内部,存 储有定位信息101-S、策略列表102-S、 SP (Security Policy,安全 策略)表103 - S、接收SA ( Security Association,安全联盟)表104 -S、发送SA表105-S。同样地,在用户终端侧的加密通信模块100 -C的内部,存储有策略列表102-C、 SP表103-C、接收SA表104 -C、发送SA表105-C。
定位信息101-S是保持该信息的服务提供服务器120-S向认 证、密钥交换服务器170的定位数据库171登记的信息。
策略列表102 - S以及102 - C是用于加密通信模块100 - S或100 -C在从网络接口或应用程序接收到IP分组时,判断对该分组进行封 装化处理、或进行封装去除处理、或都不进行而直接使其通过、或者 丢弃的表。
SP表103 - S以及103 - C是表示IPsec隧道模式形式分組中包含 的SPI的值、和与其对应的IPsec隧道模式形式分組的外侧IP头、外 侧UDP头、内侧IP头、内侧TCP.UDP头、明文的IP分组的IP头、 TCP.UDP头所相关的信息的对应关系的表。接收SA表104-S以及104 - C是对所接收到的IPsec隧道模式形式分组中包含的SPI的值和 与其对应的密钥信息进行存储的表。
发送SA表105 - S以及105 - C是存储设定在所发送的IPsec隧 道模式形式分组的SPI的值和与其对应的密钥信息的表。
图2是示出实施例1中的具备本发明的通信方法的加密通信模块 动作的用户终端或服务提供服务器的内部处理体系结构的图。
用户终端或服务提供服务器120的内部硬件由CPU 210、主存储 装置220、网络接口 230、以及将这些结合的内部总线240构成。当然, 也可以包含除此以外的硬件。
在主存储装置220中,存储有软件221和从軟件访问的数据222。 CPU 210读取并执行软件221。网络接口 230与用户终端或服务提供 服务器120所设置的网络(用户终端侧或服务提供服务器侧的LAN) 连接。
在软件221中,包含有应用程序110、加密通信模块100、 OS 310、 网络接口驱动器320。当然,还可以包含除此以外的软件。在OS 310 中,包含有IP.TCP.UDP的发送接收处理,除此以外一般还包含有过 程管理、存储器管理、输入输出驱动器管理等处理。网络接口驱动器 320是对网络接口 230进行控制而进行通信分组的输入输出,并且进 行通信分组的层2处理的一种输入输出驱动器。另外,在本实施例中, 将网络接口驱动器320与OS 310设为独立的软件,但也可以使OS 310 包含网络接口驱动器320的一部分或全部功能。
在数据222中,包含作为加密通信模块100使用的数据的、定位 信息101、策略列表102、 SP表103、接收SA表104、发送SA表105。 但是,也可以在用户终端中,不包含定位信息101。当然,也可以包 含这些以外的数据。
图3是示出实施例1中的包括具备本发明的通信方法的加密通信 模块的用户终端或服务提供服务器的软件结构的图。
在OS 310中,包含有IP处理311、 TCP处理312、 UDP处理313、 TLS处理314。另外,在本实施例中,设为这些处理包含于OS310,但只要可以实现同样的功能,即使置于OS310的外部(库等),也可 以实施本发明。
在IP处理311中,进行将自身主机设为发送源的IP分组的发送 处理、将自身主机设为发送目的地的IP分组的接收处理。在IP分组 发送处理中,向从上位的处理(TCP处理、UDP处理、或直接使用 IP的应用程序)接收到的IP有效载荷附加恰当的IP头,向与其发送 目的地IP地址对应的恰当的IP通信接口"皮分配IP地址的网络接口 ) 的网络接口驱动器送出ip分组。在IP分组接收处理中,判别从IP
通信接口的网络接口驱动器接收到的IP分组是否为以自身主机为目 的地的IP分组,如果以自身主才几为目的地,则向与该分组的IP头中 包含的协议号对应的上位的处理,交付该分组的IP有效载荷。
另外,在IP处理311中的IP分组接收处理中,还判定所接收到 的IP分组的IP头中包含的IP头校验和是否为正确的值(在该值并非 正确的情况下,IP分组被丟弃)。在IP分组发送处理中,计算出正确 的IP头校验和的值,并被设定在所发送的IP分组的IP头中。
在TCP处理312中,进行TCP协议的发送接收终端处理。即、 进行在与从上位的处理(使用TCP的应用程序)指定的通信对方之间 进行TCP连接的建立和切断的处理、将从上位处理提供的发送数据流 分割成段而构筑TCP数据分组后经由IP处理311送出的处理、将经 由IP处理311接收到的TCP数据分组按照时序号重新排列而构筑接 收数据流后交给与TCP头中包含的发送目的地端口号对应的上位的 处理的处理、对接收确认分组未从通信对方到达的TCP数据分组进行 重发的处理等。
另外,在TCP处理312中的TCP分组接收处理中,还判定所接 收到的TCP分组的TCP头中包含的TCP分组校验和是否为正确的值 (在该值并非正确的情况下,TCP分组被丢弃)。在TCP分组发送处 理中,计算出正确的TCP分组校验和的值,并被设定在所发送的TCP 分组的TCP头中。
在UDP处理313中,进行UDP协议的发送接收处理。即,进行对从上位的处理(使用UDP的应用程序)提供的发送UDP有效载荷 附加恰当的UDP头后经由IP处理311送出的处理、将经由IP处理 311接收到的UDP分组交给与该UDP头中包含的发送目的地端口号 对应的上位的处理的处理。
另外,在UDP处理313中的UDP分组接收处理中,如果所接收 到的UDP分组的UDP头中包含的UDP分组校验和的值不是O,则还 判定该值是否为正确的值(在该值并非正确的情况下,UDP分组被丢 弃)。在UDP分组发送处理中,0或正确的UDP分组校验和的值中的 某一个被设定在所发送的UDP分组的UDP头中。
在TLS处理314中,进行与通过TLS执4亍的加密通信相关的处 理。即、进行在与从上位的处理(使用TLS的应用程序)指定的通信 对方之间进行TLS加密通信路径的建立和切断的处理、对从上位的处 理提供的发送明文数据流进行加密而经由TCP处理312送出的处理、 对经由TCP处理312接收到的加密数据流进行解密而构筑接收明文数 据流后交给恰当的上位的处理的处理等。
在加密通信模块100中,包含封装处理应用判定301、封装去除 处理302、封装化处理303、信令处理304。在封装处理应用判定301 中,判断对进入到IP处理311的与网络接口 230对应的IP通信接口 和与网络接口 230对应的网络接口驱动器320之间被发送接收的IP 分组,应进行封装去除处理302或封装化处理303、或两个处理都不 进行而应直接交给IP处理311和网络接口驱动器320、或不交给任何 处理而应丢弃。然后,执行与该判断结果对应的处理。
在封装去除处理302中,使用UDP处理313,等待接收将IPsec 隧道模式形式分组的外侧UDP头中使用的自身主机侧端口号的LAN 侧的值(在图1的情况下,如果是服务提供服务器则是指端口号e-udp,如果是用户终端则是指端口号a-udp)作为发送目的地端口号 的UDP分组。然后,如果接收到相应的UDP分组,则从UDP处理 313接收其UDP有效栽荷,进行该分组的认证值的确认和解密,向IP 处理311提交所取出的内侧的明文IP分组。在封装化处理303中,从封装处理应用判定301接收通过封装处 理应用判定301判断为应加密的明文IP分组,对该分组进行加密并附 加恰当的头等,作为将IPsec隧道模式形式分组的外侧UDP头中使用 的自身主机侧端口号的LAN侧的值(在图1的情况下,如果是服务 提供服务器则是指端口号e-udp,如果是用户终端则是指端口号a-udp) 设为发送源端口的 UDP分组, 经由UDP处理313发送。另夕卜, 在尚未进行该加密处理中所需的加密通信路径建立的情况下,向信令 处理304请求开始加密通信,在作为其结果建立了加密通信路径之后, 进4亍分组的加密以及送出。
在信令处理304中,进行用于在与通信对方的主才几之间进行IPsec 加密通信路径的建立和释放的通信(以后将该通信称为信令)。即、进 行针对认证、密钥交换服务器170的定位信息的登记、表示通信对方 的URI的查询、向经由了认证、密钥交换服务器170的通信对方的主 机进行的通信开始请求、应答这样的与加密通信路径的建立和其预处 理相关的通信。在本实施例中,使用通过TLS处理314加密后的SIP 消息进行这些的通信。
应用程序110通过OS 310准备的标准方法,经由IP处理311、 TCP处理312、 UDP处理313,与通信对方的主机进行TCP或UDP 的通信(在图1的情况下,此时的自身主机侧端口号在服务提供服务 器中是e,在用户终端中是a)。另外,在应用程序IIO预知通信对方 的URI的情况下,也可以使用该URI向加密通信模块100内的信令 处理304请求开始加密通信。
图4是示出实施例1中的定位信息的图。
在定位信息101中,包含服务URI410、协议号420、 UAS侧的 IP地址430、 UAS侧的端口号440的项目。
在本实施例中,可以由服务提供服务器的管理者手动设定这些项 目。但是,对于UAS侧的IP地址430,也可以从服务提供服务器侧 NAPT路由器130 - S使用UPnP ( Universal Plug and PIay,通用即插 即用)等方法自动地取得。对于服务URI 410、协议号420、以及UAS侧的端口号440的项目,也可以由在服务提供服务器中动作的应用程 序服务器自动地设定。
服务URI 410是与服务提供服务器所提供的应用程序服务对应关 联的SIPS URI。
在协议号420中,存储有在与服务提供服务器所提供的应用程序 服务通信时使用的协议号。另外,此处所称的协议是IP层的紧邻上位 中使用的协议。协议号是指,与这些协议对应关联而由IANA( Internet Assigned Numbers Authority,因特网分配号码管理局)那样的組织所 分配的号,存储在IP头的协议号域中。在通常的应用程序中,TCP 或UDP被用作协议。
在UAS侧的IP地址430中,存储有服务提供服务器的IP地址。 在本实施例中,服务提供服务器120 - S与用户终端120 - C分别夹着 外部网络160,而存在于,皮分配不同的管理下的私有IP地址的LAN 中,所以无法使用私有IP地址相互通信。因此,需要向UAS侧的IP 地址430,登记服务提供服务器侧NAPT路由器130 - S的全局IP地 址(图1中的IP地址D )。
在UAS侧的端口号440中,存储有服务提供服务器所提供的应用 程序服务等待来自用户终端的通信的TCP或UDP的端口号。
另外,在与协议号以及服务提供服务器侧的应用程序端口号的值 无关,而相对服务提供服务器的IP地址,URI唯一地决定的情况下, 也可以省略协议号420以及UAS侧的端口号440的项目。
图5是示出实施例1中的策略列表的图。
在策略列表102中,包含协;义号510、对方侧IP地址521、对方 侧端口号522、自身侧(全局)端口号532、自身侧(私有)IP地址 541、自身侧(私有)端口号542、策略550的项目。
在本实施例中,这些项目可以由该主机(用户终端或服务提供服 务器)的管理者手动设定。但是,如后所迷,对于协议号510、自身 侧(全局)端口号532、自身侧(私有)IP地址541、自身侧(私有) 端口号542的项目的一部分,还考虑与NAPT路由器自动地同步设定的方法。
在协议号510中,存储有成为相应条目的策略的应用对象的IP 分组的协议号。
在对方侧IP地址521中,存储有成为相应条目的策略的应用对象 的IP分组的对方侧IP地址(如果是发送IP分组则是指发送目的地 IP地址,如果是接收IP分组则是指发送源IP地址)。
在对方侧端口号522中,存储有成为相应条目的策略的应用对象 的IP分组的对方侧TCP.UDP端口号(如果是发送IP分組则是指发 送目的地端口号,如果是接收IP分组则是指发送源端口号)。
在自身侧(全局)端口号532中,存储有成为相应条目的策略的 应用对象的IP分组流过自身侧的LAN的外部时使用的自身侧 TCP.UDP端口号(如果是发送IP分组则是指发送源端口号,如果是 接收IP分組则是指发送目的地端口号)。
在自身侧(私有)IP地址541中,存储有成为相应条目的策略的 应用对象的IP分组流过自身侧的LAN的内部(包括自身主机内)时 使用的自身侧IP地址(如果是发送IP分组则是指发送源IP地址,如 果是接收IP分组则是指发送目的地IP地址)。
在自身侧(私有)端口号542中,存储有成为相应条目的策略的 应用对象的IP分组流过自身侧的LAN的内部(包括自身主^^内)时 使用的自身侧TCP.UDP端口号(如果是发送IP分组则是指发送源端 口号,如果是接收IP分组则是指发送目的地端口号)。
在策略550中,存储有由相应条目所应用的策略。在本实施例中, 策略的类别有"封装内侧"、"封装外侧"、"非应用"、"丟弃"这4种。
为了在本实施例中使本发明发挥功能,对于策略列表102中的、 作为服务提供服务器发挥功能且策略为"封装外侧,,的条目,需要对自 身(全局)端口号532登记恰当的端口号。 一般,需要向服务提供服 务器侧NAPT路由器的NAPT转换表131 -S,静态地登记相应条目 的协议号510、自身侧(全局)端口号532、自身侧(私有)IP地址 541、自身侧(私有)端口号542作为NAPT条目(否则,服务提供服务器无法接收从用户终端向服务提供服务器发送的分组)。
这样,服务提供服务器的策略列表102 - S的一部分条目与服务提 供服务器侧NAPT路由器的NAPT转换表131 - S的静态NAPT条目 的设定需要相互同步。对于该同步,也可以由两个装置的管理者手动 进行,也可以通过由服务提供服务器的加密通信模块100-S使用 UPnP等手段从服务提供服务器侧NAPT路由器130-S得到静态 NAPT条目而进行,也可以通过由服务提供服务器的加密通信模块100 -S对服务提供服务器侧NAPT路由器130 - S追加恰当的静态NAPT 条目而进行。
另外,对于策略列表102中的、未作为服务提供服务器发挥功能 的条目、以及策略为"封装内侧"的条目,自身(全局)端口号532也 可以是空栏。另外,在用户终端的策略列表102-C中,自身(全局) 端口号532也可以全是空栏。
图6是示出实施例1中的SP表的图。
在SP表103中,包含外侧头的参数610、内侧头的参数620、假 想对方侧端口号630、接收SPI640、发送SPI650的项目。在外侧头 的参数610中,包含对方侧IP地址611、对方侧端口号612、自身侧 IP地址613、自身侧端口号614的项目。在内侧头的参数620中,包 含协议号621、对方侧IP地址622、对方侧端口号623、自身侧IP地 址624、自身侧端口号625的项目。
SP表103的条目是根据定位信息101、策略列表102的内容、经 由认证、密钥交换服务器170得到的信息、所发送接收的数据分组的 头中包含的信息等而自动地制成的。SP表103的各条目对应于在用户 终端120-C与服务提供服务器120-S之间设置的一个一个的双向加 密通信路径。
在外侧头的参数610的各项目中,存储有IPsec隧道模式形式分 组的外侧IP头以及外侧UDP头中使用的对方侧以及自身侧的IP地址 和端口号。这些IP地址以及端口号是在自身主机内处理IPsec隧道模 式形式分组时使用的。即、自身侧的IP地址以及端口号是在自身侧LAN内4吏用的私有的IP地址以及端口号,对方侧的IP地址以及端口 号是在对方侧LAN外使用的全局的IP地址以及端口号。
在内侧头的参数620的各项目中,存储有IPsec隧道模式形式分
地址以及端口号、以及协议号。这些IP地址以及端口号是在加密后的 IPsec隧道模式形式分组的内侧头中使用的。即、在用户终端120-C 中,自身侧的IP地址以及端口号是在自身侧LAN内使用的私有的IP 地址以及端口号,协议号、对方侧的IP地址以及端口号是由用户终端 侧的应用程序IIO-C识别的、服务提供服务器侧的应用程序110-s 的IP地址以及端口号。在服务提供服务器120-S中,在自身侧和对 方侧切换用户终端120-C中的IP地址以及端口号的值。
假想对方侧端口号630是在外侧头的对方侧IP地址611的项目的 值相同的全部条目中被分配成唯一的值的假想的对方侧的端口号。
接收SPI 640是在接收分组中使用的SPI的值。在接收到IPsec 隧道模式形式分组时,包含在该分组中的SPI使用与该接收SPI 640 的项目的值一致的条目,改写分组头的IP地址和端口号。
发送SPI 650是在发送分组中使用的SPI的值。对于该值,也可 以使用与接收SPI 640不同的值,也可以使用相同值。在发送IPsec 隧道模式形式分组时,该发送SPI 650的项目的值被设定在分组的SPI 域中。
图7是示出实施例1中的接收SA表的图。
在接收SA表104中,包含接收SPI710、解密密钥720、认证值 确认密钥730的项目。
针对在SP表中使用的接收SPI的各个值,自动地生成接收SA表 104的条目。
接收SPI 710是在接收分组中使用的SPI的值。在接收到IPsec 隧道模式形式分组时,包含在该分组中的SPI使用与该接收SPI 710 的项目的值一致的条目,进行分组的解密和认证值的确认。
解密密钥720是与接收SPI对应的解密密钥。认证值确认密钥730是与接收SPI对应的认证值确认密钥。 图8是示出实施例1中的发送SA表的图。
在发送SA表105中,包含发送SPI810、加密密钥820、认证值 计算密钥830的项目。
针对在SP表中使用的发送SPI的各个值,自动地生成发送SA表 105的条目。
发送SPI 810是在发送分组中使用的SPI的值。在发送IPsec隧 道模式形式分组时,设定在该分组的SPI域的SPI使用与该发送SPI 810的项目的值一致的条目,进行分组的加密和认证值的计算。 加密密钥820是与发送SPI对应的加密密钥。 认证值计算密钥830是与发送SPI对应的认证值计算密钥。 另外,在本实施例中,为了可以在接收SPI和发送SPI中使用各 自的值,分别准备接收SA表104和发送SA表105,但在接收SPI与 发送SPI中使用同一值的情况下,可以将两个表集中而设为一个SA 表。
进而,在本实施例中,将在分组的接收时使用的解密密钥和认证 值确认密钥、在发送时使用的加密密钥和认证值计算密钥分别准备成 独立的项目,但在接收SPI与发送SPI中使用同一值、且在加密中使 用公共密钥加密、且在分组的发送时和接收时使用相同密钥的情况下, 同一SPI的解密密钥和加密密钥成为相同值。同样地,在接收SPI与 发送SPI中使用同一值、且利用在认证值的计算以及确认中使用 HMAC那样的公共密钥的认证算法、且在分组的发送时和接收时使用 相同密钥的情况下,同一 SPI的认证值确认密钥和认证值计算密钥成 为相同值。进而,当利用在加密和认证这双方中使用公共密钥的算法 的情况下,也可以使两个密钥成为相同。
这样,对于SPI的分配、以及加密和认证中使用的密钥的分配, 根据所使用的加密、认证算法、是否在发送与接收中分开使用SPI和 密钥,考虑各种分配方法。可以与SPI和密钥的分配方法、所使用的 加密、认证算法的选择无关地应用本发明。图9是示出实施例1中的定位数据库的图。
在定位数据库171中,与定位信息101同样地,包含服务URI910、 协议号920、 UAS侧的IP地址930、 UAS侧的端口号940的项目。根 据定位信息IOI,从服务提供服务器120-S对认证、密钥交换服务器 170通知这些项目,根据该通知,设定各条目。
图10是示出实施例1中的NAPT转换表的图。
在NAPT转换表131中,包含协议号1010 、 LAN侧的IP地址1020 、 LAN侧的端口号1030、 WAN侧的端口号1040、静态/动态1050的项 目。
NAPT转换表131表示NAPT路由器中的分组中继时的IP地址 以及端口号的转换规则。即、在NAPT路由器从WAN侧网络接收到 将对WAN侧网络接口分配的IP地址设为发送目的地的IP分组时, 从NAPT转换表131搜索出该分组的IP头中包含的协议号、以及 TCP.UDP头中包含的发送目的地端口号与协议号1010以及WAN侧 的端口号1040的值一致的条目。然后,如果发现所一致的条目,则使 用该条目的LAN侧的IP地址1020以及LAN侧的端口号1030的值 改写分组的IP头的发送目的地IP地址、以及TCP.UDP头的发送目 的地端口号的值,向LAN侧网络接口中继分组。如果未发现所一致 的条目,则丟弃该分组。
相反,在NAPT路由器从LAN侧网络接收到将存在于WAN侧 的IP地址设为发送目的地的IP分组时,从NAPT转换表131搜索出 该分组的IP头中包含的协+义号、发送源IP地址、以及TCP'UDP头 中包含的发送源端口号与协+义号1010、 LAN侧的IP地址1020、以及 LAN侧的端口号1030的值一致的条目。然后,如果发现所一致的条 目,则使用该条目的WAN侧的端口号1040的值改写分组的TCP,UDP 头的发送源端口号的值,使用对WAN侧网络接口分配的IP地址来改 写分组的IP头的发送源IP地址的值,向WAN侧网络接口中继分组。 如果未发现所一致的条目,则新分配在其他条目中未使用的恰当的 WAN侧端口号,使用该端口号在NAPT转换表131中生成新的动态条目,根据该条目进行同样的分组中继。
在NAPT转换表131的条目中,存在动态的条目和静态的条目。 如上所述,如果当从LAN侧向WAN侧进行分组中继时在NAPT转 换表131中未发现相应的条目,则新生成动态的条目。然后,如果视 为该通信结束(通过检测TCP连接的结束时序、或在一定时间内未通 过相应分组等进行判断),则从NAPT转换表131删除该条目。另一 方面,静态条目是通过由NAPT路由器的管理者手动设定、或使用了 UPnP等的来自外部的自动设定等手段来登记的条目。 一般,只要不 重新进行相应条目的删除设定,则不从NAPT转换表131删除静态条 目。在本实施例的NAPT路由器130中,使用包含在NAPT转换表 131中的静态/动态1050的项目,来区分各条目是静态条目还是动态条 目,但当然可以不依赖于该实现方法,而实施本发明。
图ll是在实施例1中以来自UAC侧应用程序的数据分组发送为 契机,在UAC与UAS之间建立加密通信路径而开始加密通信时的发 送接收时序图。
另外,在如本实施例所述那样在加密通信模块100与认证、密钥 交换服务器170之间的通信消息中使用SIP的情况下,除了图11和图 12的时序图所示的消息以外,还发送接收用于回送是处理途中的情况 的消息、用于确认接收到应答的情况的消息等。但是,这些消息并不 对本发明的实施造成本质的影响,所以从图11和图12的时序图中省 略。
首先,服务提供服务器(UAS )侧的加密通信模块100 - S根据自 身具有的定位信息101,对认证、密钥交换服务器170发送定位登记 请求消息(步骤1111 )。该消息经由服务提供服务器侧NAPT路由器 130-S而到达认证、密钥交换服务器170。认证、密钥交换服务器170 对自身的定位数据库171登记包含在消息中的定位信息。然后,经由 服务提供服务器侧NAPT路由器130 - S,向服务提供服务器侧的加密 通信模块100 - S回送表示登记完成的定位登记应答消息(步骤1112 )。
接下来,用户终端(UAC)侧的应用程序110-C对服务提供服务器侧的应用程序110-S,发送最初的数据分组(步骤1121)。设为 用户终端侧的应用程序110-C预知此时成为分组的发送目的地的服 务提供服务器的IP地址,或者用户终端侧的应用程序iio-c预知服 务提供服务器的FQDN (Full Qualified Domain Name,完整网域名 称),据此使用DNS (Domain Name System,域名系统)等而得到服 务提供服务器的IP地址。另外,设为用户终端侧的应用程序110-C 预知分组的协议号以及发送目的地端口号。
另外,此处所称数据分组是指,与在用户终端侧的应用程序110 -C和服务提供服务器侧的应用程序110-S之间进行的通信相关的 所有分组,与应用程序直接使用的数据是否包含在分组中无关。例如, 在用户终端侧的应用程序110 - C与服务提供服务器侧的应用程序110 -S之间的通信中使用TCP的情况下,在该TCP连接建立的初始阶 段进行的TCPSYN分组的发送成为最初的数据分组的发送。
在检测到从应用程序进行了发送最初的数据分组的、用户终端侧 的加密通信模块100 - C根据该数据分组的发送目的地IP地址、协议 号、以及发送目的地端口号,对认证、密钥交换服务器170发送URI 取得请求消息(步骤1131 )。该消息经由用户终端侧NAPT路由器130 -C而到达认证、密钥交换服务器170。认证、密钥交换服务器170 检索自身的定位数据库171而调出所对应的URI,而经由用户终端侧 NAPT路由器130 - C向用户终端侧的加密通信模块100 - C回送包括 该URI的URI取得应答消息(步骤1132 )。
接下来,用户终端侧的加密通信模块100-C对认证、密钥交换 服务器170发送包括所取得的URI和密钥信息等的通信开始请求消息 (步骤1141)。该消息经由用户终端侧NAPT路由器130-C而到达 认证、密钥交换服务器170。认证、密钥交换服务器170根据包含在 消息中的URI决定消息的传送目的地,经由服务提供服务器侧NAPT 路由器130 - S向服务提供服务器侧的加密通信模块100 - S传送该消 息。接收到该消息的服务提供服务器侧的加密通信模块100 - S经由服 务提供服务器侧NAPT路由器130-S向认证、密钥交换服务器170回送包括所对应的密钥信息等的通信开始应答消息。接收到该消息的
认证、密钥交换服务器170经由用户终端侧NAPT路由器130-C, 向用户终端侧的加密通信模块100-C回送该消息(步骤1142)。
通过以上的处理,可以在用户终端侧的加密通信模块100-C与 服务提供服务器侧的加密通信模块100 - S之间共享通过IPsec进行加 密通信时所需的密钥信息等参数,所以用户终端侧的加密通信模块 100 - C对在步骤1121中从用户终端侧应用程序110 - C接收到的最初 的数据分组进行加密,经由用户终端侧NAPT路由器130-C以及服 务提供服务器侧NAPT路由器130 - S,回送到服务提供服务器侧的加 密通信模块100 - S。服务提供服务器侧的加密通信模块100 - S对其 进行解密而还原成明文的IP分组,提交给服务提供服务器侧的应用程 序110-S (步骤1151)。
通过以上的处理,以后可以在用户终端侧的应用程序110-C与 服务提供服务器侧的应用程序110-S之间通过IPsec进行加密通信 (步骤1160)。
图12是在实施例1中以从UAC侧应用程序向加密通信^f莫块进行 的通信开始请求为契才几,在UAC与UAS之间建立加密通信路径并开 始加密通信时的发送接收时序图。
首先,服务提供服务器侧的加密通信模块100 - S通过与图11的 步骤llll同样的步骤,向认证、密钥交换服务器170发送定位登记请 求消息(步骤1211)。接收到该消息的认证、密钥交换服务器170进 行与图11的情况同样的处理,通过与图11的步骤1112同样的步骤, 向服务提供服务器侧的加密通信模块100-S回送定位登记应答消息 (步骤1212)。
接下来,用户终端侧的应用程序110-C使用自身具有的表示服 务提供服务器所提供的服务的URI,对用户终端侧的加密通信模块 IOO-C请求开始加密通信(步骤1221)。接收到该请求的用户终端侧 的加密通信模块100 - C对认证、密钥交换服务器170发送包括URI 和密钥信息等的通信开始请求消息(步骤1222 )。该消息通过与图11的步骤1141同样的次序,最终到达服务提供服务器侧的加密通信模块 100-S。接收到该消息的服务提供服务器侧的加密通信模块100-S 向认证、密钥交换服务器170回送包括对应的密钥信息等的通信开始 应答消息(步骤1223 )。该消息通过与图11的步骤1142同样的次序, 送到用户终端侧的加密通信模块100 - C 。接收到该消息的用户终端侧 的加密通信模块100-C接收针对通信开始请求的应答,而向用户终 端侧的应用程序110-C通知加密通信路径的建立完成(步骤1224)。 接下来,用户终端侧的应用程序110-C使用被建立的IPsec加密 通信路径,朝向服务提供服务器侧的应用程序110 - S发送最初的数据 分组(步骤1231 )。该数据分组发送通过与图11的步骤1121以及步 骤1151同样的次序进行,而数据分组最终到达服务提供服务器侧的应 用程序110-S。
通过以上的处理,以后可以在用户终端侧的应用程序110-C与 服务提供服务器侧的应用程序110-S之间通过IPsec进行加密通信 (步骤1240)。
图13是在实施例1中在建立了 UAC与UAS之间的加密通信路 径之后使用该加密通信路径从UAC侧应用程序向UAS侧应用程序发 送数据分组时的发送接收时序图。
在图11的最初的数据分组发送、中继(步骤1121、 1151)、图12 的最初的数据分组发送(步骤1231)、图11以及图12的应用程序数 据通信(步骤1160、 1240)中,从用户终端朝向服务提供服务器的部 分中的任意一个都是按照该图13的时序图来进行的。
首先,用户终端侧的应用程序110-C朝向服务提供服务器侧的 应用程序110-S,以未加密的IP分组的形式发送数据分组(步骤 1311)。此时的分组的IP头的发送源IP地址是对用户终端120-C分 配的私有IP地址(此处是图1的IP地址A),发送目的地IP地址是 对服务提供服务器侧NAPT路由器分配的全局IP地址(此处是图1 的IP地址D),协议号是依据应用程序协议的值(此处为TCP)。另 外,此时的分组的TCP.UDP头(此处是TCP头)的发送源端口号以及发送目的地端口号都是用户终端侧的应用程序110-c所识别的端 口号(此处分别为图1的端口号a、 e)。
接下来,用户终端侧的加密通信模块IOO-C接收未加密的IP分 组,实施加密而构成带UDP头的IPsec隧道模式形式分组,从用户终 端120-C的网络接口送出(步骤1312)。此时的分组的外侧IP头的 发送源IP地址以及发送目的地IP地址与原本的未加密的IP分组的发 送源IP地址以及发送目的地IP地址相同(此处分别是IP地址A、D)。 另外,此时的分组的外侧UDP头的发送源端口号是用户终端侧的加密 通信模块100-C识别成为自身侧的端口号的号(此处是图l的端口 号a-udp),发送目的地端口号是用户终端侧的加密通信模块100-C 从服务提供服务器侧的加密通信模块100-C经由认证、密钥交换服 务器170被通知的、服务提供服务器侧的加密通信模块100-C的端 口号(此处是端口号d-udp)。对于内侧的IP分组,还包括IP头以 及TCP.UDP头,对与步骤1311时的未加密的IP分组完全相同的部 分进行了加密。
接下来,用户终端侧的NAPT路由器130-C从LAN侧接口接收 带该加密后的UDP头的IPsec隧道模式形式分組,改写外侧IP头的 发送源IP地址以及外侧UDP头的发送源端口号,从WAN侧接口发 送(步骤1313 )。此时,分组的外侧IP头的发送源IP地址被改写成 对用户终端侧的NAPT路由器130-C的WAN侧接口分配的全局IP 地址(此处是图1的IP地址C),外侧的UDP头的发送源端口号被改 写成用户终端侧的NAPT路由器130-C恰当地分配的端口号(此处 是端口号x - dup )。
接下来,服务提供服务器侧的NAPT路由器130-S从WAN侧接 口接收带该加密后的UDP头的IPsec隧道模式形式分组,改写外侧IP 头的发送目的地IP地址以及外侧UDP头的发送目的地端口号,从 LAN侧接口发送(步骤1314)。此时,分组的外侧IP头的发送目的 地IP地址被改写成对服务提供服务器120 - S分配的私有IP地址(此 处是图1的IP地址E),外侧的UDP头的发送目的地端口号被改写成服务提供服务器侧的加密通信模块100-s识别成自身侧的端口号的 号(此处是图1的端口号e-udp)。另外,该改写是根据服务提供服 务器侧的NAPT路由器130-S中预先设定的静态NAPT转换规则来 进行的。
最后,服务提供服务器侧的加密通信模块100 - S从服务提供服务 器120-S的网络接口接收带该加密后的UDP头的IPsec隧道模式形 式分组,对内侧的IP分组进行解密而取出原来的未加密的IP分组, 改写分组的IP头的发送源IP地址、发送目的地IP地址、以及 TCP*UDP头的发送源端口号,提交给服务提供服务器侧应用程序110 -S(步骤1315)。此时,在分组的IP头的发送源IP地址以及发送目 的地IP地址中,^使用带原来的UDP头的IPsec隧道模式形式分组的 外侧IP头的值。另外,在分组的TCP.UDP头的发送源端口号中,使 用由服务提供服务器侧的加密通信模块100-S恰当地分配的端口号 的值(此处是端口号uniq- a ),以在SP表中使外侧头的对方侧IP地 址在同一条目中成为唯一的值。
图14是在实施例1中在建立了 UAC与UAS之间的加密通信路 径之后使用该加密通信路径从UAS侧应用程序向UAC侧应用程序发 送数据分组时的发送接收时序图。
在图ll以及图12的应用程序数据通信(步骤1160、 1240)中, 从服务提供服务器朝向用户终端的部分是按照该图14的时序图来进 行的。
首先,服务提供服务器侧的应用程序110 - S朝向用户终端侧的应 用程序110-C,以未加密的IP分组的形式发送数据分组(步骤1411)。 此时的分组的IP头的发送源IP地址是对服务提供服务器120 - S分配 的私有IP地址(此处是图1的IP地址E ),发送目的地IP地址是对 用户终端侧NAPT路由器分配的全局IP地址(此处是图1的IP地址 C),协议号是依据应用程序协议的值(此处是TCP)。另外,此时的 分組的TCP.UDP头(此处是TCP头)的发送源端口号是服务提供服 务器侧的应用程序110-S识别的端口号(此处是端口号e)。发送目的地端口号是服务提供服务器侧的应用程序110-s接收到最初从用 户终端侧的应用程序110-C到达的数据分組时(图13的步骤1315) 得知的用户终端侧的应用程序110-C的端口号(此处是端口号uniq -a)。
接下来,服务提供服务器侧的加密通信模块100 - S接收该未加密 的IP分组,对内侧的IP分组的IP头以及TCP.UDP头进行后述的改 写,并实施加密而构成带UDP头的IPsec隧道模式形式分组,从服务 提供服务器120-S的网络接口送出(步骤1412)。此时的分组的外侧 IP头的发送源IP地址以及发送目的地IP地址与原来的未加密的IP 分組的发送源IP地址以及发送目的地IP地址相同(此处分别是IP 地址E、 C)。另外,此时的分组的外侧UDP头的发送源端口号是服 务提供服务器侧的加密通信模块100 - S识别成自身的端口号的号(此 处是图1的端口号e-udp),发送目的地端口号是服务提供服务器侧 的加密通信模块100 - S接收到最初从用户终端侧的加密通信模块100 -C到达的数据分组时(图13的步骤1314)得知的用户终端侧的加 密通信模块100-C的端口号(此处是端口号x-udp)。另外,对内 侧的IP分组的IP头的发送源IP地址、发送目的地IP地址、以及 TCP.UDP头的发送目的地端口号,分别设定与服务提供服务器侧的加 密通信模块100 - S接收到从用户终端侧的加密通信模块100 - C到达 的数据分组时(图13的步骤1314)的、内侧的IP分组的IP头的发 送目的地IP地址、发送源IP地址、以及TCP'UDP头的发送源端口 号相同的值(此处分别是IP地址D、 IP地址A、端口号a)。
接下来,服务提供服务器侧的NAPT路由器130 - S从LAN侧接 口接收带有该加密的UDP头的IPsec隧道;f莫式形式分組,改写外侧IP 头的发送源IP地址以及外侧UDP头的发送源端口号,从WAN侧接 口发送(步骤1413)。此时,分组的外侧IP头的发送源IP地址被改 写成对服务提供服务器侧的NAPT路由器130 - S的WAN侧接口分配 的全局IP地址(此处是图1的IP地址D ),外侧UDP头的发送源端 口号被改写成基于对服务提供服务器侧的NAPT路由器130-S预设的静态NAPT转换规则的端口号(此处是端口号d - udp )。
接下来,用户终端侧的NAPT路由器130-C从WAN侧接口接 收带该加密的UDP头的IPsec隧道模式形式分组,改写外侧IP头的 发送目的地IP地址以及外侧UDP头的发送目的地端口号,从LAN 侧接口发送(步骤1414)。此时,分组的外侧IP头的发送目的地IP 地址被改写成对用户终端120 - C分配的私有IP地址(此处是图1的 IP地址A),外侧UDP头的发送目的地端口号被改写成用户终端侧的 加密通信模块100-C识别成自身侧的端口号的号(此处是图1的端 口号a-udp)。另外,该改写是根据用户终端侧的NAPT路由器130 -C接收到从用户终端侧的加密通信模块100-C到达的数据分组时 (图13的步骤1312 )生成的动态NAPT转换规则来进行的。
最后,用户终端侧的加密通信;漠块IOO-C从用户终端120-C的 网络接口接收带该加密的UDP头的IPsec隧道模式形式分组,对内侧 的IP分组进行解密而取出原来的未加密的IP分组,提交给用户终端 侧应用程序110-C (步骤1415)。此时,不对解密后的内侧的IP分 组进行任何IP头和TCP*UDP头的改写,而直接提交给用户终端侧应 用程序110-C。
图15是示出实施例1中的定位登记请求消息的数据结构的图。 在本实施例中,定位登记请求消息被实现为进行了基于TLS的加 密的SIP消息。但是,即使不使用TLS和SIP,只要可以在加密通信 模块100与认证、密钥交换服务器170之间发送接收包括等同内容的 数据的消息,则都可以实施本发明。该情况在以后的图16至图20中 也相同。
定位登记请求消息由IP头1510、 TCP头1520、加密数据1530 构成。但是,在该图中假设了一个消息收敛于一个IP分组的情况,但 在加密数据1530的部分较长的情况下,还可以分割到多个IP分组。 关于该分割,是按照TLS以及TCP的标准来处理的。该情况在以后 的图16至图20中也相同。
加密数据1530是通过利用TLS对定位登记请求消息主体1540进行加密而生成的。定位登记请求消息主体1540是按照SIP协议构成的。 此处,仅示出包含在消息主体中的主要的信息。在专利文献l中示出 使用SIP协议的消息主体的更具体的实现方法。该情况在以后的图16 至图20中也相同。
在定位登记请求消息主体1540中,包含表示定位登记请求的消息 类别、表示服务提供服务器的等待接受的应用程序的URI、应用程序 的协议号、应用程序的服务提供服务器侧等待接受的端口号、服务提 供服务器的全局IP地址这样的信息。这些信息依照定位信息101的内 容构成。
图16是示出实施例1中的定位登记应答消息的数据结构的图。 在定位登记应答消息主体1640中,包含表示针对定位登记请求的 应答结果的信息。
图17是示出实施例1中的URI取得请求消息的数据结构的图。 在URI取得请求消息主体1740中,包含表示URI取得请求的消 息类别、URI取得对象的IP地址、URI取得对象的协议号、URI取 得对象的端口号这样的信息。这些信息是依照用户终端侧的加密通信 模块100 - C从用户终端侧的应用程序110 - C接收到的最初的数据分 组(图11中的步骤1121)的IP头以及TCP.UDP头的内容构成的。 图18是示出实施例1中的URI取得应答消息的数据结构的图。 在URI取得应答消息主体1840中,包含针对URI取得请求的应 答结果、所取得的URI这样的信息。
图19是示出实施例1中的通信开始请求消息的数据结构的图。 在通信开始请求消息主体1940中,包含表示通信开始请求的消息 类别、表示通信目的地的服务提供服务器侧应用程序的URI、数据分 组的加密中使用的加密密钥、为了确认数据分组中包含的认证值是否 正确而使用的认证值确认密钥、与这些密钥信息对应的SPI、数据分 组的用户终端侧IP地址、数据分组的用户终端侧的内侧头的端口号这 样的信息。根据这些信息(除了 URI),在用户侧、服务提供服务器 侧这双方,生成SP表103、接收SA表104、发送SA表105的条目。图20是示出实施例1中的通信开始应答消息的数据结构的图。 在通信开始应答消息主体2040中,包含针对通信开始请求的应答 结果、数据分组的加密中使用的加密密钥、为了确认数据分组中包含 的认证值是否正确而使用的认证值确认密钥、与这些密钥信息对应的 SPI、数据分组的服务提供服务器侧IP地址、数据分组的服务提供服 务器侧的内侧头的端口号、数据分组的服务提供服务器侧的外侧UDP 头的端口号这样的信息。根据这些信息,在用户侧、服务提供服务器 侧这双方,生成SP表103、接收SA表104、发送SA表105的条目。 图21是示出实施例1中的未加密的IP分组的数据结构的图。 在本发明的应用程序在通信中使用的IP分组中,以使用TCP或 UDP作为IP的上位层协议的情况作为前提。另外,即使在具有发送 源端口号和发送目的地端口号而可以应用NAPT的其他传输层协议 中,也可以与TCP和UDP同样地应用本发明。在本申请中,仅言及 使用TCP或UDP的情况。
IP分组由IP头2110和IP有效栽荷构成。IP有效栽荷由TCP.UDP 头2120和TCP.UDP有效载荷2130构成。
在IP头2110中,包含发送源IP地址2111、发送目的地IP地址 2112、协议号2113、校验和2114的各域。当然, 一般还包含这些以 外的域。
在发送源IP地址2111中存储有IP分组的发送源的IP地址。在 发送目的地IP地址2112中存储有IP分组的发送目的地的IP地址。 在协议号2113中存储有IP的上位层协议的协议号。在校验和2114中 存储有根据IP头计算出的校验和值。 一般,在接收到该校验和值错误 的IP分组的IP处理中,丢弃该分组。因此,在改写了发送源IP地址 2111和发送目的地IP地址2112这样的IP头中包含的信息的情况下, 需要重新计算校验和2114。
在TCP.UDP头2120中,包含发送源端口号2121、发送目的地端 口号2122、校验和2123的各域。当然, 一般还包含这些以外的域。
在发送源端口号2121中存储有TCP.UDP分組的发送源的端口号。在发送目的地端口号2122中存储有TCP.UDP分组的发送目的地 的端口号。在校验和2123中存储有根据TCP.UDP分组整体(头和有 效载荷这双方)计算出的校验和值。 一般,在接收到该校验和值错误 的TCP.UDP分组的TCP.UDP处理中,丢弃该分组。因此,在改写了 发送源端口号2121和发送目的地端口号2122这样的TCP.UDP头中 包含的信息的情况下,需要重新计算校验和2123。但是,在UDP的 情况下,被允许对校验和域2123存储表示省略了校验和计算的值的O。
在TCP.UDP有效载荷2130中,存储有TCP或UDP的数据主体。
图22是示出实施例1中的带加密后的UDP头的IPsec隧道模式 形式分组的数据结构的图。
带UDP头的IPsec隧道模式形式分组由外侧IP头2210、外侧UDP 头2220、 ESP (Encapsulating Security Payload ,封装安全有效载荷) 头2230、加密分组数据2240、 ICV (Integrity Check Value,完整性 校验值)2250构成。
外侧IP头2210、外侧UDP头2220的结构与图21的IP头2110、 UDP头2120相同。在ESP头2230中,包含SPI 2231的域。在ICV 2250 中,包含认证值2251的域。例如,在分组数据的认证算法中使用HMAC 的情况下,在认证值2251的域中,存储有根据ESP头2230和加密分 组数据2240计算出的MAC ( Message Authentication Code,消息认 证码)。
加密分组数据2240是通过在加密前的IP分组的末尾附加ESP尾 部2260并进行加密而生成的。加密前的IP分組的数据结构与图21 示出的IP分组完全相同。
图23是示出在实施例1中具备本发明的通信方法的加密通信模块 从网络接口驱动器接收到接收分组时进行的封装处理应用判定的流程 的图。
本算法是在加密通信模块100内的封装处理应用判定301从网络 接口驱动器320接收到接收分組时执行的。
从网络接口驱动器320接收到接收分组的封装处理应用判定301通过对该接收分組的发送源IP地址、发送目的地IP地址、协议号、
发送源端口号、发送目的地端口号、与策略列表102的对方侧IP地址 521、自身侧(私有)IP地址541、协议号510、对方侧端口号522、 自身侧(私有)端口号542分别进行比较,来检索策略列表102 (步 骤2310)。
其结果,在发现一致的条目,且该条目的策略550是丟弃或封装 内侧的情况下(步骤2321 ),丢弃接收分组(步骤2322),结束处理。
在发现一致的条目,且该条目的策略550是非应用或封装外侧的 情况下(步骤2331 ),向OS的IP处理311交付接收分组(步骤2332 ), 结束处理。
在未发现一致的条目的情况下,作为默认的处理,进行与丟弃或 非应用中的某一个相同的处理(步骤2340 ),而结束处理。应将丟弃 或非应用中的哪一个设为默认处理,根据以何种安全策略来运用系统 而不同。
图24是示出在实施例1中具备本发明的通信方法的加密通信模块 的图。
本算法是在加密通信模块100内的封装处理应用判定301从OS 的IP处理311接收到发送分组时执行的。
从OS的IP处理311接收到发送分组的封装处理应用判定301通 过对该接收分組的发送源IP地址、发送目的地IP地址、协议号、发 送源端口号、发送目的地端口号、与策略列表102的自身侧(私用) IP地址541、自身侧IP地址521、协议号510、自身侧(私用)端口 号542、对方侧端口号522分别进行比较,来检索策略列表102 (步骤 2410)。
其结果,在发现一致的条目,且该条目的策略550是丟弃的情况 下(步骤2421 ),丢弃发送分组(步骤2422),结束处理。
在发现一致的条目,且该条目的策略550是封装内侧的情况下(步 骤2431 ),对发送分组应用封装化处理303 (步骤2432),结束处理。在发现一致的条目,且该条目的策略550是非应用或封装外侧的 情况下(步骤2441 ),向网络接口驱动器320交付发送分组(步骤2442 ), 结束处理。
在未发现一致的条目的情况下,作为默认的处理,进行与丢弃或 非应用中的某一个相同的处理(步骤2450),结束处理。应将丟弃或 非应用中的哪一个设为默认处理根据以何种安全策略来运用系统而不 同。图25是示出在实施例1中具备本发明的通信方法的加密通信模块 从OS的UDP处理接收到接收分组时进行的封装去除处理的流程的 图。
本算法是在加密通信模块100内的封装去除处理302从OS的 UDP处理313接收到接收分组时执行的。
从OS的UDP处理313接收到接收分组的封装去除处理302通过 对包含在接收分组中的SPI 2231与SP表103的接收SPI 640进行比 较,来检索SP表103 (步骤2510 )。其结果,如果未发现一致条目(步 骤2511),则丟弃分组(步骤2595),结束处理。
在发现一致的条目的情况下,通过对本次包含在接收分组中的 SPI 2231与接收SA表104的接收SPI 710进行比较,检索接收SA表 104,得到与SPI对应的解密密钥720和认证值确认密钥730。然后, 使用该认证值确认密钥730,计算出接收分组的认证值,确认是否与 包含在接收分组中的认证值2251 —致(步骤2520 )。如果这些值不一 致(步骤2521 ),则丟弃分组(2595),而结束处理。
在认证值一致的情况下,使用之前得到的解密密钥720,对接收 分组内的加密分组数据2240进行解密,得到明文的内侧IP分组(步 骤2530)。然后,对该内侧IP分组的IP头2110中包含的协议号、发 送源IP地址、发送目的地IP地址、以及TCP.UDP头2120中包含的 发送源端口号、发送目的地端口号、与之前检索而发现的SP表的条 目中包含的内侧头(原始)620的协议号621、对方侧IP地址622、 自身侧IP地址624、对方侧端口号623、自身侧端口号625分别进行 比较,而确认是否完全一致(步骤2540)。如果存在不一致的项目(步骤2541 ),则丟弃分组(步骤2595),结束处理。
在这些值一致的情况下,将接收分组的外侧IP头2210的发送源 IP地址、以及外侧UDP头2220的发送源端口号的值分别设定到之前 检索而发现的SP表的条目的、外侧头610的对方侧IP地址611以及 对方侧端口号612的项目(步骤2550)。
接下来,调查之前检索而发现的SP表的条目的假想对方侧端口 号630的项目是否为未登记(步骤2560 ),如果是未登记(步骤2561 ), 则新决定假想对方侧端口号630,以成为与外侧头610的对方侧IP地 址611相同的其他全部SP表条目不同的值,登记到SP表的相应条目 (步骤2562 )。
接下来,分别使用SP表的相应条目的外侧头610列的对方侧IP 地址6U、自身侧IP地址613、假想对方侧端口号630的值来改写接 收分组的内侧IP头的发送源IP地址、发送目的地IP地址、内侧 TCP*UDP头的发送源端口号(步骤2570 ),根据需要重新计算内侧IP 头的校验和2114和内侧TCP'UDP头的校验和2123,使用重新计算出 的值来改写(步骤2575)。
然后,从接收分组全部去除外侧IP头2210、外侧UDP头2220、 ESP头2230、 ESP尾2260、 ICV 2250 (步骤2580 ),向OS的IP处 理311交付所剩余的内侧IP分组(步骤2585 ),结束处理。
图26是示出在实施例1中从具备本发明的通信方法的加密通信模 块的封装处理应用判定中调出的发送分组的封装化处理的流程的图。
本算法是在加密通信模块100内的封装处理应用判定301将从OS 的IP处理311接收到的发送分组判定为"封装内侧"时执行的。
从封装处理应用判定301接收到发送分组的封装化处理303通过 对发送分组的IP头2110的发送源IP地址、发送目的地IP地址、协 议号、以及TCP.UDP头2120的发送源端口号、发送目的地端口号、 与SP表103的外侧头610的自身侧IP地址613、对方侧IP地址611、 以及内侧头(原始)620的协议号621、自身侧端口号625、以及假想 对方侧端口号630的值分别进行比较,来检索SP表103 (步骤2610 )。其结果,在不存在一致的条目的情况下(步骤2611),向信令处 理304请求取得与发送分组的IP头2110的协议号、发送目的地IP地 址、TCP.UDP头2120的发送目的地端口号对应的URI,并请求与相 应URI所表示的服务提供服务器侧应用程序110 - S开始加密通信(步 骤2680 )。其结果,在加密通信的开始准备失败的情况下(步骤2681 ), 设为分组的发送失败,而结束处理。在成功的情况下,继续以下处理。
接下来,使用SP表103的相应条目(在步骤2610中发现一致的 条目的情况下是指该条目,在未发现的情况下是指在步骤2680中新生 成的条目)的内侧头(原始)620的自身侧IP地址624、对方侧IP 地址622、对方侧端口号623的值分别改写发送分组的IP头2110的 发送源IP地址、发送目的地IP地址、TCP.UDP头2120的发送目的 地端口号(步骤2620 )。然后,根据需要重新计算IP头的校验和2114 和TCP.UDP头的校验和2123,使用重新计算出的值来进行改写(步 骤2625 )。
接下来,从发送SA表105检索出SP表103的相应条目的发送 SPI 650与发送SPI 810的值一致的条目,得到相应条目的加密密钥 820和认证值计算密钥830。然后,4吏用该加密密钥820,对附加了 ESP尾部2260的发送分组进行加密,对所生成的加密分组数据2240 的开头附加ESP头2230,对该SPI域2231设定发送SPI 650的值(步 骤2630 )。
接下来,使用之前得到的认证值计算密钥830,计算出附加了 ESP 头2230的加密分组数据2240的认证值,在加密分组数据2240的末尾 附加ICV 2250,向该认证值域2251设定所计算出的认证值(步骤 2635 )。
然后,将SP表103的相应条目的外侧头610的自身侧IP地址613、 对方侧IP地址611、自身侧端口号614、对方侧端口号612分别i殳为 发送源IP地址、发送目的地IP地址、发送源端口号、发送目的地端 口号,经由OS的UDP处理313发送所生成的加密分组(由ESP头 2230、加密分组数据2240、以及ICV 2250构成)(步骤2640 ),结束处理。
(实施例2 )
图27是示出实施例2中的成为具备本发明的通信方法的加密通信 模块的应用对象的系统的网络结构的图。
在实施例2中,加密通信模块2700-C、 2700-S不是在用户终 端2720 -C和服务提供服务器2720 -S,而是在带加密通信功能的 NAPT路由器2735 -C、 2735-S的内部动作。在带加密通信功能的 NAPT路由器2735-C、 2735-S的内部中,由进行与实施例l的加 密通信模块100-C、 100-S等同的动作的加密通信模块2700 -C、 2700-S、以及进4亍与实施例1的NAPT路由器130-C、 130-S等同 的动作的NAPT路由器模块2730 -C、 2730 -S进行动作。在用户终 端2720 - C和服务提供服务器2720 - S的内部中仅应用程序110 - C、 IIO-S进行动作。
在本实施例中,在用户终端2720 -C、服务提供服务器2720-S、 与带加密通信功能的NAPT路由器2735 - C、2735 - S之间的LAN中, 以明文方式直接进行应用程序的通信。另一方面,仅通过一台带加密 通信功能的NAPT路由器2735-C,设置在同一 NAPT路由器下的无 加密通信功能的多个用户终端可以在WAN中对应用程序的通信进行 加密。对于服务提供服务器,也是同样的。
另外,对于实施例1示出的将加密通信模块设置在用户终端或服 务提供服务器中的方法、实施例2示出的将加密通信模块设置在 NAPT路由器中的方法,只要针对每个LAN统一成其中一个方法,则 可以混合存在。即,也可以在用户终端侧使用将加密通信模块置于 NAPT路由器中的方法,也可以在服务提供服务器侧使用将加密通信 模块置于服务提供服务器中的方法。
图28是示出实施例2中的具备本发明的通信方法的加密通信模块 动作的带加密通信功能的NAPT路由器的内部处理体系结构的图。
在带加密通信功能的NAPT路由器2735中,在WAN侧和LAN 侧分别具有网络接口 2831、 2832,且与分别对应的网络接口驱动器2921、 2922动作。另外,具有NAPT路由器的功能而并非应用程序, 所以代替应用程序的软件而由NAPT路由器模块2730动作,且存在 NAPT转换表131。其他结构与实施例1的用户终端2720-C和服务 提供服务器2720 - S大致相同。
图29是示出实施例2中的包括具备本发明的通信方法的加密通信 模块的带加密通信功能的NAPT路由器的软件结构的图。
带加密通信功能的NAPT路由器2735需要能够进行IP层中的分 组中继,所以OS的IP终端、地址转换、中继处理2911不仅进行作 为端主机的IP的发送接收,而且还具有作为路由器的IP分组中继功 能。另外,按照来自NAPT路由器模块的设定,还进行针对中继分组 的NAPT处理。
加密通信模块2700的封装处理应用判定2901对进入IP终端、地 址转换、中继处理2911的与网络接口 (LAN侧)2831对应的IP通信 接口和与网络接口 (LAN侧)2831对应的网络接口驱动器(LAN侧) 2921之间而被中继的IP分组,判断应进行封装去除处理2902或封装 化处理2903、或不进行任何处理而应直接交给IP终端、地址转换、 中继处理2911和网络接口驱动器(LAN侧)2921、或不交给任何处 理而应丟弃。然后,执行与该判定结果对应的处理。
封装去除处理2卯2从封装处理应用判定2901接收通过封装处理 应用判定2901判断为应进行加密的IPsec隧道模式形式分组,进行该 分组的认证值的确认和解密,向网络接口驱动器(LAN侧)2921提 交所取出的内侧的明文IP分组。
封装化处理2903从封装处理应用判定2901接收通过封装处理应 用判定2901判断为应进行加密的明文IP分组,对该分组进行加密并 附加恰当的头等,生成IPsec隧道模式形式分组,经由IP终端、地址 转换、中继处理2911向WAN侧中继。另外,在该加密处理中所需的 加密通信路径建立尚未进行的情况下,向信令处理2卯4请求开始加密 通信,在作为其结果确立了加密通信路径之后,进行分组的加密以及 送出。图30是示出在实施例2中具备本发明的通信方法的加密通信模块 从OS的IP终端、地址转换、中继处理接收到中继分组时进行的封装 处理应用判定的流程的图。
本算法是在加密通信模块2700内的封装处理应用判定2901从IP 终端、地址转换、中继处理2911接收到向LAN中继的中继分组时执 行的。
从IP终端、地址转换、中继处理2911接收到向LAN中继的中继 分组的封装处理应用判定2901与图23的步骤2310同样地,检索策略 列表102 (步骤3010)。
其结果,在发现一致的条目,且该条目的策略550是丢弃或封装 内侧的情况下(步骤3021 ),丢弃中继分组(步骤3022 ),结束处理。
在发现一致的条目,且该条目的策略550是封装外侧的情况下(步 骤3031 ),对中继分组应用封装去除处理2902 (步骤3032 ),结束处 理。在发现一致的条目,且该条目的策略550是非应用的情况下(步 骤3041 ),向网络接口驱动器(LAN侧)2921交付中继分组(步骤 3042 ),结束处理。
在未发现一致的条目的情况下,设为默认的处理,而进行与丟弃 或非应用中的某一个相同的处理(步骤3050),结束处理。应将丢弃 或非应用中的哪一个设为默认处理根据以何种安全策略来运用系统而 不同。
图31是示出在实施例2中具备本发明的通信方法的加密通信模块 从网络接口驱动器(LAN侧)接收到中继分组时进行的封装处理应用 判定的流程的图。
本算法是在加密通信模块2700内的封装处理应用判定2901接收 到从网络接口驱动器(LAN侧)2921向WAN中继的中继分组时执行 的。
从网络接口驱动器(LAN侧)2921接收到向WAN中继的中继分 组的封装处理应用判定2901与图24的步骤2410同样地,检索策略列 表102 (步骤3U0)。其结果,在发现一致的条目,且该条目的策略550是丢弃或封装 外侧的情况下(步骤3121),丟弃中继分组(步骤3122),结束处理。
在发现一致的条目,且该条目的策略550是封装内侧的情况下(步 骤3131),对中继分组应用封装化处理2卯3 (步骤3132),结束处理。
在发现一致的条目,且该条目的策略550是非应用的情况下(步 骤3141),向IP终端、地址转换、中继处理2911交付中继分组(步 骤3142),结束处理。
在未发现一致的策略的情况下,设为默认的处理,进行与丢弃或 非应用的某一个相同的处理(步骤3150),结束处理。应将丢弃或非 应用中的哪一个设为默认处理根据以何种安全策略来运用系统而不 同。
图32是示出在实施例2中从具备本发明的通信方法的加密通信模
本流程的内容与图25所示的实施例1中的封装去除处理的流程大 致相同。较大差异点仅仅在于,并非在UDP处理之上而是在IP终端、 地址转换、中继处理2911之下接收处理对象的加密IPsec分组,所以 对处理前的加密IPsec分组附加外侧IP头以及外侧UDP头;最终生 成的明文IP分組的收付目的地成为网络接口驱动器(LAN侧)2921 。
图33是示出在实施例2中从具备本发明的通信方法的加密通信模 块的封装处理应用判定调出的中继分组的封装化处理的流程的图。
本流程的内容与图26所示的实施例1中的封装化处理的流程大致 相同。较大的差异点仅仅在于,并非对UDP处理而对IP终端、地址 转换、中继处理2911收付处理后的加密IPsec分组,所以需要对处理 后的加密IPsec分组附加外侧IP头以及外侧UDP头;最终生成的加 密IPsec分組的收付目的地成为IP终端、地址转换、中继处理2911。
通过如本实施例那样将加密通信模块置于NAPT路由器中,用户 终端以及服务提供服务器即使在其内部没有加密通信模块,也可以在 外部网络区间进行加密通信。特别,在1台NAPT路由器之下存在多 个用户终端(或服务提供服务器)的情况下,在实施例1的结构中需要对各用户终端(或服务提供服务器)导入加密通信模块,但在本实 施例的结构中无需导入。但是,代替它,在本实施例中用户终端(或
服务提供服务器)与NAPT路由器之间是明文通信,所以需要在该区 间使用与本发明独立的手段来确保通信的安全性。 (实施例3)
图34是示出实施例3中的成为具备本发明的通信方法的加密通信 模块的应用对象的系统的网络结构的图。
即使在如本实施例仅在用户终端侧应用NAPT,且对服务提供服 务器直接分配了全局IP地址的情况下,也可以无问题地实施应用程序 的加密通信。另外,在本实施例中,示出了将加密通信模块内置于用 户终端以及服务提供服务器中的情况,但对于用户终端侧,即使如实 施例2那样内置于NAPT路由器,也可以无问题地实施。
图35是示出在实施例3中在建立了 UAC与UAS之间的加密通 信路径之后使用该加密通信路径从UAC侧应用程序向UAS侧应用程 序发送数据分组时的发送接收时序图。
在本实施例中,未在服务提供服务器侧设置NAPT路由器,所以 在任意装置以及软件中,通过相同全局IP地址和端口号(图34中的 IP地址D、端口号d - udp )来识别服务提供服务器侧的IP地址以及 外侧UDP端口号。对于其他,与实施例1的图13所示的时序图相同。
图36是示出在实施例3中在建立了 UAC与UAS之间的加密通 信路径之后使用该加密通信路径从UAS侧应用程序向UAC侧应用程 序发送数据分组时的发送接收时序图。
在本实施例中,未在服务提供服务器侧设置NAPT路由器,所以 在任意装置以及软件中,通过相同全局IP地址和端口号(图34中的 IP地址D、端口号d - udp )来识别服务提供服务器侧的IP地址以及 外侧UDP端口号。对于其他,与实施例1的图14所示的时序图相同。 (实施例4)
图37是示出实施例4中的成为具备本发明的通信方法的加密通信 模块的应用对象的系统的网络结构的图。即使在如本实施例在用户终端侧双重地设置了 NAPT路由器的情 况下,也可以无问题地实施应用程序的加密通信。另外,即使在服务 提供服务器侧双重地设置了 NAPT路由器的情况下,如果可以预先掌 握对设置于最靠近外部网络160的位置的NAPT路由器分配的全局IP 地址、和通过两个NAPT路由器时引起的静态NAPT转换的规则,而
对服务提供服务器侧的加密通信模块正确地进行这些的设定,则也可 以无问题地实施应用程序的加密通信。
权利要求
1. 一种网络系统,分别具有通信接口的第一计算机、第二计算机、第一分组中继装置经由网络连接,其特征在于对上述第一计算机以及上述第二计算机的通信接口分配有独立的网络地址,上述第一计算机具备在该第一计算机中动作的第一软件,上述第二计算机具备在该第二计算机中动作的第二软件,上述第一软件与上述第二软件使用通信分组进行通信,该通信分组包括表示发送源计算机的通信接口的网络地址、表示发送目的地计算机的通信接口的网络地址、表示发送源软件的标识符、表示发送目的地软件的标识符,进而,上述第一计算机具备第一加密、解密处理部或者与该第一加密、解密处理部连接,上述第二计算机具备第二加密、解密处理部或者与该第二加密、解密处理部连接,上述第一加密、解密处理部对上述第一软件朝向上述第二软件发送的通信分组整体进行加密,新附加表示该通信分组的发送源以及发送目的地的网络地址以及标识符,对该通信分组进行中继,进而从上述第二软件朝向上述第一软件发送的通信分组去除表示发送源以及发送目的地的网络地址以及标识符并对剩余的部分进行解密,对该通信分组进行中继,上述第二加密、解密处理部对上述第二软件朝向上述第一软件发送的通信分组整体进行加密,新附加表示该通信分组的发送源以及发送目的地的网络地址以及标识符,对该通信分组进行中继,进而从上述第一软件朝向上述第二软件发送的通信分组去除表示发送源以及发送目的地的网络地址以及标识符并对剩余的部分进行解密,对该通信分组进行中继,进而,对上述第一分组中继装置具备的通信接口分配有网络地址,上述第一分组中继装置在上述第一软件朝向上述第二软件发送的通信分组中,将上述第一加密、解密处理部新附加的表示该通信分组的发送源即上述第一计算机的通信接口的网络地址以及表示上述第一软件的标识符转换成上述第一分组中继装置的通信接口的网络地址以及上述第一分组中继装置任意分配的标识符,对该通信分组进行中继,进而对上述第二软件朝向上述第一分组中继装置发送的通信分组,将上述第二加密、解密处理部新附加的该通信分组的发送目的地即上述第一分组中继装置的通信接口的网络地址以及上述任意分配的标识符转换成表示上述第一计算机的通信接口的网络地址以及表示上述第一软件的标识符,对该通信分组进行中继,进而,上述第二加密、解密处理部在针对上述第一软件朝向上述第二软件发送的通信分组,去除由上述第一加密、解密处理部附加且由上述第一分组中继装置转换的表示发送源以及发送目的地的网络地址以及标识符而对剩余的部分进行解密时,利用对解密前的通信分组由上述第一加密、解密处理部附加并由上述第一分组中继装置转换的发送源网络地址,置换解密后的该通信分组中包含的发送源的网络地址,将与该发送源网络地址相同的其他通信不同的唯一的值作为新的标识符进行分配,利用上述新的标识符置换解密后的该通信分组中包含的发送源的标识符,存储上述网络地址以及标识符的置换规则,对上述第二软件朝向上述第一软件发送的通信分组的发送目的地网络地址以及标识符,逆向应用上述置换规则。
2.根据权利要求1所迷的网络系统,其特征在于具备设置于上述第一分组中继装置与上述第二计算机之间的第二分组中继装置,对上述第二分组中继装置具备的通信接口分配网络地址,上述第二分组中继装置在上述第一软件朝向上述第二軟件发送的 通信分组中,将该通信分组的发送目的地即上述第二分组中继装置的 通信接口的网络地址以及上述第二分组中继装置内预先设定的标识符 转换成表示上述第二计算机的网络地址以及表示上述第二软件的标识符,对该通信分組进行中继,针对上述第二软件朝向上述第一分组中 继装置发送的通信分组,将该通信分组的发送源转换成上述第二分组 中继装置的通信接口的网络地址以及上述预先设定的标识符,对该通 信分组进行中继,进而,上述第二加密、解密处理部在针对上述第一软件朝向上述 第二软件发送的通信分組,去除由上述第一加密、解密处理部附加且 由上述第一分组中继装置以及上述第二分组中继装置转换的表示发送 源以及发送目的地的网络地址以及标识符而对剩余的部分进行解密 时,利用对解密前的通信分组由上述第一加密、解密处理部附加并由 上述第一分组中继装置以及上述第二分组中继装置转换的发送目的地 网络地址,置换解密后的该通信分組中包含的发送目的地的网络地址。
3. 根据权利要求2所述的网络系统,其特征在于 还具备第三计算机,与上述网络连接,用于上述第一加密、解密处理部与上述第二加密、解密处理部进行相互认证以及密钥信息的交 换,上述第二加密、解密处理部经由上述第三计算机,对上述第一加 密、解密处理部,通知上述第二分组中继装置的通信接口的网络地址 以及对上述第二分组中继装置中预先设定的标识符,作为通信分组的 发送目的地网络地址以及发送目的地标识符。
4. 根据权利要求1所述的网络系统,其特征在于 上述第一分组中继装置、上述第二分组中继装置、以及上述第二加密、解密处理部在对包含在该通信分组中的发送源或发送目的地的 网络地址或标识符进行转换或置换之后,恰当地重新计算包含在该通 信分组中的分组数据的检错码。
5. 根据权利要求1所述的网络系统,其特征在于 在上述网络地址中使用IP (Internet Protocol)地址,在上述标识符中使用TCP (Transmission Control Protocol)或UDP (User Datagram Protocol)的端口号。
6. 根据权利要求5所述的网络系统,其特征在于在上述通信分組的加密协i义中,4吏用附加了 UDP头的IPsec (IP Security Protocol )。
7.根据权利要求5所述的网络系统,其特征在于 在用于进行上述第二加密、解密处理部与上述第一加密、解密处 理部之间的信息交换的协议中,使用SIP( Session Initiation Protocol )、 或者由TLS ( Transpor Layer Secruity )对SIP加密后的协议。
全文摘要
本发明提供一种网络系统,在用户终端与服务提供服务器之间存在NAPT路由器的环境中,可以通过追加了UDP头的IPsec隧道模式形式分组进行加密通信。服务提供服务器侧的加密通信模块向认证、密钥交换服务器通知对服务提供服务器侧的NAPT路由器分配的全局IP地址、以及在全局侧使用的外侧UDP头的端口号。在从用户终端侧的加密通信模块接收到加密分组时,使用外侧IP头的发送源、发送目的地IP地址重写内侧IP头的发送源、发送目的地IP地址。另外,将内侧TCP·UDP头的发送源端口号变更成在外侧IP头的发送源IP地址相同的加密通信中针对每个通信会话唯一的值。在朝向用户终端侧的加密通信模块发送分组时进行相逆的头转换。
文档编号H04L29/06GK101420423SQ200810161779
公开日2009年4月29日 申请日期2008年9月26日 优先权日2007年10月26日
发明者星野和义, 柘植宗俊, 锻忠司 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1