使用已转移的代码模块的安全装置操作的制作方法

文档序号:23629113发布日期:2021-01-12 10:43阅读:149来源:国知局
使用已转移的代码模块的安全装置操作的制作方法

本公开的实施例一般涉及装置安全性,而且更特定地涉及在相应装置的运行时环境之间转移代码模块以安全地访问装置功能性。



背景技术:

装置例如通过网络相互通信以便执行任务是常见的。为了无论是在本地还是通过网络利用装置的功能,用户通常必须向该装置认证。一旦被认证,用户则能够使用该装置来执行一个或多个功能。

认证常常是通过提供装置认可的某些凭证来执行的。例如,用户可提供密码,或者应用可提供数字密钥。如果密码或密钥被盗或者被伪造,则装置的安全性可能受损。一旦这种装置受损,它的任何数量的功能可能被利用。一般来说,恶意用户的复杂程度不断增加已经对开发者设计用于保护装置的更好的新技术造成持续的压力。



技术实现要素:

本公开的实施例以与传统方式不同的方式调用装置功能。仅作为一个示例,智能锁执行支持解锁功能的运行时环境。为了获得对解锁功能的访问,另一装置(例如,用户的智能电话)获取将代码模块转移到智能锁的授权。代码模块被配置成在智能锁的运行时环境内执行,并且(例如,经由无线通信)向用户的智能电话透露解锁功能。一旦向用户的装置透露了解锁功能,在用户的装置上的运行时环境内运行的应用能够经由代码模块调用该解锁功能。

按照特定实施例,这种系统对于侵入有弹性。例如,即使以上讨论的智能锁在某种程度上受损,若没有代码模块,也可能无法容易地调用解锁功能。附加地或备选地,被下载到用户的装置的恶意软件代理可能不能够截获在智能锁与用户装置运行时环境之间交换的凭证。将在下面讨论或者相关领域的技术人员将会清楚其它优点连同第一装置利用第二装置的其它实施例。

与上述一致,特定实施例包括由第一装置实现的、使用第二装置的方法。该方法包括使用在第一装置上执行的第一运行时环境将代码模块转移到在第二装置上执行的第二运行时环境。代码模块被配置成在第二运行时环境内执行,并且向第一装置透露第二运行时环境所支持的第二装置的功能。该方法还包括在第一运行时环境内执行应用。该应用经由已转移的代码模块和第二运行时环境来远程调用第二装置的功能。

在一些实施例中,该方法还包括向第二运行时环境认证第一运行时环境,以获取将代码模块转移到第二运行时环境以在第二运行时环境内执行的授权。

在以上实施例的任一个中,该方法还包括与第二运行时环境直接通信以调用第二装置的不同功能。

在以上实施例的任一个中,通过第一装置与第二装置之间的无线点对点连接来执行代码模块向第二运行时环境的转移。

其它实施例包括由第二装置实现的为第一装置提供对第二装置的功能的访问的方法。该方法包括将代码模块从在第一装置上执行的第一运行时环境转移到在第二装置上执行的第二运行时环境,以便向第一装置透露第二运行时环境所支持的第二装置的功能。该方法还包括响应于经由代码模块从在第一运行时环境内执行的应用接收的对功能的远程调用,使用第二运行时环境来控制第二装置的功能的执行。

在一些实施例中,该方法还包括向第二运行时环境认证第一运行时环境,以授权将代码模块转移到第二运行时环境以在第二运行时环境内执行。

在第二装置的方法的任一个中,该方法还包括响应于从第一装置到第二运行时环境的直接通信,使用第二运行时环境来控制第二装置的不同功能的执行。

在第二装置的方法的任一个中,通过第一装置与第二装置之间的无线点对点连接来执行代码模块从第一运行时环境的转移。

在以上实施例的任一个中,第二装置是电子锁,以及第二运行时环境所支持的功能对电子锁进行锁定或解锁。

