在单路数据通道上 建立安全连接的方法和装置 本发明涉及无线网络,特别涉及无线网络上的安全数据传输。
无线网络常常被用于从网络中的一个位置传输消息到网络中的目的位置。这些消息包括要提供给目的位置的数据。更具体地,该消息包括首标部分和数据部分。首标部分包括目的位置的地址,数据部分包含数据。例如,目的位置是一个移动设备或一个服务器。移动设备一般与无线网络交互,以接收各种类型的通告,或请求和接收来自该无线网络连接的另一网络的数据。
图1是传统的无线通信网络100的方框图。无线通信网络100包括服务器102、无线网络104和移动设备106。有n个移动设备106-1至106-n。服务器102一般是一计算机系统,其作用是将消息送给移动设备106和从移动设备106接收消息。这些消息是经常要传输到移动设备106的数据块。例如,数据可以属于各种类型的通告、电子邮件、新闻数据、配置信息、数据文件、库文件、程序文件等。该消息也可以是要求从移动设备106到服务器102传输的信息(例如,某些数据)的请求。服务器102也可以连接到其它有线或无线的网络以便从其它计算机系统接收消息或转送消息到其它计算机系统。作为一个例子,服务器102可以连接到互联网。例如,服务器102可以是耦合到互联网地代理服务器(或链接服务器)、或者是耦合到网络的网络网关。近年来互联网的迅猛增长,促进了一种需要,即,为诸如移动电话,个人数字助理(PDA,personal digital assistant)等的移动设备提供对互联网上可用的信息和服务的访问。
无线网络104一般使用无线电传输与移动设备106通信。无线网络104可以使用各种不同网络和通信协议。无线网络的例子包括蜂窝数字分组数据(CDPD,Cellular Digital Packet Data)、移动通信全球系统(GSM,GlobalSystem for Mobile Communication),码分多址(CDMA,Code Division MultipleAccess)和时分多址(TDMA,Time Division Multiple Access)等,这些无线网络均有不同的数据传送特性,诸如执行时间(latency)、带宽、协议和连接方法等。例如,协议可以是互联网协议(IP)、短消息系统(SMS,ShortMessaging System)和无结构补充服务数据(USSD,Unstructured SupplementaryService Data),连接方法可以包括分组交换或电路交换。
作为一个例子,要由服务器102送到移动设备106-2的消息应该包含一个地址,它专门用来识别移动设备106-2。然后该消息由服务器102提供给无线网络104。例如,一无线数据网络是使用小消息服务器中心(SMSC,SmallMessage Server Center)的分组交换网络,小消息服务器中心有较小的分组大小(例如,140字节)。无线网络104使该消息被正确地(即,根据地址)发送到移动设备106-2。无线网络104和移动设备106-2之间的传输是无线的。移动设备106-2接收已经从无线网络104传输的消息。移动设备106-2然后可以存储该消息,执行预定处理,诸如通知移动设备106-2的用户收到该消息。
在服务器102和移动设备106之间传输消息或数据之前,需要进行在服务器102和特定的移动设备106之一的连接,除非该连接已经建立。另外,当要传输的数据是专用的或保密的时,要使用安全连接。安全连接是这样一种类型的连接,其中采取了安全性措施,这样仅有发送者和所希望的接收者可以理解该数据。由诸如加密的密码技术实现该安全性措施。密码技术在JohnWiley & Sons公司于1996年出版的作者为Schneier的“应用密码学”第二版中有详细描述,在此列出供进一步参考。
根据有关无线网络上的传输的协议,建立安全连接。能够提供安全连接的协议的例子包括手持设备传输协议(HDTP,Handheld Device TransportProtocol)和无线传输层安全性(WTLS,Wireless Transport Layer Security)。HDTP在“HDTP草拟规范”版本1.1(1997)中有描述,在此列出供进一步参考。WTLS是无线应用协议(WAP,Wireless Application Protocol)的安全性分层协议。WTLS在1998年4月30日的无线应用论坛(WirelessApplication Forum)的“无线应用协议无线传输层的安全性”中有描述,在此列出供进一步参考。
建立安全连接的传统途径的一个问题是,它需要双向数据通道。例如,HDTP和WTLS协议都需要在服务器和移动设备之间的握手操作以建立安全连接。传统上,握手操作需要双向数据通道。结果是,单向数据通道已经不能利用需要握手操作的协议的安全性特性。
在一些无线网络中,服务器和移动设备可以由两个或更多通道连接。在一种情况下,服务器和移动设备可以在单向数据通道和双向数据通道上被连接。一种具有这种特性的代表性的网络(例如,GSM)可以使用短消息服务中心(SMSC)以提供单向数据通道,使用交互功能(IFW,Interworking Function)以提供双向数据通道。在这样一种网络中,单向数据通道常常被看作窄带通道,双向数据通道常常被看作宽带通道。作为一个例子,窄带通道可以以大约每秒400位(bps)的速率传送数据,而宽带通道可以以至少14400bps的速率传送数据。因而,服务器和移动设备既由双路通道又由单路通道连接(或可连接)的情况并非不常见。通常,服务器和客户机依据数据的急迫性、所招来的花费等,决定使用一个通道还是两个都用。双路通道的使用常常使移动设备向给该移动设备提供服务的电信服务商缴费(即,费用)。比较而言,单路窄带通道的使用常常是没有花费或是与使用无关的固定花费。然而,因为传统安全性的方法需要双路通道,单路通道不能建立安全连接。所以,这严重地妨碍了单路通道上的数据的安全传输。
因此,需要在单向通道上提供安全数据传输的改进方法。
总的来说,本发明涉及改进的技术,用于方便在单路数据通道或窄带通道上的安全数据传送。经常地,这些通道是由无线数据网络提供的无线通道。本发明使单路数据通道的密码握手操作能够在相伴随的双路数据通道上执行,这样,单路数据通道能够有效地满足需要密码握手操作的双路通信的安全性协议。一旦密码握手操作完成了,数据就可以在单路数据通道上以安全方式传输。另外,本发明也使密码握手操作执行得更快,因为双路通道通常是宽带通道。在这种情况下,宽带通道代替窄带通道用于密码握手操作,无论窄带通道是单路通道还是双路通道,均减少了执行时间。
本发明能以包括作为方法、计算机可读介质、装置和系统的几种方式实现。下面讨论本发明的几个实施例。
作为一种用于安全地在一窄带通道上在服务器和客户机之间传输数据的方法,其中所述客户机和服务器不仅能通过所述窄带通道也能通过一宽带通道连接,本发明的一个实施例包括如下步骤:在所述宽带通道上连接所述客户机和服务器;在所述宽带通道上在所述客户机和服务器之间交换安全性信息;所述服务器使用安全性信息,加密要从所述服务器向所述客户机传输的数据;和在所述窄带通道上从所述服务器向所述客户机传输所加密的数据。
作为一种用于以安全方式从服务器向客户机传输数据的方法,本发明的一个实施例包括如下步骤:在双路通道上在客户机和服务器之间交换安全性信息;基于所述安全性信息,加密要从所述服务器向所述客户机传输的数据;和在单路通道上从所述服务器向所述客户机传输所述加密的数据,所述单路通道在所述客户机和所述服务器之间,从所述服务器向所述客户机传送数据。
作为一种无线通信系统,本发明的一个实施例包括:有多个服务器计算机的有线网络;无线载波网络,在工作时连接到所述有线网络,所述无线载波网络支持第一通道和第二通道,至少所述第一通道是双路数据通道;网络网关,耦合在所述有线网络和所述无线载波网络之间,所述网络网关包括安全连接处理器,通过在所述第二通道上交换安全性信息来建立在所述第一通道上的安全连接;和多个无线移动设备,可以经所述无线载波网络和所述网络网关与在所述有线网络上的所述服务器计算机交换数据。通过所述第一通道上建立的所述安全连接,消息从所述网络网关提供到所述无线移动设备。
作为一种能够通过无线链路连接到计算机网络的移动设备,本发明的一个实施例包括:显示屏,显示图形和文本;消息缓冲器,暂时存储来自在所述计算机网络上的计算机的消息,所述消息有与其相联系的服务标识;应用程序,利用从所述计算机网络上所述计算机接收的消息;和密码控制器,控制出局消息的加密和签名,控制入局消息的解密和认证,所述密码控制器用于建立安全连接,通过所述安全连接使用单路通道接收所述入局消息,其中相伴随的双路通道被用于交换安全性信息,所述安全性信息是在所述单路通道上建立所述安全连接所需要的。
作为这样一种计算机可读介质,它包括用于安全地在一窄带通道上在服务器和客户机之间传输数据的计算机程序代码,其中所述客户机和服务器不仅能通过所述窄带通道也能通过一宽带通道连接,本发明的一个实施例包括;用于在所述宽带通道上连接所述客户机和服务器的计算机程序代码;用于在所述宽带通道上在所述客户机和服务器之间交换安全性信息的计算机程序代码;用于使用所述服务器的安全性信息,加密要传输数据的计算机程序代码;和用于在所述窄带通道上从所述服务器向所述客户机传输所加密的数据的计算机程序代码。
作为这样一种计算机可读介质,它包括用于以安全方式从服务器向客户机传输数据的计算机程序代码,本发明的一个实施例包括:用于在所述客户机和所述服务器之间的双路通道上在客户机和服务器之间交换安全性信息的计算机程序代码;用于基于所述安全性信息来加密要从所述服务器向所述客户机传输的数据的计算机程序代码;和用于在所述客户机和所述服务器之间的单路通道上从所述服务器向所述客户机传输所述加密数据的计算机程序代码,所述单路通道将数据从所述服务器传送到所述客户机。
本发明的优点是很多的。本发明的实施例的几个优点如下。本发明的一个优点是,可以在单路通道上建立安全连接。本发明的另一个优点是,可以快速实现安全连接的建立,从而与传统方法相比,改进了这类操作的执行时间。本发明的另一个优点是,服务器具有可选的到客户机(例如,移动设备)的附加安全数据通路,从而服务器可以使用任意一个或两个取决于包括花费、速度和可用性的特定选择判据的通路。
通过参照以下结合附图进行的详细说明,本发明的其它方面和优点将变得明显,附图通过例子示出了本发明的原理。
通过以下结合附图的详细描述,本发明将容易理解,其中相同的标号指定相同的结构元件,其中:
图1是传统无线通信网络的方框图;
图2A是适合于连接移动通信设备到互联网的通信系统的方框图;
图2B是根据本发明的基本实施例的通信系统的方框图;
图3是根据本发明的实施例的窄带安全数据传输处理的流程图;
图4是根据本发明的实施例的客户机侧安全连接处理的流程图;
图5是根据本发明的实施例的服务器侧安全连接处理的流程图;
图6是根据本发明的实施例的数据传输处理的流程图;
图7是根据本发明的实施例的数据接收处理的流程图;
图8是根据本发明的实施例的通信系统的方框图;
图9是本发明使用的代表性的通信系统的方框图;
图10A是适合图9所示的代表性的通信系统使用的网络网关的方框图;以及
图10B是适合图9所示的代表性的通信系统使用的移动设备的方框图。
本发明涉及改进的技术,用于便于在单路数据通道或窄带通道上进行安全数据传送。经常地,这些通道是由无线数据网络提供的无线通道。本发明使单路数据通道的密码握手操作能够在相伴随双路数据通道上执行,这样,单路数据通道能够有效地满足需要密码握手操作的双路通信的安全性协议。一旦密码握手操作完成了,数据就可以在单路数据通道上以安全方式传输。另外,本发明也使密码握手操作执行得更快,因为双路通道通常是宽带通道。在这种情况下,宽带通道代替窄带通道用于密码握手操作,无论窄带通道是单路通道还是双路通道,均减少了执行时间。
下面参考图2A-10B讨论本发明的实施例。然而,本领域的技术人员将容易理解,关于这些附图所给出的详细描述是为了解释的目的,本发明超出了这些限定的实施例的范围。
图2A是适合于连接移动通信设备到互联网的通信系统200的方框图。具体地,通信系统200包括移动通信设备202A和202B。这些移动通信设备202A和202B分别通过载波网络204A(CN-A)和204B(CN-B)耦合到网络网关206。网络网关206便于移动通信设备202A和202B与互联网208耦合。和通常的一样,包括计算机支持远程服务器A 210和远程服务器B 212的各种计算机系统被耦合到互联网208,或者形成互联网208的一部分。网络网关206的主要功能是分别经载波网络204A和204B接收来自移动通信设备202A和202B的数据请求,将它们转换为互联网208使用的超文本传输协议(HTTP)请求。同样地,网络网关206也从互联网208接收HTTP响应,将它们转换为具有适合载波网络204A和204B使用格式(例如,协议)的数据响应。
网络网关206由第一通道214和第二通道216连接到载波网络204A。第一通道214是双路通道或双向通道。第二通道216是单路通道或单向通道。另外,网络网关206由第一通道218和第二通道220连接到载波网络204B。第一通道218和第二通道220都是双路通道或双向通道。载波网络204A和204B然后分别以无线方式连接到移动通信设备202A和202B。
与网络网关206和移动通信设备202A和202B之间的数据请求和数据响应相联系的数据传输在连接的基础上执行。在一些情况下,当被传输的数据高度机密时,这些连接是通过互联网208的安全连接。安全连接是一种连接,在其基础上传输加密和/或证实的数据。为了建立安全连接,无线网络的安全性协议需要在握手操作中交换密码参数。传统上利用单路通道不能执行握手操作,因此在单路通道上不能建立安全连接。
根据本发明,能够在单路通道上建立安全连接。在图2A所示的通信系统200的实施例中,第二通道216是单路数据通道,它支持从网络网关206到载波网络204A的数据的传输,而不允许从载波网络204A到网络网关206的数据的传输。因而,因为不可能握手,所以不可能在第二通道216上获得安全连接。然而,第一通道214是双路数据通道,它支持网络网关206和载波网络204A之间两个方向的数据的传输。根据本发明,第一通道214用于执行第二通道216的必要的握手操作,这样安全连接能够在第二通道216上建立。下面提供关于如何执行握手的附加的细节。
另外,根据本发明,安全通道也能够在双路通道上更有效或快速地建立。在图2A所示的通信系统200的实施例中,第一通道218是双路宽带数据通道,它支持在网络网关206和载波网络204B之间的两个方向的数据的高速传输。第二通道220是双路窄带数据通道,支持在网络网关206和载波网络204B之间的两个方向的数据的高速传输。根据本发明,第一通道218用于执行第二通道220的必要的握手操作,这样安全通道能够在第二通道220上更有效和快速地建立。这种改进起因于为执行握手操作而使用带宽更宽的通道。下面提供关于如何执行握手的附加的细节。
通信系统2000是代表性的通信系统,其中网络网关206耦合到互联网208,这样移动通信设备202A和202B可以和互联网208交互。移动通信设备202A和202B到网络网关206的连接要通过一个或更多由载波网络204A和204B支持的无线网络。尽管没说明,通信系统200常常可以支持大量的移动通信设备。另外,互联网208可以更一般地是任何网络(例如,专用网络、公共网络、广域网或局域网)。网络网关206通常作为代理服务器工作,但更一般地是服务器。
图2B是根据本发明的基本实施例的通信系统250的方框图。例如,通信系统250是诸如图2A所示的通信系统200的更大的通信系统的子系统。通信系统250包括服务器252、客户机A 254和客户机B 256。服务器252可以采取各种形式,包括代理服务器或网络网关。服务器252与客户机254和256交互以便在服务器和客户机之间交换数据。通常,服务器252耦合到网络,从而使客户机254和256能够和网络交互。网络可以采取各种形式,包括局域网(LAN)、广域网(WAN)或互联网。服务器252常常支持多于图2B中所示的两个客户机254和256的更多客户机。
客户机254和256的每一个通过一对通信通道连接服务器252。这些通信通道是无线通道,可以是一直连接的(链接的)或者是暂时连接的(链接的)。尽管这些连接或链接最好是无线的(即,不是有线的),但是连接的一些部分可以是有线的(如同已知的技术)。这些无线通信通道可以由各种无线网络来提供,这包括分组交换无线数据网络或电路交换无线数据网络。更具体地说,服务器252通过窄带通道A(NBCA)258以及宽带通道A(WBCA)260被连接到客户机A 254。类似地,服务器252通过窄带通道B(NBCB)262以及宽带通道B(WBCB)264被连接到客户机B 256。窄带通道A(NBCA)和宽带通道A(WBCA)可以被认为由无线网络A提供,窄带通道B(NBCB)和宽带通道B(WBCB)可以被认为由无线网络B提供。
宽带通道(WBCA和WBCB)260和264比窄带通道(NBCA和NBCB)258和262支持更大的带宽和数据传送速率。相应地,在窄带通道上服务器和客户机之间的传送数据的能力,相比宽带通道显然慢。作为例子,窄带通道可以以大约每秒400位(bps)的速率传送数据,而宽带通道可以以至少14400bps的速率传送数据。在带宽或传送速率上的折中通常反映在各个通道的使用花费。换言之,在宽带通道上传输数据常常比在窄带通道上昂贵得多。
常常需要或希望在服务器和客户机之间以安全方式传输数据。在这种情况下,密码技术(例如,加密)被用于提供安全数据传送。如上所述,加密技术通常需要服务器和客户机执行握手操作,其中安全性信息从客户机传到服务器,从服务器传到客户机。在服务器和客户机执行握手操作之后,服务器和客户机能够在一头加密数据,传输加密的数据,然后在另一头解密所接收的数据。
在宽带通道(WBCA和WBCB)260和264的情况下,经握手操作的安全性信息的交换容易实现,因为宽带通道通常是双路通道。然而,窄带通道(NBCA和NBCB)258和262通常是单路通道,它支持从服务器向客户机的传输,但不支持从客户机到服务器的传输。就此而论,当窄带通道(NBCA和NBCB)258和262是单路通道时,经握手操作的安全性信息的交换不能执行。另外,即使当窄带通道是双路通道时,在窄带通道上执行握手操作的执行时间或延迟较大(与宽带通道相比),原因是其比宽带通道常常低得多的带宽或数据传送速率。
根据本发明,因为握手操作的安全性信息的交换在另一通道上发生,所以可以在一个通道上执行安全数据传送。在一个实施例中,在双路通道上执行安全性信息的交换,这样安全数据传送可以在单路通道上执行。在另一个实施例中,在宽带通道上执行安全性信息的交换,这样安全数据传送可以在窄带通道上执行。
图3是根据本发明的实施例的窄带安全数据传输处理300的流程图。窄带安全数据传输处理300在客户机和服务器之间发生,例如可以由图2所示的通信系统200来执行。
窄带安全数据传输处理300以确定块302开始。作为例子,当服务器希望送(或“推”)数据到特定客户机时,服务器可以请求安全窄带连接。当确定块302确定安全窄带连接没有被请求时,窄带安全数据传输处理300等待接收这一请求。换言之,仅当安全数据传输要在窄带通道上发生时,才利用窄带安全数据传输处理300,非安全传输或在宽带通道上的安全传输遵循其它的现有技术操作。
一旦确定块302确定安全窄带连接已经被请求时,调用处理,以完成窄带安全数据传输处理300。具体说,客户机和服务器在双向宽带通道上被连接(304)。然后,在宽带通道上在客户机和服务器之间交换窄带安全性信息(306)。安全性信息通常包括钥匙或解密算法使用的其它密码参数。一组常用加密算法包括公钥加密算法。应该注意当连接请求是用于在窄带通道上的数据传输时,安全性信息的交换是在宽带通道上被执行的。接着块306,因为需要的握手操作已经执行,客户机和服务器能够建立在窄带通道上的服务器和客户机之间的安全连接。换言之,已经在宽带通道上交换的安全性信息被用于建立在窄带通道上的安全连接。
接着,确定块308确定是否有数据要传输。当确定块308确定当前没有数据要传输时,窄带安全数据传输处理300等待有可用的数据。一旦确定块308确定有可用的数据要传输,要传输的数据就基于安全性信息被加密(310)。在数据被加密后,在窄带通道上传输加密的数据(312)。这里,假定在窄带通道上的服务器和客户机之间的连接已经被建立。然而,在其它实施例中,在加密的数据在窄带通道上传输之前,在窄带通道上的服务器和客户机之间的连接可能需要建立。
接着块312,确定块314确定是否在窄带通道上的连接仍然是开放的。因为各种原因,连接常常是关闭的,这些原因包括超时状态、错误状态或者因为安全性原因。当确定块314确定连接仍然是开放的,窄带安全数据传输处理300返回以重复确定块308和其后的块。另一方面,一旦确定块314确定连接不再是开放的,窄带安全数据传输处理300返回以重复确定块302和其后的块,这样安全连接就被重新建立。
窄带安全数据传输处理300使用的窄带通道可以是单路(服务器向客户机)或双路通道。如上所述,尽管本发明是特别针对窄带通道仅是从服务器向客户机的单路通道的情况,但是本发明在两种情况下都具有优点。
假如服务器252和客户机254和256由至少一对通道(258-264)连接,如图2B所示,在服务器和客户机之间的两条通道上都同时利用安全传输,并非不常见的。在这种情况下,每个通道需要实现握手操作,以便交换对于安全连接的建立需要的安全性信息。图4和图5描述了在服务器和客户机之间一对通道的双安全连接的建立。
图4是根据本发明的实施例的客户机侧安全连接处理400的流程图。例如,客户机侧安全连接处理400由诸如图2所示的客户机254或客户机256的客户机来执行。在这个实施例中,假定客户机和服务器之间的第一和第二通道都被用于提供安全连接。
客户机侧安全连接处理400起初将安全会话请求送到一服务器(例如,图2所示的服务器202)(402)。这里,安全会话请求是一个用于建立第一和第二通道上安全连接的请求。确定块404然后确定是否已经收到对安全会话请求的响应。这里,客户机正在等待来自服务器的响应。当确定块404确定还没有收到对安全会话请求的响应时,确定块404使客户机侧安全连接处理400等待接收这一响应。根据安全性协议请求和响应的操作作为第一握手操作,交换安全性信息。例如,安全性信息可以包含为各种密码技术指定钥匙、随机数、算法、矢量等的密码参数。
一旦已经收到响应,产生用于服务器和客户机之间的第一通道的第一钥匙块(406)。第一钥匙块包含用于加密或认证要在服务器和客户机之间经第一通道传输的数据或数据块的钥匙。其后,安全会话完结通知被送到服务器(408)。安全会话完结是一个给服务器的通知,即客户机已经确认收到响应,准备好了安全会话。
接着,确定块410确定是否已经为第一通道建立安全会话。只有客户机请求和服务器同意建立安全会话时,才建立安全会话,然后安全会话确实建立。当确定块410确定安全会话已经建立时,第一通道的安全会话就绪。
现在,建立第二通道的安全会话。第二通道的安全性信息也被从客户机送到服务器(412)。应该注意安全性信息在第一通道上被送到服务器(412)。使用第一通道的原因是(1)当第二通道不能传输数据到服务器时的需要,或者(2)当第二通道是窄带通道时的执行时间的提高。
接着,确定块414确定是否已经从服务器收到安全性信息。来自服务器的安全性信息也在第一通道上接收。来自服务器的安全性信息是对客户机送到服务器的安全性信息的响应。该安全性信息的交换是根据安全性协议的第二次握手操作。确定块414使客户机侧安全连接处理400等待从服务器接收安全性信息。一旦确定块414确定已经接收到安全性信息,就产生第二通道的第二钥匙块(416)。仍然,第二钥匙块包含用于加密或认证要在第二通道上以安全方式传输的数据或数据块的会话钥匙。接着块416,客户机侧安全连接处理400完结并终止。
另外,当确定块410确定在服务器和客户机之间还没有建立安全会话时,客户机侧安全连接处理400发出一错误通知(418)。接着块418,客户机侧安全连接处理400完结并终止。
图5是根据本发明的实施例的服务器侧安全连接处理500的流程图。例如,服务器侧安全连接处理500由诸如图2B所示的服务器252的服务器执行。
服务器侧安全连接处理500以确定块502开始。确定块502确定是否已经收到安全会话请求。通常,安全会话请求由客户机发出,然后由服务器接收。确定块502使服务器侧安全连接处理500等待接收安全会话请求。这里,安全会话请求是用于建立第一和第二通道上的安全连接的请求。
一旦已经收到安全会话请求,服务器侧安全连接处理500继续。产生第一通道的第一钥匙块(504)。然后响应被送到已经请求安全会话的客户机(506)。安全会话请求和响应的操作作为第一握手操作根据安全协议交换安全性信息。无线网络环境的协议的例子是HDTP和WAP WTLS。例如,安全性信息可包含为各种密码技术指定钥匙、随机数、算法、矢量等的密码参数。
接着,确定块508确定是否已经收到安全会话完结通知。当客户机已经建立了第一通道的安全会话时,安全会话完结协议由客户机送到服务器。确定块508使服务器侧安全连接处理500等待接收安全会话完结通知。确定块510然后确定是否建立了安全会话。当确定块510确定已经建立了安全会话时,确定块512确定是否已经收到安全性信息。这里,安全性信息在已经由客户机传输后由服务器接收。该安全性信息是用于第二通道的。客户机根据某协议将安全性信息作为其与服务器通信的内容部分发送到服务器,以建立第二通道的安全会话。举例来说,这里协议可以是会话层协议或传输层协议(例如,HDTP)。
一旦确定块512确定已经接收了送到客户机的第二通道的安全性信息,然后服务器将第二通道的安全性信息送到客户机(514)。然后为第二通道产生第二钥匙块(516)。接着块516,服务器侧安全连接处理500完结和终止。
另外,当确定块510确定在服务器和客户机之间不能建立安全连接时,服务器侧安全连接处理500发出错误通知(518)。接着块518,服务器侧安全连接处理500完结和终止。
安全会话请求的发送和接收以及安全性信息的发送和接收是在第一通道上执行的。在第一通道上的服务器和客户机之间交换的信息被用于建立在第一通道和第二通道上的服务器和客户机之间的安全通信。第一钥匙块被用于加密从客户机到服务器在第一通道上传输的数据,以及解密在第一通道上从服务器接收的数据。第二钥匙块被用于解密在第二通道上从服务器接收的数据。在一实施例中,第一通道是双路通道,第二通道是单路通道。在另一个实施例中,第一通道是双路宽带通道,第二通道是双路窄带通道。
在涉及的安全协议是HDTP的情况下,第一通道的安全会话按正常情形执行。第二通道的安全会话可以依附在第一通道安全会话的客户机和服务器交换上。即,利用HTTP类型的内容传送HDTP,从而首标(例如,会话首标)在服务器和客户机之间正常地交换。这些首标可以被用于交换第二通道的安全性信息(块414、416、512和514)。
在使用WAP的情况下,涉及的安全协议是WTLS,会话级协议是无线会话协议(WSP,Wireless Session Protocol)。WSP也使用HTTP类型的内容传送。当WSP和WTLS创建安全会话时,首标(例如,会话首标)在服务器和客户机之间正常地交换。至于HDTP,这些首标可以被用于交换第二通道的安全性信息(块414、416、512和514)。
与使用的具体协议无关,一部分安全性信息可以由两个通道共用或共享。在使用Diffie Hellman公钥加密算法的情况下,在握手操作过程中的交换包括钥匙交换和随机数交换。因此,正常情况下,每个通道应分别需要钥匙交换和随机数交换。然而,通过两个通道分享同一钥匙,第二钥匙交换可以被去除。同样,同一随机数的分享可以去除随机数交换。一部分安全性信息的分享改进了安全连接建立的执行时间或效率,但可能导致安全性程度的降低。
另外,可能希望两个(或者,多个)通道使用相同的安全性信息。在这种情况下,除了为第一通道交换的安全性信息外,不需要有为第二通道(或更多通道)的安全性信息的任何交换。这里,所有的安全性信息将由各通道分享。然而,各连接将由不同的连接标识来区分。例如,对于图4,块412和414可以去除,对于图5,块512和514可以被去除。通过钥匙块(例如,第一钥匙块)的分享,也可以去除第二钥匙块的产生(块416和516)。这样,使用同样的密码参数,在两个(或多个)通道上可以建立安全连接,代价是降低了安全性的程度。
图6是根据本发明的实施例的数据传输处理600的流程图。在该实施例中,数据通常在第二通道上从服务器向客户机传输。举例来说,第二通道是单路窄带通道。在图4所示的第二通道上的服务器和客户机之间的安全会话(连接)的建立之后是数据传输处理600。在第一通道上的数据传输,如果有的话,未示出。
数据传输处理600以确定块602开始。确定块602确定在第二通道上是否有要传输的数据。当确定块602确定在第二通道上当前没有等待传输的数据时,数据传输处理600只是等待接收这一数据。
一旦确定块602确定在第二通道上有要传输的数据,数据传输处理600则进行数据传输。再一次,为第二通道已经建立了安全会话(连接)。具体地,获得数据块(604)。从第二钥匙块获得一个或多个钥匙(606)。通常,从第二钥匙块获得认证钥匙和加密钥匙。也可以从第二钥匙块获得初始化向量。初始化向量被用作块密码加密算法的随机种子。这里,第二钥匙块是在图5所示的服务器侧安全连接处理500的块514中产生的。第二钥匙块位于服务器。
接着,使用从第二钥匙块获得的钥匙,加密和/或签名数据块(608)。例如,所用的特定签名技术是单路散列算法。所用的特定加密算法可以不同,但常常公钥加密算法是合适的。在一个实施例中,假定均要进行签名和加密,应该使用签名技术和认证钥匙签名数据块,并使用加密算法和加密钥匙加密数据块,然后两个处理块附加在一起。
接着块608,在第二通道上传输加密的数据块(610)。其后,确定块612确定在第二通道上是否还有数据要传输。当确定块612确定还有数据要传输时,数据传输处理600返回以重复块604和随后的块。另一方面,当确定块612确定在第二通道上不再有数据要传输时,数据传输处理600完结和终止。
图7是根据本发明的实施例的数据接收处理700的流程图。在该实施例中,在第二通道上,数据正被接收。举例来说,第二通道是从服务器向客户机的单路窄带通道。在数据接收处理700的一个方案中,该处理是由诸如图2B所示的客户机254和256的客户机来执行的。数据接收处理700接着数据传输处理600,从而建立了如图4所示的第二通道上的服务器和客户机之间的安全会话(连接)。在第一通道上的数据接收,如果有的话,未示出。
数据接收处理700以确定块702开始。确定块702确定在第二通道上是否已经接收了数据块。确定块702使数据接收处理700等待,直到至少在第二通道上已经接收了一个数据块。然而,一旦确定块702确定至少在第二通道上已经接收了一个数据块,数据接收处理700继续,以便该数据块可以被处理。即,从第二钥匙块获得一个或多个钥匙(704)。通常,从第二钥匙块获得认证钥匙和加密钥匙。也可以从第二钥匙块获得初始化向量。初始化向量被用作块密码加密算法的随机种子。这里,例如,第二钥匙块是在图4中所示的客户机侧安全连接处理400的块414中产生第二钥匙块。换言之,这里第二钥匙块位于客户机。
接着,使用从第二钥匙块获得的钥匙,解密和/或认证已经接收的数据块(706)。在一个实施例中,假定在服务器侧对传输的数据一起执行签名和加密,这些数据现在已经被客户机接收,则接收的数据块应该是同时签名和加密的。所以,在这一实施例中,接收的数据块应该使用从客户机侧的第二钥匙块获得(704)的认证钥匙来认证,接收的数据块应该也使用从客户机侧的第二钥匙块获得(704)的加密钥匙来解密。
在数据块已经被解密和/或认证(706)后,解密的数据块被存储(708)为以后的使用。接着块708,数据接收处理700返回以重复确定块702和后面的块,这样随后的数据块可以当它们在第二通道上被接收时被处理。
载波网络一般被分类为分组交换网络和电路交换网络。在分组交换网络中,在载波网络和无线通信设备之间的通信可以使用互联网协议(IP)寻址,因为无线通信设备有其自己的单独IP地址。另一方面,电路交换网络需要在无线通信设备可以和载波网络通信之前与载波网络建立一个电路。在这样的网络中,无线通信设备没有静止的IP地址,而替代地有一个动态分配的IP地址或唯一的电话号码。分组交换载波网络的一个例子是CDPD。电路交换网络的一个例子是码分多址(CDMA)和移动通信全球系统(GSM)。
图8是根据本发明的实施例的通信系统800的方框图。通信系统800包括网络网关802,用于协调从互联网208到无线通信设备202X,202Y和202Z的信息的访问和检索。网络网关的操作类似于图2A所示的网络网关206。然而,通信系统800具体地属于以下情形,即载波网络X 804是分组交换网络诸如CDPD,载波网络Y 806是一SMS类型网络,它使用带SMPP接口协议的CDMA,载波网络Z 808是另一个SMS类型网络,它使用带UCP接口协议的GSM。
由于载波网络Y 806和载波网络Z 808是使用SMS的电路交换网络,所以它们使用短消息服务器中心(SMSC)和交互工作功能(IWF)以提供与载波网络的通信。传统上一般由载波网络提供SMSC和IWF的使用,这样用载波网络可以实现消息和交互。所以,通信系统800包括SMSC-Y 810和SMSC-Z 812,它们分别提供消息服务到耦合到载波网络Y 806和载波网络Z 808的无线通信设备。SMSC 810和812分别提供从多网络网关802到载波网络Y 806和载波网络Z 808上的无线通信设备的单路通知。IWF-B 814和IWF-C 816分别被用于提供在网络网关802和载波网络Y 806和载波网络Z 808之间的双路交互。到载波网络的SMSC连接被通常称为窄带通道,而到载波网络的IMF连接被称为宽带通道。在该实施例中,到载波网络的SMSC连接是单路窄带通道,而到载波网络的IMF连接是双路宽带通道。
图9是本发明使用的代表性的通信系统900的方框图。通信系统900包括有线部分902和无线部分904。有线部分902包括网络906和网络网关908。在一个实施例中,网络906是互联网,它代表大量互相连接的计算机。在另一个实施例中,网络906是各计算机组成的内部网或专用网络。
网络网关908的作用是从有线部分902到无线部分904的网关。网络网关908用作无线部分904的无线通信和有线部分902的有线通信之间的基本转换部分。网络网关908从载波网络914接收入局的内容请求,执行必要的协议转换。网络网关908通常将执行一些协议翻译和其它帐目管理和校验操作。网络网关908包括帐目信息存储区域910,用于存储帐目、配置和其它信息。无线部分904包括载波网络914和至少一个远程无线计算设备916。网络网关908也从网络906接收消息,将它们转送合适的远程计算设备。
例如,远程无线计算设备916可以是移动电话、个人数字助理(PDA)、或者便携通用计算机。远程无线计算设备916包括显示器918,用于显示数屏或数页的信息;远程无线浏览器920;和导航按钮922和924。远程无线浏览器920通常是一个应用程序,在远程无线计算设备916上运行。远程无线浏览器920提供数屏或数页的信息以显示在显示器918上。导航按钮922和924允许用户用远程无线浏览器920,通过显示在显示器918上的菜单或列表来导航或从菜单或列表作出选择。远程无线计算设备916也可以包括字母数字键板(未示出),允许用户键入字母数字信息,但这并非必须,由于字母数字信息也可以使用显示在显示器918上的拨号屏,通过导航按钮922和924所作的选择来键入。通过与远程无线浏览器920的交互,用户能够访问位于网络906的信息。根据本发明,至少要在无线部分904上,即在远程无线浏览器920和网络网关908之间能进行安全会话。如上所述,这些安全会话甚至可以在单路通道上通过载波网络914提供。
通常,无线部分904将包括多个远程无线浏览器920,每个在不同的远程计算设备上运行。在帐目信息存储区域910中存储的配置和其它信息可以存储每个远程无线浏览器920的服务限制、安全限制、优先信息、屏幕配置信息等。帐目信息存储区域910也可以存储远程无线浏览器920所关心的数据或数页数据。存储的数据或数页面可以作为从网络906先前请求的高速缓存信息、或者作为网络网关908内的信息服务器数据。例如,作为信息服务器,存储页可以代表要由远程无线浏览器显示的数页面。
图10A是适合图9所示的代表性的通信系统900使用的网络网关1000的方框图。例如,网络网关1000能够代表图9所示的网络网关908,其通常是一个服务器计算机。为了避免模糊本发明的方面,在网络网关1000中的公知方法、过程、组件和电路不详细描述。
网络网关1000包括耦合到载波网络914的用户数据报协议(UDP,UserDatagram Protocol)接口1002、耦合到网络906的HTTP接口1004、和耦合在UDP接口1002和HTTP接口1004的服务器模块1006。服务器模块1006执行传统的服务器处理过程和协议转换处理。特别地,协议转换处理包括在UDP和HTTP之间的协议转换。服务器模块1006也执行图5和6所示的上述安全会话的相关处理。另外,为了帮助服务器模块1006进行处理,代理服务器1000包括随机存取存储器(RAM)1008和只读存储器(ROM)1010。RAM 1008主要存储设备标识、用户标识、配置信息、安全信息和别名转换信息。在一个实施例中,这样的信息存储在RAM 1010中作为数据库。同样,RAM 1010可以代表图9所示的帐目信息存储区域910。
图10B是适合图9所示的代表性的通信系统900使用的移动设备1050的方框图。例如,移动设备1050可以对应于远程计算设备916,操作图9所示的远程无线浏览器920。
移动设备1050包括UDP接口1052,它经RF收发信机1053耦合到载波网络914,以接收入局和出局信号。设备标识(ID)存储器1054提供设备ID给UDP接口1052。设备ID识别与特定移动设备1050相联系的特定代码。另外,移动设备1050包括客户机模块1056,它使移动设备1050执行许多处理任务,这包括建立与载波网络1014和网络网关908的通信会话、从网络906请求和接收数据(例如,数页面)、在远程计算设备的显示器上显示信息、和接收用户输入。客户机模块1056被耦合到UDP 1052,用于建立通信会话和请求和接收数据。客户机模块1056也执行与从网关计算机908、1000传输的消息的传输和接收有关的处理,这包括参照图4和7所述的安全会话处理。客户机模块1056控制显示驱动器1058,以在显示器1060上显示信息给用户。另外,客户机模块1056被耦合到输入设备1062、ROM1064和RAM 1066。最好,其中,客户机模块1056操作网络浏览器,诸如手持设备标记语言(HDML,HandHeld Device Markup Language)页面浏览器。输入设备1062允许移动设备1050的用户输入数据,从而在控制和使用移动设备1050中作出选择。ROM 1064为客户机模块1056存储预定数据和处理指令。RAM 1066用于为安全信息和入局和出局数据的接收和传输提供临时数据存储器。
尽管在图10A和10B中所述的网络网关1000和移动设备1050的实施例使用UDP和HTTP协议,应该认识到,还可以提供和利用其它协议和其它协议栈(protocol stack)。对网络网关1000和移动设备1050的设计和结构的详细描述包含在美国专利申请No.08/570,210中,题目“METHOD ANDARCHITECTURE FOR AN INTERACTIVE TWO-WAY DATACOMMUNICATION NETWORK(交互式双向数据通信网络体系结构及方法)”,发明人是Alain Rossmann,在此列出作为作为参考。
本发明的优点是很多的。本发明的实施例的几个优点如下。本发明的一个优点是,可以在单路通道上建立安全连接。本发明的另一个优点是,可以快速实现安全连接的建立,从而与传统方法相比,改进了这类操作的执行时间。本发明的另一个优点是,服务器具有可选的到客户机(例如,移动设备)的附加安全数据通路,从而服务器可以使用任意一个或两个取决于包括花费、速度和可用性的特定选择判据的通路。
从所写的说明书,可以看出本发明的许多特点和优点是明显的。因而,所附权利要求旨在覆盖本发明的所有这些特征和优点。另外,由于对本领域的技术人员很容易进行各种修改和改变,所以不希望将本发明限定到所述的特定结构和操作。因而,所有合适的修改和等价物均可能落入本发明的范围内。