METHOD AND DEVICE FOR CONTROLLING ACCESS TO A SERVICE USING A BLOCKCHAIN

DE602021041469T2Active Publication Date: 2025-10-29ALTEN
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602021041469
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-23
Filing Date
2021-12-23
Publication Date
2025-10-29
Estimated Expiration
2041-12-23

AI Technical Summary

Technical Problem

Existing blockchain access methods, both public and private, store sensitive data that can be dangerous when accessed without a client session, posing security risks.

Method used

A control method and device that utilize authentication via an identity provider to generate cryptographic key pairs based on a user's identity, ensuring secure access to a blockchain without storing sensitive data, using cryptographic random number generators and compression techniques to ensure deterministic key generation.

Benefits of technology

Enables secure, identity-based access to blockchain services without storing sensitive data, providing robust authentication and deterministic key generation for consistent access.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The present invention relates to communication networks implementing a blockchain (or "Blockchain"), and more specifically to access to a service using such a blockchain.

[0002] In many technical fields, such as network transactions via cryptocurrencies, what is used is what the expert calls a blockchain.

[0003] A blockchain is a technology implemented in a peer-to-peer network to transmit and store information contained in blocks without a central authority. Each block is added to the other blocks in the same chain after peer consensus, meaning after each peer (or network node) has verified and validated it. When a block, after validation and verification, is added to an existing chain, it stores a digital fingerprint (or hash) used to identify the previously added block from an initial piece of data, thus establishing the link that connects it to the rest of the blockchain. Secure, irrefutable, and permanent exchanges can therefore be carried out within a blockchain, resulting in a decentralized (i.e., without a central authority), transparent, secure, reliable, and anonymous network.

[0004] Several types of blockchain have been proposed, including those called "Hyperledger Fabric" (private and allowing the delimitation of roles between peers (or nodes), the provision of consensus services and decentralized applications, and the programming of smart contracts (or "chaincodes" - programs capable of carrying out several types of transactions between them)), "Ethereum" (public) and "Bitcoin" (public).

[0005] In a network implementing a Hyperledger Fabric blockchain, peer nodes (or "peer nodes") coexist. These nodes execute smart contracts (or chaincodes), access ledger data, approve transactions, and act as intermediaries with applications or services. Orderer nodes (or "orderer nodes") ensure blockchain consistency and deliver approved transactions to network peers and Managed Service Providers (MSPs) – certificate authorities that manage the X.509 certificates used to authenticate member identities and roles. US patent 2019 / 0340619 A1 describes a method for achieving complete control of a producer-to-consumer supply chain using a blockchain and an identity provider.

[0006] The invention relates more specifically to methods for accessing a blockchain from a user's identity provided by an identity provider (or "Identity Provider").

[0007] Currently, access to a public blockchain is standardized using a pair of asymmetric cryptographic keys, allowing access to a client account from an arbitrary text, such as BIP32. Access to a private blockchain, such as Hyperledger Fabric, requires a certificate signed by an authority in addition to an asymmetric key pair. Therefore, both public and private blockchains store data that allows a client to connect to the blockchain even in the client's absence. By retrieving this data, it becomes possible to access the blockchain without being logged into the client's (authenticated) session, which can be dangerous.

[0008] The invention is intended to exploit the context of a client (or user) to allow the latter to access a blockchain, implemented in a communication network, based on authentication of that user and without storage of the aforementioned data.

[0009] It is therefore proposed in particular a control method, on the one hand, intended to allow control of access to a first service using a blockchain implemented in a communication network, and, on the other hand, comprising a step according to claim 1.

[0010] Thus, we have a service that is based both on authentication (via an identity provider) and on a blockchain whose access depends on cryptographic keys directly linked to one's identity.

[0011] The control method according to the invention may include other features which may be taken separately or in combination, and in particular: In its first step, the first communication device can connect to a second communication device responsible for authentication; in its second step, a cryptographic random number generator (for example, of type chacha20) can be initialized with a secret and the user ID to obtain a random number, and then the cryptographic key pair can be generated from this random number; in the presence of the previous option, in its third step, before initialization, when the secret exceeds a predefined size, this secret can be compressed (for example, using a cryptographic hash function) to fit within this predefined size; in its third step, the user can provide the first service with the generated cryptographic key pair, one of which is a certificate representing a certified public key, in order to access the first service.