其它实施例包括一种装置,该装置被配置成执行上述方法的任一个。在一些实施例中,该装置包括处理器和存储器,存储器包含处理器可执行的指令,由此该装置被配置成执行该方法。在一些实施例中,该装置包括用于执行该方法的一个或多个物理单元和/或功能模块。

其它实施例包括一种包含指令的计算机程序,所述指令在装置的至少一个处理器上被执行时,导致该至少一个处理器实施上述方法的任一个。

其它实施例包括包含这种计算机程序的载体。在一些实施例中,载体是电子信号、光信号、无线电信号或者计算机可读存储介质。

附图说明

图1是示出按照一个或多个实施例的示例网络环境的框图。

图2是示出按照一个或多个实施例的实体之间的示例信令的调用流程图。

图3是示出按照一个或多个实施例由第一装置实现的示例方法的流程图。

图4是示出按照一个或多个实施例由第二装置实现的示例方法的流程图。

图5是示出按照一个或多个实施例的示例硬件的框图。

图6是示出按照一个或多个实施例的示例第一装置的框图。

图7是示出按照一个或多个实施例的示例第二装置的框图。

具体实施方式

本公开的实施例包括代码模块,该代码模块将某一装置的功能透露给另一装置。在运行时环境之间经由无线通信来安全地转移该代码模块,使得可远程调用该功能。这个转移可由彼此接近的装置来触发。在运行时环境之间操控对转移代码模块的授权,使得远程应用无需支持装置所使用的任何特定安全性方案。若没有代码模块,可能经由远程调用不可访问该功能,而且在已调用该功能之后和/或一旦装置不再处于附近,可删除或返回代码模块,例如,以便防止其它装置未经授权地调用该功能。

在一些实施例中,装置是分布式物联网(iot)系统的一部分。这种系统的一个示例可基于calvin应用环境。在这种基于calvin的系统中,应用可从功能块(有时称作执行器)来构建,这些功能块在被绑定到装置的运行时上执行。按照实施例,执行器可根据需要在运行时之间移动,以便在特定装置上执行其功能性。

图1示出示例网络环境100,网络环境100包括第一装置110和第二装置115。第一装置110和第二装置115都可通信地相互连接并且相互交换信号(例如,无线地,经由点对点连接)。在一些实施例中,第一装置110和/或第二装置115被连接到网络105,并且被配置成经由网络105与远程装置145通信和/或相互通信。因此,第一和第二装置110、115可各自经由一个或多个兼容技术(例如,近场通信(nfc)、wi-fi、bluetooth、zigbee、长期演进(lte)、新空口(nr)、以太网等)来支持有线和/或无线通信。

第一和第二装置110、115分别执行第一和第二运行时环境120、125。第一装置110的第一运行时环境120被配置成例如通过控制第一装置110的无线传送器,将代码模块140转移到第二装置115的第二运行时环境125。对应地,第二装置115被配置成例如通过主动控制第二装置115的无线接收器,或者通过被动允许第二装置115的存储器被第一装置110写入(例如,使用把来自第一装置110的rf传输转换为存储器写指令的电路,在一些实施例中,这种电路通过那些传输的rf能量来供电),将代码模块140从第一运行时环境120转移到第二运行时环境125。

代码模块140被配置成在第二运行时环境125内执行,并且向第一装置110透露第二运行时环境125所支持的第二装置115的功能。如下面将进一步讨论的,在第一装置110的第一运行时环境120内执行的应用130经由已转移的代码模块140和第二运行时环境125来调用第二装置115的功能。

第一装置110的典型示例包括(但不限于)移动装置,诸如智能电话、用户设备、膝上型计算机、平板计算机和/或可穿戴计算机。第二装置115的典型示例包括(但不限于)计算机和/或智能电器。第一和第二装置110、115的其它示例包括其它类型的计算装置。

