私人数据处理的制作方法

文档序号:20515369发布日期:2020-04-24 19:01阅读:194来源:国知局
私人数据处理的制作方法

相关申请交叉引用

无。



背景技术:

在当今的技术环境中,用户通常需要提交私人数据才能使用各种服务。通常,涉及传递个人信息的应用依赖于集中式服务器。在这种情况下,用户应信任集中式服务提供商不会以不合需要的方式以及未经他们同意就使用他们的个人数据。在某些情况下,集中式服务提供商甚至可能要求用户同意放弃个人信息来使用其服务。此外,iot装置之间的安全也是一个重要问题,因为这些装置已经证实对于可能与例如智能车辆和家用电器等各种机器尤其息息相关的黑客攻击很敏感。在此项技术中需要一种用于在装置之间交换和处理私人数据的安全的方法。

本发明的实施例个别地以及共同地解决这些和其它问题。



技术实现要素:

本发明的一个实施例针对一种方法,所述方法包括:由分布式数据库系统中的一个或多个节点在多个数据库当中的一个或多个数据库中存储一个或多个网络启用装置的数据,其中每一网络启用装置的所述数据包括经加密私人数据,和与所述私人数据相关联的元数据。所述元数据可包括许可数据、时间周期验证数据和加密参数。所述方法可进一步包括从第二网络启用装置接收访问与第一网络启用装置相关联的第一私人数据的访问请求。所述访问请求可包括第一网络启用装置标识符和第二网络启用装置标识符。此外,所述方法可包括:由所述一个或多个节点且使用第一网络启用装置标识符定位经加密第一私人数据的位置,且使用与经加密第一私人数据相关联的第一许可数据并使用第二网络启用装置标识符确定第二网络启用装置是否被授权以访问第一私人数据,以及将第一私人数据提供到第二网络启用装置,其中第二网络启用装置获得并解密经加密第一私人数据以获得第一私人数据。

在一实施例中,第一网络启用装置标识符是第一网络启用装置公共密钥,且第二网络启用装置标识符是第二网络启用装置标识符公共密钥。在另一实施例中,第一网络启用装置使用迪菲-赫尔曼密钥交换协议与第二网络启用装置共享对称密钥。在又一实施例中,所述加密数据包括呈加密形式的以下中的一个或多个:第一网络启用装置的位置、用于操作第一网络启用装置的指令、第一网络启用装置的唯一标识符、第一网络启用装置的所有权信息,和/或网络启用装置的操作条件。

其它实施例针对计算机系统和装置,其包括处理器,和耦合到处理器的计算机可读介质,用于实施上述方法。

关于本发明的实施例的另外细节可参见本文中所描述的具体实施方式和图式。

附图说明

图1展示用于在装置之间交换私人数据的系统。

图2a和图2b展示实施例的数据流图。

图3展示根据一实施例的iot装置的框图。

图4展示流程图,其描绘根据一实施例的注册。

图5展示根据一实施例用于在装置之间共享私人数据的方法的流程图。

术语

术语“服务器”可指代为一个或多个客户端装置的请求服务的装置。由服务器提供的功能性也可被称作“服务”。服务器可通过网络向一个或多个装置提供服务。举例来说,服务器可用于根据预先建立的网络协议存储和/或定位数据。通过网络提供服务的服务器可称为“网络主机”。

术语“域名系统”或“dns”可指代用于转译装置的名称和/或地址的系统举例来说,dns可用于将装置的可辨识名称(例如,我的汽车、我的电话等)转译为区分每一装置的网络地址。转译dns的名称和地址的服务器可称为“dns服务器”。

“网络节点”或“节点”可以指代网络中的连接点。网络节点可包括能够接收和/或发送数据的装置和服务器。举例来说,节点可以是个人计算机、移动电话,或具有足够的网络接口的任何其它装置。

术语“注册服务器”可指代记录的保持器。记录可以是数字记录,且注册服务器可以是例如用于管理数字记录的专用服务器。由注册服务器管理的记录的列表可称为“注册表”。数字注册表可存储在存储器中的装置上。

术语“高速缓存”可指代被存储以供将来参考的项目的集合。举例来说,“高速缓存”可以是存储器存储装置,其中可存储最近或频繁联系的装置的网络地址。可执行高速缓存数据,使得可更高效地访问数据。

