用于验证消息的方法与流程

文档序号:12481927阅读:483来源:国知局
用于验证消息的方法与流程

本申请要求享有于2014年3月20日提交的美国专利申请No.14/220,983的优先权,其全部内容通过引用的方式并入本文。

技术领域

本公开涉及安全通信,具体地,涉及验证消息。



背景技术:

已经在多种系统和网络中使用密码技术(不论是基于对称密钥密码术、还是非对称密钥密码术还是这两者)来保护数据和消息两者。在特定上下文中的加密原语的适当选择可以取决于各种因素,例如计算资源约束或威胁模型。

警告消息是已被用于提供关于灾害和其他紧急情况的及时且准确的警报、警告和关键信息的特定类型的消息。警告消息的示例包括在第三代合作伙伴计划(3GPP)的上下文中描述的公共警告系统(PWS)。PWS提供了用于韩国公共警报系统(KPAS)、欧洲警告系统(EU-ALERT)和商业移动警报系统(CMAS)消息的框架,该框架可以分为三类:总统级;即将发生的威胁和儿童绑架紧急情况;以及地震和海啸警告系统(EWS)消息。

警告消息的结构、语法和协议通常由法规要求来确定。通常警告消息被构造为鲁棒且紧凑的,以便于在带宽受限(不论是由于施加在通信网络上的物理约束、还是由于基于事件的业务导致网络上的高于正常的业务)的情况期间进行重要信息的传输。

警告消息可以包括多个组成;例如,警告消息可以包括事件的描述、受事件影响的地理区域、推荐的行动、警告消息的到期时间;以及对警告消息负责的机构的身份。

普遍感兴趣的是增强消息(特别是警告消息)的可靠性、灵活性和安全性,以使公众能够采取适当行动保护他们的家人和他们自己免受严重伤害或者生命或财产损失。因此,通过通信网络的消息传输可能需要满足某些安全要求。例如,针对通知的安全要求可以包括以下项中的任意一个或多个:(a)保护消息的完整性;(b)通信网络将防止错误消息;以及(c)仅来自授权和认证源的消息将经由通信网络传输。这样的安全要求可以用于最小化可能降低消息系统的有效性的假消息的接收,并且在警告消息的情况下,假消息可能会降低网络的有效性,因为用户变得不太响应。假消息还可能导致混乱、危险状况和/或广泛恐慌。

针对消息的安全要求可能受制于法规政策,并且也可能因地区而异。针对通知(例如警告消息)的安全要求的示例可以在3GPP中针对公共警告系统(PWS)消息广播的要求中找到,例如文献3GPP TS22.268v11.2.0“Public Warning System(PWS)requirements(公共警告系统(PWS)要求)(版本11)”中的规定。

除了安全要求之外,消息还可以与要求消息具有有限大小的某些延迟要求相关联。例如,被标准化的地震和海啸警告系统(ETWS)可以包含如下要求:即在这些系统中发送的警告消息从广播到由终端计算设备接收到的延迟小于4秒。这样的要求可以确保消息及时地被用户接收。这种延迟和/或其他要求可以设置大小约束,该大小约束限制用于消息和/或任何关联字段(例如,安全比特)的比特数。

此外,由于大型通信系统的异构性质,常常难以确保发送消息的各个广播服务器和接收方通信设备之间的时间同步。因此,消息的安全性和大小要求必须进一步适应区分当前广播消息和先前广播消息的需要。

试图中断通信的恶意中间设备可能会拦截原始广播,并且在稍后的时间点重传该广播以执行“重放攻击”。类似地,网络上的过期服务器可能“无意地”转发过期消息。为了防止重放攻击或简单错误,期望区分当前和先前广播的消息,以便减少用户接收到误报消息(false positive message)。

通信网络应该被设计为确保满足针对这些消息的安全和延迟要求,同时在核心网络和无线电接口中确保最小的带宽开销和最小的资源消耗。另外,网络设计可能需要确保网络上的传统通信设备也能够处理通知,以避免由于这种传统设备的用户不知道通知而导致的责任。网络设计还可能需要考虑可能从一个网络漫游到另一个网络的移动设备。

附图说明

现在将参照附图仅通过举例说明的方式描述实施例,在附图中:

图1示出了用于传输安全通知的通信系统的示例性实施例;

图2示出了允许使用核心网和接入网中的各种节点将警告消息从小区广播实体(CBE)传输到通信设备的示例网络;

图3a在流程图中示出了通信设备处的示例方法;

图3b在流程图中示出了通信设备处的示例方法;

图3c在流程图中示出了通信设备处的示例方法;

图4在流程图中示出了服务器处的示例方法;以及

图5是示出了移动通信设备的框图。

在各个附图中,相似的附图标记和名称指示相似的元件。

具体实施方式

在实施方式中,提供了一种接受通知的方法,所述方法包括:接收所述通知,所述通知包含消息、计数器值、签名和签名者的指示;处理所述指示以获得与签名者相对应的签名者身份;基于签名者身份,获得先前存储的与所述签名者相关联的当前计数器值;将所述计数器值与当前计数器值进行比较;以及基于所述比较接受所接收的通知。

在所述方法的一方面,所述计数器值包括证书计数器值,并且其中所述指示包括所述证书计数器值和与产生了所述证书计数器值的证书机构相对应的证书机构身份,并且其中所存储的当前计数器值进一步与所述证书机构身份相关联,并且其中所述方法还包括:处理所述指示以获得所述证书机构身份;并且其中获得当前计数器值包括:基于所述签名者身份和所述证书机构身份来获得所述先前存储的当前计数器值。

在所述方法的一方面,所述计数器值包括消息计数器值,并且当前计数器值包括当前消息计数器值,并且其中所述指示还包括指示计数器值和证书机构身份,其中,所述获得还包括:基于所述签名者身份和所述证书机构身份,获得先前存储的与所述签名者身份和所述证书机构身份相关联的当前指示计数器值;以及其中所述比较还包括:将所述指示计数器值与当前指示计数器值进行比较。

该方面还可以包括:所述比较确认所述消息计数器大于当前消息计数器,并且确认所述指示计数器大于或等于当前指示计数器。

在所述方法的一方面,计数器值包括消息计数器值。

在所述方法的一方面,处理所述指示以获得签名者身份包括:处理所述指示以获得与签名者相关联的公钥信息,并且其中基于签名者身份获得包括基于公钥信息获得。

在所述方法的一方面,当所述通知被接受时:处理所述指示以获得公钥信息;以及使用所述公钥信息验证所述签名以认证所述通知。