网络105包括能够与第一和/或第二装置110、115交换通信信号的一个或多个物理装置和/或信令介质。这种网络105的示例包括(但不限于)下列的一个或多个:因特网(或者其一部分);一个或多个局域网;一个或多个无线网络;一个或多个蜂窝网络;一个或多个基于因特网协议的网络;一个或多个以太网网络;一个或多个光网络;和/或一个或多个电路交换网络。这种网络105可包括支持这类通信信号的交换的任何数量的连网装置,诸如路由器、网关、交换机、集线器、防火墙等(未示出)。

远程装置145可以是经由网络105可通信地耦合到第一和/或第二装置110、115的任何计算装置。远程装置145可例如充当第一装置110,只不过能力不同。例如,远程装置145可以是管理员工作站,该管理员工作站能够经由网络105,例如,经由到第二装置115的被物理保护或被加密的网络连接,安全地访问第二装置115。因此,远程装置145的用户可以通过也将代码模块140转移到第二装置并且调用特定功能,能够调用第二装置115的相同和/或不同功能,例如,以便辅助第一装置110的用户。远程装置145的典型示例包括(但不限于)工作站、个人计算机、膝上型计算机和/或平板计算机。

图2示出与上述方面一致的、在移动装置210与智能锁215之间的示例调用流程。在图2的示例中,移动装置210是第一装置110的示例,而智能锁215是第二装置115的示例。虽然图2示出移动装置210和智能锁215交互的特定示例,但是备选实施例可包括充当第一和/或第二装置110、115来安全地访问与以下所述那些功能不同的其它功能的其它装置。

与图1的一般讨论一致,图2所示的移动装置210执行移动运行时环境220。锁控制软件230例如作为服务或者响应于被移动装置210的用户启动而在移动运行时环境220内执行。智能锁215执行智能锁运行时225。智能锁运行时225支持锁控制操作,例如,对智能锁215进行锁定和解锁。但是,在没有代码模块140(该模块在这个示例中由移动装置210来提供)的情况下,智能锁运行时225不准许远程调用这些操作。

按照图2中所示的示例,移动和智能锁运行时环境220、225中的每个例如通过感测另一装置所产生的射频(rf)能量来检测彼此(步骤250)。在一些实施例中,装置210、215中的任一个或者两者可使用附加的或备选的接近性检测技术(例如,经由对应的传感器和/或接收器的光学和/或听觉检测)来检测彼此。

响应于检测到彼此,移动和智能锁运行时环境220、225参与认证过程(步骤252)。这个认证过程可包括一个或多个凭证的交换,由此,智能锁运行时环境225可确定是否准许移动装置210使用智能锁215的某些受保护功能(例如,解锁功能)。特别是,通过这个认证过程的执行,可建立移动与智能锁运行时环境220、225之间的信任关系。

在成功认证之后,移动运行时环境220将代码模块140转移到智能锁运行时环境225(步骤254)。代码模块140被配置成在智能锁运行时环境225内执行,并且向移动装置210透露智能锁215的解锁功能。

然后,锁控制软件230例如使用对代码模块140的应用编程接口(api)的适当函数调用,经由已转移的代码模块140来调用智能锁215的解锁功能,如图2中由函数调用“module.unlock()”所表示(步骤256)。值得注意的是,通过要求凭证并且基于凭证建立了信任关系,锁控制软件230能够利用移动与智能锁运行时环境220、225之间建立的信任关系,以便调用解锁功能。这例如在避免向某些应用提供敏感凭证方面会是有利的。特别是,实施例可使用户能够自由下载并且使用第三方和/或非置信应用以调用功能,而无需担心这些应用将能够获取任一装置210、215的凭证。

代码模块140在智能锁运行时环境225内执行,以便通过对应地调用智能锁运行时环境所支持的api来操控“module.unlock()”函数调用,这在图2中由函数调用“runtime.unlock()”来表示(步骤258)。因此,按照图2中所示的实施例,除其它作用之外,代码模块140可用作移动装置210上的锁控制软件230与控制智能锁215的解锁功能的智能锁运行时环境225之间的转换层。响应于来自代码模块140的解锁函数调用,智能锁运行时环境225通过相应地控制智能锁215(即,通过对智能锁215进行解锁)来响应(步骤260)。

