掌桥专利:专业的专利平台
掌桥专利
首页

检查设备的位置

文献发布时间:2024-04-29 00:47:01


检查设备的位置

技术领域

本发明涉及在不同设备之间共享数据,并且更具体地涉及通过视觉验证过程检查两个设备的位置或邻域以确定是否能够在它们之间共享数据。

背景领域

经由无线通信链路在设备(例如,发射机和接收机)之间共享数据(例如,媒体内容)是众所周知的。这种数据共享的一个示例是将媒体内容从智能手机或便携式计算设备投屏到连接到同一无线通信网络的显示器(例如,电视)。

然而,这种投屏通常无法用于使用数字版权管理(DRM)工具保护的内容,因为在接收机(例如,电视)侧可能不能用DRM。

高带宽数字内容保护(HDCP)为在有线数字系统中通过电缆(例如,DVI、HDMI)传输的数字音频和视频内容(A/V内容)提供了数字复制保护方法。HDCP试图阻止复制这种A/V内容。

HDCP 2.x规范采用具有往返时间(RTT)的位置检查作为针对电缆连接保护数字版权的方法。例如,在转让给飞利浦(Kamperman)的美国专利US8886939B2或转让给三星(Singh等人)的美国专利US2011/09668A1中公开了这种类型的解决方案。

举例来说,对于HDCP发射机与HDCP接收机之间的位置检查,HDCP发射机在启动位置检查后设置看门狗定时器并等待20ms,它期望在此之前从HDCP接收机接收到响应。执行位置检查以确保只有在点对点通信的RTT小于20ms时才能交换内容保护密钥。

然而,例如由于意外的网络延迟,这种RTT方法通常不适用于无线网络环境。

在US2018/130168A1中公开了一种视觉认证过程,其包括能够验证即时场景图像的真实性的单个反电子欺骗装置。根据该过程,反电子欺骗装置将随机选择的水印或IR图案投射到人的面部上以用于视觉识别,并且水印或图案动态变化以避免重放攻击。但是它未能解决两个相邻设备之间的交互(例如,数字媒体内容共享)(在这种场景中,来自发送端和接收端的两个设备都应该参与验证过程)的技术问题。

此外,US2017/124297A1公开了一种利用声波信号来识别设备ID的验证过程,其级别甚至比两个设备之间通信的秘密握手更高。

发明内容

本发明由权利要求来限定。

根据来自本发明的一个方面的示例,提供了一种用于检查第一设备和第二设备的位置或邻域以确定是否能够在所述第一设备与所述第二设备之间经由无线通信网络共享数据的方法。例如,第一设备能够是任何便携式计算设备,例如,智能手机、平板电脑、笔记本电脑等,并且第二设备能够是能够显示信息图像的电视或投影仪。要在第一设备与第二设备之间共享的数据包括但不限于任何媒体内容、数字文件等,例如,通过投屏从连接到同一WLAN网络的发射机(例如,智能手机)发送到接收机(例如,电视机)的电影或视频剪辑。

所述方法包括在所述第一设备和所述第二设备处获得秘密的步骤。正如在密码学领域中通常所理解的那样,共享秘密是指只有参与安全通信的各方才知道的一段数据,该秘密可以是密码、密码短语、大数字或随机选择的字节数组,例如参见https://en.wikipedia.org/wiki/Shared_secret。在本发明的任选示例中,秘密(例如,随机数)能够由第一设备(例如,智能手机)生成,然后从第一设备发送到第二设备(例如,电视机)。在另一个任选示例中,该秘密还能够从中间装置(例如,安全服务器)发布,并且例如经由传输层安全(TLS)协议共享给第一设备和第二设备。

所述方法还包括在所述第二设备处使用不可逆加密算法基于所述秘密来生成不可逆值的步骤。本领域技术人员能够理解,不可逆值通常是指不能借助于逆运算或逆计算导出或破解的数据值。在本发明的任选示例中,所述不可逆值能够是通过应用哈希函数(例如,SHA-1算法或SHA-2算法)根据共享秘密计算出的哈希值。然后,在所述第二设备处显示所述不可逆值的视觉表示。

所述方法还包括:在所述第一设备处捕获所显示的视觉表示;并且在所述第一设备处处理所捕获的视觉表示以确定所述第二设备是否在所述第一设备的位置或邻域内。如果确定第二设备在第一设备的位置中,则将允许第二设备与第一设备共享数据;否则,如果确定第二设备不在第一设备的位置或邻域中,则将拒绝或终止数据共享。

根据本发明,“位置”或“邻域”的概念通常能够被理解为第一设备和第二设备位于视觉范围内而使得第一设备能够直接捕获显示在第二设备上的图像,例如在同一房间或有限大小的区域内。在任选示例中,第一设备可以包括相机或连接到本地相机,该相机指向第二设备的显示器或屏幕。