所述方面还可以包括:如果所述签名未被验证,则丢弃所述通知。

在一方面,所述方法还可以包括:如果所接收的通知未被接受,则丢弃所述通知。

在所述方法的一方面,所述指示包括证书或隐式证书。

在所述方法的一方面,比较所述计数器值和当前计数器值包括:验证所述计数器值大于或等于当前计数器值。

在一方面,所述方法还可以包括:如果所述比较失败,则丢弃所述通知。

在所述方法的一方面,比较所述计数器值和当前计数器值包括:验证所述计数器值大于当前计数器值。

该方面还可以包括:如果所述比较失败,则丢弃所述通知。

在所述方法的一方面,证书是ECQV隐式证书。

在所述方法的一方面,签名是加密MAC签名、DSA签名和ECDSA签名中的一个。

在所述方法的一方面,当基于所述比较接受所接收的通知时,所述方法还包括用所接收的计数器值替换当前计数器值。

在所述方法的一方面,所接收的通知是警告消息。

在所述方法的一方面,在接受了所接收的通知之后,所述方法还包括:向用户传送所述消息。

在所述方法的一方面,当所述计数器值与当前计数器值的比较失败时,所述方法还包括丢弃所接收的通知。

在一方面,所述方法还可以包括:如果所述比较失败,则向用户传送所述消息,并且包括标识比较失败的标志。

在一方面,所述方法还可以包括:如果所述比较失败,则向用户传送所述消息,并且包括标识比较失败的标志包括。

在一方面,所述方法还可以包括:向用户传送具有差分标志的消息,所述差分标志标识由所述比较所确定的计数器值的状态。

一种计算设备,包括处理器和存储器,操作用于执行上述方法中的任意一个。

一种包括非瞬时性机器可读介质的软件程序产品,所述非瞬时性机器可读介质包括指令,所述指令在计算设备的处理器上执行时使得计算设备能够执行上述方法中的任意一个。

参照图1,示出了用于广播通知的示例广播模型的代表性示意图,其中每个通知包含消息。在图1的示例中,代表性通信系统100由一个或多个源服务器10构成,其中每个源服务器操作用于产生用于通过通信网络15向多个接收方设备20中的至少一个广播的消息。

如将理解的,通信网络15可以包括公用网络(例如公共互联网),或者可以包括单独网络(例如源服务器10和网络服务器30之间的私用网络、将网络服务器30连接到向接收方设备20提供连接的通信提供方的私用移动网络的公共网络)的组合。

在一些实现中,源服务器10可操作用于将消息处理成包含该消息的通知,并向接收方设备20广播该通知。在其他实现中,源服务器10可操作用于将消息转发到网络服务器30,网络服务器30可操作用于将消息处理成包含该消息的通知,并且通过通信网络15向多个接收方设备20广播该通知。

在一些实现中,通信系统100可以使用非对称密钥密码技术来为传输到一个或多个通信设备20的通知提供完整性和认证保护。在图1的实现中,通信系统100包括至少一个证书机构服务器(CA)40,以发布可以被认证以确认通知发送者的身份的证书。

CA 40、通信设备20、源服务器10和网络服务器30可以通过网络15彼此通信以及与通信系统100的其他组件通信。在图1所示的示例中,消息签名者(无论是源服务器10还是网络服务器35)可以向CA40发送证书请求,并且CA 40可以通过发送证书来进行响应。服务器10或30可以向通信设备20发送消息的签名和证书,并且通信设备20可以使用CA 40发布的证书来验证签名。通信系统100可以支持附加或不同类型的通信。在一些实现中,通信设备20和服务器10、30还可以互相交换以及与CA 40交换加密消息和其他类型的信息。例如,CA 40可以为消息签名者10、30产生密钥对,并且可以使用加密的信道向服务器10或30发送私钥。

CA 40是可以在密码系统中执行CA的操作的计算系统。CA 40通常可操作用于接收、发送、处理和存储与密码系统相关联的信息。尽管图1示出单个CA 40,但是CA可以使用多个CA 40来实现,包括服务器集群以及除服务器之外的附加或不同类型的计算设备。

通信系统100可以包括更多、更少或不同的组件。例如,通信系统100可以包括附加的存储设备、附加的服务器(包括附加的认证机构服务器)、附加的通信设备和图中未示出的其他特征。

在图1的实施例中,CA 40可以发布将消息“所有者”(例如使用私钥签署了警告消息的消息签名者)的身份绑定到对应公钥的证书。通信设备20可以在验证警告消息的签名之前,利用CA 40的公钥信息来验证身份和公钥的这种绑定。用于处理证书的必要公共信息(例如,CA的公共密钥)可以在制造时或者与固定的根地址通信时被预配置给通信设备20(以及可选的任意服务器)。由于只有CA 40知道CA的私钥,所以可以使用开放信道来分发证书,这不同于可能需要安全信道来分发公钥的其他解决方案。

在一种实现中,签名消息的接收方可以通过将作为消息的一部分所包括的一个或多个计数器与由接收方存储的对应的一个或多个当前计数器进行比较,来获得该消息是有效消息的附加确认。

如图1所示,在一种实现中,原始消息可以被处理成包括消息、消息计数器值、签名和消息签名者的指示(例如,可以构成消息的安全信息的证书或隐式证书)在内的通知,以用于传输到通信装置20。在一些实现中,单次传输包括原始消息的至少一部分。在一些实现中,单次传输还包括整个原始消息。

接收方通信设备20依赖于验证签名以确认消息是由与消息签名者的指示相关联的源服务器10原始产生的有效消息,并且依赖于消息计数器值来确认这是最新警告消息,而不是重放攻击情况下的过期消息。

在图1中还示出的另一实现中,指示还可以包括与该指示相关联的其自身的指示计数器值。因此,接收方依赖于验证签名以确认消息是由与消息签名者的指示相关联的源服务器10原始产生的有效消息,并且依赖于指示计数器值来确认这是最新指示,而不是重放攻击情况下的过期指示。

在一个实现中,消息计数器和指示计数器都存在,并且计算设备可以评估消息计数器值和指示计数器值两者,以确认这是包括有效最新指示在内的有效最新警告消息。

在用于警告消息的3GPP上下文中,这种单次传输可以被实现为小区广播服务(CBS)数据。例如,3GPP TS 23.401v11.0.0的第9.3节:“General Packet Radio Service(GPRS)enhancements for Evolved Universal Terrestrial Radio Access Network(E-UTRAN) access(用于演进的通用陆地无线电接入网(E-UTRAN)接入的通用分组无线电服务(GPRS)增强)”指出,CBS消息由包括警告消息和安全信息在内的若干参数中的至少一些组成。