在已经执行解锁之后,智能锁运行时环境225检测已经满足用于删除代码模块140的一个或多个标准(步骤266)。在这个特定示例中,不准许代码模块140无限期地保持加载在智能锁215上。因此,智能锁运行时环境具有用于确定要删除代码模块140的时间的一个或多个标准。用于删除代码模块140的标准可包括是否能够检测到移动装置210和/或自转移了代码模块140以来是否已经过了阈值时间段。

例如,当代码模块140存在于智能锁215上时,智能锁215可能易受(例如,在没有认证的情况下和/或通过欺骗移动装置210的特性)经由代码模块140调用智能锁215的受保护功能的某个其它装置(未示出)的攻击。因此,在自转移了代码模块140以来已经过了阈值时间段之后和/或如果移动装置210不再与智能锁215接近,则智能锁运行时环境225可确定应当删除代码模块140。特别是,智能锁运行时环境225可根据未能检测到来自移动装置210的一定的rf能量来确定移动装置210已经离开智能锁215周围的区域。

在检测到已满足某个模块删除标准之后,智能锁运行时环境225删除代码模块140(步骤268)。在一些实施例中,智能锁运行时环境225还将代码模块140转移回到移动装置210(例如,到移动运行时环境220)。因此,在一些实施例中,代码模块140可充当令牌,该令牌限制使用锁控制软件230的方式。也就是说,当代码模块140被转移到智能锁215时,例如可阻止锁控制软件230向不同的装置发送module.unlock()命令。

在一些实施例中,智能锁运行时环境225支持不需要代码模块140的其它功能。这种功能可以例如是不需要认证就可调用的公共和/或只读功能。因此,在一些实施例中,移动运行时环境220和/或锁控制软件230可通过与智能锁运行时环境225直接通信来调用智能锁215的功能。在图2的示例中,这通过移动运行时环境220和锁控制软件230各自调用智能锁运行时环境225的“runtime.info()”函数调用来示出(步骤262,264)。这种函数调用可以例如返回与智能锁215有关的装置状态信息。这种信息可包括装置身份、所有者身份、管理员的联络信息、锁是锁定的还是解锁的、和/或与智能锁215有关的其它信息。

例如,移动装置210的用户在尝试对智能锁215进行解锁时可能会遇到困难。在这种情形中,用户可使用锁控制软件230获取关于如何联络管理员的信息,管理员能够使用远程装置145将代码模块140转移到智能锁运行时环境225,并且自行对智能锁215进行解锁,或者使移动装置210的用户能够使用其锁控制软件230来进行这项操作。这种管理员的一个示例可以是酒店经理,其能够远程帮助使用该系统有困难的客人进入其房间,然而存在可包括其它装置、上下文和/或用户角色的各种各样的实施例。

还应当注意,虽然在步骤254、256、258、262、264和268中执行的动作被示为单向动作,但是这些步骤中的一个或多个可触发对应的响应,在响应中返回值,例如以指明所示动作的结果。例如,智能锁运行时环境225可分别基于智能锁是否已成功解锁,以零值或非零值来响应runtime.unlock()函数调用。

与上述一致,本公开的实施例包括由第一装置110实现的、使用第二装置115的方法300,例如图3中所示的方法300。方法300包括使用在第一装置110上执行的第一运行时环境120将代码模块140转移到在第二装置115上执行的第二运行时环境125(框310)。代码模块140被配置成在第二运行时环境125内执行,并且向第一装置110透露第二运行时环境125所支持的第二装置115的功能。方法300还包括在第一运行时环境120内执行应用130(框320)。应用经由已转移的代码模块140和第二运行时环境125来远程调用第二装置115的功能。