在所述第一设备处处理所捕获的视觉表示包括:从所捕获的视觉表示中提取所述不可逆值;使用相同的不可逆加密算法根据所述秘密来生成验证值;比较所述验证值与所提取的不可逆值以确定所述第二设备是否在所述第一设备的位置内。如果所述验证值与所提取的不可逆值匹配,则能够确定所述第二设备在所述第一设备的位置或邻域中。否则,如果所述验证值与所提取的不可逆值不匹配,则能够确定所述第二设备不在所述第一设备的位置或邻域中。

因此,所提出的构思旨在提供涉及检查第一设备和第二设备的位置以确定是否能够在第一设备与第二设备之间共享数据(例如,媒体内容)的方案、解决方案、构思、设计、方法和系统。特别地,本发明的实施例提出了不依赖于网络环境的鲁棒的位置检查构思(不同于在DTCP位置检查中的常规方法)。

特别地,提出一种检查两个设备是否在/处于同一地点(即,彼此非常邻近)的简单方法是检查它们是否彼此可见。也就是说,如果一个设备对于另一个设备是可见的,则这种共同可见性(即,一个设备看到另一个设备的能力)提供了这两个设备处于同一地点(即,共享相同位置)的有力证据。通过一个设备向另一个设备显示信息,能够使用所显示的信息来确认这些设备彼此可见并由此推断出共享的位置。这种信息可以包括(或者基于)应该只有这两个设备知道的信息,从而有助于设备的验证。

例如,提出了共享秘密可用于两个设备,并且使用该秘密的信息的视觉显示可以使得一个设备能够检查另一个设备是否处于相同位置。通过这种方式,能够验证两个设备的位置。

该技术方案可能特别有用,例如用于在邻近或同一地点(例如,作为两个设备(例如,电视显示器和移动电话)所有者的终端用户的房间)的两个设备之间建立秘密通信。实施例因此可以检查两个设备是否在/处于同一地点(例如处于同一房间),以便确定是否能够在设备之间共享数据(例如,媒体内容)。因此,所提出的(一种或多种)位置检查构思可以帮助在两个设备之间安全共享数据或媒体内容。

所提出的实施例可以提供这样的优点:能够使用视觉检查构思以简单且安全的方式进行两个(或更多个)设备的位置检查。这种位置检查可以满足在设备之间安全共享多媒体内容的需求。举例来说,所提出的(一种或多种)构思可以支持从便携式计算设备(例如,移动电话)到另一个设备(例如,电视)的投屏。通过使用所提出的(一种或多种)位置检查构思,可以仅在本地区域(即,共享地点)共享数据内容以根据数据内容提供商的请求防止/避免滥用共享。

换句话说,实施例提出了一种基于视觉的位置检查方法,该方法可以帮助设备之间数据的受控、受限和/或安全共享。因此,实施例可以用于本地数据共享(例如,投屏),以便防止未经授权的数据复制和/或共享。这样的实施例也可以支持版权保护。因此,所提出的构思可以提供改进的版权保护或数字权利管理。

在一些实施例中,所述分析可以包括:基于所述秘密来生成验证值;比较所述验证值与所提取的不可逆值以确定比较结果;并且如果这两个值彼此匹配,则确定所述第二设备在所述第一设备的邻域中。也就是说,第一设备可以验证由第二设备提供的不可逆值与期望值的匹配。例如,可以在第一设备和第二设备处对秘密应用简单的哈希函数,以便在第一设备和第二设备处生成相应的值。通过在第二设备处显示所生成的值,第一设备能够(通过对这些值进行比较)弄清楚所显示的值是否如预期的那样。

举例来说,如果比较结果指示验证值与所提取的不可逆值匹配,则可以确定第二设备在第一设备的位置内。相反,如果比较结果指示验证值与所提取的不可逆值不匹配,则可以确定第二设备不在第一设备的位置内。

一些实施例还可以包括在所述第二设备处生成第二设备时间戳值,并且可以在所述第二设备处基于所述秘密和所述第二设备时间戳值来生成所述不可逆值。以这种方式,第二设备显示的视觉表示将包括嵌入其中的时间戳信息,以用于对可能的时间延迟的额外验证。

相应地,处理所捕获的视觉表示然后可以包括:在所述第一设备处生成第一设备时间戳值,以例如保留所述第一设备从所述第二设备捕获所述视觉表示的时间记录;然后在所述第一设备处基于所述秘密和所述第一设备时间戳值来生成所述验证值,使得所述验证值也将包括所述第一设备的所述时间戳信息,以用于对时间延迟的额外验证。例如,在用户遇到有人企图通过第三方设备捕获视觉表示并将该视觉表示转发到不同地点(例如转发到远程设备)(以用于随后在不同地点显示)来假装/伪造位置/邻近检查的情况下,这种方法会特别有用。通过结合第一设备和第二设备的对应时间戳信息并且除了验证共享秘密之外还进行时间验证,能够防止这种伪造企图。特别地,使用时间戳信息可以有助于检查由视觉表示的捕获和传输到另一个地点所引起的可能时间延迟的存在。因此,实施例可以适于防止破坏或以其他方式违抗所提出的(一种或多种)位置检查方法的企图。