图2示出了允许向通信设备202进行通知的这种单次传输的示例公共警告系统(PWS)架构(在3GPP TR 33.869中呈现)。图2的架构仅作为示例被包括,并且可以替代地使用利用各种无线电网络技术中的一个或多个的其他网络架构。

PWS是若干紧急警报系统(例如天气、地震等)的保护伞。由于警告消息的广泛分发,期望确保警告消息的完整性和安全性以避免系统的误用。安全要求主要考虑通信设备和向设备广播警告消息的接入网络之间的空中接口。小区广播中心(CBC)服务器是核心网络的一部分,并连接到适当的网络节点。对于GSM无线电接入网(GERAN),CBC服务器与接入网中的基站控制器(BSC)连接;对于通用陆地无线电接入网(UTRAN),CBC服务器与接入网中的无线电网络控制器(RNC)连接;以及对于演进的通用/UMTS陆地无线电接入网(E-UTRAN),CBC服务器与核心网络中的移动管理实体(MME)连接。小区广播实体(CBE)服务器206在接入网和核心网的外部,并且可以负责对小区广播服务(CBS)进行格式化的所有方面,其中使用CBC服务器和相关联的网络节点将所述小区广播服务(CBS)发送到通信设备202。分别在GERAN、UTRAN和E-UTRAN中使用基站收发台(BTS)、节点B或演进节点B来实现警告消息到通信设备202的传输。

在一些场景中,可以向地理区域内的所有通信设备(甚至是可能处于空闲模式的通信设备)广播警告消息,而不需要来自通信设备的确认。

PWS可以为警告消息指定特定的延迟要求,以便确保消息被及时传递到所有通信设备。这些延迟要求可能需要警告消息和/或相关联的数据字段(例如,包括签名和证书在内的安全信息)受到大小约束。所要求的安全级别可以对所使用的公钥的大小以及由此关联的证书和产生的签名提出要求。一般来说,警告消息通常受到严格的大小约束,以确保实际上以及时的方式接收警告消息以便向接收方警告事件。

用于提高警告消息的安全性的一个提议是包括一种基于隐式证书的方法。在该方法下,消息签名者周期性地从证书机构(CA)获得隐式证书,并且将隐式证书包括作为诸如警告消息之类的消息的安全消息部分的一部分。隐式证书与CA的公钥结合在一起,从而生成消息签名者的公钥。接收方能够使用消息签名者的公钥来验证签名。

由于消息和隐式证书通常具有时间限制,所以安全系统依赖于通信设备20能够还基于时间戳或其他测量来确认消息或隐式证书的有效性。警告消息系统面临的具体问题是不期望使用时间戳来标记证书或消息的日期,因为其需要在CA 40、签名者和接收方通信设备20之间的同步。如果同步失败,则有效的警告消息将被接收方通信设备20拒绝。

期望包括某种形式的时间限制以防止重放攻击。重放攻击发生在第三方拦截有效传输、以及重复或延迟向接收方发送有效消息时。在PWS的上下文中,还可能由于故障服务器重复地广播过期消息而无意地造成重放。

在这两种场景中,接收方设备接收和接受过期消息都有可能威胁到PWS的完整性。用户可能最初会困惑,并且不正确地对未发生的事件采取纠正行动,或者如果他们对他们接收到的消息的真实性和及时性失去信心,则可能会忽视未来的消息。如上所述,使用利用隐式证书方法的时间戳是用于避免重放攻击的有效方法。然而,在PWS的上下文中面临的具体问题是确保系统中所有设备的同步。

在一种实现中,包括消息计数器的通知用于提供附加信息以允许接收方确认消息是最新的。除了消息计数器之外,通知包括用于接收方通信设备至少基于消息签名者的身份来对消息计数器进行分类和认证的足够信息。可以理解,由于针对警告消息设置的大小约束,期望最小化包括在消息中的安全信息的量,并且仍然允许接收方通信设备对消息计数器进行分类和认证。在一方面,通知包括该通知的指示部分内的标识信息。在一方面,标识信息可以包括如图1所示的公钥重构数据。

在一种实现中,指示计数器用于提供附加信息以允许接收方确认指示(例如证书或隐式证书)是最新的。除了指示计数器之外,消息还包括足够的信息,用于接收方通信设备至少基于消息签名者的身份和用于为该消息提供证书的CA的身份两者,来对指示计数器进行分类和认证。可以理解,由于针对警告消息设置的大小约束,期望最小化包括在消息中的安全信息的量,并且仍然允许接收方通信设备对指示计数器进行分类和认证。

再次参照图1,诸如源服务器10、网络服务器30和CA 40之类的服务器通常包括数据处理装置、数据存储介质和通信接口。存储器可以包括例如随机存取存储器(RAM)、存储设备(例如,可写只读存储器(ROM))、硬盘或其他类型的存储介质。

图1的示例性CA 40可以是预编程的,或者可以通过从另一个源(例如,通过数据网络或以另一种方式从CD-ROM、从另一计算机设备)加载程序来编程(和重新编程)。I/O控制器可以耦接到输入/输出设备(例如,监视器、键盘)并耦接到网络15。输入/输出设备通过诸如串行链路、无线链路(例如,红外、射频)、并行链路或其他类型的链路之类的通信链路,以模拟或数字形式接收和发送数据。存储器可以存储与计算机应用、程序和计算机程序模块以及其他资源相关联的指令(例如,计算机代码)。存储器还可以存储可以由在CA 40上运行的应用、程序、模块或虚拟机解释的应用数据和数据对象。存储器可以存储附加信息,例如与操作系统、设备驱动器、存档数据或其他类型的信息相关联的文件和指令。处理器可以执行指令以基于数据输入产生输出数据。例如,处理器可以通过执行或解释软件、脚本、功能、可执行文件和其他类型的计算机程序模块来运行应用和程序。由处理器接收的输入数据和由处理器产生的输出数据可以存储在诸如存储器或存储设备之类的计算机可读介质中。

网络15可以包括连接以实现终端的用户之间的通信的终端、链路和节点的任意集合。例如,网络15可以包括无线或有线网络、蜂窝网络、电信网络、企业网络、专用公共网络、局域网(LAN)、广域网(WAN)、私人网络、公共网络(例如互联网)、WiFi网络、包括卫星链路的网络或其他类型的通信网络。网络15可以包括由实现各种安全级别的防火墙或类似特征定义的分层结构。网络15可以包括各种节点,例如服务器、网关或路由器。

