CN108701308B - 用于基于区块链发布公共证书的系统、及使用该系统的用于基于区块链发布公共证书的方法 - Google Patents

用于基于区块链发布公共证书的系统、及使用该系统的用于基于区块链发布公共证书的方法 Download PDF

Info

Publication number
CN108701308B
CN108701308B CN201680081617.8A CN201680081617A CN108701308B CN 108701308 B CN108701308 B CN 108701308B CN 201680081617 A CN201680081617 A CN 201680081617A CN 108701308 B CN108701308 B CN 108701308B
Authority
CN
China
Prior art keywords
specific
information
registration
hash
node
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.)
Active
Application number
CN201680081617.8A
Other languages
English (en)
Other versions
CN108701308A (zh
Inventor
鱼浚善
洪载佑
宋周翰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cp Laboratory Co ltd
Original Assignee
Coinplug Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from KR1020160038068A external-priority patent/KR101680260B1/ko
Application filed by Coinplug Inc filed Critical Coinplug Inc
Priority claimed from PCT/KR2016/011293 external-priority patent/WO2017171165A1/ko
Publication of CN108701308A publication Critical patent/CN108701308A/zh
Application granted granted Critical
Publication of CN108701308B publication Critical patent/CN108701308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种用于基于区块链发布公共证书的系统以及一种基于区块链发布公共证书的方法,所述系统包括:用户终端(100);用于基于区块链请求发布公共证书的服务器(200);用于基于区块链管理公共证书的服务器(300);以及具有区块链的服务器(400)。

Description

用于基于区块链发布公共证书的系统、及使用该系统的用于 基于区块链发布公共证书的方法
技术领域
本发明涉及基于包括多个区块链节点的区块链发布公共证书的方法;更具体地,涉及包括如下步骤的方法以及使用该方法的系统:步骤S100,用户终端向请求基于区块链发布公共证书的发布请求服务器发送用于发布公共证书的特定个人信息,其中,所述特定个人信息包括所述发布所需的用户识别信息;步骤S110,发布请求服务器确认接收到的特定个人信息,创建用于引导公共证书的特定私钥和公共证书的特定公钥的创建的生成引导信号,并向请求了发布的用户终端发送生成引导信号;步骤S120,如果接收到生成引导信号,则用户终端管理钥生成引擎以生成特定公钥和特定私钥,并向发布请求服务器发送特定公钥;步骤S130,发布请求服务器接收特定公钥并向用于管理公共证书的证书管理服务器发送用于登记每个用户的公共证书的登记请求信号,所述登记请求信号包括特定个人信息和特定公钥;步骤S140,证书管理服务器将所接收到的登记请求信号中包含的特定个人信息和特定公钥按顺序且累积地保存在包含关于公共证书的登记的信息的用于登记信息的DB中;步骤S150,证书管理服务器确认是否满足条件中的一个条件,其中所述条件包括(i)数字条件和(ii)时间条件,并且其中,数字条件表示如下条件:确定对的数量是否达到创建根散列值(root hash value)所需的数量,所述对包括特定用户的个人信息和特定公钥的特定对、以及关联用户的个人信息和关联公钥的其他对,并且其中,时间条件表示以下条件:以预定间隔完成每个默克尔树(Merkle tree);步骤S210,如果满足条件中的所述一个条件,则证书管理服务器操作证书管理服务器的第一散列引擎以按顺序使对中的每个对散列,从而获取特定默克尔树中的每个节点散列信息,并通过使用所述每个节点散列信息获得用于登记公共证书的、用于登记的特定根散列值;步骤S220,证书管理服务器操作交易处理引擎以创建(i)包括用于登记的特定根散列值的、用于监控伪造的特定交易信息、以及(ii)用作用于取得用于监控伪造的特定交易信息的关键值的、用于监控伪造的特定交易ID,并将用于监控伪造的特定交易信息发送至区块链;以及步骤S230,区块链将所接收的监控伪造用的特定交易信息记录在其中,从而完成发布。
背景技术
一般而言,公共证书是由证书颁发机构(CA)发布的电子信息,其用于确认用户身份、并且防止在各种工业领域中使用服务时交易否认或文档的伪制和伪造、表示一种数字交易的印鉴的证明。这样的证书包含版本、序列号、有效期限、证书的发布机构、关于用户的电子签名的验证的信息、用户的姓名、关于身份确认的信息、电子签名方法等。
在公钥基础设施(PKI)中使用该证书(参考引用的专利文献1)作为标准安全方法。
PKI是一组创建、管理、分发、使用、存储和撤消证书以及管理公钥加密所需的角色、策略和程序。
然而,在PKI中,用于解密的私钥由仅仅是第三方而不是用户的CA生成和提供,因此它可以被黑客攻击,并且由于用户的私钥以文件的形式存在于通过基于软件令牌的存储方法标准化的存储位置处,因此容易复制并自动收集私钥文件,并且这具有由泄露的私钥导致财务损失和用户信息盗窃的风险。因此,向用户提供所生成的私钥的CA必须具有高安全性的证书发布系统以使黑客攻击最小化,这需要操作和维护,并因此导致发布成本高。
此外,出于通过Web浏览器的用户认证过程的附加安全性的目的,只有当ActiveX控件被预先安装时,才能使用公共证书。然而,要将ActiveX控件安装到个人计算机(PC)上,必须降低PC的安全级别以使ActiveX控件访问包括文件、登记表等的资源。由于Active X控件导致用户PC的安全级别降低,因此PC变得容易受到黑客等危险环境的影响。
与公共证书相关联的每个问题从申请人由基于区块链的公共证书发布系统(参照引用的专利文献2)及使用该公共证书发布系统的方法,并且通过基于区块链的公共证书认证系统及使用该公共证书认证系统的方法解决。
传统的基于区块链的公共证书发布系统及使用该公共证书发布系统的方法、以及传统的基于区块链的公共证书认证系统及使用该公共证书认证系统的方法公开了在由用户操作的用户装置内直接生成用于公共证书的公钥和私钥的方法,用户装置在网络断开时生成公钥和私钥,通过存储和管理与照片图像一起加密的私钥和由该用户选择的密码来防止钥的可能的泄漏,并且即使没有ActiveX控件也执行认证,其中,需要维护的公钥通过使用基于对等网络(P2P)的分布式数据库而不是由CA管理的服务器,在区块链服务器中的数字钱包的区块链中存储和管理,从而使具有高度安全性以防止黑客攻击的公共证书发布系统的维护所需的额外成本最小化。
尽管有这些优点,传统的基于区块链的认证证书发布系统和方法、以及传统的基于区块链的认证证书认证系统和方法需要存储和管理公共证书的认证所需的公共证书的公钥的发布的初始成本。
初始成本约为0.0001比特币,截至2015年7月,0.0001比特币大约只有4美分,然而,每次发布基于区块链的公共证书时都会收取这笔费用,因此这成为一个问题,因为发布的成本与发布的增加成比例增长。
此外,传统的认证证书发布系统和方法以及传统的认证证书认证系统和方法在超过10万个区块链节点中登记、存储和管理公钥以防止公钥的伪造。
也就是说,包括公钥的交易信息的广播通过协议来定义,并且如果产生包括公钥的交易信息,则一个节点即区块链节点将包括公钥的初始交易信息传播到八个指定的节点,则接收到信息的八个指定节点中的每个节点以金字塔方式再次传播到另外八个指定节点,并且当信息被发送到具有包含比特币支付所需的区块链的数字钱包的所有区块链节点时完成传播。
由于这些原因,传统的认证证书发布系统和方法、以及传统的认证证书认证系统和方法在登记公钥的请求涌入时具有由于包括公钥的交易信息的流量导致的网络过载、以及因为包括存储在区块链节点中的公钥的交易信息公开而暴露钥的风险。
[现有技术]
[引用的专利文献]
引用的专利文献1:2003年12月3日登记的韩国专利公开No.10-0411448
引用的专利文献2:2015年8月3日提交的韩国专利公开No.10-2015-0109320
发明内容
本发明的目的是解决所有的上述问题。本发明的另一个目的是提供一种消除构建成本的方法,构建准备与高级安全系统链接以在黑客入侵时尽可能地阻止黑客行为的用于发布公共证书的系统的成本,由于在需要维护的用于公共证书的公钥的情况下,通过基于对等(P2P)网络的分布式数据库在区块链上保存和管理而不是在证书颁发机构(CA)操作服务器上保存和管理,以基于区块链去除诸如构建的用于发布公共证书的系统的操作和维护成本的系统相关成本,并且在发布公共证书时大大降低发布成本。
本发明的另一个目的是将特定用户的用于公共证书的特定公钥绑定与预定数量的公钥一样多,以压缩绑定的一个或多个特定公钥,并登记包括压缩的特定用户的特定公钥列表的特定交易信息,从而使流量产生最小化,由此在发布公共证书的过程中将特定交易信息登记到区块链的同时最小化网络过载,特定交易信息包括特定用户的公钥。
本发明的另一个目的是执行公共证书的发布公共证书时的认证处理,同时不将特定用户的特定公钥登记到区块链中,并且能够监控包括特定用户的特定公钥的公共认证相关信息的伪造和作假。
根据本发明的一个方面,提供一种用于基于区块链发布公共证书的系统,该系统包括:用户终端,生成用于公共证书的特定公钥和用于公共证书的特定私钥,并且发送发布公共证书所需的特定公钥和包括关于特定用户的个人信息的用于发布公共证书的特定个人信息;发布请求服务器,从用户终端接收特定个人信息和特定公钥,并且发送用于登记包括特定个人信息和特定公钥的每个用户的公共证书的登记请求信号;证书管理服务器,(i)针对每个用户,将来自发布请求服务器的用于登记信息的登记请求信号中包含的特定公钥和特定个人信息按顺序且累积地存储在用于登记信息的DB中,(ii)如果满足条件中的一个条件,则指示其第一散列引擎按顺序使每个特定公钥和特定个人信息对散列,从而获取特定默克尔树中的每个节点散列信息,(iii)通过使用每个节点散列信息获得用于特定默克尔树的公共证书的登记的至少一个特定根散列值,(iv)指示其交易处理引擎生成(iv-1)包括至少一个特定根散列值的、用于监控伪造的交易信息、以及(iv-2)用作用于取得用于监控伪造的交易信息的关键值的、用于监控伪造的交易ID,(v)发送用于监控伪造的交易信息;以及区块链,包括区块链节点,存储从证书管理服务器接收的用于监控伪造的交易信息,其中,如果接收到用于加密货币支付的交易信息,则区块链节点通过用于加密货币支付的交易信息的验证来授权加密货币支付,并通过参照授权处理的结果将用于加密货币支付的交易信息存储在区块链中;其中,所述条件包括:(i)数字条件,表示确定对的数量是否达到创建根散列值所需的数量的条件,所述对包括(i-1)特定用户的个人信息和特定公钥的特定对、以及(i-2)关联用户的个人信息和关联公钥的其他对;以及(ii)时间条件,表示以预定间隔完成每个默克尔树的条件。
根据本发明的另一方面,提供一种基于包括多个区块链节点的区块链发布公共证书的方法,包括:步骤S100,用户终端发送用于发布公共证书的特定个人信息到请求基于区块链发布公共证书的发布请求服务器,其中,特定个人信息包括发布所需的用户识别信息;步骤S110,发布请求服务器确认接收到的特定个人信息,创建用于引导用于公共证书的特定私钥和用于公共证书的特定公钥的创建的生成引导信号,并将生成引导信号发送给请求发布的用户终端;步骤S120,如果接收到生成引导信号,则用户终端管理钥生成引擎以生成特定公钥和特定私钥,并将特定公钥发送给发布请求服务器;步骤S130,发布请求服务器接收特定公钥并将用于登记每个用户的公共证书的登记请求信号发送给用于管理公共证书的证书管理服务器,所述登记请求信号包括特定个人信息和特定公钥;步骤S140,证书管理服务器将所接收的登记请求信号中包括的特定个人信息和特定公钥按顺序且累积地保存在包含关于公共证书的登记的信息的、用于登记信息的DB中;步骤S150,证书管理服务器确认是否满足条件中的一个条件,其中,所述条件包括(i)数字条件和(ii)时间条件,并且其中,所述数字条件表示如下条件:确定对的数量是否达到创建根散列值所需的数量,所述对包括特定用户的个人信息和特定公钥的特定对、以及关联用户的个人信息和关联公钥的其他对,并且其中,所述时间条件表示如下条件:以预定间隔完成每个默克尔树;步骤S210,如果满足条件中的所述一个条件,则证书管理服务器操作证书管理服务器的第一散列引擎按顺序使对中的每个对散列,从而获取特定默克尔树中的每个节点散列信息,并通过使用每个节点散列信息获得用于登记公共证书的、用于登记的特定根散列值;步骤S220,证书管理服务器操作交易处理引擎创建(i)包括用于登记的特定根散列值的、用于监控伪造的特定交易信息、以及(ii)用作取得用于监控伪造的特定交易信息的关键值的、用于监控伪造的特定交易ID,并将用于监控伪造的特定交易信息发送至区块链;以及步骤S230,区块链将所接收的用于监控伪造的特定交易信息记录在其中,从而完成发布。
附图说明
根据下面结合附图给出的优选实施例的描述,本发明的上述和其它目的和特征将变得显而易见,其中:
图1是示出根据本发明的用于基于区块链发布公共证书的系统的框图;
图2是示出根据本发明的用于基于区块链发布公共证书的系统的用户终端的详细构成的框图;
图3是示出根据本发明的用于基于区块链发布公共证书的系统的发布请求服务器的详细构成的框图;
图4是示出根据本发明的用于基于区块链发布公共证书的系统的证书管理服务器的详细构成的框图;
图5至图8是示出根据本发明的通过使用用于基于区块链发布公共证书的系统来发布公共证书的处理的序列图;
图9是示出根据本发明的用于基于区块链认证公共证书的系统的框图;
图10是示出根据本发明的用于基于区块链认证公共证书的系统的认证请求服务器的详细构成的框图;
图11至图17是示出根据本发明的通过使用用于基于区块链认证公共证书的系统来认证公共证书的处理的序列图。
具体实施方式
下面将通过参照关于实施例的配置和效果的附图来充分详细地描述本发明的下面的实施例,并且在附图中,贯穿几个视图,相同的附图标记指代相同或相似的功能。在整个说明书中,可以省略用于指定对应于特定用户的对象的术语“特定”。
本发明包括基于区块链的用于发布公共证书的部分和用于认证公共证书的部分。
这里,图1至图8可以说明用于基于区块链发布公共证书的系统,区块链可以是第一部分的一部分。
如图所示,根据本发明的用于基于区块链发布公共证书的系统可以包括用户终端100、发布请求服务器200、证书管理服务器300以及区块链节点400。
首先,用户终端100可以生成用于公共证书的特定公钥和用于公共证书的特定私钥,可以发送用于发布公共证书的特定公钥和特定个人信息。这里,特定个人信息可以包括特定用户的姓名、特定用户的出生日期、特定用户的电话号码以及特定用户的电子邮件地址中的至少一者。
执行这种功能的用户终端100可以包括:用于生成特定公钥和特定私钥的钥生成引擎110;存储所生成的特定私钥的存储器120;加密引擎130;散列引擎140;解密引擎160;以及管理钥生成引擎110、加密引擎130、散列引擎140和解密引擎160的控制部150。
如果用户终端100是台式计算机(例如PC)形式,则钥生成引擎110、加密引擎130、散列引擎140和解密引擎160可以以应用程序的形式加载,如果用户终端100是能够访问因特网的诸如智能电话的移动装置,则这些引擎可以以专用于移动装置的应用程序的形式加载。
在生成特定公钥和特定私钥之前,用户终端100可以确认操作用户终端100的特定用户是否已经将特定用户识别信息登记在发布请求服务器200中。
为了这样做,DB部分210可以被加载在发布请求服务器200上,并且关于操作用户终端100的特定用户的特定用户识别信息被保存在DB部分210,DB部分210也可以包括包含与特定用户识别信息匹配的特定个人信息的识别信息DB 211。
然后,用户终端100可以将特定个人信息发送到发布请求服务器200以请求公共证书的发布。发布请求服务器200可以将接收到的特定用户个人信息与存储在识别信息DB211中的信息进行比较,如果存在相同的信息,则可以生成引导特定公钥和特定私钥的生成的生成引导信号并将其发送给用户终端100。
如果从发布请求服务器200接收到生成引导信号,则用户终端100可以指示钥生成引擎110生成特定公钥和特定私钥,其中用户终端100可以允许在网络断开连接时生成特定公钥和特定私钥以防止钥的可能的泄漏。
发布请求服务器200可以从用户终端100接收特定个人信息和特定公钥,并且可以发送包括特定个人信息和特定公钥的用于登记每个用户的公共证书的登记请求信号到用于管理稍后描述的公共证书的证书管理服务器300。
这里,发布请求服务器200可以包括其散列引擎220,散列引擎220可以使特定个人信息散列,从而获取用户识别散列信息并将其发送到证书管理服务器300。
具有这种功能的发布请求服务器200可以是其服务需要公共证书的公司的服务器,如银行或证券公司的服务器、政府机构的服务器或在线互联网购物中心的服务器。
证书管理服务器300可以针对每个用户,将来自发布请求服务器200的登记请求信号中包括的公钥和个人信息按顺序且累积地存储在用于登记信息的DB 311中,如果满足条件中的一个条件,则可以指示其第一散列引擎320按顺序使对中的每个对散列,以获取特定默克尔树中的每个节点散列信息,并且可以通过使用所述每个节点散列信息来获得用于公共证书的登记的特定根散列值,可以指示其交易处理引擎320生成(i)包括用于登记的特定根散列值的、用于监控伪造的交易信息、以及(ii)用作用于取得用于监控伪造的交易信息的关键值的、用于监控伪造的交易ID,并且可以发送用于监控伪造的交易信息。这里,所述条件可以包括(i)数字条件和(ii)时间条件,其中,数字条件表示确定包括特定用户的个人信息和特定公钥的特定对以及关联用户的个人信息和关联公钥的其他对的对的数量是否达到创建根散列值所需的预定数量,并且时间条件表示以预定间隔完成每个默克尔树的条件。
这里,用于登记信息的DB 311可以由DB部分310管理。
此外,除了每个用户的个人信息、以及公钥之外,用于登记信息的DB 311可以按顺序且累积地存储通过使特定个人信息和特定公钥散列而获得的基于用户的节点散列信息、以及用于登记的特定根散列值的识别信息,其中,特定根散列值是包含所存储的节点散列信息的默克尔树的根散列值。
另外,DB部分310可以包括用于监控伪造的DB 312,其中每当在交易处理引擎330生成用于监控伪造的交易信息时,用于监控伪造的交易ID与用于监控伪造的交易信息一起被生成为标识符,并且用于登记的特定根散列值的识别信息针对每个用户被累积地存储。
此外,如果满足条件中的所述一个条件,则证书管理服务器300可以重新开始存储在用于登记信息的DB 311中的特定个人信息和特定公钥的计数,由此可以允许请求公共证书的新用户被发布公共证书。
这里,条件中的所述一个条件可以是系统管理员收集包括特定对和所述其他对的、创建根散列值所需的预定数量的对的数字条件。通过压缩和处理关于用户的公共证书的信息的交易,可以使网络流量最小化并且可以减少网络过载。
这样的条件可以变化,并且可以是预定数量的节点散列信息,或者可以是在预定时间段内存储的节点散列信息的数量。
另一方面,证书管理服务器300可以监控存储在用于登记信息的DB 311中的特定个人信息和特定公钥,以在发布过程中检测伪造,从而通过检测由于黑客等非法活动造成的任何个人信息或任何公钥的伪造来作出反应。
为此,如果满足条件中的所述一个条件,则证书管理服务器300可以提取在用于监控伪造的DB 312中在特定默克尔树完成之前累积地保存的先前默克尔树的所有的先前交易ID,并且可以将先前的交易ID发送到由区块链节点400组成的区块链。
区块链节点400可以通过参照用于监控伪造的特定交易ID来从其中取得用于监控伪造的特定交易信息,可以提取用于监控伪造的特定交易信息中包括的用于登记的特定根散列值,并且可以将用于登记的特定根散列值发送到证书管理服务器300。
之后,证书管理服务器300可以接收用于登记的特定根散列值,并且可以将以对应于根散列值按顺序且累积地存储在用于登记信息的DB 311中的每个用户的公钥和个人信息的对的数量划分到预定根散列生成区间中。
之后,证书管理服务器300可以使用其散列引擎320使预定数量的公钥和个人信息对散列,从而获取用于比较的根散列值。
之后,证书管理服务器300可以将所发送的用于登记的根散列值与所生成的用于比较的根散列值相对于它们的生成顺序进行配对。
之后,证书管理服务器300可以将用于登记的根散列值的每个散列值与根据它们的生成序列对齐的用于比较的根散列值的每个散列值进行比较,并且可以确定序列中从第一个到最后一个每个散列值是否彼此相同。
如果每个散列值被确定为在每个对中彼此相同,则证书管理服务器300的散列引擎320可以确定没有发生与发布给用户的公共证书相关的信息的伪造,即,证书管理服务器300可以确定由具有相同元素的对组成的默克尔树可信,并且可以允许用于监控伪造的交易信息生成。
然而,如果存在其散列值不同的对,则证书管理服务器300可以确定发生了与公共证书有关的信息的伪造,并且可以防止用于监控伪造的交易信息被生成,并且可以执行处理伪造的处理。
此外,当由第一散列引擎320生成节点散列信息时,证书管理服务器300可以生成表示所生成的节点散列信息的保存序列的节点索引信息,并且还可以在用于登记的特定根散列值正在被生成时生成用于登记的特定根散列值的识别信息。
此外,证书管理服务器300可以针对每个用户在用于登记信息的DB 311中累积地存储节点散列信息、节点索引信息以及用于登记的特定根散列值的识别信息,并且可以进一步针对每个用户在用于监控伪造的DB 312中累积地存储用于登记的特定根散列值的识别信息。
然后,发布请求服务器200可以针对每个用户在用于监控伪造的DB 312中累积地存储在交易处理引擎320生成的用于监控伪造的交易ID,从而针对每个用户指示用于监控伪造的DB 312存储和管理用于监控伪造的交易ID以及用于登记的特定根散列值的识别信息。
另一方面,由区块链节点400组成的区块链中的根散列值彼此连接越多,伪造变得越困难。
在某个先前的根散列值已经被分配给特定的先前默克尔树的第一叶节点的条件下,证书管理服务器300可以使用第一散列引擎320来获得特定的先前默克尔树的用于登记公共证书的特定先前根散列值。
在存储在区块链节点400的区块链中的用于监控伪造的交易信息中包括的用于登记的根散列值的情况下,其结构示出了从首次登记到最后登记的根散列值的连接链,因此如果存储在区块链节点400的区块链中的用于监控伪造的交易信息的数量增加,则证书管理服务器300可使其难以通过非法活动伪造个人信息和公钥。
此外,与政府机构相关的公共证书的审计人员可以通过验证请求终端500请求审计,以确认与公共证书有关的信息是否为伪造。
为此,审计人员可以操作验证请求终端500将用于监控特定用户的公共证书的请求发送到发布请求服务器200。
之后,发布请求服务器200可以从识别信息DB 211中提取关于请求监控的特定用户的特定个人信息,并将特定个人信息发送到证书管理服务器300。
证书管理服务器300可以通过参照关于请求监控的特定用户的特定个人信息来确认用于登记信息的DB 311中是否存在特定用户的特定节点散列信息。
之后,如果特定节点散列信息不存在,则证书管理服务器300可以操作第一散列引擎320按顺序使不具有节点散列信息的每一对散列,从而获得不具有节点散列信息的对的节点散列信息。
之后,证书管理服务器300可以生成表示在第一散列引擎320生成的节点散列信息的保存序列的节点索引信息,可以获取用于登记的特定根散列值,并且可以生成用于识别所获取的用于登记的特定根散列值的、特定根散列值的识别信息。
之后,证书管理服务器300可以操作交易处理引擎320创建(i)从不具有节点散列信息的对中获取的用于监控伪造的交易信息和(ii)从不具有节点散列信息的对中获取的用作用于取得用于监控伪造的交易信息的关键值、用于监控伪造的交易ID,并将用于监控伪造的交易信息发送到区块链节点400。
由区块链节点400组成的区块链可以将所发送的用于监控伪造的交易信息存储在区块链中,即,每个区块链节点400的分布式数据库中。
然后,证书管理服务器300的第一散列引擎320可以通过参照特定默克尔树的结构和用于登记的特定根散列值的识别信息,生成用于比较的特定根散列值。
之后,证书管理服务器300可以通过参照用于登记的特定根散列值的识别信息来将用于监控伪造的交易ID发送到区块链。这里,用于监控伪造的交易ID可以被分布在全世界的任何一个区块链节点400接收,并且可以被为了效率而预先指定的节点接收。
之后,区块链节点400中的至少一个区块链节点可以通过参照用于监控伪造的交易ID从区块链的分布式DB中取得用于监控伪造的交易信息,可以提取在所取得的用于监控伪造的交易信息中包括的用于登记的特定根散列值,并且可以将用于登记的特定根散列值发送到证书管理服务器300。
之后,证书管理服务器300可以接收用于登记的特定根散列值,并且可以将所接收的用于登记的特定根散列值的散列值与用于比较的特定根散列值的散列值进行比较,从而确定特定默克尔树是否可信,也就是说,证书管理服务器可以确定两个散列值是否彼此相同。
之后,如果特定默克尔树被确定为可信,则证书管理服务器300可以允许通知第一消息,该第一消息表示向验证请求终端500请求检查的特定用户的特定个人信息和特定公钥没有被伪造。
另一方面,如果特定默克尔树被确定为不可信,则证书管理服务器300可以确认(i)将特定默克尔树确定为不可信的特定节点散列信息的保存序列与(ii)特定用户的节点散列信息的保存序列是否相同。
之后,如果(i)将特定默克尔树确定为不可信的特定节点散列信息的保存序列与(ii)特定用户的节点散列信息的保存序列相同,则证书管理服务器300可以允许第二消息被通知给验证请求终端500,其中,第二消息表示特定用户的特定个人信息和特定公钥已被伪造。
之后,如果在与用于登记的特定根散列值相对应的节点散列信息之中的将特定默克尔树确定为不可信的特定节点散列信息的保存序列与特定用户的节点散列信息的保存序列不相同,则证书管理服务器300可以允许第一消息被通知给验证请求终端500。
下面描述通过使用根据本发明的用于基于区块链发布公共证书的系统来基于区块链发布公共证书的处理。
首先,在步骤S100,用户可以经由用户终端100访问发布请求服务器200,并且可以发送用于发布的特定个人信息,从而请求发布,其中,特定个人信息包括发布所需的特定用户识别信息。
在步骤S110,发布请求服务器200可以确认所接收的特定个人信息,可以创建用于引导创建用于公共证书的特定私钥和用于公共证书的特定公钥的生成引导信号,并且可以将生成引导信号发送给请求发布的用户终端100。
在步骤S120,如果接收到生成引导信号,则用户终端100可以管理钥生成引擎110生成特定公钥和特定私钥,可以将特定私钥存储在存储器120中,并且可以将特定公钥发送给发布请求服务器200。
在步骤S130,发布请求服务器200可以接收特定公钥,可以将用于登记每个用户的公共证书的登记请求信号发送到证书管理服务器300,并且可以指示其散列引擎220使特定个人信息散列,从而获取并发送用户识别散列信息,登记请求信号包括特定个人信息和特定公钥。
在步骤S140,证书管理服务器300可以将所接收的登记请求信号中包括的特定个人信息和特定公钥按顺序且累积地存储在用于登记信息的DB 311中。
之后,在步骤S150,证书管理服务器300可以确认是否满足条件中的所述一个条件。
首先,如果不满足条件中的所述一个条件,则证书管理服务器300可以继续检查是否满足条件中的所述一个条件。
并且,在步骤S160,如果满足条件中的所述一个条件,则证书管理服务器300可以提取在用于监控伪造的DB 312中特定默克尔树完成之前已累积地保存的先前默克尔树的用于监控伪造的所有的先前交易ID,并且可以将用于监控伪造的先前交易ID发送到区块链节点400。
在步骤S170,区块链节点400可以通过参照每个所接收的所述用于监控伪造的先前交易ID,从区块链、即分布式DB中取得用于监控伪造的每个先前交易信息,并且可以提取每个所述用于监控伪造的先前交易信息中包括的用于先前公共证书的登记的每个先前根散列值。
之后,在步骤S180,区块链节点400可以将每个用于登记的先前根散列值发送到证书管理服务器300。
在步骤S190,在接收到每个所述用于登记的先前的根散列值之后,证书管理服务器300可以使从用于登记信息的DB 311中在特定默克尔树完成之前累积地保存的每个先前用户的个人信息和每个先前用户的公钥的先前对散列,从而获取每个用于比较的先前根散列值。
之后,在步骤S200,证书管理服务器300可以将每个所述用于登记的先前根散列值与每个所述用于比较的先前根散列值按顺序进行比较,从而确定先前默克尔树是否可信。
另一方面,如果先前默克尔树被确定为不可信,则证书管理服务器300可以检测到特定个人信息和特定公钥被伪造的事实,并且可以执行处理伪造的处理。
另外,如果先前的默克尔树被确定为可信,则证书管理服务器300可以指示第一散列引擎320使每个对散列,从而获取满足数字条件的对的节点散列信息。
之后,在步骤S210,证书管理服务器300可以使用第一散列引擎320来获取包括节点散列信息的默克尔树的用于登记的根散列值。
之后,在步骤S220,证书管理服务器300可以指示交易处理引擎320创建(i)从不具有节点散列信息的对中获取的用于监控伪造的交易信息、以及(ii)从不具有节点散列信息的对中获取的用作用于取得用于监控伪造的交易信息的关键值的、用于监控伪造的交易ID,并将用于监控伪造的交易信息发送到区块链节点400。
这里,在特定先前根散列值已经被分配给特定先前默克尔树的第一叶节点的条件下,证书管理服务器300可以使用第一散列引擎320来获得特定先前默克尔树的用于登记的特定先前根散列值。
在步骤S230,区块链节点400可以将所接收的用于监控伪造的特定交易信息存储在其中、即区块链节点400中的分布式DB中,由此完成发布。
此外,审计人员可以通过验证请求终端500请求审计,以确认与公共证书有关的信息是否为伪造。
为此,在步骤S251,发布请求服务器200可以指示验证请求终端500确定公共证书的监控是否被请求,在步骤S252,如果确定监控已被请求,则发布请求服务器200可以从识别信息DB 211中提取请求监控的特定用户的特定个人信息,并且可以将特定个人信息发送到证书管理服务器300。
之后,在步骤S253,证书管理服务器300可以通过参照特定个人信息来确认特定用户的特定节点散列信息是否存在于用于登记信息的DB 311中。
如果特定节点散列信息被确定为存在于DB 311中,则证书管理服务器300可以进入稍后描述的步骤S257,在步骤S257,生成用于比较的根散列信息。
之后,如果特定节点散列信息不存在,则证书管理服务器300可以操作第一散列引擎320使不具有节点散列信息的每个对散列,从而获得不具有节点散列信息的对的节点散列信息。
之后,在步骤S254,证书管理服务器300可以生成表示在第一散列引擎320生成的节点散列信息的保存序列的节点索引信息,可以获取用于登记的特定根散列值,并且可以生成用于识别所获取的用于登记的特定根散列值的、用于登记的特定根散列值的识别信息。
之后,在步骤S255,证书管理服务器300可以指示交易处理引擎320创建(i)从不具有节点散列信息的对中获取的用于监控伪造的交易信息、以及(ii)从不具有节点散列信息的对中获取的用作用于取得用于监控伪造的交易信息的关键值的、用于监控伪造的交易ID,并且可以将用于监控伪造的交易信息发送到区块链。
在步骤S256,区块链节点400可以将视频接收的用于监控伪造的交易信息存储在区块链、即分布式DB中。
然后,在步骤S257,证书管理服务器300的第一散列引擎320可以通过参照特定默克尔树的结构和用于登记的特定根散列值的识别信息来生成用于比较的特定根散列值。
之后,在步骤S258,证书管理服务器300可以通过参照用于登记的特定根散列值的识别信息将用于监控伪造的特定交易ID发送到区块链。
之后,在步骤S259,区块链节点400可以通过参照用于监控伪造的交易ID从其中、即从分布式DB中取得用于监控伪造的交易信息,可以提取用于监控伪造的交易信息中包括的用于登记的特定根散列值,并且可以将用于登记的特定根散列值发送到证书管理服务器300。
之后,在步骤S260,证书管理服务器300可以接收用于登记的特定根散列值,并且可以将所接收的用于登记的特定根散列值与用于比较的特定根散列值进行比较,从而确定特定默克尔树是否可信。
之后,在步骤S261,如果特定默克尔树被确定为可信,则证书管理服务器300可以允许通知第一消息,该第一消息表示向验证请求终端500请求监控的特定用户的特定个人信息和特定公钥未被伪造。
在步骤S262,如果用于登记的根散列值的散列值与用于比较的根散列值的散列值不同,则证书管理服务器300可以在节点散列信息中识别特定用户的节点索引信息,所述节点散列信息包括包含特定用户的节点散列信息的根散列值的默克尔树,在步骤S263,可以确认将特定默克尔树确定为不可信的特定节点散列信息的保存序列与特定用户的节点散列信息的保存序列是否相同。
在步骤S264,如果(i)将特定默克尔树确定为不可信的特定节点散列信息的保存序列与(ii)特定用户的节点散列信息的保存序列相同,则证书管理服务器300可以允许第二消息被通知给验证请求终端500,其中第二消息表示特定用户的特定个人信息和特定公钥已被伪造。
之后,在步骤S265,如果与用于登记的特定根散列值相对应的节点散列信息之中的将特定默克尔树确定为不可信的特定节点散列信息的保存序列与特定用户的节点散列信息的保存序列不相同,则证书管理服务器300可以允许第一消息被通知给验证请求终端500。
之后,在步骤S266,证书管理服务器300可以将与特定默克尔树相对应的特定对和其他对确定为不可信,特定默克尔树包括已经在用于登记信息的DB 311上累积地管理的多个特定用户的节点散列信息;并且可以执行伪造的处理。
图9至图17示出了用于基于区块链验证公共证书的方法和系统。
如图所示,根据本发明的用于基于区块链验证公共证书的系统可以包括用户终端100、认证请求服务器600、证书管理服务器300、区块链节点400以及验证请求终端500。
认证请求服务器600可以包括其随机数生成器630及其加密引擎640,并且可以响应于来自用户终端100的认证请求,通过发送关于操作用户终端100的用户的用于发布公共证书的个人信息来中继认证请求。
为此,认证请求服务器600可以包括其DB部分610。
DB部分610可以存储关于操作用户终端100用户的用户识别信息,并且可以还包括存储包含发布时使用的用户识别信息的个人信息的识别信息DB611。这里,作为散列的结果,个人信息可以以用户识别散列信息的形式存储和发送。
证书管理服务器300可以通过参照从认证请求服务器600发送的个人信息来确定公共证书的有效性,如果公钥被确定为有效,则可以将公钥发送给认证请求服务器600。
为了执行这样的功能,证书管理服务器300可以包括其DB部分310及其散列引擎320。
首先,DB部分310可以按顺序且累积地存储每个用户的个人信息、公钥以及通过使个人信息和公钥散列而获得的基于用户的节点散列信息,可以包括存储用于登记的特定根散列值的识别信息的、用于登记信息的DB 311,该特定根散列值是包含所存储的节点散列信息的默克尔树的根散列值;并且可以包括用于监控伪造的DB 312,每当生成用于监控伪造的交易信息时,将用于监控伪造的交易ID存储为与用于监控伪造的交易信息一起被生成的标识符。
基于此,证书管理服务器300通过参照所发送的个人信息来确定公共证书的有效性的处理描述如下。
首先,证书管理服务器300可以通过参照从认证请求服务器600发送的个人信息,从用于登记信息的DB 311中取得公钥,并且可以指示其散列引擎320使所取得的公钥和所发送的个人信息散列以获取用于比较的节点散列信息。
之后,证书管理服务器300可以从用于登记信息的DB 311中取得在发布公共证书时登记的用于认证的节点散列信息。
之后,证书管理服务器300可以将所取得的用于认证的节点散列信息的散列值与用于比较的节点散列信息的散列值进行比较,如果两个散列值被确定为彼此相同,则可以确定公共证书合法。
如果两个散列值被确定为彼此不相同,则证书管理服务器300可以允许拒绝消息发送到用户终端100,这表示公共证书的认证被拒绝。
通过这些处理,通过允许用户快速识别和响应伪造并防止非法用户通过黑客进行非法使用,对合法用户的损害可被最小化。
另一方面,如果特定默克尔树被确定为可信,则证书管理服务器300可以附加地从用于登记信息的DB 311中取得用于登记的特定根散列值的识别信息,该识别信息识别包括发布公共证书时登记的用于认证的节点散列信息的默克尔树的特定根散列值。
之后,证书管理服务器300可以通过参照用于登记的特定根散列值的识别信息从用于登记信息的DB 311中取得构成包括特定节点散列信息的默克尔树的所有的节点散列信息,并且可以指示其散列引擎320获取包括所取得到的节点散列信息的默克尔树的用于比较的根散列值。
另外,证书管理服务器300可以通过参照所取得到的用于登记的特定根散列值的识别信息从用于监控伪造的DB 312中取得用于监控伪造的交易ID,并且将用于监控伪造的交易ID发送到区块链节点400。
区块链节点400可以通过参照用于监控伪造的交易ID从其中、即分布式DB中取得用于监控伪造的交易信息,可以提取用于监控伪造的交易信息中包括的用于登记的特定根散列值,并且可以将用于登记的特定根散列值发送到证书管理服务器300。
证书管理服务器300可以接收用于登记的特定根散列值,并且可以将所接收的用于登记的特定根散列值与用于比较的特定根散列值进行比较,从而确定特定默克尔树是否可信,如果特定默克尔树被确定为可信,则可以认定公共证书合法。
另外,如果存在包括用于登记的根散列值的散列值和其对应的用于比较的根散列值的散列值的、不同的散列值的特定对,则证书管理服务器300可以将对应于特定默克尔树的特定对和其他对确定为不可信,并且可以执行伪造的处理,所述特定默克尔树包括已经在用于登记信息的DB 311上累积地管理的特定用户的节点散列信息。
通过这些处理,本发明提供在每次请求认证时监控与证书管理服务器300中的用户的所发布的公共证书的登记有关的信息的伪造的方法,并且使得用户能够快速识别和响应与存储在证书管理服务器300中的登记相关的信息的伪造。
之后,认证请求服务器600可以接收公钥并确定用户终端100之间用于互联网通信的协议是HTTP还是HTTPS。
这里,该协议用于在互联网上在用户的网络服务器(web server)和互联网浏览器之间传输超文本文件,并且包括HTTP(超文本传输协议)和HTTPS(安全套接字层上的超文本传输协议),这两者的区别在于正在传送的文件是否被加密。也就是说,文档在HTTP中以纯文本形式传输,在HTTPS中以加密文本形式传输。
因此,HTTP的使用环境容易受到黑客攻击,因为文档是以纯文本格式传输。
为了解决黑客攻击的风险并将用户认证为公共证书的合法用户,如果用户终端100之间的协议是HTTP,则认证请求服务器600可以指示其随机数生成器630生成随机会话钥。
之后,认证请求服务器600可以指示其加密引擎640使用有效性确认信号中包含的公钥对随机会话钥进行加密,从而获取加密的随机会话钥并将其发送给用户终端100。
用户终端100可以指示其解密引擎160使用存储在存储器120中的私钥来解密加密的随机会话钥,以获取随机会话钥,并且执行用户作为合法用户的认证。
也就是说,如果用户的用户终端100不具有私钥,则不能执行解密,因此用户不能被验证为合法用户。
另外,在HTTP的使用环境中,由于使用基于用户终端100提供的随机会话钥加密在用户装置100和认证请求服务器600之间的安全通信线路上传输文档,所以即使在用户认证之后,也防止私钥的泄露,并且执行基于区块链的安全认证。
另一方面,如果协议是HTTPS,则在用户终端100与认证请求服务器600之间的通信线路上传输的文档已经被加密,因此只需要用户认证。
为此,如果用户终端100之间的协议被确定为HTTPS,则认证请求服务器600可以指示随机数生成器630获取随机数并将该随机数发送给用户终端100。
用户终端100可以指示其散列引擎140通过使随机数散列来获取用于认证的随机数散列信息。
之后,用户终端100可以指示其加密引擎130使用存储在存储器120中的私钥来获取加密的用于认证的随机数散列信息,并且将加密的用于认证的随机数散列信息发送给认证请求服务器600。
认证请求服务器600可以指示其散列引擎620使已经发送到用户终端100的随机数散列,由此获取用于比较的随机数散列信息。
之后,认证请求服务器600可以指示其解密引擎650使用公钥来解密加密的用于认证的随机数散列信息,从而获取用于认证的随机数散列信息,并且可以确认用于认证的随机数散列信息的散列值是否对应于用于比较的随机数散列信息的散列值,从而执行用户的认证。
另一方面,用户可以撤销公共证书。
为此,如果从用户终端100获取撤销公共证书的请求,则证书管理服务器300可以将用于登记信息的DB 311中的特定用户的节点散列信息更新为用于撤销的节点散列信息,并且可以进一步在用于登记信息的DB 311中存储请求撤销的特定用户的节点散列信息,以使其可用于确定条件。
这里,如果满足条件中的所述一个条件,则证书管理服务器300可以指示其散列引擎320根据两者、即个人信息和公钥的对的保存序列使每个用户的个人信息和公钥散列,从而获取节点散列信息,并且可以允许请求撤销的特定用户的节点散列信息被包括在与用于登记的根散列值对应的默克尔树中,从而引导用户确认用户的公共证书的撤销,用于登记的根散列值也包括在发送到并登记在区块链节点400中的用于监控伪造的交易信息中。
此外,审计人员可以通过验证请求终端500请求审计以确认与公共证书有关的信息是否伪造。
为了这样做,认证请求服务器600的DB部分610可以包括识别信息DB611,该识别信息DB 611存储关于操作用户终端100的用户的用于登记的个人信息。
证书管理服务器300的用于登记信息的DB 311可以按顺序地并累积地将个人信息和公钥存储为节点散列信息。
通过这些处理,验证请求终端500可以将用于监控特定用户的公共证书的请求发送到认证请求服务器600。
然后,认证请求服务器600可以从识别信息DB 611中提取关于请求监控的用户的特定个人信息,并且将特定个人信息发送到证书管理服务器300。
证书管理服务器300可以通过参照关于请求监控的特定用户的个人信息从用于登记信息的DB 311中取得关于特定用户的节点散列信息,并且可以取得用于登记的特定根散列值的识别信息,该识别信息识别包括取得到的特定用户的节点散列信息的默克尔树的特定根散列值。
之后,证书管理服务器300可以通过参照用于登记的特定根散列值的识别信息,从用于登记信息的DB 311中取得构成包括特定节点散列信息的默克尔树的所有的节点散列信息,并且可以指示其散列引擎320获取包括取得到的节点散列信息的默克尔树的用于比较的根散列值。
另外,证书管理服务器300可以通过参照取得到的用于登记的特定根散列值的识别信息从用于监控伪造的DB 312中取得用于监控伪造的交易ID,并且将用于识别包括用于登记的特定根散列值的、用于监控伪造的交易信息的、用于监控伪造的交易ID发送到区块链节点400。
区块链节点400可以通过参照用于监控伪造的交易ID从其中、即分布式DB中取得用于监控伪造的交易信息,可以提取用于监控伪造的交易信息中包括的用于登记的特定根散列值,并且可以将用于登记的特定根散列值发送到证书管理服务器300。
证书管理服务器300可以接收用于登记的根散列值,可以将接收到的根散列值的散列值与所生成的用于比较的根散列值的散列值进行比较,如果两个散列值彼此相同,则可以允许通知第一消息,这表示向验证请求终端500请求监控的特定用户的特定个人信息和特定公钥未被伪造。
如果特定默克尔树被确定为不可信,则证书管理服务器300可以从用于登记信息的DB 311中识别表示将特定默克尔树确定为不可信的特定节点散列信息的保存序列的节点索引信息。
之后,证书管理服务器300可以确定(i)关于将特定默克尔树确定为不可信的特定节点散列信息的节点索引信息的保存序列与(ii)关于特定用户的节点散列信息的节点索引信息的保存序列是否相同。
通过这些处理,如果(i)关于将特定默克尔树确定为不可信的特定节点散列信息的节点索引信息的保存序列与(ii)关于特定用户节点的散列信息的节点索引信息的保存序列相同,则证书管理服务器300可以允许第二消息通知给验证请求终端500,其中,第二消息表示特定用户的特定个人信息和特定公钥已被伪造。
此外,如果(i)关于将特定默克尔树确定为不可信的特定节点散列信息的节点索引信息的保存序列与(ii)关于特定用户的节点散列信息的节点索引信息的保存序列不相同,则证书管理服务器300可以允许第一消息通知给验证请求终端500,其中,第一消息表示特定用户的特定个人信息和特定公钥未被伪造。
之后,证书管理服务器300可以确定与特定默克尔树相对应的特定对和所述其他对不可信,并且可以执行伪造的处理,所述特定默克尔树包括已经在用于登记信息的DB311上累积地管理的多个特定用户节点散列信息。
下面描述通过使用根据本发明的用于基于区块链认证公共证书的系统基于区块链认证公共证书的处理。
在步骤S300,用户可以通过使用用户终端100连接到认证请求服务器600,来发送基于区块链对公共证书的认证请求。
在步骤S310,认证请求服务器600可以响应于来自用户的认证请求,从识别信息DB611中获取被处理作为用户识别散列信息的、关于用户的个人信息,并且可以将用户识别散列信息发送给证书管理服务器300。
在步骤S320,证书管理服务器300可以基于所发送的个人信息来确认公共证书的有效性,并且在步骤S321,证书管理服务器300可以通过参照从认证请求服务器600发送的个人信息从用于登记信息的DB 311中取得公钥,并且可以指示其散列引擎320使取得到的公钥和发送的个人信息散列来获取用于比较的节点散列信息。
之后,在步骤S322,证书管理服务器300可以从用于登记信息的DB 311中取得在发布公共证书时登记的用于认证的节点散列信息,并且将取得到的用于认证的节点散列信息的散列值与用于比较的节点散列信息的散列值进行比较,从而确定这两个散列值是否彼此相同。
基于此,在步骤S323,如果两个散列值被确定为彼此不相同,则证书管理服务器300可以允许拒绝消息发送到用户终端100,这表示公共证书的认证被拒绝。
另外,在步骤S324,如果两个散列值被确定为彼此相同,则证书管理服务器300可以从用于登记信息的DB 311中取得用于登记的特定根散列值的识别信息,该识别信息识别包括发布公共证书时登记的节点散列信息的默克尔树的特定根散列值。
之后,在步骤S325,证书管理服务器300可以通过参照用于登记的特定根散列值的识别信息,从用于登记信息的DB 311中取得构成包括特定节点散列信息的默克尔树的所有的节点散列信息,并且可以指示其散列引擎320获取包括所取得的多个节点散列信息的默克尔树的用于比较的根散列值。
之后,在步骤S326,证书管理服务器300可以通过参照取得到的用于登记的特定根散列值的识别信息来从用于监控伪造的DB 312中取得用于监控伪造的交易ID,并将用于监控伪造的交易ID发送到区块链节点400。
在步骤S327,区块链节点400可以通过参照用于监控伪造的交易ID从其,即,分布式DB,取得用于监控伪造的交易信息,可以提取包括在用于监控伪造的交易信息中的用于登记的特定根散列值,并且可以将用于登记的特定根散列值发送到证书管理服务器300。
在步骤S328,证书管理服务器300可以接收用于登记的特定根散列值,并且可以将所接收的用于登记的特定根散列值与用于比较的特定根散列值进行比较,从而确定特定默克尔树是否可信。
在步骤S329,如果特定默克尔树被确定为不可信,则证书管理服务器300可以确定与特定默克尔树相对应的特定对和所述其他对不可信,所述特定默克尔树包括已经在用于登记信息的DB 311上累积地管理的用于认证的特定用户的节点散列信息;并且可以执行伪造的处理。
然后,如果所取得的用于认证的节点散列信息的散列值被确定为与用于比较的节点散列信息的散列值相同,则证书管理服务器300可以确定公共证书合法。
因此,在步骤S330,证书管理服务器300可以从用于登记信息的DB 311中获取特定用户的公钥,并且可以将公钥发送到认证请求服务器600。
在步骤S3400,认证请求服务器600可以接收公钥并且基于所接收的公钥对用户终端100的用户进行认证,其细节如下。
首先,在步骤S340,认证请求服务器600可以确定用于请求认证的用户终端100之间的互联网通信的协议是HTTP还是HTTPS。
在步骤S350,如果用户终端100之间的协议是HTTP,则认证请求服务器600可以指示其随机数生成器630获取随机会话钥。
在步骤S360,认证请求服务器600可以指示其加密引擎640使用公钥来加密随机会话钥,从而获取加密的随机会话钥并将其发送到用户终端100。
在步骤S370,用户终端100可以接收加密的随机会话钥,指示其解密引擎160使用存储在存储器120中的私钥来解密加密的随机会话钥,并且获取随机会话钥,并且可以完成用户的认证。
然后,在步骤S380,如果请求认证的用户终端100之间的协议是HTTPS,则认证请求服务器600可以指示其随机数生成器630获取随机数并将该随机数发送到用户终端100。
在步骤S390,用户终端100可以指示其散列引擎140使随机数散列来获取用于认证的随机数散列信息。
在步骤S400,用户终端100可以指示其加密引擎130使用存储在存储器120中的私钥来获取加密的用于认证的随机数散列信息,并且将加密的用于认证的随机数散列信息发送到认证请求服务器600。
在步骤S410,认证请求服务器600可以指示其散列引擎620使已经发送给用户终端100的随机数散列,以获取用于比较的随机数散列信息,可以指示其解密引擎650使用用户的公钥来解密加密的用于认证的随机数散列信息以获取用于认证的随机数散列信息,并且可以确认用于认证的随机数散列信息的散列值是否与用于比较的随机数散列信息的散列值相同,从而执行用户的认证。
另一方面,用户可以撤销公共证书。
为此,在步骤S500,证书管理服务器300可以确认用户终端100是否请求了撤销公共证书,在步骤S510,如果确定撤销已被请求,则可以将存储在用于登记信息的DB 311中的特定用户的节点散列信息更新为用于撤销的节点散列信息。
之后,证书管理服务器300可以进一步在用于登记信息的DB 311中存储请求了撤销的特定用户的节点散列信息,以使其对于确定条件可用。
之后,在步骤S530,如果满足条件中的所述一个条件,则证书管理服务器300可以指示其散列引擎320根据两者、即个人信息和公钥的对的保存序列使每个用户的个人信息和公钥散列,从而获取节点散列信息,并且可以允许请求了撤销的特定用户的节点散列信息被包括在与用于登记的根散列值对应的默克尔树中,用于登记的根散列值也被包括在发送到并登记在分布式DB、即区块链节点400中的用于监控伪造的交易信息中。
因此,可以允许用户确认用户的公共证书的撤销。
此外,审计个人用户或公共证书的审计人员可以通过验证请求终端500请求审计以确认与公共证书有关的信息是否伪造。
也就是说,在步骤S600,认证请求服务器600可以指示验证请求终端500确定特定用户的公共证书的监控是否已经被请求,并且在步骤S610,如果确定监控已经被请求,则可以从用于登记信息的DB 311中提取请求监控的特定用户的特定个人信息,并且可以将特定个人信息发送到证书管理服务器300。
在步骤S620,证书管理服务器300可以通过参照关于请求了监控的特定用户的个人信息从用于登记信息的DB 311中取得关于特定用户的节点散列信息,并且可以取得用于登记的特定根散列值的识别信息,所述识别信息识别包括所取得到的关于特定用户的节点散列信息的默克尔树的特定根散列值。
之后,在步骤S630,证书管理服务器300可以通过参照用于登记的特定根散列值的识别信息,从用于登记信息的DB 311中取得构成包括特定节点散列信息的默克尔树的所有的节点散列信息,并且可以指示其散列引擎320获取包括所取得到的多个节点散列信息的默克尔树的用于比较的根散列值。
之后,在步骤S640,证书管理服务器300可以通过参照所取得到的用于登记的特定根散列值的识别信息来从用于监控伪造的DB 312中取得用于监控伪造的交易ID,并将用于监控伪造的交易ID发送到区块链节点400。
在步骤S650,区块链节点400可以通过参照用于监控伪造的交易ID从其中、即分布式DB中取得用于监控伪造的交易信息,可以提取用于监控伪造的交易信息中包括的用于登记的特定根散列值,并且可以将用于登记的特定根散列值发送到证书管理服务器300。
在步骤S660,证书管理服务器300可以接收用于登记的特定根散列值,并且可以将所接收的用于登记的特定根散列值与用于比较的特定根散列值进行比较,从而确定特定默克尔树是否可信。
之后,在步骤S670,如果特定默克尔树被确定为可信,则证书管理服务器300可以允许通知第一消息,该第一消息表示向验证请求终端500请求监控的特定用户的特定个人信息和特定公钥未被伪造。
在步骤S661,如果特定默克尔树被确定为不可信,则证书管理服务器300可以从用于登记信息的DB 311中识别表示将特定默克尔树确定为不可信的特定节点散列信息的保存序列的节点索引信息。
之后,在步骤S662,证书管理服务器300可以确定(i)关于将特定默克尔树确定为不可信的特定节点散列信息的节点索引信息的保存序列与(ii)关于特定用户的节点散列信息的节点索引信息的保存序列是否相同。
首先,在步骤S663,如果(i)关于将特定默克尔树确定为不可信的特定节点散列信息的节点索引信息的保存序列与(ii)关于特定用户的节点散列信息的节点索引信息的保存序列相同,则证书管理服务器300可以允许第二消息通知给验证请求终端500,其中,第二消息表示特定用户的特定个人信息和特定公钥已被伪造。
另外,在步骤S664,如果(i)关于将特定默克尔树确定为不可信的特定节点散列信息的节点索引信息的保存序列与(ii)关于特定用户的节点散列信息的节点索引信息的保存序列不相同,则证书管理服务器300可以允许第一消息通知给验证请求终端500,其中,第一消息表示特定用户的特定个人信息和特定公钥未被伪造。
之后,在步骤S665,证书管理服务器300可以将与特定默克尔树相对应的特定对和所述其他对确定为不可信,并且可以执行伪造的处理,特定默克尔树包括已经在用于登记信息的DB 311上累积地管理的特定用户的节点散列信息。
本发明具有减少构建与高级安全系统链接以尽可能地阻止黑客攻击的用于发布公共证书的系统的成本的效果,这是由于需要维护的用于公共证书的公钥通过基于对等(P2P)网络的分布式DB在区块链上进行保存和管理,而不是在证书颁发机构(CA)操作服务器上进行保存和管理,本发明具有减少所构建的用于基于区块链发布公共证书的系统的诸如操作和维护成本的系统相关成本,并且大大降低公共证书的发布成本。
本发明具有另一种效果,即将特定用户的用于公共证书的公钥绑定与预定数量的公钥一样多,压缩绑定的特定公钥,并登记包括压缩的特定用户的特定公钥列表的特定交易信息,从而最小化流量的发生,由此在发布公共证书的过程中将特定交易信息登记到区块链的同时最小化网络过载,其中,特定交易信息包括特定用户的公钥。
本发明还具有另一效果,即,当通过防止特定用户的公钥被登记在区块链中来发布公共证书时执行公共证书的认证处理而不暴露公共证书;以及监控包括特定用户的特定公钥的公共认证相关信息的伪造和作假。

Claims (17)

1.一种基于区块链发布公共证书的系统,包括:
用户终端,生成用于所述公共证书的特定公钥和用于所述公共证书的特定私钥,并且发送发布所述公共证书所需的所述特定公钥和包括关于特定用户的个人信息的用于发布所述公共证书的特定个人信息;
发布请求服务器,从所述用户终端接收所述特定个人信息和所述特定公钥,并且发送用于登记包括所述特定个人信息和所述特定公钥的每个用户的公共证书的登记请求信号;
证书管理服务器,(i)针对每个用户,将来自所述发布请求服务器的所述登记请求信号中包含的所述特定公钥和所述特定个人信息按顺序且累积地存储在用于登记信息的DB中,(ii)如果满足条件中的一个条件,则指示其第一散列引擎按顺序使特定公钥和特定个人信息的对中的每一对散列,从而获取特定默克尔树中的每条节点散列信息,(iii)通过使用所述每条节点散列信息获得用于特定默克尔树的公共证书的登记的至少一个特定根散列值,(iv)指示其交易处理引擎以生成(iv-1)包括所述至少一个特定根散列值的、用于监控伪造的交易信息、以及(iv-2)用作用于取得所述用于监控伪造的交易信息的关键值的、用于监控伪造的交易ID,(v)发送所述用于监控伪造的交易信息;以及
所述区块链,包括区块链节点,所述区块链存储从所述证书管理服务器接收的所述用于监控伪造的交易信息,其中,如果接收到用于加密货币支付的交易信息,则所述区块链节点通过用于加密货币支付的交易信息的验证来授权加密货币支付,并通过参照授权处理的结果将所述用于加密货币支付的交易信息存储在所述区块链中;
其中,所述条件包括:(i)数字条件,表示确定对的数量是否达到创建根散列值所需的数量的条件,所述对包括(i-1)所述特定用户的个人信息和所述特定公钥的特定对、以及(i-2)关联用户的个人信息和关联公钥的其他对;以及(ii)时间条件,表示以预定间隔完成每个默克尔树的条件,
其中,所述证书管理服务器包括其DB部分,
其中,所述DB部分包含:用于登记信息的DB,其按顺序且累积地存储所述特定个人信息、所述特定公钥以及通过使所述特定个人信息和所述特定公钥散列而获得的节点散列信息,并且所述DB部分包含:用于监控伪造的DB,其每当在所述证书管理服务器生成所述用于监控伪造的交易信息时,存储随着所述用于监控伪造的交易信息生成的、用于监控伪造的交易ID,
其中,如果满足条件中的所述一个条件,则所述证书管理服务器提取在所述用于监控伪造的DB中的所述特定默克尔树完成之前累积地保存的先前默克尔树的所有的先前的用于监控伪造的交易ID,并将所述先前的用于监控伪造的交易ID发送到包括所述区块链节点的所述区块链,
其中,所述区块链节点通过参照所述先前的用于监控伪造的交易ID从所述区块链节点取得所述用于监控伪造的交易信息,提取所述用于监控伪造的交易信息中包括的用于登记的所述至少一个特定根散列值,并且将用于登记的所述至少一个特定根散列值发送到所述证书管理服务器,并且
其中,所述证书管理服务器(i)接收所述用于登记的至少一个特定根散列值,(ii)使从所述用于登记信息的DB中在所述特定默克尔树完成之前累积地保存的每条个人信息和每个公钥的先前对散列,从而获取每个用于比较的先前根散列值,(iii)将至少一个所述用于登记的特定根散列值中的每一个与所述用于比较的先前根散列值中的每一个按顺序进行比较,从而确定所述先前默克尔树是否可信,(iv)如果所述先前默克尔树被确定为可信,则允许生成所述用于监控伪造的交易信息,如果所述先前默克尔树被确定为不可信,则防止所述用于监控伪造的交易信息生成。
2.如权利要求1所述的系统,其中,所述用户终端包括钥生成引擎,并且在网络断开连接时指示所述钥生成引擎生成所述特定公钥和所述特定私钥。
3.如权利要求1所述的系统,其中,所述特定个人信息包括所述特定用户的姓名、所述特定用户的出生日期、所述特定用户的电话号码以及所述特定用户的电子邮件地址中的至少一者。
4.如权利要求1所述的系统,其中,所述发布请求服务器包括其散列引擎,并且指示其散列引擎使所述特定个人信息散列,从而获取用户识别散列信息并允许所述用户识别散列信息被包括在所述登记请求信号中。
5.如权利要求1所述的系统,
其中,所述证书管理服务器(i)生成表示生成的所述节点散列信息的保存序列的节点索引信息,(ii)生成生成的所述特定根散列值的识别信息,(iii)将所述节点散列信息、所述节点索引信息以及所述特定根散列值的识别信息累积地存储在所述用于登记信息的DB中,(iv)将所述特定根散列值的识别信息累积地存储在所述用于监控伪造的DB中,并且
其中,所述发布请求服务器的交易处理引擎将所述用于监控伪造的交易ID累积地存储在所述用于监控伪造的DB中,从而指示所述用于监控伪造的DB存储和管理所述用于监控伪造的交易ID以及所述特定根散列值的识别信息。
6.如权利要求5所述的系统,其中,在特定先前根散列值已经被分配给特定先前默克尔树的第一叶节点的条件下,则所述证书管理服务器指示所述第一散列引擎获得所述特定先前默克尔树的、用于登记的特定先前根散列值。
7.如权利要求6所述的系统,还包括:
验证请求终端,
其中,所述验证请求终端向所述发布请求服务器发送用于监控特定用户的公共证书的请求,
其中,所述发布请求服务器从用于登记信息的DB中取得关于请求监控的所述特定用户的所述特定个人信息,并将所述特定个人信息发送给所述证书管理服务器,
其中,所述证书管理服务器(i)通过参照所发送的关于请求监控的所述特定用户的所述特定个人信息,确认所述用于登记信息的DB中是否存在关于所述特定用户的所述节点散列信息,(ii)如果不存在特定节点散列信息,则指示所述第一散列引擎按顺序地使不具有节点散列信息的对中的每一对散列,从而获取所述不具有节点散列信息的对的节点散列信息,(iii)生成所述不具有节点散列信息的对的特定节点索引信息,(iv)通过使用从所述不具有节点散列信息的对获得的每个节点散列信息,获得所述用于登记的特定根散列值,(v)生成所述用于登记的特定根散列值的识别信息,(vi)指示其交易处理引擎生成(vi-1)包括所述用于登记的特定根散列值的用于监控伪造的交易信息、以及(vi-2)用作用于取得所述用于监控伪造的交易信息的关键值的、用于监控伪造的交易ID,(vii)将所述用于监控伪造的交易信息发送给所述区块链,
其中,所述区块链节点将所接收的特定交易信息存储在其中,
其中,所述证书管理服务器指示所述第一散列引擎通过参照所述特定默克尔树的结构和所述用于登记的特定根散列值的识别信息生成用于比较的特定根散列值,并且通过参照所述用于登记的特定根散列值的识别信息将所述用于监控伪造的特定交易ID发送给所述区块链,
其中,所述区块链节点通过参照所述用于监控伪造的特定交易ID从所述区块链节点取得所述用于监控伪造的特定交易信息,提取所述用于监控伪造的特定交易信息中包括的所述用于登记的特定根散列值,并且将所述用于登记的特定根散列值发送到所述证书管理服务器,并且
其中,所述证书管理服务器接收所述用于登记的特定根散列值,将所接收的用于登记的特定根散列值的散列值与所生成的用于比较的根散列值的散列值进行比较,并且如果所接收的用于登记的特定根散列值的散列值与所生成的用于比较的根散列值的散列值彼此相同,则将所述特定默克尔树确定为可信,并且允许通知第一消息,所述第一消息表示向所述验证请求终端请求监控的所述特定用户的所述特定个人信息和所述特定公钥未被伪造。
8.如权利要求7所述的系统,其中,(i)如果所述特定默克尔树被确定为不可信,则所述证书管理服务器确认(i-1)将所述特定默克尔树确定为不可信的所述特定节点散列信息的保存序列与(i-2)所述特定用户的节点散列信息的保存序列是否相同,并且(ii)如果(ii-1)将所述特定默克尔树确定为不可信的所述特定节点散列信息的保存序列与(ii-2)所述特定用户的节点散列信息的保存序列相同,则所述证书管理服务器允许第二消息被通知给所述验证请求终端,其中,所述第二消息表示所述特定用户的所述特定个人信息和所述特定公钥已被伪造。
9.如权利要求8所述的系统,其中,如果(i)与所述用于登记的特定根散列值相对应的所述节点散列信息之中的、将所述特定默克尔树确定为不可信的所述特定节点散列信息的保存序列与(ii)所述特定用户的节点散列信息的保存序列不相同,则所述证书管理服务器允许所述第一消息被通知给所述验证请求终端。
10.一种基于包括多个区块链节点的区块链发布公共证书的方法,包括:
步骤S100,用户终端发送用于发布所述公共证书的特定个人信息到发布请求服务器,以请求基于所述区块链发布所述公共证书,其中,所述特定个人信息包括发布所需的用户识别信息;
步骤S110,所述发布请求服务器确认所接收的特定个人信息,创建用于引导创建用于公共证书的特定私钥和用于公共证书的特定公钥的生成引导信号,并将所述生成引导信号发送给请求发布的用户终端;
步骤S120,如果接收到所述生成引导信号,则所述用户终端管理钥生成引擎以生成所述特定公钥和所述特定私钥,并将所述特定公钥发送给所述发布请求服务器;
步骤S130,所述发布请求服务器接收所述特定公钥并将用于登记每个用户的所述公共证书的登记请求信号发送给用于管理所述公共证书的证书管理服务器,所述登记请求信号包括所述特定个人信息和所述特定公钥;
步骤S140,所述证书管理服务器将所接收的登记请求信号中包括的所述特定个人信息和所述特定公钥按顺序且累积地保存在包含关于所述公共证书的登记的信息的、用于登记信息的DB中;
步骤S150,所述证书管理服务器确认是否满足条件中的一个条件,其中,所述条件包括(i)数字条件和(ii)时间条件,并且其中,所述数字条件表示如下条件:确定对的数量是否达到创建根散列值所需的数量,所述对包括特定用户的个人信息和所述特定公钥的特定对、以及关联用户的个人信息和关联公钥的其他对,并且其中,所述时间条件表示如下条件:以预定间隔完成每个默克尔树;
步骤S210,如果满足条件中的所述一个条件,则所述证书管理服务器操作所述证书管理服务器的第一散列引擎按顺序使所述对中的每个对散列,从而获取特定默克尔树中的每个节点散列信息,并通过使用所述每个节点散列信息获得用于登记所述公共证书的、用于登记的特定根散列值;
步骤S220,所述证书管理服务器操作交易处理引擎创建(i)包括所述用于登记的特定根散列值的、用于监控伪造的特定交易信息、以及(ii)用作取得所述用于监控伪造的特定交易信息的关键值的、用于监控伪造的特定交易ID,并将所述用于监控伪造的特定交易信息发送至所述区块链;以及
步骤S230,所述区块链将所接收的用于监控伪造的特定交易信息记录在其中,从而完成发布,
在步骤S150之后,还包括:
步骤S160,如果满足条件中的所述一个条件,则所述证书管理服务器提取在用于监控伪造的DB中在特定默克尔树完成之前累积地保存的先前默克尔树的所有的先前交易ID,并且将所述先前交易ID发送到所述区块链;
步骤S170,所述区块链通过参照每条接收到的先前交易ID从所述区块链中取得每条用于监控伪造的先前交易信息,并且提取每条所述用于监控伪造的先前交易信息中包括的先前公共证书的用于登记的先前根散列值的每一个;
步骤S180,所述区块链将所述用于登记的先前根散列值的每一个发送给所述证书管理服务器;
步骤S190,所述证书管理服务器接收所述先前公共证书的所述用于登记的先前根散列值的每一个,使从所述用于登记信息的DB中在所述特定默克尔树完成之前累积地保存的每个先前用户的个人信息和每个先前用户的公钥的先前对散列,从而获取用于比较的先前根散列值的每一个;以及
步骤S200,所述证书管理服务器将所述用于登记的先前根散列值中的每一个与所述用于比较的先前根散列值中的每一个按顺序进行比较,从而确定先前默克尔树是否可信;以及
在步骤S200之后,进入步骤S210。
11.如权利要求10所述的方法,其中,在步骤S130,所述发布请求服务器指示所述发布请求服务器的第二散列引擎使所述特定个人信息散列,从而获取用户识别散列信息,并且将所述用户识别散列信息包含在所述登记请求信号中。
12.如权利要求10所述的方法,其中,步骤S200包括:
步骤S201,如果所述先前默克尔树被确定为不可信,则所述第一散列引擎确定至少一个所述先前对已被伪造。
13.如权利要求10所述的方法,其中,
在步骤S210中,在特定先前默克尔树中的用于登记的特定先前根散列值已经被分配给特定先前默克尔树的第一叶节点的条件下,其中所述特定先前默克尔树在所述特定先前默克尔树完成之后被创建,则所述证书管理服务器使用所述第一散列引擎从所述特定先前根散列值获得用于登记的特定先前根散列值。
14.如权利要求10所述的方法,其中,在步骤S210中,所述证书管理服务器通过利用所述第一散列引擎,产生表示所述节点散列信息的保存序列的节点索引信息,并产生所述用于登记的特定根散列值的识别信息。
15.如权利要求14所述的方法,还包括:
步骤S251,用于检查伪造和作假的验证请求终端确认所述特定用户的公共证书的监控是否通过所述发布请求服务器已被请求;
步骤S252,如果确定所述监控已被请求,则所述验证请求终端从所述用于登记信息的DB中提取请求所述监控的所述特定用户的所述特定个人信息,并将所述特定个人信息发送给所述证书管理服务器;
步骤S253,所述证书管理服务器通过参照所述特定个人信息确认所述特定用户的特定节点散列信息是否存在于所述用于登记信息的DB中;
步骤S254,如果所述特定节点散列信息不存在,则所述证书管理服务器操作所述第一散列引擎按顺序地使不具有节点散列信息的对中的每一对散列,从而获取所述不具有节点散列信息的对的节点散列信息,生成所述不具有节点散列信息的对的特定节点索引信息,通过使用从所述不具有节点散列信息的对获得的所述每个节点散列信息,获得所述用于登记的特定根散列值,并生成所述用于登记的特定根散列值的识别信息;
步骤S255,所述证书管理服务器操作所述交易处理引擎以创建(i)从所述不具有节点散列信息的对获取的用于监控伪造的特定交易信息、以及(ii)从所述不具有节点散列信息的对获取的、用作用于取得所述用于监控伪造的特定交易信息的关键值的、用于监控伪造的特定交易ID,并将所述用于监控伪造的特定交易信息发送给所述区块链;
步骤S256,所述区块链将所接收的用于监控伪造的特定交易信息记录在其中;
步骤S257,所述第一散列引擎通过参照所述特定默克尔树的结构和所述用于登记的特定根散列值的识别信息来生成用于比较的特定根散列值;
步骤S258,所述证书管理服务器通过参照所述用于登记的特定根散列值的识别信息将所述用于监控伪造的特定交易ID发送给所述区块链;
步骤S259,所述区块链通过参照所述用于监控伪造的特定交易ID从所述区块链中取得所述用于监控伪造的特定交易信息,提取所述用于监控伪造的特定交易信息中包括的所述用于登记的特定根散列值,并将所述用于登记的特定根散列值发送给所述证书管理服务器;
步骤S260,所述证书管理服务器接收所述用于登记的特定根散列值,并将接收到的所述用于登记的特定根散列值与所述用于比较的特定根散列值进行比较,从而确定所述特定默克尔树是否可信;以及
步骤S261,如果所述特定默克尔树被确定为可信,则所述证书管理服务器允许通知第一消息,其中,所述第一消息表示请求对所述验证请求终端的监控的所述特定用户的所述特定个人信息和所述特定公钥未被伪造。
16.如权利要求15所述的方法,在步骤S260之后,还包括:
步骤S262,如果所述特定默克尔树被确定为不可信,则所述第一散列引擎在包括所述先前默克尔树的所述节点散列信息中识别所述特定用户的公共证书的特定节点索引信息;
步骤S263,确认将所述特定默克尔树确定为不可信的所述特定节点散列信息的保存序列与所述特定用户的节点散列信息的保存序列是否相同;以及
步骤S264,如果将所述特定默克尔树确定为不可信的所述特定节点散列信息的保存序列与所述特定用户的节点散列信息的保存序列相同,则所述证书管理服务器允许第二消息被通知给所述验证请求终端,其中,所述第二消息表示所述特定用户的所述特定个人信息和所述特定公钥已被伪造。
17.如权利要求16所述的方法,在步骤S263之后,还包括:
步骤S265,如果将所述特定默克尔树确定为不可信的所述特定节点散列信息的保存序列与所述特定用户的节点散列信息的保存序列不相同,则所述证书管理服务器允许所述第一消息被通知给所述验证请求终端;以及
步骤S266,所述第一散列引擎将与所述特定默克尔树相对应的特定对和其他对确定为不可信,所述特定默克尔树包括已经在所述用于登记信息的DB上累积地管理的多条所述特定用户的节点散列信息。
CN201680081617.8A 2016-03-30 2016-10-10 用于基于区块链发布公共证书的系统、及使用该系统的用于基于区块链发布公共证书的方法 Active CN108701308B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2016-0038068 2016-03-30
KR1020160038068A KR101680260B1 (ko) 2015-12-14 2016-03-30 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법
PCT/KR2016/011293 WO2017171165A1 (ko) 2015-12-14 2016-10-10 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법

Publications (2)

Publication Number Publication Date
CN108701308A CN108701308A (zh) 2018-10-23
CN108701308B true CN108701308B (zh) 2022-03-25

Family

ID=80780005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680081617.8A Active CN108701308B (zh) 2016-03-30 2016-10-10 用于基于区块链发布公共证书的系统、及使用该系统的用于基于区块链发布公共证书的方法

Country Status (1)

Country Link
CN (1) CN108701308B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102181600B1 (ko) * 2018-03-30 2020-11-23 주식회사 코인플러그 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버
CN110035046B (zh) * 2018-11-16 2020-02-21 阿里巴巴集团控股有限公司 跨区块链的交互系统
EP3903518A1 (en) * 2018-12-28 2021-11-03 Apple Inc. Providing verified claims of user identity
CN109474439A (zh) * 2019-01-02 2019-03-15 广州市中智软件开发有限公司 一种基于区块链的电子证照可信签发、调用和使用方法
CN110705985B (zh) * 2019-10-21 2020-09-29 北京海益同展信息科技有限公司 用于存储信息的方法和装置
CN112953708B (zh) * 2020-12-31 2023-04-07 深圳市巽震科技孵化器有限公司 一种基于数字证书平台的初始化方法及对应设备和系统、计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1478342A (zh) * 2000-11-28 2004-02-25 �ɸ���Ӱ��ɷ����޹�˾ 交易认证
CN1625743A (zh) * 2002-02-27 2005-06-08 创能私人有限公司 活动管理方法
CN1815948A (zh) * 2005-06-30 2006-08-09 西南交通大学 基于复合非线性数字滤波器的混沌散列构造方法
CN103138934A (zh) * 2011-11-21 2013-06-05 美国博通公司 安全密钥生成
WO2014167516A1 (en) * 2013-04-11 2014-10-16 Brandshield Ltd. Device, system, and method of protecting brand names and domain names

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1478342A (zh) * 2000-11-28 2004-02-25 �ɸ���Ӱ��ɷ����޹�˾ 交易认证
CN1625743A (zh) * 2002-02-27 2005-06-08 创能私人有限公司 活动管理方法
CN1815948A (zh) * 2005-06-30 2006-08-09 西南交通大学 基于复合非线性数字滤波器的混沌散列构造方法
CN103138934A (zh) * 2011-11-21 2013-06-05 美国博通公司 安全密钥生成
WO2014167516A1 (en) * 2013-04-11 2014-10-16 Brandshield Ltd. Device, system, and method of protecting brand names and domain names

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Enhanced certificate transparency and end-to-end encrypted mail;Mark D. Ryan;《International Association for Cryptologic Research》;20131216;第1-4章 *
Privacy-awareness in Blockchain-based PKI;Axon L;《University of Oxford》;20151017;第3.1节 *

Also Published As

Publication number Publication date
CN108701308A (zh) 2018-10-23

Similar Documents

Publication Publication Date Title
CA3008705C (en) System for issuing public certificate on basis of block chain, and method for issuing public certificate on basis of block chain by using same
KR101723405B1 (ko) 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
KR101680260B1 (ko) 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법
CN108701308B (zh) 用于基于区块链发布公共证书的系统、及使用该系统的用于基于区块链发布公共证书的方法
US20210314313A1 (en) Certificate issuing system based on block chain
US10885501B2 (en) Accredited certificate issuance system based on block chain and accredited certificate issuance method based on block chain using same, and accredited certificate authentication system based on block chain and accredited certificate authentication method based on block chain using same
KR101661933B1 (ko) 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법
US11568396B2 (en) Method for using and revoking authentication information and blockchain-based server using the same
US11514440B2 (en) Method for issuing authentication information and blockchain-based server using the same
CN108496382B (zh) 用于个人身份认证的安全信息传输系统和方法
WO2010082253A1 (ja) サーバ認証方法及びクライアント端末
JP2019519827A (ja) アプリの偽変造が探知可能な2チャンネル認証代行システム及びその方法
JP4818664B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
CN111538784A (zh) 一种基于区块链的数字资产交易方法、装置及存储介质
JP2003067326A (ja) ネットワーク上の資源流通システム、及び相互認証システム
CN110535807B (zh) 一种业务鉴权方法、装置和介质
JP2001186122A (ja) 認証システム及び認証方法
JP2002132996A (ja) 情報存在証明サーバ、情報存在証明方法、および情報存在証明制御プログラム
JP7000207B2 (ja) 署名システム
JP2020010299A (ja) 本人認証装置及び本人認証方法
US11089010B2 (en) Method for transmitting digital information
TWI670990B (zh) 自動連線安全無線網路的方法與系統
JP5107850B2 (ja) サービス連携システムおよびサービス連携方法
KR100925638B1 (ko) 시점 토큰 검증 시스템 및 그 방법
JP2012128566A (ja) 識別情報を確認するためのサーバ装置

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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Gyeonggi Do, South Korea

Patentee after: CP Laboratory Co.,Ltd.

Country or region after: Republic of Korea

Address before: Gyeonggi Do, South Korea

Patentee before: COINPLUG, Inc.

Country or region before: Republic of Korea

CP03 Change of name, title or address