此外,在任选实施例中,所述第二设备可以通过在每个短时间段后重复生成所述不可逆值的步骤来刷新所述视觉表示,以便实现动态视觉验证。例如,第二设备可以周期性地重复生成第二设备时间戳值的步骤以及根据共享秘密和第二设备时间戳值来计算不可逆值的步骤。

此外,一些实施例还可以包括根据目标准确度值对所述第一时间戳值和所述第二时间戳值中的至少一项进行舍入。通过这种方式,可以预处理时间值以满足精度要求,从而满足不同的应用。

为了帮助或提高时间戳使用的准确度,实施例还可以包括:同步所述第一设备和所述第二设备的参考时钟。然后,可以分别基于所述第一设备和所述第二设备的经同步的参考时钟来生成所述第一设备时间戳值和所述第二设备时间戳值。通过这种方式,可以避免第一设备和第二设备使用的参考时钟或定时器之间的不一致,从而提高准确度。

在一些示例性实施例中,显示不可逆值的视觉表示可以包括:生成包括水印的图像,所述水印具有嵌入其中的所述不可逆值;并且显示所生成的具有水印的图像作为所述不可逆值的所述视觉表示。举例来说,所述水印可以是使用易损水印技术生成的。这种方法可以例如用于对抗通过捕获视觉表示并将该视觉表示传输到不同地点(以用于随后在不同地点显示)的假装/伪造地点的企图。特别地,使用水印可以有助于检查由视觉表示的捕获和传输到另一地点引起的视觉表示的恶化(例如,图像噪声增加,图像质量降低等)的存在。因此,实施例可以适于防止破坏或以其他方式违抗所提出的(一种或多种)位置检查方法的企图。

此外,处理所捕获的视觉表示可以包括:在所捕获的视觉表示中检测所述水印的存在;响应于没有检测到所述水印的存在而确定所述第二设备不在所述第一设备的位置内;并且响应于检测到所述水印的存在而从检测到的水印中提取所述不可逆值。通过这种方式,水印可以提供具有双重目的的隐藏认证对象,例如,不可逆值的视觉表示和载体的认证。

在其他示例性实施例中,显示所述不可逆值的视觉表示可以包括:生成包括所述不可逆值的机器可读代码;并且显示所述机器可读代码作为所述不可逆值的所述视觉表示。例如,所述机器可读代码可以包括线性条形码和/或2D矩阵码。因此,可以采用人类不可读的有效的信息视觉表示,从而保护不可逆值不被人类视觉读取/理解。这可以提供额外的保护而防止破坏、反向工程研究或攻击所提出的(一种或多种)位置检查方法的企图。

一些实施例还可以包括在所述第一设备或所述第二设备处生成所述秘密的步骤。因此,秘密可以由任一设备生成。替代地,在其他实施例中,秘密可以从另一来源(例如,可信服务器)获得。因此,所提出的(一种或多种)构思以许多不同的方式为设备提供秘密。

纯粹作为示例,第一设备可以包括移动计算设备,其例如能够是智能手机、平板电脑、膝上型电脑等,并且第二设备可以包括显示设备,其具有被配置为接收所传送的秘密的通信接口,其例如能够是电视、投影仪、PC或膝上型电脑等。因此,实施例可以用于支持例如从移动电话到智能电视的屏幕共享或投屏,其中,能够防止共享内容被分发到其他远程设备。

根据本发明的另一方面的示例,提供了一种用于在第一设备与第二设备之间建立通信链路的方法。所述方法包括:根据所提出的实施例来检查所述第一设备和所述第二设备的位置或邻域;响应于确定所述第二设备在所述第一设备的位置内而在所述第一设备与所述第二设备之间建立通信链路;并且响应于确定所述第二设备不在所述第一设备的位置内而阻止在所述第一设备与所述第二设备之间建立通信链路。

因此,可以提供用于确保仅在两个设备处于相同位置(即,共享相同的大致地点)时才在这两个设备之间建立通信链路(以例如用于传送媒体内容)的构思。

根据另一方面,提供了一种计算机程序产品,其中,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有用其体现的计算机可读程序代码,所述计算机可读程序代码被配置为执行所提出的实施例的所有步骤。

因此,还可以提供一种计算机系统,所述计算机系统包括:根据所提出的实施例的计算机程序产品;以及一个或多个处理器,其适于通过运行所述计算机程序产品的计算机可读程序代码来执行根据提出的构思的方法。

根据本发明的另一方面,提供了一种第一设备,所述第一设备被配置为检查所述第一设备和第二设备的位置以用于确定是否能够在所述第一设备与所述第二设备之间共享数据。所述第一设备包括:第一处理单元,其被配置为控制所述第一设备以执行以下操作:生成秘密并然后与所述第二设备共享所述秘密;捕获由所述第二设备显示的不可逆值的视觉表示;从所捕获的视觉表示中提取所述不可逆值,其中,所述不可逆值应该是在所述第二设备处使用不可逆加密算法基于所共享的秘密而生成的;使用相同的不可逆加密算法基于所述秘密来生成验证值;比较所述验证值与所提取的不可逆值以执行以下操作:如果所述验证值与所提取的不可逆值匹配,则确定所述第二设备在所述第一设备的位置中。第一设备可以例如包括移动计算设备(例如,智能手机、平板电脑、笔记本电脑等)。