通信设备20是可以基于由密码系统指定的通信方案通过通信网络15进行通信的计算设备。通信设备20通常可操作用于接收、发送、处理和存储信息。通信设备20通常包括数据处理装置、数据存储介质和通信接口。

在一些实现中,签名者可以是源服务器10之一,例如分发消息的代理。在其他实现中,签名者可以是从诸如网络服务器30的多个源服务器10收集消息的集中式实体。在通知是警告消息的示例中,源服务器10可以分别对应于负责识别诸如天气事件、地震、火灾等的警告条件的组织,并且网络服务器30可以是中央广播实体,其从多个不同的组织接收消息,并且处理这些消息以产生可以向通信设备20广播的通知。

在一种实现中,由消息源(例如源服务器10)产生的消息被处理以产生可以向通信设备20广播的通知。为了确保消息的完整性和真实性,处理包括:消息签名者为消息分配消息计数器值,签署消息和消息计数器值,以及产生消息签名者的指示。该指示可以包括例如证书或隐式证书。消息、签名、消息计数器值和指示可以被封装到用于向通信设备20广播的通知中。在一种实现中,消息计数器值可以替换通常可能存在的消息时间戳。

在一种实现中,使用消息签名者的私钥、消息和消息计数器值来产生签名。在一些实现中,可以进一步使用指示(例如与消息签名者的私钥相对应的隐式证书)来产生签名。以这种方式,可以认为签名基于消息和消息计数器值,并且在一些实现中还基于指示。

在一种实现中,由消息签名者分配的消息计数器值还与对应于指示的CA 40的身份相关联。因此,当为消息分配消息计数器值时,消息签名者将基于用于由消息签名者发送的且由来自同一CA 40的指示所保护的先前消息的在先消息计数器值来顺序地分配下一个值。以这种方式,消息签名者将为在签署消息时可能使用的每个CA 40保持单独的计数器序列。

在对消息和消息计数器值签名之后,消息签名者可以直接地或通过中间方来经由网络向通信设备20广播包括消息、与签名者相对应的消息计数器值、由签名者签署并基于该消息和消息计数器值的签名、以及签名者的指示(例如证书或隐式证书)在内的通知。

与由签名者使用的签名者私钥相对应的签名者公钥由签名者的指示来标识,并且可以由诸如通信设备20之一的接收方用来识别签名者并验证签名。通常,CA 40可以在验证过程中由通信设备20使用。例如,通信设备20可以获得证书机构公钥以处理该指示,从而获得签名者的公钥。通常,指示可以包括由CA 40为该签名者发布的证书或隐式证书。

在接受验证的通知之前,接收方可以通过确认这是由签名者发送的有效的最新消息来获得关于消息的附加信息。接收方通过将消息计数器值与由接收方维护并与消息签名者相关联的当前计数器值进行比较,来获得该附加确认。可以基于签名者的指示来获得消息签名者的身份。在这些实现中,接收方存储当前计数器值,并将所存储的当前计数器值与签名者的身份相关联。

在一些实现中,如上所述,由消息签名者分配的消息计数器值还可以与提供指示的CA 40相对应。通常,消息计数器值将进一步对应于由CA 40发布的证书,使得当发布新证书时,将启动新的计数器序列。

在这些实现中,消息当前计数器值被存储并且与签名者和CA 40的身份两者相关联。因此,通信设备20可以保持与每个签名者相关联地存储的多个当前消息计数器值和/或与签名的消息相关联的证书,其中所述多个当前消息计数器值中的每一个与对应于发布CA 40的签名者相关联。通信设备20可以处理指示(例如证书或隐式证书),以获得签名者的身份和CA 40的身份。然后,通信设备20可以基于签名者身份和证书机构身份(或者特定证书,视具体情况而定)来获得当前消息计数器值。

当前消息计数器值可以例如保持在通信设备20的存储器中,或者可以通过网络15由通信设备20获得。通常,当前消息计数器值是由通信设备20先前存储的较早通知的消息计数器值。

在一些实现中,可以通过确定消息计数器值是否大于当前消息计数器值来进行比较,并且如果消息计数器值大于当前消息计数器值,则通信设备20接受所接收的通知,因为其在某种程度上确认了这是新的通知,而不是先前广播的通知。该比较可以要求消息计数器大于存储的当前消息计数器,在此情况下期望确认这是先前没有被通信设备20接收到的新消息。

在一些实现中,可以通过确定消息计数器值是否大于或等于当前消息计数器值来进行比较,并且如果消息计数器值大于或等于当前消息计数器值,则通信设备20接受所接收的通知,因为其在某种程度上确认了这是当前通知,而不是先前广播的过期通知。该比较可能要求消息计数器大于或等于存储的当前消息计数器,在此情况下期望确认例如该消息与正在广播的当前消息相关。在一种实现中,例如,在作为通信策略的一部分,需要发送并使通信设备20接收一系列消息的情况下,可以使用该比较。当条件改变时,下一个消息可以建立新的消息计数器值,使得与先前条件相关的消息不再被通信设备20接受。

在指示是证书或隐式证书的实现中,可以通过处理证书或隐式证书来获得签名者的身份和CA 40的身份,如关于标准证书验证过程所已知的。

用于验证警告消息的签名的公钥可以被分发到通信设备20以维护信任,即,通信设备20必须确保公钥与消息签名者(用于产生警告消息的签名的私钥的所有者)的身份相关联。这种信任可以使得加强防范例如来自未授权源的错误警告消息。

如上所述,在一种实现中,可以使用指示计数器值。指示计数器值与指示(例如与消息签名相对应的证书或隐式证书)直接相关联。除了指示计数器值始终与消息签名者身份和指示身份(即CA 40的身份)相关联之外,指示计数器值的实现类似于上述消息计数器值的实现。指示计数器值优选位于指示内,并且例如可以替代通常可被包括的证书时间戳。

应注意,对于指示计数器值,优选地,将比较限制为确定指示计数器值是否大于或等于存储的当前指示计数器值。这是优选的,因为通常的做法是在一段时间内重新使用证书,并且优选的是仅当证书或隐式证书被更新时改变指示计数器值。

在消息中包括消息计数器值和指示计数器值两者的实现中,接收方通信设备20可以采用不同的过程来确认接收到的消息的真实性。例如,对于接收到的第一消息,通信设备20可以确认消息计数器值和指示计数器值都是最新的。对于后续消息,例如,假设通信设备20能够验证从指示推导出的公钥与先前公钥相同,那么通信设备20可以选择仅确认消息计数器值。以这种方式,当确定隐式证书是当前隐式证书并且与先前接收到的隐式证书相比未改变时,通信设备20可以跳过确认指示计数器。

