The present application claims priority from Australian Provisional Patent Application No. 2020902698, filed 31 Jul. 2020, the contents of which is herein incorporated by reference in its entirety.
The present invention relates generally to an identity management system, method and computer readable medium for a supply chain of a computerised network, and in particular to an Internet of Things (IoT) network.
Supply chain attacks such as forged certificates and modified software updates to a computerised network, such as an Internet of Things (IoT) network (e.g. a smart grid) remain a major challenge. These attacks, which focus on compromising computerised components and services of the network, can have a cascading effect on operations of the computerised network. A large number of interdependencies between the components and services and reliance on trusted third parties hinders the ability to safely and securely identify and authenticate the components and services.
It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements or provide a useful alternative.
In a first aspect, the present disclosure provides a computer implemented method of performing blockchain-based identity management for a supply chain of a computerised network, wherein the method includes: receiving, by a computerised device of a party, an identity issuing transaction initiated by a computerised component or service in the supply chain, the identity issuing transaction being indicative of a name of the computerised component or service, an identity issuing request message, and a first random number obtained from a distributed database, wherein the identity issuing transaction is initiated by the computerised component or service in response to determining the party is an authoritative party recorded in the blockchain and permitted to issue an identity; invoking a first smart contract; executing an identity issuance logic of the first smart contract to: determine whether the computerised component or service has been recorded in the blockchain, and the computerised component or service has not been issued an identity; and generate, in response to a positive determination, an identity for the computerised component or service based on the name of the component or service, the identity issuing request message, the first random number and a digital signature algorithm; storing first transaction data associated with executing the identity issuance logic of the first smart contract on the blockchain which is broadcast to the computerised network; and transferring, to the computerised component or service, the generated identity for use in authenticating the computerised component or service in the supply chain of the computerised network.
In certain implementations, the digital signature algorithm uses a private key of the authoritative party to generate the identity of the computerised component or service, wherein the identity is a digitally signed identifier using the private key.
In certain implementations, the method further includes: receiving, by the computerised device of the party, an attribute identifier issuing transaction initiated by the computerised component or service after being issued with the identity, the attribute identifier issuing transaction being indicative of the identity of the computerised component or service, an attribute identifier request message, and a second random number obtained from the distributed database, wherein the attribute identifier issuing transaction is initiated by the computerised component or service in response to determining the party is the authoritative party recorded in the blockchain and permitted to issue an attribute identifier; invoking a second smart contract; executing an attribute identifier issuance logic of the second smart contract to: determine whether the identity of the computerised component or service is recorded in the blockchain and whether no revocation of the identity of the computerised component or service is recorded in the blockchain; generate, in response to a positive determination, the attribute identifier for the attribute of the computerised component or service based on the attribute identifier request message, the second random number and a digital signature algorithm; storing second transaction data associated with executing the attribute identifier issuance logic of the second smart contract on the blockchain which is broadcast to the computerised network; and transferring, to the computerised component or service, the generated attribute identifier for use in authenticating the attribute of the computerised component or service in the supply chain of the computerised network.
In certain implementations, generating the attribute identifier for the attribute of the computerised component or service is further based on a pseudo-random function which is dependent upon the second random number and the identity of the computerised component or service.
In certain implementations, the digital signature algorithm uses the private key of the authoritative party to generate the attribute identifier of the attribute of the computerised component or service, wherein the attribute identifier is a digitally signed attribute identifier using the private key.
In certain implementations, the method further includes: invoking a third smart contract to authenticate identification data including one of the identity of the computerised component or service or the attribute identifier of the computerised component or service; executing an identification data check logic of the third smart contract to verify if the identification data is authentic; storing, in response to the identification data being verified as authentic, third transaction data associated with executing the identification data check logic of the third smart contract on the blockchain which is broadcast to the computerised network.
In certain implementations, the digital signature algorithm uses a public key corresponding to the private key of the authoritative party to verify if the identification data is authentic.
In certain implementations, the digital signature algorithm is Elliptic Curve Digital Signature Algorithm (ECDSA).
In certain implementations, the method further includes storing revocation transaction data on the blockchain which is broadcast to the computerised network in response to determining that the computerised component or service has violated the first smart contract, wherein the revocation transaction data is indicative of the revocation of the identity of the computerised component or service.
In certain implementations, the method includes using Transport Layer Security (TLS) to establish a secure communication channel for data exchange.
In certain implementations, the method includes using a key agreement protocol based on or including Elliptic-curve Diffie-Hellman (ECDH) to establish a secure communication channel for data exchange.
In certain implementations, the computerised network is an Internet of Things (IoT) network.
In certain implementations, the IoT network is a smart grid network.
In a second aspect, the present disclosure provides a computer implemented system including one or more memories having stored therein computer executable instructions, and one or more processors configured to execute the computer executable instructions to cause the computer implemented system to implement the computer implemented method of the first aspect and/or the implementations thereof.
In a third aspect, the present disclosure provides more computer readable storage mediums having stored therein computer executable instructions for configuring a computer implemented system having one or more processors, wherein execution of the computer executable instructions by the one or more processors configure the computer implemented system to perform the method of the first aspect and/or the implementations thereof.
Other aspects are also disclosed.
Example embodiments should become apparent from the following description, which is given by way of example only, of at least one preferred but non-limiting embodiment, described in connection with the accompanying figures.
Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
Referring to
As shown in
As shown in
Referring to
At step 310, the method 300 includes receiving, by a computerised device of a party, an identity issuing transaction 160 initiated by a computerised component or service in the supply chain. The identity issuing transaction is indicative of a name of the computerised component or service, an identity issuing request message, and a first random number obtained from a distributed database. The identity issuing transaction 160 is initiated by the computerised component or service in response to determining the party is an authoritative party recorded in the blockchain and permitted to issue an identity.
At step 320, the method 300 includes invoking a first smart contract 185.
At step 330, the method 300 includes executing an identity issuance logic of the first smart contract 185 to determine whether the computerised component or service has been recorded in the blockchain, and the computerised component or service has not been issued an identity. In response to a positive determination (i.e. both conditions being answered positively), the method continues to step 340.
At step 340, the method 300 includes generate, in response to a positive determination and the execution of the identity issuance logic, an identity for the computerised component or service based on the name of the component or service, the identity issuing request message, the first random number and a digital signature algorithm.
At step 350, the method 300 includes storing first transaction data associated with executing the identity issuance logic of the first smart contract 185 on the blockchain which is broadcast to the computerised network.
At step 360, the method 300 includes transferring, to the computerised component or service, the generated identity for use in authenticating the computerised component or service in the supply chain of the computerised network.
The digital signature algorithm can use a private key of the authoritative party to generate the identity of the computerised component or service 120, 130, wherein the identity is a digitally signed identifier using the private key.
In further implementations, the method further includes receiving, by the computerised device of the party, an attribute identifier issuing transaction 170 (see
After the attribute identifier issuing transaction 170 is initiated, a second smart contract 190 can be invoked. The method then includes executing an attribute identifier issuance logic of the second smart contract 190 to determine whether the identity of the computerised component or service is recorded in the blockchain and whether no revocation of the identity of the computerised component or service is recorded in the blockchain.
In response to a positive determination, the method includes generating the attribute identifier for the attribute of the computerised component or service based on the attribute identifier request message, the second random number and a digital signature algorithm. Second transaction data associated with executing the attribute identifier issuance logic of the second smart contract 190 can be stored on the blockchain which is broadcast to the computerised network. The generated attribute identifier can be transferred to the computerised component or service for use in authenticating the attribute of the computerised component or service in the supply chain of the computerised network.
In further implementations of the method, a third smart contract 195 can be invoked to authenticate identification data including one of the identity of the computerised component or service or the attribute identifier of the computerised component or service. Identification data check logic of the third smart contract 195 is executed to verify if the identification data is authentic. In response to the identification data being verified as authentic, third transaction data associated with executing the identification data check logic of the third smart contract 195 can be stored on the blockchain which is broadcast to the computerised network.
In certain implementations, generating the attribute identifier for the attribute of the computerised component or service is further based on a pseudo-random function which is dependent upon the second random number and the identity of the computerised component or service.
In certain implementations, the digital signature algorithm uses the private key of the authoritative party to generate the attribute identifier of the attribute of the computerised component or service, wherein the attribute identifier is a digitally signed attribute identifier using the private key. The digital signature algorithm can use a public key corresponding to the private key of the authoritative party to verify if the identification data is authentic. The digital signature algorithm can be Elliptic Curve Digital Signature Algorithm (ECDSA).
In some instances, the method further includes storing revocation transaction data on the blockchain which is broadcast to the computerised network in response to determining that the computerised component or service has violated the first smart contract 185. The revocation transaction data is indicative of the revocation of the identity of the computerised component or service.
In certain implementations, the method includes using Transport Layer Security (TLS) to establish a secure communication channel for data exchange. In other instances, the method includes using a key agreement protocol based on or including Elliptic-curve Diffie-Hellman (ECDH) to establish a secure communication channel for data exchange.
As shown in
Referring to
As seen in
The computer module 401 typically includes at least one processor unit 405, and a memory unit 406. For example, the memory unit 406 may have semiconductor random access memory (RAM) and semiconductor read only memory (ROM). The computer module 401 also includes an number of input/output (I/O) interfaces including: an audio-video interface 407 that couples to the video display 414, loudspeakers 417 and microphone 480; an I/O interface 413 that couples to the keyboard 402, mouse 403, scanner 426, camera 427 and optionally a joystick or other human interface device (not illustrated); and an interface 408 for the external modem 416 and printer 415. In some implementations, the modem 416 may be incorporated within the computer module 401, for example within the interface 408. The computer module 401 also has a local network interface 411, which permits coupling of the computer system 400 via a connection 423 to a local-area communications network 422, known as a Local Area Network (LAN). As illustrated in
The I/O interfaces 408 and 413 may afford either or both of serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus (USB) standards and having corresponding USB connectors (not illustrated). Storage devices 409 are provided and typically include a hard disk drive (HDD) 410. Other storage devices such as a floppy disk drive and a magnetic tape drive (not illustrated) may also be used. An optical disk drive 412 is typically provided to act as a non-volatile source of data. Portable memory devices, such optical disks (e.g., CD-ROM, DVD, Blu-ray Disc™), USB-RAM, portable, external hard drives, and floppy disks, for example, may be used as appropriate sources of data to the system 400.
The components 405 to 413 of the computer module 401 typically communicate via an interconnected bus 404 and in a manner that results in a conventional mode of operation of the computer system 400 known to those in the relevant art. For example, the processor 405 is coupled to the system bus 404 using a connection 418. Likewise, the memory 406 and optical disk drive 412 are coupled to the system bus 404 by connections 419. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations, Apple Mac™ or like computer systems.
The method described herein may be implemented using the computer system 400 wherein the processes may be implemented as one or more software application programs 433 executable within the computer system 400. In particular, the steps of the methods described in the present disclosure are effected by instructions 431 (see
The software may be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into the computer system 400 from the computer readable medium, and then executed by the computer system 400. A computer readable medium having such software or computer program recorded on the computer readable medium is a computer program product. The use of the computer program product in the computer system 400 preferably effects an advantageous apparatus for identity management in a computerised network such as an IoT network like a smart grid.
The software 433 is typically stored in the HDD 410 or the memory 406. The software is loaded into the computer system 400 from a computer readable medium, and executed by the computer system 400. Thus, for example, the software 433 may be stored on an optically readable disk storage medium (e.g., CD-ROM) 425 that is read by the optical disk drive 412. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer system 400 preferably effects an apparatus for identity management in a computerised network such as an IoT network like a smart grid.
In some instances, the application programs 433 may be supplied to the user encoded on one or more CD-ROMs 425 and read via the corresponding drive 412, or alternatively may be read by the user from the networks 420 or 422. Still further, the software can also be loaded into the computer system 400 from other computer readable media. Computer readable storage media refers to any non-transitory tangible storage medium that provides recorded instructions and/or data to the computer system 400 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, DVD, Blu-ray™ Disc, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 401. Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the computer module 401 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
The second part of the application programs 433 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 414. Through manipulation of typically the keyboard 402 and the mouse 403, a user of the computer system 400 and the application may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with the GUI(s). Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via the loudspeakers 417 and user voice commands input via the microphone 480.
When the computer module 401 is initially powered up, a power-on self-test (POST) program 450 executes. The POST program 450 is typically stored in a ROM 449 of the semiconductor memory 406 of
The operating system 453 manages the memory 434 (409, 406) to ensure that each process or application running on the computer module 401 has sufficient memory in which to execute without colliding with memory allocated to another process. Furthermore, the different types of memory available in the system 400 of
As shown in
The application program 433 includes a sequence of instructions 431 that may include conditional branch and loop instructions. The program 433 may also include data 432 which is used in execution of the program 433. The instructions 431 and the data 432 are stored in memory locations 428, 429, 430 and 435, 436, 437, respectively. Depending upon the relative size of the instructions 431 and the memory locations 428-430, a particular instruction may be stored in a single memory location as depicted by the instruction shown in the memory location 430. Alternately, an instruction may be segmented into a number of parts each of which is stored in a separate memory location, as depicted by the instruction segments shown in the memory locations 428 and 429.
In general, the processor 405 is given a set of instructions which are executed therein. The processor 405 waits for a subsequent input, to which the processor 405 reacts to by executing another set of instructions. Each input may be provided from one or more of a number of sources, including data generated by one or more of the input devices 402, 403, data received from an external source across one of the networks 420, 402, data retrieved from one of the storage devices 406, 409 or data retrieved from a storage medium 425 inserted into the corresponding reader 412, all depicted in
The disclosed arrangements use input variables 454, which are stored in the memory 434 in corresponding memory locations 455, 456, 457. The arrangements produce output variables 461, which are stored in the memory 434 in corresponding memory locations 462, 463, 464. Intermediate variables 458 may be stored in memory locations 459, 460, 466 and 467.
Referring to the processor 405 of
Thereafter, a further fetch, decode, and execute cycle for the next instruction may be executed. Similarly, a store cycle may be performed by which the control unit 439 stores or writes a value to a memory location 432.
Each step or sub-process in the processes of the disclosed methods is associated with one or more segments of the program 433 and is performed by the register section 444, 445, 447, the ALU 440, and the control unit 439 in the processor 405 working together to perform the fetch, decode, and execute cycles for every instruction in the instruction set for the noted segments of the program 433.
The method of this disclosure may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions as disclosed. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
Referring to
As seen in
The electronic device 501 can include a display controller 507, which is connected to a video display 514, such as a liquid crystal display (LCD) panel or the like. The display controller 507 is configured for displaying graphical images on the video display 514 in accordance with instructions received from the embedded controller 502, to which the display controller 507 is connected.
The electronic device 501 can also include user input devices 513 which are typically formed by keys, a keypad or like controls. In some implementations, the user input devices 513 may include a touch sensitive panel physically associated with the display 514 to collectively form a touch-screen. Such a touch-screen may thus operate as one form of graphical user interface (GUI) as opposed to a prompt or menu driven GUI typically used with keypad-display combinations. Other forms of user input devices may also be used, such as a microphone (not illustrated) for voice commands or a joystick/thumb wheel (not illustrated) for ease of navigation about menus.
As seen in
The electronic device 501 has a communications interface 508 to permit coupling of the device 501 to a computer or communications network 520 via a connection 521. The connection 521 may be wired or wireless. For example, the connection 521 may be radio frequency or optical. An example of a wired connection includes Ethernet. Further, an example of wireless connection includes Bluetooth™ type local interconnection, Wi-Fi (including protocols based on the standards of the IEEE 802.11 family), Infrared Data Association (IrDa) and the like.
Typically, the electronic device 501 is configured to perform some special function. The embedded controller 502, possibly in conjunction with further special function components 510, is provided to perform that special function. For example, where the device 501 is a digital camera, the components 510 may represent a lens, focus control and image sensor of the camera. The special function components 510 is connected to the embedded controller 502. As another example, the device 501 may be a mobile telephone handset. In this instance, the components 510 may represent those components required for communications in a cellular telephone environment. Where the device 501 is a portable device, the special function components 510 may represent a number of encoders and decoders of a type including Joint Photographic Experts Group (JPEG), (Moving Picture Experts Group) MPEG, MPEG-1 Audio Layer 3 (MP3), and the like.
The methods described hereinafter may be implemented using the embedded controller 502, where processes may be implemented as one or more software application programs 533 executable within the embedded controller 502. The electronic device 501 of
The software 533 of the embedded controller 502 is typically stored in the non-volatile ROM 560 of the internal storage module 509. The software 533 stored in the ROM 560 can be updated when required from a computer readable medium. The software 533 can be loaded into and executed by the processor 505. In some instances, the processor 505 may execute software instructions that are located in RAM 570. Software instructions may be loaded into the RAM 570 by the processor 505 initiating a copy of one or more code modules from ROM 560 into RAM 570. Alternatively, the software instructions of one or more code modules may be pre-installed in a non-volatile region of RAM 570 by a manufacturer. After one or more code modules have been located in RAM 570, the processor 505 may execute software instructions of the one or more code modules.
The application program 533 is typically pre-installed and stored in the ROM 560 by a manufacturer, prior to distribution of the electronic device 501. However, in some instances, the application programs 533 may be supplied to the user encoded on one or more CD-ROM (not shown) and read via the portable memory interface 506 of
The second part of the application programs 533 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 514 of
The processor 505 typically includes a number of functional modules including a control unit (CU) 551, an arithmetic logic unit (ALU) 552, a digital signal processor (DSP) 553 and a local or internal memory comprising a set of registers 554 which typically contain atomic data elements 556, 557, along with internal buffer or cache memory 555. One or more internal buses 559 interconnect these functional modules. The processor 505 typically also has one or more interfaces 558 for communicating with external devices via system bus 581, using a connection 561.
The application program 533 includes a sequence of instructions 562 though 563 that may include conditional branch and loop instructions. The program 533 may also include data, which is used in execution of the program 533. This data may be stored as part of the instruction or in a separate location 564 within the ROM 560 or RAM 570.
In general, the processor 505 is given a set of instructions, which are executed therein. This set of instructions may be organised into blocks, which perform specific tasks or handle specific events that occur in the electronic device 501. Typically, the application program 533 waits for events and subsequently executes the block of code associated with that event. Events may be triggered in response to input from a user, via the user input devices 513 of
The execution of a set of the instructions may require numeric variables to be read and modified. Such numeric variables are stored in the RAM 570. The disclosed method uses input variables 571 that are stored in known locations 572, 573 in the memory 570. The input variables 571 are processed to produce output variables 577 that are stored in known locations 578, 579 in the memory 570. Intermediate variables 574 may be stored in additional memory locations in locations 575, 576 of the memory 570. Alternatively, some intermediate variables may only exist in the registers 554 of the processor 505.
The execution of a sequence of instructions is achieved in the processor 505 by repeated application of a fetch-execute cycle. The control unit 551 of the processor 505 maintains a register called the program counter, which contains the address in ROM 560 or RAM 570 of the next instruction to be executed. At the start of the fetch execute cycle, the contents of the memory address indexed by the program counter is loaded into the control unit 551. The instruction thus loaded controls the subsequent operation of the processor 505, causing for example, data to be loaded from ROM memory 560 into processor registers 554, the contents of a register to be arithmetically combined with the contents of another register, the contents of a register to be written to the location stored in another register and so on. At the end of the fetch execute cycle the program counter is updated to point to the next instruction in the system program code. Depending on the instruction just executed this may involve incrementing the address contained in the program counter or loading the program counter with a new address in order to achieve a branch operation.
Each step or sub-process in the processes of the methods described below is associated with one or more segments of the application program 533, and is performed by repeated execution of a fetch-execute cycle in the processor 505 or similar programmatic operation of other independent processor blocks in the electronic device 501.
A number of cryptographic algorithms are used to support the disclosed method and system. This includes Elliptic Curve Digital Signature Algorithm (ECDSA) and a Secure Pseudo-Random Function (PRF).
An ECDSA scheme D consists of three polynomial-time algorithms (Gen; Sig; V Sig). The probabilistic key generation n and returns a pair of keys (kp; kup), where kp is the secret signing key and kup is the public verification key. The possibly probabilistic signing algorithm Sig expects a private key kp and a message m∈{0,1}*, and returns a signature Sig(kp, m). The deterministic verification algorithm V Sig expects a public key kup, a message m∈{0, 1}*, and a message authentication code β and returns VSigku
A family of functions F=(Fη)η∈N with Fη:{0, 1}η×{0, 1}*→{0,1}η is called a Secure PRF family if it is efficiently computable and for every polynomial time algorithm EO(.) with access to oracle O, the PRF advantage of E as defined by Equation 1 is negligible as a function in η and a bit string ω:
Adv
E,F
PRF(1η,ω):=|Pr[ExpE,FPRF−1(1η,ω)=1]−Pr[ExpE,FPRF−0(1η,ω)=1]| Equation 1
As mentioned above, a plurality of transactions 160, 170, 180 are utilised to support the identification and authentication of computerised components and services, such as IoT components and services, like smart grid components and services. These transactions include an identity issuing transaction (IDT) 160, an attribute identifier issuing transaction (ATT) 170, and an identity/attribute identifier check transaction (ICT) 180. Each of these transactions will be described below in further detail.
An IDT 160 is generated by a component (or service) to request an identity from an authoritative (i.e. genuine) party such as a smart grid party. Upon the successful execution of IDT 160, the party returns a digitally signed identity to the component. Once the component or service has obtained an identity, such component or service becomes a genuine component in the computerised network.
An ATT 170 is generated by a genuine component (or service) to request an attribute identifier of its feature from an authoritative party such as a genuine smart grid party. Upon the successful execution of ATT 170, the party returns a digitally signed attribute identifier of the feature to the component or service.
An ICT 180 is generated by an authoritative party such as a genuine smart grid party to verify the identity or attribute identifier of a component (or service). Upon the successful execution of ICT 180, the party marks the component as “Valid”.
As discussed above, various smart contracts 185, 190, 195 are invoked and associated logic within executed based on the initiation of a transaction. These smart contracts 185, 190, 195, as shown in
The identity management method comprises of three main phases including an identity issuing phase, an attribute identifier phase and an identity/attribute identifier check phase. Each of these phases will be discussed below in further detail.
Referring to
if the check succeeds, where kp1 is the private key of P1; and ii) it verifies that IDA has not been issued. If the verification succeeds, IDA becomes the digitally signed identity of A. Upon the successful execution of IDT, P1 stores all the data related to this transaction on the blockchain, broadcasts the data to the network, and returns IDA to A (step 630). Only genuine parties issue identities to ensure high identity assurance. As can be appreciated, the verifications of the component and the party provide mutual authentication. In some instances, an identity (say, IDA) can be revoked due to violation of IDT, wherein the party (say, P1) marks IDA as revoked, broadcasts the data to the network, and stores IDA(revoked) on the blockchain.
Referring to
More specifically at step 660, the method includes smart grid temperature sensor A executing an IDT by preparing an IDT message IDTA=(A, I.data, x), where I.data is an identity issuing request (that contains (identity issuing request message, kupl, (A, P2), x), where x is a unique number selected from large random number integer n (i.e., {1, . . . , n−1}) that is available in the blockchain to support identification and authentication.
At step 665, smart grid company P1 receives IDTA=(A, I.data, x) and prepares to execute a C/S contract.
At step 670, the smart grid company P1 executes a C/S contract as follows: 1. P1 checks whether A exists on the blockchain using (kupl, (A, P2)); and 2. P1 checks whether A has no identity, i.e., IDA by using the ECDSA to compute Sigkp1(A, x)=IDA and check that IDA has not been issued, where Kp1 is the private key P1.
At step 675, the smart grid company P1 determines if the C/S contract execution was successful. If the check failed because A is not on the blockchain and/or IDA already exists on the blockchain, then the method ends. Otherwise, if the check succeeded, the method proceeds to step 680.
At step 680, the method includes the smart grid company P1 storing data (including (kupl, Sigkp1(IDA, P1)) related to the IDTA on the blockchain, broadcast the data to the network, and returns an identity IDA to A, where kupl the public key of P1 used to verify Sigkp1(IDA, P1).
Referring to
Referring to
More specifically, at the start of the method 750, a smart grid actuator B starts to obtain a firmware update extension identifier of its firmware from an equipment manufacturer P2 in the smart grid, where the firmware update extension represents an attribute of the firmware.
At step 755, the method 750 includes the smart grid actuator B checking whether P2 is a genuine smart grid party on the blockchain. In response to a successful check, the method proceeds to step 760. Otherwise, in response to an unsuccessful check where it is determined that P2 is not a genuine service company in the smart grid, the method ends.
At step 760, the method 750 includes the smart grid actuator B executing an ATT by preparing an ATT message ATTB=(IDB, A.data, y), where IDB is an identity issued to B, A.data is a firmware update extension identifier request (that contains (firmware update extension identifier request message, kup2, (B, P2)) and y is a unique number selected from large random integer n (i.e., {1, . . . , n−1}) that is available in the blockchain to support identification and authentication during attribute identifier issuing.
At step 765, the method 750 includes P2 receiving ATTB=(IDB, A.data, y) and preparing to execute a P contract.
At step 770, the method 750 includes P2 executing the P contract as follows: 1. P2 checks whether IDB exists (using (kup2, (IDB, P2))) and IDB(revoked) does not exist on the blockchain; and 2. P2 computes the firmware update extension identifier via ECDSA (Sigk) and secure PRF F(.) as Attr1.B=Sigkp2(F(IDB, y)), where kp2 is the private key P2.
At step 775, the method 750 includes P2 determining if the P contract execution was successful. If successful, the method proceeds to step 780, otherwise, because the check fails due to IDB not being on the blockchain and/or IDB(revoked) existing on the blockchain, the method 750 ends.
At step 780, the method 750 includes P1 storing data (including the public key of P2(kp2)) related to ATTB on the blockchain, broadcasting the data to the network, and returning an identity Attr1.B to B.
At step 785, the method 750 includes B executing an ID-AT contract to accept Attr1.B by computing VSigkp2(F(IDB, y), Sigkp2(F(IDB, y)) to verify that Attr1.B is authentic.
At step 790, the method 750 includes B determining if the ID-AT contract execution was successful. In particular, if the ID-AT contract execution was unsuccessful because Sigkp2(F(IDB, y)) failed, the method ends. However, if the if the ID-AT contract execution was successful because Attr1.B was authentic, the method 750 proceeds to step 795.
At step 795, the method 750 includes B accepting and approving Attr1.B as the firmware update extension identifier.
Referring to
Referring to
More specifically, at the start of the method 850, the smart grid analytics technologies company P2 starts to verify the authenticity of the temperature sensor identity IDA in the smart grid.
At step 855, the method 850 includes P2 executing an ICT by using an ICTA to pick up the IDA and validating its authenticity.
At step 860, the method 850 includes P2 executing the ID-AT contract to validate IDA by computing VSigkup2(IDA) to verify that IDA is authentic, where kup2 is the public key of P2.
At step 865, the method 850 includes P2 determining if the ID-AT contract execution was successful. If successful (VSigkup2(IDA) is authentic), the method proceeds to step 870. Otherwise, if P2 determines that the ID-AT contract execution was unsuccessful (VSigkup2(IDA) failed), the method 850 ends.
At step 870, the method 850 includes P2 marking IDA as “valid”, storing all data ((including (kup2, VSigkup2(IDA))) related to the ICTA transaction to the network, and broadcasting the data to the network, thereby becoming “valid” in the smart grid. The method 850 then ends.
The transactions discussed above provide a number of advantages. In particular, an adversary can neither issue nor verify one or more identities or attribute identifiers of a component or service. Furthermore, there is no central authority or trusted third party during the execution of the transactions. Moreover, security agreement is reached without the third party.
In certain implementations of the disclosed method, the proposed ERC 725 blockchain-based identity standard was modified to construct the identity management method/system and components. This implementation required the introduction of Secure PRF and using the Secure PRF with the ECDSA to implement the cryptographic algorithms used in techniques disclosed in the present disclosure. Furthermore, the ERC 725's Rivest-Shamir-Adleman (RSA) keys was replaced with Elliptic Curve Diffie-Hellman (ECDH) keys to enhance the security and performance of disclosed method and system. Similar to the ERC 725 standard, the disclosed implementation uses a key manager for managing cryptographic keys. An interface presented via a party computerised device for implementing identity management as disclosed is shown in
The disclosed method and system was analysed based on supply chain attacks to mitigate real-world supply chain attacks for networks such as IoT networks like a smart grid. The 2017 ShadowPad backdoor was analysed with reference to the disclosed method and system.
The disclosed method and system was analysed based on a further supply chain attack involving Trojan implants and watering hole attacks that target resources in a known location visited by smart grid parties. Attackers compromised trusted websites of PLC vendors and changed the actual binary on the websites and the hash value associated with downloading the PLC programming tool. Unfortunately, smart grid parties can still verify that they downloaded the right tool. Thus, having a trusted website with hash values does not mitigate supply chain attacks on trusted resources. However, utilising the disclosed method and system for identity management in a computer network, the new binary and hash value associated with every PLC cannot be valid since the adversary cannot store data on the blockchain. Additionally, since the binary or hash value does not have an attribute identifier, the smart grid parties can verify that the data has not been validated. Thus, the disclosed method and system for identity management mitigates Trojanized software and watering hole attacks. Note that the success probability of a computationally bounded adversary to execute any transaction in disclosed method and system is negligible since the attacker's name or identity cannot be verified. Thus, the disclosed method and system provides real-time mitigation of supply chain attacks related to the above unverified product updates and Trojanized software.
The arrangements described are applicable to the computer and data processing industries and particularly for the supply chain industries for computerised networks such as IoT networks.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.
In the context of this specification, the word “comprising” means “including principally but not necessarily solely” or “having” or “including”, and not “consisting only of”. Variations of the word “comprising”, such as “comprise” and “comprises” have correspondingly varied meanings.
Number | Date | Country | Kind |
---|---|---|---|
2020902698 | Jul 2020 | AU | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/AU2021/050835 | 7/30/2021 | WO |