“用户装置”可包括可属于用户和/或可由用户操作的任何装置。举例来说,用户装置可包括移动电话、pda、台式计算机、膝上型计算机、音乐播放器、手持式读取器等。其它实例可包括例如智能手表、健身手环、戒指、护目镜等可穿戴装置。用户装置还可以是具有网络能力的机器,例如iot装置。

术语“物联网”或“iot”可指代日常对象可接收和交换数据的概念。举例来说,例如车辆、建筑物、住宅和家用电器等典型的对象可装配有电子和网络能力,使得当所述对象在使用中时可收集和/或共享数据。基于iot概念设计和/或产生的对象可称为“iot装置”。

术语“区块链”可指代用于维持记录的列表的分布式数据库。区块链可固有地对修改数据具有抗性,使得记录既定为不变的。区块链中的记录可存储在块中,其中每一块含有时戳和到先前块的链路。

“密钥值”对可指代一组两个链接的数据项。在密钥值对中,每一数据项的唯一标识符(密钥)可在表中链接到其值。所述值可以是值本身,或可以是到数据的位置的指针。举例来说,密钥可以是“账户号码”,且值可以是“1234567812421242”。

“应用”可指代存储在计算机可读介质上的可由处理器执行以完成任务的计算机代码或其它数据。举例来说,应用可以是存储在移动装置的存储器上的移动应用,例如相机应用、消息接发应用、骑乘共享应用等。

术语“加密”可指代将信息转换为无意义的表示的过程。可进行此过程以防止信息被未被授权的实体读取。“加密密钥”(有时简称为“密钥”)可以是用于对数据进行加密的加密算法的变量或值。举例来说,加密密钥可以是位的串。可以相同方式对数据进行加密和解密的加密值可称为“对称密钥”。

术语“非对称加密”可指代使用公共密钥和私人密钥的一种加密形式。非对称加密还可被称作“公共密钥密码术”。“公共密钥”可以是可被共享或为公共的加密密钥。“私人密钥”可以是仅其所有者可用的加密密钥。

术语“元数据”可指代可充当关于其它数据的信息的数据。举例来说,元数据可包括与数据相关联的标题或关键词,或可包括关于如何管理数据的信息。当创建或交换数据时,可存在与数据相关的元数据。

具体实施方式

实施例是针对用于在装置之间共享私人数据的安全的方法和计算机系统。

图1展示用于在装置之间交换私人数据的系统。系统100可包括连接到分布式数据库系统的例如第一节点131、第二节点132和第n节点133等一个或多个节点的域名服务器120。所述一个或多个节点可能够通过网络通信,所述网络可包括例如因特网和/或电信网络。网络的节点可以是服务器、计算机、用户装置,或能够处理数据的任何网络启用装置。所述节点可进一步耦合到一个或多个数据库,例如第一数据库131a、第二数据库132a和第n数据库133a。在实施例中,所述一个或多个数据库可以加密形式存储私人数据。此外,域名服务器120可进一步连接到公共区块链140,所述公共区块链可以是分布到若干节点的不变的记录的公共数据库。

根据实施例,用户110可操作或拥有一个或多个iot装置,例如第一iot装置101、第二iot装置102和第三iot装置103。举例来说,第一iot装置101可以是移动电话,第二iot装置可以是自动驾驶汽车,且第三iot装置可以是智能电视机。所述一个或多个iot装置可进一步为上文描述的网络中的节点。在实施例中,所述一个或多个iot装置可以是包括处理器和存储器的任何网络启用装置。每一iot装置可由用户110通过可在注册期间建立的人类可辨识名称(例如,我的电话、我的汽车、我的电视机等)来标识。在一个实施例中,注册可包括建立装置的群组,以及将每一装置添加到由注册服务器维持的注册表。注册服务器可以是(例如)可记录每一装置的人类可辨识名称和其对应的网络地址的域名服务器120中的专用域名服务器。在iot装置之间的通信期间,每一iot装置的人类可辨识名称可由域名服务器120中的一个或多个域名服务器进一步转译为相应的网络地址。在一个实施例中,网络地址可以是每一iot装置的公共地址/公共密钥。在另一实施例中,针对装置的群组注册的装置的公共密钥的注册表可高速缓存在所述装置群组中的装置中的一个或多个处。