图3a至图3c提供了当使用消息计数器值来确认消息时由通信设备20采用的示例步骤的图示。可以采用类似的步骤来使用指示计数器值、或消息计数器值和指示计数器值的组合来确认消息。基本上,每个判定步骤评估消息计数器值、指示计数器值或消息计数器值和指示计数器值两者。

图3a示出了根据本公开的一个方面的可以由通信设备20执行的示例方法。在310,通信设备20接收诸如警告消息的通知,所述通知包括消息、消息计数器、签名和消息签名者的指示(例如证书或隐式证书)。

在320,通信设备20使用与消息签名者的指示相关联的公钥来验证签名。通信设备20可以采用各种已知的证书认证方案,以根据从包括在警告消息中的消息签名者的指示所推导出的安全信息来产生公钥。通信设备20可以获得消息签名者的公钥,例如通过联系CA 40并且使用消息签名者的指示识别消息签名者来获得相应的消息签名者的公钥。备选地,通信设备20可以将认证机构公钥保持在与CA 40相关联的永久存储器中。在该实现中,通信设备20可以根据包括在指示的隐式证书中的证书机构公钥重构值和证书机构公钥,重新产生消息签名者的公钥。

在一种实现中,消息签名者的指示可以包括消息签名者的隐式证书。通信设备20可以使用隐式证书来重构消息签名者的公钥。消息签名者的公钥用信号通知消息签名者的身份。

如果签名验证失败,则在340,通信设备20可以执行失败的签名验证功能,其可以包括:通知CA 40,通知源服务器10或网络服务器30,和/或向设备20的用户显示指示失败的签名验证的消息。

如果签名验证成功,则在330,通信设备20使用至少消息签名者的身份来定位所存储的针对该消息签名者的当前消息计数器值。在一方面,通信设备20可以维护至少存储针对每个消息签名者的当前消息计数器的消息计数器存储器。当前消息计数器是与从消息签名者接收到的最近通信相关联的消息计数器。例如,在消息签名者的指示包括隐式证书的情况下,通信设备20可以使用隐式证书来重构消息签名者的公钥,并且使用重构的公钥来识别消息签名者并定位针对该消息签名者的当前消息计数器。

根据协议,测试消息、维护消息和警告消息可以分别被提供有针对每个消息签名者的增量计数器值。备选地,仅一些消息,例如仅测试消息和警告消息可以包括增量消息计数器值。计数器的存储器包括用于将每个消息计数器与其对应的消息签名者相关联的引用或指针。当接收到并验证了消息时,可以更新消息计数器存储器,使得存储器中的当前消息计数器值反映由通信设备20接收和验证的最近消息。在一些实现中,维护消息可以用于递增所存储的与消息签名者相关联的当前消息计数器中的一些或全部。

根据消息签名者的指示的形式和消息计数器存储器的结构,定位针对消息签名者的当前消息计数器可以是消息签名者的指示与引用的直接比较。备选地,通信设备20可能需要处理消息签名者的指示,以便识别对应的引用。例如,指示可以包括隐式证书,并且通信设备20可能需要处理隐式证书以识别消息签名者和对应的引用。

在定位针对消息签名者的当前消息计数器值之后,通信设备20将来自警告消息的消息计数器值与存储的与签名者相关联的当前消息计数器值进行比较,以确定消息是否有效。

在一些实现中,比较包括确定所接收的消息计数器值是否大于存储的当前消息计数器值。如果消息计数器值不大于当前消息计数器值,则通信设备20已经处理了警告消息,因此在360执行计数器失败功能。在一些实现中,比较包括确定所接收的消息计数器值是否大于或等于存储的当前消息计数器值。如果计数器值不大于或等于当前计数器值,则警告消息不被认为是真实的,因此在360,通信设备20执行计数器失败功能。

在360,计数器失败功能可以根据情况提供不同的动作。在一种实现中,计数器失败功能通信设备20可以简单地丢弃警告消息。在另一实现中,计数器失败功能360可以保持但是标记计数器值等于当前计数器值的消息,以警告用户重复消息的可能性。

在另一实现中,计数器失败功能360可以保持但区别地标记标识计数器值的状态的消息,以便区分计数器值是以下之一的情况:小于当前计数器值、等于当前计数器值、以及大于当前计数器值。在进一步的实现中,用户被授权基于差分标志接受或忽略消息,但是消息仍然显示给用户以供查看。

如果计数器值与当前计数器值的比较成功,则在370,通信设备20可以通过例如显示消息功能继续向用户传达消息。显示消息功能例如通过发出声音、重放记录、在屏幕上显示文本或图像或者用于向通信设备20的用户传达信息的一些其他输出来向用户传达消息。显示消息功能还可以更新消息计数器存储器,以用来自消息的消息计数器值更新所存储的当前消息计数器值。

当计数器已经遍历所有可用比特时,签名者可以例如通过向CA 40请求新的隐式证书来为自身分配计数器值为0的新“身份”。

当通信设备20接收到在其当前计数器存储器中没有标识的相应签名者或CA 40的消息时,通信设备20可以为该签名者发起新存储的当前计数器值。在一种实现中,针对新签名者的默认存储的当前计数器值可以是“0”。在这种情况下,将始终接受第一消息的比较,并且当前计数器存储器将被更新为该第一消息中的计数器值。

在一种实现中,在预期存在大量新到达物的特定地点(例如机场)中,可以本地地广播常规维护消息,以在通信设备20离开该地点之前用当前计数器值更新通信设备20。该实现提供了某种程度的保证,即物理地进入本地位置的网络且过期的大量通信设备20将在它们漫游到外地网络之前被更新。

图3b示出了由通信设备20执行的备选方法,其中所述设备首先在330定位针对消息签名者的当前消息计数器,并且在320处验证签名之前,在350将该消息计数器与当前消息计数器值进行比较,例如以检查确认该消息计数器大于当前计数器。如将理解的,尽管必须发生消息计数器检查和签名检查两者以在370完成通信消息功能,但是通信设备20可以以任意顺序执行消息计数器检查和签名检查。

图3c示出了可以由通信设备20执行的示例方法。在步骤380,设备20处理接收到的通知中的指示以获得签名者身份。在步骤385,基于签名者身份获得公钥和所存储的当前消息计数器值。在步骤390,使用该指示来验证签名,并且将消息计数器与当前计数器值进行比较。在步骤395,基于成功验证和比较来接受通知。