[0012] The invention also provides a computer program downloadable from a communication network and / or stored on a computer-readable medium and / or executable by at least one processor. This computer program is characterized by the fact that it includes instructions for executing the steps of a control method of the type described above, when executed on at least one processor-equipped device or at least one computer.

[0013] The invention also proposes a control device for controlling access to a first service using a blockchain implemented in a communication network.

[0014] This device is characterized by the fact that it includes at least one processing unit and at least one memory dedicated to performing the operations consisting, in the event of user access to a second service responsible for generating cryptographic key pairs: to control the use of this second service so that it connects to a first communication device belonging to an identity provider in order to request authentication of this user, and, in the event of authentication, that it provides a user identifier, which uniquely and stably identifies the user over time, then to trigger the use of this user identifier by the second service so that the latter generates a pair of cryptographic keys, then to control the exploitation of this pair so that the user accesses the first service to use the blockchain.

[0015] The invention will be better understood with the aid of the following description, given solely by way of example and made with reference to the accompanying drawings in which: [ Fig.1 ] there figure 1 illustrates schematically and functionally an example of a communication network implementing a blockchain and comprising a control device according to the invention, [ Fig.2 ] there figure 2 illustrates schematically and functionally an example of the implementation of a control device according to the invention, and [ Fig.3 ] there figure 3 schematically illustrates an example of an algorithm implementing a control method according to the invention.

[0016] The invention aims in particular to propose a control method, and an associated control device 1, intended to allow control of a user's access to a first service using a chain of blocks (or blockchain) implemented in a communication network 2 comprising 3-j nodes.

[0017] We have schematically and functionally represented on the figure 1 An example of communication network 2 implementing a blockchain and typically comprising 3-j nodes (here j = 1 to 6) allows communication devices (notably the one referenced as 4) to connect to it to exchange data and enable communication between users. These communication devices can be mobile phones (or "smartphones"), tablets, servers, or computers (desktop or laptop), for example. It should be understood that a 3-j node is also a communication device, but one belonging to communication network 2.

[0018] Here, communication equipment 4 is considered to be a mobile smartphone belonging to a user who is a client of the blockchain implemented in communication network 2 and used by at least one first service, and comprising at least part of a control device 1 according to the invention, which will be discussed later. The control method, according to the invention, is implemented when this user wishes to access this first service via their communication equipment 4.

[0019] It should be noted that in the example illustrated, but not limited to the figure 1 The control device 1 is distributed between the communication equipment 4 and another communication equipment 13 providing an intermediate service (for example, a web service). In this case, the communication equipment 4 can provide the human-machine interface to this intermediate service, which is responsible for performing all the operations necessary to access the first service.

[0020] As illustrated, but not limited to, by the example of the algorithm of the figure 3 A control method according to the invention includes a step 100-140 which can be implemented at least partially by a control device 1 according to the invention or by a dedicated computer program running on at least one processor unit or at least one computer. This dedicated computer program includes instructions for executing the steps of the control method and is downloadable from a communication network and / or stored on a computer-readable medium and / or executable by at least one processor (or processing unit) of a device (here, at least the communication device 4).

[0021] The aforementioned step 100-140 includes first of all a substep 100 in which the user accesses, by means of his communication equipment 4 (and via the possible communication equipment 13), a second service which is responsible for generating cryptographic key pairs.

[0022] The aforementioned step 100-140 then includes a substep 110 in which the user uses this second service to connect to a first communication device 5 belonging to an identity provider, in order to be authenticated. For example, this first communication device 5 could be a server, accessible via the communication network 2.

[0023] User authentication can be done conventionally by the user providing their username (or "login") and / or password (or "password"), for example.

[0024] If the user is not authenticated, the process ends and therefore the user cannot access the first blockchain-based service. Conversely, if authentication is successful, steps 100-140 then include a substep 120 in which the first communication device 5 provides the user, via the second service, with a user identifier (or "subject identifier"), which uniquely and permanently identifies them.

[0025] Step 100-140 then includes a substep 130 in which the second service uses the user identifier (provided in substep 120) to generate a cryptographic key pair which it transmits to the user (and more specifically to their communication equipment 4).