其它实施例包括由第二装置115实现的、为第一装置110提供对第二装置115的功能的访问的方法400。方法400包括将代码模块140从在第一装置110上执行的第一运行时环境120转移到在第二装置115上执行的第二运行时环境125,以便向第一装置110透露第二运行时环境125所支持的第二装置115的功能(框410)。方法400还包括响应于经由代码模块140从在第一运行时环境120内执行的应用130接收的对功能的远程调用,使用第二运行时环境125来控制第二装置115的功能的执行(框420)。

图5示出按照一个或多个实施例的适合于实现和/或支持第一和/或第二装置110、115的硬件500。如所示,硬件500包括处理电路510和无线电电路520。无线电电路520可被配置成经由作为硬件500的一部分或者耦合到硬件500的一个或多个天线(未示出)来传送和/或接收。处理电路510被配置成例如通过执行存储器530中存储的指令来执行以上例如在图2和/或图3中所描述的处理。如下面将讨论的,在这方面,处理电路510可包括一个或多个物理单元。附加地或备选地,存储器530中存储的指令可被包含在一个或多个软件模块中。

图6在这方面示出按照特定实施例的第一装置110的附加细节。具体来说,第一装置110可包括转移单元或模块605以及执行单元或模块610。转移单元或模块605可被配置成使用在第一装置110上执行的第一运行时环境120将代码模块140转移到在第二装置115上执行的第二运行时环境125。代码模块140被配置成在第二运行时环境125内执行,并且向第一装置110透露第二运行时环境125所支持的第二装置115的功能。

图7示出按照特定实施例的第二装置115的附加细节。具体来说,第二装置115可包括转移单元或模块705以及控制单元或模块710。转移单元或模块可被配置成将代码模块140从在第一装置110上执行的第一运行时环境120转移到在第二装置115上执行的第二运行时环境125,以便向第一装置110透露第二运行时环境125所支持的第二装置115的功能。控制单元或模块710可被配置成响应于经由代码模块140从在第一运行时环境120内执行的应用130接收的对功能的远程调用,使用第二运行时环境125来控制第二装置115的功能的执行。

鉴于以上所述,可将本公开的各方面完全实现为硬件单元,完全实现为软件模块(包括固件、常驻软件、微码等),或者实现为硬件单元和软件模块的组合。例如,本公开的实施例可采取具有硬件和/或软件组件的计算装置的形式。其它实施例可采取在计算装置的处理器上执行的软件的形式。其它实施例可采取被配置成执行本文所述的特定功能的专用硬件的形式。其它实施例可采取以计算机程序的形式存储软件指令的非暂时性计算机可读介质的形式,所述计算机程序在可编程装置上被执行时,将可编程装置配置成执行以下所述的各种方法。

本发明当然可通过不同于本文具体提出的那些方式的其它方式来实施,而没有背离本发明的基本特征。本实施例在所有方面要被视为说明性的而不是限制性的,并且落入所附权利要求的含意和等同范围之内的全部变更都意在涵盖于其中。本领域技术人员会理解,可使用各种硬件配置来实现本文所述的各种方法和过程,所述硬件配置一般但不一定包括耦合到存储器的一个或多个微处理器、微控制器、数字信号处理器等的使用,所述存储器存储用于实施本文所述的技术的软件指令或数据。特别是,本领域技术人员会理解,各种实施例的电路可按照在某些细节上与以上给出的广泛描述不同的方式来配置。例如,可使用专用硬件而不是配置有程序指令的微处理器来实现以上讨论的处理功能性中的一个或多个。

本公开的实施例可附加地或备选地包括本文所述的特征的任何兼容组合。虽然本文所述的各种过程或方法的步骤可被示为和描述为按序列或按时间顺序,但是若没有另行指明,则任何这类过程或方法的步骤不限于按任何特定序列或顺序来实施。实际上,这类过程或方法中的步骤一般可按各种不同序列和顺序来实施,而仍落入本发明的范围之内。

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