尽管具体参照消息计数器描述了上述方法,但是应当理解,相同的过程可以应用于采用指示计数器的实施例以及采用消息计数器和指示计数器的实施例。在这些实施例中,可以通过采用指示计数器或消息计数器和指示计数器的组合代替上述消息计数器,来适应性地修改上述方法。

图4示出了根据本公开的一个方面的可由服务器、源服务器10或网络服务器30执行以产生通知的示例方法。在步骤410,服务器10、30获得消息和消息计数器。该消息可以例如包括由警告服务发起的警告。

如上所述,在一种实现中,源服务器10可操作用于产生消息,并且对消息和消息计数器进行签名以创建签名消息。

如上面进一步讨论的,在备选实现中,源服务器10可以向网络服务器30提供消息。在该实现中,网络服务器35从源服务器10获得至少该消息,并且可以从源服务器10接收计数器值,或者网络服务器30可以产生计数器值。

在420,作为消息签名者的服务器10、30使用私钥对消息和消息计数器进行签名。在430,服务器10、30产生包括签名消息、消息计数器、签名以及消息签名者的指示在内的通知。消息签名者的指示包括足以使接收方获得或产生与消息签名者的私钥相对应的消息签名者的公钥的信息。在一种实现中,消息签名者的指示包括消息签名者的隐式证书。在一种实现中,消息签名者的指示包括消息签名者的证书。

然后,在440,服务器10、30向通信设备20广播通知。将理解,尽管就单个服务器执行方法的所有步骤来描述该方法,但是根据具体系统要求,一些或所有步骤可以分布在多个计算设备上。

根据上述方法,提供了一种用于产生和分发诸如警告消息的通知的系统,其不需要在中央服务器和远程通信设备之间同步计数器或时间戳。在执行上述方法时,通信设备20分别基于从消息签名者接收的消息和/或它们自己的与消息签名者的指示(例如证书或隐式证书)相关联的当前指示计数器值,在存储器中保存它们自己的与消息签名者相关联的当前消息计数器值。如果通信设备20例如通过在漫游或关闭时与网络15断开连接而与消息服务器脱离接触,则保存在存储器中的与消息签名者相关联的当前计数器值可能滞后于由服务器10、30分发的计数器。在接收到下一个消息时,通信设备20将更新保存在存储器中的当前计数器值。

与现有技术方法不同,本方法提供了一种灵活的系统,其实现用于防范重放攻击的某种程度的安全性,该安全性旨在足以防止大众恐慌,因为大多数通信设备20将拒绝重放攻击。

此外,该方法的实现允许对重复消息的自动过滤。在许多警告广播中,相同的消息将被重复多次以确保警告消息的传递。根据上述方法,一旦通信设备20接收到诸如警告消息的通知,则后续的重复消息将被识别为重复消息。在一种实现中,消息计数器失败功能360还可以包括将警告消息与用于将消息标识为重复消息的标志一起传送给用户。在一种实现中,传送给用户的每个警告消息还可以包括消息计数器值或消息计数器值的表示的标识。因此,当向用户传送重复的警告消息时,通信设备20可以向用户传送当前消息计数器值或表示以及重复消息的消息计数器值或表示两者。以这种方式,向用户提供附加信息以确定消息是否仅是延迟的警告消息并且警告仍然有效,或者消息是否是重放攻击并且应该被丢弃。

在利用指示计数器的情况下,通信设备20可以区分以下消息:采用相同指示且具有与当前指示计数器值相同的指示计数器值的重复消息、包括小于当前指示计数器值的指示计数器值的旧的或无效消息。

在通信设备20维持接收到的警告消息的存储器的实现中,消息计数器失败功能560还可以包括将重复消息的计数器值与先前接收到的计数器值和相关联的先前接收到的消息相关联。然后,计算设备20可以将重复的警告消息和先前接收到的消息的至少一部分传送给用户。在一方面,通信设备20可以重新格式化消息,以将作为比较器的消息的元数据与消息本身一起传送给用户。元数据可以包括例如消息本身包含的消息日期/时间戳、或者当先前接收的消息被存储时由通信设备20先前创建的消息日期/时间戳。以这种方式,向用户提供附加信息以确定消息是否仅是延迟的警告消息并且警告仍然有效,或者消息是否是重放攻击并且应该被丢弃。

在一种实现中,消息计数器失败功能360还可以包括从签名的消息元数据中重新格式化重复的警告消息,以包括重复警告消息的当前(本地)时间(和可能的当前时区)、以及消息时间(和可能的时区)两者。以这种方式,通过在重复消息计数器时将当前时间和消息时间两者传送给用户,向用户提供附加信息以确定消息是否仅是延迟的警告消息且警告仍然有效,或者消息是否是重放攻击并且应该被丢弃。

在一种实现中,服务器10、30可以改变公钥,以便识别“新”消息签名者以刷新消息计数器值或指示计数器值。因此,服务器10、30可以周期性地改变其私钥和公钥,从而强制重设消息计数器值和/或指示计数器值以及新的消息签名者身份。根据私钥和公钥改变的周期性,服务器10、30可以进一步确保来自重放攻击的警告消息,因为所有先前消息和计数器值将被有效地丢弃,因为每个计数器与消息签名者相关联。

通信设备20均可以包括存储器、数据处理器、输入/输出控制器、用户接口(例如,监视器、触摸屏、鼠标或键盘),并且可操作用于与网络15进行接口连接。通信设备20的存储器可以存储与密码系统相关联的消息和信息。例如,通信设备20可以存储公钥和私钥数据、数字证书数据和其他类型的信息。通信设备20的存储器可以存储与计算机应用、程序和计算机程序模块以及其他资源相关联的指令(例如,计算机代码)。通信设备20可以包括诸如智能电话、个人数字助理(PDA)、便携式媒体播放器、膝上型电脑、笔记本电脑、平板电脑等手持设备。它们还可以包括工作站、主机、非便携式计算系统、以及安装在建筑物、车辆和其他类型的设施中的设备。

图5是示出了可以充当通信设备20并且可以与上述装置和方法协作的作为示例性无线通信设备20的移动设备的框图。移动设备900优选是具有语音和数据通信能力的双向无线通信设备。移动设备900优选具有与互联网上的其它计算机系统通信的能力。取决于所提供的确切功能,作为示例,可以将无线设备称为数据消息收发设备、双向寻呼机、无线电子邮件设备、具有数据消息收发能力的蜂窝电话、无线互联网装置或数据通信设备。