当用户110希望在已注册装置的群组内的第一iot装置101和第二iot装置102之间共享私人数据时,用户110可首先在第一iot装置101处生成私人数据。在一个实施例中,存储在第一iot装置上的应用可包括允许用户110生成私人数据的用户接口。举例来说,存储在第一iot101装置上的交通应用可包括图形用户接口,其展示用户的当前位置的地图、用于输入选定目的地的文本条目字段,和车辆将用户110从他或她的当前位置运送到选定目的地的图标。在一个实施例中,车辆可以是第二iot装置102,其可以是由用户110根据其人类可辨识名称(例如“我的汽车”)标识的自动驾驶汽车。在恰当选择后,第一iot装置110可生成私人数据,所述私人数据可包括用户110的当前位置、他或她的选定目的地,以及第二iot装置102的标识符(例如,人类可辨识名称或网络地址)。

在实施例中,在第一iot装置101处生成的私人数据可使用对称密钥加密。在一个实施例中,对称密钥可根据迪菲-赫尔曼密钥交换算法或使用例如生成加密密钥作为共享机密的协议等任何其它合适的协议导出。在迪菲-赫尔曼密钥交换算法的应用中,在两个装置之间共享的对称密钥可由第一iot装置101使用第一iot装置101的私人密钥和第二iot装置102的公共密钥来导出,并且可由第二iot装置102使用第二iot装置102的私人密钥和第一iot装置101的公共密钥来导出。在一个实施例中,每一装置的公共密钥可以是其网络地址或其标识符。关于迪菲-赫尔曼密钥交换的更多信息可查阅第4,200,770号美国专利,其出于所有目的以全文引用的方式并入本文中。

一旦私人数据已使用对称密钥加密,则经加密数据接着可包括到数据消息中以供处理。数据消息可以明文的形式包括关于经加密数据的元数据。在一个实施例中,元数据可包括许可数据、时间周期验证数据和加密参数。在实施例中,许可数据可使用第一iot装置101设定,以便指定哪些装置被授权访问私人数据。举例来说,许可数据可包括第二iot装置102的公共密钥,其可与在稍后时间点从请求装置接收的公共密钥进行比较以便确定所述请求装置如果被授权。

如先前所提及,元数据还可包括加密参数,其可表达为密钥值对。举例来说,加密算法可以是aes-128-ctr加密算法,且加密参数可包括加密过程期间使用的各种输入变量,例如变型(128位、256位等)、初始化向量、盐(salt)(随机数据)、认证码类型(例如hmacsha256),和用于根据所使用的算法对数据进行加密/解密的任何其它必需的信息。加密参数(例如变型、初始化向量、认证码类型等)的名称可充当密钥,且这些参数的值(例如256位、12024as;lkdfj0129aierj082、9349023jflkjalkdjf、hmacsha256等)或关于那些值的位置的指针可充当密钥值对中的值。

在实施例中,包括在消息中的时间验证数据可包括时戳。举例来说,可包括生成消息的世界时的时戳(例如,2017年7月17日,星期一,23:01:00+0000)。在实施例中,时间验证数据可用于设定私人数据的到期日期和/或时间。举例来说,可建立策略,使得生成的私人数据可仅存在24小时。时戳可接着稍后用于确定是否已过去24小时,以及是否应擦除私人数据。

一旦包括元数据和经加密私人数据的数据消息已生成,则数据消息可发送到分布式数据库系统的所述一个或多个节点。在一个实施例中,数据消息以及其中含有的元数据和经加密私人数据的副本可由多个节点且在多个数据库中存储。举例来说,数据消息和/或其部分可存储在第一数据库131a中以及第n数据库133a中。如此,元数据和经加密私人数据可以防范单个漏洞攻击点的方式存储。

在实施例中,信号可发送到第二iot装置102,从而指示私人数据已提交到分布式数据库系统。在一个实施例中,所述信号可以是根据ss7协议发送的电信信号。举例来说,数字控制信号可发送到第二iot装置102(例如,发送到自动驾驶汽车),其可向第二iot装置102指示已提交用户的位置。在一个实施例中,所述信号可从分布式数据库系统的节点发送。在另一实施例中,所述信号可从第一iot装置101和/或网络启用装置的群组的另一装置发送。