[0026] The 100-140 stage finally includes a sub-stage 140 in which the user exploits (by means of his communication equipment 4 and via a node 3-1) the cryptographic key pair (generated in sub-stage 130) in order to access the first service to use the blockchain.

[0027] Thanks to the invention, we have a service that allows us to move from authentication (via an identity provider) to a blockchain whose access depends on cryptographic keys for an identified and authenticated user.

[0028] It should be noted that in steps 100-140, and more specifically in substep 110, the first communication device 5 can connect to a second communication device 6 responsible for performing authentication. In this case, the identity provider delegates user authentication to an external company (public or private) that is authorized to do so and that owns the second communication device 6. For example, this second communication device 6 could be a server accessible via a communication network 14. Delegating authentication to an external company requires that the first communication device 5 have an application programming interface (API) that is, for example, compatible with OpenLD Connect.

[0029] It should also be noted that in steps 100-140, and more specifically in substep 130, the second service can begin by initializing a cryptographic random number generator with a secret piece of information (or a secret) and the user ID to obtain a random number. Then, the second service can generate the cryptographic key pair from this random number. This particular method of cryptographic key generation advantageously guarantees that the keys are deterministic, and therefore that the keys are the same each time for a given user and certificate (allowing for certain cryptographic operations because the keys are not ephemeral).

[0030] For example, the cryptographic random number generator can be of the chacha20 type. It is worth noting that chacha20 uses both a key and a nonce. For example, to avoid requesting secret information from the identity provider, the aforementioned key can be a shared key (i.e., used by all users), and the nonce can be derived from the user's data through the compression process (as with the secret being compressed, for example, with SHA256).

[0031] But other types of cryptographic random number generators can be used, including HC-128, Rabbit, Salsa20 / 12, SOSEMANUK and Trivium.

[0032] It should also be noted that in steps 100-140, and more specifically in substep 130, before initialization, when the secret information exceeds a predefined size, the second service can compress this secret information to fit within that predefined size. In this case, the compressed secret information is used to initialize the cryptographic random number generator.

[0033] For example, in substep 130, the second service can compress the secret information using a cryptographic hash function. For example, this cryptographic hash function could be SHA256, BLAKE-256, Keccak, Whirlpool, or MD6.

[0034] It should also be noted that when the blockchain is public, as is the case with Ethereum or Bitcoin, for example, user access to the first service only requires providing the cryptographic key pair (generated in substep 130). In this case, the cryptographic keys could be of type Secp256k1, for example. Conversely, when the blockchain is private, as is the case with Hyperledger Fabric, for example, user access to the first service requires the user to provide a cryptographic key pair, one of which is a certificate representing a public key certified in substep 130. In this case, the cryptographic keys could be of type P-256, for example. Also in this case, the public key must be certified by a certificate authority (or MSP, or Membership Service Provider).Therefore, to create a communication network 2 carrying the blockchain, one must have at least one Certificate Authority (or MSP) using, within this communication network 2, a membership system based on x.509 certificates and the P-256 elliptic curve, such as "Fabric-CA," and an administrator account of this Certificate Authority (or MSP) used to register users. It should be noted that it is the first communication device 5 that makes a request to an API of the MSP (for example, Fabric-CA) to obtain the certificate, using the public key for the user. If it is the first time the user uses the second service, there is no certificate yet (because they are not yet registered on the blockchain), and therefore the first communication device 5 makes another request to the MSP API (for example, Fabric-CA) to generate a certificate for the user.The first communication device 5 then sends the two cryptographic keys to the user's communication device 4. One of these keys is the certificate (which contains the certified public key), for example, encoded in PEM (Privacy Enhanced Mail). This new certificate is stored in the communication network 2 for future use. It is important to note that the certificate is considered here to be one of the two cryptographic keys.

[0035] It should also be noted that the second service used must be constant in its generation algorithm and over time, in order to regenerate the same keys for the same user.

[0036] As illustrated, but not limited to, on the figure 2 The control device 1 includes at least one processing unit 7 and at least one memory 8 suitable for carrying out the operations consisting, in the event of user access, via a node (here 3-1), to the second service, of controlling the use of this second service so that it connects to the first communication equipment 5 belonging to the identity provider in order to request user authentication, and, in the event of authentication, that it provides a user identifier, which uniquely and stably identifies the user over time, then triggering the use of this user identifier by the second service so that the latter generates a pair of cryptographic keys, then controlling the provision of at least this pair to the first service so that the user can access the latter.