当移动设备900具有双向通信能力时,它将并入通信子系统911(包括接收机912和发射机914)以及相关联的组件,例如,一个或多个(优选地嵌入式或内部)天线元件916和918、本地振荡器(LO)913和处理装置(例如,诸如数字信号处理器(DSP)20之类的处理模块)。通信领域技术人员将显而易见,通信子系统911的具体设计将取决于设备想要操作于其中的通信网络。例如,移动设备900可以包括通信子系统911,该通信子系统911被设计为在MobitexTM移动通信系统、DataTACTM移动通信系统、GPRS网络、UMTS网络、EDGE网络或LTE网络中操作。

网络接入需求将会还取决于网络902的类型而变化。例如,在Mobitex和DataTAC网络中,使用与每一个移动站相关联的唯一标识号在网络上注册移动设备900。然而,在LTE、UMTS和GPRS网络中,网络接入与移动设备900的订户或用户相关联。为了在GPRS网络上工作,GPRS移动设备因此需要订户识别模块(SIM)卡。在没有有效的SIM卡的情况下,GPRS移动设备将不是完全起作用的。本地的或者非网络的通信功能以及法律上要求的功能(如果有的话)(例如,“911”紧急呼叫)可以是可用的,然而移动设备900将不能够执行与网络902上的通信有关的其它任何功能。SIM接口944通常与卡槽类似,SIM卡可以像盘或PCMCIA卡那样插入该卡槽和从中取出。SIM卡可以具有大约64K的存储器并保存很多关键配置951以及其它信息953,如标识和订户相关信息。

当完成了所要求的网络注册或激活过程时,移动设备900可以通过网络902来发送和接收通信信号。天线916通过通信网络902接收的信号输入至接收机912,接收机912可以执行常见接收机功能,如信号放大、下变频、滤波、信道选择等等,在图8所示的示例系统中,还执行模数(A/D)转换。接收信号的A/D转换允许在DSP 920中执行更复杂的通信功能,诸如解调和解码。以类似的方式,要发送的信号被处理,包括例如由DSP 920执行的调制和编码,并且被输入到发射机914,以便进行数模转换、上变频、滤波、放大以及经由天线918通过通信网络902进行发射。DSP 920不仅处理通信信号,并且提供接收机和发射机控制。例如,可通过在DSP 920中实施的自动增益控制算法自适应地控制应用于接收机912和发射机914的通信信号的增益。在3GPP环境中,可以使用小区广播信道(CBCH)向特定地理区域(还被称为通知区域)内的通信设备广播单次传输。

移动设备可以包括可操作用于执行上述各种功能的密码模块957。密码模块可以执行用于验证警告消息的签名的各个步骤中的一个或多个。密码模块可以允许以不同格式表示椭圆曲线点,并且可以执行用于在不同格式之间转换的各种转换操作和用于检查每种格式的有效性的其他例程。例如,ECC方案可以指定位串格式、椭圆曲线点格式、八位字节串格式、整数格式、字段元素格式等。相应地,图3的系统的其他实体(例如CA 40和消息签名者服务器(10或35))还可以包括被配置为执行诸如上述的各种密码操作的密码模块。

优选地,移动设备900包括控制设备的总体操作的处理装置,例如微处理器938。包括至少数据和语音通信的通信功能通过通信子系统911来执行。微处理器938还与其他设备子系统交互,如显示器922、闪存924、随机存取存储器(RAM)926、辅助输入/输出(I/O)子系统928、串行端口935、键盘932、扬声器934、麦克风936、短距离通信子系统940和总体上标记为942的任何其他设备子系统。

图7中示出的一些子系统执行通信相关功能,然而其他子系统可以提供“驻留”或机载(on-device)功能。值得注意的是,一些子系统(诸如键盘932和显示器922)例如可以既用于与通信相关的功能(诸如输入文本消息用于在通信网络上传输),也用于设备驻留功能(如计算器或任务列表)。

微处理器938使用的操作系统软件优选地存储在如闪存924之类的永久存储器上,该永久存储器还可以是只读存储器(ROM)或类似存储元件(未示出)。本领域技术人员将理解,操作系统、设备专用应用或其部分可被临时加载到易失性存储器(如RAM 926)。所接收的通信信号也可以存储于RAM 926中。

如图所示,可将闪存924分为计算机程序958和程序数据存储器950、952、954和956的不同区域。这些不同的存储类型指示每个程序可以针对它们自己的数据存储需求而被分配闪存924的一部分。优选地,除了其操作系统功能外,微处理器938使得可以在移动设备上执行软件应用。控制基本操作的应用的预定集合(至少包括例如数据和语音通信应用)通常在制造期间安装在移动设备900上。优选的软件应用可以是个人信息管理器(PIM)应用,PIM应用有能力组织和管理与移动设备的用户相关的数据项,该数据项例如但不限于电子邮件、日程安排、语音邮件、预约和任务项。自然,在移动设备上,一个或更多的存储器可以是可用的,以方便PIM数据项的存储。优选地,这种PIM应用将具有经由无线网络902发送和接收数据项的能力。在优选的实施例中,经由无线网络902将PIM数据项与移动设备用户的对应数据项进行无缝集成、同步和更新,该对应数据项被存储或与主机系统相关联。还可以通过网络902、辅助I/O子系统928、串口935、短距离通信子系统940或者任何其他适合的子系统942将其他应用加载到移动设备900上,并由用户安装到RAM 926中,或者优选地,安装到非易失性存储器(未示出)中,以由微处理器938来执行。应用安装的这种灵活性增加了设备的功能,且可以提供增强的设备上功能、通信相关功能或两者。例如,安全通信应用使得能够使用移动设备900来执行电子商业功能和其他类似的金融交易。

在数据通信模式中,接收信号(如文本消息或网页下载)将由通信子系统911处理,并输入至微处理器938,微处理器938优选地对接收信号进行进一步处理,以输出至显示器922或备选地输出至辅助I/O设备928。移动设备900的用户也可以使用键盘932与显示器922和可能的辅助I/O设备928相结合来编写数据项,例如电子邮件消息,键盘932优选地是完整字母数字键盘或电话类型的小键盘。这种编写的项目于是可以通过通信子系统911在通信网络上传输。

对于语音通信,移动设备900的整体操作类似,只是接收到的信号优选地输出至扬声器934,用于发送的信号将由麦克风936产生。还可以在移动设备900上实现备选的语音或音频I/O子系统,例如语音消息记录子系统。虽然优选地主要通过扬声器934完成语音或音频信号输出,但是还可以使用显示器922来提供例如呼叫方身份、语音呼叫的持续时间、或其他语音呼叫相关信息的指示。显示器922还可以用于向移动设备的用户提供警告消息。如前所述,在一些实现中,仅当警告消息的签名的验证成功时才可以显示警告消息。在其他实现中,即使签名的验证不成功或不完整,也显示警告消息的至少一部分。警告消息可以在被接收时被显示,而不需要任何用户交互。

