JP6976405B2 - Access control system and its programs - Google Patents
Access control system and its programs Download PDFInfo
- Publication number
- JP6976405B2 JP6976405B2 JP2020501912A JP2020501912A JP6976405B2 JP 6976405 B2 JP6976405 B2 JP 6976405B2 JP 2020501912 A JP2020501912 A JP 2020501912A JP 2020501912 A JP2020501912 A JP 2020501912A JP 6976405 B2 JP6976405 B2 JP 6976405B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- transaction
- user
- node
- unit
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
本発明は、アクセス管理システム、及びそのプログラム等に関する。 The present invention relates to an access control system, a program thereof, and the like.
近年、アクセス制御の方法として、暗号化ベースの制御方法が注目されている。暗号化ベースのアクセス制御方法では、アクセスが許可される主体のみが復号可能にデータが暗号化され、当該データの復号可否に基づいて、主体の権限の検証が行われる(例えば非特許文献1)。 In recent years, an encryption-based control method has attracted attention as an access control method. In the encryption-based access control method, data is encrypted so that only the entity to which access is permitted can decrypt the data, and the authority of the entity is verified based on whether or not the data can be decrypted (for example, Non-Patent Document 1). ..
非特許文献1をはじめとする従来の暗号化ベースのアクセス制御方法では、認証局(CA:Certificate Authority)等の中央サーバが、アクセス制御用の暗号鍵や復号鍵を発行する。したがって、従来の暗号化ベースのアクセス制御方法によって管理されるシステムでは、システムの信頼性は、中央サーバの信頼度に依存することになる。このようなシステムでは、中央サーバが乗っ取られると、中央サーバの信頼性に基づいて発行されたすべての鍵が信頼できなくなることから、中央サーバが単一障害点(SPOF:Single Point Of Failure)となってしまう。これを防ぐために中央サーバのセキュリティレベルを強化するには大きな費用がかかってしまう。
In the conventional encryption-based access control method such as Non-Patent
そこで、本発明は、上記事情に鑑み、暗号化ベースのアクセス制御において、耐障害性を向上させることを目的とするものである。 Therefore, in view of the above circumstances, the present invention aims to improve fault tolerance in encryption-based access control.
本発明によるプログラムは、トランザクションが管理される分散型データベースにアクセス可能なコンピュータを、第1ユーザのアクセス権限を示すための第1鍵であって、分散型データベースにおいて第1ユーザに関連づけられていない第1鍵を取得する取得手段、第1鍵の検証を行う検証手段、第1鍵に関する情報を、分散型データベースにアクセス可能な1以上の第2ユーザのコンピュータと共有する共有手段、第1鍵の情報と、第1ユーザのデジタル署名とを含み、第1鍵の使用の承認を依頼する第1トランザクションを生成する生成手段、及び第1トランザクションが、1以上の第2ユーザにデジタル署名され、分散型データベースに登録されるために、第1トランザクションを1以上の第2ユーザのコンピュータに送信する送信手段、として機能させる。 The program according to the present invention is the first key for indicating the access authority of the first user to the computer that can access the distributed database in which the transaction is managed, and is not associated with the first user in the distributed database. Acquisition means for acquiring the first key, verification means for verifying the first key, sharing means for sharing information about the first key with one or more second user computers accessible to a distributed database, first key. And a generation means that generates a first transaction requesting approval of the use of the first key, including the information of the first user and the digital signature of the first user, and the first transaction is digitally signed by one or more second users. It functions as a transmission means for transmitting a first transaction to one or more second user computers in order to be registered in a distributed database.
本発明のプログラムは、CD−ROM等の光学ディスク、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークなどを介してダウンロードすることにより、コンピュータにインストール又はロードすることができる。 The program of the present invention can be installed or loaded in a computer by downloading through various recording media such as an optical disk such as a CD-ROM, a magnetic disk, and a semiconductor memory, or via a communication network or the like.
また、本明細書等において、「部」とは、単に物理的構成を意味するものではなく、その構成が有する機能をソフトウェアによって実現する場合も含む。また、1つの構成が有する機能が2つ以上の物理的構成により実現されても、2つ以上の構成の機能が1つの物理的構成により実現されてもよい。 Further, in the present specification and the like, the “part” does not simply mean a physical configuration, but also includes a case where the function of the configuration is realized by software. Further, the function of one configuration may be realized by two or more physical configurations, or the function of two or more configurations may be realized by one physical configuration.
本発明によれば、暗号化ベースのアクセス制御において、耐障害性を向上させることができる。 According to the present invention, fault tolerance can be improved in encryption-based access control.
[第1の実施形態]
以下、本発明の実施の形態の1つについて詳細に説明する。なお、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。さらに、当業者であれば、以下に述べる各要素を均等なものに置換した実施の形態を採用することが可能であり、かかる実施の形態も本発明の範囲に含まれる。[First Embodiment]
Hereinafter, one of the embodiments of the present invention will be described in detail. It should be noted that the following embodiments are examples for explaining the present invention, and the present invention is not limited to the embodiments thereof. Further, the present invention can be modified in various ways as long as it does not deviate from the gist thereof. Further, those skilled in the art can adopt an embodiment in which each element described below is replaced with an equal one, and such an embodiment is also included in the scope of the present invention.
<1.システム構成の概要>
図1は、本発明に係るアクセス管理システム1のシステム構成の一例を示している。アクセス管理システム1は、暗号化ベースのアクセス制御に用いられる鍵への操作の管理を行う。鍵は、暗号化ベースのアクセス制御において、ユーザのアクセス権限を示す情報として用いられる。本実施形態では、アクセス管理システム1で用いられる鍵は、公開鍵暗号方式における公開鍵及び秘密鍵である。ただし、アクセス管理システム1において用いられる鍵の暗号方式は、公開鍵暗号方式に限定されず、例えば共通鍵暗号方式でもよい。<1. Overview of system configuration>
FIG. 1 shows an example of the system configuration of the
鍵への操作は、鍵の生成、更新、又は失効を含む。アクセス管理システム1では、あるユーザ(操作者)が鍵に対して操作を行う場合、他の1以上のユーザ(承認者)が承認を行う。ここで、「鍵への操作を承認する」とは、鍵への操作が生成・更新である場合、使用される鍵を承認することであり、鍵への操作が失効である場合、失効操作を承認することである。1以上の承認者が、鍵への操作を承認することで、鍵の信頼性をユーザが相互に担保することが可能となる。これにより、アクセス管理システム1においては、一部の承認者の信頼性が損なわれたとしても、他の承認者の信頼性に基づいて、システム全体の信頼性を継続することができる。
Operations on keys include key generation, renewal, or revocation. In the
さらにアクセス管理システム1では、承認者は、固定のユーザである必要はなく、操作対象の鍵の所有者に応じて異なってもよく、また、鍵の所有者が同一であっても、鍵への操作のたびに異なるユーザが承認者になってもよい。この結果、ある承認者の信頼性が損なわれたとしても、影響範囲を、信頼性が損なわれた承認者にのみ承認された鍵に限定することができる。これによって、システム全体としては、信頼性を継続することができる。
Further, in the
図1に示すように、アクセス管理システム1は、インターネット等のネットワークNに接続された複数のノード10A、10B、10C(以下、これらのノードをまとめて単に「ノード10」とも呼ぶ。)と、データベース30とを備えている。図1の例では、一例として3つのノードを記載しているが、ノードの数に限定はない。
As shown in FIG. 1, the
ネットワークNは、無線ネットワークや有線ネットワークにより構成される。通信ネットワークの一例としては、携帯電話網や、PHS(Personal Handy−phone System)網、無線LAN(Local Area Network)、3G(3rd Generation)、LTE(Long Term Evolution)、4G(4th Generation )、WiMax(登録商標)、赤外線通信、Bluetooth(登録商標)、有線LAN、電話線、電灯線ネットワーク、IEEE1394等に準拠したネットワークがある。 The network N is composed of a wireless network and a wired network. Examples of communication networks include mobile phone networks, PHS (Personal Handy-phone System) networks, wireless LAN (Local Area Network), 3G (3rd Generation), LTE (Long Term Evolution), 4G (4th Generation), and 4G (4th Generation). There are networks compliant with (registered trademark), infrared communication, WiMAX (registered trademark), wired LAN, telephone line, power line network, IEEE1394, and the like.
ノード10は、ネットワークNに接続されたコンピュータであり、アクセス管理システム1が提供する所定のアプリケーションがインストールされている。なお、所定のアプリケーションは、ノード10にあらかじめインストールされていてもよいし、ダウンロード等によってノード10に事後的にインストールされてもよい。
The node 10 is a computer connected to the network N, and a predetermined application provided by the
典型的には、ノード10は、携帯電話やスマートフォン、PC(Personal Computer)、PDA(Personal Digital Assistants)、タブレット、ウェアラブル(Wearable)端末、サーバ装置、ゲーム機等である。ノード10A、10B、及びノード10Cは、ネットワークNを介して互いにP2P(Peer to Peer)接続されており、分散型台帳システムを構成している。もっとも、ノード10は分散型台帳システムにアクセス可能に構成されていればよく、必ずしも分散型台帳システムを構成する態様に限定されない。なお、各ノードはネットワークNを介さずに直接P2P接続されてもよい。
Typically, the node 10 is a mobile phone, a smartphone, a PC (Personal Computer), a PDA (Personal Digital Assistants), a tablet, a wearable terminal, a server device, a game machine, or the like. The
以下の説明では、ノード10A,10B,10Cのユーザを、それぞれユーザA,B,Cとする。ユーザA,B,Cのそれぞれにはアクセス管理システム1で一意な識別子が割り当てられている。識別子は、例えば、ユーザがアクセス管理システム1に登録を行う場合に付与される一意な識別子や、メールアドレス、ノードの識別子、ノードにインストールされるアプリケーションにより識別されるID等である。
In the following description, the users of the
一例として、ユーザAを操作者、ノード10Aを操作ノードとし、ユーザB,Cを承認者、ノード10B,10Cを承認ノードとして説明する。なお、操作ノードと承認ノードとは別ノードである必要はなく、単一のノードが操作ノードと承認ノードとの双方の機能を有する構成でもよい。また、各ノードのユーザは一人に限定されず、1つのノードが複数のユーザによって共有されてもよい。
As an example, user A will be described as an operator,
データベース30は、本実施形態ではネットワークNに接続される、ストレージ管理用のサーバに構築される。なお、これに限定されず、データベース30は、例えばネットワークNに接続されるWEBサーバ上に構築されてもよい。
In this embodiment, the
なお、本実施形態では、アクセス管理システム1の各構成は、ネットワークNを介して接続される例を説明するが、これに限定されない。例えば、ノード10はプライベートなネットワークに接続され、データベース30はノード10が接続されるプライベートなネットワークとインターネットを介して接続される構成でもよい。同様に、ノード10はインターネットを介して接続され、データベース30はインターネットに接続可能なプライベートなネットワークに接続される構成でもよい。
In the present embodiment, each configuration of the
<2.データベース30>
データベース30には、アクセス管理システム1において管理される鍵の情報が登録されている。一例として、データベース30には、公開鍵と、暗号化された秘密鍵と、が対応付けられたレコードが登録されている。この場合には、後述するトランザクションには公開鍵と、暗号化された秘密鍵のハッシュ値が含まれることが好ましい。なお、後述するように、トランザクションに公開鍵の本体が含まれる場合には、データベース30はなくてもよい。また、データベース30の各レコードは、鍵の所有者であるユーザの識別子や、登録されている鍵に操作を行ったトランザクションのID、ユーザの信頼度を示す情報等を含んでもよい。ユーザの信頼度を示す情報は、例えば、アクセス管理システム1においてそのユーザが過去に不正を行ったか等を示す情報である。さらに、データベース30には、公開鍵や秘密鍵の識別子が管理される構成でもよい。<2.
Key information managed by the
<3.ノード10>
<3−1.操作ノード(ノード10A)>
次に、図2を用いて操作ノードであるノード10Aの機能構成について説明する。図2は、本実施形態に係るノード10Aの機能ブロック図である。図2に示すように、ノード10Aは、記憶部130と、鍵取得部111と、鍵検証部112と、トランザクション生成部114と、署名実行部115と、データベース制御部116と、を有している。さらに、図2に示すように、記憶部130には、ユーザAの秘密鍵と、分散型台帳131が記録されている。分散型台帳131は、分散型台帳システムを構成する複数のノード10に格納される分散型データベースである。ただし、すべてのノード10が分散型台帳131を有している必要はなく、一部のノード10のみが分散型台帳131を有している構成でもよい。<3. Node 10>
<3-1. Operation node (
Next, the functional configuration of the
(1)分散型台帳
図3乃至図5は、分散型台帳131(分散型データベースの一例である。)で管理するトランザクションのデータ構造の一部を模式的に示す図である。分散型台帳131では、複数のトランザクションそれぞれを格納したブロックが、1列に連なった数珠つなぎの構造で記録されている。なお、図3乃至図5の例では、1つのブロックは1つのトランザクションしか有していない例を示しているが、1つのブロックが複数のトランザクションを有してもよい。また、トランザクションは必ずしもブロックに格納されている必要はなく、トランザクションそのものが数珠つなぎとなっている構成でもよい。(1) Distributed Ledger FIGS. 3 to 5 are diagrams schematically showing a part of a transaction data structure managed by the distributed ledger 131 (an example of a distributed database). In the distributed
図3は、分散型台帳131において管理される鍵生成トランザクション(第1トランザクションの一例である。)を含むブロック1の構造の一例を示す図である。鍵生成トランザクションは、生成した新たな鍵の承認を求めるトランザクションである。図3では一例として、ユーザA(第1ユーザの一例である。)が生成した鍵(第1鍵の一例である。)の承認のための鍵生成トランザクションを示している。
FIG. 3 is a diagram showing an example of the structure of
鍵生成トランザクションには、例えば、以下のデータが格納されている。
・ユーザAの生成された鍵のデータ
・ユーザAの署名
・他ユーザ(承認者ともいう。1以上の第2ユーザの一例である。)の署名For example, the following data is stored in the key generation transaction.
-Data of the key generated by user A-Signature of user A-Signature of another user (also referred to as an approver, which is an example of one or more second users).
生成された鍵のデータは、ユーザAが新たに使用する鍵を識別可能な情報であり、例えば鍵生成トランザクションにおいて承認される鍵ペアの公開鍵のハッシュ値である。なお、生成された鍵のデータとして、公開鍵のハッシュ値の代わりに公開鍵のデータそのものや、公開鍵のアクセス管理システム1において一意な識別子が鍵生成トランザクションに格納される構成でもよい。また、鍵生成トランザクションは、さらに生成される公開鍵あるいは既存の別の公開鍵で暗号化された秘密鍵を含んでもよい。また、生成される公開鍵と秘密鍵の鍵ペアは、ユーザA個人の鍵ペアに限定されず、ユーザAが提供するサービスで利用される鍵ペアでもよい。
The generated key data is information that can identify the key newly used by the user A, for example, a hash value of the public key of the key pair approved in the key generation transaction. As the generated key data, instead of the hash value of the public key, the public key data itself or a unique identifier in the public key
ユーザAの署名は、鍵生成トランザクションにおいて承認される鍵ペアの秘密鍵を用いて生成されたデジタル署名である。なお、以下の説明では「デジタル署名」を単に「署名」ともいい、「鍵を用いてデジタル署名を生成」することを、単に「署名する」や「署名を行う」ともいう。 The user A's signature is a digital signature generated using the private key of the key pair approved in the key generation transaction. In the following description, "digital signature" is also simply referred to as "signature", and "generating a digital signature using a key" is also referred to simply as "signing" or "signing".
承認者の署名は、ユーザA以外の任意の数のユーザが、生成された鍵を承認する際に、自身の秘密鍵を用いて生成した署名である。図3の例では、鍵生成トランザクションには2人のユーザ(ユーザB,C)の署名が含まれているが、承認者の署名の数は、1以上の任意の数でよい。また、承認者として署名を生成するユーザは、例えば、ユーザA(つまり、新たに鍵を生成するユーザ)が指定することができる。他にも、承認者は、アクセス管理システム1に含まれるノード10のユーザからランダムに選択されてもよいし、あらかじめアクセス管理システム1の管理者によって選択されたユーザでもよい。また、必要な承認者の署名の数は、あらかじめアクセス管理システム1の管理者により定められてもよいし、ユーザAにより指定されてもよいし、ランダムに決定されてもよい。つまり、鍵生成トランザクションにおいて承認者として選ばれるユーザは、固定ではなく不定である。
The approver's signature is a signature generated by any number of users other than user A using their own private key when approving the generated key. In the example of FIG. 3, the key generation transaction includes the signatures of two users (users B and C), but the number of signatures of the approver may be any number of 1 or more. Further, the user who generates the signature as the approver can be designated by, for example, the user A (that is, the user who newly generates the key). In addition, the approver may be randomly selected from the users of the node 10 included in the
なお、本実施形態では、各ユーザの署名は、鍵生成トランザクションのうち、署名が生成される領域を除いたデータ(すなわち、「ユーザAの生成された鍵のデータ(本実施形態では公開鍵のハッシュ値)」)のハッシュ値をダイジェストとし、自身の秘密鍵を用いて当該ダイジェストを暗号化することで生成される。 In the present embodiment, the signature of each user is the data excluding the area where the signature is generated in the key generation transaction (that is, the data of the key generated by the user A (in the present embodiment, the public key). Hash value) ”) is used as a digest, and it is generated by encrypting the digest using its own private key.
図4は分散型台帳131において管理される鍵更新トランザクション(第2トランザクションの一例である。)を含むブロックB2の構造の一例を示す図である。鍵更新トランザクションは、アクセス管理システム1において承認された鍵(第1鍵の一例である。)を新たな鍵(第2鍵の一例である。)に更新することについて、承認を求めるためのトランザクションである。図4では一例として、図3に示した鍵生成トランザクションにおいて承認されたユーザAの鍵についてn回目の更新を行う際の鍵更新トランザクションを示している。
FIG. 4 is a diagram showing an example of the structure of block B2 including a key update transaction (an example of a second transaction) managed in the distributed
鍵更新トランザクションには、例えば、以下のデータが格納されている。
・1つ前のトランザクションデータのハッシュ値
・ユーザAの更新済みの鍵のデータ
・ユーザAの署名
・他ユーザ(承認者)の署名
なお、鍵更新トランザクションは、上記の他に、1つ前のトランザクションへのポインタを含んでもよい。For example, the following data is stored in the key update transaction.
-Hash value of the previous transaction data-Data of the updated key of user A-Signature of user A-Signature of another user (approver) In addition to the above, the key update transaction is the previous one. It may include a pointer to a transaction.
1つ前のトランザクションとは、鍵のn回目の更新を行う鍵更新トランザクションの場合、鍵のn−1回目の更新を行ったトランザクションを指す。なお、今回の鍵更新トランザクションが初めて鍵を更新するものである場合、1つ前のトランザクションは、鍵生成トランザクションを指す。鍵更新トランザクションの1つ前のトランザクションも当然さらに1つ前のトランザクションデータのハッシュ値を含む構成である。このように、すべての鍵更新トランザクションは、鍵生成トランザクションまで数珠つなぎとなるデータ構造を有している。そうすると、鍵更新トランザクションは、鍵が生成されたトランザクションから鍵更新トランザクションまでのすべての鍵の更新履歴のハッシュ値を含んでいることになる。鍵更新トランザクションがこのような構成をとることで、途中のトランザクションに改ざんが行われたとしても、検知が容易になる。 The previous transaction refers to the transaction in which the key is updated n-1st in the case of the key update transaction in which the key is updated nth time. When the key update transaction this time is the one that updates the key for the first time, the previous transaction refers to the key generation transaction. Of course, the transaction immediately before the key update transaction is also configured to include the hash value of the transaction data immediately before. In this way, every key update transaction has a data structure that is linked up to the key generation transaction. Then, the key update transaction will include the hash value of the update history of all keys from the transaction in which the key was generated to the key update transaction. By adopting such a configuration in the key update transaction, even if the transaction in the middle is tampered with, it becomes easy to detect.
更新済みの鍵のデータは、例えば鍵更新トランザクションにおいて、新たな鍵として承認される更新後の公開鍵のハッシュ値である。なお、更新済みの鍵データは新たな鍵を識別可能な情報であればよく、例えば公開鍵の識別子でもよい。鍵更新トランザクションには、さらに更新後の公開鍵で暗号化された更新後の秘密鍵が含まれてもよい。 The updated key data is, for example, a hash value of the updated public key approved as a new key in a key update transaction. The updated key data may be any information that can identify the new key, and may be, for example, a public key identifier. The key update transaction may further include the updated private key encrypted with the updated public key.
ユーザAの署名は、更新前後のそれぞれの秘密鍵を用いて生成された署名である。言い換えると、今回(n回目)の更新後の秘密鍵と、前回(n−1回目)の更新後の秘密鍵とを用いて生成された署名である。ただし、鍵更新トランザクションにおいて更新される鍵が、ユーザAが提供するサービスで利用される鍵等、ユーザA自身の署名に用いる鍵とは別の鍵である場合には、ユーザAは署名用の鍵を用いて署名を生成することも可能である。 The signature of the user A is a signature generated by using the respective private keys before and after the update. In other words, it is a signature generated by using the secret key after the update of this time (nth time) and the secret key after the update of the previous time (n-1th time). However, if the key updated in the key update transaction is a key different from the key used for the signature of the user A itself, such as the key used in the service provided by the user A, the user A is used for the signature. It is also possible to generate a signature using a key.
承認者の署名は、ユーザA以外の任意の数のユーザが、更新された鍵を承認する際に、自身の秘密鍵を用いて生成した署名である。承認者の署名は、例えば鍵更新トランザクションの起源となる鍵生成トランザクションが有する承認者の署名と同一のユーザの署名である。ただし、これに限定されず、承認者として署名するユーザ及びその数は、鍵更新トランザクションのたびにユーザA(鍵の更新者)が選択する構成でもよいし、ランダムに決められる構成でもよいし、更新の回数に応じて署名するユーザをあらかじめアクセス管理システム1の管理者が設定しておく構成でもよい。つまり、鍵更新トランザクションにおいて承認者として選ばれるユーザは、固定ではなく不定である。
The approver's signature is a signature generated by any number of users other than user A using their own private key when approving the updated key. The approver's signature is, for example, the same user's signature as the approver's signature of the key generation transaction that is the origin of the key update transaction. However, the present invention is not limited to this, and the user who signs as an approver and the number thereof may be selected by user A (key updater) for each key update transaction, or may be randomly determined. The administrator of the
鍵更新トランザクションにおいても、各ユーザの署名は、鍵更新トランザクションのうち、署名を行う領域を除いたデータ(すなわち、「1つ前のトランザクションデータのハッシュ値」と「ユーザAの更新済みの鍵のデータ(本実施形態では公開鍵のハッシュ値)」)のハッシュ値をダイジェストとし、自身の秘密鍵を用いて当該ダイジェストを暗号化することで生成される。 Also in the key update transaction, the signature of each user is the data excluding the area to be signed in the key update transaction (that is, "hash value of the previous transaction data" and "user A's updated key". It is generated by using the hash value of data (the hash value of the public key in this embodiment) ”) as a digest and encrypting the digest using its own private key.
図5は分散型台帳131において管理される鍵失効トランザクション(第3トランザクションの一例である。)を含むブロックB3の構造の一例を示す図である。鍵失効トランザクションは、アクセス管理システム1において生成した鍵を失効させるトランザクションである。図5では一例として、図3に示した鍵生成トランザクションにおいて生成したユーザAの鍵を失効させる鍵失効トランザクションを示している。
FIG. 5 is a diagram showing an example of the structure of block B3 including a key revocation transaction (an example of a third transaction) managed in the distributed
鍵失効トランザクションには、例えば、以下のデータが格納されている。
・1つ前のトランザクションデータのハッシュ値
・ユーザAの鍵の失効情報
・ユーザAの署名
・他ユーザ(承認者)の署名
なお、鍵失効トランザクションは、上記の他に、1つ前のトランザクションへのポインタを含んでもよい。For example, the following data is stored in the key revocation transaction.
-Hash value of the previous transaction data-Key revocation information of user A-Signature of user A-Signature of another user (approver) In addition to the above, the key revocation transaction goes to the previous transaction. May include a pointer to.
ユーザAの鍵の失効情報は、ユーザAの鍵が失効したことを特定可能な情報である。失効情報は、例えば、鍵の失効日、失効理由等を含む。失効理由は、典型的には鍵の所有者からの申請(秘密鍵の紛失や盗難、サービスの利用停止等)の他、システム管理者による失効登録(利用者の義務違反等)が挙げられる。なお、失効情報には、さらに失効対象となる鍵を識別可能な情報(例えば公開鍵本体と暗号化された秘密鍵等)が含まれてもよい。 The key revocation information of the user A is information that can identify that the key of the user A has revoked. The revocation information includes, for example, the revocation date of the key, the reason for revocation, and the like. Reasons for revocation typically include an application from the key owner (lost or stolen private key, suspension of service, etc.), as well as revocation registration by the system administrator (violation of user obligations, etc.). The revoked information may further include information that can identify the key to be revoked (for example, a public key body and an encrypted private key).
ユーザAの署名は、例えば、失効対象となる鍵を用いて生成された署名である。ただし、鍵失効トランザクションにおいて失効される鍵が、ユーザAが提供するサービスで利用される鍵等、ユーザA自身の署名に用いる鍵とは別の鍵である場合には、ユーザAは署名用の鍵を用いて署名を生成することも可能である。なお、失効操作を行うのがユーザA以外のユーザ(すなわち失効対象の鍵の所有者以外のユーザ)である場合には、ユーザA(鍵の所有者)の署名はなくてもよい。この場合には、鍵失効トランザクションには、ユーザAの署名の代わりに失効操作者の署名が含まれる。 The signature of the user A is, for example, a signature generated by using the key to be revoked. However, if the key revoked in the key revocation transaction is a key different from the key used for the signature of the user A itself, such as the key used in the service provided by the user A, the user A is used for the signature. It is also possible to generate a signature using a key. If the revocation operation is performed by a user other than user A (that is, a user other than the owner of the key to be revoked), the signature of user A (key owner) may not be required. In this case, the key revocation transaction includes the revocation operator's signature instead of the user A's signature.
承認者の署名は、ユーザA以外の任意の数のユーザが、鍵の失効を承認する際に、自身の秘密鍵を用いて生成した署名である。承認者として署名するユーザ及びその数は、鍵更新トランザクションと同様、起源となる鍵生成トランザクションに含まれる承認者の署名と同一のユーザの署名でもよいし、失効者やアクセス管理システム1の管理者が指定してもよいし、ランダムに決められてもよい。つまり、鍵失効トランザクションにおいて承認者として選ばれるユーザは、固定ではなく不定である。
The approver's signature is a signature generated by any number of users other than user A using their own private key when approving the revocation of the key. The user and the number of users to sign as an approver may be the same as the signature of the approver included in the key generation transaction that originated from the key update transaction, or may be the signature of the revoked person or the administrator of the
鍵失効トランザクションにおいても、各ユーザの署名は、鍵更新トランザクションのうち、署名が生成される領域を除いたデータ(すなわち、「1つ前のトランザクションデータのハッシュ値」と「ユーザAの鍵の失効情報」)のハッシュ値をダイジェストとし、自身の秘密鍵を用いて当該ダイジェストを暗号化することで生成される。 Even in the key revocation transaction, the signature of each user is the data excluding the area where the signature is generated in the key update transaction (that is, the "hash value of the previous transaction data" and the "user A key revocation". It is generated by using the hash value of "information") as a digest and encrypting the digest using its own private key.
図2に戻り、ノード10の各機能部の詳細について説明する。以下の説明では、鍵生成トランザクション、鍵更新トランザクション、及び鍵失効トランザクションをまとめて単「トランザクション」ともいう。 Returning to FIG. 2, the details of each functional unit of the node 10 will be described. In the following description, the key generation transaction, the key update transaction, and the key expiration transaction are collectively referred to as a simple "transaction".
(2)鍵取得部111
鍵取得部111(取得手段の一例である。)は、操作対象となる鍵の情報を取得する。例えば操作が鍵の生成である場合には、鍵取得部111は、鍵を生成することができる。生成される鍵は、分散型台帳131、及び/又はデータベース30において、ユーザAと関連付けられていない鍵である。(2)
The key acquisition unit 111 (an example of acquisition means) acquires information on the key to be operated. For example, when the operation is key generation, the
また、操作が鍵の更新である場合には、鍵取得部111は、更新後の新たな鍵を生成する。更新後の新たな鍵は、分散型台帳131、及び/又はデータベース30において、ユーザAと関連付けられていない鍵である。さらに鍵取得部111は、データベース30を参照して、更新対象の鍵を取得する。
If the operation is a key update, the
操作が鍵の失効である場合には、鍵取得部111は、処理を行わない。ただし、この場合にも、鍵取得部111は、データベース30を参照して失効対象の鍵を取得してもよい。
If the operation is a key revocation, the
なお、鍵取得部111はデータベース30から鍵を取得する際には、操作対象の鍵が承認されたトランザクションのIDやユーザAの識別子に基づいてデータベース30を検索することができる。また、鍵取得部111は、鍵を生成する代わりに、他ノードに鍵の生成を依頼し、他ノードにおいて生成された鍵を取得する構成でもよい。この場合、鍵を生成する他ノードは、例えばアクセス管理システム1の管理ノードであることが好ましい。
When acquiring the key from the
(3)鍵検証部112
鍵検証部112(検証手段の一例である。)は、鍵取得部111が取得した鍵のうち、少なくともユーザAが新たに使用する鍵について、正常に機能するか検証を行う。例えば鍵検証部112は、鍵取得部111が生成した鍵ペアや、他ノードに生成を依頼した鍵ペアについて、一方の鍵が暗号化したデータを他方の鍵で復号可能か否かの検証を行う。(3)
The key verification unit 112 (an example of the verification means) verifies whether at least the key newly used by the user A among the keys acquired by the
(4)トランザクション生成部113
トランザクション生成部113(生成手段の一例である。)は、鍵の操作に関するトランザクションを生成する。トランザクションの各構成の生成処理について具体的に説明する。(4)
The transaction generation unit 113 (an example of the generation means) generates a transaction related to a key operation. The generation process of each transaction configuration will be specifically described.
まず、トランザクション生成部113は、鍵のデータとして、例えば、鍵検証部112が検証した公開鍵から所定のハッシュ関数を使ってハッシュ値を生成する。なお、トランザクション生成部113は鍵のデータとして、公開鍵の識別子を用いてもよい。また、トランザクションが暗号化された秘密鍵を含む場合には、トランザクション生成部113は、秘密鍵に対応する公開鍵もしくは既存の別の公開鍵を用いて、秘密鍵の暗号化を行う。
First, the
次に、トランザクション生成部113は、生成するトランザクションが鍵更新トランザクション又は鍵失効トランザクションである場合には、1つ前のトランザクションのハッシュ値を生成する。今回生成するトランザクションの1つ前のトランザクションは、操作(更新・失効)対象の鍵が承認されたトランザクションである。そこでまず、トランザクション生成部113は、操作対象となる鍵が承認されたトランザクションIDを特定する。例えば、トランザクション生成部113は、トランザクションIDをユーザAから指定される構成でもよいし、ユーザAから更新対象となる鍵の指定を受け付け、データベース30を参照して、指定された鍵に対応するトランザクションIDを特定する構成でもよい。トランザクションIDを特定すると、トランザクション生成部113は、分散型台帳131を参照して、特定したトランザクションIDに対応するトランザクションを取得し、当該トランザクションのハッシュ値を算出する。
Next, when the transaction to be generated is a key update transaction or a key expiration transaction, the
なお、生成するトランザクションが鍵失効トランザクションの場合には、トランザクション生成部113は、さらに失効情報を生成する。失効情報は、例えばユーザAからの入力を受付けて生成することができる。
If the transaction to be generated is a key revocation transaction, the
最後にトランザクション生成部113は、ネットワークNにおいて一意なトランザクションIDを採番し、トランザクションを生成する。
Finally, the
(5)署名実行部114
署名実行部114は、ユーザAの署名用の鍵を用いてトランザクションに署名を行う。一例として、署名実行部114は、トランザクション生成部113が生成したトランザクションのうち、署名が格納される領域を除くデータのハッシュ値を計算し、ダイジェストを生成する。そして、署名実行部114は生成したダイジェストをユーザAの秘密鍵を用いて暗号化することで、署名を行う。ここで署名に用いられる秘密鍵は、例えば鍵生成トランザクションの場合は生成された秘密鍵であり、鍵更新トランザクションの場合は更新前後の秘密鍵であり、鍵失効トランザクションの場合は失効対象の秘密鍵である。なお、トランザクションで操作される鍵と署名を生成する鍵とは必ずしもペアである必要はない。例えば、トランザクションで操作される公開鍵が、ユーザAの署名用の秘密鍵に対応する公開鍵とは異なる場合には、署名実行部114は、ユーザAの既存の署名用の鍵(すなわちトランザクションで操作される鍵とは異なる鍵)を用いて、生成したダイジェストを暗号化することで署名を生成する。(5)
The
(6)送信部115
送信部115(送信手段の一例である。)は、署名実行部115が署名したトランザクションを、承認依頼先のノードに送信する。このとき、送信部115は、トランザクションに承認を依頼する(すなわち署名を求める)他ユーザ(承認者)の識別子を宛先に承認依頼先として設定する。例えば送信部115は、ノード10AのユーザAから、承認依頼先の承認者の指定を受け付ける構成でもよいし、アクセス管理システム1の管理者からあらかじめ定められている承認者を設定する構成でもよいし、アクセス管理システム1のユーザからランダムに選択して設定する構成でもよい。(6)
The transmission unit 115 (an example of the transmission means) transmits the transaction signed by the
なお、送信部115はトランザクションを承認依頼先に送信する際に、署名実行部115が行った署名を復号可能な公開鍵(つまり、新たに生成された公開鍵や、更新後の公開鍵、失効対象となる公開鍵)を併せて送信してもよい。また、送信部115は、トランザクションをネットワークN全体に送信することも可能である。
When the
(7)データベース制御部116
データベース制御部116(共有手段の一例である。)は、鍵検証部112が検証した鍵を分散型台帳システムを構成する他のノード(ノード10B、10C)と共有する。一例として、データベース制御部116は、鍵検証部112が検証した鍵をデータベース30に登録する。具体的には、鍵に対する操作が、「生成」である場合には、データベース制御部116は、データベース30に新なレコードを追加して、公開鍵と、当該公開鍵で暗号化された秘密鍵を登録する。(7)
The database control unit 116 (an example of the sharing means) shares the key verified by the
鍵に対する操作が、「更新」である場合には、データベース制御部116は、データベース30を参照して、更新対象の鍵に対応するレコードを抽出し、抽出したレコードに更新後の公開鍵及び当該公開鍵で暗号化された秘密鍵を追加する。なお、データベース制御部116は、更新前の公開鍵及び暗号化された秘密鍵を更新後の公開鍵及び暗号化された秘密鍵に置き換える構成でもよい。
When the operation for the key is "update", the
鍵に対する操作が、「失効」である場合には、データベース制御部116は、データベース30を参照して、失効対象の鍵に対応するレコードを削除する。なお、データベース制御部116は、レコードを削除する代わりに抽出したレコードに失効情報を追加する構成でもよい。
When the operation on the key is "revocation", the
データベース制御部116は、データベース30に対して鍵の登録を行う場合には、鍵と対応付けてトランザクション生成部114が生成したトランザクションの識別子(以下「トランザクションID」ともいう。)をデータベース30に登録しておくことが好ましい。
When the
なお、データベース制御部116が他のノードと鍵を共有する方法は、データベース30に登録する方法の他、鍵を直接他のノードに送信する方法でもよい。
The method in which the
また、本実施形態では、データベース制御部116は、送信部115がトランザクションを送信する前にデータベース30に検証された鍵を登録する。この場合、データベース制御部116は、送信されたトランザクションが承認者によって承認されなかった場合には、登録内容をロールバックする。ただし、登録処理のタイミングはこれに限定されず、データベース制御部116は、データベース制御部116は、検証された鍵のデータベース30への登録処理を、承認者によるトランザクションへの署名が完了した場合に行う構成でもよい。この場合、トランザクションにはユーザAの署名を復号可能な公開鍵そのものが含まれるか、送信部115がトランザクションを送信する際に、データベース制御部116があわせて公開鍵を送信することが好ましい。
Further, in the present embodiment, the
(8)処理フロー
図6を参照して、ノード10Aが鍵に対して操作を行う際の処理の流れを説明する。図6はノード10Aの処理フローの一例を示すフローチャートである。(8) Processing Flow With reference to FIG. 6, the processing flow when the
まず、鍵取得部111は、操作対象となる鍵を取得する(S11)。鍵取得部111は、操作内容に応じて、鍵を生成したり、データベース30から検索することで、操作対象となる鍵を取得する。
First, the
次に、鍵検証部112が、取得された鍵が正常に機能するか否かの検証を行う(S12)。鍵が正常に機能しない場合(S13:NO)には、ノード10Aは処理を終了する。なお、このときノード10Aはアクセス管理システム1の管理者に通報を行う構成でもよい。
Next, the
鍵が正常に機能した場合(S13:YES)、トランザクション生成部113がトランザクションを生成する。生成されたトランザクションに署名実行部114が署名を行う(S15)と、送信部115は、承認依頼先を設定して、トランザクションを送信する(S16)。一方、鍵が正常に機能した場合(S13:YES)、データベース制御部116は、検証された鍵をデータベース30に登録する(S17)。なお、S17の処理と、S14乃至S16の処理との前後関係は任意である。
When the key functions normally (S13: YES), the
なお、S17の処理がS16の処理に前に行われた場合には、データベース制御部116は、送信部115が送信したトランザクションが承認されなかった場合に、データベース30をロールバックし、鍵の登録を取り消すことができる。
If the processing of S17 is performed before the processing of S16, the
<3−2.承認ノード(ノード10B、10C)>
次に、図7を用いて承認ノードであるノード10B、10Cの機能構成について説明する。図7は、本実施形態に係るノード10Bの機能ブロック図である。なお、ノード10Cの機能構成はノード10Bと同様であるため説明を割愛する。図7に示すように、ノード10Bは、記憶部131と、トランザクション取得部121と、トランザクション検証部122と、署名実行部123と、送信部124とを有している。記憶部131には、ユーザBの秘密鍵の他、上述した分散型台帳131が記録されている。ただし、すべての承認ノードが分散型台帳131を有している必要はなく、一部の承認ノードが有している構成でもよい。<3-2. Approval node (
Next, the functional configuration of the
(1)トランザクション取得部121
トランザクション取得部121は、ネットワークNに送信されたトランザクションを取得する。例えばトランザクション取得部121は、受信したトランザクションから、自ノード宛に署名依頼がされているトランザクションを抽出することが可能である。(1)
The
(2)トランザクション検証部122
トランザクション検証部122は、取得したトランザクションの正当性の検証を行う。
例えば、トランザクション検証部122は、取得したトランザクションから署名を行う領域を除いたデータからハッシュ値を算出し、復号したダイジェストと突合することでユーザAの署名を検証する。これによって、操作者がユーザAであること、及びトランザクションが改ざんされていないことを検証することができる。(2)
The
For example, the
さらにトランザクション検証部122は、トランザクションに含まれるユーザAの署名の検証を行ってもよい。具体的には、トランザクション検証部122は、データベース30を参照し、取得したトランザクションのIDに対応するレコードを抽出する。次に抽出したレコードからユーザAの公開鍵を取得して、ユーザAの署名からダイジェストを復号する。なお、トランザクションに公開鍵そのものが含まれている場合や、トランザクションに公開鍵が添付されて送信されている場合等には、トランザクション検証部122は、必ずしもデータベース30から公開鍵を検索する必要はない。
Further, the
なお、トランザクション検証部122は、鍵更新トランザクションの場合には、更新前後の秘密鍵によって行われたそれぞれの署名を検証する。ただし、鍵更新トランザクションにおいて更新される鍵がユーザAの署名用の鍵とは異なる鍵ペアや共通鍵の場合には、鍵更新トランザクションにはユーザAの既存の署名用の鍵による署名が含まれることになる。この場合には、トランザクション検証部122は、署名用の鍵によって生成されたユーザAの署名を検証する。また、鍵失効トランザクションであって、失効操作者がユーザAでない場合には、失効操作者の署名を検証する。
In the case of a key update transaction, the
さらに、トランザクション検証部122は、上記の他、トランザクションに含まれるその他のデータが適切か否かを検証してもよい。例えば、鍵更新トランザクションや鍵失効トランザクションの場合、トランザクションに含まれる1つ前のトランザクションのハッシュ値が正しい値であるか否かを、1つ前のトランザクションのハッシュ値を算出して検証してもよい。また、例えば、トランザクションに含まれる鍵のデータが正しいか否かを、データベース30に登録されているデータと突合して検証してもよい。具体的には、トランザクションに公開鍵のハッシュ値が含まれる場合には、トランザクション検証部122は、署名を復号して得た公開鍵のハッシュ値と、データベース30に登録されている公開鍵からハッシュ値を算出し、突合することができる。
Further, the
(3)署名実行部123
署名実行部123は、トランザクション検証部122が正当性を検証したトランザクションについて、ユーザBが承認依頼先として指定されているトランザクションである場合には、ユーザBの署名用の鍵を用いてトランザクションに署名を行う。他方、ユーザBが署名を求められていないトランザクションである場合には、処理を行わない。(3)
The
(4)送信部124
送信部124は、署名実行部123が署名したトランザクションを送信する。このとき、送信部124は、ノード10AのユーザAから、署名を依頼した承認者のうち、未署名のユーザがいる場合には、当該未署名のユーザ宛にトランザクションを転送する構成でもよいし、未署名のユーザの有無にかかわらず、ユーザAにトランザクションを返送する構成でもよい。(4)
The
さらに送信部124は、トランザクション取得部121が取得したトランザクションにおいて、未署名のユーザがいなかった場合には、ネットワークN全体にトランザクションを送信することで、ネットワークNに接続するノード10の分散型台帳131にトランザクションを登録することも可能である。
Further, the
(5)処理フロー
図8を参照して、ノード10Bがトランザクションを承認する際の処理の流れを説明する。図8はノード10Bの処理フローの一例を示すフローチャートである。(5) Processing Flow With reference to FIG. 8, the processing flow when the
まず、トランザクション取得部121は、ネットワークNからトランザクションを取得する(S21)。次に、トランザクション検証部122が、取得したトランザクションの検証を行う(S22)
First, the
検証の結果、トランザクションが否認されるべきと判断された場合(S23:NO)には、ノード10Bは処理を終了する。なお、このときノード10Bはアクセス管理システム1の管理者に通報を行う構成でもよい。
If it is determined as a result of the verification that the transaction should be denied (S23: NO), the
他方、検証の結果、トランザクションが承認されるべきと判断された場合(S23:YES)、であって、承認依頼先にノードBが指定されている場合(S24:YES)には、署名実行部123がユーザBの秘密鍵を用いて署名を行う(S25)。 On the other hand, if it is determined as a result of verification that the transaction should be approved (S23: YES), and node B is specified as the approval request destination (S24: YES), the signature execution unit. 123 signs using the private key of user B (S25).
最後に、送信部124が、トランザクションを送信する(S26)。このとき送信部124は、承認依頼先に設定されているユーザに、未承認のユーザがいる場合には、当該未承認のユーザ又はユーザAにトランザクションを送信する。他方、未承認のユーザがいない場合には、各ノード10にネットワークN全体に送信する。
Finally, the
<4.利用例>
図9を参照して、アクセス管理システム1において管理される鍵の利用方法の一例について説明する。図9は、当該鍵を使ったアクセス制御の仕組みを説明するための模式図である。図9の例では、ノード10Aがノード10Bの管理するデータ等にアクセスを行う際に、ノード10Aを利用するユーザAを、ノード10Bが認証(本人確認)する場合を示している。<4. Usage example>
An example of how to use the key managed in the
まずノード10Bは、ランダムに生成したメッセージ(平文)をノード10Aに送信する。なお、メッセージは、一時的に生成した本人確認用の任意のデータを意味する。ノード10Aは、受信したメッセージ本文(平文)に対して、ハッシュ関数を使ってハッシュ値(メッセージダイジェスト)を求める(矢印(1))。次に、そのメッセージダイジェストを、記憶部130に記憶しているユーザAの秘密鍵で暗号化する(矢印(2))。ノード10Aは、メッセージに、署名に利用した秘密鍵に対応する公開鍵を識別する情報(例えば公開鍵のハッシュ値や識別子(ID)である。以下では、公開鍵を識別する情報を「公開鍵ID」ともいう。)を添付し(矢印(3))、ノード10Bに送信する(矢印(4))。なお、公開鍵IDの代わりに、当該の公開鍵を登録したトランザクションIDや公開鍵そのものあるいはトランザクションのデータそのものをメッセージに添付する方法も考えられる。
First, the
一方、メッセージを受信したノード10Bは、分散型台帳131を参照して、メッセージに添付された公開鍵IDに基づいて、当該公開鍵IDに対応する公開鍵への操作を承認したトランザクションを検索し、抽出する。さらにノード10Bは、抽出したトランザクションを検証する。ここでの検証処理は、上述したトランザクション検証部122の検証処理と同様である。
On the other hand, the
なお、このとき、ノード10Bは、抽出したトランザクションのあとに、メッセージに添付された公開鍵IDに対応する鍵をさらに更新又は失効させるトランザクションが、分散型台帳131に含まれるか否かを判定することが好ましい。具体的には、ノード10Bは、抽出したトランザクション(すなわちメッセージに添付された公開鍵IDに対応する鍵への操作を承認したトランザクション)のハッシュ値を含むトランザクションが分散型台帳131に登録されているか否かを判定する。抽出したトランザクションのハッシュ値を含むトランザクションが分散型台帳131に登録されている場合には、メッセージに添付された公開鍵IDに対応する公開鍵はすでに失効していることになる。この場合には、ノード10Bは、ユーザAの署名が不正なものであると判断し、ユーザAを認証しないことが好ましい。
At this time, the
なお、ノード10Bが、抽出したトランザクションのハッシュ値を含むトランザクションについて、さらにそのハッシュ値を含むトランザクションが分散型台帳131に存在するか否かを繰り返し検証することにより、ユーザAの最新の鍵の情報を確認することができる。
Note that the
ノード10Bは、抽出したトランザクションにおける承認者を特定し、データベース30を参照して特定した承認者の公開鍵を取得する。取得した承認者の公開鍵を用いて、特定したトランザクションに含まれる承認者の署名を検証し、承認者の正当性を確認する(矢印(5))。つまり、この例では、ユーザAの公開鍵が承認されたトランザクションがデジタル証明書の代わりとしてユーザAの公開鍵の正当性(信頼性)を証明しているといえる。
なお、ノード10Bが、さらに、特定したトランザクションに含まれるユーザAの公開鍵のハッシュ値(公開鍵ID)と、データベース30から取得したユーザAの公開鍵にハッシュ関数を用いて求めたハッシュ値とを比較して、トランザクションIDが今回用いられている秘密鍵を承認するためのものであったかを確認する構成も可能である。
Further, the
さらにノード10Bは、ユーザAの公開鍵を用いてユーザAの署名を復号する(矢印(6))とともに、メッセージ本文(平文)からノード10Aと同じハッシュ関数を使ってハッシュ値(メッセージダイジェスト)を求め(矢印(7))、両者を突合してチェックする(矢印(8))ことでユーザAを認証する。なお、トランザクションが公開鍵そのものを含む構成の場合には、ノード10Bは特定したトランザクションからユーザAの公開鍵を取得することが可能である。
Further, the
このように、本実施形態に係るアクセス管理システム1によると、ユーザは使用する鍵が1以上のユーザから承認されたトランザクションによって、ユーザの鍵の正当性(信頼性)を証明することができる。すなわち、ユーザの鍵の信頼性をユーザ相互に担保することが可能となるため、仮に、あるユーザの信頼性が損なわれた場合でも承認者の信頼性に基づいてシステム全体の信頼性を継続することができる。さらに、鍵の失効についてもユーザ相互で承認することで、従来のCRL(Certificate Revocation List)による一元管理が不要になる。
As described above, according to the
<ハードウェア構成>
以下、図10を参照しながら、第1の実施形態及び第2の実施形態において上述してきたノード10、及びデータベース30をコンピュータ800により実現する場合のハードウェア構成の一例を説明する。なお、それぞれの装置の機能は、複数台の装置に分けて実現することもできる。<Hardware configuration>
Hereinafter, with reference to FIG. 10, an example of a hardware configuration in which the node 10 and the
図10に示すように、コンピュータ800は、プロセッサ801、メモリ803、記憶装置805、入力I/F部807、データI/F部809、通信I/F部811、及び表示装置813を含む。
As shown in FIG. 10, the
プロセッサ801は、メモリ803に記憶されているプログラムを実行することによりコンピュータ800における様々な処理を制御する。例えば、ノード10A、10Bの鍵取得部111や、鍵検証部112、データベース制御部116、トランザクション生成部114、署名実行部115、トランザクション取得部121、トランザクション検証部122、署名実行部123、送信部124、などは、メモリ803に一時記憶された上で、主にプロセッサ801上で動作するプログラムとして実現可能である。
The
メモリ803は、例えばRAM(Random Access Memory)等の記憶媒体である。メモリ803は、プロセッサ801によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。
The
記憶装置805は、例えばハードディスクドライブ(HDD)やフラッシュメモリ等の不揮発性の記憶媒体である。記憶装置805は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。この他、記憶装置805は、分散型台帳131を記憶することも可能である。このようなプログラムやデータは、必要に応じてメモリ803にロードされることにより、プロセッサ801から参照される。
The
入力I/F部807は、ユーザからの入力を受け付けるためのデバイスである。入力I/F部807の具体例としては、キーボードやマウス、タッチパネル、各種センサ、ウェアラブル・デバイス等が挙げられる。入力I/F部807は、例えばUSB(Universal Serial Bus)等のインタフェースを介してコンピュータ800に接続されても良い。
The input I /
データI/F部809は、コンピュータ800の外部からデータを入力するためのデバイスである。データI/F部809の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置等がある。データI/F部809は、コンピュータ800の外部に設けられることも考えられる。その場合、データI/F部809は、例えばUSB等のインタフェースを介してコンピュータ800へと接続される。
The data I /
通信I/F部811は、コンピュータ800の外部の装置と有線又は無線により、インターネットNを介したデータ通信を行うためのデバイスである。通信I/F部811は、コンピュータ800の外部に設けられることも考えられる。その場合、通信I/F部811は、例えばUSB等のインタフェースを介してコンピュータ800に接続される。
The communication I /
表示装置813は、各種情報を表示するためのデバイスである。表示装置813の具体例としては、例えば液晶ディスプレイや有機EL(Electro−Luminescence)ディスプレイ、ウェアラブル・デバイスのディスプレイ等が挙げられる。表示装置813は、コンピュータ800の外部に設けられても良い。その場合、表示装置813は、例えばディスプレイケーブル等を介してコンピュータ800に接続される。
The
[その他の実施形態]
以上説明した各実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るととともに、本発明にはその等価物も含まれる。また、各実施形態は例示であり、異なる実施形態で示した構成の部分的な置換または組み合わせが可能であることは言うまでもなく、これらも本発明の特徴を含む限り本発明の範囲に包含される。[Other embodiments]
Each of the embodiments described above is for facilitating the understanding of the present invention, and is not for limiting the interpretation of the present invention. The present invention can be modified / improved without departing from the spirit thereof, and the present invention also includes an equivalent thereof. Further, each embodiment is an example, and it goes without saying that partial substitutions or combinations of the configurations shown in different embodiments are possible, and these are also included in the scope of the present invention as long as the features of the present invention are included. ..
例えば、既述の実施形態において、トランザクションに対してマイニングは行われない例を説明したが、これに限定されず、PoWの技術を用いてマイニングを行ったうえで、トランザクションを分散型台帳131に登録する構成でもよい。
For example, in the above-described embodiment, an example in which mining is not performed for a transaction has been described, but the present invention is not limited to this, and after mining is performed using PoW technology, the transaction is transferred to the distributed
また、既述の実施形態において、トランザクションにおいて操作が承認されるユーザAの鍵と、当該トランザクションに署名を生成するユーザAの鍵とは対となる構成について説明した。しかしこれに限定されず、トランザクションでは、ユーザAが署名を生成する鍵(例えば署名用の秘密鍵である。)とは異なる鍵ペアに対する操作が承認されてもよい。この場合、トランザクションには、当該トランザクションによって操作が承認される公開鍵とは異なる、既存の公開鍵と対になる秘密鍵による署名や、既存の公開鍵で暗号化された秘密鍵が含まれてもよい。トランザクション生成部113は、このようなトランザクションを生成するにあたり、操作対象となる公開鍵を識別する情報(ハッシュ値やID)や、操作対象となる公開鍵とは異なる既存の公開鍵で暗号化された秘密鍵を用いることができる。また、このとき署名実行部114は、トランザクションによって操作が承認される公開鍵とは異なる、既存の公開鍵と対になる秘密鍵によってトランザクションにユーザAの署名を生成する。さらに、この場合には、トランザクション検証部122は、トランザクション検証部122は、生成されたユーザAの署名を、署名を行った秘密鍵と対となるユーザAの既存の公開鍵を用いて検証する。
Further, in the above-described embodiment, the configuration in which the key of the user A whose operation is approved in the transaction and the key of the user A who generates the signature in the transaction are paired has been described. However, the transaction is not limited to this, and the user A may be authorized to operate on a key pair different from the key for generating the signature (for example, the private key for signature). In this case, the transaction includes a signature with a private key paired with an existing public key that is different from the public key for which the operation is authorized by the transaction, and a private key encrypted with the existing public key. May be good. In generating such a transaction, the
さらに、既述の実施形態では、アクセス管理システム1は、公開鍵暗号方式に基づく鍵ペアを管理する例について説明したが、これに限定されず、共通鍵暗号方式に基づく共通鍵を管理する構成でもよい。この場合、トランザクションには、共通鍵のハッシュ値、または既存の公開鍵で暗号化された共通鍵そのものや、ユーザAの署名用の鍵による署名が含まれる。なお、ここでいう署名用の鍵は、公開鍵暗号方式の秘密鍵だけでなく、メッセージ認証符号(MAC値)の生成・復号を行う認証用の共通鍵も含む。共通鍵の場合、署名はメッセージ認証符号(MAC値)を指す。トランザクション生成部113は、このようなトランザクションを生成するにあたり、操作対象となる共通鍵を識別する情報(ハッシュ値やID)を用いることができる。また、このとき署名実行部114は、トランザクションによって操作が承認される共通鍵、当該共通鍵とは異なる認証用の共通鍵、または既存の署名用の公開鍵と対になる秘密鍵によってトランザクションにユーザAの署名またはMAC値を生成する。さらに、この場合には、トランザクション検証部122は、トランザクション検証部122は、生成されたユーザAの署名を、今回操作対象となる共通鍵や、ユーザAの認証用の共通鍵、署名用の公開鍵を用いて検証する。
Further, in the above-described embodiment, the
1 アクセス管理システム
10A、10B、10C ノード
30 データベース
111 鍵取得部
112 鍵検証部
113 トランザクション生成部
113 データベース制御部
114 署名実行部
115 送信部
116 データベース制御部
121 トランザクション取得部
122 トランザクション検証部
123 署名実行部
124 送信部
130 記憶部
131 分散型台帳1
Claims (3)
第1ユーザのアクセス権限を示すための第1鍵であって、前記分散型データベースにおいて前記第1ユーザに関連づけられていない第1鍵を取得する取得手段、
前記第1鍵の検証を行う検証手段、
前記第1鍵に関する情報を、前記分散型データベースにアクセス可能な1以上の第2ユーザのコンピュータと共有する共有手段、
前記第1鍵の情報と、前記第1ユーザのデジタル署名とを含み、前記第1鍵の使用の承認を依頼する第1トランザクションを生成する生成手段、及び
前記第1トランザクションが、前記1以上の第2ユーザにデジタル署名され、前記分散型データベースに登録されるために、前記第1トランザクションを前記1以上の第2ユーザのコンピュータに送信する送信手段、
として機能させるプログラムであって、
前記取得手段は、さらに、
前記第1鍵に代えて第1ユーザのアクセス権限を示す第2鍵であって、前記分散型データベースにおいて前記第1ユーザに関連付けられていない第2鍵を取得し、
前記検証手段は、さらに、
前記第2鍵の検証を行い、
前記共有手段は、さらに、
前記第2鍵に関する情報を、前記1以上の第2ユーザのコンピュータと共有し、
前記生成手段は、さらに、
前記第1鍵を用いて生成されたデジタル署名と、前記第2鍵を用いて生成されたデジタル署名と、前記第1トランザクションのハッシュ値とを含み、前記第2鍵の使用の承認を依頼する第2トランザクションを生成し、
前記送信手段は、さらに、
前記第2トランザクションが、前記1以上の第2ユーザにデジタル署名され、前記分散型データベースに登録されるために、前記第2トランザクションを前記1以上の第2ユーザのコンピュータに送信する、プログラム。 A computer that has access to a distributed database in which transactions are managed,
An acquisition means for acquiring a first key for indicating the access authority of the first user and not associated with the first user in the distributed database.
Verification means for verifying the first key,
A sharing means for sharing information about the first key with one or more second user computers accessible to the distributed database.
The generation means for generating the first transaction including the information of the first key and the digital signature of the first user and requesting the approval of the use of the first key, and the first transaction are one or more of the above. A transmission means for transmitting the first transaction to the computer of the one or more second users in order to be digitally signed by the second user and registered in the distributed database.
It is a program that functions as
The acquisition means further
Instead of the first key, a second key indicating the access authority of the first user, which is not associated with the first user in the distributed database, is acquired.
The verification means further
After verifying the second key,
The sharing means further
Information about the second key is shared with the computers of the first or more second users.
The generation means further
Includes a digital signature generated using the first key, a digital signature generated using the second key, and a hash value of the first transaction, and requests approval for the use of the second key. Generate a second transaction,
The transmission means further
A program for transmitting the second transaction to the computer of the one or more second users so that the second transaction is digitally signed by the one or more second users and registered in the distributed database .
前記第1鍵が失効することを示す情報と、前記第1トランザクションのハッシュ値と、前記第1ユーザのデジタル署名とを含み、前記第1鍵の失効の承認を依頼する第3トランザクションを生成し、
前記送信手段は、さらに、
前記第3トランザクションが、前記1以上の第2ユーザにデジタル署名され、前記分散型データベースに登録されるために、前記第3トランザクションを前記1以上の第2ユーザのコンピュータに送信する
請求項1に記載のプログラム。 The generation means further
Generates a third transaction that includes information indicating that the first key is revoked, the hash value of the first transaction, and the digital signature of the first user, and requests approval for the revocation of the first key. ,
The transmission means further
The third transaction is digitally signed to the one or more second users, to be registered in the distributed database, to claim 1 for transmitting the third transaction to the one or more second user's computer Described program.
前記分散型データベースにアクセス可能な第1ノード及び1以上の第2ノードと、
を備え、
前記第1ノードは、
第1ユーザのアクセス権限を示すための第1鍵であって、前記分散型データベースにおいて前記第1ユーザに関連付けられていない第1鍵を取得する取得部と、
前記第1鍵の検証を行う第1検証部と、
前記第1鍵に関する情報を、前記第2ノードと共有する共有部と、
前記第1鍵の情報と、前記第1ユーザのデジタル署名とを含み、前記第2ノードに前記第1鍵の使用の承認を依頼する第1トランザクションを生成する生成部と、
前記第1トランザクションを、前記第2ノードに送信する第1送信部と、
を有し、
前記第2ノードは、
共有された前記第1鍵に関する情報と前記第1ユーザのデジタル署名に基づいて、前記第1トランザクションの正当性を検証する第2検証部と、
正当性が検証された前記第1トランザクションに対して、第2ユーザのデジタル署名を生成する署名部と、
前記第1トランザクションを前記分散型データベースに送信する第2送信部と、
を有し、
前記取得部は、さらに、
前記第1鍵に代えて第1ユーザのアクセス権限を示す第2鍵であって、前記分散型データベースにおいて前記第1ユーザに関連付けられていない第2鍵を取得し、
前記第1検証部は、さらに、
前記第2鍵の検証を行い、
前記共有部は、さらに、
前記第2鍵に関する情報を、前記第2ノードと共有し、
前記生成部は、さらに、
前記第1鍵を用いて生成されたデジタル署名と、前記第2鍵を用いて生成されたデジタル署名と、前記第1トランザクションのハッシュ値とを含み、前記第2鍵の使用の承認を依頼する第2トランザクションを生成し、
前記第1送信部は、さらに、
前記第2トランザクションが、前記第2ユーザにデジタル署名され、前記分散型データベースに登録されるために、前記第2トランザクションを前記第2ノードに送信する、
アクセス管理システム。 A decentralized database that manages transactions to authorize operations on keys that indicate user access rights, and
A first node and one or more second nodes that can access the distributed database,
Equipped with
The first node is
An acquisition unit that acquires the first key that is the first key for indicating the access authority of the first user and is not associated with the first user in the distributed database.
The first verification unit that verifies the first key and
A shared unit that shares information about the first key with the second node,
A generator that includes the information of the first key and the digital signature of the first user and generates a first transaction for requesting the second node to approve the use of the first key.
A first transmitter that transmits the first transaction to the second node,
Have,
The second node is
A second verification unit that verifies the validity of the first transaction based on the shared information about the first key and the digital signature of the first user.
A signature unit that generates a digital signature of the second user for the first transaction whose validity has been verified, and a signature unit.
A second transmitter that sends the first transaction to the distributed database,
Have a,
The acquisition unit further
Instead of the first key, a second key indicating the access authority of the first user, which is not associated with the first user in the distributed database, is acquired.
The first verification unit further
After verifying the second key,
The shared part further
Information about the second key is shared with the second node,
The generator further
Includes a digital signature generated using the first key, a digital signature generated using the second key, and a hash value of the first transaction, and requests approval for the use of the second key. Generate a second transaction,
The first transmission unit further
Sending the second transaction to the second node for the second transaction to be digitally signed by the second user and registered in the distributed database.
Access management system.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/006358 WO2019163040A1 (en) | 2018-02-22 | 2018-02-22 | Access management system and program thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019163040A1 JPWO2019163040A1 (en) | 2021-01-07 |
JP6976405B2 true JP6976405B2 (en) | 2021-12-08 |
Family
ID=67687158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020501912A Active JP6976405B2 (en) | 2018-02-22 | 2018-02-22 | Access control system and its programs |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6976405B2 (en) |
WO (1) | WO2019163040A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110852745B (en) * | 2019-10-12 | 2022-07-19 | 杭州云象网络技术有限公司 | Block chain distributed dynamic network key automatic updating method |
CN114024771B (en) * | 2021-12-27 | 2022-04-05 | 四川旷谷信息工程有限公司 | Cross-level control method for urban rail transit security system |
WO2024085178A1 (en) * | 2022-10-19 | 2024-04-25 | パナソニックIpマネジメント株式会社 | Information processing method, information processing device, and information processing system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1025672A1 (en) * | 1997-10-14 | 2000-08-09 | Certicom Corp. | Key validation scheme |
JP5858506B1 (en) * | 2015-04-09 | 2016-02-10 | 株式会社Orb | Virtual currency management program and virtual currency management method |
JP6550353B2 (en) * | 2016-07-21 | 2019-07-24 | 株式会社日立製作所 | Signature verification system, signature verification method and program |
-
2018
- 2018-02-22 WO PCT/JP2018/006358 patent/WO2019163040A1/en active Application Filing
- 2018-02-22 JP JP2020501912A patent/JP6976405B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2019163040A1 (en) | 2021-01-07 |
WO2019163040A1 (en) | 2019-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11196573B2 (en) | Secure de-centralized domain name system | |
CN109862041B (en) | Digital identity authentication method, equipment, device, system and storage medium | |
JP6547079B1 (en) | Registration / authorization method, device and system | |
US10708047B2 (en) | Computer-readable recording medium storing update program and update method, and computer-readable recording medium storing management program and management method | |
JP5749236B2 (en) | Key change management device and key change management method | |
JP2020010267A (en) | Distributed medical information sharing system, medical information provision server, and program | |
US11979392B2 (en) | Systems and methods for managing device association | |
EP3662403B1 (en) | Private data processing | |
US20200412554A1 (en) | Id as service based on blockchain | |
JP6976405B2 (en) | Access control system and its programs | |
US11218317B1 (en) | Secure enclave implementation of proxied cryptographic keys | |
JP2009033721A (en) | Group subordinate terminal, group administrative terminal, server, key updating system and key updating method thereof | |
JP2014006691A (en) | Device authentication method and system | |
JP6627043B2 (en) | SSL communication system, client, server, SSL communication method, computer program | |
EP4096160A1 (en) | Shared secret implementation of proxied cryptographic keys | |
JP2009212689A (en) | Automatic common key distribution system, client, third-person certification body side server, and automatic common key sharing method | |
JP6939313B2 (en) | Distributed authentication system | |
JP4552785B2 (en) | Encrypted communication management server | |
JP7230293B2 (en) | Management server, management system, management method, and program | |
JP2005202869A (en) | Personal information disclosure system, method and program | |
JP6524556B2 (en) | Authentication key replication system | |
JP2008219787A (en) | Key management system, key management program and ic card | |
KR100834576B1 (en) | Key management method and apparatus for providing secure communication on p2p network | |
KR102497440B1 (en) | Method and system for providing user information management service based on decentralized identifiers | |
JP5635555B2 (en) | Information providing apparatus, information providing system, and information providing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210803 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210929 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211015 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211109 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6976405 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |