CN106664308A - 注册之前的设备验证 - Google Patents

注册之前的设备验证 Download PDF

Info

Publication number
CN106664308A
CN106664308A CN201580046305.9A CN201580046305A CN106664308A CN 106664308 A CN106664308 A CN 106664308A CN 201580046305 A CN201580046305 A CN 201580046305A CN 106664308 A CN106664308 A CN 106664308A
Authority
CN
China
Prior art keywords
registration
secret
computing device
service
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580046305.9A
Other languages
English (en)
Other versions
CN106664308B (zh
Inventor
S·本格彻
V·尚布哈格
J·D·费雷
E·达玛吉奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106664308A publication Critical patent/CN106664308A/zh
Application granted granted Critical
Publication of CN106664308B publication Critical patent/CN106664308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

实施例涉及将设备注册以接收通知。在一种情况下,计算机***从计算设备接收通知注册请求。计算机***生成包括唯一地标识计算设备的标识信息的注册秘密,并且将所生成的注册秘密发送到通知服务,所生成的注册秘密包括唯一地标识计算设备的信息。计算机***从计算设备接收哈希值,其中,基于所生成的注册秘密的标识信息来生成哈希值。计算机***基于所接收的注册秘密的标识信息来计算另一哈希值,以确定第二哈希值是否与第一哈希值匹配,并且在确定第二哈希值与第一哈希值匹配时,计算机***将计算设备注册以从通知服务接收通知。

Description

注册之前的设备验证
背景技术
范围从小型嵌入式设备到手机和平板电脑到PC和后端服务器,计算***已经变得普遍存在。这些计算***中的每一个被设计为处理软件代码。该软件允许用户执行诸如针对通知的注册的功能。当使用蜂窝电话或其它便携式电子设备时,用户可能期望注册他们的设备,以从某些应用或服务接收推送通知。用户通常请求注册他们的设备,并且经由电子邮件或文本消息接收诸如数字序列或字母序列的代码。然后,用户在应用中输入该代码,以证明他们是电话的所有者,并且证明他们确实请求针对推送通知的注册。
发明内容
本文描述的实施例涉及注册设备以接收通知。在一个实施例中,计算机***从计算设备接收通知注册请求。计算机***生成包括标识信息的注册秘密(标识信息唯一地标识计算设备),并且将所生成的包括唯一地标识计算设备的信息的注册秘密发送到通知服务。计算机***从计算设备接收第一哈希值,其中基于所生成的注册秘密的标识信息来生成第一哈希值。计算机***基于所接收的注册秘密的标识信息来计算第二哈希值,以确定第二哈希值是否与第一哈希值匹配,并且在确定第二哈希值与第一哈希值匹配时,计算机***将计算设备注册以从通知服务接收通知。
在另一实施例中,计算机***执行用于注册设备以接收通知的备选方法。计算机***生成可标识为源自计算设备的客户端质询,并向注册服务发送包括所生成的客户端质询的通知注册请求。计算机***从通知服务接收注册秘密(该注册秘密包括唯一地标识包含客户端质询的计算设备的信息),并验证所接收的客户端质询与所生成的客户端质询匹配。计算机***然后向注册服务发送包括注册秘密的注册请求。
提供本发明内容来以简化形式介绍下面在具体实施方式中进一步描述的概念选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附加的特征和优点将在下面的描述中阐述,并且对于本领域的普通技术人员来说,根据该描述,附加的特征和优点部分地将是显而易见的,或者可以通过实践本文的教导而习得。本文描述的实施例的特征和优点可以借助于在所附权利要求中特别指出的仪器和组合来实现和获得。通过以下描述和所附权利要求,本文描述的实施例的特征将变得更加彻底地显而易见。
附图说明
为了进一步阐明本文所描述的实施例的上述特征和其它特征,将通过参考附图给出更具体的描述。理解的是,这些附图仅仅描绘了本文所描述的实施例的示例,因此不应被认为是对其范围的限制。将通过使用附图以附加的特性和细节来描述和解释实施例,其中:
图1图示计算机架构,在该计算机架构中,本文描述的实施例可以操作,包括注册设备以接收通知。
图2图示了用于注册设备以接收通知的示例方法的流程图。
图3图示了用于注册设备以接收通知的备选示例方法的流程图。
图4图示了其中设备在没有用户交互的情况下针对推送通知进行注册的一个实施例。
具体实施方式
本文描述的实施例涉及注册设备以接收通知。在一个实施例中,计算机***从计算设备接收通知注册请求。计算机***生成包括唯一地标识计算设备的标识信息的注册秘密,并且向通知服务发送所生成的包括唯一地标识计算设备的信息的注册秘密。计算机***从计算设备接收第一哈希值,其中基于所生成的注册秘密的标识信息来生成第一哈希值。计算机***基于所接收的注册秘密的标识信息来计算第二哈希值,以确定第二哈希值是否与第一哈希值匹配,并且在确定第二哈希值与第一哈希值匹配时,计算机***将计算设备注册以从通知服务接收通知。
在另一实施例中,计算机***执行用于注册设备以接收通知的备选方法。计算机***生成可标识为源自计算设备的客户端质询,并且向注册服务发送包括所生成的客户端质询的通知注册请求。计算机***从通知服务接收注册秘密(该注册秘密包括唯一地标识包括客户端质询的计算设备的信息),并验证所接收的客户端质询与所生成的客户端质询匹配。计算机***然后向注册服务发送包括注册秘密的注册请求。
现在以下的讨论涉及可以执行的多种方法和方法动作。应当注意,尽管方法动作可以以特定顺序讨论或者在流程图中示出为以特定顺序发生,但是除非特别说明或者由于一个动作依赖于在正执行的动作之前完成的另一动作所需,不一定需要特定顺序。
本文描述的实施例可以实现各种类型的计算***。这些计算***现在越来越多地采取各种各样的形式。计算***可以例如是手持设备、器具、膝上型计算机、台式计算机、大型机、分布式计算***、或甚至是通常不被认为是计算***的设备。在本说明书和权利要求书中,术语“计算***”被广义地定义为包括包含至少一个物理和有形处理器以及物理和有形存储器的任何设备或***(或其组合),物理和有形存储器能够在其上具有可以由处理器执行的计算机可执行指令。计算***可以分布在网络环境上,并且可以包括多个组成计算***。
如图1所示,计算***101通常包括至少一个处理单元102和存储器103。存储器103可以是物理***存储器,其可以是易失性的、非易失性的或两者的某种组合。在本文,术语“存储器”也可以用于指代诸如物理存储介质的非易失性大容量存储设备。如果计算***是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
如本文所使用的,术语“可执行模块”或“可执行组件”可以指代可以在计算***上执行的软件对象、路由或方法。本文描述的不同组件、模块、引擎和服务可以(例如,作为独立的线程)被实现为在计算***上执行的对象或处理。
在下面的描述中,参考由一个或多个计算***执行的动作来描述实施例。如果这样的动作以软件实现,则执行动作的相关联的计算***的一个或多个处理器响应于已执行了计算机可执行指令来指导计算***的操作。例如,这样的计算机可执行指令可以体现在形成计算机程序产品的一个或多个计算机可读介质上。这种操作的示例涉及数据的操纵。计算机可执行指令(和***纵的数据)可以被存储在计算***101的存储器103中。计算***101还可以包含允许计算***101通过有线或无线网络与其它消息处理器通信的通信信道。
如以下更详细地讨论的,本文所描述的实施例可以包括或利用包含计算机硬件(诸如例如一个或多个处理器和***存储器)的专用或通用计算机***。***存储器可以被包括在总存储器103内。***存储器也可以被称为“主存储器”,并且包括可由至少一个处理单元102通过存储器总线寻址的存储器位置,在这种情况下,地址位置在存储器总线本身上被确立。***存储器在传统上是易失性的,但是本文描述的原理也适用于其中***存储器部分地非易失性或甚至完全非易失性的情况。
本发明的范围内的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理介质和其它计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机***访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。因此,通过示例的方式而非限制,本发明的实施例可以包括至少两种明显不同种类的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质是存储计算机可执行指令和/或数据结构的物理硬件存储介质。物理硬件存储介质包括计算机硬件,诸如RAM、ROM、EEPROM、固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储器、磁盘存储器或其它磁存储设备、或可以用于存储计算机可执行指令或数据结构形式的程序代码(其可以由通用或专用计算机***访问和执行以实现本发明所公开的功能)的任何其它硬件存储设备。
传输介质可以包括网络和/或数据链路,网络和/或数据链路可以用于承载计算机可执行指令或数据结构形式的程序代码,并且可以由通用或专用计算机***访问。“网络”被定义为使得能够在计算机***和/或模块和/或其它电子设备之间传输电子数据的一个或多个数据链路。当通过网络或另一通信连接(硬连线、无线、或硬连线或无线的组合)向计算机***传送或提供信息时,计算机***可以将连接视为传输介质。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机***组件时,计算机可执行指令或数据结构形式的程序代码可以从传输介质被自动传送到计算机存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机***处的计算机***RAM和/或较不易失性计算机存储介质。因此,应当理解,计算机存储介质可以被包括在也(或甚至主要地)利用传输介质的计算机***组件中。
计算机可执行指令包括例如指令和数据,指令和数据当在一个或多个处理器处执行时,使得通用计算机***、专用计算机***、或专用处理设备来执行特定功能或功能组。计算机可执行指令可以是例如二进制、诸如汇编语言的中间格式指令、或甚至源代码。
本领域技术人员将理解,本文描述的原理可以在具有许多类型的计算机***配置的网络计算环境中实践,计算机***配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器***、基于微处理器的或可编程消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等。本发明还可以在分布式***环境中实践,其中通过网络来链接(通过硬连线数据链路、无线数据链路、或通过硬连线和无线数据链路的组合)的本地计算机***和远程计算机***两者均执行任务。因此,在分布式***环境中,计算机***可以包括多个组成计算机***。在分布式***环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者中。
本领域技术人员还将理解,本发明可以在云计算环境中实践。云计算环境可以是分布式的,但这不是必需的。当云计算环境是分布式时,云计算环境可以在组织内国际性地分布,和/或具有跨多个组织所拥有的组件。在本说明书和所附权利要求中,“云计算”被定义为用于使得能够对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池按需网络访问的模型。“云计算”的定义不限于在恰当部署时可从这种模型获得的任何其它众多优点。
更进一步地,本文所描述的***架构可以包括多个独立的组件,每个独立的组件作为整体贡献于***的功能。这种模块化允许在处理平台可伸缩性的问题时增加灵活性,并且为此目的提供了各种优点。通过使用具有有限功能范围的较小规模的部件,可以更容易地管理***复杂性和***增长。通过使用这些松散耦合的模块来增强平台容错。单个组件可以根据业务需要命令而递增地增长。模块化开发还意味着用于新功能的缩短的上市时间。在不影响核心***的情况下,可以添加或减少新功能。
图1图示了其中可以采用至少一个实施例的计算机架构100。计算机架构100包括计算机***101。计算机***101可以是包括云计算***的任何类型的本地或分布式计算机***。计算机***101包括用于执行各种不同功能的模块。例如,通信模块104可以被配置为与其它计算***通信。通信模块104可以包括可以从其它计算***接收数据和/或向其它计算***传输数据的任何有线或无线通信装置。通信模块104可以被配置为与数据库、移动计算设备(诸如移动电话或平板电脑)、嵌入式计算***或其它类型的计算***交互。
在一些情况下,用户或设备可能需要或想要订阅,以接收通知或其它类型的消息。例如,用户可能想要特定应用(诸如电子邮件应用或社交媒体应用)来接收推送通知。在其它情况下,可穿戴设备或器具可以被订阅来接收更新或其它消息。因此,应当理解,本文所描述的实施例基本上包括任何类型的固定或移动电子设备、大型或小型嵌入式设备、独立式、分布式或其它类型的计算***。这些设备,无论是由用户控制还是由另一设备或软件程序控制,可能想要登记以接收包括推送通知的某些类型的消息。因此,虽然本文将详细讨论推送通知,但是将理解的是,本文设想基本上任何类型的消息或通知。在前述情况下,当用户想要登记以接收推送通知时,用户的电话将(通常是通过电子邮件或SMS)接收代码,并且用户将手动输入代码,以确认他们请求了推送通知以及他们是电话的所有者。要求用户输入此代码减少了恶意或意外请求的数量。
在不接收和手动重新输入代码的情况下,本文所描述的实施例允许用户或设备登记以接收推送通知。在用户甚至不知道其正在发生的情况下,针对推送通知的注册可以安全地在幕后发生。本文描述的实施例提供了安全机制,该安全机制确保请求针对通知进行登记的设备确实是用户的设备,并且确实请求推送通知。设备的注册在用户不知道的情况下发生,并且涉及注册服务111(如图1所示)和通知服务。通知服务123是实际发送出推送通知或其它消息的服务。通知服务可以是第三方通知服务,或者可以在内部提供。注册服务111可以被托管在单个计算***上或云上。事实上,应当注意,图1中所示的计算***(即计算机***101和计算设备113)中的每一个可以是任何类型的计算***,包括本地计算***或分布式计算***、固定计算***或移动计算***、嵌入式设备或可编程逻辑设备。
计算机***101包括执行各种功能的模块。这些模块可以位于相同的计算***上或许多不同的计算***上(或在不同的处理核心上)。计算机***101可以例如包括注册秘密生成模块105。注册秘密生成模块105可以被配置为响应于接收注册请求(例如117)而生成注册秘密。如该术语在本文中使用的,“注册机密”指代可以被用于唯一地标识计算机***101的、或者是唯一地可标识为源自计算机***101或注册服务111的信息的任何部分。因此,注册秘密可以是哈希值或标识符(例如,全局唯一标识符(GUID))。注册秘密121可以包括标识信息122(诸如,电话号码或随机生成的串),标识信息122对计算设备113唯一。该标识信息可以是标识计算设备113的数字、字母或其它字符的任何串。因此,注册秘密包括可以用于标识计算设备113的信息的某一部分。在一些实施例中,注册秘密121还可以包括客户端质询125。
如本文所使用的“客户端质询”类似于注册秘密,因为其包括唯一地标识客户端设备(例如,计算设备113)的信息。客户端质询118在客户端设备处生成,并且可以与最终发送到通知服务123的客户端质询125相同或不同。例如,从客户端设备发送的客户端质询118可以是未加密的形式,而包括在注册秘密121中的客户端质询可以被加密。相反的情况也可以被实现,其中从客户端设备113发送的客户端质询118是未加密形式,并且包括在注册秘密121中的客户端质询125被加密。
通知服务123可以向客户端计算设备113发送注册秘密121。注册秘密可以包括标识信息122(诸如,客户端设备的电话号码)和诸如仅对客户端设备已知的GUID的客户端质询。然后,客户端设备113的验证模块116可以验证其是发送原始注册请求117的那个设备。在验证计算设备113是请求117的原始发送方时,客户端设备113的哈希生成模块114可以生成哈希值119。计算机***101的匹配确定模块108将哈希值119与由计算***101生成的第二哈希值107进行比较。如果在哈希值之间存在匹配,则指示109被发送到注册模块110,并且客户端设备113被注册以接收通知。此后,通知服务123可以将通知124发送到客户端设备113。下面将分别关于图2和图3的方法200和300进一步解释该处理。
鉴于上述***和架构,将参考图2和图3的流程图更好地理解可以根据所公开的主题实现的方法。为了简化解释的目的,方法被示出和描述为一系列框。然而,应当理解和明白,所要求保护的主题不受框的顺序的限制,因为一些框可以以与本文所描绘和描述的顺序不同的顺序发生和/或与其它框同时发生。此外,可能不需要所有图示的框来实现下文所描述的方法。
图2图示了用于注册设备以接收通知的方法200的流程图。现在将频繁参考环境100的组件和数据来描述方法200。
方法200包括从计算设备接收通知注册请求的动作(动作210)。计算机***101的通信模块104可以从计算设备113接收通知注册请求117。如上所述,计算设备113可以属于用户112,并且可以是诸如智能电话、平板或可穿戴设备的移动设备。备选地,计算设备113可以是固定或分布式设备。注册请求117可以是来自应用、服务、操作***或在计算设备上运行的代码的其它部分的请求。注册请求117可以请求设备113被注册以接收通知。一旦注册,则设备将被订阅来从通知服务123接收一个或多个类型的通知124。在一些情况下,这些通知是发送到该推送通知的订阅者的推送通知。用户的设备113上的应用或服务然后通知用户已经接收到推送通知。在一些情况下,计算机***101将计算设备113逻辑地置于不受信任状态,使得设备不被注册,直到注册处理完成并且设备请求被标识为合法。
方法200还包括生成注册秘密的动作(动作220),注册秘密包括唯一地标识计算设备的标识信息。例如,注册秘密生成模块105可以生成注册秘密121。注册秘密121可以包括标识计算设备113的信息122(诸如电话号码或GUID)。在一些实施例中,唯一地标识计算设备113的标识信息122包括推送通知信道标识符或“推送地址”,“推送地址”是设备用于接收推送通知的地址。在一些情况下,注册秘密121中的标识信息122包括从计算设备接收的客户端质询125。客户端质询可以与使用注册请求117接收的客户端质询118相同,或者可以是修改的(例如,加密的)版本。标识信息122还可以包括与计算设备相关联的通知地址和时间戳。
计算机***101的哈希值生成模块106可以访问该标识信息122,并且基于其创建哈希。因此,在这种情况下,注册秘密121可以包括客户端质询、通知地址和时间戳的哈希。在一些情况下,除了客户端质询、通知地址和时间戳的哈希之外,还可以以未加密的形式发送客户端质询125。所生成的注册秘密、时间戳和接收的客户端质询因此被发送到通知服务123。注册秘密121、标识信息122和/或客户端质询125可以由通知服务123发送到客户端计算设备113,其中客户端计算设备可以验证其是发出客户端质询的设备。
返回到图2,方法200包括将所生成的注册秘密(包括唯一地标识计算设备的信息)发送到通知服务的动作(动作230),以及从计算设备接收第一哈希值的动作(动作240),第一哈希值是基于所生成的注册秘密的标识信息而生成的。计算设备113的哈希值生成模块114可以生成第一哈希值119,第一哈希值119可以独自地被发送或者与注册请求117一起被发送。第一哈希值119可以通过将信息的一个或多个部分哈希来生成,该信息的一个或多个部分包括但不限于作为注册秘密121的一部分接收的标识信息122、客户端质询125或基于一些其它信息。在一个实施例中,第一哈希值119是与计算设备113相关联的电话号码的哈希。
计算机***101的哈希值生成模块106基于所接收的注册秘密的标识信息来计算第二哈希值107,以确定第二哈希值是否与第一哈希值匹配(动作250)。因此,计算机***101的哈希模块将相同的信息(或者如果计算设备是注册请求的真实发起者,则应当是相同的信息)哈希以获得第二哈希值107。匹配确定模块108确定两个哈希值(119和107)是否匹配,并且在确定它们匹配时,计算机***的注册模块110可以将计算设备113注册以从通知服务123接收通知124(动作260)。由于由计算设备113创建的哈希是基于由计算机***101使用以生成其哈希的相同标识信息122,所以所得到的哈希值应当匹配。如果它们不匹配,则指示计算设备113不是发出原始注册请求117的设备,因为标识信息122对于请求的发布者是唯一的。
在一些实施例中,将注册秘密121发送到通知服务、客户端设备113,然后返回到计算机***101。发送回计算机***101的注册秘密121可以被加密。在这种情况下,可以基于加密的接收的注册秘密来生成第二哈希值107。因此,如果可以不需要解密所加密的注册秘密,而是可以生成第二哈希值并将其与第一哈希值进行比较。如果匹配存在,则注册请求是合法的。一旦注册请求被确定为合法的,注册服务110将计算设备113注册以接收推送通知。注册服务可以被托管在云上,并且可以同时向多个不同的用户/设备提供注册服务。注册服务本身可以用于生成注册秘密121,并且可以向通知服务发送注册秘密、标识信息和时间戳。这些可以使用对于注册服务和/或对计算机***101唯一的密钥来加密。因此,以这种方式,在发起原始注册请求117之后,在没有来自用户的任何交互的情况下,计算设备113可以被自动注册以接收通知。
现在转向图3,示出了用于注册设备以接收通知的方法300的流程图。现在将频繁参考环境100的组件和数据来描述方法300。
方法300包括生成可标识为源自计算设备的客户端质询的动作(动作310)。例如,计算设备113的客户端质询生成模块115可以生成客户端质询118。客户端质询是标识符、串、哈希值、文件、快速响应(QR)代码、或者甚至是随机生成的数字——客户端质询是可以被标识为来自计算设备113的任何事物。可以在已向通知服务123发送注册请求并且已从通知服务接收唯一地标识计算设备的通知地址之后,生成该客户端质询。通知地址可以是计算设备被配置为接收通知的任何标识符或地址。然而,该通知地址对于不同的平台和操作***可以是不同的。
因此,由一个公司制造或提供的电话可以具有与不同公司提供的通知地址不同的通知地址。这些公司中的每个公司还可以提供他们自己的通知服务,或者可以使用第三方通知服务。因此,运行在计算设备113上的一个平台或操作***可以被注册以从一个通知服务接收通知,而运行在不同计算设备上的不同平台或操作***可以被注册以从不同的通知服务接收通知。
返回到图3,方法300包括向注册服务发送通知注册请求的动作(动作320),通知注册请求包括所生成的客户端质询。如图1所示,计算设备113可将注册请求117连同客户端质询118一起发送到计算机***101。如上所述,客户端质询包括可标识为来自计算设备的信息。例如,客户端质询118可以是时间戳和通知地址的哈希,或者可以是任何其它唯一的数字。方法300还包括从通知服务接收注册秘密的动作(动作330)(注册秘密包括唯一地标识包含客户端质询的计算设备的标识信息)、验证所接收的客户端质询与所生成的客户端质询匹配的动作(动作340)、以及向注册服务发送包括注册秘密的注册请求的动作(动作350)。
因此,计算设备113可以从通知服务123接收注册秘密121,注册秘密121包括唯一地标识计算设备的标识信息122。注册秘密121还可以包括客户端质询125,客户端质询125可以是与注册请求117最初一起发送的相同的(未改变的)客户端质询118。计算设备113的验证模块116验证客户端质询125与生成的客户端质询118匹配。在确定客户端质询匹配时,将注册请求120连同由计算机***101生成的注册秘密一起发送到计算机***101(即,托管在其上的注册服务111)。以这种方式,验证发生在客户端设备113上,确保客户端质询匹配,并且验证发生在注册服务侧,确保哈希值119和107匹配。使用这些验证,在没有来自用户112的干预或输入的情况下,***可以确保计算设备113确实是发出原始注册请求117的设备。
一旦注册服务111已经将计算设备113注册来从通知服务123接收通知,则注册服务可以向计算设备113发送指示计算设备已经被注册以从通知服务接收通知的指示。从这一点开始,计算设备113可以从通知服务接收通知。
图4图示了涉及图1所示的各方和各计算***的一个实施例。图4包括可以与图1的计算设备113相似或相同的计算设备401。图4还包括注册服务402,注册服务402可以与计算机***101的注册服务111相似或相同。又进一步地,图4包括通知服务403,通知服务403可以与通知服务123相似或相同。计算设备401因此可以发送(在步骤1)对通知地址的请求,设备可以在该通知地址处接收推送通知。通知服务403可以使用OK和设备标识符或通知地址进行响应。
在步骤2处,计算设备401可以向注册服务402发送注册请求(类似于图1的117)。在步骤2.1处,注册服务402可以保存设备的通知地址(和/或其它信息),并且可以将计算设备401标记为不信任或以其它方式将计算设备401指示为不信任。在步骤2.2中,注册服务402可以创建包括诸如通知地址或其它标识符的标识信息122的注册秘密(例如,图1的121)。然后,在步骤2.3处,注册服务402将注册秘密发送到通知服务403。通知服务403使用确认进行回答,并将注册秘密和附带信息发送到计算设备401。在步骤3,计算设备401接收包括客户端质询的注册秘密。在步骤3.1处,计算设备401验证客户端质询,并将注册秘密连同注册请求一起发送到注册服务402。然后在步骤3.1.1处,注册服务402将计算设备401注册以使用标识信息(例如,通知地址)来接收通知,并且向计算设备提供计算设备已经被成功注册以从通知服务403接收通知的指示。因此,以这种方式,在没有来自用户的交互的情况下,设备可以被注册以接收通知。
因此,提供了注册设备以接收通知的方法、***和计算机程序产品。
本文所描述的概念和特征可以在不脱离其精神或描述特性的情况下以其它具体形式体现。所描述的实施例在所有方面都被认为仅是说明性的而不是限制性的。因此,本公开的范围由所附权利要求指示,而不是由前述描述来指示。在权利要求的等同物的含义和范围内的所有改变将被包括在其范围内。

Claims (10)

1.一种用于注册设备以接收通知的计算机实现的方法,所述计算机实现的方法由一个或多个处理器执行,所述一个或多个处理器执行用于所述计算机实现的方法的计算机可执行指令,并且所述计算机实现的方法包括:
从计算设备接收通知注册请求;
生成注册秘密,所述注册秘密包括唯一地标识所述计算设备的标识信息;
将生成的所述注册秘密发送到通知服务,生成的所述注册秘密包括唯一地标识所述计算设备的信息;
从所述计算设备接收第一哈希值,所述第一哈希值是基于生成的所述注册秘密的所述标识信息而生成的;
基于接收的所述注册秘密的所述标识信息来计算第二哈希值,以确定所述第二哈希值是否与所述第一哈希值匹配;以及
在确定所述第二哈希值与所述第一哈希值匹配时,注册所述计算设备以从所述通知服务接收通知的动作。
2.根据权利要求1所述的计算机实现的方法,其中所述注册秘密中的所述标识信息包括从所述计算设备接收的客户端质询、与所述计算设备相关联的通知地址和时间戳。
3.根据权利要求2所述的计算机实现的方法,其中所述注册秘密包括所述客户端质询、所述通知地址和所述时间戳的哈希。
4.根据权利要求1所述的计算机实现的方法,其中接收的所述注册秘密被加密,并且其中所述第二哈希值是基于经加密的接收的所述注册秘密而生成的。
5.一种用于注册设备以接收通知的计算机实现的方法,所述计算机实现的方法由一个或多个处理器执行,所述一个或多个处理器执行用于所述计算机实现的方法的计算机可执行指令,并且所述计算机实现的方法包括:
生成可标识为源自所述计算设备的客户端质询;
向注册服务发送包括生成的所述客户端质询的通知注册请求;
从通知服务接收注册秘密,所述注册秘密包括唯一地标识包含所述客户端质询的所述计算设备的标识信息;
验证接收的所述客户端质询与生成的所述客户端质询匹配;以及
将包括所述注册秘密的注册请求发送到所述注册服务。
6.根据权利要求5所述的计算机实现的方法,还包括:
向通知服务发送注册请求;以及
从所述通知服务接收唯一地标识所述计算设备的通知地址,所述通知地址包括所述计算设备被配置为接收通知的地址。
7.根据权利要求5所述的计算机实现的方法,其中所述通知服务包括与所述计算设备上运行的至少一个应用或操作***相关联的第三方通知服务。
8.根据权利要求5所述的计算机实现的方法,还包括接收所述计算设备已经被注册以从所述通知服务接收通知的指示的动作。
9.一种计算机***,包括以下项:
一个或多个处理器;
一个或多个计算机可读介质,在一个或多个计算机可读介质上存储有计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时,使得所述计算***执行用于注册设备以接收通知的计算机实现的方法,并且所述计算机实现的方法包括以下项:
从计算设备接收推送通知注册请求,所述请求包括与所述计算设备相关联的推送通知地址;
生成注册秘密,所述注册秘密包括接收的客户端质询、所述推送通知地址和时间戳;
将生成的所述注册秘密、所述时间戳和所述客户端质询发送到推送通知服务;
从所述计算设备接收第一哈希值,所述第一哈希值表示生成的所述注册秘密、所述时间戳和所述客户端质询;
计算接收的所述注册秘密、所述时间戳和所述客户端质询的第二哈希值,以确定所述第二哈希值是否与所述第一哈希值匹配;以及
在确定所述第二哈希值与所述第一哈希值匹配时,注册所述计算设备以接收推送通知的动作。
10.根据权利要求9所述的计算机***,其中使用对所述注册服务唯一的密钥,来对发送到所述推送通知服务的所述注册秘密和所述时间戳进行加密。
CN201580046305.9A 2014-08-29 2015-08-25 注册之前的设备验证 Active CN106664308B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/472,916 US9438609B2 (en) 2014-08-29 2014-08-29 Device verification prior to registration
US14/472,916 2014-08-29
PCT/US2015/046620 WO2016032984A1 (en) 2014-08-29 2015-08-25 Device verification prior to registration

Publications (2)

Publication Number Publication Date
CN106664308A true CN106664308A (zh) 2017-05-10
CN106664308B CN106664308B (zh) 2020-09-25

Family

ID=54035345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580046305.9A Active CN106664308B (zh) 2014-08-29 2015-08-25 注册之前的设备验证

Country Status (4)

Country Link
US (1) US9438609B2 (zh)
EP (1) EP3186943B1 (zh)
CN (1) CN106664308B (zh)
WO (1) WO2016032984A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428890A (zh) * 2017-08-30 2019-03-05 通用电气公司 经由单独设备的云注册发起
CN114731297A (zh) * 2019-11-16 2022-07-08 微软技术许可有限责任公司 用于计算设备对等方匹配的消息限制的自组织网络组

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10257223B2 (en) * 2015-12-21 2019-04-09 Nagravision S.A. Secured home network
US10628752B2 (en) 2016-09-26 2020-04-21 International Business Machines Corporation Routing quantum signals in the microwave domain using time dependent switching
US11978045B2 (en) * 2016-12-22 2024-05-07 Mastercard International Incorporated Method and system for anonymous directed blockchain transaction
CN110225097B (zh) * 2019-05-21 2022-03-15 深圳壹账通智能科技有限公司 一种信息处理方法、设备及存储介质
US11784799B2 (en) * 2019-12-16 2023-10-10 The Toronto-Dominion Bank Secure distribution and management of cryptographic keys within a computing environment using distributed ledgers
CN115544585A (zh) * 2022-09-23 2022-12-30 支付宝(杭州)信息技术有限公司 一种动态配置安全内存的方法、设备、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098229A (zh) * 2006-06-26 2008-01-02 华为技术有限公司 验证待传消息完整性的方法、装置和***
CN101415147A (zh) * 2007-10-19 2009-04-22 华为技术有限公司 一种用户设备寻呼方法及设备
CN101729250A (zh) * 2008-10-21 2010-06-09 日电(中国)有限公司 增量可证数据完整性验证方法、设备和***
US20130013927A1 (en) * 2011-07-08 2013-01-10 Stibel Aaron B Automated Entity Verification
US20140220933A1 (en) * 2013-02-07 2014-08-07 Oracle International Corporation Mobile push notification
CN104077621A (zh) * 2013-03-26 2014-10-01 邵文玉 一种认证注册***及其方法、一种识别标志及其生成方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8763089B2 (en) 2010-01-12 2014-06-24 Microsoft Corporation Flexible authentication and authorization mechanism
US8769278B2 (en) * 2010-04-07 2014-07-01 Apple Inc. Apparatus and method for efficiently and securely exchanging connection data
US8634810B2 (en) 2011-09-29 2014-01-21 International Business Machines Corporation Pushing secure notifications to mobile computing devices
US9384339B2 (en) 2012-01-13 2016-07-05 Telecommunication Systems, Inc. Authenticating cloud computing enabling secure services
US20140007213A1 (en) 2012-06-29 2014-01-02 Wepay, Inc. Systems and methods for push notification based application authentication and authorization
US9053304B2 (en) 2012-07-13 2015-06-09 Securekey Technologies Inc. Methods and systems for using derived credentials to authenticate a device across multiple platforms
US9191354B2 (en) * 2013-08-30 2015-11-17 Verizon Patent And Licensing Inc. Maintaining and updating notification registration information

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098229A (zh) * 2006-06-26 2008-01-02 华为技术有限公司 验证待传消息完整性的方法、装置和***
CN101415147A (zh) * 2007-10-19 2009-04-22 华为技术有限公司 一种用户设备寻呼方法及设备
CN101729250A (zh) * 2008-10-21 2010-06-09 日电(中国)有限公司 增量可证数据完整性验证方法、设备和***
US20130013927A1 (en) * 2011-07-08 2013-01-10 Stibel Aaron B Automated Entity Verification
US20140220933A1 (en) * 2013-02-07 2014-08-07 Oracle International Corporation Mobile push notification
CN104077621A (zh) * 2013-03-26 2014-10-01 邵文玉 一种认证注册***及其方法、一种识别标志及其生成方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428890A (zh) * 2017-08-30 2019-03-05 通用电气公司 经由单独设备的云注册发起
CN109428890B (zh) * 2017-08-30 2022-10-04 通用电气公司 经由单独设备的云注册发起
CN114731297A (zh) * 2019-11-16 2022-07-08 微软技术许可有限责任公司 用于计算设备对等方匹配的消息限制的自组织网络组

Also Published As

Publication number Publication date
EP3186943A1 (en) 2017-07-05
CN106664308B (zh) 2020-09-25
US20160065593A1 (en) 2016-03-03
EP3186943B1 (en) 2020-09-23
US9438609B2 (en) 2016-09-06
WO2016032984A1 (en) 2016-03-03

Similar Documents

Publication Publication Date Title
CN106664308A (zh) 注册之前的设备验证
US10687210B2 (en) Switching mobile service provider using blockchain
US10972274B2 (en) Trusted identity solution using blockchain
US10742424B2 (en) Trusted identity solution using blockchain
JP3222165U (ja) 相互認証構成によるユーザ認証に対する汎用分散型ソリューションを実現するシステム
JP6543040B2 (ja) リモートアクセス、リモートデジタル署名のためのシステムおよび方法
JP6907679B2 (ja) 暗号通貨ベースのイベント参加検証
CN110881063B (zh) 一种隐私数据的存储方法、装置、设备及介质
US9160535B2 (en) Truly anonymous cloud key broker
CN109862041A (zh) 一种数字身份认证方法、设备、装置、***及存储介质
US9300639B1 (en) Device coordination
CN112804354B (zh) 跨链进行数据传输的方法、装置、计算机设备和存储介质
WO2022100892A1 (en) Distributed ledger system
CN109493224A (zh) 一种区块链图片社交***
CN112016075B (zh) 基于区块链的行程信息验证方法、电子设备和介质
CN104067286A (zh) 无效托管密钥的检测
WO2020230695A1 (ja) デジタルアセット譲渡方法、デジタルアセット譲渡装置、及びプログラム
CN110708162A (zh) 资源的获取方法、装置、计算机可读介质及电子设备
CN109818965B (zh) 个人身份验证装置及方法
CN110347750B (zh) 基于区块链的数据处理方法和装置
CN110941672A (zh) 户籍管理方法、装置、设备以及存储介质
TWI649661B (zh) 合成文件存取技術
CN108701200A (zh) 改善的存储***
CN115906117A (zh) 一种基于区块链交易可信应用实现方法
WO2023033916A1 (en) Authentication of communication session participants using blockchain

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant