CN109389498A - 区块链用户身份管理方法、***、设备及存储介质 - Google Patents
区块链用户身份管理方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN109389498A CN109389498A CN201811085910.9A CN201811085910A CN109389498A CN 109389498 A CN109389498 A CN 109389498A CN 201811085910 A CN201811085910 A CN 201811085910A CN 109389498 A CN109389498 A CN 109389498A
- Authority
- CN
- China
- Prior art keywords
- client
- identity management
- block chain
- transaction
- hardware security
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种区块链用户身份管理方法、***、设备及存储介质,所述方法包括客户端与身份管理服务器建立安全通信通道;所述客户端将用户的交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块;所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,并将签名后的交易提案通过所述身份管理服务器返回至所述客户端;所述客户端将签名后的交易提案发送至区块链节点。本发明引入硬件安全模块管理区块链用户身份凭据,在硬件安全模块上实现用户身份凭据的生成、使用和管理功能,重新设计了区块链用户发送交易请求的工作流程,用户无需自行操作签名过程或管理身份凭据,由硬件安全模块进行签名等操作,保证用户隐私数据安全。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链用户身份管理方法、***、设备及存储介质。
背景技术
企业级区块链一般操作高价值、高隐私性的数据,区块链用户的私钥等身份凭据需要较高安全性的机制保护和管理。现有技术中,用户的签名密钥等隐私数据一般直接存放在API(Application Programming Interface,应用程序编程接口)网关服务器中。如图1所示,为现有技术中API网关与区块链节点和客户端连接的示意图,组织101的API网关103是组织101中所有用户访问区块链节点的统一入口,客户端104的请求必须通过API网关103才能访问到区块链节点102。
如图2所示,为现有技术中区块链中交易请求提出的时序图。其中,交易请求的提出流程一般为:客户端通过调用API网关提供的API提交交易请求,API网关将客户端提交的请求构建为交易提案(Transaction Proposal),再由保存在API网关中的用户密钥进行签名以证明用户身份,最后将签名后的用户提案提交到区块链节点。然而,采用该种方式,存在如下缺陷:
(1)API网关安全级别较低,未对用户隐私数据进行特殊保护,容易遭受攻击,而用户密钥等隐私数据一旦泄露后果严重;
(2)API网关同时负责处理请求和管理用户身份数据,角色重叠,负载较重;
(3)API网关无法满足密钥生成、密钥分享、加密数据的追溯等等与身份管理相关的其他需求;
(4)API网关签名后的请求可能被攻击者用于重放攻击(Replay Attack)。此处,重放攻击指的是攻击者重复发送目的主机已接收过的消息,来达到欺骗***的目的,主要用于交易提案的重复发送,破坏交易逻辑的正确性。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种区块链用户身份管理方法、***、设备及存储介质,引入硬件安全模块对用户身份凭据提供逻辑层面和物理层面的安全保护,提高用户身份凭据的安全性。
本发明实施例提供一种区块链用户身份管理方法,包括如下步骤:
客户端与身份管理服务器建立第一通信通道;
所述客户端将用户的交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块;
所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,并将签名后的交易提案通过所述身份管理服务器返回至所述客户端;
所述客户端将签名后的交易提案发送至区块链节点。
可选地,所述客户端与身份管理服务器建立第一通信通道,包括如下步骤:
所述客户端发送通信请求至所述身份管理服务器;
所述身份管理服务器对所述客户端进行身份验证,如果验证成功,则建立所述客户端与所述身份管理服务器之间的第一通信通道。
可选地,所述身份管理服务器对所述客户端的身份验证成功之后,返回服务器身份认证信息至所述客户端,所述客户端对所述服务器身份认证信息进行验证,如果验证成功,则建立所述客户端与所述身份管理服务器之间的第一通信通道。
可选地,所述客户端将交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块,包括如下步骤:
所述客户端将交易提案和签名请求发送至所述身份管理服务器;
所述身份管理服务器从所述签名请求中提取硬件安全模块的识别信息,并将交易提案和签名请求发送至对应的硬件安全模块。
可选地,所述客户端与身份管理服务器建立第一通信通道之后,还包括如下步骤:
所述客户端将用户的通信请求在第一通信通道中通过所述身份管理服务器发送至所述硬件安全模块;
所述硬件安全模块对用户的通信请求进行身份验证,如果验证通过,则建立用户与所述硬件安全模块之间的第二通信通道。
可选地,所述硬件安全模块对用户的通信请求进行身份验证成功后,返回硬件安全模块身份认证信息至所述客户端,所述客户端接收用户对所述硬件安全模块的身份验证结果,如果验证成功,则建立用户与所述硬件安全模块之间的第二通信通道。
可选地,所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,包括如下步骤:
所述客户端将交易提案和签名请求在第二通信通道中通过所述身份管理服务器发送至所述硬件安全模块;
所述硬件安全模块从签名请求中提取用户信息,所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名。
可选地,所述客户端将交易提案和签名请求通过所述通信通道发送至所述身份管理服务器之前,还包括如下步骤:
所述客户端向API网关提交交易请求;
所述API网关将客户端提交的交易请求映射为智能合约调用,并将智能合约方法名和参数返回至所述客户端;
所述客户端根据所述智能合约方法名和参数生成交易提案。
可选地,所述客户端将签名后的交易提案发送至区块链节点,包括如下步骤:
所述客户端将签名后的交易提案通过所述API网关发送至区块链节点。
可选地,所述客户端根据所述智能合约方法名和参数生成交易提案,包括如下步骤:
所述客户端生成交易的全局唯一标识符;
所述客户端根据所述全局唯一标识符、所述智能合约方法名和参数生成交易提案。
可选地,所述客户端将交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块之前,还包括如下步骤:
所述客户端将所述交易提案进行盲化处理,得到盲化的交易提案;
所述客户端将盲签名后的交易提案发送至区块链节点,包括如下步骤:
所述客户端将所述签名去盲因子后与所述交易提案发送至区块链节点。
本发明实施例还提供一种区块链用户身份管理***,采用所述的区块链用户身份管理方法,所述***包括身份管理服务器、硬件安全模块和客户端,其中:
所述客户端与身份管理服务器建立第一通信通道;
所述客户端将用户的交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块;
所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,并将签名后的交易提案通过所述身份管理服务器返回至所述客户端;
所述客户端将签名后的交易提案发送至区块链节点。
可选地,所述***还包括API网关,所述API网关用于接收到客户端的交易请求时,将客户端提交的交易请求映射为智能合约调用,并将智能合约方法名和参数返回至所述客户端;所述客户端根据所述智能合约方法名和参数生成交易提案。
本发明实施例还提供一种区块链用户身份管理设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的区块链用户身份管理方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现所述的区块链用户身份管理方法的步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本发明所提供的区块链用户身份管理方法、***、设备及存储介质,具有如下有益效果:
(1)引入硬件安全模块管理区块链用户身份凭据,在硬件安全模块上实现用户身份凭据的生成、使用和管理功能,保证用户身份凭据安全;
(2)重新设计了区块链用户发送交易请求的工作流程,用户无需自行操作签名过程或管理身份凭据,由硬件安全模块进行签名等操作,客户端可以采用盲签名技术,使得提案信息对硬件安全模块也完全保密;
(3)每一个交易提案可以拥有全局唯一标识符且有用户签名,区块链节点可以识别重复的交易ID,攻击者无法篡改ID,也无法进行重放攻击,因此通过全局唯一标识符避免重放攻击,保证用户签名的交易提案被正确使用。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是现有技术中API网关与区块链节点和客户端连接的示意图;
图2为现有技术中区块链中交易请求提出的时序图;
图3是本发明一实施例的区块链用户身份管理方法的流程图;
图4是本发明一实施例的区块链用户身份管理***的结构示意图;
图5是本发明一实施例的第一通信通道和第二通信通道的示意图;
图6是本发明一实施例的区块链用户身份管理***执行工作流程的示意图;
图7是本发明一实施例的区块链用户身份管理设备的结构示意图;
图8是本发明一实施例计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为了解决上述技术问题,本发明实施例提供一种基于硬件管理模块(HardwareSecurity Module,HSM)的区块链用户身份管理方法。由于硬件安全模块不适合直接接入公共网络处理网络请求,本发明进一步采用身份管理服务器作为硬件安全模块的前端,处理和转发网络请求,负责与客户端之间的通信。
本发明在引入硬件安全模块的基础上,重新设计了用户提交区块链交易请求的工作流程,保证充分利用硬件安全模块的安全特性,同时保证签名后的交易提案能够正确的提交到区块链节点上。
如图3所示,在本发明一实施例中,所述区块链用户身份管理方法包括如下步骤:
S100:客户端与身份管理服务器建立第一通信通道;
S200:所述客户端将用户的交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块;
S300:所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,并将签名后的交易提案通过所述身份管理服务器返回至所述客户端;
S400:所述客户端将签名后的交易提案发送至区块链节点。
因此,本发明引入硬件安全模块管理区块链用户身份凭据,在硬件安全模块上实现用户隐私数据的生成、使用和管理功能,硬件安全模块与身份管理服务器的其他硬件物理隔离,攻击者无法窃取用户的身份凭据,从而全面保证用户身份凭据安全。
如图4所示,与所述区块链身份管理方法相对应地,本发明实施例提供一种区块链用户身份管理***,包括身份管理服务器M100、硬件安全模块M200和客户端M300,其中:
所述客户端M300与身份管理服务器M100建立第一通信通道;
所述客户端M300将用户的交易提案和签名请求通过所述身份管理服务器M100发送至硬件安全模块M200;
所述硬件安全模块M200选择相应的用户密钥对所述交易提案进行签名,并将签名后的交易提案通过所述身份管理服务器M200返回至所述客户端M300;
所述客户端M300将签名后的交易提案发送至区块链节点。
如图5所示,在该实施例中,所述客户端M300与身份管理服务器M100之间建立第一通信通道T1,形成客户端M300与身份管理服务器M100之间的可信连接。
建立第一通信通道T1可以通过客户端与身份管理服务器之间的验证进行,具体地,包括如下步骤:
所述客户端发送通信请求至所述身份管理服务器;所述身份管理服务器对所述客户端进行身份验证,如果验证成功,则建立所述客户端与所述身份管理服务器之间的第一通信通道T1。
进一步地,所述身份管理服务器对所述客户端的身份验证成功之后,返回服务器身份认证信息至所述客户端,所述客户端对所述服务器身份认证信息进行验证,如果验证成功,则建立所述客户端与所述身份管理服务器之间的第一通信通道T1。
在实施例中,所述客户端将交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块,包括如下步骤:
所述客户端将交易提案和签名请求发送至所述身份管理服务器;
所述身份管理服务器从所述签名请求中提取硬件安全模块的识别信息,并将交易提案和签名请求发送至对应的硬件安全模块。
例如,身份管理服务器是设置在公网中的,可以与客户端直接通信,客户端可以根据身份管理服务器的公网地址直接连接到身份管理服务器,而硬件安全模块则只是设置于身份管理服务器和硬件安全模块之间的内部或私有网络中,因此,客户端不能直接与硬件安全模块建立安全通道通信,而需要通过身份管理服务器。
另外,身份管理服务器中可能承载多个硬件安全模块,因此客户端需要将签名请求发送至身份管理服务器后,再由身份管理服务器转发到相应的硬件安全模块。签名请求中提取的硬件安全模块的识别信息可以是硬件安全模块的识别号或者在内网中的IP地址,身份管理服务器可以根据该识别信息定位到对应的硬件安全模块并转发相应信息。
在实际应用中,第一通信通道T1的身份验证方式可以由身份管理服务器与客户端通过SCRAM(Salted Challenge Response Authentication Mechanism)双向验证身份。但本发明不限于此,采用其他身份验证方式建立的通道也是可以的,均属于本发明的保护范围之内。
在实际应用中,第一通信通道T1的数据加密方式可以由身份管理服务器与客户端在验证身份后建立TLS(Transport Layer Security)加密连接,通信内容经过会谈密钥(Session Key)加密。但本发明不限于此,采用其他安全通信协议建立的通道也是可以的,均属于本发明的保护范围之内。
进一步地,如图5所示,在工作流程执行之前,用户还通过客户端M300与硬件安全模块M200建立了第二通信通道T2,以形成用户与硬件安全模块M200之间的可信连接。
第二通信通道T2的建立可以通过用户与硬件安全模块之间的验证进行。具体地,所述客户端将用户的通信请求在第一通信通道T1中通过所述身份管理服务器发送至所述硬件安全模块;所述硬件安全模块对用户的通信请求进行身份验证,如果验证通过,则建立用户与所述硬件安全模块之间的第二通信通道T2。
在该实施例中,所述硬件安全模块对用户的通信请求进行身份验证成功后,返回硬件安全模块身份认证信息至所述客户端,所述客户端接收用户对所述硬件安全模块的身份验证结果,如果验证成功,则建立用户与所述硬件安全模块之间的第二通信通道T2。此处建立的第二通信通道T2指的是处于公共网络中的用户和处于内部或私有网络中的硬件安全模块之间的一个可信的通信通道,为后续的交易提案签名时的身份验证提供支持,而用户与硬件安全模块之间的通信还是通过客户端和身份管理服务器来实现。
在实际应用中,第二通信通道T2的身份验证方式可以由硬件安全模块与客户端通过SCRAM(Salted Challenge Response Authentication Mechanism)双向验证身份。但本发明不限于此,采用其他身份验证方式建立的通道也是可以的,均属于本发明的保护范围之内。
在实际应用中,第二通信通道T2的数据加密方式可以由硬件安全模块与客户端在验证身份后建立TLS(Transport Layer Security)加密连接,通信内容经过会谈密钥(Session Key)加密。此时通信内容会经过第一通信通道和第二通信通道的双重加密。但本发明不限于此,采用其他安全通信协议建立的通道也是可以的,均属于本发明的保护范围之内。
在实际应用中,第二通信通道T2基于第一通信通道T1进行数据传输的方式可以有以下几种:(1)第二通信通道可以利用HTTP隧道(HTTP Tunnel)等机制在第一通信通道的基础上建立。在这种实现中,第二通信通道中的数据对于第一通信通道完全保密,第二通信通道可以选择与第一通信通道完全不同的应用层协议,比如第一通信通道使用HTTP协议,创建HTTP隧道(HTTP Tunnel)后第二通信通道使用SSH协议,身份管理服务器仅负责转发数据,不会解析或改动数据包,达到对身份管理服务器保密的目的;(2)第二通信通道也可以利用代理(Proxy)等机制在第一通信通道的基础上建立。第二通信通道中的数据包可以对身份管理服务器暴露硬件安全模块的内网IP地址,身份管理服务器根据目标硬件安全模块的内网IP地址转发数据包,在这种实现中,身份管理服务器承担反向代理(Reverse Proxy)的功能,可以解析和改写数据包头部的原始和目标地址信息,达到隐藏客户端和硬件安全模块实际地址的效果,但第二通信通道中的数据包负载内容可以依然对身份管理服务器保密。以上两类实现方式均采用多重安全通道机制传输数据,均属于本发明的保护范围之内。
在该实施例中,所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,包括如下步骤:
所述客户端将交易提案和签名请求在第二通信通道中通过所述身份管理服务器发送至所述硬件安全模块;
所述硬件安全模块从签名请求中提取用户信息,所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名。
在区块链网络中,区块链节点存储其所属组织的重要账本信息,其访问权限需要严格限制。一个组织可能拥有较多用户,如果允许用户直接访问某个区块链节点,会造成区块链节点负载过大且不安全。因此,在该实施例中,进一步在区块链网络中增加了API网关,组织的API网关是组织中所有用户访问区块链节点的统一入口,客户端的请求需通过API网关才能访问到区块链节点。
另外,如果允许一个组织的用户直接访问其他组织的区块链节点,会造成网络通信复杂且不安全,因此,API网关还可以转发不同组织之间的访问请求。相对于区块链节点,API网关不存储账本数据等机密信息,相对更加安全,用户也无法从API网关中直接获取账本信息。
如图6所示,在该实施例中,所述区块链身份管理***还包括API网关M400,所述API网关M400用于接收到客户端M300的交易请求时,将客户端M300提交的交易请求映射为智能合约调用,并将智能合约方法名和参数返回至所述客户端M300;所述客户端M300根据所述智能合约方法名和参数生成交易提案。
在该实施例中,所述客户端将交易提案和签名请求通过所述通信通道发送至所述身份管理服务器之前,还包括如下步骤:
所述客户端向API网关提交交易请求;
所述API网关将客户端提交的交易请求映射为智能合约调用,并将智能合约方法名和参数返回至所述客户端;
所述客户端根据所述智能合约方法名和参数生成交易提案。
进一步地,所述客户端接收到所述硬件安全模块签名后的交易提案后,将签名后的交易提案通过所述API网关发送至区块链节点。
由于本发明中API网关不存储用户隐私数据,用户隐私数据都存储在更加安全的硬件安全模块,因此,不用担心API受攻击而泄露用户密钥等隐私数据的问题。另外,API网关只负责将客户端M300提交的交易请求映射为智能合约调用,相比于现有技术的API网关大大降低了负载。而硬件安全模块相对于API网关来说,不仅安全级别更高,而且可以满足密钥生成、密钥分享、加密数据的追溯等等与身份管理相关的其他需求。
进一步地,在该实施例中,所述客户端根据所述智能合约方法名和参数生成交易提案,包括如下步骤:
所述客户端生成交易的全局唯一标识符;所述客户端根据所述全局唯一标识符、所述智能合约方法名和参数生成交易提案。
由于每一个交易提案拥有全局唯一的ID并且具有用户签名,区块链节点可以识别重复的交易提案ID,攻击者无法篡改ID,也就无法进行重放攻击。如果攻击者篡改ID,用户签名将与交易提案的内容不符,交易提案无效,如果攻击者重复发送交易提案,区块链节点将识别出重复的交易提案ID。
进一步地,可以使用盲签名(Blind Signature)技术,使得交易提案的信息对硬件安全模块和身份管理服务器也完全保密。盲签名技术指的是消息发送者先将消息盲化,然后让签名者对盲化消息进行签名,最后消息拥有者对签名去盲因子,得到签名者关于原消息的签名。因此,所述客户端将交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块之前,还包括如下步骤:
所述客户端将所述交易提案进行盲化处理,得到盲化的交易提案;
所述客户端在接收到硬件安全模块进行签名后的交易提案后,将所述签名去盲因子后得到硬件安全模块对原交易提案(未盲化之前的交易提案)的签名,将该签名与所述交易提案发送至区块链节点。
下面结合图6来具体介绍本发明一实施例的区块链用户身份管理方法的工作流程。
S1:客户端M300提交交易请求至API网关M400;
S2:API网关M400将客户端M300提交的请求映射为智能合约调用,并异步返回需要调用的智能合约方法和参数;
S3:客户端M300生成全局唯一的交易ID,此ID可以避免交易提案被恶意地多次发送给区块链节点M500,即避免重放攻击;
S4:客户端M300将智能合约的方法名、参数、交易ID作为交易提案通过安全通道发送到身份管理服务器M100;
S5:身份管理服务器M100通过专属网络或其他安全渠道与硬件安全模块M200通信,硬件安全模块M200使用客户端M300的签名密钥对交易提案签名,并返回给客户端M300;
S6:客户端M300将签名后的交易提案发送至API网关M400;
S7:API网关M400将签名后的交易提案发送至区块链节点M500。
下面以一个具体实例来进一步介绍上述区块链用户身份管理方法的工作流程。
(1)首先,客户端向API网关发送如下请求:
“Transfer$100from A to B”
(2)API网关将交易请求映射为智能合约调用的方法及参数,如下:
[transfer(),$100,A,B]
(3)客户端生成唯一的交易ID:0x01,然后生成交易提案:
[0x01,transfer(),$100,A,B]
由于具有全局唯一的交易ID,可以阻挡重放攻击。
(4)客户端将交易提案发送至身份管理服务器请求签名,在发送时可以使用盲签名技术对硬件安全模块隐藏信息;
(5)硬件安全模块签名后返回给客户端:
{[0x01,transfer(),$100,A,B],Sig}
(6)客户端将签名后的交易提案发送至API网关;
(7)API网关将签名后的交易提案发送至区块链节点,全局唯一的交易提案ID可以保证本交易提案只会被区块链节点接受一次。
本发明实施例还提供一种物理网数据处理设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的区块链用户身份管理方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为方法、***或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图7来描述根据本发明的这种实施方式的电子设备600。图7显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元840、连接不同***组件(包括存储单元840和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
所述存储单元840可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8401和/或高速缓存存储单元8402,还可以进一步包括只读存储单元(ROM)8403。
所述存储单元840还可以包括具有一组(至少一个)程序模块8405的程序/实用工具8404,这样的程序模块8405包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的区块链用户身份管理方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图8所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明所提供的区块链用户身份管理方法、***、设备及存储介质,具有如下有益效果:
(1)引入硬件安全模块管理区块链用户身份凭据,在硬件安全模块上实现用户身份凭据的生成、使用和管理功能,保证用户身份凭据安全;
(2)重新设计了区块链用户发送交易请求的工作流程,用户无需自行操作签名过程或管理身份凭据,由硬件安全模块进行签名等操作,客户端可以采用盲签名技术,使得提案信息对硬件安全模块也完全保密;
(3)每一个交易提案可以拥有全局唯一标识符且有用户签名,区块链节点可以识别重复的交易ID,攻击者无法篡改ID,也无法进行重放攻击,因此通过全局唯一标识符避免重放攻击,保证用户签名的交易提案被正确使用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***、设备和计算机存储介质的实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见***实施例的部分说明即可。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (15)
1.一种区块链用户身份管理方法,其特征在于,包括如下步骤:
客户端与身份管理服务器建立第一通信通道;
所述客户端将用户的交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块;
所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,并将签名后的交易提案通过所述身份管理服务器返回至所述客户端;
所述客户端将签名后的交易提案发送至区块链节点。
2.根据权利要求1所述的区块链用户身份管理方法,其特征在于,所述客户端与身份管理服务器建立第一通信通道,包括如下步骤:
所述客户端发送通信请求至所述身份管理服务器;
所述身份管理服务器对所述客户端进行身份验证,如果验证成功,则建立所述客户端与所述身份管理服务器之间的第一通信通道。
3.根据权利要求2所述的区块链用户身份管理方法,其特征在于,所述身份管理服务器对所述客户端的身份验证成功之后,返回服务器身份认证信息至所述客户端,所述客户端对所述服务器身份认证信息进行验证,如果验证成功,则建立所述客户端与所述身份管理服务器之间的第一通信通道。
4.根据权利要求2所述的区块链用户身份管理方法,其特征在于,所述客户端将交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块,包括如下步骤:
所述客户端将交易提案和签名请求发送至所述身份管理服务器;
所述身份管理服务器从所述签名请求中提取硬件安全模块的识别信息,并将交易提案和签名请求发送至对应的硬件安全模块。
5.根据权利要求1所述的区块链用户身份管理方法,其特征在于,所述客户端与身份管理服务器建立第一通信通道之后,还包括如下步骤:
所述客户端将用户的通信请求在第一通信通道中通过所述身份管理服务器发送至所述硬件安全模块;
所述硬件安全模块对用户的通信请求进行身份验证,如果验证通过,则建立用户与所述硬件安全模块之间的第二通信通道。
6.根据权利要求5所述的区块链用户身份管理方法,其特征在于,所述硬件安全模块对用户的通信请求进行身份验证成功后,通过所述身份管理服务器返回硬件安全模块身份认证信息至所述客户端,所述客户端接收用户对所述硬件安全模块的身份验证结果,如果验证成功,则建立用户与所述硬件安全模块之间的第二通信通道。
7.根据权利要求5所述的区块链用户身份管理方法,其特征在于,所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,包括如下步骤:
所述客户端将交易提案和签名请求在第二通信通道中通过所述身份管理服务器发送至所述硬件安全模块;
所述硬件安全模块从签名请求中提取用户信息,所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名。
8.根据权利要求1所述的区块链用户身份管理方法,其特征在于,所述客户端将交易提案和签名请求通过所述通信通道发送至所述身份管理服务器之前,还包括如下步骤:
所述客户端向API网关提交交易请求;
所述API网关将客户端提交的交易请求映射为智能合约调用,并将智能合约方法名和参数返回至所述客户端;
所述客户端根据所述智能合约方法名和参数生成交易提案。
9.根据权利要求8所述的区块链用户身份管理方法,其特征在于,所述客户端将签名后的交易提案发送至区块链节点,包括如下步骤:
所述客户端将签名后的交易提案通过所述API网关发送至区块链节点。
10.根据权利要求8所述的区块链用户身份管理方法,其特征在于,所述客户端根据所述智能合约方法名和参数生成交易提案,包括如下步骤:
所述客户端生成交易的全局唯一标识符;
所述客户端根据所述全局唯一标识符、所述智能合约方法名和参数生成交易提案。
11.根据权利要求1所述的区块链用户身份管理方法,其特征在于,所述客户端将交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块之前,还包括如下步骤:
所述客户端将所述交易提案进行盲化处理,得到盲化的交易提案;
所述客户端将盲签名后的交易提案发送至区块链节点,包括如下步骤:
所述客户端将所述签名去盲因子后与所述交易提案发送至区块链节点。
12.一种区块链用户身份管理***,其特征在于,采用权利要求1至11中任一项所述的区块链用户身份管理方法,所述***包括身份管理服务器、硬件安全模块和客户端,其中:
所述客户端与身份管理服务器建立第一通信通道;
所述客户端将用户的交易提案和签名请求通过所述身份管理服务器发送至硬件安全模块;
所述硬件安全模块选择相应的用户密钥对所述交易提案进行签名,并将签名后的交易提案通过所述身份管理服务器返回至所述客户端;
所述客户端将签名后的交易提案发送至区块链节点。
13.根据权利要求12所述的区块链用户身份管理***,其特征在于,所述***还包括API网关,所述API网关用于接收到客户端的交易请求时,将客户端提交的交易请求映射为智能合约调用,并将智能合约方法名和参数返回至所述客户端;所述客户端根据所述智能合约方法名和参数生成交易提案。
14.一种区块链用户身份管理设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至11中任一项所述的区块链用户身份管理方法的步骤。
15.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至11中任一项所述的区块链用户身份管理的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811085910.9A CN109389498A (zh) | 2018-09-18 | 2018-09-18 | 区块链用户身份管理方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811085910.9A CN109389498A (zh) | 2018-09-18 | 2018-09-18 | 区块链用户身份管理方法、***、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109389498A true CN109389498A (zh) | 2019-02-26 |
Family
ID=65418736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811085910.9A Pending CN109389498A (zh) | 2018-09-18 | 2018-09-18 | 区块链用户身份管理方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109389498A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109961288A (zh) * | 2019-03-22 | 2019-07-02 | 北京沃东天骏信息技术有限公司 | 基于盲签名的交易方法及装置 |
CN110096861A (zh) * | 2019-04-12 | 2019-08-06 | 檀鹏程 | 一种基于生物特征的双向分布式身份验证*** |
CN110572460A (zh) * | 2019-09-11 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 基于区块链***的数据传输方法、装置及计算机设备 |
CN111092958A (zh) * | 2019-12-27 | 2020-05-01 | 深圳市网心科技有限公司 | 一种节点接入方法、装置、***及存储介质 |
CN111489157A (zh) * | 2020-03-19 | 2020-08-04 | 北京锐格信安技术有限公司 | 一种控制区块链交易的方法和*** |
WO2020182151A1 (zh) * | 2019-03-11 | 2020-09-17 | 上海唯链信息科技有限公司 | 用于拆分和恢复密钥的方法、程序产品、存储介质和*** |
CN113360575A (zh) * | 2021-06-10 | 2021-09-07 | 广东浪潮智慧计算技术有限公司 | 联盟链中交易数据的监管方法、装置、设备及存储介质 |
CN113553605A (zh) * | 2021-06-25 | 2021-10-26 | 北京八分量信息科技有限公司 | 一种基于区块链的去中心认证*** |
CN114245976A (zh) * | 2019-08-07 | 2022-03-25 | 戴姆勒股份公司 | 初始设置机器数据通信网络的方法和替换硬件部件的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038639A (zh) * | 2017-03-07 | 2017-08-11 | 杭州公链网络技术有限公司 | 一种兼容多资产类型快速交易的联盟链构建方法 |
CN107342866A (zh) * | 2017-06-30 | 2017-11-10 | 上海策赢网络科技有限公司 | 电子文书验证方法、设备及*** |
CN107391944A (zh) * | 2017-07-27 | 2017-11-24 | 北京太云科技有限公司 | 一种基于区块链的电子病历共享*** |
CN107547514A (zh) * | 2017-07-17 | 2018-01-05 | 招商银行股份有限公司 | 身份认证方法、***及计算机可读存储介质 |
CN107683489A (zh) * | 2015-06-26 | 2018-02-09 | 英特尔公司 | 用于在受信任执行环境中执行加密操作的***、装置和方法 |
CN107710258A (zh) * | 2015-03-27 | 2018-02-16 | 黑金币公司 | 用于个人识别和验证的***和方法 |
CN107851111A (zh) * | 2015-05-05 | 2018-03-27 | 识卡公司 | 使用区块链的身份管理服务 |
-
2018
- 2018-09-18 CN CN201811085910.9A patent/CN109389498A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107710258A (zh) * | 2015-03-27 | 2018-02-16 | 黑金币公司 | 用于个人识别和验证的***和方法 |
CN107851111A (zh) * | 2015-05-05 | 2018-03-27 | 识卡公司 | 使用区块链的身份管理服务 |
CN107683489A (zh) * | 2015-06-26 | 2018-02-09 | 英特尔公司 | 用于在受信任执行环境中执行加密操作的***、装置和方法 |
CN107038639A (zh) * | 2017-03-07 | 2017-08-11 | 杭州公链网络技术有限公司 | 一种兼容多资产类型快速交易的联盟链构建方法 |
CN107342866A (zh) * | 2017-06-30 | 2017-11-10 | 上海策赢网络科技有限公司 | 电子文书验证方法、设备及*** |
CN107547514A (zh) * | 2017-07-17 | 2018-01-05 | 招商银行股份有限公司 | 身份认证方法、***及计算机可读存储介质 |
CN107391944A (zh) * | 2017-07-27 | 2017-11-24 | 北京太云科技有限公司 | 一种基于区块链的电子病历共享*** |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020182151A1 (zh) * | 2019-03-11 | 2020-09-17 | 上海唯链信息科技有限公司 | 用于拆分和恢复密钥的方法、程序产品、存储介质和*** |
CN109961288A (zh) * | 2019-03-22 | 2019-07-02 | 北京沃东天骏信息技术有限公司 | 基于盲签名的交易方法及装置 |
CN109961288B (zh) * | 2019-03-22 | 2022-04-26 | 北京沃东天骏信息技术有限公司 | 基于盲签名的交易方法及装置 |
CN110096861A (zh) * | 2019-04-12 | 2019-08-06 | 檀鹏程 | 一种基于生物特征的双向分布式身份验证*** |
CN114245976B (zh) * | 2019-08-07 | 2024-05-03 | 梅赛德斯-奔驰集团股份公司 | 初始设置机器数据通信网络的方法和替换硬件部件的方法 |
CN114245976A (zh) * | 2019-08-07 | 2022-03-25 | 戴姆勒股份公司 | 初始设置机器数据通信网络的方法和替换硬件部件的方法 |
CN110572460B (zh) * | 2019-09-11 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 基于区块链***的数据传输方法、装置及计算机设备 |
CN110572460A (zh) * | 2019-09-11 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 基于区块链***的数据传输方法、装置及计算机设备 |
CN111092958A (zh) * | 2019-12-27 | 2020-05-01 | 深圳市网心科技有限公司 | 一种节点接入方法、装置、***及存储介质 |
CN111489157A (zh) * | 2020-03-19 | 2020-08-04 | 北京锐格信安技术有限公司 | 一种控制区块链交易的方法和*** |
CN111489157B (zh) * | 2020-03-19 | 2023-10-27 | 深圳艾贝链动科技有限公司 | 一种控制区块链交易的方法和*** |
CN113360575A (zh) * | 2021-06-10 | 2021-09-07 | 广东浪潮智慧计算技术有限公司 | 联盟链中交易数据的监管方法、装置、设备及存储介质 |
CN113360575B (zh) * | 2021-06-10 | 2024-02-13 | 广东浪潮智慧计算技术有限公司 | 联盟链中交易数据的监管方法、装置、设备及存储介质 |
CN113553605A (zh) * | 2021-06-25 | 2021-10-26 | 北京八分量信息科技有限公司 | 一种基于区块链的去中心认证*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109389498A (zh) | 区块链用户身份管理方法、***、设备及存储介质 | |
CN108305170A (zh) | 基于区块链的外部服务访问方法、***、设备及存储介质 | |
CN109242456A (zh) | 区块链跨链交易方法、***及存储介质 | |
CN104168304B (zh) | Vdi环境下的单点登录***及方法 | |
CN107148019B (zh) | 一种用于连接无线接入点的方法与设备 | |
CN105659520A (zh) | 用于保护私有数据的安全代理 | |
CN107113319A (zh) | 一种虚拟网络计算认证中应答的方法、装置、***和代理服务器 | |
CN107124433A (zh) | 物联网***、物联网设备访问方法、访问授权方法及设备 | |
CN105229987A (zh) | 主动联合的移动认证 | |
Chen et al. | Exploiting 5G and blockchain for medical applications of drones | |
CN112134956A (zh) | 一种基于区块链的分布式物联网指令管理方法和*** | |
US20140208406A1 (en) | Two-factor authentication | |
CN110267270A (zh) | 一种变电站内传感器终端接入边缘网关身份认证智能合约 | |
CN101582856A (zh) | 一种门户服务器与宽带接入设备的会话建立方法及其*** | |
CN109743373A (zh) | 终端的远程协助方法、设备、***和介质 | |
Vidalis et al. | Assessing identity theft in the Internet of Things | |
Chen et al. | Internet of Things (IoT) authentication and access control by hybrid deep learning method-a study | |
CN108881486A (zh) | 基于可信技术的智能网联汽车远程通信方法及*** | |
Puthal et al. | Decision tree based user-centric security solution for critical IoT infrastructure | |
CN108600234A (zh) | 一种身份验证方法、装置和移动终端 | |
CN114584386B (zh) | 全局多级加密网络通信方法 | |
CN108156092A (zh) | 报文传输控制方法和装置 | |
CN114781006A (zh) | 基于区块链和sgx的外包数据完整性审计方法及*** | |
Wu et al. | Internet of Things Security | |
CN110474922A (zh) | 一种通信方法、pc***及接入控制路由器 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190226 |