[0037] The processing unit 7 can, for example, be a processor, possibly a digital signal processor (DSP). The memory 8 stores data files and computer program(s) whose instructions are intended to be executed by the processing unit 7 (or processor). This memory 8 can, for example, be of the RAM (Random Access Memory) type. This processing unit 7 and this memory 8 are arranged to perform together the operations contributing, in particular, to the control of access to the first service.

[0038] In the example illustrated, but not limited to the figure 2The control device 1 is arranged as a computer equipping the user's communication equipment 4 and the communication equipment 13 (providing the intermediate service). However, the control device 1 could be part of one or more computers performing at least one other function within the communication equipment 4 and / or the communication equipment 13. As illustrated, the computer 1 may also include an input interface 9 for receiving at least the user's username / password and cryptographic keys for use in calculations or processing, possibly after having been formatted and / or demodulated and / or amplified, in a manner known per se, by means of a digital signal processor 10.In addition, this computer 1 may also include an output interface 11, notably to provide requests and the user ID / password to the second service and cryptographic keys to the first service, and / or a mass storage 12.

[0039] The computer 1 can be made in the form of a combination of electrical or electronic circuits or components (or "hardware"), possibly microprogrammed or microwired, and software modules (or "software").

[0040] It should also be noted that the invention is not limited to the embodiments described above. Indeed, it will become apparent to those skilled in the art that various modifications can be made to the embodiments described above, in light of the instruction just provided. In the detailed presentation of the invention given above, the terms used should not be interpreted as limiting the invention to the embodiments set forth in this description, but should be interpreted to include all equivalents that a person skilled in the art can foresee by applying their general knowledge to the implementation of the instruction just provided.

Claims

1. A method for controlling access to a first service using a blockchain implemented in a communication network (2), characterized in that it comprises a step (100-140) wherein: - a user accesses a second service responsible for generating cryptographic key pairs during a first sub-step (100), then - said user uses this second service to connect to a first communication device (5) belonging to an identity provider in order to be authenticated during a second sub-step (110), then - in case of authentication, said first communication device (5) provides said user, via said second service, with a user identifier that identifies them uniquely and stably over time, during a third sub-step (120), then - said second service uses said provided user identifier to generate a pair of cryptographic keys which it transmits to said user during a fourth sub-step (130), then - said user uses said generated pair to access said first service to use the blockchain during a fifth sub-step (140).

2. The method according to claim 1, characterized in that in said step (100-140), said first communication equipment (5) connects to a second communication equipment (6) responsible for performing said authentication.

3. The method according to claim 1 or 2, characterized in that in said step (100-140), a cryptographic random number generator is initialized with secret information and said user identifier in order to obtain a random number, and then said pair of cryptographic keys is generated from said obtained random number.

4. The method according to claim 3, characterized in that in said step (100-140), a cryptographic random number generator of the chacha20 type is initialized.

5. The method according to claim 3 or 4, characterized in that in said step (100-140), before said initialization, when said secret information has a size greater than a predefined size, said secret information is compressed so that it has said predefined size.

6. The method according to claim 5, characterized in that in said step (100-140), said secret information is compressed by means of a cryptographic hash function.

7. The method according to one of claims 1 to 6, characterized in that in said step (100-140), said user provides said first service with said generated pair of cryptographic keys, one of which is a certificate representative of a certified public key, in order to access said first service.

8. A computer program downloadable from a communication network and / or stored on a medium readable by a computer and / or executable by at least one processor, characterized in that it comprises instructions for executing the steps of a control method according to any of claims 1 to 7, when said program is executed on a device with at least one processor (4) or at least one computer.

9. A control device (1) for controlling access to a first service using a blockchain implemented in a communication network (2), characterized in that it comprises at least one processing unit (7) and at least one memory (8) capable of performing the operations consisting, in case of a user accessing a second service responsible for generating cryptographic key pairs, of controlling the use of this second service so that it connects to a first communication device (5) belonging to an identity provider in order to request authentication of said user, and, in case of authentication, it provides a user identifier that identifies said user uniquely and stably over time, then triggering the use of said user identifier by said second service so that the latter generates a cryptographic key pair, then controlling the use of said pair so that said user accesses said first service to use the blockchain.