一旦第二iot装置102已接收所述信号,则第二iot装置102可生成针对由第一iot装置101提交的私人数据的访问请求。所述访问请求可包括第一iot装置101的标识符和第二iot装置102的标识符。在一个实施例中,标识符可以是装置的公共密钥和/或网络地址。一旦访问请求已由分布式数据库系统的所述一个或多个节点接收,则可定位和检取所请求的数据。

所述一个或多个节点接着可使用经加密私人数据的元数据来确定第二iot装置102是否被授权访问。在一实施例中,所述一个或多个节点可将许可数据与第二iot装置102的标识符进行比较。如果第二iot装置102的标识符与许可数据中指定的信息匹配,则所述一个或多个节点可将经加密私人数据和其元数据提供到第二iot装置102。举例来说,所接收标识符可以是iot装置102的公共密钥,其可与私人数据的元数据的许可数据中指定的公共密钥进行比较以确定匹配。

所述数据可由第二iot装置102接收且使用对称加密密钥解密,所述对称加密密钥在一实施例中可使用迪菲-赫尔曼密钥交换来共享,如上文所描述。在私人数据的解密后,第二iot102接着可使用私人数据来完成其任务/服务(例如使用用户110的当前位置来搭载用户110且将他或她运送到他或她的选定目的地)。在其它实施例中,不同装置上的对称密钥可使用那些装置上的共享机密和那些装置已知的算法生成。例如计数器或时戳等可变数据要素可用于改变那些对称密钥。在此类实施例中,用于对数据进行加密或解密的加密密钥可独立地由需要共享私人数据的不同装置生成。

图2a和图2b展示实施例的数据流图。数据流200可包括第一iot装置101、第二iot装置102和第三iot装置103之间交换的数据。可结合分布式数据库系统130和公共区块链140交换数据。在由iot装置执行的动作期间,可生成数据块,例如数据块101n、数据块102n和数据块103n。由iot装置执行的动作的实例可包括由家用电器、车辆或其它机器执行的任务,或可包括对另一装置作出的请求,例如在给定位置处搭载用户的请求。每一数据块可包括经加密私人数据,例如私人数据101b、101c、102b、102c、103b、103c等。私人数据可以是将要在群组中的多个装置之间共享且将由被授权访问的装置保持机密的任何敏感信息。举例来说,私人数据101b、102b和103b可以分别是第一iot装置101、第二iot装置102和第三iot装置103的当前位置。在其它实例中,私人数据101c可以是拥有第一iot装置101的用户的姓名,私人数据102c可以是第二iot装置102的操作指令和/或操作条件,且私人数据103c可以是第三iot装置103的唯一标识符(例如“jame的汽车”、“客厅电视机”、“smith家庭冰箱”等)。

此外,当执行动作时,还可生成公共数据(例如公共数据101d、102d、103d等)且将其发布到公共区块链140。在一个实施例中,动作可与待记录的交易相关联,所述交易可发布到公共区块链140以用于记账和价值交换的目的。举例来说,第三iot装置103可以是可能需要资金交换来使用的洗衣机或其它家用电器,且所述资金交换可作为可稍后验证的公共记录发布到公共区块链140。根据实施例,公共数据可根据一致性算法作为公共数据141d、142d、143d等发布到公共区块链140。不变的块可进一步包括例如标头141、142和143等标头,其可包括时戳和到先前块的链路。关于区块链的更多信息可查阅:

nakamotos(2008)比特币:对等电子现金系统,http://bitcoin.org/bitcoin.pdf,2017年7月18日检取。

如上文先前所阐述,由iot装置生成的私人数据可与例如元数据101a、102a、103a等元数据相关联。元数据可以是明文,其描述数据块的和/或数据消息中接收的经加密私人数据。元数据可包括可由拥有加密密钥的被授权装置使用来对私人数据进行解密的加密参数。在一个实施例中,加密参数可通过对加密参数加标签的密钥来标识(例如“密码”=、“初始化向量”=、“认证码类型”=、“盐”=),所述密钥与加密参数的值相关联(例如“=aes-128-ctr”、“=23asdlfkj007”、“=hmacsha256”、“77238078235io235kljqelfkjaskldfj”)。

在实施例中,加密参数可包括描述所使用的加密算法和/或其输入的任何信息,使得拥有加密密钥的装置可具有用于解密的所有必需的信息。在一实施例中,表示加密参数的密钥值对可表达为索引表或“查找”表。举例来说,密钥:密钥101ai、102ai、103ai可在索引表的第一列中表达,而每一密钥的值:值101aii、102aii、103aii和103aii可在第二列中表达使得每一密钥在表中邻近于其对应的值。在一个实施例中,密钥值对可在稍后的时间点修改,以便更新加密参数来实现更大安全性,或传送可能必需的或可提供较大功能性的任何额外数据。

每一数据块的元数据可进一步包括例如许可101aiii、102aiii和103aiii等一个或多个许可。所述一个或多个许可可包括许可数据,其指定哪些装置被授权访问每一条私人数据。举例来说,许可101aiii可指定第二iot装置被授权访问私人数据101b(其可以是用户的位置),且还可指定第三iot装置被授权访问私人数据101c(其可以是用户的姓名)。如此,许可数据可以允许装置群组内的iot装置根据执行任务/动作(例如运送用户、下订单/进行交易、调整气温设置等)的需要共享私人数据,而不会共享不需要的任何额外私人数据。此外,每一数据块的元数据可包括给出一条特定私人数据生成的时间和日期的时戳。可稍后在设定和实施关于一条私人数据在被擦除和/或转储之前被允许存在的持续时间的策略时参考所述时戳。这可以限制私人数据的可能的曝光,使得攻击者可能没有机会在稍后时间访问私人数据。

一旦私人数据已生成且经加密,其就可在装置之间经由分布式数据库系统130共享。包括发起装置的标识符、经加密私人数据和描述经加密私人数据的元数据的数据消息可从其发起装置(例如第一iot装置101)发送到分布式数据库系统130,在该处其可稍后为请求装置(例如第二iot装置102)检取。分布式数据库系统130可包括网络中的可各自耦合到一个或多个数据库的多个节点。在一个实施例中,经加密私人数据和其元数据的多个副本可存储在分布式数据库系统130中。举例来说,经加密私人数据可由多个节点存储,使得其存储在系统中的数据库的60%中。可进行此过程使得可检测到更改私人数据的尝试,因为私人数据的内容可在节点之间进行确认。

根据实施例,存储在分布式数据库系统130中的私人数据可由被授权装置访问。可通过从希望共享私人数据的发起装置发送的信号向被授权装置通知私人数据的存在。举例来说,数字ss7控制信号可从第一iot装置101发送到第二iot装置102。在接收信号后,第二iot装置102可向分布式数据库系统生成针对源自第一iot装置101的私人数据的访问请求。所述访问请求可包括发起装置的标识符(例如发起装置的公共密钥)和请求装置的标识符(例如请求装置的公共密钥)。访问接着可发送到分布式数据库系统,在该处可由一个或多个节点接收。在一个实施例中,访问请求可使用包括一个或多个节点的标识符(例如公共密钥)和地址端口的地址格式发送到所述一个或多个节点。举例来说,所述一个或多个节点的地址可采取以下形式:b837c6fd01d0802d457d143e3bd48bd3e6509f8209ed90dabbc30e3d3@8.8.8.8:30303。

在实施例中,所述一个或多个节点接着可使用访问请求中的标识符来定位经加密私人数据。举例来说,所述一个或多个节点可查询本地数据库或可彼此通信以找到存储与第一iot装置101的标识符相关联的私人数据的数据库。所述一个或多个节点可进一步确定请求装置(第二iot装置102)可访问的第一iot装置101的私人数据,如所述私人数据的相关联元数据的许可数据中所指定。

如果请求装置标识为由许可数据授权,则经加密私人数据和明文元数据可发送到请求装置。接着,元数据的密钥值对可由请求装置读取以对私人数据进行解密。举例来说,密钥值对可包括充当加密算法的输入变量的加密参数连同使用迪菲-赫尔曼密钥共享协议导出的对称密钥。依据加密参数和对称密钥,私人数据可被解密且由请求装置使用以执行其给定任务。举例来说,第二iot装置102可使用第一iot装置101的私人位置来搭载第一iot装置101的用户且将用户运送到他或她的选定目的地。

图3展示根据一实施例的iot装置的框图。iot装置300可包括用于执行指令的处理器310。iot装置300可进一步包括用于通过网络发送和接收消息的一个或多个网络通信元件320,以及用于从用户接收输入的输入元件360。iot装置300可额外包括用于向用户显示信息的显示器350。

根据实施例,iot装置300可包括用于存储可由处理器310执行的指令的计算机可读介质330。在一实施例中,计算机可读介质330可以是存储代码的模块的存储器,所述模块例如通信模块330a、加密模块330b、应用模块330c、区块链模块330d、装置注册模块330e、密钥管理模块330f。

通信模块330a可包括用于通过网络接收、发送和重新格式化消息的代码。所述消息可经由网络通信元件320发送。通信模块330a可包括用于生成、格式化、发送和接收包括经加密私人数据和与所述私人数据相关联的元数据的数据消息的代码。在一个实施例中,通信模块330a可包括用于生成和发送用于请求私人数据的访问请求的代码。访问请求可包括网络启用装置的一个或多个标识符。所述标识符可以是iot装置群组中的第一和第二iot装置的公共密钥,例如图1的第一iot装置101和第二iot装置102的公共密钥。

加密模块330b可包括用于加密数据的代码。此可包括用于加密算法的代码。在一个实施例中,加密模块330b可包括用于生成加密参数且使用所述加密参数和对称加密密钥作为到加密算法的输入来对数据进行加密的代码。在一个实施例中,加密模块330b可包括用于将加密参数存储在可表达为元数据的密钥值对的查找表中的代码。加密模块330b可进一步包括用于从元数据读取加密参数且使用所述加密参数和对称加密密钥来对私人数据进行解密的代码。

应用模块330c可包括用于一个或多个应用的代码。所述一个或多个应用可包括用于生成许可数据和用于生成时间周期验证数据的代码。应用的实例可包括:装置管理应用、交通应用、远程操作应用、数字交易应用、媒体/娱乐应用等。在一个实施例中,应用模块330c可进一步包括用于生成私人数据的代码。私人数据可包括iot装置300的位置、iot装置300的唯一标识符、iot装置300的所有权信息,和/或iot装置300的操作条件。

区块链模块330d可包括用于生成区块链数据的代码和/或用于与区块链(例如公共或私人区块链)交互的代码。在实施例中,区块链模块330d可包括用于根据例如sha-256等散列算法对数据进行散列的代码。所述数据可以是公共数据,例如用于公共交易的数据。区块链模块330d可进一步包括实施数字签名算法,以及使用iot装置300的私人密钥对散列进行签名。区块链模块330d可进一步包括用于生成包括经签名散列记录的块的代码,且可额外包括用于根据一致性算法将块发布到区块链或将所述块提交到发布所述块的一个或节点的代码。

装置注册模块330e可包括用于将装置注册到装置群组中的代码。注册指令可包括建立帐户,生成装置群组的注册表,建立装置的人类可辨识名称,使所述人类可辨识名称与所述装置的网络地址相关联,以及将所述关联存储在高速缓存中。举例来说,所述装置注册模块可包括用于建立iot装置300的一个或多个用户的用户名和密码的代码、建立包括可包括在注册表中的一个或多个装置的群组,以及用于建立装置的用户可辨识的昵称(例如“mary的汽车”、“lopez家庭洗衣机”、“destiny的电话”等)的代码。帐户、群组和昵称可接着与相应装置的网络地址相关联且存储在存储器中,使得当发起动作时,人类可辨识名称可转译为网络节点可处理的网络地址。

密钥管理模块330f可包括用于导出、交换、存储和检取一个或多个加密密钥的代码。加密密钥可包括用户的公共密钥和私人密钥、iot装置300的公共密钥和私人密钥,以及一个或多个对称密钥。在一个实施例中,所述一个或多个对称密钥可以是经由迪菲-赫尔曼密钥交换共享的密钥,如上文所描述。每一对称密钥可从iot装置300的私人密钥和待与之共享对称密钥的装置的公共密钥导出。

iot装置300可额外包括存储私人密钥340a的安全元件340。安全元件340可以是用于安全地存储数据的防篡改平台。举例来说,安全元件可以是安全微控制器。在实施例中,安全元件可以是物理硬件或可为虚拟的(例如,比如在主机卡模拟的情况下)。

根据实施例,iot装置可使用本文描述的安全的方法交换私人数据。图4展示流程图,其描绘根据一实施例的注册。注册可包括将一个或多个iot装置添加到用户拥有或操作的装置群组中。

在步骤s401处,可建立帐户。所述帐户可与拥有或操作网络启用装置的群组中的一个或多个装置的用户相关联。在建立帐户后,私人密钥和公共密钥可归于所述帐户,使得由所述帐户进行的动作和交易可被签名和批准。所述帐户可进一步包括用户名、密码、通行短语和/或其它凭证,其可解锁对私人密钥的访问以发起和批准实施例中的动作和交易。

在步骤s402处,可生成装置的群组的注册表。所述注册表可用于跟踪用户拥有或操作的装置,所述装置一起注册为群组。在一个实施例中,注册表可存储在充当注册服务器的专用服务器中。在另一实施例中,注册表或其部分可存储在群组的一个或多个装置中。

在步骤s403处,装置群组中的每一iot装置的人类可辨识名称可被建立且添加到注册表。每一人类可辨识名称可以是拥有和/或操作每一装置的用户可容易地辨识的名称,例如标识所有者和装置本身的昵称(例如,frank的汽车、zoey的电话、roy的烤箱等)。人类可辨识名称可接着添加到注册表,以便将所述装置添加到装置群组。

在步骤s404处,注册服务器可使每一装置的可辨识名称与装置的网络地址相关联。在一个实施例中,注册服务器可以是专用服务器,例如域名服务器。网络地址的实例可包括ip地址、电信号码、公共密钥,或可用于根据给定网络协议定位装置的任何其它唯一标识符。

在步骤s405处,所述关联可进一步记录并存储在一个或多个iot装置的高速缓存中。在实施例中,将所述关联存储在高速缓存中可以允许装置之间的通信更快速地发生。一旦装置已经注册到装置群组中,它们就可在彼此之间根据本文中所描述的方法共享私人数据。

图5展示根据一实施例用于在装置之间共享私人数据的方法的流程图。在一实施例中,所述方法可由系统100的组件实施。所述组件可包括例如车辆、家用电器等可由用户拥有和/或操作的iot装置的群组。

在步骤s501处,可在第一iot装置处生成私人数据。举例来说,第一iot装置可以是由用户操作的移动装置,且私人数据可以是用户的位置,如移动装置的gps定位器所给出。在此实例中,用户可希望向将用户运送到选定位置的自动驾驶汽车共享他或她的当前位置。

在步骤s502处,第一iot装置可对私人数据进行加密,且生成包括经加密私人数据和元数据标头的数据消息。在一个实施例中,元数据可包括许可数据、时间周期验证数据和加密参数。在一实施例中,许可数据可指定被授权访问私人数据和/或私人数据的特定部分的一个或多个装置。举例来说,许可数据可标识第二iot装置,其可以是被允许访问第一iot装置的当前位置的用户的自动驾驶汽车。时间周期验证数据可包括时戳,且可指定私人数据将可访问的持续时间。加密参数可以是指定加密算法和其输入变量的信息。根据实施例,加密参数可包括在元数据中,使得拥有所需对称密钥的装置可使用加密参数来对经加密私人数据进行解密。

在步骤s503处,第一iot装置可将包括经加密私人数据的数据消息发送到分布式数据库系统。数据消息可通过例如因特网等网络发送到分布式数据库系统。在实施例中,分布式数据库系统可包括耦合到多个数据库的多个节点。

在步骤s504处,经加密私人数据和相关联元数据可由分布式数据库系统接收和存储。在实施例中,经加密私人数据和/或其部分的多个副本可存储在分布式数据库系统的多个节点处。在实施例中,节点可包括连接到网络的能够处理和存储数据的任何装置和/或服务器。举例来说,所述节点可包括其他用户的其它iot装置和其数据存储。

