具体实施方式
现在将参考各实施例讨论本文描述的主题。应当理解的是,讨论这些实施例仅是为了使得本领域技术人员能够更好地理解并且实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者例子的限制。可以在不脱离权利要求书的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个实施例可以根据需要,省略、替换或者添加各种过程或组件。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其它实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其它的定义,无论是明确的还是隐含的,除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
目前,通常基于账户来在业务***中进行相应的业务操作。然而,账户的管理者和账户的实际操作者可能是同一人,也可能并不是同一人。例如,对于中小企业而言,账户的管理者可能是企业主,而账户的实际操作者可能是企业员工。在这种情况下,需要对账户进行有效管理。例如,从账户本身和风险维度而言,希望确定具体操作者以及感知是否有泄密风险;从业务维度而言,针对同一账户,希望能够对不同的操作者授予不同的权限,从而对同一账户进行细粒度使用。
鉴于此,本说明书提供了一种用于账户管理的技术方案。在该技术方案中,主要涉及三个执行主体,即服务器、客户端和业务***。通过这三者的交互来实现对注册到业务***的企业账户的有效管理。
图1A是根据一个实施例的应用场景的例子的示意图。
如图1A所示,在该应用场景下,可以包括服务器110、第一客户端120、第二客户端130、业务***140、区块链150和证书签发机构160。
业务***140可以向用户提供业务操作。为了在业务***140中进行相应的业务操作,可以在业务***140中注册账户。通常,可以以企业身份或者个人身份来注册账户,在本文中,主要针对企业账户进行描述。此外,在本文中,为了便于描述,可以将管理企业账户的用户称为企业账户的管理者,而将当前实际使用企业账户的用户称为企业账户的当前用户。例如,对于中小企业而言,企业账户的管理者可以是企业主,而企业账户的当前用户可以是企业员工。
可以理解的是,在不同的场景下,企业账户的管理者和企业账户的当前用户可以是同一人或者可以不是同一人。
另外,在本文中,被授权人员可以是指被授权使用该企业账户的人员。例如,管理者通过下文描述的代理授权过程,可以授权一人或多人是该企业账户的被授权人员。每个被授权人员可以与相应的代理权限信息相关联。被授权人员可以具有针对该企业账户的不同操作权限或相同操作权限。
第一客户端120可以是被安装在当前用户的用户终端上的客户端。而第二客户端130可以是安装在管理者的用户终端上的客户端。在本文中,用户终端可以是本领域中能够安装应用程序的任何适用的设备。例如,用户终端可以包括智能电话、台式计算机、膝上型计算机、平板设备、可穿戴设备等等。
第一客户端120和第二客户端130可以与服务器相结合地实现对用户的身份核验。例如,服务器110可以与第一客户端120和第二客户端130进行交互。服务器110可以通过各种适用的通信技术,与各个客户端所在的用户终端进行通信,从而与相应的客户端进行交互。例如,服务器110可以与第一客户端120进行交互,以便从第一客户端120获取当前用户的身份信息,从而对当前用户进行身份核验。服务器110可以与第二客户端130进行交互,以便从第二客户端130获取管理者的身份信息,从而对管理者进行身份核验。例如,身份信息可以包括生物特征数据和/或非生物特征数据等等。生物特征数据可以包括指纹数据、人脸数据、虹膜数据等等。非生物特征数据可以包括短信、密码、身份证号等等。
在一些场景下,第一客户端120和第二客户端130可以是同一客户端。例如,当前用户和管理者可以使用同一用户终端,来发起相应的操作。此时,第一客户端120和第二客户端130可以指代同一客户端。因此,在本文中,第一客户端120和第二客户端130的划分仅是从执行操作的角度而言的。
此外,服务器110还可以与证书签发机构160进行交互。例如,服务器110可以从证书签发机构160获取数字证书,并且将数字证书下发给第二客户端130。数字证书可以用于证明管理者和相应企业的真实性。
另外,第一客户端120或第二客户端130可以调用相应用户终端的可信环境,从而在可信环境下进行各种操作。例如,第二客户端130可以在可信环境下,基于数字证书生成数据签名。
此外,服务器110还可以与业务***140进行交互。例如,服务器110可以与业务***140进行交互,以便向业务***140传送代理权限信息。这样,业务***140可以基于代理权限信息来决定是否授权当前用户的操作。此外,业务***140还可以向服务器110发起代理授权过程,从而实现对被授权人员的操作权限的划分。
服务器110还可以对区块链150进行读写操作。例如,服务器110可以将代理权限信息上传到区块链150中,从而确保代理权限信息的可信性。服务器110还可以从区块链150中读取代理权限信息。
如所已知的,区块链可以是一种全新的分布式基础架构。例如,其通常可以构建在对等网络上,利用链式数据结构来存储和验证数据,利用分布式节点之间的共识协议来保证数据更新结果的一致性,利用密码学方案来保证数据的不可篡改以及传输和访问的安全,以及利用由自动化脚本代码组成的智能合约来编程和操作数据。
在本文中,区块链150可以是公有链、私有链或联盟链。例如,区块链150可以是基于各种共识算法的,比如实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法。
此外,上述链式数据结构可以是指一种数据组织形式。例如,可以将状态转移记录(例如,其也可以被称为交易)以列表的形式存储在“区块”中,多个区块可以按照一定的逻辑顺序排列。每个区块的“区块头”可以包括表示前一个区块的哈希值(其可以表示为preHash)、该区块打包的时间戳(其可以表示为timeStamp)、该区块的哈希值(其可以表示为Hash(blockinfo))、该区块的编号(其可以表示为height)。此外,区块还可以包括梅克尔树的根节点(其可以表示为MerkelInfo_root)、叶子节点和数据块。叶子节点可以包括相应数据块的哈希值。根节点可以包括相应叶子节点的哈希值。在本文中,数据块可以表示为Authinfo,其可以具有json格式。例如,数据块可以包括代理权限信息。
代理权限信息可以与相应的被授权人员关联。例如,代理权限信息可以包括企业账户的管理者的个人信息、被授权人员的个人信息、操作权限信息、管理者的用户终端的设备信息、管理者的私钥签名、摘要信息、身份核验任务标识、过期时间、时间戳、操作类别等等。过期时间可以表示代理权限信息的有效时间。操作类别可以包括授权或取消。
图1B是根据一个实施例的区块链的结构的例子的示意图。在图1B中,为了便于说明,仅示出了区块链中的两个区块,即区块1和区块2。应当理解的是,在实际应用中,区块链可以包括更多的区块,本文对此不作限定。此外,每个区块可以包括上述提到的各项内容,此处不再赘述。
下面将结合具体实施例来描述各个执行主体的操作。
图2A是根据一个实施例的用于账户管理的方法的示意性流程图。图2A的方法可以由服务器执行,例如图1A中所示的服务器110。
在步骤202A中,服务器可以从业务***接收权限查询消息。权限查询消息可以用于查询当前用户对注册到业务***的企业账户的操作权限。
例如,在当前用户在业务***中进行操作时,业务***可以向服务器发送权限查询消息。
在步骤204A中,服务器可以基于权限查询消息,从第一客户端获取校验信息。校验信息可以与当前用户的身份相关联。
例如,第一客户端可以被安装在当前用户使用的用户终端上。
在步骤206A中,服务器可以在确定校验信息有效的情况下,从区块链中获取代理权限信息。
例如,有效的校验信息可以证明当前用户的身份。代理权限信息可以至少包括当前用户对企业账户的操作权限信息,操作权限信息所指示的操作权限可以是由企业账户的管理者指定。例如,操作权限信息可以包括操作权限标识集合。
在步骤208A中,服务器可以向业务***发送代理权限信息。
可见,在该技术方案中,通过对操作企业账户的当前用户进行身份核验,能够有效地控制企业账户的风险;此外,通过管理者指定被授权人员的操作权限,能够对同一账户进行权限划分,这样能够实现对同一账户的细粒度区分使用;另外,由于代理权限信息是存储在区块链中的,因此能够有效地保障权限是可信的,从而解决中心节点信任问题和接入成本问题。
在一个实施例中,服务器在从业务***接收到权限查询消息时,可以与第一客户端进行通信,以便对当前用户的身份进行核验。例如,服务器可以向业务***发送权限查询任务信息,其指示调用第一客户端。这样,业务***可以基于权限查询任务信息,调用第一客户端。例如,业务***可以提示当前用户利用其用户终端扫描二维码来启动第一客户端。或者,业务***将第一客户端的启动消息推送到当前用户的用户终端,然后基于当前用户的确认输入来启动第一客户端。
上述校验信息可以包括授权码。在步骤204A中,服务器可以向第一客户端发送授权指令。授权指令可以用于请求授权码。例如,授权指令可以包括服务器时间、渠道标识、挑战码和授权码位数。然后,服务器可以从第一客户端接收授权码。授权码可以是第一客户端基于授权指令和客户端令牌(token)来生成的。渠道可以表示授权码的使用用途,例如在本文中可以表示授权码用于验证身份。挑战码可以是保证授权指令下发通道安全的随机码,比如用于放置请求重放和篡改等。
例如,授权码可以是根据基于HMAC的一次性密码(HMAC-based One-TimePassword,HOTP)算法来生成的,比如,授权码可以是利用HOTP算法,基于客户端令牌、渠道标识、服务器时间、授权码位数、挑战码的值来生成的。
可见,通过授权码,能够有效地核验当前用户的身份,从而控制企业账户的风险。
客户端令牌可以是第一客户端从服务器获得的。例如,当前用户在其用户终端上首次启动第一客户端时,第一客户端可以从服务器获得客户端令牌。客户端令牌可以具有有效时长。当客户端令牌无效时,第一客户端可以再次从服务器获得客户端令牌。
下面将描述服务器向第一客户端下发客户端令牌的过程。在一个实施例中,服务器可以从第一客户端接收用于请求客户端令牌的令牌请求消息。服务器可以基于令牌请求消息,从第一客户端获取当前用户的身份信息。服务器可以基于当前用户的身份信息,确定当前用户是与企业账户相对应的被授权人员之一。然后,服务器可以生成客户端令牌,并且向第一客户端发送客户端令牌。客户端令牌的下发通道可以是加密的并且可信的。
具体地,服务器可以基于管理者的标识和分散密钥对来从区块链中查询被授权人员的信息。例如,管理者的标识可以是在由业务***发送的权限查询消息中携带的。此外,服务器可以将被授权人员的列表推送到第一客户端。第一客户端可以向当前用户呈现被授权人员的列表,以便当前用户从该列表中选择自己。第一客户端在接收到当前用户在该列表中选择自己的输入之后,第一客户端可以获取当前用户的身份信息,例如指纹数据、人脸数据等等。第一客户端可以将当前用户的身份信息发送给服务器。
服务器可以基于当前用户的身份信息,确定当前用户确实是被授权人员之一。然后,服务器可以生成客户端令牌。例如,服务器可以利用签名(sign)函数,基于服务器私钥、当前用户的身份信息、随机数等来生成客户端令牌。例如,客户端令牌的生成逻辑可以表示为客户端令牌=sign(服务器私钥,hash(当前用户的身份信息、随机数)),此处的hash可以表示hmac函数。
在一个实施例中,在步骤206A中,服务器可以确定校验信息是有效的。例如,服务器可以使用与第一客户端相同的过程,来生成本地授权码。然后,服务器可以将所生成的本地授权码与从第一客户端接收的授权码进行比对,如果二者是一致的,则服务器可以确定从第一客户端接收的授权码是有效的。由此,服务器可以确认当前用户的身份是可信的。
然后,服务器可以从区块链中获取代理权限信息。例如,服务器可以基于与管理者相关联的区块哈希值,来查询区块链中的所有相关区块,从而获取针对当前用户的代理权限信息。区块哈希值可以是服务器在将代理权限信息上传到区块链时所记录的。
由于区块链的去中心化和不可篡改性,所以可以确保存储在其上的代理权限信息是可信的。
此外,在步骤202A之前,可以首先进行针对管理者的初始化过程以及代理授权过程。针对管理者的初始化过程可以用于实现对管理者的身份核验以及下发数字证书。代理授权过程可以用于实现管理者对被授权人员的指定。下面首先描述针对管理者的初始化过程。
在一个实施例中,服务器可以从第二客户端接收针对管理者的初始化请求。第二客户端可以被安装在管理者使用的用户终端上。例如,当第二客户端在管理者使用的用户终端上首次启动时,第二客户端可以接收到管理者用于发起初始化请求的输入。第二客户端基于该输入,可以向服务器发送初始化请求。
服务器可以基于初始化请求,获取初始化信息。例如,服务器可以从第二客户端或者相关的业务***获取初始化信息。比如,第二客户端发送的初始化请求可以包括初始化信息。
初始化信息可以包括管理者信息和相关联的企业信息。例如,管理者信息可以包括管理者的个人信息,比如姓名、身份证号等等。管理者信息还可以包括管理者使用的用户终端的设备信息,比如设备标识、设备硬件信息等等。设备标识可以是第二客户端基于用户终端的硬件信息得到的,其可以存储在可信执行环境(Trusted Execution Environment,TEE)中。设备信息可以由服务器用于确认用户终端是可信的。
企业信息可以包括企业标识、企业名称、企业营业执照信息等等。
然后,服务器可以在确定初始化信息有效的情况下,从第二客户端获取管理者的身份信息。
例如,服务器可以基于企业数据源来验证企业信息和管理者的个人信息(比如身份证号)的正确性,在确定企业信息和管理者的个人信息正确的情况下,可以生成身份核验任务信息。服务器可以向第二客户端发送身份核验任务信息(比如标识)。例如,身份核验任务信息可以指示获取管理者的身份信息。第二客户端可以基于身份核验任务信息,获取管理者的身份信息,比如人脸数据、指纹数据等等。然后,第二客户端可以将管理者的身份信息发送给服务器。
之后,服务器可以基于管理者的身份信息,对管理者进行身份核验。
在对管理者的身份核验通过之后,服务器可以确定数字证书,并且向第二客户端发送数字证书。数字证书可以用于证明管理者和企业的真实性。
例如,服务器可以向第二客户端发送证书安装指令。第二客户端可以基于证书安装指令,在TEE中生成非对称密钥,例如公钥和私钥。例如,第二客户端可以基于RSA/SM2算法来生成非对称密钥。之后,第二客户端可以生成证书签名请求(Certificate SigningRequest,CSR)。CSR可以包括公钥、企业的非隐私信息、私钥签名信息等。私钥签名信息可以是第二客户端利用私钥对公钥进行签名得到的。然后,第二客户端可以向服务器发送CSR。
服务器在接收到CSR之后,可以将证书制作信息发送给证书签发机构(例如,图1A中所示的证书签发机构160)。证书制作信息可以包括CSR中所包含的信息以及其它相关信息。证书签发机构生成数字证书之后,可以将其发送给服务器。服务器可以将数字证书发送给第二客户端。第二客户端可以将数字证书写入到TEE中。数字证书可以包括公钥、企业的非隐私信息等等。
在针对管理者的初始化过程之后,可以执行代理授权过程。
在一个实施例中,服务器可以从业务***接收授权管理信息。例如,授权管理信息可以至少包括操作权限信息和业务***的标识信息。
例如,管理者可以在业务***中发起代理授权请求。业务***检测到管理者的代理授权请求之后,可以向服务器发送授权管理信息。例如,业务***可以向服务器发送授权管理请求,授权管理请求可以包括授权管理信息。授权管理信息可以包括业务***的标识、操作权限信息、企业信息和管理者所使用的用户终端的设备信息。例如,操作权限信息可以包括操作权限标识集合。操作权限可以是由管理者在业务***中指定的。
之后,服务器可以基于授权管理信息,与第二客户端进行通信,以便从第二客户端获取当前用户的个人信息。例如,服务器可以向业务***发送授权管理任务信息,该信息可以指示调用第二客户端。业务***可以通过向管理者提示扫描二维码来启动第二客户端。或者,服务器可以向管理者的用户终端推送启动第二客户端的消息。然后,可以基于管理者的确认输入来启动第二客户端。
第二客户端可以接收管理者输入的被授权人员的信息,例如此处的被授权人员可以包括前述的当前用户。该输入信息可以包括当前用户的个人信息,比如当前用户的姓名、身份证号、手机号、职务等等。然后,第二客户端可以向服务器发送该当前用户的个人信息。
服务器可以确认该当前用户的个人信息。然后,服务器可以从第二客户端获取管理者的身份信息。
例如,服务器可以生成身份核验任务信息,该身份核验任务信息可以指示获取管理者的身份信息。服务器可以向第二客户端发送身份核验任务信息。第二客户端可以基于身份核验任务信息,获取管理者的身份信息,比如人脸数据、指纹数据等等。然后,第二客户端可以向服务器发送管理者的身份信息。
服务器可以基于管理者的身份信息,对管理者进行身份核验。在对管理者的身份核验通过之后,服务器可以从第二客户端获取针对摘要信息的签名信息。摘要信息可以是至少基于操作权限信息和当前用户的个人信息来生成的。签名信息可以是第二客户端基于数字证书来生成的。
例如,服务器可以在对管理者的身份核验通过之后,生成摘要信息。例如,服务器可以使用sha256算法来生成摘要信息。摘要信息可以是基于如下信息生成的:管理者的个人信息、当前用户的个人信息、操作权限标识集合、管理者使用的用户终端的设备信息、身份核验任务信息(比如标识)、管理者的身份信息、时间戳等等。
服务器可以向第二客户端发送摘要信息。第二客户端可以利用本地的私钥来对摘要信息进行签名,从而得到签名信息。之后,第二客户端可以向服务器发送签名信息。
服务器在接收到签名信息之后,可以利用公钥对签名信息进行验证,在验证通过之后,可以调用第三方时间戳服务,来记录当前签名时间。
服务器还可以生成代理权限信息。代理权限信息可以至少包括操作权限信息、当前用户的个人信息、摘要信息、签名信息等等。例如,代理权限信息可以包括企业账户的管理者的个人信息、当前用户的个人信息、操作权限信息、管理者的用户终端的设备信息、签名信息、摘要信息、身份核验任务信息(比如标识)、代理权限信息的过期时间、时间戳、操作类别等等。操作类别可以包括授权或取消。操作权限信息可以表示为操作权限标识集合。代理权限信息可以具有能够存储在区块链中的格式。此外,服务器还可以对代理权限信息进行加密,例如,使用主密钥和分散密钥对代理权限信息进行加密,然后将其上传到区块链中。服务器可以记录存储代理权限信息的区块的哈希值,以便后续查询。比如,在步骤206A中,从区块链中查询相应的代理权限信息。
此外,服务器还可以将区块链信息和摘要信息上传到第三方存证机构,以便由第三方存证机构进行备案,从而增强法律效应。
可以理解的是,第一客户端和第二客户端可以指代被安装在不同用户终端上的客户端,也可以指代被安装在同一用户终端上的同一客户端。例如,被授权人员和管理者可以使用同一用户终端进行业务操作,此时第一客户端和第二客户端可以指代被安装在该用户终端的客户端。因此,第一客户端和第二客户端实际上是从执行操作的角度来划分的。
上面从服务器的角度描述了本说明书的技术方案。下面从第一客户端的角度来进行描述。
图2B是根据一个实施例的用于账户管理的方法的示意性流程图。图2B的方法可以由第一客户端执行,其可以被安装在当前用户的用户终端上。当前用户可以是针对注册到业务***的企业账户而言的。例如,第一客户端可以是图1A中所示的第一客户端120。
应当理解的是,为了描述的简洁,关于与图2A类似的方面,在图2B中将不再赘述。
如图2B所示,在步骤202B中,第一客户端可以确定校验信息,校验信息可以与当前用户的身份相关联。
在步骤204B中,第一客户端可以向服务器发送校验信息,以便服务器对当前用户的身份进行核验。
可见,在该技术方案中,通过向服务器发送用于证明当前用户的身份的校验信息,使得服务器能够有效地核验业务***的当前用户的身份,从而能够控制企业账户的风险。
在一个实施例中,校验信息可以包括授权码。在步骤202B中,第一客户端可以从服务器接收授权指令,授权指令可以用于请求授权码。第一客户端可以基于授权指令和客户端令牌,生成授权码。
例如,服务器可以在从业务***接收到针对当前用户的权限查询消息之后,向第一客户端发送授权指令。
客户端令牌可以是第一客户端从服务器获取的。例如,在第一客户端在当前用户的用户终端上首次启动时,可以从服务器获取客户端令牌。客户端令牌可以具有有效时长。当客户端令牌过期时,第一客户端可以再次从服务器获取新的客户端令牌。
在一个实施例中,第一客户端可以向服务器发送用于请求客户端令牌的令牌请求消息。第一客户端可以从服务器接收针对当前用户的身份核验请求。例如,该身份核验请求可以包括身份核验任务信息。第一客户端可以基于身份核验请求,获取当前用户的身份信息,比如人脸数据、指纹数据等等。
第一客户端可以向服务器发送当前用户的身份信息,以便由服务器确定当前用户是与企业账户相对应的被授权人员之一。之后,第一客户端可以从服务器接收其生成的客户端令牌。
上面从第一客户端的角度描述了本说明书的技术方案。下面将从第二客户端的角度来进行描述针对管理者的初始化过程以及代理授权过程。
图2C是根据一个实施例的用于账户管理的方法的示意性流程图。图2C的方法可以由被安装在管理者使用的用户终端上的第二客户端执行。管理者可以是针对注册到业务***的企业账户而言的。例如,第二客户端可以是图1A中所示的第二客户端130。
如图2C所示,在步骤202C中,当管理者通过用户终端发起初始化请求时,第二客户端可以向服务器发送初始化信息。初始化信息可以包括管理者的个人信息、用户终端的设备信息、与企业账户相关联的企业的信息。
例如,个人信息可以包括管理者的姓名、身份证号等等。设备信息可以包括设备标识、设备硬件信息等等。企业的信息可以包括企业标识、企业名称、企业营业执照信息等等。
在步骤204C中,第二客户端可以从服务器接收针对管理者的身份核验请求。
例如,身份核验请求可以包括身份核验任务信息。
在步骤206C中,第二客户端可以基于身份核验请求,获取管理者的身份信息,比如人脸数据、指纹数据等等。
在步骤208C中,第二客户端可以向服务器发送管理者的身份信息,以便服务器对管理者进行身份核验。
在步骤210C中,第二客户端可以从服务器获取数字证书。数字证书可以是服务器在对管理者的身份核验通过之后发送的,并且数字证书可以用于证明管理者和企业的真实性。
例如,第二客户端可以从服务器接收证书安装指令。第二客户端可以基于证书安装指令,在TEE中基于RSA/SM2生成非对称密钥,比如公钥和私钥。然后,第二客户端可以生成CSR,其可以包括公钥、私钥签名信息、企业的非隐私信息等等。然后,第二客户端可以向服务器发送CSR。服务器可以将CSR和其它相关信息发送给证书签发机构,以便由证书签发机构生成数字证书。服务器可以将证书签发机构生成的数字证书发送给第二客户端。第二客户端可以将数字证书写入到TEE中。
可见,在该技术方案中,通过对管理者进行身份核验并且获取数字证书,能够确保在可信的环境下执行后续过程,从而有效地控制企业账户的风险。
在一个实施例中,在针对管理者进行初始化之后,可以执行代理授权过程。
具体地,第二客户端可以获取当前用户的个人信息。例如,当前用户的个人信息可以是由管理者通过其用户终端输入的。
第二客户端可以向服务器发送当前用户的个人信息。例如,服务器可以确认当前用户的个人信息。然后,第二客户端可以从服务器接收针对管理者的身份核验请求。例如,身份核验请求可以包括身份核验任务信息。
第二客户端可以基于身份核验请求,获取管理者的身份信息。例如,第二客户端可以获取管理者的人脸数据、指纹数据等等。第二客户端可以向服务器发送管理者的身份信息,以便由服务器对管理者进行身份核验。如前所述,当前用户的个人信息可以由服务器用于在对管理者的身份核验通过之后生成代理权限信息。代理权限信息可以至少包括当前用户对企业账户的操作权限信息。例如,如前所述,代理权限信息可以包括管理者的个人信息、当前用户的个人信息、操作权限标识集合、时间戳等等。
上面从第二客户端的角度描述了针对管理者的初始化过程以及代理授权过程。下面从业务***的角度来进行描述。
图2D是根据一个实施例的用于账户管理的方法的示意性流程图。图2D的方法可以由业务***执行,例如,图1A所示的业务***140。
如图2D所示,在步骤202D中,在当前用户对注册到业务***的企业账户进行操作时,业务***可以向服务器发送权限查询消息。权限查询消息可以用于查询当前用户对企业账户的操作权限。
在步骤204D中,业务***可以从服务器接收代理权限信息。
代理权限信息是服务器在对当前用户的身份核验通过之后从区块链中获取的。代理权限信息可以至少包括当前用户对企业账户的操作权限信息。
在步骤206D中,业务***可以基于代理权限信息,确定是否授权当前用户对企业账户的操作。
可见,在该技术方案中,通过服务器对操作企业账户的当前用户进行身份核验,能够有效地控制企业账户的风险;此外,通过管理者指定被授权人员的操作权限,能够对同一账户进行权限划分,这样能够实现对同一账户的细粒度区分使用;另外,由于代理权限信息是存储在区块链中的,因此能够有效地保障权限是可信的,从而解决中心节点信任问题和接入成本问题。
在一个实施例中,代理授权过程可以是由管理者经由业务***发起的。例如,管理者可以经由业务***指定被授权人员的操作权限。相应地,业务***可以确定授权管理信息。授权管理信息可以包括操作权限信息和业务***的标识信息。业务***可以向服务器发送授权管理信息。例如,业务***可以向服务器发送授权管理请求,授权管理请求可以包括授权管理信息。如前所述,服务器可以基于授权管理信息来确定代理权限信息,并且将代理权限信息上传到区块链。
从上文可以看到,本说明书的技术方案可以涉及三个过程,即针对管理者的初始化过程、代理授权过程以及针对当前用户的验证过程。下面将结合具体例子来描述各个过程。应当理解的是,以下例子仅是说明性的,而并不限制本说明书的技术方案的范围。
图3A是根据一个实施例的针对管理者的初始化过程的示意性流程图。
如图3A所示,当针对注册到业务***的企业账户的管理者首次启动被安装在管理者的用户终端上的第二客户端时,管理者可以发起初始化请求。或者,第二客户端可以向管理者呈现用于发起初始化请求的对话框。例如,第二客户端可以检测到管理者用于发起初始化请求的输入,从而确定要进行初始化过程。
在步骤302A中,第二客户端可以确定初始化信息。
例如,初始化信息可以包括管理者的个人信息、管理者的用户终端的设备信息以及与企业账户相关联的企业的信息。
在步骤304A中,第二客户端可以向服务器发送初始化信息。
例如,第二客户端可以向服务器发送初始化请求,而初始化请求可以包括初始化信息。
在步骤306A中,服务器可以确认初始化信息。
例如,服务器可以基于企业数据源,确认管理者的个人信息和企业的信息是正确的。
在步骤308A中,服务器可以生成身份核验任务信息。
例如,身份核验任务信息可以指示要获取的身份信息。
在步骤310A中,服务器可以向第二客户端发送身份核验任务信息。
在步骤312A中,第二客户端可以获取管理者的身份信息。
在步骤314A中,第二客户端可以向服务器发送管理者的身份信息。
在步骤316A中,服务器可以对管理者进行身份核验。
在步骤318A中,服务器可以在对管理者的身份核验通过之后,生成证书安装指令。
在步骤320A中,服务器可以向第二客户端发送证书安装指令。
在步骤322A中,第二客户端可以基于证书安装指令,在TEE中生成非对称密钥,即公钥和私钥。
在步骤324A中,第二客户端可以生成CSR。
例如,CSR可以包括公钥、企业的非隐私信息、私钥签名信息等。
在步骤326A中,第二客户端可以向服务器发送CSR。
在步骤328A中,服务器可以生成证书制作信息。
例如,证书制作信息可以包括CSR中所包含的信息以及其它相关信息。
在步骤330A中,服务器可以向证书签发机构发送证书制作信息。
在步骤332A中,证书签发机构可以基于证书制作信息,生成数字证书。
数字证书可以用于证明管理者和企业的真实性。
在步骤334A中,证书签发机构可以向服务器发送数字证书。
在步骤336A中,服务器可以向第二客户端发送数字证书。
在步骤338A中,第二客户端可以将所接收的数字证书写入TEE中。
在步骤340A中,第二客户端可以向管理者提示初始化完成。
可见,通过服务器对管理者进行身份核验并且下发数字证书,能够确保在可信的环境下执行后续过程,从而有效地控制企业账户的风险。
图3B是根据一个实施例的代理授权过程的示意性流程图。
如图3B所示,管理者可以经由业务***发起代理授权请求。管理者可以是针对注册到业务***的企业账户而言的。例如,管理者可以经由其用户终端向业务***的业务客户端发起代理授权请求。业务***检测到管理者的代理授权请求之后,可以发起代理授权过程。
在步骤302B中,业务***可以确定授权管理信息。
例如,授权管理信息可以包括业务***的标识、操作权限信息、与企业账户相关联的企业的信息、管理者的用户终端的设备信息等等。操作权限信息所指示的操作权限可以是由管理者在业务***中指定的。
在步骤304B中,业务***可以向服务器发送授权管理信息。
例如,业务***可以向服务器发送授权管理请求,而授权管理请求可以包括授权管理信息。
在步骤306B中,服务器可以基于授权管理信息,生成授权管理任务信息。
例如,授权管理任务信息可以指示调用第二客户端。
在步骤308B中,服务器可以向业务***发送授权管理任务信息。
在步骤310B中,业务***可以调用第二客户端,使得第二客户端启动。
在步骤312B中,第二客户端可以接收由管理者输入的被授权人员信息。
在步骤314B中,第二客户端可以向服务器发送被授权人员信息。
在步骤316B中,服务器可以确认被授权人员信息。
在步骤318B中,服务器可以生成身份核验任务信息。
例如,身份核验任务信息可以用于指示要获取管理者的身份信息。
在步骤320B中,服务器可以向第二客户端发送身份核验任务信息。
在步骤322B中,第二客户端可以基于身份核验任务信息,获取管理者的身份信息。
在步骤324B中,第二客户端可以向服务器发送管理者的身份信息。
在步骤326B中,服务器可以基于管理者的身份信息,对管理者进行身份核验。
在步骤328B中,服务器在对管理者的身份核验通过之后,生成摘要信息。
例如,服务器可以使用摘要算法,基于管理者的个人信息、被授权人员的个人信息、操作权限标识集合、管理者的用户终端的设备信息、身份核验任务标识、管理者的身份信息、时间戳等,来得到摘要信息。
在步骤330B中,服务器可以向第二客户端发送摘要信息。
在步骤332B中,第二客户端可以在TEE中,使用私钥对摘要信息进行签名,得到签名信息。
在步骤334B中,第二客户端可以向服务器发送签名信息。
在步骤336B中,服务器可以基于公钥来对签名信息进行验证。
在步骤338B中,服务器在对签名信息验证通过之后,可以调用第三方时间戳服务,备份当前签名时间。
在步骤340B中,服务器可以生成代理权限信息。例如,代理权限信息可以具有适用于区块链的消息格式。
在步骤342B中,服务器可以对代理权限信息进行加密,例如,使用主密钥和分散密钥来对代理权限信息进行加密。此外,服务器可以将加密后的代理权限信息上传到区块链,并且记录当前区块的哈希值。
在步骤344B中,服务器可以向第二客户端返回代理授权结果。例如,代理授权结果可以指示代理授权成功。
在步骤346B中,第二客户端可以向管理者提示代理授权成功。
可见,在该技术方案中,通过企业账户的管理者指定被授权人员的操作权限,能够在细粒度上区分使用同一账户。此外,通过将代理权限信息上传到区块链,能够保障代理权限信息的可靠性。
下面将描述针对企业账户的当前用户的验证过程。
图3C是根据一个实施例的针对企业账户的当前用户的验证过程的示意性流程图。
如3C所示,可以在业务***中注册企业账户。当前用户可以基于企业账户来进行业务操作。业务***在检测到当前用户正在进行操作时,可以发起针对当前用户的验证过程。
在步骤302C中,业务***可以生成权限查询消息。权限查询消息可以用于查询当前用户对企业账户的操作权限。
在步骤304C中,业务***可以向服务器发送权限查询消息。
在步骤306C中,服务器可以基于权限查询消息,生成权限查询任务信息。
例如,权限查询任务信息可以指示调用第一客户端。第一客户端可以被安装在当前用户的用户终端上。
在步骤308C中,服务器可以向业务***发送权限查询任务信息。
在步骤310C中,业务***可以调用第一客户端,使得第一客户端启动。
在步骤312C中,服务器可以向第一客户端发送授权指令。
如果第一客户端具有有效的客户端令牌,则可以跳过步骤314C至330C。而在步骤332C中,第一客户端直接基于授权指令和客户端令牌,生成授权码。
如果第一客户端不具有有效的客户端令牌,例如,在第一客户端首次启动或者客户端令牌失效的情况下,可以执行步骤314C至330C,使得第一客户端从服务器获取有效的客户端令牌。
在步骤314C中,第一客户端可以生成用于请求客户端令牌的令牌请求消息。
在步骤316C中,第一客户端可以向服务器发送令牌请求消息。
在步骤318C中,服务器可以获取被授权人员信息。
例如,服务器可以基于管理者的个人信息和分散密钥等,从区块链获取被授权人员信息。
在步骤320C中,服务器可以向第一客户端发送被授权人员列表。
在步骤322C中,第一客户端可以向当前用户呈现被授权人员列表,以便接收当前用户用于在该列表中选择自己的输入。然后,第一客户端可以获取当前用户的身份信息。
在步骤324C中,第一客户端可以向服务器发送当前用户的身份信息。
在步骤326C中,服务器可以基于当前用户的身份信息,对当前用户进行身份核验。
在步骤328C中,服务器在对当前用户进行身份核验通过之后,可以生成客户端令牌。
在步骤330C中,服务器可以向第一客户端发送客户端令牌。
在获取到客户端令牌之后,在步骤332C中,第一客户端可以基于授权指令和客户端令牌来生成授权码。
在步骤334C中,第一客户端可以向服务器发送授权码。
在步骤336C中,服务器可以对授权码进行验证。
在步骤338C中,服务器在对授权码验证通过之后,可以从区块链中读取代理权限信息。
可选地,在步骤340C中,服务器可以向第一客户端返回验证结果,例如,验证结果可以指示授权码验证通过。
此外,第一客户端可以向当前用户提示授权码验证通过。
在步骤342C中,服务器可以向业务***发送代理权限信息。
在步骤344C中,业务***可以基于代理权限信息,来确定是否授权当前用户对业务***的操作。
可见,在该技术方案中,通过对操作企业账户的当前用户进行身份核验,能够有效地控制企业账户的风险;此外,通过管理者指定被授权人员的操作权限,能够对同一账户进行权限划分,这样能够实现对同一账户的细粒度区分使用;另外,由于代理权限信息是存储在区块链中的,因此能够有效地保障权限是可信的,从而解决中心节点信任问题和接入成本问题。
图4A是根据一个实施例的服务器的示意性框图。例如,图4A的服务器400A可以是图1A中的服务器110。
服务器400A可以包括接收单元402A、第一获取单元404A、第二获取单元406A和发送单元408A。
接收单元402A可以从业务***接收权限查询消息,其中,权限查询消息用于查询当前用户对注册到业务***的企业账户的操作权限。
第一获取单元404A可以基于权限查询消息,从第一客户端获取校验信息。第一客户端被安装在当前用户使用的用户终端上,校验信息是与当前用户的身份相关联的。
第二获取单元406A可以在确定校验信息有效的情况下,从区块链中获取代理权限信息,其中,代理权限信息至少包括当前用户对企业账户的操作权限信息,操作权限信息所指示的操作权限是由企业账户的管理者指定的;
发送单元408A可以向业务***发送代理权限信息。
可见,在该技术方案中,通过对操作企业账户的当前用户进行身份核验,能够有效地控制企业账户的风险;此外,通过管理者指定被授权人员的操作权限,能够对同一账户进行权限划分,这样能够实现对同一账户的细粒度区分使用;另外,由于代理权限信息是存储在区块链中的,因此能够有效地保障权限是可信的,从而解决中心节点信任问题和接入成本问题。
在一个实施例中,校验信息可以包括授权码。
第一获取单元404A可以向第一客户端发送授权指令,其中,授权指令用于请求授权码。第一获取单元404A可以从第一客户端接收授权码,其中,授权码是由第一客户端基于授权指令和客户端令牌生成的,客户端令牌是第一客户端从服务器获得的。
在一个实施例中,第一获取单元404A可以在从第一客户端接收授权码之前进行以下操作:从第一客户端接收用于请求客户端令牌的令牌请求消息;基于令牌请求消息,从第一客户端获取当前用户的身份信息;基于当前用户的身份信息,确定当前用户是与企业账户相对应的被授权人员之一,其中,授权人员的信息是从区块链中获取的;生成客户端令牌;向第一客户端发送客户端令牌。
在一个实施例中,服务器400A还可以包括初始化单元410A。初始化单元410A可以在接收单元402A从业务***接收权限查询消息之前进行以下操作:当从第二客户端接收到针对管理者的初始化请求时,获取初始化信息,其中,第二客户端被安装在管理者使用的用户终端上,初始化信息包括管理者的个人信息、管理者使用的用户终端的设备信息以及与企业账户相关联的企业的信息;在确定初始化信息有效的情况下,从第二客户端获取管理者的身份信息;基于管理者的身份信息,对管理者进行身份核验;在对管理者的身份核验通过之后,确定数字证书,其中,数字证书用于证明管理者和企业的真实性;向第二客户端发送数字证书。
在一个实施例中,服务器400A还可以包括代理授权单元412A。代理授权单元412A可以在初始化单元410A向第二客户端发送数据证书之后进行以下操作:从业务***接收授权管理信息,其中,授权管理信息包括操作权限信息和业务***的标识;基于授权管理信息,从第二客户端获取当前用户的个人信息,其中,当前用户的个人信息是由管理者输入的;从第二客户端获取管理者的身份信息;基于管理者的身份信息,对管理者进行身份核验;在对管理者的身份核验通过之后,从第二客户端获取针对摘要信息的签名信息,其中,摘要信息是至少基于操作权限信息和当前用户的个人信息来生成的,签名信息是由第二客户端基于数字证书来生成的;生成代理权限信息,其中,代理权限信息至少包括操作权限信息、当前用户的个人信息、摘要信息和签名信息;将代理权限信息上传到区块链。
装置400A的各个单元可以执行图1A至3C的方法实施例中的关于服务器描述的过程,因此,为了描述的简洁,装置400A的各个单元的具体操作和功能此处不再赘述。
上述装置400A可以采用硬件实现,也可以采用软件实现,或者可以通过软硬件的组合来实现。例如,装置400A在采用软件实现时,其可以通过其所在设备的处理器将存储器(比如非易失性存储器)中对应的可执行指令读取到内存中运行来形成。
图4B是根据一个实施例的第一客户端装置的示意性框图。
第一客户端装置400B可以位于当前用户使用的用户终端上。当前用户可以是针对注册到业务***的企业账户而言的。例如,第一客户端装置400B可以与图1A中的第一客户端120对应。
如图4B所示,第一客户端装置400B可以包括确定单元402B和发送单元404B。
确定单元402B可以确定校验信息。校验信息是与当前用户的身份相关联的。
发送单元404B可以向服务器发送校验信息,以便服务器对当前用户的身份进行核验。
可见,在该技术方案中,通过向服务器发送用于验证当前用户的身份的校验信息,使得服务器能够有效地核验业务***的当前用户的身份,从而能够控制企业账户的风险。
在一个实施例中,校验信息可以包括授权码。确定单元402B可以从服务器接收授权指令,其中,授权指令用于请求授权码。确定单元402B可以基于授权指令和客户端令牌,生成授权码,其中,客户端令牌是从服务器获取的。
在一个实施例中,第一客户端装置400B还可以包括令牌请求单元406B。
令牌请求单元406B可以在确定单元402B生成授权码之前进行以下操作:向服务器发送用于请求客户端令牌的令牌请求消息;从服务器接收针对当前用户的身份核验请求;基于身份核验请求,获取当前用户的身份信息;向服务器发送当前用户的身份信息,以便由服务器确定当前用户是与企业账户相对应的被授权人员之一;从服务器接收客户端令牌。
装置400B的各个单元可以执行图1A至3C的方法实施例中的关于第一客户端描述的过程,因此,为了描述的简洁,装置400B的各个单元的具体操作和功能此处不再赘述。
上述装置400B可以采用硬件实现,也可以采用软件实现,或者可以通过软硬件的组合来实现。例如,装置400B在采用软件实现时,其可以通过其所在设备的处理器将存储器(比如非易失性存储器)中对应的可执行指令读取到内存中运行来形成。
图4C是根据一个实施例的第二客户端装置的示意性框图。
第二客户端装置400C可以位于管理者使用的用户终端上。管理者可以是针对注册到业务***的企业账户而言的。例如,第二客户端装置400C可以与图1A中的第二客户端130相对应。
如图4C所示,第二客户端装置400B可以包括发送单元402C、接收单元404C和获取单元406C。
当管理者通过用户终端发起初始化请求时,发送单元402C可以向服务器发送初始化信息,其中,初始化信息包括管理者的个人信息、用户终端的设备信息、以及与由企业账户相关联的企业的信息。
接收单元404C可以从服务器接收针对管理者的身份核验请求。
获取单元406C可以基于身份核验请求,获取管理者的身份信息。
发送单元402C还可以向服务器发送身份信息,以便服务器对管理者进行身份核验。
获取单元406C还可以从服务器获取数字证书,其中,数字证书是服务器在对管理者的身份核验通过之后发送的,数字证书用于证明管理者和企业的真实性。
可见,在该技术方案中,通过对管理者进行身份核验并且获取数字证书,能够确保在可信的环境下执行后续过程,从而有效地控制企业账户的风险。
在一个实施例中,第二客户端装置400C还可以包括代理授权单元408C。
代理授权单元408C可以进行以下操作:获取当前用户的个人信息,其中,当前用户的个人信息是由管理者输入的;向服务器发送当前用户的个人信息;从服务器接收针对管理者的身份核验请求;基于身份核验请求,获取管理者的身份信息;向服务器发送管理者的身份信息,以便由服务器对管理者进行身份核验,其中,当前用户的个人信息由服务器用于在对管理者的身份核验通过之后生成代理权限信息,代理权限信息至少包括当前用户对企业账户的操作权限信息。
装置400C的各个单元可以执行图1A至3C的方法实施例中的关于第二客户端描述的过程,因此,为了描述的简洁,装置400C的各个单元的具体操作和功能此处不再赘述。
上述装置400C可以采用硬件实现,也可以采用软件实现,或者可以通过软硬件的组合来实现。例如,装置400C在采用软件实现时,其可以通过其所在设备的处理器将存储器(比如非易失性存储器)中对应的可执行指令读取到内存中运行来形成。
图4D是根据一个实施例的业务***的示意性框图。例如,业务***400D可以是图1A中的业务***140。
如图4D所示,业务***140可以包括发送单元402D、接收单元404D和确定单元406D。
发送单元402D可以在当前用户对注册到业务***的企业账户进行操作时,向服务器发送权限查询消息,其中,权限查询消息用于查询当前用户对企业账户的操作权限。
接收单元404D可以从服务器接收代理权限信息,其中,代理权限信息是服务器在对当前用户的身份核验通过之后从区块链中获取的,代理权限信息至少包括当前用户对企业账户的操作权限信息,操作权限信息是由企业账户的管理者指定的。
确定单元406D可以基于代理权限信息,确定是否授权当前用户对企业账户的操作。
可见,在该技术方案中,通过服务器对操作企业账户的当前用户进行身份核验,能够有效地控制企业账户的风险;此外,通过管理者指定被授权人员的操作权限,能够对同一账户进行权限划分,这样能够实现对同一账户的细粒度区分使用;另外,由于代理权限信息是存储在区块链中的,因此能够有效地保障权限是可信的,从而解决中心节点信任问题和接入成本问题。
在一个实施例中,确定单元406D还可以确定授权管理信息。授权管理信息可以包括操作权限信息和业务***的标识,操作权限信息所指示的操作权限是由管理者指定的。
发送单元402D可以向服务器发送授权管理信息。授权管理信息由服务器用于确定代理权限信息,并且代理权限信息由服务器上传到区块链。
装置400D的各个单元可以执行图1A至3C的方法实施例中的关于业务***描述的过程,因此,为了描述的简洁,装置400D的各个单元的具体操作和功能此处不再赘述。
上述装置400D可以采用硬件实现,也可以采用软件实现,或者可以通过软硬件的组合来实现。例如,装置400D在采用软件实现时,其可以通过其所在设备的处理器将存储器(比如非易失性存储器)中对应的可执行指令读取到内存中运行来形成。
图5A是根据一个实施例的用于账户管理的计算设备的硬件结构图。如图5A所示,计算设备500A可以包括至少一个处理器502A、存储器504A、内存506A和通信接口508A,并且至少一个处理器502A、存储器504A、内存506A和通信接口508A经由总线510A连接在一起。至少一个处理器502A执行在存储器504A中存储或编码的至少一个可执行指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器504A中存储的可执行指令在被至少一个处理器502A执行时,使得计算设备实现在图1A-3C中关于服务器描述的各种过程。
计算设备500A可以采用本领域任何适用的形式来实现,例如,其包括但不限于台式计算机、膝上型计算机、智能电话、平板计算机、消费电子设备、可穿戴智能设备等等。
图5B是根据一个实施例的用于账户管理的计算设备的硬件结构图。如图5B所示,计算设备500B可以包括至少一个处理器502B、存储器504B、内存506B和通信接口508B,并且至少一个处理器502B、存储器504B、内存506B和通信接口508B经由总线510B连接在一起。至少一个处理器502B执行在存储器504B中存储或编码的至少一个可执行指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器504B中存储的可执行指令在被至少一个处理器502B执行时,使得计算设备实现在图1A-3C中关于第一客户端描述的各种过程。
计算设备500B可以采用本领域任何适用的形式来实现,例如,其包括但不限于台式计算机、膝上型计算机、智能电话、平板计算机、消费电子设备、可穿戴智能设备等等。
图5C是根据一个实施例的用于账户管理的计算设备的硬件结构图。如图5C所示,计算设备500C可以包括至少一个处理器502C、存储器504C、内存506C和通信接口508C,并且至少一个处理器502C、存储器504C、内存506C和通信接口508C经由总线510C连接在一起。至少一个处理器502C执行在存储器504C中存储或编码的至少一个可执行指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器504C中存储的可执行指令在被至少一个处理器502C执行时,使得计算设备实现在图1A-3C中关于第二客户端描述的各种过程。
计算设备500C可以采用本领域任何适用的形式来实现,例如,其包括但不限于台式计算机、膝上型计算机、智能电话、平板计算机、消费电子设备、可穿戴智能设备等等。
图5D是根据一个实施例的用于账户管理的计算设备的硬件结构图。如图5D所示,计算设备500D可以包括至少一个处理器502D、存储器504D、内存506D和通信接口508D,并且至少一个处理器502D、存储器504D、内存506D和通信接口508D经由总线510D连接在一起。至少一个处理器502D执行在存储器504D中存储或编码的至少一个可执行指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器504D中存储的可执行指令在被至少一个处理器502D执行时,使得计算设备实现在图1A-3C中关于业务***描述的各种过程。
计算设备500D可以采用本领域任何适用的形式来实现,例如,其包括但不限于台式计算机、膝上型计算机、智能电话、平板计算机、消费电子设备、可穿戴智能设备等等。
本说明书的实施例还提供了一种机器可读存储介质。该机器可读存储介质可以存储有可执行指令,可执行指令在被机器执行时使得机器实现在图1A-3C中关于服务器描述的具体过程。
本说明书的实施例还提供了一种机器可读存储介质。该机器可读存储介质可以存储有可执行指令,可执行指令在被机器执行时使得机器实现在图1A-3C中关于第一客户端描述的具体过程。
本说明书的实施例还提供了一种机器可读存储介质。该机器可读存储介质可以存储有可执行指令,可执行指令在被机器执行时使得机器实现在图1A-3C中关于第二客户端描述的具体过程。
本说明书的实施例还提供了一种机器可读存储介质。该机器可读存储介质可以存储有可执行指令,可执行指令在被机器执行时使得机器实现在图1A-3C中关于业务***描述的具体过程。
机器可读存储介质可以采用本领域已知的任何适用的形式来实现。例如,机器可读存储介质可以包括但不限于随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、电可擦除可编程只读存储器(Electrically-ErasableProgrammable Read-Only Memory,EEPROM)、静态随机存取存储器(Static Random AccessMemory,SRAM)、硬盘、闪存等等。
应当理解的是,本说明书中的各个实施例均采用递进的方式来描述,各个实施例之间相同或相似的部分相互参见即可,每个实施例重点说明的都是与其它实施例的不同之处。例如,对于上述关于装置的实施例、关于计算设备的实施例以及关于机器可读存储介质的实施例而言,由于它们基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上文对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各***结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分别由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作例子、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本公开内容的实施例的可选实施方式,但是,本公开内容的实施例并不限于上述实施方式中的具体细节,在本公开内容的实施例的技术构思范围内,可以对本公开内容的实施例的技术方案进行多种变型,这些变型均属于本公开内容的实施例的保护范围。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的例子和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。