在网络通信中告知密码信息的制作方法

文档序号:7941401阅读:160来源:国知局
专利名称:在网络通信中告知密码信息的制作方法
技术领域
本发明涉及 在网络通信中告知密码信息。
背景技术
计算机网络是利用有线和/或无线通信链路耦合在一起的处理节点的集合。计算 机网络可以是单个网络或者网络的集合(例如,互联网络),并且可以使用包括网际互联协 议(例如,网际协议(IP))的多种联网协议。这些协议定义了准备信息以通过网络传输的 方式,并且通常涉及将数据分为一般称为分组(例如,IP分组、ATM(异步传输模式)单元) 的分段以用于传输。这些联网协议通常由具有多个层的网络架构来组织,其中每个层向其 之上的层提供通信服务。协议还可以包括诸如以太网中的共用线路协议、诸如ATM网络中 的面向连接的交换协议和/或诸如IP中的无连接分组交换协议。多种计算机网络使用无连接的分组交换协议(例如IP)。分组独立地进行路由。 并且由此可以采用网络中的不同路径。已经在无连接的分组交换协议之上建立了各种协议 (诸如IP),从而在底层无连接协议之上提供基于连接的通信。例如,Adobe System公司已 经公布了用于FLASH Media Server的通信协议,其中通信会话通过服务器与客户端之间 的握手通信来建立。作为该握手的一部分,实时消息收发协议(RTMP)在通信中包括随机字 节分段,以用于估计客户端与服务器之间的会话的可用带宽。

发明内容
本说明书描述了涉及在网络通信中告知密码信息的技术。总体上,本说明书所描 述的主题的一个方面可以通过一种方法来具体化,该方法包括标识将要在客户端-服务 器环境中发送的网络通信的预定义部分中的位置,其中网络通信的预定义部分为随机数据 而保留;在该位置处向网络通信的预定义部分插入密码信息插入;以及在客户端-服务器 环境中发送该网络通信,以促使至少部分基于该密码信息的处理结果来修改客户端-服务 器环境中的交互。另外,所描述的主题的另一个方面可以通过一种方法来具体化,该方法包 括在客户端-服务器环境中接收插入到网络通信的预定义部分中的密码信息,其中该网 络通信的预定义部分为随机数据而保留;标识该密码信息在该网络通信的预定义部分中的 位置;处理该密码信息;以及至少部分基于该密码信息的处理结果来修改客户端_服务器 环境中的交互。这些方面的其他实施方式包括相应的系统、装置和计算机程序产品。这些和其他实施方式可以可选地包括以下一个或者多个特征。标识位置可以包 括使用网络通信的至少一部分来确定位置。预定义部分可以包括随机数据,并且使用网络 通信的至少一部分来确定位置可以包括获取随机数据的一部分;以及基于所获取的随机 数据的部分来确定对网络通信的预定义部分的索引。此外,使用网络通信的至少一部分来 确定位置可以包括获取随机数据的多个不同部分;以及基于随机数据的不同部分来确定 对网络通信的预定义部分的多个不同索引。处理密码信息可以包括建立密码密钥,并且修改客户端-服务器环境中的交互可以包括使用该密码密钥来发起加密会话。另外,处理密码信息可以包括对网络通信进行认 证,并且修改客户端-服务器环境中的交互可以包括打开或者关闭客户端-服务器环境中 操作的程序的特征。根据另一方面,一种系统,可以包括服务器,其被编程用于使用包括网络通信的会 话启动握手来通过网络与客户端计算机建立非加密会话和加密会话二者,其中该网络通信 包括为随机数据而保留的预定义部分;第一客户端计算机,其被编成用于使用会话启动握 手与服务器计算机建立非加密会话;以及第二客户端计算机,其被编程用于使用会话启动 握手与服务器计算机建立加密会话,该会话启动握手包括被插入到网络通信的预定义部分 中的密码信息;其中服务器计算机和第二客户端计算机被编程用于执行操作,包括标识 密码信息在网络通信的预定义部分中的位置;处理密码信息;以及至少部分基于密码信息 的处理结果来修改服务器计算机与第二客户端计算机之间的交互。客户端计算机可以包括移动设备(诸如移动电话、游戏机、个人数字助理和膝上 型计算机)和固定设备(诸如工作站、台式计算机和超级计算机)。操作可以包括所描述方 法的各种操作。处理密码信息可以包括对网络通信进行认证,以及建立密码密钥;并且修 改服务器计算机与第二客户端计算机之间的交互可以包括打开或者关闭在服务器计算机 或者第二客户端计算机中操作的程序的特征,以及使用密码密钥来发起服务器计算机与第 二客户端计算机之间的加密会话。此外,服务器计算机和第二客户端计算机可以被编程用 于执行操作,包括向网络通信中插入消息认证码和加密密钥建立信息。可以实现本说明书中所描述主题的特定实施方式,以获得以下一个或者多个优 点。加密会话可以使用降低反向工程风险的方法来建立,并且其与现有的非加密会话建立 协议向后兼容。加密证书可以使用该方法来建立,该证书可以用于启动加密会话或者用于 验证各种其他信息片。该方法可以抵抗反向工程,这是因为证书基本上可以隐藏在用于带 宽检测的数据内的可见之处。此外,数据(具有隐藏于其中的密码信息)仍然可以用于其 它目的,诸如带宽检测或者保持其他信息。在以下的附图和描述中描述本发明的一个或者多个实施方式的细节。本发明的其 他特征、方面和优点将从说明书、附图和权利要求中变得明显。


