通信系统、通信装置、通信方法及用于实现这些的通信程序
技术领域
本发明涉及通信中的安全系统,特别涉及用来防止网上数据‘泄露’、‘篡改’、‘伪装’、‘进入’和‘攻击’的通信系统,特别涉及实现通信系统的协议栈、通信装置、通信方法及用于实现这些的计算机程序。
背景技术
近年来,网络通信只要有Windows个人计算机,将其与网络连接,谁都可以访问网上的计算机,所以,迅速地在社会上普及扩大。另一方面,伴随该网络通信的普及扩大,黑客或坏客(cracker)侵入到别人的计算机系统,或盗看软件或数据,或进行篡改或破坏,变成很大的社会问题。
作为非法妨害的具体情况,首先,为了使中心系统不能使用,有从网络送出大量的讯息,妨害计算机系统使用的系统妨害。当因该妨害而使主机超载时,系统便陷于瘫痪。
此外,有获取主机的口令,或盗取机密信息、或进行信息的篡改或破坏的‘非法的访问和伪装’的非法妨害。在该妨害中,有随便改写计算机保存的信息、陷害人的卑劣行为。此外,还发生隐藏在特定的个人计算机中而窃取电子邮件地址或口令等个人机密数据的所谓间谍软件的非法行为。此外,也不能否定频繁地进行非法地盗看像上述那样连接在网络上的计算机所具有的数据库的内容之所谓窃听行为的可能性。
此外,也不能说在站点或服务器运营处完全没有有意盗窃个人信息的行为或潜伏在公司内的间谍等进行的网络恐怖主义(Cyberterrorism)的危机。
进而,最近向别人的计算机发送使计算机产生故障的程序,即‘病毒’的非法妨害增多。该被发送的病毒会通过电子邮件感染给自己家庭使用的个人计算机,并在家庭个人计算机与公司的计算机相连接的瞬间感染给公司内的所有计算机,病毒会破坏计算机中的文件,进而,使整个网络瘫痪。
因此,在利用现有的TCP/IP(Transmission ControlProtocol/InternetProtocol:传输控制协议/因特网协议)或UDP(User Datagram Protocol:用户数据报协议)的因特网上的通信中,作为防止数据‘泄露’、‘篡改’等的功能,使用所谓Ipsec(Security Architecture for Internet Protocol:因特网协议的安全体系结构)或SSL(Secure Socker Layer:安全套接层)的加密通信。一般,在加密通信中,有公用密钥(又称秘密密钥)加密方式和公开密钥加密方式,Ipsec大多使用公用密钥加密方式。公用密钥加密方式与公开密钥加密方式比较,具有加密、解密的速度快的特征。该Ipsec使用的公用密钥加密方式是用同一密钥进行加密和解密的方式,密钥可以在发送侧和接收侧中任何一方生成,但是,为了在接收侧和发送侧使用公用密钥,在密钥交换时必须十分小心,以防内容向外部泄露。
公用密钥加密方式使用的算法典型地有DES(Data EncryptionStandard:数据加密标准:美国IBM公司开发的公用密钥(秘密密钥)加密算法)。Ipsec也采用该DES作为它的一种加密算法。Ipsec是将IETF(Internet Engineer Task Force:因特网工程任务组)标准化后发展起来的,其特征在于,不是单纯地只对特定的应用进行加密,而是在IP级别上对从主机发送来的所有通信进行加密。因此,用户可以不用考虑应用而进行安全的通信。此外,Ipsec可以不改变本身的结构而变更所使用的加密算法,以便应付将来的使用。
作为Ipsec使用的公用加密密钥,可以使用称之为SPI(SecurityPointer Index:安全指示器指针)的32位代码,作为密钥交换协议,使用IKE(Internet Key Exchange:因特网密钥交换)。进而,Ipsec还准备有用于完全性认证的协议AH(AuthenticationHeader:权威证明)。
此外,SSL是美国Netscape公司(现在已合并到AOL公司)开发的带保密功能的HTTP协议,客户和服务器可以利用它在网上进行相互认证,可以对信用卡信息等机密性很高的信息加密后再进行交换。因此,可以防止窃听数据、再发送攻击(窃听网上的数据后再反复发送的攻击)、伪装(假装是本人进行通信)和篡改数据等。
图25示出现有的进行使用了Ipsec的加密通信时的协议栈的例子,图26示出现有的进行使用了SSL的加密通信时的协议栈的例子。
OSI参考模型的最下层(第1层)是物理层,第2层是数据链路层、第3层是网络层,第4层是传输层,第5层是对话层,第6层是表示层,最上层(第7层)是应用层。该OSI参考模型中的7个层是将通信功能分成7个等级,对每一层规定标准的功能模块。图25中示出第5层对话层之前的层。
协议栈是指选择用来实现网络的各层之功能的协议并呈层状堆积的软件组。
首先,说明OSI参考模型的概念,第1层的物理层是规定信号线的物理电气特性或代码的调制方法等的层。但是,仅该层被单独定义、安装的情况较少,通常和第2层的数据链路层一起被定义为例如以太网的规格等。
第2层的数据链路层是规定数据的打包、物理节点地址或信息包的收发方法等的层。该层是规定用来通过物理的通信媒体在2个节点之间交换信息包的协议的层,对各节点附加某一地址,根据该地址指定信息包的发送目的地,并向通信媒体上发送信息包。作为通信媒体,有铜布线、无线或光纤等各种各样的媒体。此外,连接形态(topology:拓扑)也不只是一对一的连接,有总线型、星型或环型等多种连接。在通信媒体上发送的信息包在到达接收侧的节点的时刻被取入该节点,进而送给上位协议栈。
跨过物理层和数据链路层配置的NIC(Network InterfaceCard:网络接口卡)驱动器是用来将个人计算机和打印机等与局域网(LAN)连接的扩展卡。在单称之为网卡时,多数情况下与以太网连接。
要发送数据的节点(设备)利用该NIC驱动器监视电缆的空闲状况,当电缆空闲时开始发送数据。这时,若多个节点同时开始发送数据,则电缆内数据发生冲突而遭到破坏,所以,中止两个节点的发送,等待一段随机的时间后重新开始发送。因此,多个节点可以共用1根电缆,相互之间进行通信。
第3层的网络层是规定任意2个节点之间的通信方法的层。若按TCP/IP来说,相当于IP层。在数据链路层中,可以进行同一网络媒体上节点之间的通信,但是,使用其功能在网络上存在的任意2个节点之间一边进行路由选择一边通信则是该网络层的任务。这里,路由选择是指当在TCP/IP网络中向目的地主机发送信息包时选择最佳的路径进行发送。例如,在以太网中,只有同一段上的节点之间才能相互通信,但在网络层中,在2个以太网的段之间,通过对信息包进行路由选择来通信。此外,信息包的路由选择可以不通过物理的网络媒体,而选择通过电话线路将计算机与网络(以太网)连接的拨号PPP(Point to Point Protocol:点对点的协议)线路,或选择使用了光纤的专用线路等。为了达到该目的,通常,将不依赖于物理媒体的地址(若是TCP/IP,则是IP地址)分配给各节点,并据此进行路由选择。Ipsec对在该网络层、即IP级中从主机发送的所有通信进行加密,所以,用户可以不考虑应用而进行安全的通信。
第4层的传输层是用来在各节点上执行的2个过程之间实现无误差的、虚拟通信线路的协议栈。若是TCP/IP,则相当于TCP层。虽然在网络层中提供了在2个节点之间进行通信的功能,但使用它在2个过程(应用)之间提供无误差的虚拟通信线路则是该层的任务。即,虽然在网络层中可以发送数据,但不能保证该数据能可靠地送给对方。此外,也不能保证按照正确的顺序将数据送给对方。因此,为了对于应用更容易使用,提供无误差的虚拟通信线路的就是该层。如有必要,可以进行数据的重发、恢复处理等。
该传输层除TCP之外,还配置了UDP,该UDP和TCP的差别在于TCP是施加了数据补偿的协议且速度较低,而UDP未施加数据补偿且速度较高。当像计算机之间的通信那样传送数据时,主要使用TCP,当像IP电话那样传送声音或图像时,大多使用UDP。对该第3层的传输层上进行加密处理的例子至今尚未出现。
第5层的对话层是规定对话(从通信开始到通信结束)次序的层,是在应用之间建立连接使其处于通信状态的层。配置在该层上的插口(Socket)表示与计算机在网络中的住址相当的IP地址和作为IP地址的子地址的端口号码进行了组合而成的网络地址。当将计算机彼此之间连接时,必须在指定插口(IP地址和端口号码的组合)之后方能进行。如图26所示,作为现有的具有代表性的加密通信技术的SSL在该对话层中实现了加密通信。
第6层的表示层是规定在对话层(从通信开始到通信结束)所交换数据的表现方法或编码、加密等的层。在TCP/IP协议中,没有相当于该层的部分。通常由应用本身来进行数据流的处理。
此外,第7层的应用层是用来规定应用之间数据交换的层,在TCP/IP协议中,没有相当于该层的部分。是规定例如电子邮件的格式或文件的内部结构等应用之间交换数据时所必要的通用的数据结构等的层。
图25是配备了Ipsec的标准协议栈,首先,在物理层(第1层)和数据链路层(第2层)上设置NIC(网络接口卡)驱动器。该驱动器是用来使计算机等硬件与网络相连接的接口卡的驱动器,其内容是数据收发控制软件。例如,用来与以太网连接的LAN板或LAN卡与此相当。第3层的网络层存在其一部分延伸至传输层(第4层)的IP仿真器(emulator)。该延伸至传输层的部分不作为传输层的功能安装。只是向对话层提供网络层的功能而已。该IP仿真器起根据用途切换使用进行Ipsec的加密通信的协议和不进行加密通信的协议,即IP的作用。此外,第3层的网络层配置了ARP(AddressResolution Protocol:地址解析协议)。该ARP是根据IP地址是计算作为以太网的物理地址的MAC(Media Access Control:媒体存取协议)地址时所使用的协议。MAC是称之为媒体存取控制的由LAN等使用的传送控制技术,作为规定数据收发单位,即帧的收发方法、帧的形式或纠错等的技术利用。
此外,该网络层上设置了传送IP的错误信息或控制信息的协议,即ICMP(Internet Control Message Protocol:因特网控制信息协议)和用来控制为了有效地向多个主机发送同一数据或接收同一数据而构成的主机组的协议,即IGMP(Internet Group ManegementProtocol:互联网组管理协议)。而且,在网络层的上位层的传输层中,配置了TCP和UDP,进而在其上位层的对话层配置了插口(SOCKET)接口。
图26是具备了作为加密处理协议的SSL的标准协议的例子,不在网络层配备Ipsec,而在插口(对话层)上配备了SSL。其他协议和图25所示的协议相同。
在现有的代表性的加密通信技术中,Ipsec是对IP数据包进行加密后再进行收发的技术,因此,像TCP或UDP等利用上位协议的应用软件没有必要使用IPsec。
另一方面,在SSL中,在相互认证的级别上,使用RSA(RivestShamir Adleman:公开密钥加密方式的3个发明者的初始字符)公开密钥加密技术的数字证明书,在数据的加密中,使用DES等公用密钥加密技术。因该SSL位于第5层的对话层,故依赖于特定的应用。
Ipsec实现了防止比OSI的第4层(传输层)下位的第3层(网络层)的数据被‘泄露’或‘篡改’的功能(例如,参照R.Atkinson,1995年8月,‘Security Architecture for the InternetProtocol’,RFC1825)。与此相对,SSL是第5层的对话层的加密技术,是对目前因特网上广泛使用的WWW(World Wide Web:万维网)或FTP(File Transfer Protocol:文件传输协议)等的数据进行加密后安全地收发保密性信息或企业秘密信息等的技术。
表1是将Ipsec与SSL的功能进行比较再记载下来的表。只要看一看这个表,就知道Ipsec和SSL具有彼此相反的优点和缺点。
例如,在客户和客户之间的通信中,SSL的指令体系和通信内容是主从关系、即变成客户/服务器的关系,因而不经过服务器,客户和客户之间就不能通信。即,当利用SSL将秘密数据加密后从终端A向终端B发送时,中间必须经过服务器。与此相对,在Ipsec中,因没有这样的制约,故可以直接通信。
表1:Ipsec和SSL的功能比较
|
IPsec |
SSL |
(1)客户—客户间的通信 |
○ |
可直接通信 |
× |
不可直接通信。经过特别的服务器可进行通信 |
(2)PPP移动通信环境 |
△ |
可利用×AUTH。但有安全上的问题 |
○ |
可通信 |
(3)ADSL环境 |
|
|
|
|
(4)NAT、IP伪装环境 |
△ |
可通过和NAT-T一并使用来实现 |
○ |
可通信 |
(5)至TCP/IP协议栈的DOS攻击 |
○ |
可处理DOS攻击 |
○ |
不能处理 |
(6)恶劣的通信环境(物理噪声大通信错误多发的环境) |
× |
不够充分处理,引起吞吐量降低 |
○ |
可处理 |
(7)不同LAN间的通信 |
△ |
当子网地址是同一地址时,不能通信 |
○ |
可通信 |
(8)不同的网络环境 |
△ |
管理很困难 |
○ |
管理可以简单化 |
(9)经由多个载体的连接 |
× |
不能通信 |
○ |
可通信 |
(10)所有UDP端口的安全通信 |
○ |
可安全通信 |
× |
不能通信 |
(11)所有TCP端口的安全通信 |
○ |
可安全通信 |
× |
除特定的TCP端口之外不能通信 |
(12)应用的限制 |
○ |
没有影响 |
× |
必须改变插口程序 |
(13)存取单位 |
|
IP单位 |
|
资源单位(URL单位、文件夹单位) |
(14)MTU(最大段大小) |
△ |
必须调整 |
○ |
通信时可不考虑MTU |
(15)移动通信环境下使用了VoIP的因特网电话 |
△ |
可利用×AUTH。但有安全上的问题 |
× |
不能使用 |
(16)ADSL环境下使用了VoIP的因特网电话 |
△ |
可利用×AUTH。但有安全上的问题 |
× |
不能使用 |
(17)不同的LAN间使用了VoIP的因特网电话 |
△ |
可通过使用NAT-T、Ipsec-DHCP实现 |
× |
不能使用 |
(18)多载体LAN之间使用了VoIP的因特网电话 |
× |
不能通信 |
× |
不能使用 |
此外,在PPP(点对点协议)移动通信环境或ADSL(AsymmetricDigit Subscriber Line:不对称数字用户线)环境下,在开始数据的加密通信之前,Ipsec在使用了加密方式的确定、密钥的交换、以及相互认证所使用的协议,即IKE(Internet Key Exchange:因特网密钥交换)协议所进行的通信中,进行连接目的地对方的认证。因此,在PPP移动通信环境(远程用户)或ADSL环境下,因IP地址不能固定,故在Ipsec的网关之间不能使用经常使用的IKE的主(Main)模式、即认证时使用通信对方的IP地址信息的模式。再有,作为解决这一问题的对策,通过使用挑战(Aggressive)模式,也可以对ID信息不使用IP地址,可以对ID信息使用例如用户信息,并且,通过在已知的公用密钥中使用用户的口令来指定对方。但是,在挑战模式中,由于在和密钥交换信息相同的消息中发送连接目的地对方的ID,故ID不加密而原封不动地发送明码。此外,通过利用XAUTH(Extended Authentication within IKE:IKE中的扩展证明)可以解决认证的问题,但是,因在防火墙的设定中远程客户的访问不知道IP地址,故必须使IKE、IPsec全部置成允许,导致存在安全上的问题。SSL即使在这样的环境下也可以进行通信。
此外,IPsec存在不能与NAT(Network Address Translation:网络地址转换)或IP伪装对应的问题。为了与此对应,必须和例如列入到UDP的有效载荷的其他功能一并使用。NAT是连接在因特网上的企业等在多台计算机上共享1个全球IP地址的技术,是使只在组织内通用的IP地址(局部地址)和因特网上的地址(全球地址)相互交换的技术。不能与NAT对应是因为IP标题在AH(AuthenticationHeader:证明标题)的认证范围内,故该局部地址和全球地址不能相互转换,不能进行子网络的不同局部地址之间的通信。
此外,IP伪装是LAN内的具有私密地址的多个客户能够访问因特网的结构,若利用它,因从外部(因特网)只能看到IP伪装动作的终端,故从安全性来看可以说正是所希望的。IPsec不能与IP伪装对应的原因是IPsec的ESP(Encapsulating Security Payload:加密有效载荷)标题紧接在IP标题之后的缘故。安装了IP伪装的通常的路由器紧接在IP标题之后判断出有TCP/UDP的端口号码。因此,当经过安装了IP伪装的路由器时,因该端口号码改变了,故IPsec判断为篡改,从而存在不能进行主机的认证的问题。但是,通过利用支持用来列入到UDP的有效载荷上的NAT-T(NAT-Traversal)的产品,可以回避该问题。但是,当NAT-T的草案版本不同时,即使NAT-T对应产品彼此之间也不能连接。SSL即使在这样的环境下也可以通信。
与此相对,对于称之为黑客或坏客的网络非法侵入者对TCP/IP进行各种各样的攻击、即所谓DoS攻击(Denial of Service:使其停止服务的攻击),SSL毫无能力。当进行对TCP/IP协议栈的DoS攻击、例如进行TCP切断攻击时,切断TCP对话,从而停止SSL的服务。IPsec因安装在第3层(IP层),故IP层具有安全功能,所以,可以防止对TCP/IP层(第4层、第3层)的DoS攻击。但是,因为SSL是安装在TCP/IP层(第4层、第3层)的上一层(第5层)的加密协议,所以,不能防止对TCP/IP层(第4层、第3层)的DoS攻击。
进而,对于像物理噪声大、通信错误多发那样的恶劣环境下的通信,SSL比IPsec有效。即,IPsec在检测错误时,重发动作由上位的TCP执行。虽然TCP将重发的数据送给IPsec,但IPsec对该重发的数据不能识别,而进行了再加密。SSL因在TCP中进行错误恢复处理,故不会对同一数据进行再加密。
此外,在IPsec中,不能进行不同的LAN之间的通信。即,LAN内的子网络地址的分配管理由LAN内的DHCP(Dynamic HostConfiguration Protocol:动态主机配置协议)服务器来管理,所以,在LAN内,不会分配同一子网络地址,但是,当在不同的LAN间进行通信时,因位于各自的LAN内的DHCP服务器单独分配子网络地址,故存在分配同一地址的可能性。这样,当分配了同一地址时,IPsec不能通信。但是,若另外设立IPsec-DHCP服务器,使其不是同一地址进行管理,则可以进行通信。SSL如上所述,因位于OSI参考模型的第5层(对话层),故下位层的TCP能进行错误恢复处理,即使在上述那样的恶劣环境下也可以进行通信。
此外,对于不同网络环境下的通信,IPsec必须管理所有经由的节点,并改变设定以便IPsec能够通过,所以管理任务重。SSL即使在这样的环境下也可以不考虑经由的节点的环境而进行通信。
进而,IPsec存在不能经由多个载体进行连接的问题。即,IPsec必须管理所有经由的节点,并改变设定以便IPsec能够通过,所以,不能进行多个载体的连接。例如,当在东京和大阪之间与各个载体签订合同时,因不能连接,故有时需要另外建设昂贵的专用线。SSL即使在这样的环境下也可以进行通信。
此外,SSL因不支持UDP的通信,故对UDP不能进行加密通信。因TCP也只支持特定的端口,故不能对TCP所有的端口进行加密通信。与此相反,IPsec无论对UDP还是TCP,都能进行加密通信。
进而,SSL存在不具备针对应用的互换性的问题。应用(application)在进行因特网通信时将插口(第5层)作为程序接口使用。因此,在使用SSL(第5层)时,应用必须将该插口接口改变成SSL接口。所以,SSL没有应用的互换性。与此相反,IPsec因位于插口(第5层)之下,故可以直接将插口(第5层)作为程序接口使用,所以,具有应用的互换性。
此外,IPsec可以以IP地址为单位进行控制,与此相对,SSL以资源为单位(URL单位、文件夹单位)进行控制。
进而,IPsec存在最大段尺寸较小的问题。即,因在IPsec中使用ESP标题和ESP尾部,有效载荷小,所以,会产生断片(数据包分割),吞吐量降低。此外,在TCP数据包中,因禁止断片,故有必要在终端和终端之间把握IPsec的通过环境,并设定不会产生断片的最大段尺寸。与此相对,SSL不必把握通过的环境,所以,不必设定最大段尺寸。
上面,根据表1对IPsec和SSL的功能进行了比较,但后述的作为本发明的协议的TCP2(登录商标正在申请)是包括IPsec和SSL的所有优点、进而还具有很多优越性的划时代的加密通信协议。
发明内容
本发明是鉴于上述问题而提出的,其目的在于提供一种通信系统、特别是一种协议栈及与此相关联的通信装置、通信方法及实现它们的通信程序,不必对应用、程序分别安装用来防止非法侵入计算机终端的‘加密功能’,因此,不必重新生成应用、程序本身,而且,可以利用现有的明码和不能与上述加密功能相对应的通信对方进行通信,进而,即使在不能使用IPsec的环境下(或不想使用的情况)也能够获得加密或认证的效果。
为了解决上述问题并达到本发明的目的,本发明的通信系统是对与位于传输层的TCP或UDP相对应的协议进行处理的通信系统,包括:用来在判断通信对方是否是具有正当权限的通信对方之后与通信对方进行连接的连接序列装置;约定与通信线路的两端对应的加密解密逻辑的约定装置;按照上述约定装置约定的加密逻辑对作为收发信息单位的数据包中的至少与上述TCP或UDP相应的协议的有效载荷进行加密后再发送的协议加密装置;按照上述约定装置约定的解密逻辑对接收的该加密后的协议进行解密的协议解密装置,对传输层的协议使用加密和解密逻辑并进行加密通信。
因此,有可能进行过去不存在的TCP或UDP级的独自加密,IP之上的层的数据泄露或篡改的可能性大大减小。即,解除了作为IP级的加密之IPsec后的数据,也进行TCP或UDP级的独自加密,在双重加密的意义上增加了加密的强度,同时,可以有效地防止旨在对刚好在IP被正当解密之后的数据进行截听等接口的数据泄漏。
此外,在IP没有被加密的情况下,通过只对TCP或UDP进行加密,可以独自强化安全性。
进而,有时,从性能等观点出发,将UDP的广播功能和IPsec分开,使其单独起作用,但是,这时,本发明的TCP或UDP级的加密仍然有效。
再有,加密解密逻辑的约定最好在与通信线路的两端对应的加密解密逻辑之前进行。这里,所谓通信线路当然包含无线和有线。当然也包含经过卫星进行通信的方法。此外,本发明的加密解密逻辑的约定还包括将加密解密逻辑存储在软盘、CD(Compact Disk:加密盘)、USB存储器或IC芯片等可移动的媒体中,通过在发送端和接收端交换这些媒体来进行加密解密逻辑的约定。
此外,在本发明中,可以在更下位的层(传输层)进行对上位层、典型地是HTTP等应用层的‘进入’或‘攻击’等非法通信方式的识别。例如,本发明的通信系统所使用的协议加密装置或协议解密装置和像过去的毁损-保护器(Cracking-protector)那样的功能模块(一般的毁损模型的检测、废弃乃至通过限制装置)的组合,通过比上位层的应用层低的下位层,即传输层的TCP、UDP、进而与其下层的网络层对应的IP、ARP、ICMP、IGMP等中的任何一者来实现。这些协议栈作为单一的协议栈,可以通过‘软件乃至硬件模块’来实现。
因此,可以实现除了上述效果之外,对于防止数据的‘泄露’、‘篡改’、‘伪装’、‘进入’或‘攻击’的功能而言协议栈之间没有重复或间隙、性能价格比较高的通信系统。
此外,本发明的通信系统包括:第1和第2通信装置,具有对加密和解密逻辑进行约定的约定装置、以及不具有加密解密逻辑约定装置的第3通信装置,具有约定装置的通信装置(第1通信装置和第2通信装置)除了TCP或UDP的加密、解密协议处理装置之外,还具有处理没有加密和解密的通常的TCP或UDP的通常协议处理装置,当在这些具有加密解密逻辑约定装置的通信装置之间进行通信时,使用加密、解密协议处理装置进行通信,当具有约定装置的通信装置(第1和第2通信装置)和没有加密解密逻辑约定装置的第3通信装置通信时,根据加密解密约定装置决定对该通信不进行加密和解密,并可以利用通常的TCP或UDP协议处理装置进行通信。
因此,即使在不能与本发明的加密通信对应的通信装置之间,也可以确保像过去那样的通信。
进而,在本发明的通信系统中,当从具有约定加密解密逻辑的约定装置的通信装置(第1和第2通信装置)对不具有约定加密解密逻辑的约定装置的通信装置(第3通信装置)进行通信的情况下,第1和第2通信装置也可以利用加密解密逻辑约定装置决定不进行与第3通信装置的通信,也可以不进行与该第3通信装置的通信。
因此,在对通信对方的限制和各种安全性级别方面,可以采用彻底的安全对策。
本发明进而还包括逻辑变更装置,将由加密解密逻辑约定装置决定的可作为候选对象的加密解密逻辑存储在存储器乃至安装在电路中,并定期改变该存储的内容。
由此,可以不必重新生成或替换协议栈本身,而与新的加密算法对应,或者通过改变加密密钥来减小解读风险。
进而,在本发明中,加密解密逻辑约定装置可以不对加密解密逻辑进行加密而约定处理明码。
由此,即使通信对方、例如客户侧的协议栈等与本发明的加密等不对应时,也可以像过去那样进行通信。
再有,即使在这样的情况下,也可以发挥防止‘伪装’、‘进入’或‘攻击’的所谓毁损-保护器(CP)功能。
本发明提供一种通过对与TCP或UDP相适应的协议进行处理的通信系统,包括:用来在判断通信对方是否是具有正当权限的通信对方之后与通信对方进行连接的连接序列装置;约定与通信线路的两端对应的完全性认证逻辑的完全性认证约定装置;按照上述完全性认证约定装置约定的完全性认证逻辑对作为收发信息单位的数据包中的至少与上述TCP或UDP相适应的协议的有效载荷附加完全性认证信息后再输出或发送的协议完全性认证信息附加装置;按照上述完全性认证约定装置约定的完全性认证逻辑对接收的该附加了完全性认证信息的协议进行完全性认证的完全性认证装置。
此外,在本发明中,具有用来在使用位于传输层的TCP或UDP来进行完全性认证约定的完全性认证约定装置的第1和第2通信装置和没有完全性认证约定装置的第3通信装置分别与网络连接,第1和第2通信装置包括附加完全性认证信息再对TCP或UDP进行处理的完全性认证协议处理装置和处理没有附加完全性认证信息的通常的TCP或UDP之通常协议处理装置,第3通信装置只具有没有完全性认证的通常协议处理装置,当在这些具有完全性认证约定装置的通信装置之间(第1通信装置和第2通信装置)进行通信时,使用由该完全性认证约定装置附加了完全性认证信息后的完全性认证协议装置进行通信,同时,当具有完全性认证约定装置的通信装置、例如第1通信装置和没有完全性认证约定装置的通信装置(第3通信装置)进行通信时,决定不附加上述完全性认证信息,利用上述通常的协议处理装置进行通信。
此外,这时,当具有完全性认证约定装置的通信装置(第1和第2通信装置)和没有完全性认证约定装置的通信装置(第3通信装置)通信时,决定不利用完全性认证约定装置进行通信,也可以不进行通信。
此外,本发明进而还可以包括完全性认证逻辑变更装置,将由完全性认证约定装置决定的可作为候选对象的完全性认证逻辑存储在存储器乃至装在电路中,并定期改变该存储的完全性认证逻辑。
进而,在本发明中,完全性认证约定装置也可以决定不进行完全性认证信息的附加和完全性认证。
再有,即使在这样的情况下,也可以发挥防止‘伪装’、‘进入’或‘攻击’的所谓毁损-保护器(CP)功能。
此外,本发明提供一种通过对与传输层的TCP或UDP相应的协议加密来进行通信的通信方法,该通信方法包括:对在通信线路的两端对应的加密和解密逻辑预先进行约定的约定步骤;按照约定的加密逻辑对作为收发信息单位的数据包中的至少与TCP或UDP相应的协议进行加密后再发送的协议加密步骤;按照约定的解密逻辑对接收的加密后的协议进行解密的协议解密步骤,对与传输层的TCP或UDP相适应的协议进行加密处理,再进行通信。
此外,本发明提供这样一种通信方法,该方法是第1和第2通信装置和第3通信装置分别与网络连接时的通信方法,其中,第1和第2通信装置具有通过对与传输层的TCP或UDP相适应的协议加密来进行通信的通信方法中使用的加密解密逻辑进行约定的约定装置,而第3通信装置不具有对加密解密逻辑进行约定的约定装置。即,当在具有对上述加密解密逻辑进行约定的约定装置的通信装置(第1通信装置和第2通信装置)之间进行通信时,按照由上述约定装置约定的加密逻辑对与TCP或UDP相适应的协议的有效载荷进行加密后再进行通信,同时,当具有加密解密逻辑约定装置的通信装置(第1和第2通信装置)和不具有加密解密逻辑约定装置的第3通信装置通信时,决定不按照约定装置约定的加密逻辑对TCP或UDP协议的有效载荷进行加密后再发送,而利用没有加密逻辑的通常的TCP或UDP协议进行通信。
此外,在第1或第2通信装置和第3通信装置的通信中,第1或第2通信装置也可以因第3通信装置不具备加密解密逻辑约定装置而决定不进行通信,不进行和上述第3通信装置的通信。
此外,可以将在上述加密解密逻辑约定中约定的可作为候选对象的加密解密逻辑存储在存储器乃至电路中,并定期改变该存储的加密解密逻辑的内容。
进而,在该约定步骤中,可以不对加密解密逻辑进行加密而约定处理明码。此外,本发明的通信方法可以进而包含在约定步骤之前对通信对方进行认证的步骤。
此外,本发明提供一种通过对与位于传输层的TCP或UDP相适应的协议加密来进行通信的通信方法,包括:在使用TCP或UDP协议判断通信对方是否是具有正当权限的通信对方之后与通信对方进行连接的连接步骤;事前约定与通信线路的两端对应的完全性认证逻辑的完全性认证约定步骤;按照完全性认证约定步骤中约定的完全性认证逻辑对作为收发信息单位的数据包中的至少与TCP或UDP的有效载荷相适应的协议附加完全性认证信息后再发送的协议完全性认证信息附加步骤;按照完全性认证约定步骤约定的完全性认证逻辑对接收的附加了该完全性认证信息的协议进行完全性认证的协议完全性认证步骤,对位于传输层的上述TCP或UDP协议附加完全性认证信息后,再进行通信。
进而,本发明提供这样一种通信方法,即:在具有用于在使用传输层的TCP或UDP进行完全性认证的完全性认证约定装置的通信装置(第1和第2通信装置)之间、或在具有上述完全性认证约定装置的通信装置和没有完全性认证约定装置的第3通信装置之间通过网络进行通信。该通信方法的特征是:当安装了完全性认证协议的通信装置(例如第1通信装置)和同样安装了完全性认证协议的通信装置(例如第2通信装置)通信时,根据完全性认证约定装置进行对处理附加了完全性认证信息的TCP或UDP之完全性认证协议处理后再发送,当安装了完全性认证协议的第1或第2通信装置和没有安装上述完全性认证协议的第3通信装置通信时,完全性认证约定装置决定不附加完全性认证信息,而在进行处理通常的TCP或UDP的通常协议处理之后再进行通信。
再有,第1或第2通信装置在和不具备完全性认证约定装置的第3通信装置通信时,第1或第2通信装置可以因上述第3通信装置没有完全性认证约定装置而不进行通信。
此外,在本发明中,可以进而包括:将在完全性认证约定步骤中用来附加可作为约定的候选对象的完全性认证信息之完全性认证逻辑存储在存储器乃至安装在电路中的步骤;以及定期改变该存储或者安装的内容之完全性认证逻辑变更步骤。此外,还包括:在完全性认证约定之前认证通信对方的步骤。
附图说明
图1是表示本发明的通信系统使用的TCP2协议栈的图。
图2是使用了本发明的TCP2的通信系统之第1实施形态(TCPsec的EC应用)的整个系统的构成图。
图3是使用了本发明的TCP2的通信系统之第2实施形态(UDPsec的广播应用)的整个系统的构成图。
图4是表示本发明的TCP2中的3个协议栈的数据包结构及其加密和认证范围的图。(a)、(b)、(c)分别是表示TCPsec/IPsec、TCPsec/IP、UDPsec/IP的数据包结构和各加密范围、完全性认证的适用范围的图。
图5是表示作为本发明的TCP2的实施形态之TCP/TCPsec的被动开放处理的流程图。
图6是表示作为本发明的TCP2的实施形态之TCP/TCPsec的主动开放处理的流程图。
图7是表示标准TCP和本发明的TCPsec的主机A(主动开放)和主机B(被动开放)之间的通信交换的序列图。
图8是表示图5的TCP被动开放处理S5的详细情况的流程图。
图9是表示图5的TCPsec被动开放处理S6的详细情况的流程图。
图10是表示图6的TCP主动开放处理S12的详细情况的流程图。
图11是表示图6的TCPsec主动开放处理S13的详细情况的流程图。
图12是表示图9的TCPsec收发处理S37和图11的TCPsec收发处理S76的详细情况的流程图。
图13是表示图9的TCPsec被动连接处理S48的详细情况的流程图。
图14是表示图11的TCPsec主动连接处理S88的详细情况的流程图。
图15是表示作为本发明的TCP的实施形态之UDP/UDPsec开放处理的流程图。
图16是使用了本发明的TCP2的UDP/UDPsec单播(unicast)通信的序列图。
图17是使用了本发明的TCP2的UDP/UDPsec广播通信的序列图。
图18是表示图15的UDP开放处理S124的详细情况的流程图。
图19是表示图15的UDPsec开放处理S125的详细情况的流程图。
图20是表示图19的UDPsec广播接收开始处理S141的详细情况的流程图。
图21是表示图19的UDPsec单播发送开始处理S146的详细情况的流程图。
图22是表示图19的UDPsec数据收发处理S144的详细情况的流程图。
图23是表示图19的UDPsec单播接收开始处理S137的详细情况的流程图。
图24是用来说明将本发明的TCP2和使用了现有的IPsec或SSL的情形进行比较所得出的优点的图。
图25是表示使用了现有的IPsec的标准通信协议栈的图。
图26是表示使用了现有的SSL的标准通信协议栈的图。
具体实施方式
下面,参照图1~图24说明本发明实施形态的例子。
图1是表示本发明的加密通信系统的一实施形态中使用的协议栈的图。
本发明使用的协议栈如图1所示,在相当于OSI7层的物理层(第1层)和数据链路层(第2层)的层上配置NIC(网络接口卡)的驱动器11。该驱动器如上所述是用来将计算机等硬件与网络相连接的接口卡的驱动器,其内容是数据收发控制软件。例如,用来与以太网连接的LAN板或LAN卡与此相当。
第3层的网络层存在一部分延伸到传输层(第4层)的IP仿真器(emulator)3。在上述延伸的部分没有安装传输功能。对话层只提供网络层的功能。该IP仿真器3是起用来根据用途切换进行加密通信的协议,即‘IPsec on CP’13b和‘IP on CP’13a并进行使用的作用。这里,‘on CP’表示毁损-保护器(CP:cracking-protector)对‘进入’‘攻击’进行监视、废弃、切断乃至限制通过的对象,或表示通过设定可以得到的状态。
此外,网络层上配置了ARP on CP(Address Resolution Protocolon Cracking Protector:毁损-保护器中的地址解析协议)。该ARPon CP是当根据具备针对坏客(Cracker)的保护对策的IP地址求出作为以太网的物理地址的MAC(Media Access Control:媒体存取控制)地址时所使用的协议。MAC是被称作媒体存取控制的、在LAN等中使用的传送控制技术,作为一种规定数据的收发单位,即帧的收发方法或帧的形式、纠错等的技术加以利用。
这里,IP仿真器13是用来使本发明的各种安全功能与现有的IP周边的栈相匹配的软件或固件。即,是传送IP的错误信息或控制信息的协议,即ICMP(Internet Control Management Protocol:因特网控制信息协议)14a,是用来控制为了向多个主机有效地发送或使其接收同一数据而构成的主机群的协议,即IGMP(Internet GroupManagement Protocol:因特网群管理协议)14b,是用来与TCP15、UDP16、进而与插口(SOCKET)接口17匹配的软件、固件乃至硬件(电子电路、电子元件)。利用该IP仿真器13,可以在IPsec的加密、解密和必要的认证信息附加、认证等的前后进行适应处理。
在该IP仿真器13上层的传输层(第4层)上配置了TCP仿真器15和UDP仿真器16。TCP仿真器15起用来根据用途切换作为进行加密通信的协议的‘TCPsec on CP’15b和作为通常的通信协议的‘TCPon CP’15a并进行使用的作用。同样,UDP仿真器16起用来根据用途切换进行加密通信的协议,即‘UDPsec on CP’16b和作为通常的通信协议的‘UDP on CP’16a并进行使用的作用。
本发明的最具特征的点在于:在该传输层(第4层)上安装了TCPsec15b和UDPsec16b的加密通信协议。关于TCPsec15b和UDPsec16b将在后面叙述。
在该传输层(第4层)的上层的对话层(第5层)上设置了进行TCP和UDP等协议进行数据交换的插口(socket)接17。该插口如上所述,表示计算机具有的将与网络内的住址相当的IP地址和作为IP地址的子地址的端口号组合起来而得到的网络地址,实际上,由汇总进行一连串标题的追加乃至删除的单个软件程序模块(执行程序等)或单个硬件模块(电子电路、电子元件等)构成。
该插口接口17进而提供来自上位的应用(图2所示的EC应用和图3所示的广播应用等)的统一的存取方式,以便在变量的种类、类型等方面保持和过去一样的接口。
TCP仿真器15在传输层中具有防止数据泄漏和篡改的功能,即具有将数据包分配给具有加密、完全性认证和对方认证等功能的TCPsec15b和不具备这样的加密、完全性认证和对方认证等功能的通常的协议TCP15a中任何一方的功能。此外,因TCPsec15b和TCP15a都具有毁损-保护器(CP),故选择其中任何一方,都可以实现对因毁损引起的‘进入’‘攻击’的防御功能。TCP仿真器15起到与上位层的插口接口的作用。
此外,如上所述,TCP具有错误补偿功能,UDP没有错误补偿功能,但是,UPD的传送速度较快,且具有广播功能。UDP仿真器16和TCP仿真器15一样,具有防止数据泄漏和篡改的功能,即具有将数据包分配给具有加密、完全性认证和对方认证等功能的TCPsec16b和不具备这样的加密、完全性认证和对方认证等功能的通常的协议TCP16a中任何一方的功能。
如图1所示,由插17、TCP仿真器15、UDP仿真器16、‘TCPsecon CP’15b、‘UDPsec on CP’16b、‘TCPsec on CP’15a、‘UDPsecon CP’16a、‘ICMP on CP’14a、‘IGMP on CP’14b、IP仿真器13、‘IP on CP’13a和‘ARP on CP’12构成的协议栈是本发明的用来进行加密处理的协议栈,下面,将该协议栈统称为TCP2(正在申请登录商标)。再有,TCP2中,可以不必包含‘IPsec on CP’13b,但也可以包含‘IPsec on CP’13b。
本发明的TCP2通过对TCP、UDP、IP、IPsec、ICMP、IGMP、ARP的标准协议安装CP(毁损-保护器),可以防止通信对各协议栈的攻击和来自应用、程序的攻击(特洛伊木马、程序的篡改、正式用户的非法使用)。此外,在TCP2中安装TCP仿真器15,该TCP仿真器15因具有互换性,故从位于对话层的插口(Socket)17和位于网络层的IP仿真器13看去,可以将其外面看成是和标准TCP同样的东西。实际上,作为TCP2的功能,切换执行TCP和TCPsec。TCPsec是本发明的传输层的加密和认证功能。
此外,同样,在TCP2中安装了UDP仿真器16,该UDP仿真器16因具有互换性,故从位于对话层的插口(Socket)17和位于网络层的IP仿真器13看去,可以将其外面看成是和标准UDP同样的东西。实际上,作为TCP2的功能,切换执行UDP和UDPsec。UDPsec是本发明的传输层的加密和认证功能。
其次,说明作为TCP2中特别重要的功能,即防止‘数据泄露’功能的TCPsec15b和UDPsec16b。
作为用于TCPsec15b和UDPsec16b的加密解密方法(算法、逻辑),使用周知的秘密密钥(公用密钥)加密算法。例如,使用1960年代IBM公司开发的作为秘密密钥加密算法的DES(Data EncryptionStandard:数据加密标准)或作为其改进版的3DES。此外,作为其他的加密算法,也使用1992年瑞士工科大学的James L.Massey和Xuejia Lai发表的IDEA(International Data EncryptionAlgorithm:国际数据加密算法)。该加密算法是将数据区分成64比特的块再进行加密的方法,加密密钥的长度是128比特。该设计对于能有效地解密秘密密钥密码的线性解密法或差分解密法具有很强的保密性能。
此外,作为本发明使用的TCPsec15b和UDPsec16b的加密方式,还可以利用称之为FEAL(Fastdata Encipherment Algorithm:快速数据加密算法)、MISTY、AES(Advanced Encryption Standard:高级加密标准)的加密方式,除此之外,也可以利用独自完成的秘密的加密解密算法。这里,FEAL是日本电信电话株式会社(当时)开发的加密方式,是加密和解密使用同一密钥的秘密密钥型加密方式。该FEAL与DES相比,具有能够快速进行加密和解密的优点。
其次,作为同样使用在本发明中的加密方式的MISTY是三菱电机株式会社开发的秘密密钥型的加密方式,和IDEA一样,将数据区分成64比特的块再进行加密。密钥的长度是128比特。在加密和解密可以使用同一程序这一点上和DES等相同。该方式也设计成对于能有效地解密秘密密钥密码的线性解密法或差分解密法具有很强的保密性能。
此外,AES是由美国商务部标准技术局选定的美国政府下一代标准加密方式,是作为替换目前标准加密方式DES的下一代加密标准开发出来的加密方式。从在全世界范围内募集的几个加密方式中,选用了2000年10月由比利时的密码开发者Joan Daemen和VincentRijmen开发的称之为Rijndael的方式。
这样,作为本发明的TCPsec15b和UDPsec16b的加密方式,除了可以采用已知的各种秘密密钥的加密算法之外,也可以利用用户独自开发的秘密密钥(公用密钥)加密方式。
进而,作为用来防止所谓‘伪装’和‘篡改数据’等‘对方认证’和‘完全性认证’的方法,可以使用利用了公用密钥或事前秘密共享(Pre-shared)的算法,例如,MD5(Message Digest:信息分类5)、SHA1(Secure Hash Algorithm 1:安全散列算法1)等认证算法。此外,也可以不使用这样的公认的认证算法,而采用单独的利用了单向函数的算法。
该MD5是认证或数字签名时使用的一种散列函数(单向汇总函数),根据原文产生固定长度的散列值,在通信线路的两端对它们进行比较,由此,可以检测出在通信途中原文是否被篡改。该散列函数值取像模拟随机数那样的值,不能由此再生出原文。也很难完成生成相同散列值的其他信息。
SHA1也是认证或数字签名时使用的一种散列函数,根据2的64次方比特以下的原文生成160比特的散列值,在通信线路的两端对它们进行比较,由此,可以检测出在通信途中原文是否被篡改。作为现有的因特网的加密通信之代表的IPsec也采用了该认证算法。
再有,对于这些认证算法,可以设计成能够利用DH(Diffie-Hellman)公用密钥分配法或和IPsec同样的IKE(因特网密钥交换)协议(UDP的第500号)等来进行安全的密钥交换,而且,可以利用协议驱动器程序(TCPsec15b、UDPsec16b等)进行调度,以便能够定期地改变加密/完全性认证算法(逻辑)本身或用于它的密钥的集合/定义域。
其次,根据图2说明使用了本发明第1实施形态的加密方式TCP2(特别是TCPsec)的加密通信。图2是特别适用于应用在EC(Electronic Commerce:电子商务)应用中的通信的例子。
图2是表示连接在网络20上的EC应用的客户终端3a、3b、3c经所谓路由器或像网关那样的的网络控制机器2与连接在另一网络30上的主计算机(起所谓服务器的作用的通信装置)相连接时的整体构成的图。
在与网络20连接的客户终端3a、客户终端3b和客户终端3c中,客户终端3b和3c没有安装本发明的TCP2。即,客户终端3b和3c也没有安装作为本发明的加密方式的协议TCPsec和UDPsec。支持TCP2的客户终端只有3a。而且,对于客户终端3b,利用未图示的网络政策设定进行通常协议处理的连接,即,对于TCP级别而言,进行没有防止‘数据泄漏’的加密功能、防止‘数据篡改’的完全性认证功能和防止‘伪装’的对方认证功能的连接。
对于任何客户终端3a~3c,在插口(Socket)的上层都安装了EC用的应用软件。此外,与网络30连接的主计算机1安装有TCP2,在该插口17的上层安装了EC应用软件18。在图2中,省略UDPsec等不使用的协议,但在该主计算机1的协议栈的结构中,安装了所有构成图1的协议栈的结构,即TCP2的软件。
即,首先,横跨第1层(物理层)和第2层(数据链路层)配置NIC驱动器,在其上层(第3层)的网络层上配置了ARP(地址解析协议)12和IP仿真器13。接着,在第4层的传输层上配置TCP仿真器15和UDP16。图2没有UDP仿真器(包含UDPsec和UDP)的记载是因为作为对第1实施形态的EC应用的加密通信使用认为错误补偿比速度更重要的TCPsec。这并不意味主计算机没有安装UDPsec。如上所述,安装TCP2就意味着安装了UDPsec和TCPsec。
介于连接在网络20的客户终端3a、3b、3c和连接在网络30的主计算机1之间的网络控制设备2的协议栈,由作为栈被堆积了NIC驱动器、ARP、IP的固件(带非易失性存储器的电子电路)构成。
此外,客户终端3a是支持本发明的TCP2的终端,但这里,作为具有只与TCPsec对应的通信装置的终端,示出了协议栈。客户终端3b和3c不支持本发明的TCP2。
对客户终端3a,通过网络或像CD-ROM那样的记录媒体安装了事前分配好的协议驱动器软件。此外,对客户终端3b和客户终端3c也一样,事前分配并安装协议驱动器软件。
特别地,对客户终端3c安装了作为现有的加密方式的IPsec,但是,因网络控制设备(路由器)2进行参照了TCP端口号码的IP伪装,故不能有效地使用IPsec。进而,利用未图示的网络政策设定废除了对客户终端3c的连接请求。再有,对于确认(接收数据包的分析等)是否安装了这样的网络政策的设定乃至协议本身,因为是行业内普遍知道的事情,所以在本说明书中省略其说明。
当主计算机1和客户终端3a通信时,利用基于本发明的TCP2、特别是TCPsec的加密解密约定进行通信,当主计算机1和客户终端3b或3c通信时,则不进行基于本发明的TCP2(特别是TCPsec)的加密解密约定,即,利用通常的TCP协议进行通信。当主计算机1和支持IPsec的客户终端3c通信时,当然可以进行IPsec的加密通信。再有,即使主计算机1要和没有安装TCP2的客户终端3b或3c通信,因主计算机1具有的TCP2的作用,也可以使通信停止。
此外,在本实施形态中,主计算机1和客户终端3a通过网络进行了加密和解密逻辑的交换,当然也可以使用FD、CD、或UDB存储器等可移动媒体,预先在通信双方之间交换加密解密约定逻辑。
其次,根据图3说明本发明第2实施形态的使用了TCP2中的UDPsec加密方式的加密通信。图3示出用于与网络20连接的广播应用的客户终端4a、4b、4c和经所谓路由器或像网关那样的网络控制机器2连接到其他的网络30上的主计算机(具有所谓服务器的功能的通信装置)1进行通信的通信系统的整体构成。
图3示出了客户终端4a、4b、4c和主计算机1的协议栈,但支持TCP2的客户终端是4a和4b。即,只有终端4a和4b具备UDPsec。在各客户终端的插口(Socket)上层安装了广播用的应用软件。此外,与网络30连接的主计算机1也安装有TCP2,在其插口17的上层安装了广播应用软件19。图3的主计算机1也和图2的主计算机1同样,安装了构成作为图1的协议栈结构的TCP2的所有软件。
主计算机1保有的协议栈和图2的主计算机1的协议栈大致相同,但是与图2的主计算机1的协议栈不同点在于,具有UDP仿真器16以代替TCP仿真器。这是因为,在广播应用软件中为了处理大量的图像等数据而与数据传送的错误补偿相比更重视速度性能。
介于连接到网络20连接的客户终端4a、4b、4c和连接到网络30的主计算机1之间的网络控制设备2的协议栈由作为栈堆积了NIC驱动器、ARP、IP的固件(带非易失性存储器的电子电路)构成。
此外,客户终端4a是支持本发明的TCP2的终端,但这里,是具有只与UDPsec对应的通信装置的终端,客户终端4b是与本发明的UDPsec和众所周知的IPsec对应的通信装置。该客户终端4c不支持本发明的TCP2。这些客户终端4a~4c和图2的客户终端3a~3c同样,通过网络或像CD-ROM那样的记录媒体安装了事前分配的协议驱动器软件。
此外,特别对于用来防止‘数据泄漏’的加密解密逻辑和用来防止‘数据篡改’的认证信息附加-认证逻辑,有必要在主计算机1和客户终端4a、4b、4c之间进行对应。也可以使用和众所周知的所谓IPsec同样的政策进行约定,在本发明的第2实施形态中,因事前分配协议驱动器软件本身,故可以利用独自的更简洁的协议去约定秘密密钥等,或使用结构更简单的数据包。此外,也可以不编入众所周知的加密解密和认证算法,而将独自完成的加密解密和认证算法(逻辑)本身作为协议驱动器的软件模块等编入。
再有,客户终端4c虽然没有安装TCP2,但因安装了因特网使用的众所周知的IPsec,故可以由此进行某种程度的保密通信。但是,客户终端4a和4b因为作为对象的广播应用的性能乃至安全政策方面的原因,不安装IPsec,而安装使用作为本发明的TCP2的构成要素的UDPsec。不使用IPsec而使用UDPsec的理由是因为IPsec本身较脆弱,例如由于用IPsec对UDP端口号码部分(属于IP有效载荷)进行加密而使性能下降等。
此外,通过将判断通信对方是否正确的对方认证协议嵌入本发明的TCP2的TCP或UDP协议栈、即TCPsec或UDPsec中,从而可以实现通信对方认证功能,而不必在通信双方之间考虑上位应用。这时,可以在不增加成本的范围内增加实质通信的数据包的数目或数据包的长度。
此外,特别地当实施在网络内向不特定的多个对象发送数据的广播功能时,在使用作为本发明的加密方式的UDPsec的情况下,接收广播的客户终端3a、3b开始进行商议(约定),并得到通信对方认证或通信用秘密密钥。接着,客户终端3a、3b在进行通信对方的认证并取得通信用秘密密钥之前,不能解密由主计算机1的UDPsec配送的数据。
其次,根据图4说明使用本发明的第1和第2实施形态的通信进行收发的数据包的结构及其加密范围和完全性认证的适用范围。
图4(a)示出TCPsec/IPsec的数据包结构和各加密范围及完全性认证的适用范围,图4(b)(c)分别示出TCPsec/IP、UDPsec/IP的数据包结构和各加密范围及完全性认证的适用范围。
如图4(a)所示,TCPsec/IPsec的数据包结构是:紧接IP标题41之后设置IPsec的ESP标题42,接着设置TCP标题43和TCPsec的附加信息44,接下来是应用数据45,而且,在应用数据45之后配置支持由块密码产生的数据间隔及间隔长度、下一个标题号码等加密数据的信息,即TCPsec附加尾部46,此后配置TCPsec的附加认证数据47。接着,在其后配置用于IP的ESP附加尾部48和ESP认证数据49。
其中由序号41、42、48、49表示的部分是IPsec用的信息,序号43、44、46、47是起本发明的TCP2的核心作用的与TCPsec关联的信息。再有,这里,虽然TCPsec也是IPsec为基准的配置,但是由于所采用的加密或认证的算法不同,故省略TCPsec的附加信息44和附加尾部46,或者减少TCPsec的附加认证数据47,即便如此,也可以照样使用。
在图4(a)所示的TCP2的数据包结构中,使用TCPsec和IPsec两种方式进行加密。这时,在发送侧,首先加密TCPsec,再附加TCPsec认证数据,其次,加密IPsec,再附加IPsec认证数据。接下来,在接收侧,首先解密IPsec,再利用IPsec认证数据验证接收数据包的数据,其次,先解密TCPsec,再利用TCPsec认证数据验证接收数据包的数据。
这样,在像图4(a)所示那样的具有数据包结构的数据中,使用IPsec和TCPseC两种加密算法进行加密,进而进行完全性认证,所以,与只有IPsec相比,可以建立一种对于外部入侵等特别牢固的加密通信系统。通过TCPsec进行加密的范围包括应用数据45和TCPsec附加尾部46的部分,TCPsec的认证范围除了上述加密范围之外进而还包括TCPsec附加信息44。再有,现有的IPsec加密的加密范围包括从TCP标题43到ESP尾部48的部分,其认证范围是从ESP标题42到ESP尾部48的范围。
图4(b)示出TCPsec/IP的数据包的结构,和图4(a)不同,紧接IP标题41之后,配置TCP标题43和TCPsec附加信息44,接着再配置应用数据45。在应用数据45之后配置支持由块密码产生的数据间隔及间隔长度、下一个标题号码等加密数据的信息,即TCPsec附加尾部46和TCPsec的附加认证数据47。
这里,序号43、44、46、47是TCPsec的特征信息。只是,如上所述,这些信息可以根据所采用的加密/认证算法,或分散在TCPsec/IP的未使用的标题字段部分等中,或通过不能根据各数据包进行逆运算、推测的独立的事前约定(协商)加以省略。此外,通过对未使用相当于IP层上层的TCP和IP的协议字段加以使用来构成图4(b)所示那样的TCPsec/IP数据包,从而可以简单地减小数据包的长度,使其比只着眼于更下层的IP的IPsec数据包的长度短。再有,这里,加密的范围如图所示,包括应用数据45和TCPsec附加尾部46,认证范围除了上述加密范围之外,还包括TCPsec的附加信息44。
图4(c)示出本发明的UDPsec/IP的数据包结构,UDPsec附加信息44a、UDPsec附加尾部46a和UDPsec附加认证数据47a是支持UDPsec的必要信息。其加密范围如图所示,包括应用数据45a和UDPsec附加尾部46a,认证范围除了上述加密范围之外,还包括UDPsec的附加信息44a。
其次,根据图5~图6、图8~图14所示的流程图和图7所示的序列图说明使用了本发明第1实施形态的TCPsec的加密处理系统的动作。
图5是TCP和TCPsec的被动开放(是相当于图7的主机B的等待连接的开放,例如,Web服务器在该状态下开放)处理的流程图,当在上位应用程序中等待连接已开放时,开始该TCP/TCPsec被动开放处理(步骤S1)。再有,若按图7来说,该部分相当于主机B侧的处理。
首先,进行开放的端口号码的解析(步骤S2)。在该解析中,例如,若是Web服务器,则使用TCP端口的第80来确认该定义状态。其次,判断该端口号码80是否允许TCPsec的被动开放(步骤S3)。在步骤S3中,当不允许TCPsec的被动开放时,再判断是否允许TCP的被动开放(步骤S4)。当在判断步骤S4中TCP的被动开放也不允许时,则TCPsec和TCP都不允许,TCP/TCPsec被动开放失败,中断处理(步骤S7)。
当在判断步骤S4中允许TCP的被动开放时,即虽然不允许TCPsec的被动开放,但当允许TCP的被动开放时,则执行后述图8所示的TCP被动开放处理(步骤S5)。
当在判断步骤S3中确认了TCPsec的被动开放的允许状态时,同样执行后述图9所示的TCPsec的被动开放处理(步骤S6)。
当步骤S5或步骤S6中的TCP被动开放处理或TCPsec的被动开放处理结束时,便结束TCP/TCPsec被动开放处理(步骤S7)。这样,在本例中,由TCP从上位的应用开始进行被动开放,但是,若根据TCP2的判断支持TCPsec,则利用TCPsec进行通信,若不支持TCPsec,则利用TCP进行通信。
其次,根据图6说明本发明的TCP及TCPsec的主动开放处理。TCP/TCPsec的主动开放是请求连接的开放,例如,安装了Web浏览器的客户终端在该状态下变成开放。按图7来说,主机A侧的处理与此相当。图6是该主动开放的处理流程图,当在上位应用程序中实施了连接请求开放时,便开始该TCP/TCPsec的主动开放处理(步骤S8)。
首先,进行开放的端口号码的解析(步骤S9)。在该解析中,例如,当安装了Web浏览器的客户终端应用想要使用TCP端口号码3000时,确认TCP端口号码3000的定义状态。
其次,判断对该端口号码3000是否允许TCPsec的主动开放(步骤S10)。在步骤S10中,当判定不允许TCPsec的主动开放时,再判断是否允许TCP的主动开放(步骤S11)。当在判断步骤S11中TCP的主动开放也不允许时,则TCPsec和TCP主动开放都不允许,TCP/TCPsec主动开放失败,中断连接处理(步骤S14)。
当在判断步骤S11中允许TCP的主动开放时,即虽然不允许TCPsec的主动开放但允许TCP的主动开放时,则执行后述图10所示的TCP的主动开放处理(步骤S12)。
当在判断步骤S10中确认了TCPsec的主动开放的允许状态时,执行后述图11所示的TCPsec的主动开放处理(步骤S13)。当步骤S12或步骤S13中的TCP主动开放处理或TCPsec的主动开放处理结束时,便结束TCP/TCPsec主动开放处理(步骤S14)。TCP/TCPsec主动开放的情况和被动开放的情况(图5)一样,由TCP从上位的应用开始进行主动开放,但是,若根据TCP2的判断支持TCPsec,则利用TCPsec进行通信,若不支持TCPsec,则利用TCP进行通信。
其次,根据图7,就主动开放侧的主机A和被动开放侧的主机B之间的序列处理,说明使用了本发明的TCPsec的通信处理。
图7是将使用了本发明的加密处理协议TCPsec时的连接序列、数据通信序列和切断序列与标准TCP对比示出的图。图7(a)示出使用了标准TCP时的通信序列,图7(b)示出使用了本发明的TCPsec的通信序列。
如图7(a)所示,在标准TCP中,主机B的应用进行TCP被动开放,主机A的应用进行TCP的主动开放。
若主机B的应用进行TCP被动开放,则开始TCP被动开放处理(参照图5的步骤S5和图8),如后述的图8的步骤S15所示那样等待接收。若主机A的应用进行TCP主动开放,则开始TCP主动开放处理(参照图6的步骤S12和图10),如后述的图10的步骤S52所示,从主机A向主机B发送连接请求(SYN)。由此,标准TCP的连接序列变成开始状态。
在主机B一侧,当接收到该连接请求(SYN)时,结束该连接请求的接收数据包的解析,并向主机A发送连接响应(SYN·ACK)。这里,ACK是Acknowledgement的缩写,当数据传送正常结束等时发送。当主机A接收到该连接响应(SYN·ACK)时,发送表示连接完了的ACK(肯定响应),并结束标准TCP的连接序列。
当该标准TCP的连接序列结束时,标准TCP的数据通信序列有效,在主机A或主机B的任何一方发送数据后,从接收数据的一方返回ACK(肯定响应),如此重复这一基本模式来进行数据的收发。
在该标准TCP的数据通信序列中,主机A和主机B中的任何一方可以向对方提出切断请求。
图7(a)示出从主动开放侧的主机A向被动开放侧的主机B发送切断请求的情况。当主机A的应用有切断请求时,主机A发送切断请求(FIN)。当主机B接收到该切断请求(FIN)时,如后述的图8的步骤S23所示,发送切断响应(FIN·ACK)。当主机A接收到该切断响应(FIN·ACK)时,发送ACK(肯定响应),并结束标准TCP的切断序列。
其次,根据图7(b)说明本发明的TCPsec的通信序列。在图7(b)中,设主机B的应用为TCPsec被动开放,主机A的应用为TCPsec主动开放。
当设定主机B的应用为TCPsec被动开放时,便开始TCPsec被动开放处理(参照图5的步骤S6和图9),如后述的图9的步骤S31所示那样等待接收。当设定主机A的应用为TCPsec主动开放时,便开始TCPsec主动开放处理(参照图6的步骤S13和图11),如图11的步骤S69所示,从主机A向主机B发送连接请求(SYN)。由此,TCPsec的连接序列处于开始状态。再有,在连接请求(SYN)中,通过选项来加密且附加TCP2的固有信息,并通知对方是正确的通信对象。即,可以在交换后面的TCPsec协商数据之前,在主机A和主机B之间确认对方终端是不是支持TCP2的终端,换言之,可以确认是不是正确的通信对方。
在主机B一侧,当接收到从主机A发送来的连接请求(SYN)时,若是正确的对方,则向主机A发送连接响应(SYN·ACK)。接着,当主机A接收到来自主机B的连接响应(SYN·ACK)时,发送ACK(肯定响应)。接下来,在主机A和主机B之间交换TCPsec协商数据,若对象正确,则结束TCPsec的连接序列。
当该连接序列结束时,TCPsec的数据通信序列变成有效,在主机A和主机B中的某一方发送数据之后,收到数据的一方返ACK(肯定响应),重复该基本模式,进行数据的收发。
再有,在TCPsec的数据通信序列中,主机A和主机B的任何一方都可以向对方提出切断请求。在图7(b)中,从主动开放侧的主机A开始切断。当主机A的应用有切断请求时,主机A发送切断请求(FIN)。在该切断请求(FIN)中有通过选项加密且附加TCP2的固有信息并通知对方这里是正确的通信对象的程序。当主机B接收到该切断请求(FIN)时,若是正确的对方,则如后述的图9的步骤S42所示,发送切断响应(FIN·ACK)。当主机A接收到该切断响应(FIN·ACK)时,发送ACK(肯定响应),结束TCPsec的切断序列。
以上,根据图7,就标准TCP和本发明的TCP2之一的TCPsec说明了从通信的连接到切断的序列,下面,根据流程图按顺序说明TCP和TCPsec的被动开放处理及主动开放处理。
首先,根据图8的流程图说明在图5的流程图的步骤S5中开始TCP被动开放处理时的详细情况。
当决定图5的步骤S5处理的协议为TCP时,便开始该图8的TCP被动开放处理。首先,等待接收,再进行所接收的数据包的解析(步骤S15)。接着,判断该接收的数据包是否正确,即是不是DoS攻击中的TCP协议攻击模式(步骤S16)。接着,当步骤S16的判断结果是非法的数据包时,则废除该接收的数据包(步骤S17)并等待下一个数据包的接收。
在判断步骤S16中,当判断接收的数据包是正确的TCP数据包时,接着判断是否继续处在连接中、即图7的主机A和主机B的连接序列是否结束(步骤S18)。在判断步骤S18中,当判断是连接中时,判断下一个数据包是不是切断请求(图7(a)的FIN)(步骤S19)。若不是切断请求,则接着判断是否切断响应(图7(a)的FIN/ACK)(步骤S20)。当既不是切断请求,又不是切断响应时,进行TCP数据的收发处理(步骤S21),当接收的数据包是切断响应时,从图7的主机A发送ACK,切断TCP连接(步骤S25)。当在判断步骤S19中判断是来自主机A的切断请求时,从主机B对其发送切断响应(步骤S23)。
当在步骤S23中发送了切断响应时,等待最后的ACK(步骤S24)。接着,在接收到最后的ACK之后,使TCP处于切断状态(步骤S25),结束TCP被动开放(步骤S26)。
在判断步骤S18中,当接收端口不处于连接中时,判定接收的数据包是否为被动开放许可端口(步骤S27)。接着,当接收的数据包不被允许时,便废除接收的数据包(步骤S28)并等待下一个数据包。此外,在判断步骤S27中,当接收的数据包变成允许被动开放时,其次判断数据包是不是连接请求(步骤S29),若不是连接请求,则废除数据包(步骤S28)并等待下一个数据包。当在判断步骤S29中判断是连接请求时,便发送连接响应,并使TCP处于连接状态(步骤S30)。
其次,根据图9的流程图说明在图5的TCPsec被动开放处理步骤S6的详细情况。该处理如图5的步骤S6所示,是决定接收数据包的处理为TCPsec的处理时的处理。首先,等待接收,再进行接收的数据包的解析(步骤S31)。接着,判断该接收的数据包是否正确,即是不是DoS攻击中的TCP协议攻击模式(步骤S32)。当步骤S32的判断结果是非法的数据包时,则废除该接收的数据包(步骤S33),返回步骤S31,等待下一个数据包的接收。
在判断步骤S32中,当判断接收的数据包是正确的数据包时,接着判断主机A和主机B的连接是否结束(是否在连接中)(步骤S34)。在判断步骤S34中当判断主机A和主机B处于连接中时,判断下一个接收的数据包是不是切断请求(FIN)(步骤S35)。若不是切断请求,接着判断这次接收的数据包是否是切断响应(FIN·ACK)(步骤S36)。当接收的数据包既不是切断请求,又不是切断响应时,进行后述的图12所示的TCPsec数据的收发处理(步骤S37),并进入步骤S49。其次,当在判断步骤S36中有切断响应时,判断切断密钥是否一致(步骤S38)。这里,切断密钥是在图7的连接序列中主机A和主机B之间进行协商的公用密钥(秘密密钥),只有当该密钥一致时才能切断两者之间的通信。当在判断步骤S38中判断切断密钥一致时发送ACK(步骤S39),切断主机A和主机B之间的TCPsec(步骤S44)。当在判断步骤S38中判断切断密钥不一致时,将其作为非法的数据包予以废除(步骤S41),并等待下一个接收的数据包。此外,当在判断步骤S35中判断接收的数据包是切断请求(FIN)时,同样判断切断密钥是否一致(步骤S40)。当切断密钥不一致时,将其作为非法的数据包予以废除(步骤S41),当切断密钥一致时,进行切断响应(FIN·ACK)的发送(步骤S42)。当在步骤S42中发送了切断响应时,等待对方最后的ACK(步骤S43),当接收到该最后的ACK时,使TCPsec处于切断状态(步骤S44),结束TCPsec被动开放(步骤S45)。
在判断步骤S34中,当判断主机A和主机B不处于连接中时,判定接收的数据包是否为被动开放许可端口(步骤S46)。接着,当接收的数据包不是被动开放许可端口时,便废除接收的数据包(步骤S47)并返回到步骤S31,等待下一个数据包。此外,在判断步骤S46中,当接收的数据包变成被动开放允许端口时,执行后述的图13所示的TCPsec被动连接处理(步骤S48)。
接着,根据公用密钥和认证数据判断通信对方是否正常、即是否为具有正当权限的对方(步骤S49)。若判断为是正常的对方,则返回步骤S31,等待下一个接收数据包,若判断通信对方不是正常的对象,则强制切断TCPsec的连接(步骤S50),并结束TCPsec的被动开放处理(步骤S51)。
其次,根据图10的流程图说明图6的步骤S12所示的TCP主动开放处理。
图10是表示决定图6中的处理协议是TCP时的处理的图,首先,从发送侧主机A向接收侧主机B发送连接请求(SYN)(步骤S52)。当接收侧主机B对于该连接请求发送连接响应(SYN·ACK)时,接着等待接收,并进行所接收的数据包的解析(步骤S53)。其次,判断该接收的数据包是否正确,即是不是DoS攻击中的TCP协议攻击模式(步骤S54)。当该步骤S54的判断结果是非法的数据包时,则废除该接收的数据包(步骤S55)并返回步骤S53,等待下一个数据包的接收。
在判断步骤S54中,当判断接收的数据包是正确的数据包时,接着判断发送侧(主动侧)主机A和接收侧(被动侧)主机B是否处在连接中(步骤S56)。当在该判断步骤S56中判断是连接中时,其次,判断接收数据包是不是发送侧主机A对接收侧主机B的切断请求(步骤S57)。若不是切断请求,则判断是不是接收侧主机B对发送侧主机A的切断响应(FIN·ACK)(步骤S58)。当既不是切断请求,又不是切断响应时,进行TCP数据的收发处理(步骤S59),并等待下一个接收数据包。当在判断步骤S58中判断是从主机B向主机A的切断响应时,从主机A发送肯定切断的ACK(步骤S60),并切断TCP(步骤S63)。
在判断步骤S57中,当接收的数据包是切断请求时,从主机B对主机A发送切断响应(步骤S61),主机B等待从主机A接收最后的ACK(步骤S62)。接着,在主机B从主机A接收到最后的ACK之后,使TCP处于切断状态(步骤S63),结束TCP主动开放(步骤S64)。
在判断步骤S56中,当发送侧主机A和接收侧主机B不处于连接中时,判定接收的数据包是否为主动开放许可端口(步骤S65)。接着,当接收的数据包不被允许时,便废除接收的数据包(步骤S66)并等待下一个数据包。此外,在判断步骤S65中,当接收的数据包变成允许主动开放时,其次判断是否有来自接收侧主机B的连接响应(步骤S67),若没有连接响应,则废除数据包(步骤S66)并等待下一个数据包。当接收侧主机B执行了连接响应时,作为TCP的连接状态(步骤S68),返回步骤S53,等待下一个接收数据包。
其次,根据图11的流程图说明图6的步骤S13的TCPsec主动开放开始时的详细处理情况。
图11的流程所示的处理是决定图6的步骤S13的处理协议为TCPsec时开始进行的处理。首先,从发送侧主机A向接收侧主机B发送连接请求(SYN)(步骤S69)。当有来自接收侧主机B的连接响应(SYN·ACK)时,便开始数据包的接收,并进行接收的数据包的解析(步骤S70)。
其次,判断该接收数据包的解析结果,所接收的数据包是不是正确的TCP数据包,即,是不是DoS攻击中的TCP协议攻击模式(步骤S71)。当判定结果是非法的数据包时,则废除该数据包(步骤S72)并返回步骤S70,等待下一个数据包。
在判断步骤S71中,当判断接收的数据包是正确的TCP数据包时,接着判断发送侧主机A和接收侧主机B是否连接完毕(是否正在连接中)(步骤S73)。若主机A和主机B正在连接中时,则判断接收数据包是不是切断请求(FIN)(步骤S74)。当接收的数据包不是切断请求时,则判断有没有来自接收侧主机B的切断响应(步骤S75)。当既没有切断请求,又没有切断响应时,进行图12所示的TCPsec数据的收发处理(步骤S76),然后进入步骤S89。
当在判断步骤S75中判断有切断响应时,判断切断密钥是否一致(步骤S77)。该切断密钥如在图9中所说明的那样。当在判断步骤S77中切断密钥一致时,从发送侧主机A向接收侧主机B发送ACK(步骤S78),切断主机A和主机B之间的TCPsec(步骤S83)。当在判断步骤S77中切断密钥不一致时,作为非法的数据包予以废除(步骤S80),等待下一个接收数据包。此外,在判断步骤S74中,当判断接收数据包是切断请求(FIN)时,也判断切断密钥是否一致(步骤S79)。接着,当切断密钥不一致时,作为非法的数据包予以废除(步骤S80),当切断密钥一致时,进行切断响应(FIN·ACK)的发送(步骤S81)。当在步骤S81中发送了切断响应时,等待从对方来的最后的ACK(步骤S82),当接收到最后的ACK时,使TCPsec处于切断状态(步骤S83),结束TCPsec主动开放(步骤S84)。
在判断步骤S73中,当发送侧主机A和接收侧主机B的连接没有完毕,即不处于连接中时,判定接收的数据包是否为主动开放许可端口(步骤S85)。接着,当接收的数据包不被允许时,便废除接收的数据包(步骤S87)并返回步骤S70,等待下一个数据包。此外,在判断步骤S85中,当接收的数据包变成允许主动开放时,判断接收的数据包是不是来自接收侧主机B的连接响应(SYN·ACK)的数据包(步骤S86),当不是连接响应的数据包时,废除数据包(步骤S87),再等待下一个数据包,当在判断步骤S86中判断是连接响应的数据包时,进行图14已示出其详细情况的TCPsec主动连接处理(步骤S88)。
当在步骤S88中进行了TCPsec的主动连接处理时,接着判断接收侧主机B是不是正常的对象、即是不是允许连接的对象(步骤S89)。若判断是允许连接的对象时,则返回步骤S70,等待下一个数据包的接收,若在步骤S89中判断不是允许连接的对象,则强制切断TCPsec的收发(步骤S90),并结束TCPsec的主动开放处理(步骤S91)。
其次,说明选择了上述图9的步骤S37和图11的步骤S76时的TCPsec数据的收发处理的详细情况。
首先,当在图9的步骤S37和图11的步骤S76中开始TCPsec数据的收发处理时,先判断是否有来自主机A的上位应用的发送请求(步骤S92)。接着,当有来自主机A的上位应用的发送请求时,发送侧主机A加密发送数据(步骤S93),并对其附加认证数据(步骤S94),向接收侧主机B发送已加密并附加了认证数据的数据包(步骤S95)。
其次,接收侧主机B判断是否有接收数据(步骤S96),当有接收数据时,进行接收数据的解密(步骤S97)。接着,判断接收解密后的数据是否是正确的数据(步骤S98)。该判断通过确认解密后的数据和接收到的认证数据来进行,但是当判断解密数据确认的结果不是正确的数据时,强制切断TCP/TCPsec(步骤S99)。该强制切断通过在废除接收数据的同时向发送侧请求切断来进行。在判断步骤S98中,当判断解密后的数据是正确的数据时,进行接收数据的取入、即向上位协议栈传送数据(步骤S100),并结束TCPsec的数据收发处理(步骤S101)。
其次,根据图13的流程图说明开始图9的步骤S48的TCPsec被动连接处理时的详细情况。
首先,判断对方是否是正确的对方、即是不是具有与本计算机连接权限的计算机(步骤S102),当不是正确的对方时,实施TCPsec的强制切断处理(步骤S103)。当在判断步骤S102中判断连接对象正确时,从接收侧主机B发送连接响应(步骤S104)。
接着,确认发送连接响应的对方的信息是否在本计算机内(步骤S105)。当对方信息不在计算机内时,从本系统、即安装TCP2时使用的安装服务器中取得对方信息(步骤S106)。或者,从第3者认证的服务器中取得对方信息,再进入步骤S107。作为该取得的信息,可以在对方的TCP2的ID、用户ID、口令、生物统计学信息、设备固有信息和LAN连接设备等信息中,选择1个或多个来使用。再有,即使本计算机已经具有从服务器取得的信息,当超过有效期或有效使用次数时,仍然有必要重新进行取得动作。
其次,判断对方信息是否正确、即是不是允许访问本计算机的对方(步骤S107)。这里,若连接对象正确,则结束TCPsec的被动连接(步骤S108),当对象不正确时,进行TCPsec的强制切断,中止连接(步骤S103)。
其次,根据图14的流程图说明开始图11的步骤S88的TCPsec主动连接处理时的详细情况。
和图13被动连接处理的情形一样,首先,判断有连接请求的对方是否正确的对方、即是不是来自具有访问本计算机的权限的对方的通信(步骤S109)。若不是来自具备正当的访问权限的对方的通信,则强制切断TCPsec的主动连接,结束处理(步骤S110)。
当在判断步骤S109中判断是正确的对象时,从发送侧主机A向接收侧主机B发送肯定的连接响应(ACK)(步骤S111)。
其次,判断本计算机是否具有对方的信息(步骤S112)。当对方信息不在计算机内时,从本系统、即安装TCP2时使用的安装服务器中取得对方信息(步骤S113)。或者,从第3者认证的服务器中取得对方信息,再进入到步骤S114。这里,和图13的步骤S106一样,作为该取得的信息,可以在对方侧的TCP2的ID、用户ID、口令、生物统计学信息、设备固有信息和LAN连接设备等信息中,选择1个或多个来使用。再有,即使本计算机已经具有从服务器取得的信息,当超过有效期或有效使用次数时,仍然有必要重新进行取得动作。
其次,判断对方信息是否是正确的对象、即是不是允许访问自己的计算机的对方(步骤S114)。若连接对象是正确的对象,则结束TCPsec的主动连接(步骤S115),当对象不正确时,进行TCPsec的强制切断,中止连接(步骤S110)。
以上在本发明的TCP2中就使用了TCP/TCPsec的被动开放和主动开放的通信处理进行了说明。
其次,说明本发明的第2实施形态的像图3所示那样的使用了UDP/UDPsec的通信系统和通信方法。
图15是用来说明本发明第2实施形态中使用的UDP/UDPsec的被动开放处理的流程图。
该处理从上位应用程序开始(步骤S120)。首先,确认开放的端口号码的解析、即端口号码的定义状态(步骤S121)。其次,判断该端口号码是否为UDPsec开放(步骤S122)。当UDPsec不开放时,判断UDP是否开放(步骤S123)。接着,当UDPsec、UDP都不允许开放时,结束UDP/UDPsec(步骤S126)。当在判断步骤S123中判断UDP允许开放、即虽然UDPsec不允许开放但允许UDP开放时,实施图18所示的UDP开放处理(步骤S124),当在判断步骤S122中判断UDPsec开放时,不管UDP是否开放,都实施UDPsec的开放处理(步骤S125),再结束UDP/UDPsec开放处理(步骤S126)。再有,从作为上位的应用来看,即使在UDP上进行了开放,也可以根据TCP2的判断使用UDPsec或UDP进行通信。
其次,根据图16说明作为本发明的第2实施形态之一的使用了UDP/UDPsec的单播(unicast)通信中的系列处理。
图16是说明标准UDP及本发明的TCP2的UDPsec中的单播(unicast)通信的开始序列、数据通信序列的数据包(由标题和有效载荷构成)及其流向的图。
图16(a)示出使用了标准UDP的通信序列,图16(b)示出UDPsec的加密通信的序列。
图16(a)的标准UDP示出无论是主机A还是主机B其应用都是UDP开放的例子。若主机B的应用是UDP开放,则开始UDP的开放处理(参照图15的步骤S124和图18)。同样,当主机A的应用是UDP开放时,也开始上述UDP的开放处理。因此,可以进行UDP的数据通信。这里,在图16(a)所示的单播(unicast)通信中,主机A和主机B都可以发送数据。
其次,说明本发明的TCP2的加密方式之一的UDPsec的通信处理的序列。
图16(b)是利用本发明的TCP2具有的UDPsec进行加密通信的例子,在该例子中,判定主机A和主机B的应用都是UDP开放,且TCP2通过UDPsec开放的情形。
当主机B是UDPsec开放时,开始UDPsec的开放处理(参照图15的步骤S125和图19)。同样,当主机A是UDPasec开放时,也同样开始UDPsec的开放处理。因而,可以实现UDPsec的数据通信。
使用了该图16(b)所示的UDPsec的单播(unicast)通信也和UDP时一样,主机A和主机B都可以发送数据。对于图16(b)的情况,首先说明从主机A的应用来请求发送UDP数据的情况。当从应用接收到UDP数据的发送请求时,主机B开始UDPsec单播接收开始处理,并开始进行协商。若商议时发现对方是正确的对方,则结束协商,将来自应用的UDP数据的发送请求作为UDPsec数据(加密数据)发送。在该UDPsec单播(unicast)通信中,从收到数据的一侧返回ACK(肯定响应)。因此,虽然没有传送确认和数据保证的功能,但数据通信的速度相应地提高,适合于大容量图像数据等的通信。
图17是说明标准UDP及使用了作为本发明的TCP2的加密方式之UDPsec的广播通信的开始序列、数据通信序列的数据包(由标题和有效载荷构成)及其流向的图。
图17(a)示出标准UDP的通信序列,图17(b)示出本发明的TCP2的UDPsec通信的序列。
图17(a)的标准UDP无论是主机A还是主机B其应用都是UDP开放。而且,若主机B的应用是UDP开放,则开始UDP的开放处理(参照图15的步骤S124和图18)。同样,当主机A的应用是UDP开放时,也同样开始上述UDP开放处理。因此,变成可以进行UDP的数据通信的状态。
此外,虽然主机A和主机B都可以产生数据,但是,图17(a)是为了也能进行广播通信而使数据从主机A向主机B单方向流动的图。因不从接收到数据的主机B返回ACK(肯定响应),故不具备传送确认和数据保证的功能。再有,在广播数据时,可以通过使IP地址的子网地址全为1来广播数据。
其次,说明图17(b)的UDPsec的加密通信。这时,主机A、主机B的应用也都是UDP开放,TCP2通过UDPsec开放。
当主机B是UDPsec开放时,开始UDPsec开放处理(图15的步骤S125和图19)。此外,当主机A是UDPsec开放时,也同样开始UDPsec开放处理。由此,可以进行UDPsec的数据通信。
如图17(b)所示,对存在来自主机A的应用之UDP的广播数据(表示IP地址是广播的数据)的发送请求情况进行说明。当接收到来自应用的UDP的广播数据的发送请求时,不用协商,便利用UDPsec向不特定的主机作为加密数据进行发送。当主机B收到广播数据时,开始后述的图19的步骤S141的UDPsec广播接收开始处理。在主机A和主机B之间开始进行协商,若对方是正确的对方,则结束协商,并对广播数据进行解密,然后发送给应用。这时,因不从接收数据一侧返回ACK(肯定响应),故没有传送确认和数据保证的功能。
其次,根据图18说明图15的步骤S124的标准UDP的开放处理。
图18是UDP的开放处理的流程图,该处理是在图15的步骤S124中,当所处理的协议决定为UDP时开始的处理。
首先,等待来自应用的发送请求或接收数据包,当接收到发送请求或数据包时,进行数据包的解析(步骤S127)。这里,不仅对接收数据包,对发送请求也进行解析是为了防止不怀好意的第三者将主机A作为加害方并将其作为跳板进行发送,与不特定的多数进行通信。在进行该收发数据包的解析之后,判断是不是正确的数据包,即是否是DoS攻击中的UDP协议攻击模式(步骤S128)。在该判断步骤S128中,当判定是非法的数据包时,废除该数据包(步骤S129)并等待下一个数据包。
当在判断步骤S128中判定是正确的数据包时,进行UDP数据的收发处理(步骤S130),接着,判断是否有来自上位应用的UDP的关闭请求(步骤S131)。当有来自上位应用的UDP的关闭请求时,结束UDP开放处理(步骤S132)。
其次,根据图19说明图15的步骤S125的UDPsec的开放处理。图19是UDPsec的开放处理的流程图,如图15的步骤S125所示,当所处理的协议决定为UDPsec时,开始该处理。
首先,等待来自应用的发送请求或接收数据包,进行发送请求和接收数据包的解析(步骤S133)。其次,判断来自上位应用的发送请求或收发数据包是否是正确的UDP数据包,即是否是DoS攻击中的TCP协议攻击模式(步骤S134)。在该判断步骤S134中,当判定出不是正确的UDP数据包时,废除该数据包(步骤S135)并等待下一个数据包。
当在判断步骤S134中判定是正确的UDP数据包时,接着,判断是否是进行了UDPsec协商的接收数据包(步骤S136)。
接着,当判断是UDPsec协商数据包时,进行后述的图23所示的UDPsec单播(unicast)接收开始处理(步骤S137),并进入到步骤S147。
此外,当在判断步骤S136中判断不是UDPsec协商数据包时,接着,判断是不是广播通信(步骤S138)。而且,当判定是广播通信时,判断是不是通信的开始数据包、即开放后的第1个通信数据包(步骤S139),当不是开始数据包时,进行利用图22说明的UDPsec数据收发处理(步骤S144)。当在判断步骤S139中判断是通信的开始数据包时,接着判断是不是发送数据包(步骤S140)。接下来,若判断结果是发送数据包,则进行上述UDPsec数据收发处理(步骤S144),但是,当判定不是发送数据包时,便实施后述的图20的UDPsec广播接收开始处理(步骤S141)。在该接收开始处理之后,判断发送的数据包是否来自正确的对方(步骤S142)。接着,当在判断步骤S142中判定所发送的数据包不是来自正确的对方的数据包时,废除数据包(步骤S143),并等待下一个数据包。当在判断步骤S142中判定是正确的对方时,进行图22所示的UDPsec数据收发处理(步骤S144)。
此外,当在判断步骤S138中判定不是广播通信、即是单播(unicast)通信时,判断是不是通信的开始数据包、即开放后的第1个通信数据包(步骤S145),当判断结果不是开始数据包时,进行在图22中详细叙述的UDPsec数据收发处理(步骤S144)。
此外,当在判断步骤S145中判断是开放后的第1个通信数据包时,进行后述的图21的UDPsec单播(unicast)发送开始处理(步骤S146)。然后,判断通信对方是否是正确的对方(步骤S147)。当是正确的对方时,继续进行UDPsec数据收发处理(步骤S144),当不是正确的对方时,废除接收的数据包(步骤S148),并返回步骤S133,等待下一个数据包。
其次,根据图20所示的流程图说明图19的步骤S141的UDPsec广播接收开始的处理。
首先,判断本计算机是否具有配送了广播的对方的信息(步骤S149)。接着,当没有该信息时,从安装本系统时使用的安装服务器取得对方信息(步骤S150)。或者,从第三者认证的服务器取得信息。该取得的信息在对方的TCP2的ID、用户ID、口令、生物统计学信息、设备固有信息和LAN连接设备信息等中,选择1个或多个来使用。其次,判断配送了广播的对方是不是正确的对方(步骤S151)。接着,当判断是正确的对方时,可以进行UDPsec的接收,结束UDPsec广播的通信开始处理(步骤S153),并向图19的步骤S142指示可以进行接收。当在判断步骤S151中判定出不是正确的对方时,便拒绝通信(步骤S152),同样,向图19的步骤S142发出没有取得数据的消息。再有,当假如在步骤S149中有关于对方的取得信息但超过了有效期或有效使用次数时,可以重新在步骤S150中进行对方信息的取得动作。
其次,根据图21所示的流程图说明图19的步骤S146的UDPsec单播发送开始的处理。
首先,确认本计算机是否具有发送对方的信息(步骤S154)。当没有该信息时,通过和图20的步骤S150同样的方法取得对方信息(步骤S155)。该取得的信息也和图20的情况相同。
其次,判断发送的对方是不是正确的对方(步骤S156)。接着,当判断是正确的对方时,可以进行UDPsec的发送,结束UDPsec单播的通信开始处理(步骤S158),并向图19的步骤S147指示可以进行发送。当在判断步骤S156中判定不是正确的对方时,便拒绝通信(步骤S157),同样,向图19的步骤S142发出没有取得数据的消息。
其次,根据图22说明图19的步骤S144所示的UDPsec数据的收发处理。
首先,判断是否有来自主机A的应用的发送请求(步骤S159)。若有发送请求,则在发送侧主机A中加密数据(步骤S160),并对该加密数据附加认证数据(步骤S161),向接收侧主机B发送加密后又附加了认证数据的数据包(步骤S162)。
其次,在接收侧主机B中,判断是否有接收数据(步骤S163)。当有接收数据时,进行接收数据的解密(步骤S164)。其次,判断该接收并解密后的数据是不是正确的数据(步骤S165)。该判断通过确认解密数据和接收的认证数据来进行,但是,当确认了解密数据的结果,判定出不是正确的数据时,强制切断UDP/UDPsec(步骤S166)。当在判断步骤S165中判定出解密数据是正确的数据时,取入接收数据,即进行向上位协议栈的数据传送(步骤S167),并结束UDPsec的数据收发处理(步骤S168)。
其次,根据图23的流程说明图19的步骤S137所示的UDPsec单播(unicast)接收的开始处理。
首先,判断本计算机是否具有由单播(unicast)接收的数据包的对方信息(步骤S169)。当没有对方信息时,从安装本系统时使用的安装服务器或第三者认证的服务器取得对方信息(步骤S170)。该取得的信息和图20的步骤S150或图21的步骤S155相同,对方的TCP2的ID、用户ID、口令、生物统计学信息、设备固有信息和LAN连接设备信息等中的1个或多个与此相当。
其次,判断发送来单播通信的对方是不是正确的对方(步骤S171)。当判定是正确的对方时,将可以进行UDPsec的接收的消息传达给图19的步骤S147,并结束UDPsec广播通信开始处理(步骤S173)。当在判断步骤S171中判定不是正确的对方时,向图19的步骤S147传达没有取得数据的消息,并拒绝通信(步骤S172)。
以上,根据流程图和序列图详细说明了本发明第1实施形态的使用了TCPsec的加密处理和本发明第2实施形态的使用了UDPsec的加密处理。
其次,根据表2和图24说明本发明的TCP2与现有的IPsec或SSL相比具有怎样的优势。
表2是在表1的IPsec和SSL的功能比较表的基础上增加了TCP2的功能。
由该表2可知,通过采用TCP2,解决了IPsec和SSL所存在的所有的各种问题(这在背景技术中已有说明)。
表2:Ipsec、SSL和TCP2的功能比较
|
IPsec |
SSL |
TCP2 |
(1)客户一客户间的通信 |
○ |
可直接通信 |
× |
不可直接通信。经过特别的服务器可进行通信 |
○ |
可直接通信 |
(2)PPP移动通信环境 |
△ |
可利用×AUTH。但有安全上的问题 |
○42 |
可通信 |
○ |
可通信 |
(3)ADSL环境 |
|
|
|
|
|
|
(4)NAT、IP伪装环境 |
△ |
可通过与NAT-T一并使用来实现 |
○ |
可通信 |
○ |
可通信 |
(5)至TCP/IP协议栈的DOS攻击 |
○ |
可适应DOS攻击 |
○ |
可适应 |
○ |
可适应DOS攻击 |
(6)恶劣的通信环境(物理噪声大且通信错误多发的环境) |
× |
适应不充分,引起产量降低 |
○ |
可适应 |
○ |
|
(7)不同LAN之间的通信 |
△ |
当子网地址是同一地址时,不能通信 |
○ |
可通信 |
○ |
可通信 |
(8)不同的网络环境 |
△ |
管理很困难 |
○ |
管理可以简单化 |
○ |
管理可以简单化 |
(9)经由多个载体的连接 |
× |
不能通信 |
○ |
可通信 |
○ |
可通信 |
(10)所有UDP端口的安全通信 |
○ |
可安全通信 |
× |
不能通信 |
○ |
可通信 |
(11)所有TCP端口的安全通信 |
○ |
可安全通信 |
× |
除特定的TCP端口之外不能通信 |
○ |
可通信 |
(12)应用的限制 |
○ |
没有影响 |
× |
必须改变插口程序 |
○ |
可直接使用插口程序部分 |
(13)存取单位 |
|
IP单位 |
|
资源单位(URL 单位、文件夹 |
○ |
端口单位,对话单位 |
|
|
|
|
单位) |
|
|
(14)MTU(最大段尺寸) |
△ |
必须调整 |
○ |
通信时可不考虑MTU |
○ |
通信时可不考虑 |
(15)移动通信环境下使用了VoIP的因特网电话 |
△ |
可利用×AUTH。但有安全上的问题 |
× |
不能使用 |
○ |
能使用 |
(16)ADSL环境下使用了VoIP的因特网电话 |
△ |
可利用×AUTH。但有安全上的问题 |
× |
不能使用 |
○ |
能使用 |
(17)不同的LAN间使用了VoIP的因特网电话 |
△ |
可通过使用NAT-T、Ipsec-DHCP来实现 |
× |
不能使用 |
○ |
能使用 |
(18)多载体LAN之间使用了VoIP的因特网电话 |
× |
不能通信 |
× |
不能使用 |
○ |
能使用 |
例如,对于SSL难以对应的客户-客户间的通信、对TCP/IP协议的攻击、所有的UDP端口或TCP端口的安全通信、对必须改变插口程序的应用的限制等,TCP2完全能够对应。
此外,对于IPsec难以对应的、容易发生错误的恶劣环境下的通信、不同的LAN之间的通信、经由多个载体的连接、PPP移动环境、ADSL环境下的通信,TCP2完全支持。
进而,对于在移动环境下或ADSL环境下使用了VoIP(voiceOverInternet Protocol:画外音因特网协议)的因特网,如表1和表2所示,IPsec和SSL都存在问题,但是,若按照本发明的TCP2,则无论什么环境都可以适应。
此外,对于在不同的LAN间或跨过多个载体LAN之间使用了VoIP的因特网电话,IPsec和SSL不能适应,但若按照本发明的TCP2,则完全可以对应。
图24是用来说明TCP2的优越性的图,示出了在没有保护的协议栈(a)上对使用了现有的SSL的情况(b)、使用了IPsec的情况(c)、使用了本发明的TCP2(TCPsec/UDPsec)的情况进行比较的结果。图24(b)的SSL如上所述,因设置在对话层(第5层)的插口,故对上位的应用没有互换性。因此,SSL本身存在上述那样的问题。此外,图24(c)的IPsec位于网络层(3),没有IP层上的互换性,所以,在网络的构成上受到像上述那样的各种各样的制约。与此相对,图24(d)的TCP2(TCPsec/UDPsec)是导入到传输层(第4层)的加密技术,因此,从应用来看,可以直接利用插口,从网络来看,可以直接利用IP,所以,在网络的构成上没有限制。
如上所述,本发明的使用了TCP2的加密通信系统和加密通信方法与现有的加密处理系统相比,特别对数据泄露、篡改、伪装、进入和攻击具有很强的保护功能。
再有,本发明不限于上述实施形态,在不脱离权利要求书记载的宗旨的范围内,当然可以包含更多的实施形态。
权利要求书
(按照条约第19条的修改)
1.一种对位于传输层的TCP或UDP协议追加加密功能后再进行通信的通信系统,其特征在于,包括:
连接序列装置,用来在判断通信对方是不是具有正当权限的通信对方之后与通信对方进行连接;
约定装置,对在通信线路的两端对应的加密解密逻辑进行约定;
协议加密装置,按照所述约定装置约定的加密逻辑对作为收发信息单位的数据包中的至少所述TCP或UDP协议的有效载荷进行加密后再发送;和
协议解密装置,按照所述约定装置约定的解密逻辑对接收的该加密后的协议的有效载荷进行解密,
所述约定装置只与所述连接序列装置判断出具有正当权限后连接好的通信对方,使用所述传输层的所述TCP或UDP协议进行基于所述加密解密逻辑的通信。
2.一种通信系统,由第1和第2通信装置与第3通信装置分别与网络连接而构成,其中,所述第1和第2通信装置具有:约定装置,对位于传输层的TCP或UDP协议追加加密功能再进行通信的通信系统中所使用的加密解密逻辑进行约定;和连接序列装置,用来在判断通信对方是不是具有正当权限的通信对方之后与该通信对方进行连接,所述第3通信装置不具有约定所述加密解密逻辑的约定装置,其特征在于:
所述第1和第2通信装置包括:协议加密装置,由根据所述约定装置约定的加密逻辑对作为收发信息单位的数据包中的至少所述TCP或UDP协议的有效载荷进行加密后再发送;以及加密协议处理装置和通常协议处理装置两者,其中所述加密协议处理装置由按照所述约定装置约定的解密逻辑对接收的所述加密后的协议的有效载荷进行解密的协议解密装置构成,而所述通常协议处理装置不伴随所述加密解密逻辑,
所述第3通信装置只具有通常协议处理装置,该通常协议处理装置没有用来约定所述TCP或UDP协议的加密解密逻辑的约定装置,
所述第1通信装置在和所述第2通信装置通信时,根据所述连接序列装置的判断信息,利用所述加密解密逻辑约定装置选择所述加密协议装置,并利用所述加密协议装置进行通信,
同时,所述第1通信装置在和所述第3通信装置通信时,根据所述连接序列装置的判断信息,利用所述加密解密逻辑约定装置,可以选择或者使用不伴随所述加密解密的所述通常协议处理装置进行通信,或者不与所述第3通信装置进行通信。
3.权利要求1或2记载的通信系统,其特征在于:进而包括逻辑变更装置,将由所述加密解密逻辑约定装置约定的可作为约定候选对象的加密解密逻辑存储在存储器乃至安装在电路中,并定期改变该存储乃至安装的作为约定候选对象的加密解密逻辑。
4.权利要求1~3的任何一项记载的通信系统,其特征在于:所述加密解密逻辑约定装置与所述加密解密逻辑相关联,不进行加密而约定处理明码。
5.一种对位于传输层的TCP或UDP协议追加认证功能后再进行通信的通信系统,其特征在于,包括:
连接序列装置,用来在判断通信对方是否是具有正当权限的通信对方之后与通信对方进行连接;
完全性认证约定装置,对在通信线路的两端对应的完全性认证逻辑进行约定;
协议完全性认证信息附加装置,按照所述完全性认证约定装置约定的完全性认证逻辑对作为收发信息单位的数据包中的至少与所述TCP或UDP相对应的协议的有效载荷附加完全性认证信息后再进行发送;和
协议完全性认证装置,按照所述完全性认证约定装置约定的完全性认证逻辑对接收的该附加了完全性认证信息的协议进行完全性认证,
只与由所述连接序列装置判断为具有正当权限的通信对方,使用位于所述传输层的TCP或UDP协议进行基于所述完全性认证逻辑的通信。
6.一种通信系统,由第1和第2通信装置与第3通信装置分别与网络连接而构成,其中第1和第2通信装置包括:使用位于传输层的TCP或UDP判断通信对方是不是具有正当权限的通信对方之后与该通信对方进行连接的连接序列装置、和使用所述TCP及UDP进行完全性认证约定的完全性认证约定装置,所述第3通信装置不具有所述完全性认证约定装置,其特征在于:
所述第1和第2通信装置具有:附加所述完全性认证信息后再处理TCP或UDP的完全性认协议处理装置、和处理没有附加所述完全性认证信息的通常的TCP或UDP的通常协议处理装置,
所述第3通信装置只具有不伴随所述完全性认证的通常协议处理装置,
所述第1通信装置在和所述第2通信装置通信时,在所述连接序列装置中确认出作为所述第2通信装置的通信对方是正当的对方之后,进行与该第2通信装置的连接,再利用附加了所述完全性认证信息的完全性认证协议装置进行通信,同时
所述第1通信装置在和所述第3通信装置通信时,根据所述连接序列装置的判断信息,决定不附加所述完全性认证信息,可以选择使用所述通常协议处理装置进行与第3通信装置的通信,或者利用所述完全性认证约定装置确认出作为所述第3通信装置的通信对方不是具有正当权限的通信对方后不进行通信的连接。
7.权利要求5或6记载的通信系统,其特征在于:进而包括完全性认证逻辑变更装置,将由完全性认证约定装置约定的作为约定候选对象的完全性认证逻辑存储在存储器乃至安装在电路中,并定期改变该存储乃至安装的完全性认证逻辑。
8.权利要求5~7的任何一项记载的通信系统,其特征在于:所述完全性认证约定装置的所述约定是约定对发送数据附加所述完全性认证信息或不附加所述完全性认证信息的约定。
9.一种对位于传输层的TCP或UDP协议追加加密功能后再进行通信的通信装置,其特征在于,包括:
连接序列装置,用来在使用所述TCP或UDP协议判断通信对方是不是具有正当权限的通信对方之后与通信对方进行连接;和
加密协议处理装置及通常协议处理装置两者,其中,所述加密协议处理装置包括:约定用于通信的加密解密逻辑的约定装置、协议加密装置,按照所述约定装置约定的加密逻辑对作为发送信息单位的数据包中的至少所述TCP或UDP协议的有效载荷进行加密后再发送、和协议解密装置,按照所述约定装置约定的解密逻辑对接收的所述加密后的协议的有效载荷进行解密,而所述通常协议处理装置处理没有所述加密和解密的通常的协议,
所述加密解密逻辑约定装置在所述连接序列装置已确认出通信对方是具有正当权限的通信对方时,使用所述加密协议处理装置进行通信,当确认出所述通信对方是不具有正当权限的通信对方时,可以选择使用所述通常协议处理装置进行通信,或者不进行通信。
10.一种对位于传输层的TCP或UDP协议追加认证功能后再进行通信的通信装置,其特征在于,包括:
连接序列装置,用于在使用所述TCP或UDP协议判断通信对方是不是具有正当权限的通信对方之后与通信对方进行连接;
约定用于通信的完全性认证逻辑的完全性认证约定装置;
协议完全性认证信息附加装置,按照所述完全性认证约定装置约定的完全性认证逻辑对作为收发信息单位的数据包中的至少与所述TCP或UDP对应的协议的有效载荷附加完全性认证信息后再发送;和
协议完全性认证装置,按照所述完全性认证约定装置约定的完全性认证逻辑对接收的该附加了完全性认证信息的协议进行完全性认证,
根据所述连接序列装置的判断信息,使用位于传输层的TCP或UDP协议进行基于所述完全性认证逻辑的通信。
11.一种通过对与传输层的TCP或UDP相对应的协议追加加密功能进行通信的通信方法,其特征在于,包括:
连接步骤,在使用所述TCP或UDP协议判断通信对方是否是具有正当权限的通信对方之后与通信对方进行连接;
约定步骤,事前或动态地对在通信线路的两端对应的加密解密逻辑进行约定;
协议加密步骤,按照所述约定步骤约定的加密逻辑对作为收发信息单位的数据包中的至少与所述TCP或UDP的有效载荷相对应的协议进行加密后再发送;和
协议解密步骤,按照所述约定步骤约定的解密逻辑对接收的加密后的协议进行解密,
当在所述连接步骤中判断出通信对方具有正当权限时,对与传输层的TCP或UDP相对应的协议进行加密处理,再进行通信。
12.一种通信方法,由第1和第2通信装置与第3通信装置分别与网络连接而形成,其中第1和第2通信装置包括:约定装置,对与传输层的TCP或UDP对应的协议追加加密功能后再进行通信的通信方法中所使用的加密解密逻辑进行约定;和连接序列装置,判断通信对方是不是具有正当权限的通信对方之后与该通信对方进行连接,而所述第3通信装置不具有对所述加密和解密逻辑进行约定的约定装置,其特征在于:
当所述第1通信装置和所述第2通信装置通信时,根据所述连接序列装置的判断信息,并按照所述约定装置约定的加密逻辑对与所述TCP或UDP相对应的协议的有效载荷进行加密后再进行通信,
同时,当所述第1通信装置和所述第3通信装置通信时,根据所述连接序列装置的判断信息,决定不按照所述约定装置约定的加密逻辑对所述TCP或UDP协议的有效载荷进行加密后再发送,而选择利用不伴随所述加密逻辑的通常的TCP或UDP协议进行通信,或者不进行与所述第3通信装置的通信。
13.权利要求11或12的任何一项记载的通信方法,其特征在于:将在所述约定步骤中约定的可作为约定候选对象的加密解密逻辑存储在存储器乃至电路中,并定期改变该存储的加密解密逻辑的内容。
14.权利要求11~13的任何一项记载的通信方法,其特征在于:在所述约定步骤中,可以不对加密解密逻辑进行加密而约定处理明码。
15.权利要求11~14的任何一项记载的通信方法,其特征在于:进而包括在所述约定步骤之前认证通信对方的步骤。
16.一种通过对与位于传输层的TCP或UDP相对应的协议追加认证功能来进行通信的通信方法,其特征在于,包括:
连接步骤,在使用所述TCP或UDP协议判断出通信对方是否是具有正当权限的通信对方之后与通信对方进行连接;
完全性认证约定步骤,事前对在通信线路的两端对应的加密解密逻辑进行约定;
协议完全性认证信息附加步骤,按照所述完全性认证约定步骤中约定的完全性认证逻辑对作为收发信息单位的数据包中的至少与TCP或UDP的有效载荷对应的协议附加所述完全性认证信息后再发送;和
协议完全性认证步骤,按照所述完全性认证约定步骤约定的完全性认证逻辑对接收的附加了该完全性认证信息的协议进行完全性认证,
当在连接步骤中判断出通信对方具有正当权限时,对位于所述传输层的所述TCP或UDP协议附加所述完全性认证信息后,再进行通信。
17.一种通信方法,在具有使用传输层的TCP或UDP判断通信对方是否具有正当权限的通信对方之后与通信对方进行连接的连接序列装置和使用所述TCP或UDP进行完全性认证约定的完全性认证约定装置的第1和第2通信装置之间、或在具有所述完全性认证约定装置的第1或第2通信装置和不具有所述完全性认证约定装置的第3通信装置之间通过网络进行通信,其特征在于:
当安装了完全性认证协议的所述第1通信装置和同样安装了完全性认证协议的所述第2通信装置通信时,根据所述连接序列装置的判断信息,并利用所述完全性认证约定装置进行用于处理附加了所述完全性认证信息的TCP或UDP的完全性认证协议处理后再发送,当安装了所述完全性认证协议的所述第1或第2通信装置和没有安装所述完全性认证协议的第3通信装置通信时,所述完全性认证约定装置根据所述连接序列装置的判断信息,决定不附加所述完全性认证信息,而选择进行处理通常的TCP或UDP的通常协议处理后再进行与所述第3通信装置的通信,或者不进行所述完全性认证约定也不与所述第3通信装置进行通信。
18.权利要求16或17记载的通信方法,其特征在于:进而具有:将在所述完全性认证约定步骤中约定的可作为候选对象的用来附加完全性认证信息的完全性认证逻辑存储在存储器乃至安装在电路中的步骤;以及定期改变该存储乃至安装内容的完全性认证逻辑变更步骤。
19.权利要求16~18的任何一项记载的通信方法,其特征在于:在所述完全性认证约定步骤中,可以决定不通过用来附加完全性认证信息的完全性认证逻辑来进行完全性认证信息的附加。
20.权利要求16~19的任何一项记载的通信方法,其特征在于:进而包括在所述完全性认证约定步骤之前认证通信对方的步骤。
21.一种实现对位于传输层的TCP或UDP协议追加加密功能后再进行通信的通信系统的程序,其特征在于,包括:
在使用所述TCP或UDP协议判断出通信对方是不是具有正当权限的通信对方之后与通信对方进行连接的功能;
对在通信线路的两端对应的加密解密逻辑进行约定的约定功能;
按照所述约定装置约定的加密逻辑,对发送作为收发信息单位的数据包中的至少所述协议的有效载荷的协议进行加密的功能;和
按照所述约定装置约定的解密逻辑对接收的该加密后的协议的有效载荷进行解密的协议解密功能,
实现当判断出所述通信对方具有正当权限时,使用所述TCP或UDP协议实施了所述加密解密逻辑的通信功能。
22.一种实现对与位于传输层的TCP或UDP相对应的协议追加认证功能后再进行通信的通信系统的通信程序,其特征在于,包括:
在使用所述TCP或UDP协议判断出通信对方是否是具有正当权限的通信对方之后与通信对方进行连接的功能;
完全性认证约定功能,对在通信线路的两端对应的完全性认证逻辑进行约定;
协议完全性认证信息附加功能,按照所述完全性认证约定装置约定的完全性认证逻辑对作为收发信息单位的数据包中的至少与所述TCP或UDP相对应的协议的有效载荷附加完全性认证信息后再发送;和
协议完全性认证功能,按照所述完全性认证约定装置约定的完全性认证逻辑对接收的该附加了完全性认证信息的协议进行完全性认证,
实现当判断所述通信对方具有正当权限时,使用所述TCP或UDP协议实施所述完全性认证逻辑并进行通信的功能。