根据本发明的另一方面,提供了一种第二设备,所述第二设备被配置为在第一设备与所述第二设备之间共享数据。所述第二设备包括:第二处理单元,其被配置为控制所述第二设备以执行以下操作:获得秘密;使用不可逆加密算法基于所述秘密来生成不可逆值;显示所述不可逆值的视觉表示;并且如果所述第一设备验证所述第二设备在所述第一设备的位置中,则与所述第一设备共享数据。第二设备可以例如包括具有被配置为接收秘密的通信接口的显示设备(例如,“智能”电视)。

根据本发明的又一方面,可以提供一种数据共享系统,所述数据共享系统包括根据所提出的实施例的第一设备和根据所提出的实施例的第二设备。因此,所述第一设备被配置为检查所述第一设备和所述第二设备的位置或邻域,以便确定是否允许在所述第一设备与所述第二设备之间共享数据。因此,实施例可以提供用于在两个邻近设备之间共享或流式传输媒体内容的数据共享系统的部分或全部内容。也就是说,实施例可以提供用于在两个设备之间本地共享(即,流式传输或截屏播放)多媒体内容的装置,其中,该装置被配置为检查这两个设备处于相同位置。

参考下文描述的(一个或多个)实施例,本发明的这些方面和其他方面将变得明显。

附图说明

为了更好地理解本发明并且更清楚地示出如何将本发明付诸实践,现在将仅以示例的方式参考附图,在附图中:

图1描绘了检查第一设备和第二设备的位置以确定是否能够在第一设备与第二设备之间共享数据的示例性实施例;

图2是根据实施例的用于检查第一设备和第二设备的位置的方法的流程图;

图3描绘了根据另一实施例的用于检查第一设备和第二设备的位置的方法的过程步骤;

图4描绘了根据又一实施例的用于检查第一设备和第二设备的位置的方法的过程步骤;并且

图5是其中可以采用实施例的一个或多个部分的计算机的简化框图。

具体实施方式

将参考附图来描述本发明。

应当理解,详细描述和特定示例虽然指示了装置、系统和方法的示例性实施例,但是它们仅用于说明目的,而并不旨在限制本发明的范围。根据以下描述、所附权利要求和附图,本发明的装置、系统和方法的这些和其他特征、方面和优点将变得更好理解。虽然某些措施被记载在互不相同的从属权利要求中,但是这并不表示不能有利地使用这些措施的组合。

根据对附图、公开内容和所附权利要求的研究,本领域技术人员在实践所要求保护的发明时能够理解和实现所公开的实施例的变型。在权利要求中,词语“包括”并不排除其他元件或步骤,并且词语“一”或“一个”并不排除多个。

应当理解,附图仅仅是示意性的且并未按比例绘制。还应当理解,在所有附图中使用相同的附图标记来指示相同或相似的部分。

本发明提出了用于检查设备的位置或邻域以确定是否能够在设备之间共享数据(例如,媒体内容)的构思,这可以因此有助于数据或媒体内容在设备之间的安全共享。特别地,实施例可以提供采用基于视觉的验证方法的方法和/或系统,并且这可以支持设备之间的数据或多媒体内容的安全共享。

特别地,所提出的构思可以提供一种检查第一设备和第二设备的位置或邻域以确定是否能够在设备之间共享数据(例如,媒体内容)的方法。因此,实施例可以用于投屏和/或提供改进的本地数据/内容共享功能。

仅作为示例,说明性实施例可以在许多不同类型的数据/内容共享环境中使用,例如,个人家庭、工作场所、临床/医疗环境、制造或工程研究设施等。

参考图1,描绘了检查第一设备10和第二设备20的位置以确定是否能够在第一设备与第二设备之间共享数据的示例性实施例。在该示例实施例中,第一设备10是发射机,例如,诸如智能手机、平板电脑或笔记本电脑之类的便携式计算设备,其可以包括或连接到相机或图像扫描仪,并且第二设备20是接收机,例如,能够显示图像或视觉代码的电视机或投影仪。第一设备与第二设备能够经由无线通信链路来连接,例如,Wi-Fi、3G/4G/5G网络或蓝牙。

示例性实施例的主要过程步骤可以总结如下:

(i)发射机10首先生成秘密S:

(ii)发射机10然后将秘密S发送到接收机;

(iii)接收机20接收秘密S并且使用秘密S(例如通过哈希计算)来创建不可逆值H;

(iv)接收机20在接收机的显示屏上显示不可逆值H的视觉表示(例如,图像、水印或QR码);

(v)发射机10捕获/扫描所显示的图像;

(vi)发射机10从所捕获/扫描的图像中提取不可逆值H;

(vii)发射机10通过将所提取的不可逆值H与秘密S进行比较来验证所提取的不可逆值H。如果所提取的不可逆值H与(基于相同的秘密S的)期望值匹配,则验证过程通过;否则,验证过程失败并且拒绝或终止数据共享。