图1示出了在网络通信中告知密码信息的示例客户端-服务器环境;图2示出了在网络通信中告知密码信息的示例过程;图3示出了示例网络通信;图4示出了在用于播放媒体内容的网络通信中告知密码信息的另一示例客户 端_服务器环境;图5示出了在用于建立加密会话和启用/禁用媒体播放器/服务器系统中的特征 的网络通信中告知密码信息的示例过程;各附图中相似的标号和名称指代相似的元件。
具体实施例方式图1示出了在网络通信中告知密码信息的示例客户端-服务器环境100。客户端-服务器环境100可以支持加密会话和非加密会话二者,这二者都包括对握手150的使 用,其可以包括认证和其他通信协议。密码信息可以包括在握手150中被已知为包含随机 字节的已有分段中,从而允许将密码信息在可见之处保持为隐藏,这是因为密码信息本身 看似是随机的(归因于密码信息的性质)。以这种方式复用随机字节分段可以阻止反向工 程尝试,并且提供与先前编写的软件的互操作性。客户端-服务器环境100包括服务器计算机110。例如,服务器计算机110可以是 加利福尼亚州圣荷塞的Adobe System公司提供的FLASH Media Server。服务器计算机 110可以使用网络120(例如,因特网)来与一个或者多个第一客户端计算机130以及一个 或者多个第二客户端计算机140进行通信。握手150a和150b先于会话135和145,并且可 以包括来自服务器110的、客户端130可能不知道其在哪里的密码信息。会话启动握手150a和150b可以包括一个或者多个字节,其表示协议的版本(例 如,RTMP协议)以及用于打开套接字和建立会话的其他信息。握手150a和150b还可以 包括其他信息,诸如由操作系统报告的当前时间(例如,从加载系统起算的毫秒数)。握手 150a和150b包括包含随机数据的字节块,并且字节块还可以包括可用于对服务器与客户 端之间的网络通信进行认证的信息,以及用于建立加密会话的信息。此类密码信息可以由 服务器计算机110和客户端计算机140发送,但是客户端计算机130无需知道存在此类信 息或者能够发送此类信息。 第一客户端计算机130可以是被编程用于使用会话启动握手150a来与服务器计 算机110建立非加密会话的计算机。例如,第一客户端计算机130可以包括FLASH Player 程序的较旧版本,其开始于服务器计算机(例如,FLASH Media Server)的会话。服务器 110可以在网络通信中的随机数据的块中包括密码信息,其构成握手150a的一部分。然而, 如果第一客户端计算机130未能识别出此密码信息,并且因此没有发送适当的返回密码信 息,则与服务器110建立的会话135是非加密会话。注意,服务器110与客户端130之间交 互的其他方面也可能受到计算机130方面这一失败的影响,因为服务器110在握手150a之 后知道计算机130正在运行不了解通信协议的新密码信息部分的旧有程序。与此相反,第二客户端计算机140可以是被编程用于使用会话启动握手150b来与 服务器110建立加密会话的计算机。例如,第二客户端计算机140可以包括FLASH Player 程序的较新版本,其开始与服务器计算机(例如,FLASH Media Server)的加密会话。服 务器110可以在网络通信中的随机数据的块中包括密码信息,其构成握手150b的一部分。 第二客户端计算机140可以识别出该密码信息并且发送适当的返回密码信息。这继而允许 与服务器110建立的会话145成为加密会话。注意,服务器110与客户端140之间交互的 其他方面也可能受到握手150b的影响,因为服务器110在握手150b之后知道计算机140 正在运行了解通信协议的新密码信息部分的较新程序。由此,可以向用来与旧客户端程序 建立非加密会话的现有通信协议添加用于与新客户端程序建立加密会话的密码信息,而较 旧的客户端程序不了解新添加的密码信息。图3示出了一个示例网络通信300。网络通信300例如可以被用作先于会话135 和145的握手150a和150b的一部分。网络通信300包括预定义部分310,其包含随机数 据。另外,预定义部分310包括位置320处的嵌入密码信息。以这种方式,密码信息可以隐 藏在可见之处。使用该技术可以降低反向工程能够发现通信协议细节的可能性。
预定义部分310内的密码信息的位置320可以随实现而变化或者在给定实现内变 化。例如,可以将密码信息定位在预定字节位置,或者预定字节位置可以包含可根据其来确 定密码信息的位置320的值。在一些实现中,使用密码信息可以包括使用Diffie Hellman 密钥交换之类的加密密钥建立协议,或者用于建立一个或者多个对称或者不对称加密密钥 的其他适当技术。在一些实现中,使用密码信息可以包括使用对传输或者内容进行认证的 加密散列方法,诸如散列消息认证码(HMAC)。另外,虽然密码信息的位置320在图3中被示为完全包含在预定义部分310之内, 但是将会理解,密码信息的开始或者结束可以位于预定义部分310的开始或者结束,例如, 与报头330或者净荷340相邻。报头330和净荷340例如可以是无需加密的通信协议部分, 诸如用以标识所使用的RTMP协议的版本。在服务器计算机110与客户端计算机130和140 之间的两个方向的握手 通信中都可以使用此类信息。报头330可以包括若干预定的字节位置,其可以包含会话信息本身或者可以标识 其他信息的字节位置。例如,FLASH Player程序可以使用单个字节来指示RTMP协议的版 本。此类字节位置例如可以取决于用户在客户端设备上具有的FLASH Player程序的版 本。其他特定字节位置可以用于标识HMAC和Diffie Hellman信息的位置。净荷340可以 包括网络通信300的其他信息,诸如可以用于在用户的客户端设备上建立会话的参数。例 如,净荷340可以包括关于会话的信息。在一些实施方式中,净荷340可以包括校验和信息, 其可以用于测试净荷340和/或整个网络通信300的完整性。图2示出了在网络通信中告知密码信息的示例过程200。接收(210)网络通信的 预定义部分,其包含随机数据。例如,部分310可以由计算机140接收。可以标识(220)网 络通信的预定义部分中的密码信息的位置。例如,计算机140可以使用网络通信300的至 少一部分来确定该位置。网络通信300的该部分可以来自部分310、来自报头330、来自净 荷340或其组合。在某些实现中,网络通信300的一个或者多个部分可以用作编码的整数, 可以据此计算实际的字节位置(例如,使用模计算或者其他类似的计算)。在一些实现中, 计算可以基于预定的模除数,或者网络通信的某些块的字节长度可以用作模计算的除数。可以处理(230)密码信息。这可以包括诸如通过Diffie Hellman密钥交换来建立 密码密钥。这还可以包括诸如通过使用HMAC来对网络通信进行认证。可以至少部分基于 对密码信息的处理结果来修改(240)客户端-服务器环境中的交互。修改交互可以包括打 开或者关闭各种特征,诸如编辑、基于帧的时间线、动画能力、形状原语、开发和/或语言工 具(例如,JavaScriptActionScript等)、高级视频工具、音频支持、集成工具、转换工具和 丰富绘图能力,这仅是几个示例。修改交互可以包括使用密码密钥来发起加密会话。注意, 客户端_服务器环境中的交互还可以基于客户端计算机的已标识能力,因为一些特征可能 是依赖于硬件的。图4示出了另一示例客户端-服务器环境400,其中在用于播放媒体内容的网络通 信中告知密码信息。客户端_服务器环境400包括客户端计算机402和媒体服务器404。 媒体服务器404可以向客户端计算机402提供媒体内容406。例如,媒体服务器404可以包 括FLASH Media Server程序。媒体内容406可以包括web应用、游戏和电影以及客户端 计算机(例如,家庭个人计算机、移动电话、个人数字助理、智能电话或者各种嵌入式设备) 的多媒体内容。
客户端计算机402可以包括软件、固件和硬件。硬件可以包括计算机可读介质 412、处理器414和一个或者多个接口设备416。计算机可读介质412可以包括一个或者多 个硬盘驱动、外部驱动、磁盘、光盘、带驱动、存储器设备等等。处理器414可以包括能够解 释计算机程序指令和处理数据的一个或者多个中央处理单元,并且每个处理单元可以包括 一个或者多个处理器核。接口设备416可以包括一个或者多个显示和音频设备(例如,计 算机屏幕、计算机监视器、数字显示器、液晶显示器(IXD)、发光二极管(LED)等)和音频功 能组件(例如话筒、扬声器等)。接口设备416可以支持图形用户界面(⑶I),用户通过其 看到、听到并且体验媒体播放器应用408的输出。软件/固件可以包括媒体播放器应用408和应用执行环境410。例如,媒体 播放 器应用408可以是安装在家庭计算机或者其他电子设备上的FLASH Player程序。媒体 播放器应用408可以在应用执行环境410中运行,应用执行环境可以是计算机402的操作 系统(OS),或者安装在计算机402上的跨OS运行时环境,诸如可从加利福尼亚州圣荷塞的 Adobe System 公司获得的 Adobe Integrated Runtime (AIR )环境。嵌入密码信息的随机字节分段可以包括在客户端计算机402与媒体服务器404之 间的网络通信中。例如,随机字节分段可以由用户的FLASH Player程序和FLASH Media Server程序来生成。如上所述,可以在预定的或者程序确定的位置处的随机字节分段中加 入密码信息(例如,包括Diffie Hellman密钥交换和HMAC信息)。在某些实现中,可以通 过各种算法来确定位置,这些算法可以使用随机数据的片段来索引密码信息的位置。知道 新协议的通信接收端可以定位和移除来自随机字节分段的密码信息。如果可以验证密码信 息,则接收侧知道正在使用新的协议。如果无法验证密码信息,则可以在检查一个或者多个 回退位置之后确定没有使用新协议(因为无法在随机字节分段中找到预期的密码信息), 并且由此确定通信属于旧有类型。注意,从外部窃听者的角度看,密码信息仅仅被视为先前 包括的、可以用于带宽检测的随机数据。图5示出了在网络通信中告知密码信息的示例过程500,该网络通信用于建立加 密会话以及启用/禁用媒体播放器/服务器系统(诸如客户端-服务器环境400)中的特 征。过程500包括用于认证、确定加密参数以及打开或者关闭与网络通信相关联的特征的 操作。例如,网络通信可以涉及采用FLASH Player程序来播放可从FLASH Media Server 程序获得的媒体的用户。在某些实现中,可以根据可以与密码信息分离的版本信息来启用 或者禁用特征。例如,特征可用性(例如,音频或者视频功能)可以取决于安装在用户的客 户端计算机上的FLASH Player程序的版本。可以获取(502)随机数据的第一部分。例如,在客户端计算机发送的网络通信300 中,服务器可以查找预定义部分310中的预定字节位置。可以基于获取的第一部分来确定 (504)对预定义部分的第一索引。例如,随机数据的一个或者多个字节可以用作模运算中的 被除数,其中除数是预定义部分310中为消息认证码(例如HMAC)而留出的区域的长度减 去该消息认证码的长度。继而可以将第一索引设置为等于该模运算的余数加上预定义的偏 移(其可以是0)。注意,可以使用随机数据的各种组合来生成被除数。例如,可以将随机数据的X个 字节视为单个二进制数,其形成落在0到2(8x)-1范围内的被除数;或者可以将随机数据的 相同χ个字节视为χ个二进制数,其相加形成落在0到X(28-1)范围内的被除数。随机数据的各种其他组合也是可行的。另外,可以单独根据随机数据的第一部分来确定第一索引, 或者根据第一部分并结合从网络通信中获取的其他信息来确定第一索引。例如,此类其他 信息可以来自报头330或者净荷340。无论如何,一旦确定了索引,则该索引对应于用于其他随机数据的块中的消息认 证的密码信息的开始位置(例如,HMAC的开始点)。使用该密码信息来认证(506)网络通 信。例如,认证可以包括使用第一索引来访问网络通信300中的HMAC。如果消息认证码未 被确认(508),则过程500可以检查(510)回退第一部分是否可用。这发生于第一索引确定 (504)无法定位可用于认证(506)网络通信的消息认证码时。在这种情况下,可以提供一个或者多个回退算法用于获取(502)第一部分以及确 定(504)第一索引。每个回退算法可以使用不同的技术来获取(502)第一部分和/或确定 (504)第一索引。这些回退算法可以为认证过程提供附加的安全性,从而允许服务器系统在 目前使用的技术已被发现时改变索引编制技术,而客户端计算机继而可以自动地回退到新 的索引编制技术。一旦已经尝试了所有 可用的回退算法,过程500结束,而网络通信未被认 证。如果消息认证码得到确认(508),则获取(512)随机数据的第二部分。例如,在客 户端计算机发送的网络通信300中,服务器可以查找预定义部分310中的其他预定字节位 置。可以基于获取的第二部分来确定(514)对预定义部分的第二索引。例如,可以使用随 机数据的一个或者多个字节作为另一模运算中的被除数,其中除数是预定义部分310中为 加密参数(例如,Diffie Hellman信息)而留出的区域的长度减去该加密参数的长度。继 而可以将第二索引设置为等于该模运算的余数加上预定义的偏移(其可以是0)。对于消息认证码,可以使用随机数据的各种组合来生成被除数。例如,可以将随机 数据的χ个字节视为单个二进制数,其形成落在0到2(8x)-l范围内的被除数;或者可以将随 机数据的相同χ个字节视为χ个二进制数,其相加形成落在0到X(28-1)范围内的被除数。 随机数据的各种其他组合也是可行的。另外,可以单独根据随机数据的第二部分来确定第 二索引,或者根据第二部分并结合从网络通信中获取的其他信息来确定第二索引。例如,此 类其他信息可以来自报头330或者净荷340。此外,将会理解,随机数据分段需要大于消息 认证码和加密参数的总长度,例如,在使用32字节的HMAC和128字节的Diffie Hellman 信息时,随机数据分段应大于160字节。无论如何,一旦确定了索引,则该索引对应于其他随机数据的块中用于建立密码 密钥的加密参数的开始位置(例如,Diffie Hellman信息的开始点)。对网络通信中的该 密码信息进行确认(516)。该确认可以包括使用第二索引来访问和确认网络通信300中的 加密参数。如果加密参数未被确认(518),则过程500可以检查(520)回退第二部分是否可 用。这发生于第二索引确定(514)无法定位可用于在客户端-服务器环境中发起加密通信 的加密参数时。在这种情况下,可以提供一个或者多个回退算法用于获取(512)第二部分以及确 定(514)第二索引。每个回退算法可以使用不同的技术来获取(512)第二部分和/或确定 (514)第二索引。注意,这些算法也可以与用于第一索引的那些算法不同。这些回退算法可 以为加密会话建立过程提供附加的安全性,从而允许服务器系统在目前使用的技术已经被 发现时改变索引编制技术,而客户端计算机继而可以自动地回退到新索引编制技术。一旦已经尝试了所有可用的回退算法,过程500结束,而加密参数未被确认。如果加密参数得到确认(518),则可以确定(522)是否期望加密会话。例如 ,加密 参数可以包含指示会话(例如,会话145)将是加密会话的信息。如果期望,则发起(524) 加密会话。否则,可以发起非加密会话。任何会话(例如,加密的或者非加密的)均可以在 客户端计算机402 (例如,执行FLASH Player程序)与媒体服务器404 (例如,FLASH Media Server)之间。如果确定(526)将启用或者禁用一个或者多个特征,则打开或者关闭(528)媒体 播放器、媒体服务器或者两者的一个或者多个特征。例如,可以根据客户端媒体播放器的版 本号来打开或者关闭一组特征。该版本号可以由客户端媒体播放器(例如,在握手150中 以非加密和非伪装形式)来提供,并且服务器可以根据客户端在网络通信的随机字节分段 内适当地并入了加密信息这一事实来决定信任所提供的版本号(例如,客户端媒体播放器 不是已被修改为不适当地将其自身标识为较新版本的旧有播放器)。本说明书中描述的主题和功能性操作的实施方式可以在数字电子电路中实现,或 者在计算机软件、固件或硬件中实现,该计算机软件、固件或硬件包括本说明书中公开的结 构及其等同结构、或是它们的一个或多个的组合。本说明书中描述的主题的实施方式可以 实现为一个或多个计算机程序产品,也即,在计算机可读介质上编码的、以便由数据处理装 置执行或控制数据处理装置操作的一个或多个计算机程序指令模块。计算机可读介质可以 是机器可读的存储设备、机器可读的存储衬底、存储器设备、实现计算机可读的传播信号的 组合、或者它们中的一个或多个的结合。术语“数据处理装置”涵盖用于处理数据的所有装 置、设备和机器,例如包括可编程处理器、计算机,或者多个处理器或计算机。除了硬件之 夕卜,该装置可以包括为考虑中的计算机程序创建执行环境的代码,例如,构成处理器固件、 协议栈、数据库管理系统、操作系统、跨平台运行时环境,或者它们中一个或多个的结合的 代码。传播信号是人工产生的信号,例如,机器产生的电信号、光信号或者电磁信号,生成该 信号以对信息进行编码,以便传输到适当的接收器装置。计算机程序(也称为程序、软件、软件应用、脚本或代码)可以由任意形式的编程 语言编写,包括编译语言或解释语言,并且计算机程序可以任意形式部署,包括部署为单独 的程序或模块、组件、子例程,或者适于在计算环境中使用的其他单元。计算机程序无需对 应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文 档中的一个或多个脚本)的文件的一部分中、可以存储在专门用于考虑中的程序的单个文 件中,或者存储在多个协同文件中(例如,存储一个或多个模块、子程序,或代码部分的文 件)。可以将计算机程序部署为在一个计算机上执行,或者将其部署为在位于一个地点的多 个计算机上执行或跨过多个地点分布且通过通信网络互连的多个计算机上执行。本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或 多个可编程处理器执行,用于通过对输入数据进行操作以及产生输出来执行功能。该处理 和逻辑流程还例如可以由FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑 电路执行,并且也可以将装置实现为所述专用逻辑电路。适于计算机程序执行的处理器例如包括通用和专用处理器两者、以及任意类型的 数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机访问存储器或 两者处接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容 量存储设备,或被操作性地耦合为从所述用于存储数据的一个或多个海量存储设备接收数 据、向其传送数据、或者进行两者,该海量存储设备例如磁盘、磁光盘、或光盘。然而,计算机 不必一定具有这样的设备。而且,计算机可以嵌入在其他设备中,例如移动电话、个人数字 助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器,这仅是几例。适于存储计算机程 序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,例如 包括半导体存储设备,如EPROM、EEPROM和闪存设备;磁盘,如内部硬盘或可拆卸硬盘;磁 光盘;以及⑶-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或是包括在专 用逻辑电路中。为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有用于向用 户显示信息的显示设备以及用户可以通过其向计算机提供输入的键盘和指点设备的计算 机上实现,其中显示设备例如CRT (阴极射线管)或者IXD (液晶显示器)监视器,指点设备 例如鼠标或者轨迹球。同样可以使用其他类型的设备来提供与用户的交互;例如,提供给用 户的反馈可以是任何形式的感观反馈,例如视觉 反馈、声觉反馈或者触觉反馈;并且可以接 收来自用户的任意形式的输入,包括声音、语音或触觉输入。本说明书中描述的主题的实施方式可以实现在包括后端组件的计算系统中,例如 实现为数据服务器;或实现在包括中间件组件的计算系统中,例如应用服务器;或实现在 包括前端组件的计算系统中,例如具有图形用户界面或者Web浏览器的客户端计算机,用 户通过该图形用户界面或Web浏览器可以与本说明书中描述的主题的实现进行交互;或实 现在一个或多个这样的后端、中间件、或前端组件的任意结合中。系统组件可以与任意形式 或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和 广域网(“WAN”),例如因特网。计算系统可以包括客户端和服务器。客户端和服务器一般相互远离,并且通常通 过通信网络进行交互。客户端和服务器的关系是借助于在各自计算机上运行的、彼此具有 客户端_服务器关系的计算机程序得到的。尽管本说明书包含多种特定细节,但是不应将其理解为是对本发明的范围或者所 要求保护内容的限制,而应当理解为是本发明具体实施方式
的特定特征的描述。本说明书 中描述的在各个实施方式的上下文中的某些特征也可以在单个实施方式中结合实现。相 反,在单个实施方式上下文中描述的各种特征也可以分别实现在多个实施方式中或者任意 适当的子组合中。而且,尽管上文可能将特征描述为在特定的组合中操作,甚至初始也是这 样要求保护的,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合 中去除,并且所要求保护的组合可以针对子组合或组合的变形。类似地,尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所 示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的 结果。在特定环境中,多任务和并行处理可能是有利的。而且,在上述实施方式中多个系统 组件的分离不应被理解为在所有实施方式中需要这些操作,应当将其理解为所描述的程序 组件和系统通常可以在单个软件产品中集成在一起,或是被打包到多个软件产品中。由此,已经描述了本发明的特定实施方式。其他实施方式也在所附权利要求的范 围内。例如,权利要求中记载的动作可以按照不同的顺序执行并且仍然达到所期望的结果。随机数据无需是真 正的随机数据,而可以是伪随机数据。而且,网络通信的预定义部分仅需 要为随机数据而保留,但是并非所有实现中都需要实际地包括随机数据。
权利要求
一种方法,包括在客户端-服务器环境中接收插入到网络通信的预定义部分中的密码信息,其中所述网络通信的所述预定义部分为随机数据而保留;标识所述密码信息在所述网络通信的所述预定义部分中的位置;处理所述密码信息;以及至少部分基于对所述密码信息的处理结果,来修改所述客户端-服务器环境中的交互。
2.如权利要求1的方法,其中标识所述位置包括使用所述网络通信的至少一部分来 确定所述位置。
3.如权利要求2的方法,其中所述预定义部分包括随机数据,并且使用所述网络通信 的至少一部分来确定所述位置包括接收所述随机数据的一部分;以及基于所述随机数据的已获取部分,确定对所述网络通信中的所述预定义部分的索引。
4.如权利要求3的方法,其中使用所述网络通信的至少一部分来确定所述位置包括获取所述随机数据的多个不同部分;以及基于所述随机数据的所述多个不同部分,确定对所述网络通信的所述预定义部分的多 个不同索引。
5.如权利要求1的方法,其中处理所述密码信息包括建立密码密钥,并且其中修改所 述客户端_服务器环境中的交互包括使用所述密码密钥来发起加密会话。
6.如权利要求1的方法,其中处理所述密码信息包括认证所述网络通信,并且其中修 改所述客户端-服务器环境中的交互包括打开或者关闭在所述客户端-服务器环境中操作 的程序的特征。
7.一种计算机可读介质,具有编码在其中的计算机程序产品,所述计算机程序产品可 操作以使得数据处理装置执行操作,所述操作包括在客户端-服务器环境中接收插入到网络通信的预定义部分中的密码信息,其中所述 网络通信的预定义部分为随机数据而保留;标识所述密码信息在所述网络通信的所述预定义部分中的位置;处理所述密码信息;以及至少部分基于所述密码信息的处理结果来修改所述客户端_服务器环境中的交互。
8.如权利要求7的计算机可读介质,其中标识所述位置包括使用所述网络通信的至少 一部分来确定所述位置。
9.如权利要求8的计算机可读介质,其中所述预定义部分包括随机数据,并且使用所 述网络通信的至少一部分来确定所述位置包括获取所述随机数据的一部分;以及基于所述随机数据的已获取部分,确定对所述网络通信的所述预定义部分的索引。
10.如权利要求9的计算机可读介质,其中使用所述网络通信的至少一部分来确定所 述位置包括获取所述随机数据的多个不同部分;以及基于所述随机数据的所述多个不同部分,确定对所述网络通信的所述预定义部分的多个不同索引。
11.如权利要求7的计算机可读介质,其中处理所述密码信息包括建立密码密钥,并且 其中修改所述客户端_服务器环境中的交互包括使用所述密码密钥来发起加密会话。
12.如权利要求7的计算机可读介质,其中处理所述密码信息包括对所述网络通信 进行认证,并且其中修改所述客户端-服务器环境中的交互包括打开或者关闭所述客户 端_服务器环境中操作的程序的特征。
13.一种系统,包括服务器计算机,其被编程用于使用包括网络通信的会话启动握手来通过网络与客户端 计算机建立非加密会话和加密会话二者,所述网络通信包括为随机数据而保留的预定义部 分;第一客户端计算机,其被编程用于利用使用所述会话启动握手来与所述服务器计算机 建立非加密会话;以及第二客户端计算机,其被编程用于使用所述会话启动握手来与所述服务器计算机建立 加密会话,所述会话启动握手包括插入到所述网络通信的所述预定义部分中的密码信息;其中所述服务器计算机和所述第二客户端计算机被编程用于执行操作,所述操作包 括标识所述密码信息在所述网络通信的所述预定义部分中的位置,处理所述密码信息,以 及至少部分基于所述密码信息的处理结果来修改所述服务器计算机与所述第二客户端计 算机之间的交互。
14.如权利要求13的系统,其中所述客户端计算机包括移动设备。
15.如权利要求13的系统,其中标识所述位置包括使用所述网络通信的至少一部分来 确定所述位置。
16.如权利要求15的系统,其中所述预定义部分包括随机数据,并且使用所述网络通 信的至少一部分来确定所述位置包括获取所述随机数据的一部分;以及基于所述随机数据的已获取部分,确定对所述网络通信的所述预定义部分的索引。
17.如权利要求16的系统,其中使用所述网络通信的至少一部分来确定所述位置包括获取所述随机数据的多个不同部分;以及基于所述随机数据的所述多个不同部分,确定对所述网络通信的所述预定义部分的多 个不同索引。
18.如权利要求13的系统,其中处理所述密码信息包括 对所述网络通信进行认证;以及建立密码密钥;以及其中修改所述服务器计算机与所述第二客户端计算机之间的交互包括 打开或者关闭在所述服务器计算机或者所述第二客户端计算机中操作的程序的特征,以及使用所述密码密钥来发起所述服务器计算机与所述第二客户端计算机之间的加密会话。
19.如权利要求13的系统,其中所述服务器计算机和所述第二客户端计算机被编程用于执行操作,所述操作包括向所述网络通信中插入消息认证码和加密密钥建立信息。
20.一种方法,包括标识将要在客户端-服务器环境中发送的网络通信的预定义部分中的位置,其中所述 网络通信的所述预定义部分为随机数据而保留;在所述位置处向所述网络通信的所述预定义部分中插入密码信息;以及 在所述客户端_服务器环境中发送所述网络通信,以促使至少部分基于对所述密码信 息的处理结果来修改所述客户端_服务器环境中的交互。
21.如权利要求20的方法,其中所述预定义部分包括随机数据,并且标识所述位置包括获取所述随机数据的一部分;以及基于所述随机数据的已获取部分,确定对所述网络通信的所述预定义部分的索引。
22.—种计算机可读介质,具有编码在其中的计算机程序产品,所述计算机程序产品可 操作以使得数据处理装置执行操作,所述操作包括标识将要在客户端-服务器环境中发送的网络通信的预定义部分中的位置,其中所述 网络通信的所述预定义部分为随机数据而保留;在所述位置处向所述网络通信的所述预定义部分中插入密码信息;以及 在所述客户端_服务器环境中发送所述网络通信,以促使至少部分基于对所述密码信 息的处理结果来修改所述客户端_服务器环境中的交互。
23.如权利要求22的计算机可读介质,其中所述预定义部分包括随机数据,并且标识 所述位置包括获取所述随机数据的一部分;以及基于所述随机数据的已获取部分,确定对所述网络通信的所述预定义部分的索引。
全文摘要
本发明描述了涉及在网络通信中告知密码信息的技术。总体上,本发明中所描述主题的方面可以通过一种方法来具体化,该方法包括标识将要在客户端-服务器环境中发送的网络通信的预定义部分中的位置,其中该预定义部分为随机数据而保留;在该位置处向网络通信的预定义部分插入密码信息;以及在客户端-服务器环境中发送网络通信,以促使至少部分基于对密码信息的处理结果来修改客户端-服务器环境中的交互。而且,在接收侧,在客户端-服务器环境中接收插入到网络通信的预定义部分中的密码信息;标识位置;处理密码信息;以及至少部分基于处理的结果来修改客户端-服务器环境中的交互。
文档编号H04L29/06GK101861721SQ200880116205
公开日2010年10月13日 申请日期2008年10月14日 优先权日2007年10月15日
发明者A·维尔洛克, E·查恩, M·索恩伯格, M·考夫曼, P·舍蒂, S·玛纳普拉加达 申请人:奥多比公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1