串口930一般将在需要与用户的台式计算机(未示出)进行同步的移动设备中实现,但其是可选设备组件。这种端口930将使得用户能够通过外部设备或软件应用来设置首选项,且将通过提供除通过无线通信网络以外的方式下载到移动设备900的信息或软件,来扩展移动设备900的能力。例如可以使用交替下载路径通过直接连接(因此是可靠且可信的连接)加载CA的公钥,从而使能实现安全设备通信。

其它通信子系统940(如短距离通信子系统)是进一步可选的组件,其使得可以进行被类似地启用的移动设备900和不同的系统或设备之间的通信,这些设备不是必须是相似的设备。例如,子系统940可以包括红外设备和关联电路和组件或蓝牙通信模块。

此外,将注意到,本文所述的装置可以包括单个组件,例如移动设备或其他用户设备或接入网组件、例如多个彼此通信的这种组件的组合、或者这种组件的子网络或全网络。

本文中已经关于3GPP规范描述了一些具体实现。然而,所描述的方法和装置不旨在限于本文所提及的规范或其版本,而是可以适用于未来的版本或其他规范。

在本说明书中描述的主题和操作可以在数字电子电路中、或在计算机软件、固件或硬件中实现,包括在本说明书中公开的结构及其结构等同物、或它们中的一个或多个的组合。在本说明书中描述的一些主题可以被实现为在非瞬时性计算机存储介质上编码的一个或多个计算机程序,即计算机程序指令的一个或多个模块,用于由数据处理装置执行或者控制数据处理装置的操作。备选地或另外地,程序指令可以被编码用于传输到合适的接收机设备以供数据处理设备执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工产生的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是或者包括在一个或多个单独的物理组件或介质(例如,多个卡、盘或其他存储设备)中。

本说明书中描述的操作可以被实现为数据处理装置对一个或多个计算机可读存储设备上存储的或者从其它源接收的数据执行的操作。术语“数据处理装置”涵盖用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机、片上系统或者前述各项中的多个或者组合。装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件以外,装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者上述各项中的一项或多项的组合的代码。装置和运行环境可以实现各种不同的计算模型基础设施,例如,web服务、分布式计算和网格计算基础设施。

可以以任何形式的编程语言来写计算机程序(也称作程序、软件、软件应用程序、脚本或代码),所述编程语言包括:编译或解释语言、声明或程序语言,并且可以以任何形式来部署计算机程序,包括部署为单独的程序或者部署为适合于用于计算环境的模块、组件、子例程、对象、或者其它单元。计算机程序可以、但无需与文件系统中的文件相对应。程序可以存储在保持其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于所讨论的程序的单个文件中、或者存储在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算设备上或者在位于一个站点或分布在多个站点并且通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流可以由一个或多个可编程处理器来执行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过操作输入数据并且产生输出来执行动作。过程和逻辑流也可以由以下各项来执行并且装置也可以实现为以下各项:专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。

适合于执行计算机程序的处理器包括例如通用微处理器和专用微处理器以及任何类型的数字计算设备的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或者这二者接收指令和数据。计算设备的必不可少的元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或更多个存储器设备。通常,计算设备还将包括用于存储数据的一个和或多个存储设备,或可操作耦接以便从所述一个或多个存储设备接收或向其发送数据。然而,计算设备不需要具有这些设备。此外,计算机可以嵌入在另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收机或者便携式存储设备(例如,通用串行总线(USB)闪存驱动器),这仅是一些例子。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、媒体和存储器设备,例如包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘(比如内部硬盘或可移动盘);磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路来补充或者并入到专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的主题可以实现在计算机上,该计算机具有用于向用户显示信息的显示设备(例如,LCD(液晶显示器)屏幕)和用户可以向计算机提供输入的键盘和指点设备(例如,触摸屏、触控笔、鼠标)。其它类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何类型的传感反馈,例如,视觉反馈、听觉反馈或触觉反馈;以及可以以任意形式(包括声音、语音或触觉输入)来接收来自用户的输入。此外,计算设备可以通过向用户使用的设备发送文档或者从该设备接收文档,来与用户交互;例如,通过响应于从用户客户端设备上的web浏览器接收到的请求而向所述web浏览器发送网页,来与用户交互。

本说明书中描述的主题中的一些可以实现在计算系统中,该计算系统包括后端组件(例如,数据服务器)、或包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有用户通过其可以与本说明书中描述的主题的实现进行交互的图形用户界面或者web浏览器的客户端计算设备)、或者一个或更多个此类后端组件、中间件组件或前端组件的任意组合。可以通过任意形式或方式的数字数据通信(例如,数据网络)来互连系统的组件。

计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过数据网络进行交互。客户端和服务器的关系通过在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序来产生。在一些实现中,服务器向客户端设备发送数据。可以在服务器处从客户端设备接收在客户端设备处产生的数据。

本专利文件的公开的一部分包含受到版权保护的材料。版权人不反对任何人对如在专利商标局的专利文件或记录中发表的专利文档或专利公开的复制,但是无论如何保留所有其他版权权利。

虽然本说明书包含许多具体的实施细节,但这些不应被解释为对要求保护的范围的限制,而是作为具体到特定实施方式的特征的描述。然而,显而易见地,对其的各种修改和改变都不脱离本技术的范围。因此,说明书和附图应当被看做说明性的而不是限制意义的。在单个实现中,还可以组合实现本说明书中在独立实现的上下文中描述的特定特征。相反的,单个实现上下文描述的不同特征也可在多个实现中各自实现,或以适当的子组合来实现。此外,虽然特征可以在上面描述为在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以示出的特定顺序或以顺序次序执行,或者需要执行所有示出的操作来实现期望的结果。在特定环境中,多任务处理和并行处理可能是有利的。此外,在上述的实施方式的各种系统组件的分离不应被理解为在所有实施方式中要求这样的分离,并且应该理解的是,所描述的程序组件和系统一般可以一起集成在单个软件产品或封装为多个软件产品。

因此,描述了本主题的具体实现。其它实现在所附的权利要求的范围内。在一些情况中,在权利要求书中记载的动作可以以不同顺序来执行,并且仍然实现期望结果。此外,附图中示出的处理不必须要求所示出的特定顺序或按次序实现期望结果。在特定实现中,多任务处理和并行处理可以是有利的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1