通过进一步解释所提出的(一种或多种)构思,现在将参考图2来描述用于检查第一设备和第二设备的位置的方法的示例性实施例。

图2描绘了根据实施例的用于检查第一设备和第二设备的位置的方法的流程图。对位置的检查能够用于确定是否能够在第一设备与第二设备之间共享数据。

该方法的第一步骤110包括在第一设备和第二设备处获得秘密S。例如,第一设备可以生成秘密S,然后将秘密S传送给第二设备,或者反之亦然。替代地,第一设备和第二设备可以各自经由安全通信链路或互联网从可信来源(例如,可信服务器)取回秘密S。

步骤120然后包括在第二设备处基于秘密S来生成不可逆值H。这可以例如包括使用哈希函数来使用秘密S生成哈希值H。

在步骤130中,例如经由第二设备的显示屏在第二设备处显示不可逆值H的视觉表示。

然后,在步骤140中,第一设备(例如使用图像捕获设备(例如,数字相机))捕获所显示的视觉表示。

然后,在步骤150中,在第一设备处处理所捕获的视觉表示以确定第二设备是否在第一设备的位置或邻域内。

在这个示例中,处理所捕获的视觉表示的步骤150包括三个子步骤:(步骤160)从所捕获的视觉表示中提取不可逆值H;(步骤170)分析秘密S和所提取的不可逆值H以确定分析结果;以及(步骤180)基于分析结果来确定第二设备是否在第一设备的位置中。

特别地,分析的步骤170包括:(步骤172)基于秘密S来生成验证值Hv;(步骤174)比较验证秘密Hv与所提取的不可逆值H以确定比较结果;以及(步骤176)基于比较结果来确定第二设备是否在第一设备的位置中。这里,如果比较结果指示验证秘密Hv与所提取的不可逆值H匹配,则确定第二设备在第一设备的位置内。相反,如果比较结果指示验证秘密Hv与所提取的不可逆值H不匹配,则确定第二设备不在第一设备的位置内。

为了解决所显示的视觉表示的伪造问题,可以采用两个示例性选项:(1)一个实施例可以用时间延迟检查来扩展;或者(2)使用水印,例如,对捕获操作敏感的水印(即,防止二次捕获的易损水印)。

通过以上选项(1)的示例,采用时间延迟检查对所提出的方法的扩展可以总结如下:

(i)第一设备和第二设备各自具有时间同步机制;

(ii)第一设备生成秘密S;

(iii)第一设备然后向第二设备传送包括秘密S的信息;

(iv)第二设备生成时间戳值T,然后通过应用哈希函数根据秘密S和时间戳值T来计算哈希值H;

(v)第二设备显示视觉代码,例如,表示哈希值H的QR码。这里要注意的是,如果位置检查没有完成,则第二设备可以在每个短时间段(例如,1秒钟)后重复生成时间戳值T的步骤和计算哈希值H的步骤,从而根据重新计算的哈希值H来刷新所显示的QR码;

(vi)第一设备使用相机来扫描QR码并且解析所捕获的QR码以提取哈希值H,同时记录这样做的时间戳值T’;

(viii)第一设备通过应用相同的哈希函数基于秘密S和所记录的时间戳值T’来计算它自己的哈希值H’;

(ix)第一设备然后比较两个哈希值H和H’以检查它们是否彼此匹配;

(x)如果位置检查结果被认为是肯定的(即,所比较的哈希值匹配),则确定第一设备和第二设备处于相同位置或非常邻近并且允许(例如从第一设备到第二设备)投屏。否则,如果位置检查结果被认为是否定的(即,所比较的哈希值不匹配),则确定第一设备和第二设备并不处于相同位置并且拒绝或终止投屏。

通过以上选项(2)的示例,嵌入的水印可以适于对操作敏感。例如,水印可以被配置为使得图像捕获向水印添加噪声。也就是说,可以采用易损水印而不强调鲁棒性,使得水印不够鲁棒而无法支持第二次捕获。通过这种方式,两次拷贝图像将使水印不可检测,从而防止了任何拷贝动作。

有许多已知的易损水印算法,为了简明起见,省略了对各种易损水印技术的详细讨论。然而,应当理解,可能优选的是配置水印技术,使得它具有用于判断检测成功与否的适当阈值。因此,测试可能是优选的,以便根据实施方式的细节来确定适当的水印技术(例如,要产生在第一次捕获中可检测/可用但在随后的捕获(即,对第一次捕获的捕获)中不可检测/不可用的水印)。

作为选项(2)的示例,采用水印对所提出的方法的扩展可以总结如下:

(i)第一设备首先向第二设备发送随机nonce;

(ii)第二设备将具有水印形式的nonce嵌入到特定图像中,然后在显示屏上显示该(具有水印的)图像;

(iii)第一设备然后捕获/扫描显示屏;

(iv)如果在扫描/捕获中检测到水印,则提取水印并且检查nonce值。如果值相同,则检查通过,否则位置检查失败;

(v)如果在扫描/捕获中没有检测到水印,则位置检查失败。

在某些情况下,也能够将在以上选项(1)中使用的时间戳信息添加到水印选项(2)中。但是在易损水印的场景中,会将噪声引入到视觉表示中以避免二次捕获,并且可能不一定需要时间戳信息。

作为所提出的(一种或多种)构思的又一示例,现在将参考图3来描述用于检查第一设备和第二设备的位置的方法的示例性实施例。

图3描绘了根据实施例的用于检查第一设备310和第二设备320的位置的方法的过程步骤。在该示例实施例中,第一设备310是包括发射机的移动电话,并且第二设备是包括接收机的智能电视。

这里要注意的是,在开始整个流程之前,发射机最好启动具有超时值(例如,20秒)的定时器。如果定时器超时,那么发射机就能够利用新生成的nonce来重新启动检查流程。

示例性实施例的主要过程步骤可以总结如下:

(i)发射机310和接收机320各自具有时间同步机制。通过这种方式,能够同步发射机310和接收机320的参考时钟。能够以多种方式完成这种时间同步,但是纯粹作为示例,可以使用NTP协议,使得每个设备均从可信的互联网时间源获得准确的时间。

(ii)发射机310生成秘密S,例如,其他设备不知道的随机数。

(iii)发射机310向接收机320发送秘密S。

(iv)接收机320基于秘密S和时间戳值T(对应于接收机进行对哈希H的计算的时间)来计算哈希H。举例来说,时间戳值T通常可以被表示为数字,例如,自1970年1月1日00:00:00以来的秒数。然后能够使用某种哈希算法来计算H,例如以下公式:

H=SHA-256(S|T)(1)

其中,S和T用字符串表示,并且|是级联。

(v)然后,接收机320显示包括H值的QR码(或其他机器可读代码)。

接收机320在短时间段ΔT(例如,1-5秒)后重复步骤(iv)和(v),以便刷新哈希H并因此刷新QR码。这里,可以选择时间段ΔT而使得它防止用户拍摄QR码的照片并将其发送给远程用户进行扫描。因此,举例来说,范围在1-5秒内的时间段ΔT可能是合适的。然而,更短的时间段(例如,0.1秒、0.5秒等)在一些实施例中可能是优选的。相反,其他实施例可以采用更长的时间段(即,更大的ΔT值)。

此外,在一些实施例中,可以将时间戳值预处理为具有与时间段相同的精度。例如,如果时间段ΔT是1秒,则精度将是1秒。如果用毫秒表示时间Toriginal并且将时间段选择为t毫秒,则能够将T计算为:

T=Round(Toriginal/t)*t(2)

(vi)发射机310使用相机来扫描所显示的QR码,从而捕获H。同时,发射机310还生成其自己的时间戳值T’,从而识别由发射机310进行扫描/捕获的时间。如果发射机310处于同一地点,其时间戳值T’应当与QR码中的时间T大致相同。典型地,系统延迟可以是毫秒量级的,因此T和T’的相差量很小(例如,毫秒)。

(vii)发射机基于T’和S来计算其自己的哈希H’。使用与以上在接收机处计算H的方法相同的方法来计算H’,例如:

H’=SHA-256(S|T’)(3)

如果使用上面的(2)对T进行舍入,那么在进行公式(3)的计算之前,也应当使用(2)对T’进行处理。

利用这种方法,如果发射机310和接收机320处于相同位置(因为T应当与T’相同),则H’应当与H相同。如果远程用户试图(例如通过拍摄QR码的照片并将其发送到有效设备进行扫描)查看内容,则拍摄照片和发送照片将会产生显著的延迟Tdelay,因此T’=T+Tdelay。因此,T’将不等于T,因此H将不等于H’,从而导致位置检查失败。

(viii)发射机310比较H与H’。如果H和H’相同,则位置检查结果是肯定的,因此确定发射机310和接收机320处于相同位置。否则,结果是否定的,因此确定发射机310和接收机320并不处于相同位置。

在其他实施例中,发射机310可以使用广泛选择的时间戳值T’来计算多个哈希值H’,例如通过使用以下公式添加短时间段t的1-n延迟:

T’n=T’+n*T(4)

H’n=SHA-256(S|T’n)(5)

然后,如果H等于H’n中的任何一个,则位置检查通过。

在投屏之前,检查通常是整个协商流程的部分。

假设双方(即,第一设备与第二设备)已经交换了能够用作水印处理的加密密钥的共享密钥。水印能够用作检查过程的部分。例如,实施例可以包括在所捕获的视觉表示中检测水印的存在。响应于没有检测到水印的存在,可以确定第二设备不在第一设备的位置内。

这种水印可以使用许多不同形式的识别信息。例如,随机nonce(例如,64位)可以用作水印。

双方都可能已经存储了原始图像以供以后在水印嵌入和提取中使用。为了改进手机摄像头的捕获,创建的具有水印的图像(即,H的视觉表示)可以仅在显示屏的部分中显示。通过默认地在特定显示区域中安排水印的显示,可以简化检测。