在步骤s505处,第一iot装置可通知第二iot装置所述私人数据。第一iot装置可通过发送信号来通知第二iot装置。在一个实施例中,所述信号可以是根据ss7协议发送的电信信号。所述信号接着可由第二iot装置接收,且接着可使第二iot装置感知到由第一iot装置提交的私人数据。

在步骤s506处,第二iot装置可将访问请求发送到分布式数据库系统。访问请求可包括第一iot装置的标识符和第二iot装置的标识符。在一个实施例中,第一iot装置的标识符可以是第一iot装置的公共密钥,且第二iot装置的标识符可以是第二iot装置的公共密钥。

在步骤s507处,分布式数据库系统的一个或多个节点可查询经加密私人数据。举例来说,接收到访问请求的第一节点可搜索其本地数据库以寻找与第一iot装置的公共密钥相关联的私人数据。如果私人数据不在其本地数据库中,则所述节点可向下一节点通信,所述下一节点可搜索其本地数据库,诸如此类,直至所述数据已被定位。一旦私人数据已被定位,则其可连同其相关联元数据一起被检取。

在步骤s508处,所述一个或多个节点可确定第二iot装置是否被准许访问私人数据。所述确定可包括将第二iot装置的标识符与许可数据进行比较。举例来说,访问请求中接收的第二iot装置的公共密钥可与许可数据中指定为被授权的一个或多个密钥进行比较。

如果在步骤s508中确定第二iot装置被准许访问,则数据块可在步骤s508a处发送到第二iot装置。在步骤s509处,第二iot装置可使用与私人数据相关联的元数据对私人数据进行解密。在实施例中,私人数据可使用包括在元数据中的加密参数且使用对称密钥来解密。在一个实施例中,对称密钥可从第一iot装置的公共密钥、第二iot装置的私人密钥(且反之亦然)导出,使得所述密钥在两个装置之间共享且对于其它装置保持机密。如果在步骤s508中确定第二iot装置未被准许访问,则可在步骤s508b处向第二iot装置拒绝对数据块的访问。

本文中所描述的实施例提供优于现有技术的若干技术优点。实施例提供用于在网络启用装置的群组之间安全地共享私人数据的方法。在实施例中,私人数据经加密且与提供重要信息的元数据相关联,所述重要信息例如谁被准许访问私人数据、私人数据可访问的持续时间,和加密/解密信息。此外,根据所描述的系统共享的私人数据以分布的方式存储,使得用户不需要信任集中式服务提供商来安全地且私密地存储其敏感信息,而是随着从群组移除和添加装置仍能够维持其私人数据。此外,在本发明的实施例中,每一网络启用装置可安全地但方便地控制谁可检视或使用其私人数据,以及私人数据可如何被检视或使用。

如所描述,本发明服务可涉及实施一个或多个功能、过程、操作或方法步骤。在一些实施例中,由于通过适当编程的计算装置、微处理器、数据处理器等执行指令集或软件代码,可以实施功能、过程、操作或方法步骤。指令集或软件代码可存储在由计算装置、微处理器等访问的存储器或其它形式的数据存储元件中。在其它实施例中,所述功能、过程、操作或方法步骤可由固件或专用处理器、集成电路等实施。

本申请中描述的软件组件或功能中的任一个可实施为由处理器使用任何合适计算机语言(例如,比如java、c++或perl)使用例如传统的或面向对象的技术执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上,所述计算机可读介质例如随机存取存储器(ram)、只读存储器(rom)、硬盘驱动器或软盘等磁性介质,或cd-rom等光学介质。任何这样的计算机可读介质可以驻留在单个计算设备上或内,并且可以存在于系统或网络内的不同计算设备上或内。

虽然已经详细描述了并且在附图中展示了某些示例性实施例,但是应理解,此类实施例仅仅是对本发明的说明,而不是意图限制本发明,并且本发明不限于展示和描述的具体布置和构造,因为本领域的普通技术人员可以想到各种其它修改。

如本文所使用,除非明确指示为相反情况,否则“一”或“所述”的使用希望表示“至少一个”。

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