作为示例,现在将参考图4来描述采用水印的示例性实施例。

图4描绘了根据实施例的用于检查第一设备410和第二设备420的位置的方法的过程步骤。在该示例实施例中,第一设备410是膝上型电脑,并且第二设备是平板电脑。

图4的示例性实施例的主要过程步骤可以总结如下:

(i)第一设备410生成秘密S,秘密S在该示例中是随机nonce N1;

(ii)第一设备410向第二设备420发送秘密S(即,N1);

(iii)第二设备420使用水印模块将秘密(即,N1)作为水印嵌入到准备好的图像中,从而生成秘密S的视觉表示;

(iv)第二设备420在其显示屏的中心区域显示所生成的(具有嵌入的水印的)图像;

(v)第一设备410扫描/捕获由第二设备显示的图像;

(vi)第一设备410提取水印。如果没有检测到水印,则位置检查过程失败;

(vii)第一设备分析所提取的水印。特别地,第一设备410将所提取的水印与秘密S(即,N1)进行比较,以确定嵌入水印中的秘密是否与在第一设备处生成的秘密相匹配。如果比较结果确认秘密匹配,则位置检查通过。否则,位置检查失败。

如果采用易损水印技术,则如果第一设备410扫描/捕获重新捕获的图像(而不是第二设备的显示),第一设备410将检测不到有效水印。

因此,根据所提出的(一种或多种)构思,可以使用第二设备的显示器来显示不可逆值,以用于对照另一设备(例如,第一设备)检查第二设备的位置。所提出的位置检查方法可以使用秘密值和所显示的不可逆值来确定设备是否与显示器处于相同位置。这能够用于确定是否能够在设备之间共享数据。还提供了一种实施所提出的(一种或多种)构思来检查两个(或更多个)设备的位置的系统。

图5图示了其中可以采用实施例的一个或多个部分的计算机500的示例。上面讨论的各种操作可以利用计算机500的功能。例如,用于提供对象特异性用户接口的系统的一个或多个部分可以并入本文讨论的任何元件、模块、应用程序和/或部件中。在这点上,应当理解,系统功能块能够在单个计算机上运行,也可以被分布在(例如经由互联网连接的)若干计算机和位置上。

计算机500包括但不限于PC、工作站、膝上型电脑、PDA、掌上设备、服务器、存储装置等。通常,就硬件架构而言,计算机500可以包括一个或多个处理器510、存储器520以及一个或多个I/O设备530,它们经由本地接口(未图示)通信耦合。如本领域已知的,本地接口能够是例如但不限于一条或多条总线或其他有线或无线连接。本地接口可以具有附加元件(例如,控制器、缓冲器(高速缓冲存储器)、驱动器、中继器和接收器)以实现通信。另外,本地接口可以包括地址、控件和/或数据连接以实现上述部件之间的适当通信。

处理器510是用于运行能够存储在存储器520中的软件的硬件设备。处理器510实际上能够是与计算机500相关联的若干处理器中的任何定制或市售的处理器、中央处理单元(CPU)、数字信号处理器(DSP)或辅助处理器,并且处理器510可以是基于半导体的微处理器(以微芯片的形式)或微处理器。

存储器520能够包括易失性存储器元件(例如,随机存取存储器(RAM),如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)和非易失性存储元件(例如,ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、压缩盘只读存储器(CD-ROM)、磁盘、软盘、盒式磁带、卡带等)中的任意一项或组合。此外,存储器520可以结合电学、磁性、光学和/或其他类型的存储介质。注意,存储器520能够具有分布式架构,其中,各种部件彼此远离,但是能够由处理器510访问。

存储器520中的软件可以包括一个或多个单独的程序,其中的每个程序都包括用于实施逻辑功能的可执行指令的有序列表。根据示例性实施例,存储器520中的软件包括合适的操作系统(O/S)550、编译器540、源代码560以及一个或多个应用程序570。如图所示,应用程序570包括用于实施示例性实施例的特征和操作的众多功能部件。根据示例性实施例,计算机500的应用程序570可以表示各种应用程序、计算单元、逻辑单元、功能单元、过程、操作、虚拟实体和/或模块,但是应用程序570并不意味着限制。

操作系统550控制其他计算机程序的运行并提供调度、输入-输出控制、文件和数据管理、存储器管理以及通信控制和相关服务。发明人设想到用于实施示例性实施例的应用程序570可以适用于所有市售的操作系统。

应用程序570可以是源程序、可执行程序(目标代码)、脚本或包括要执行的一组指令的任何其他实体。当是源程序时,该程序通常经由编译器(例如,编译器540)、汇编器、解释器等来翻译,这些模块可以被包括在存储器520中,也可以不被包括在存储器520中,以便结合O/S 550进行正确操作。此外,应用程序570能够被编写为面向对象的编程语言(其具有数据和方法类)或过程编程语言(其具有例程、子例程和/或函数,例如但不限于C、C++、C#、Pascal、BASIC、API调用、HTML、XHTML、XML、ASP脚本、JavaScript、FORTRAN、COBOL、Perl、Java、ADA、.NET等)。

I/O设备530可以包括输入设备,例如但不限于鼠标、键盘、扫描仪、麦克风、相机等。此外,I/O设备530还可以包括输出设备,例如但不限于打印机、显示器等。最后,I/O设备530还可以包括既传送输入又传送输出的设备,例如但不限于NIC或调制器/解调器(用于访问远程设备、其他文件、设备、系统或网络)、射频(RF)或其他收发器、电话接口、网桥、路由器等。I/O设备530还包括用于通过各种网络(例如,互联网或内联网)进行通信的部件。

如果计算机500是PC、工作站、智能设备等,则存储器520中的软件还可以包括基本输入输出系统(BIOS)(为简单起见而省略)。BIOS是一组基本的软件例程,它在启动时初始化和测试硬件,启动O/S 550,并且支持硬件设备之间的数据转移。BIOS被存储在某种类型的只读存储器(例如,ROM、PROM、EPROM、EEPROM等)中,使得当计算机500被激活时能够运行BIOS。

当计算机500运行时,处理器510被配置为:运行存储在存储器520中的软件,向存储器520传送数据和从存储器520传送数据,并且通常根据软件来控制计算机500的操作。应用程序570和O/S 550由处理器510全部或部分读取,可能缓存在处理器510中,然后被运行。

当应用程序570以软件实施时,应当注意,应用程序570实际上能够被存储在任何计算机可读介质上,以供任何计算机相关系统或方法使用或与其结合使用。在本文档的上下文中,计算机可读介质可以是电子、磁性、光学或其他物理设备或模块,其能够包含或存储由计算机相关系统或方法使用或与其结合使用的计算机程序。

应用程序570能够被实施在任何计算机可读介质中,以供指令运行系统、装置或设备(例如,基于计算机的系统、包含处理器的系统或能够从指令运行系统、装置或设备取回指令并运行指令的其他系统)使用或与其结合使用。在本文档的上下文中,“计算机可读介质”能够是能够存储、通信、传播或传输由指令运行系统、装置或设备使用或与其结合使用的程序的任何模块。计算机可读介质能够是例如但不限于电子、磁性、光学、电磁、红外或半导体系统、装置、设备或传播介质。

图1至图4的方法可以用硬件或软件或这两者的混合(例如作为运行在硬件设备上的固件)来实施。就实施例部分或全部以软件实施而言,过程流程图中所示的功能步骤可以由经适当编程的物理计算设备(例如,一个或多个中央处理单元(CPU)或图形处理单元(GPU))来执行。每个过程(及其在流程图中所示的个体组成步骤)可以由相同或不同的计算设备来执行。根据实施例,计算机可读存储介质存储包括计算机程序代码的计算机程序,该计算机程序被配置为当程序在一个或多个物理计算设备上运行时使一个或多个物理计算设备执行如上所述的编码或解码方法。

存储介质可以包括易失性和非易失性计算机存储器,例如,RAM、PROM、EPROM和EEPROM、光盘(如CD、DVD、BD)、磁性存储介质(如硬盘和磁带)。各种存储介质可以被固定在计算设备内,也可以是可转移的,使得存储在其上的一个或多个程序能够被加载到处理器中。

就实施例部分或全部以硬件实施而言,附图中所示的一个框的功能可以在实施方式中的多个组成部分之间划分,或者附图中所示的多个框的功能可以在实施方式中的单个组成部分中组合。适合用于本发明的实施例的硬件部件包括但不限于常规的微处理器、专用集成电路(ASIC)和现场可编程门阵列(FPGA)。一个或多个框可以被实施为执行某些功能的专用硬件与执行其他功能的一个或多个经编程的微处理器和相关电路的组合。

根据对附图、公开内容和所附权利要求的研究,本领域技术人员在实践所要求保护的发明时能够理解和实现所公开的实施例的变型。在权利要求中,词语“包括”并不排除其他元件或步骤,词语“一”或“一个”并不排除多个。单个处理器或其他单元可以实施权利要求中列举的若干项目的功能。在相互不同的从属权利要求中引用某些措施这一事实并不指示不能有利地使用这些措施的组合。如果上面讨论了计算机程序,则它可以被存储/分布在合适的介质上,例如与其他硬件一起提供或作为其部分的光学存储介质或固态介质,但是也可以以其他形式分布,例如经由互联网或其他有线或无线电信系统而分布。如果权利要求或说明书中使用了术语“适于”,则应当注意,术语“适于”旨在等同于术语“被配置为”。权利要求中的任何附图标记都不应被解释为限制范围。

附图中的流程图和框图说明了根据本发明的各种实施例的系统、方法和计算机程序产品的可能的实施方式的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令模块、指令段或指令部分,其包括用于实施(一种或多种)指定逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中标注的功能可以不按照附图中标注的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,具体取决于所涉及的功能。还将注意到,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合能够由基于专用硬件的系统来实施,该系统执行指定的功能或动作或者执行专用硬件与计算机指令的组合。

相关技术
技术分类

06120116595117