WO2024253699A1 - Hardware enforced security for service mesh - Google Patents
Hardware enforced security for service mesh Download PDFInfo
- Publication number
- WO2024253699A1 WO2024253699A1 PCT/US2023/077536 US2023077536W WO2024253699A1 WO 2024253699 A1 WO2024253699 A1 WO 2024253699A1 US 2023077536 W US2023077536 W US 2023077536W WO 2024253699 A1 WO2024253699 A1 WO 2024253699A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- circuitry
- server
- service mesh
- machine readable
- enclave
- 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.)
- Ceased
Links
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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- 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
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Definitions
- This disclosure relates generally to networks and, more particularly, to hardware enforced security for service mesh.
- Cloud native programming is a software approach of building, deploying, and managing modem applications in cloud computing environments. Modem applications are usually designed as distributed collections of microservices, with each group of microservices performing some discrete business function.
- a service mesh is a software infrastructure layer that is added to applications to facilitate service-to-service communications between sendees or microservices.
- a service mesh includes a data plane, and a control plane. The data plane supports communication among services.
- a service mesh may utilize a proxy to route network traffic for an application. For example, a proxy may be deployed along with each service that is initiated. The proxy is abstracted away from the applications and manages the network communications of the application in the service mesh.
- a service mesh also includes gateways at the edge of the service mesh receiving incoming or outgoing HTTP/TCP connections.
- the gateway has an entry point that provides incoming traffic management for applications running within the service mesh.
- the gateway also has an exit point that provides outgoing traffic management for the service mesh.
- FIGS. 1 A and IB illustrate a block diagram of an example environment in which example servers operate to provide security for service mesh gateways in multi-tenant edge deployments.
- FIG. 2 is a block diagram of an example implementation of the example first server of FIG. 1A.
- FIG. 3 is a block diagram of an example implementation of the example second server of FIG. IB.
- FIG. 5 is a flowchart representative of example machine readable instructions and/or example operations that may be executed, instantiated, and/or performed by example programmable circuitry to implement the example second server of FIG. 3.
- FIG. 6 is a flowchart representative of example machine readable instructions and/or example operations that may be executed, instantiated, and/or performed by example programmable circuitry to implement the example first server of FIG. 2 to synchronize a private key from the first server to the second server.
- FIG. 7 is a flowchart representative of example machine readable instructions and/or example operations that may be executed, instantiated, and/or performed by example programmable circuitry to implement the example second server of FIG. 3 to synchronize a private key from the first server to the second server.
- FIG. 8 is a flowchart representative of example machine readable instructions and/or example operations that may be executed, instantiated, and/or performed by example programmable circuitry to implement the example second server of FIG. 3 to deliver a private key from the second server to a gateway proxy.
- FIG. 9 is a flowchart representative of example machine readable instructions and/or example operations that may be executed, instantiated, and/or performed by example programmable circuitry to implement the example second server of FIG. 3 to generate a private key locally.
- FIG. 10 is an interaction diagram of an example workflow to implement the example first server of FIGS. 1A and 2, to upload keys to the first server from an administrator.
- FIG. 11 is an interaction diagram of an example workflow to implement the example first server of FIGS. 1A, and 2 and the example second server of FIGS. IB. and 3 to sync keys from the first server to the second server.
- FIG. 12 is an interaction diagram of an example workflow to implement the example second server of FIGS. 1 and 3 to deliver keys from the second server to a gateway proxy.
- FIG. 14 is a block diagram illustrating the example first server of FIG. 2 in a multi-tenant 5G control plane deployment using secured gateways with the example second server of FIG. 3, according to some implementations.
- FIG. 15 is a block diagram of an example processing platform including programmable circuitry structured to execute, instantiate, and/or perform the example machine readable instructions and/or perform the example operations of FIGS. 4 and 6 to implement the first server of FIG. 2.
- FIG. 18 is a block diagram of another example implementation of the programmable circuitry' of FIG. 15.
- FIG. 19 is a block diagram of an example software/firmware/instructions distribution platform (e.g., one or more servers) to distribute software, instructions, and/or firmware (e.g., corresponding to the example machine readable instructions of FIGS. 4-9) to client devices associated with end users and/or consumers (e.g., for license, sale, and/or use), retailers (e.g., for sale, re-sale, license, and/or sub-license), and/or original equipment manufacturers (OEMs) (e.g., for inclusion in products to be distributed to, for example, retailers and/or to other end users such as direct buy customers).
- end users e.g., for license, sale, and/or use
- retailers e.g., for sale, re-sale, license, and/or sub-license
- OEMs original equipment manufacturers
- connection references may include intermediate members between the elements referenced by the connection reference and/or relative movement between those elements unless otherwise indicated. As such, connection references do not necessarily infer that two elements are directly connected and/or in fixed relation to each other. As used herein, stating that any part is in '‘contact” with another part is defined to mean that there is no intermediate part between the two parts.
- the descriptor “first” may be used to refer to an element in the detailed description, while the same element may be referred to in a claim with a different descriptor such as “second” or “third.” In such instances, it should be understood that such descriptors are used merely for identifying those elements distinctly within the context of the discussion (e.g., within a claim) in which the elements might, for example, otherwise share a same name.
- the phrase “in communication,” including variations thereof, encompasses direct communication and/or indirect communication through one or more intermediary components, and does not require direct physical (e.g., wired) communication and/or constant communication, but rather additionally includes selective communication at periodic intervals, scheduled intervals, aperiodic intervals, and/or one-time events.
- programmable circuitry examples include programmable microprocessors such as Central Processor Units (CPUs) that may execute first instructions to perform one or more operations and/or functions, Field Programmable Gate Arrays (FPGAs) that may be programmed with second instructions to cause configuration and/or structuring of the FPGAs to instantiate one or more operations and/or functions corresponding to the first instructions, Graphics Processor Units (GPUs) that may execute first instructions to perform one or more operations and/or functions, Digital Signal Processors (DSPs) that may execute first instructions to perform one or more operations and/or functions, XPUs, Network Processing Units (NPUs) one or more microcontrollers that may execute first instructions to perform one or more operations and/or functions and/or integrated circuits such as Application Specific Integrated Circuits (ASICs).
- CPUs Central Processor Units
- FPGAs Field Programmable Gate Arrays
- DSPs Digital Signal Processors
- XPUs Network Processing Units
- NPUs Network Processing Units
- the example attestation custom resource (CR) controller 212 creates an attestation custom resource.
- a custom resource may be an extension of the K8 API.
- the attestation custom resource is utilized in the remote attestation of the global server 102 to store and retrieve structured data related to the remote attestation.
- the first server 102 includes means for registering a server.
- the means for registering may be implemented by registration circuitry 204.
- the registration circuitry 204 may be instantiated by programmable circuitry such as the example programmable circuitry' 1512 of FIG. 15.
- the registration circuitry 204 may be instantiated by the example microprocessor 1700 of FIG. 17 executing machine executable instructions such as those implemented by at least blocks 406 of FIG. 4.
- registration circuitry 204 may be instantiated by hardware logic circuitry', which may be implemented by an ASIC, XPU, or the FPGA circuitry' 1800 of FIG. 18 configured and/or structured to perform operations corresponding to the machine readable instructions.
- the first server 102 includes means for monitoring.
- the means for monitoring may be implemented by annotated secret monitor circuitry 206.
- the annotated secret monitor circuitry 206 may be instantiated by programmable circuitry such as the example programmable circuitry 1512 of FIG. 15.
- the annotated secret monitor circuitry 206 may be instantiated by the example microprocessor 1700 of FIG. 17 executing machine executable instructions such as those implemented by at least blocks 408 of FIG. 4.
- the annotated secret monitor circuitry 206 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, XPU, or the FPGA circuitry 1800 of FIG.
- the annotated secret monitor circuitry 206 may be instantiated by any other combination of hardware, software, and/or firmware.
- the annotated secret monitor circuitry 206 may be implemented by at least one or more hardware circuits (e.g., processor circuitry’, discrete and/or integrated analog and/or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational-amplifier (op-amp), a logic circuit, etc.) configured and/or structured to execute some or all of the machine readable instructions and/or to perform some or all of the operations corresponding to the machine readable instructions without executing software or firmware, but other structures are likewise appropriate.
- hardware circuits e.g., processor circuitry’, discrete and/or integrated analog and/or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational-amplifier (op-amp), a logic circuit, etc.
- the first server 102 includes means for generating an attestation CR.
- the means for generating an attestation CR may be implemented by attestation custom resource (CR) controller circuitry 212.
- the attestation CR controller circuitry 7 212 may be instantiated by programmable circuitry' such as the example programmable circuitry 7 1512 of FIG. 15.
- the attestation CR controller circuitry 212 may be instantiated by the example microprocessor 1700 of FIG. 17 executing machine executable instructions such as those implemented by at least blocks 412 of FIG. 4.
- processor circuitry discrete and/or integrated analog and/or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational-amplifier (op-amp), a logic circuit, etc. configured and/or structured to execute some or all of the machine readable instructions and/or to perform some or all of the operations corresponding to the machine readable instructions without executing software or firmware, but other structures are likewise appropriate.
- the first server 102 includes means for sending a synchronization request.
- the means for sending a synchronization request may be implemented by communication interface circuitry 218.
- the communication interface circuitry 218 may be instantiated by programmable circuitry such as the example programmable circuitry 1512 of FIG. 15.
- the communication interface circuitry' 218 may be instantiated by the example microprocessor 1700 of FIG. 17 executing machine executable instructions such as those implemented by at least blocks 604, 612 of FIG. 6.
- the communication interface circuitry 218 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, XPU, or the FPGA circuitry 1800 of FIG.
- the example token file generation circuitry' 318 is utilized to safely transport the user private key from the local server 104 to the gateway proxy 132.
- the token file generation circuitry 318 is a crypto API toolkit (CTK).
- CTK crypto API toolkit
- the token file generation circuitry 318 generates a token file which is shared between the local server 104 and the gateway proxy 132.
- the local server 104 utilizes the CTK with the secure enclave 142 to enhance the security’ of data and key protection application by exposing interfaces that run the key generation and cryptographic operations securely inside the secure enclave 142.
- a proxy 132 When a proxy 132 is launched, it bootstraps the proxy secure enclave 150 yvith the same token files utilized by the local server secure enclave 142.
- the attestation CR controller circuitry 308 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and/or integrated analog and/or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational-amplifier (opamp), a logic circuit, etc.) configured and/or structured to execute some or all of the machine readable instructions and/or to perform some or all of the operations corresponding to the machine readable instructions without executing software or firmware, but other structures are likewise appropriate.
- hardware circuits e.g., processor circuitry, discrete and/or integrated analog and/or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational-amplifier (opamp), a logic circuit, etc.
- the communication interface circuitry 7 310 may be instantiated by hardware logic circuitry 7 , which may be implemented by an ASIC, XPU, or the FPGA circuitry 7 1800 of FIG. 18 configured and/or structured to perform operations corresponding to the machine readable instructions. Additionally or alternatively, the communication interface circuitry 310 may be instantiated by any other combination of hardware, software, and/or firmware.
- the second server 104 includes means for encrypting.
- the means for encrypting may be implemented by key encry ption circuitry 316.
- the key encryption circuitry 316 may be instantiated by programmable circuitry such as the example programmable circuitry 1612 of FIG. 16.
- the key encry ption circuitry 316 may be instantiated by the example microprocessor 1700 of FIG. 17 executing machine executable instructions such as those implemented by at least blocks 816 of FIG. 8.
- the key encryption circuitry' 316 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, XPU, or the FPGA circuitry 1800 of FIG.
- FIG. 3 While an example manner of implementing the second server 104 of FIG. 1 is illustrated in FIG. 3, one or more of the elements, processes, and/or devices illustrated in FIG. 3 may be combined, divided, re-arranged, omitted, eliminated, and/or implemented in any other way.
- CSR certificate signing request
- CR attestation custom resource
- the example second server 104 of FIG. 3 may include one or more elements, processes, and/or devices in addition to, or instead of, those illustrated in FIG. 3, and/or may include more than one of any or all of the illustrated elements, processes, and devices.
- the machine readable instructions cause an operation, a task, etc., to be carried out and/or performed in an automated manner in the real world.
- automated means without human involvement.
- the program may be embodied in instructions (e.g., software and/or firmware) stored on one or more non- transitory computer readable and/or machine readable storage medium such as cache memory, a magnetic-storage device or disk (e.g., a floppy disk, a Hard Disk Drive (HDD), etc.), an optical-storage device or disk (e.g., a Blu-ray disk, a Compact Disk (CD), a Digital Versatile Disk (DVD), etc ), a Redundant Array of Independent Disks (RAID), a register, ROM.
- instructions e.g., software and/or firmware
- SSD solid-state drive
- non-volatile memory e.g., electrically erasable programmable read-only memory (EEPROM), flash memory, etc.
- volatile memory e.g., Random Access Memory (RAM) of any type, etc.
- RAM Random Access Memory
- the instructions of the non- transitory computer readable and/or machine readable medium may program and/or be executed by programmable circuitry located in one or more hardware devices, but the entire program and/or parts thereof could alternatively be executed and/or instantiated by one or more hardware devices other than the programmable circuitry and/or embodied in dedicated hardware.
- the machine readable instructions may be distributed across multiple hardware devices and/or executed by two or more hardware devices (e.g., a server and a client hardware device).
- the client hardware device may be implemented by an endpoint client hardware device (e.g., a hardware device associated with a human and/or machine user) or an intermediate client hardware device gateway (e.g., a radio access network (RAN)) that may facilitate communication between a server and an endpoint client hardware device.
- the non-transitory computer readable storage medium may include one or more mediums.
- the example program is described with reference to the flowchart(s) illustrated in FIGS. 4-9, many other methods of implementing the example first server 102 and second server 104 may alternatively be used.
- the programmable circuitry may be distributed in different network locations and/or local to one or more hardware devices (e.g., a single-core processor (e.g., a single core CPU), a multi-core processor (e.g., a multi-core CPU, an XPU, etc.)).
- the programmable circuitry may be a CPU and/or an FPGA located in the same package (e.g., the same integrated circuit (IC) package or in two or more separate housings), one or more processors in a single machine, multiple processors distributed across multiple servers of a server rack, multiple processors distributed across one or more server racks, etc., and/or any combination(s) thereof.
- the machine readable instructions described herein may be stored in one or more of a compressed format, an encrypted format, a fragmented format, a compiled format, an executable format, a packaged format, etc.
- Machine readable instructions as described herein may be stored as data (e.g., computer-readable data, machine-readable data, one or more bits (e.g..
- machine readable instructions may be fragmented and stored on one or more storage devices, disks and/or computing devices (e.g., servers) located at the same or different locations of a network or collection of networks (e.g., in the cloud, in edge devices, etc.).
- storage devices e.g., disks and/or computing devices (e.g., servers) located at the same or different locations of a network or collection of networks (e.g., in the cloud, in edge devices, etc.).
- the machine readable instructions may require one or more of installation, modification, adaptation, updating, combining, supplementing, configuring, decryption, decompression, unpacking, distribution, reassignment, compilation, etc., in order to make them directly readable, interpretable, and/or executable by a computing device and/or other machine.
- the machine readable instructions may be stored in multiple parts, which are individually compressed, encrypted, and/or stored on separate computing devices, wherein the parts when decrypted, decompressed, and/or combined form a set of computer-executable and/or machine executable instructions that implement one or more functions and/or operations that may together form a program such as that described herein.
- FIGS. 4-9 may be implemented using executable instructions (e.g., computer readable and/or machine readable instructions) stored on one or more non-transitory computer readable and/or machine readable media.
- executable instructions e.g., computer readable and/or machine readable instructions
- non-transitory computer readable medium, non-transitory computer readable storage medium, non-transitory machine readable medium, and/or non-transitory machine readable storage medium are expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media.
- non-transitory computer readable medium examples include optical storage devices, magnetic storage devices, an HDD, a flash memory 7 , a read-only memory (ROM), a CD, a DVD, a cache, a RAM of any ty pe, a register, and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information).
- non-transitory computer readable storage device and “non-transitory 7 machine readable storage device” are defined to include any physical (mechanical, magnetic and/or electrical) hardware to retain information for a time period, but to exclude propagating signals and to exclude transmission media.
- Examples of non-transitory’ computer readable storage devices and/ or non-transitory machine readable storage devices include random access memory’ of any ty pe, read only memory’ of any ty pe, solid state memory, flash memory, optical discs, magnetic disks, disk drives, and/or redundant array of independent disks (RAID) systems.
- RAID redundant array of independent disks
- A, B, and/or C refers to any combination or subset of A, B. C such as (1) A alone, (2) B alone, (3) C alone, (4) A with B. (5) A with C, (6) B with C, or (7) A with B and with C.
- the phrase “at least one of A and B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.
- the phrase “at least one of A or B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.
- the phrase “at least one of A and B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.
- the phrase “at least one of A or B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.
- FIG. 4 is a flowchart representative of example machine readable instructions and/or example operations 400 that may be executed, instantiated, and/or performed by programmable circuitry to synchronize a private key from the first server or global sen' er 102 (FIG. 1A) to the second server or local server 104 (FIG. IB).
- the example machine-readable instructions and/or the example operations 400 of FIG. 4 begin at block 402, at which the local server monitor circuitry 202 (FIG. 2) monitors for the local sen' er 104.
- FIG. 5 is a flowchart representative of example machine readable instructions and/or example operations 500 that may be executed, instantiated, and/or performed by programmable circuitry to synchronize private key from the first server or global server 102 (FIG. 1 A) to the second server or local server 104 (FIG. IB).
- the example machine-readable instructions and/or the example operations 500 of FIG. 5 begin at block 502, at which the sync request monitor circuitry 302 (FIG. 3) monitors for synchronization requests from the first server or global server 102 (FIG. 1A).
- the example sync request monitor circuitry 302 does not receive a sync request from the first server 102 (block 502: NO), control returns to the start, at which the example sync request monitor circuitry 302 continues to monitor for a sync request, or control advances to block 508, at which the example second server 104 generates a private key locally, as described below in connection with FIG. 9. If the example sync request monitor circuitry 302 detects a sync request (block 502: YES), control advances to block 504, at which the example second server 104 synchronize the second server private key with the private key from the first server 102. as described below in connection with FIG. 7. At block 506, the second server 104 delivers the private key to a gateway proxy 132 in example environment 100, as described below in connection with FIG. 8. The example instructions and/or operations of FIG. 5 end.
- the communication interface circuitry 218 sends the synchronization request CR to the second server 104 and waits for an attestation CR with attestation result. If the example first server 102 does not receive an attestation CR update (block 606: NO), control advances to block 602, at which the example first server creates a synchronization request CR again. If the example first server 102 receives an attestation CR update (block 606: YES), control advances to block 608, at which the example key encryption circuitry 216 (FIG. 2) wraps or encrypts a user private key. At block 610, the example first server 102 updates the attestation CR with the wrapped or encrypted key.
- FIG. 7 is a flowchart representative of example machine readable instructions and/or example operations that may be executed, instantiated, and/or performed by example programmable circuitry to implement the second server 104 of FIG. IB, and FIG. 3 to synchronize the private key from the first server 102 (FIG. 1A) to the second server 104.
- the instructions and/or operations represented in the flowchart of FIG. 7 may be used to implement block 504 of FIG. 5 to implement a synchronization process at the second server 104.
- the example machine-readable instructions and/or the example operations of FIG. 7 begin at block 702, at which the example sync request monitor circuitry 302 (FIG.
- attestation CR controller circuitry 308 creates an attestation CR.
- the example communication interface circuitry 310 receives an updated attestation CR with wrapped or encrypted user private key.
- the example key decryption circuitry' 312 decry pts or unwraps the user private key.
- the second server 104 saves the user private key and certificate in the second server secure enclave or memory 142 (FIG. IB).
- the example second server 104 deletes the attestation CR.
- the communication interface circuitry 310 receives “delete sync request CR” from the first server 102. The example instructions and/or operations of FIG. 7 end and control returns to block 506 of FIG. 5.
- the example attestation custom resource controller circuitry 308 (FIG.3) sends an attestation request to the gateway proxy 132.
- the example attestation custom resource controller circuitry 308 receives an attestation response from the gateway proxy 132.
- the example attestation custom resource controller circuitry 308 creates an attestation CR for remote attestation.
- the example attestation custom resource controller circuitry 308 receives an updated attestation CR.
- the example key encryption circuitry 7 316 (FIG. 3) encry pts or wraps a related user private key to be sent to the gateway proxy 132.
- FIG. 10 is an interaction diagram of an example workflow 1000 to implement the example first sen' er 102 of FIGS. 1A and 2, to upload keys to the first server 102 from an administrator 170 (FIG. 1A).
- Example FIG. 10 shows a process implemented by the administrator 170, key management reference application (KMRA) 160, attestation controller 162, first server or global server 102, and second server or local server 104 (FIG. IB).
- KMRA key management reference application
- attestation controller 162 first server or global server 102
- first server or global server 102 the administrator 170
- FIG. IB second server or local server 104
- the administrator 170 deploys a global server or first server 102, and a local server or a second server 104 in example environment 100.
- the example global server 102 registers the local server 104.
- FIG. 13 is a block diagram illustrating the example first server of FIG. 1 A and 2 security policy and key delivery integration with cloud service provider (CSP) using the cloud hardware security module (HSM) adapter.
- the cloud HSM adapter 1308 monitors the attestation CR 1306 to obtain a corresponding key identifier (ID) information and cloud HSM information.
- the example cloud HSM adapter 1308 establishes a secure call to the backend cloud HSM following corresponding cloud HSM API.
- the example cloud HSM adapter 1308 obtains the wrapped private keys from the cloud HSM 1320, 1312, 1314, and 1316 by updating the attestation CR 1306.
- the global server 102 unwraps the private keys into the global server secure enclave 116 by monitoring for updates from the attestation CR 1306.
- FIG. 15 is a block diagram of an example programmable circuitry platform 1500 structured to execute and/or instantiate the example machine-readable instructions and/or the example operations of FIGS. 4, and 6 to implement the first server 102 of FIGS. 1, and 2.
- the programmable circuitry' platform 1500 can be. for example, a server, a personal computer, a workstation, a self-learning machine (e.g.. a neural network), an Internet appliance, or any other type of computing and/or electronic device.
- the programmable circuitry’ 1512 implements the example local server monitor circuitry 202, the example registration circuitry 204, the example annotated secret monitor circuitry 206, the example quote generation circuitry 208, the example public and private key generation circuitry' 210, the example attestation custom resource (CR) controller circuitry 212, the example key decryption circuitry 214, and the example key encryption circuitry’ 216.
- the example local server monitor circuitry 202 the example registration circuitry 204, the example annotated secret monitor circuitry 206, the example quote generation circuitry 208, the example public and private key generation circuitry' 210, the example attestation custom resource (CR) controller circuitry 212, the example key decryption circuitry 214, and the example key encryption circuitry’ 216.
- CR attestation custom resource
- Access to the main memory 1514, 1516 of the illustrated example is controlled by a memory controller 1517.
- the memory controller 1517 may be implemented by one or more integrated circuits, logic circuits, microcontrollers from any desired family or manufacturer, or any other type of circuitry to manage the flow of data going to and from the main memory 1514, 1516.
- the programmable circuitry platform 1500 of the illustrated example also includes interface circuitry 1520.
- the interface circuitry' 1520 may be implemented by hardware in accordance with any type of interface standard, such as an Ethernet interface, a universal serial bus (USB) interface, a Bluetooth® interface, a near field communication (NFC) interface, a Peripheral Component Interconnect (PCI) interface, and/or a Peripheral Component Interconnect Express (PCIe) interface.
- the interface circuitry 1520 implements the communication interface circuitry 218 of FIG. 2.
- one or more input devices 1522 are connected to the interface circuitry 1520.
- the input device(s) 1522 permit(s) a user (e g., a human user, a machine user, etc.) to enter data and/or commands into the programmable circuitry 1512.
- the input device(s) 1522 can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a trackpad, a trackball, an isopoint device, and/or a voice recognition system.
- the programmable circuitry' platform 1500 of the illustrated example also includes one or more mass storage discs or devices 1 28 to store firmware, software, and/or data.
- mass storage discs or devices 1528 include magnetic storage devices (e.g., floppy disk, drives, HDDs, etc ), optical storage deydces (e.g., Blu-ray disks, CDs, DVDs, etc.), RAID systems, and/or solid-state storage discs or devices such as flash memory- devices and/or SSDs.
- the programmable circuitry 1612 of the illustrated example includes a local memory 1613 (e.g., a cache, registers, etc.).
- the programmable circuitry 1612 of the illustrated example is in communication with main memory 1614, 1616, which includes a volatile memory 1614 and a non-volatile memory 1616, by a bus 1618.
- the volatile memory 1614 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS® Dynamic Random Access Memory (RDRAM®), and/or any other type of RAM device.
- the non-volatile memory 7 1616 may be implemented by flash memory and/or any other desired type of memory device.
- Access to the main memory 1614, 1616 of the illustrated example is controlled by a memory controller 1617.
- the memory controller 1617 may be implemented by one or more integrated circuits, logic circuits, microcontrollers from any desired family or manufacturer, or any other type of circuitry to manage the flow of data going to and from the main memory 1614, 1616.
- one or more input devices 1622 are connected to the interface circuitry 1620.
- the input device(s) 1622 permit(s) a user (e g., a human user, a machine user, etc.) to enter data and/or commands into the programmable circuitry 1612.
- the input device(s) 1622 can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a trackpad, a trackball, an isopoint device, and/or a voice recognition system.
- One or more output devices 1624 are also connected to the interface circuitry 1620 of the illustrated example.
- the output device(s) 1624 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid cry stal display (LCD), a cathode ray tube (CRT) display, an in-place switching (IPS) display, a touchscreen, etc ), a tactile output device, a printer, and/or speaker.
- the interface circuitry 1620 of the illustrated example thus, typically includes a graphics driver card, a graphics driver chip, and/or graphics processor circuitry 7 such as a GPU.
- the interface circuitry' 1620 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem, a residential gateway, a wireless access point, and/or a network interface to facilitate exchange of data with external machines (e.g., computing devices of any kind) by a network 1626.
- the communication can be by, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a beyond-line-of-sight wireless system, a line-of-sight wireless system, a cellular telephone system, an optical connection, etc.
- DSL digital subscriber line
- the programmable circuitry' platform 1600 of the illustrated example also includes one or more mass storage discs or devices 1628 to store firmware, software, and/or data.
- mass storage discs or devices 1628 include magnetic storage devices (e.g., floppy disk, drives, HDDs, etc ), optical storage devices (e.g., Blu-ray disks, CDs, DVDs, etc.), RAID systems, and/or solid-state storage discs or devices such as flash memory- devices and/or SSDs.
- the machine readable instructions 1632 which may be implemented by the machine readable instructions of FIGS. 5, and 7-9, may be stored in the mass storage device 1628, in the volatile memory 1614, in the non-volatile memory 1616, and/or on at least one non- transitory computer readable storage medium such as a CD or DVD yvhich may be removable.
- FIG. 17 is a block diagram of an example implementation of the programmable circuitry 1512 of FIG. 15.
- the programmable circuitry 1512 of FIG. 15 is implemented by a microprocessor 1700.
- the microprocessor 1700 may be a general-purpose microprocessor (e.g., general-purpose microprocessor circuitry).
- the microprocessor 1700 executes some or all of the machine-readable instructions of the flowcharts of FIGS. 4, and 6 to effectively instantiate the circuitry of FIG. 2 as logic circuits to perform operations corresponding to those machine readable instructions.
- the microprocessor 1700 executes some or all of the machine-readable instructions of the flowcharts of FIGS. 5, and 7-9 to effectively instantiate the circuitry’ of FIG.
- the circuitry of FIG. 2 and 3 is instantiated by the hardware circuits of the microprocessor 1700 in combination with the machine-readable instructions.
- the microprocessor 1700 may be implemented by multi-core hardware circuitry such as a CPU, a DSP, a GPU, an XPU. etc.
- microprocessor may include any number of example cores 1702 (e.g., 1 core), the microprocessor
- the 1700 of this example is a multi-core semiconductor device including N cores.
- the cores 1702 of the microprocessor 1700 may operate independently or may cooperate to execute machine readable instructions.
- machine code corresponding to a firmware program, an embedded software program, or a software program may be executed by one of the cores 1702 or may be executed by multiple ones of the cores 1702 at the same or different times.
- the machine code corresponding to the firmware program, the embedded software program, or the software program is split into threads and executed in parallel by two or more of the cores 1702.
- the software program may correspond to a portion or all of the machine readable instructions and/or operations represented by the flowcharts of FIGS. 4-9.
- the cores 1702 may communicate by a first example bus 1704.
- the first bus 1704 may be implemented by a communication bus to effectuate communication associated with one(s) of the cores 1702.
- the first bus 1704 may be implemented by at least one of an Inter-Integrated Circuit (I2C) bus, a Serial Peripheral Interface (SPI) bus, a PCI bus, or a PCIe bus. Additionally or alternatively, the first bus 1704 may be implemented by any other type of computing or electrical bus.
- the cores 1702 may obtain data, instructions, and/or signals from one or more external devices by example interface circuitry 1706.
- the cores 1702 may output data, instructions, and/or signals to the one or more external devices by the interface circuitry 1706.
- the microprocessor 1700 also includes example shared memory’ 1710 that may be shared by the cores (e.g., Level 2 (L2 cache)) for high-speed access to data and/or instructions. Data and/or instructions may be transferred (e.g., shared) by writing to and/or reading from the shared memory 1710.
- the local memory 1720 of each of the cores 1702 and the shared memory' 1710 may be part of a hierarchy of storage devices including multiple levels of cache memory and the main memory (e.g.. the main memory 1514, 1516 of FIG. 15 and the main memory 1614, 1616 of FIG. 16). Typically, higher levels of memory in the hierarchy exhibit lower access time and have smaller storage capacity' than lower levels of memory'. Changes in the various levels of the cache hierarchy are managed (e.g., coordinated) by a cache coherency policy.
- Each core 1702 may be referred to as a CPU, DSP, GPU, etc., or any other ty pe of hardware circuitry.
- Each core 1702 includes control unit circuitry' 1714, arithmetic and logic (AL) circuitry’ (sometimes referred to as an ALU) 1716, a plurality of registers 1718, the local memory’ 1720, and a second example bus 1722.
- ALU arithmetic and logic
- each core 1702 may include vector unit circuitry, single instruction multiple data
- the control unit circuitry 1714 includes semiconductor-based circuits structured to control (e.g., coordinate) data movement within the corresponding core 1702.
- the AL circuitry 1716 includes semiconductor-based circuits structured to perform one or more mathematic and/or logic operations on the data within the corresponding core 1702.
- the AL circuitry 171 of some examples performs integer based operations.
- the AL circuitry 1716 also performs floating-point operations.
- the AL circuitry 1716 may include first AL circuitry that performs integer-based operations and second AL circuitry that performs floating-point operations.
- the AL circuitry 1716 may be referred to as an Arithmetic Logic Unit (ALU).
- ALU Arithmetic Logic Unit
- the registers 1718 are semiconductor-based structures to store data and/or instructions such as results of one or more of the operations performed by the AL circuitry 1716 of the corresponding core 1702.
- the registers 1718 may include vector register(s), SIMD register(s), general-purpose register(s), flag register(s), segment register(s), machinespecific register(s). instruction pointer register(s), control register(s), debug register(s), memory management register(s), machine check register(s), etc.
- the registers 1718 may be arranged in a bank as shown in FIG. 17. Alternatively, the registers 1718 may be organized in any other arrangement, format, or structure, such as by being distributed throughout the core 1702 to shorten access time.
- the second bus 1722 may be implemented by at least one of an I2C bus, a SPI bus, a PCI bus, or a PCIe bus.
- Each core 1702 and/or, more generally, the microprocessor 1700 may include additional and/or alternate structures to those shown and described above.
- one or more clock circuits, one or more power supplies, one or more power gates, one or more cache home agents (CHAs), one or more converged/common mesh stops (CMSs), one or more shifters (e.g.. barrel shifter(s)) and/or other circuitry may be present.
- the microprocessor 1700 is a semiconductor device fabricated to include many transistors interconnected to implement the structures described above in one or more integrated circuits (ICs) contained in one or more packages.
- the microprocessor 1700 may include and/or cooperate with one or more accelerators (e.g., acceleration circuitry, hardware accelerators, etc.).
- accelerators are implemented by logic circuitry to perform certain tasks more quickly and/or efficiently than can be done by a general-purpose processor. Examples of accelerators include ASICs and FPGAs such as those discussed herein.
- a GPU, DSP and/or other programmable device can also be an accelerator. Accelerators may be on-board the microprocessor 1700, in the same chip package as the microprocessor 1700 and/or in one or more separate packages from the microprocessor 1700.
- FIG. 18 is a block diagram of another example implementation of the programmable circuitry 1512 of FIG. 15 and the programmable circuitry 1612 of FIG. 16.
- the programmable circuitry 1512 and 1612 are implemented by FPGA circuitry 1800.
- the FPGA circuitry’ 1800 may be implemented by an FPGA.
- the FPGA circuitry 1800 can be used, for example, to perform operations that could otherwise be performed by the example microprocessor 1700 of FIG. 17 executing corresponding machine readable instructions.
- the FPGA circuitry 1800 instantiates the operations and/or functions corresponding to the machine readable instructions in hardware and, thus, can often execute the operations/functions faster than they could be performed by a general-purpose microprocessor executing the corresponding software.
- the FPGA circuitry 1800 of the example of FIG. 18 includes interconnections and logic circuitry that may be configured, structured, programmed, and/or interconnected in different ways after fabrication to instantiate, for example, some or all of the operations/functions corresponding to the machine readable instructions represented by the flowchart(s) of FIGS. 4-9.
- the FPGA circuitry 1800 may be thought of as an array of logic gates, interconnections, and switches.
- the switches can be programmed to change how the logic gates are interconnected by the interconnections, effectively forming one or more dedicated logic circuits (unless and until the FPGA circuitry 1800 is reprogrammed).
- the configured logic circuits enable the logic gates to cooperate in different ways to perform different operations on data received by input circuitry. Those operations may correspond to some or all of the instructions (e.g., the software and/or firmware) represented by the flowchart(s) of FIGS.4-9.
- the FPGA circuitry 1800 may be configured and/or structured to effectively instantiate some or all of the operations/functions corresponding to the machine readable instructions of the flowchart(s) of FIGS.
- the FPGA circuitry 1800 may perform the operations/functions corresponding to the some or all of the machine readable instructions of FIGS. 4-9 faster than the general-purpose microprocessor can execute the same.
- the FPGA circuitry 1800 is configured and/or structured in response to being programmed (and/or reprogrammed one or more times) based on a binary file.
- the binary file may be compiled and/or generated based on instructions in a hardware description language (HDL) such as Lucid, Very' High Speed Integrated Circuits (VHSIC) Hardware Description Language (VHDL), or Verilog.
- HDL hardware description language
- VHSIC Very' High Speed Integrated Circuits
- VHDL Hardware Description Language
- a user may write code or a program corresponding to one or more operations/functions in an HDL; the code/program may be translated into a low- level language as needed; and the code/program (e.g., the code/program in the low-level language) may be converted (e.g., by a compiler, a software application, etc.) into the binary file.
- the FPGA circuitry 1800 of FIG. 18 may access and/or load the binary file to cause the FPGA circuitry' 1800 of FIG. 18 to be configured and/or structured to perform the one or more operations/functions.
- the binary 7 file may be implemented by a bit stream (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), data (e.g., computer-readable data, machine-readable data, etc.), and/or machine-readable instructions accessible to the FPGA circuitry 1800 of FIG. 18 to cause configuration and/or structuring of the FPGA circuitry 1800 of FIG. 18, or portion(s) thereof.
- a bit stream e.g., one or more computer-readable bits, one or more machine-readable bits, etc.
- data e.g., computer-readable data, machine-readable data, etc.
- machine-readable instructions accessible to the FPGA circuitry 1800 of FIG. 18 to cause configuration and/or structuring of the FPGA circuitry 1800 of FIG. 18, or portion(s) thereof.
- the binary 7 file is compiled, generated, transformed, and/or otherwise output from a uniform software platform utilized to program FPGAs.
- the uniform software platform may translate first instructions (e.g., code or a program) that correspond to one or more operations/functions in a high-level language (e.g., C, C++, Python, etc.) into second instructions that correspond to the one or more operations/functions in an HDL.
- the binary 7 file is compiled, generated, and/or otherwise output from the uniform softw are platform based on the second instructions.
- the FPGA circuitry 1800 of FIG. 18 may access and/or load the binary file to cause the FPGA circuitry 1800 of FIG.
- the binary' file may be implemented by a bit stream (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), data (e.g., computer- readable data, machine-readable data, etc.), and/or machine-readable instructions accessible to the FPGA circuitry 1800 of FIG. 18 to cause configuration and/or structuring of the FPGA circuitry 1800 of FIG. 18, or portion(s) thereof.
- a bit stream e.g., one or more computer-readable bits, one or more machine-readable bits, etc.
- data e.g., computer- readable data, machine-readable data, etc.
- machine-readable instructions accessible to the FPGA circuitry 1800 of FIG. 18 to cause configuration and/or structuring of the FPGA circuitry 1800 of FIG. 18, or portion(s) thereof.
- the FPGA circuitry 1800 of FIG. 18, includes example input/output (I/O) circuitry 1802 to obtain and/or output data to/from example configuration circuitry 1804 and/or external hardware 1806.
- the configuration circuitry 1804 may be implemented by interface circuitry that may obtain a binary' file, which may be implemented by a bit stream, data, and/or machine-readable instructions, to configure the FPGA circuitry 1800, or portion(s) thereof.
- the configuration circuitry 1804 may obtain the binary file from a user, a machine (e.g., hardware circuitry (e.g., programmable or dedicated circuitry') that may implement an Artificial Intelligence/Machine Learning (AI/ML) model to generate the binary' file), etc., and/or any combination(s) thereof).
- a machine e.g., hardware circuitry (e.g., programmable or dedicated circuitry') that may implement an Artificial Intelligence/Machine Learning (AI/ML) model to generate the binary' file
- AI/ML Artificial Intelligence/Machine Learning
- the external hardware 1806 may be implemented by external hardware circuitry.
- the external hardware 1806 may be implemented by the microprocessor 1700 of FIG. 17.
- the FPGA circuitry' 1800 also includes an array of example logic gate circuitry' 1808, a plurality' of example configurable interconnections 1810, and example storage circuitry 1812.
- the logic gate circuitry 1808 and the configurable interconnections 1810 are configurable to instantiate one or more operations/functions that may correspond to at least some of the machine readable instructions of FIGS. 4-9 and/or other desired operations.
- the logic gate circuitry' 1808 shown in FIG. 18 is fabricated in blocks or groups. Each block includes semiconductor-based electrical structures that may be configured into logic circuits. In some examples, the electrical structures include logic gates (e.g., And gates, Or gates, Nor gates, etc.) that provide basic building blocks for logic circuits.
- Electrically controllable switches e.g., transistors
- the logic gate circuitry 1808 may include other electrical structures such as look-up tables (LUTs), registers (e.g., flip-flops or latches), multiplexers, etc.
- LUTs look-up tables
- registers e.g., flip-flops or latches
- multiplexers etc.
- the configurable interconnections 1810 of the illustrated example are conductive pathw ays, traces, vias, or the like that may include electrically controllable switches (e.g., transistors) whose state can be changed by programming (e.g., using an HDL instruction language) to activate or deactivate one or more connections between one or more of the logic gate circuitry' 1808 to program desired logic circuits.
- electrically controllable switches e.g., transistors
- the storage circuitry' 1812 of the illustrated example is structured to store result(s) of the one or more of the operations performed by corresponding logic gates.
- the storage circuitry 1812 may be implemented by registers or the like.
- the storage circuitry 1812 is distributed amongst the logic gate circuitry' 1808 to facilitate access and increase execution speed.
- the example FPGA circuitry 1800 of FIG. 18 also includes example dedicated operations circuitry 1814.
- the dedicated operations circuitry 1814 includes special purpose circuitry 1816 that may be invoked to implement commonly used functions to avoid the need to program those functions in the field.
- special purpose circuitry 1816 include memory (e.g., DRAM) controller circuitry', PCIe controller circuitry, clock circuitry, transceiver circuitry, memory, and multiplier-accumulator circuitry.
- Other types of special purpose circuitry may be present.
- the FPGA circuitry' 1800 may also include example general purpose programmable circuitry 1818 such as an example CPU 1820 and/or an example DSP 1822.
- Other general purpose programmable circuitry 1818 may additionally or alternatively be present such as a GPU, an XPU, etc., that can be programmed to perform other operations.
- FIGS. 17 and 18 illustrate two example implementations of the programmable circuitry' 1512 of FIG. 15 and 1612 of FIG. 16, many other approaches are contemplated.
- FPGA circuitry may include an on-board CPU, such as one or more of the example CPU 1820 of FIG. 17. Therefore, the programmable circuitry 1512 of FlG. 15 and 1612 of FIG. 16 may additionally be implemented by combining at least the example microprocessor 1700 of FIG. 17 and the example FPGA circuitry' 1800 of FIG. 18.
- one or more cores 1702 of FIG. 17 may execute a first portion of the machine readable instructions represented by the flowchart(s) of FIGS.
- the FPGA circuitry 1800 of FIG. 18 may be configured and/or structured to perform second operation(s)/function(s) corresponding to a second portion of the machine readable instructions represented by the flowcharts of FIG. 4-9, and/or an ASIC may be configured and/or structured to perform third operation(s)/function(s) corresponding to a third portion of the machine readable instructions represented by the flowcharts of FIGS. 4-9J.
- circuitry of FIG. 2 and 3 may, thus, be instantiated at the same or different times.
- same and/or different portion(s) of the microprocessor 1700 of FIG. 17 may be programmed to execute portion(s) of machine-readable instructions at the same and/or different times.
- same and/or different portion(s) of the FPGA circuitry 1 00 of FIG. 1 may be configured and/or structured to perform operations/functions corresponding to portion(s) of machine-readable instructions at the same and/or different times.
- circuitry of FIG. 2 and 3 may be instantiated, for example, in one or more threads executing concurrently and/or in series.
- the microprocessor 1700 of FIG. 17 may execute machine readable instructions in one or more threads executing concurrently and/or in series.
- the FPGA circuitry 1800 of FIG. 18 may be configured and/or structured to carry out operations/functions concurrently and/or in series.
- some or all of the circuitry of FIG. 2 and 3 may be implemented within one or more virtual machines and/or containers executing on the microprocessor 1700 of FIG. 17.
- the programmable circuitry 1512 of FIG. 15 and 1612 of FIG. 16 may be in one or more packages.
- the microprocessor 1700 of FIG. 17 and/or the FPGA circuitry 1800 of FIG. 18 may be in one or more packages.
- an XPU may be implemented by the programmable circuitry 1512 of FIG. 15 and 1612 of FIG. 16, which may be in one or more packages.
- the XPU may include a CPU (e.g., the microprocessor 1700 of FIG. 17, the CPU 1820 of FIG. 18, etc.) in one package, a DSP (e.g., the DSP 1822 of FIG. 18) in another package, a GPU in yet another package, and an FPGA (e.g., the FPGA circuitry 1800 of FIG. 18) in still yet another package.
- FIG. 1919 A block diagram illustrating an example software distribution platform 1905 to distribute software such as the example machine readable instructions 1532 of FIG. 15 and 1632 of FIG. 16 to other hardware devices (e.g., hardware devices owned and/or operated by third parties from the ow ner and/or operator of the software distribution platform) is illustrated in FIG. 1919.
- the example software distribution platform 1905 may be implemented by any computer server, data facility, cloud service, etc., capable of storing and transmitting softw are to other computing devices.
- the third parties may be customers of the entity owning and/or operating the software distribution platform 1905.
- the entity that owns and/or operates the software distribution platform 1905 may be a developer, a seller, and/or a licensor of software such as the example machine readable instructions 1532 of FIG. 15 and 1632 of FIG. 16.
- the third parties may be consumers, users, retailers, OEMs, etc., who purchase and/or license the softw are for use and/or re-sale and/or sub-licensing.
- the software distribution platform 1905 includes one or more servers and one or more storage devices.
- the storage devices store the machine readable instructions 1532, which may correspond to the example machine readable instructions of FIGS. 4, and 6, as described above.
- the storage devices store the machine readable instructions 1 32, which may correspond to the example machine readable instructions of FIGS.
- the one or more servers of the example software distribution platform 1905 are in communication with an example network 1910, which may correspond to any one or more of the Internet and/or any of the example networks described above.
- the one or more servers are responsive to requests to transmit the software to a requesting party as part of a commercial transaction. Payment for the deliver)’, sale, and/or license of the software may be handled by the one or more servers of the software distribution platform and/or by a third party payment entity.
- the servers enable purchasers and/or licensors to download the machine readable instructions 1532 and 1632 from the software distribution platform 1905.
- the software which may correspond to the example machine readable instructions of FIGS.
- the example programmable circuitry platform 1500 which is to execute the machine readable instructions 1532 to implement the first server 102.
- the software which may correspond to the example machine readable instructions of FIGS. 5, and 7-9, may be downloaded to the example programmable circuitry platform 1600, which is to execute the machine readable instructions 1632 to implement the second server 104.
- one or more servers of the software distribution platform 1905 periodically offer, transmit, and/or force updates to the software (e.g., the example machine readable instructions 1532 of FIG. 15 and 1632 of FIG. 16) to ensure improvements, patches, updates, etc., are distributed and applied to the software at the end user devices.
- the distributed “software” could alternatively be firmware.
- Disclosed systems, apparatus, articles of manufacture, and methods improve the efficiency of using a computing device by providing hardware enforced security for service mesh key management.
- Disclosed systems, apparatus, articles of manufacture, and methods are accordingly directed to one or more improvement(s) in the operation of a machine such as a computer or other electronic and/or mechanical device.
- Example methods, apparatus, systems, and articles of manufacture to provide hardware enforced security for service mesh key management are disclosed herein. Further examples and combinations thereof include the following:
- Example 1 includes a first server of a service mesh comprising interface circuitry, machine-readable instructions, and programmable circuitry to at least one of instantiate or execute the machine-readable instructions to detect a second server of the service mesh, cause a public key of the second server to be stored in a first enclave, and after an attestation for a second enclave is obtained, cause addition of the second server to the service mesh.
- Example 2 includes a first server of a service mesh of example 1, wherein the first server is on a control plane of the service mesh.
- Example 3 includes a first server of a service mesh of example 2, wherein the sendee mesh is to control delivery of service requests through the control plane that creates service instances, exchanges policy and telemetry information with a proxy on a data plane.
- Example 4 includes a first server of a service mesh of example 1, wherein the programmable circuitry is to cause the first server to request an attestation for the first enclave.
- Example 5 includes a first server of a service mesh of example 1, wherein the programmable circuitry is to generate a cry ptographic measurement of the first enclave.
- Example 6 includes a first server of a service mesh of example 5, wherein the programmable circuitry is to cause transmission of the cryptographic measurement to an attestation controller to verify the cryptographic measurement of the first enclave.
- Example 7 includes a first server of a service mesh of example 1, wherein the programmable circuitry’ is to cause transmission of a key pair from the first server to a key manager to verify an identity of the first server.
- Example 8 includes a first server of a service mesh of example 1, wherein the programmable circuitry' is to encry pt a private key with the public key of the second server and the second server is to deliver an encrypted private key from the first server to a proxy on a gateway of the service mesh.
- Example 9 includes a non-transitory machine readable storage medium comprising instructions to cause programmable circuitry to at least detect a server of a service mesh, cause a public key of the server to be stored in a first enclave, and after an attestation for a second enclave is obtained, cause addition of the server to the service mesh.
- Example 10 includes a non-transitory machine readable storage medium of example 9, wherein a first server is on a control plane of the service mesh.
- Example 11 includes a non-transitory machine readable medium of example 9, wherein a second server is on a data plane of the service mesh.
- Example 12 includes a non-transitory machine readable storage medium of example 10, wherein the instructions are to cause the programmable circuitry to cause the first server to request an attestation for the first enclave.
- Example 13 includes a non-transitory machine readable storage medium of example 10. the instructions are to cause the programmable circuitry to generate a cryptographic measurement of the first enclave.
- Example 14 includes a non-transitory machine readable storage medium of example 13, wherein the instructions are to cause the programmable circuitry 7 to cause transmission of the cryptographic measurement to an attestation controller to verify the cryptographic measurement of the first enclave.
- Example 15 includes a non-transitory machine readable storage medium of example 9, wherein the instructions are to cause the programmable circuitry to encrypt a private key with the public key of the second server and a first server is to deliver an encrypted private key to a proxy on a gateway of the service mesh via a second server.
- Example 16 includes a method comprising detecting, with programmable circuitry, a server of a service mesh, causing a public key of the server to be stored in a first enclave, and after an attestation for a second enclave is obtained, causing addition of the server to the service mesh.
- Example 17 includes a method of example 16, wherein a first server is on a control plane of the service mesh.
- Example 18 includes a method of example 17, wherein the service mesh is to control delivery of service requests through the control plane that creates service instances, exchanges policy and tel emet ry information with a proxy on a data plane.
- Example 19 includes a method of example 16, wherein a second server is on a data plane of the service mesh.
- Example 20 includes a method of example 16, further including generating a cryptographic measurement of the first enclave.
- Example 21 includes a method of example 20, further including causing transmission of the cryptographic measurement to an attestation controller to verify the cryptographic measurement of the first enclave.
- Example 22 includes a method of example 16, wherein a second server is to deliver an encry pted private key to a proxy on a gateway of the service mesh.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP23940919.6A EP4725157A1 (en) | 2023-06-07 | 2023-10-23 | Hardware enforced security for service mesh |
| CN202380097032.5A CN121241540A (en) | 2023-06-07 | 2023-10-23 | Hardware-enforced security for service mesh |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNPCT/CN2023/098861 | 2023-06-07 | ||
| CNPCT/CN2023/098861 | 2023-06-07 | ||
| US18/477,370 | 2023-09-28 | ||
| US18/477,370 US20240022405A1 (en) | 2023-06-07 | 2023-09-28 | Hardware enforced security for service mesh |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024253699A1 true WO2024253699A1 (en) | 2024-12-12 |
Family
ID=89509414
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2023/077536 Ceased WO2024253699A1 (en) | 2023-06-07 | 2023-10-23 | Hardware enforced security for service mesh |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240022405A1 (en) |
| EP (1) | EP4725157A1 (en) |
| CN (1) | CN121241540A (en) |
| WO (1) | WO2024253699A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12019778B1 (en) * | 2023-11-22 | 2024-06-25 | Verkada Inc. | Systems and methods to perform end to end encryption |
| CN120561978B (en) * | 2025-05-26 | 2025-11-18 | 中科驭数(北京)科技有限公司 | DPU centralized sinking type service grid integrated hardware encryption and decryption method and device and electronic equipment |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110602208A (en) * | 2019-09-12 | 2019-12-20 | 北京笔新互联网科技有限公司 | Distributed micro-service management system and construction method thereof |
| US20230081612A1 (en) * | 2021-09-09 | 2023-03-16 | Beijing Bytedance Network Technology Co., Ltd. | Third-party gateway for security and privacy |
| CN111200560B (en) * | 2019-12-26 | 2023-04-07 | 中国平安人寿保险股份有限公司 | Microservice registration method, microservice registration device, microservice registration equipment and storage medium |
| WO2023075828A1 (en) * | 2021-10-28 | 2023-05-04 | Intel Corporation | Secure key management for service mesh deployments |
-
2023
- 2023-09-28 US US18/477,370 patent/US20240022405A1/en active Pending
- 2023-10-23 CN CN202380097032.5A patent/CN121241540A/en active Pending
- 2023-10-23 EP EP23940919.6A patent/EP4725157A1/en active Pending
- 2023-10-23 WO PCT/US2023/077536 patent/WO2024253699A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110602208A (en) * | 2019-09-12 | 2019-12-20 | 北京笔新互联网科技有限公司 | Distributed micro-service management system and construction method thereof |
| CN111200560B (en) * | 2019-12-26 | 2023-04-07 | 中国平安人寿保险股份有限公司 | Microservice registration method, microservice registration device, microservice registration equipment and storage medium |
| US20230081612A1 (en) * | 2021-09-09 | 2023-03-16 | Beijing Bytedance Network Technology Co., Ltd. | Third-party gateway for security and privacy |
| WO2023075828A1 (en) * | 2021-10-28 | 2023-05-04 | Intel Corporation | Secure key management for service mesh deployments |
Non-Patent Citations (1)
| Title |
|---|
| CONSTANTIN ADAM; ABDULHAMID ADEBAYO; HUBERTUS FRANKE; EDWARD SNIBLE; TOBIN FELDMAN-FITZTHUM; JAMES CADDEN; NERLA JEAN-LOUIS: "Partially Trusting the Service Mesh Control Plane", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 23 October 2022 (2022-10-23), 201 Olin Library Cornell University Ithaca, NY 14853, XP091351723 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN121241540A (en) | 2025-12-30 |
| EP4725157A1 (en) | 2026-04-15 |
| US20240022405A1 (en) | 2024-01-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11489678B2 (en) | Platform attestation and registration for servers | |
| US10389728B2 (en) | Multi-level security enforcement utilizing data typing | |
| CN115668147A (en) | Preventing unauthorized deployment of packages in a cluster | |
| CN114365452A (en) | Method and apparatus for attestation of objects in an edge computing environment | |
| EP4035116A1 (en) | Software defined silicon implementation and management | |
| US20240022405A1 (en) | Hardware enforced security for service mesh | |
| US12118074B2 (en) | Methods and apparatus to generate dynamic password update notifications | |
| CN104506486B (en) | A kind of the software service interface call method and system of cross-platform, across language high safety rank | |
| US20230130746A1 (en) | Methods and apparatus for container attestation in client-based workloads | |
| US20200295922A1 (en) | Detection and protection of data in api calls | |
| US20140059341A1 (en) | Creating and accessing encrypted web based content in hybrid applications | |
| US12107833B2 (en) | Configurable proxying application program interface façade service | |
| Ramesh | Storing iot data securely in a private ethereum blockchain | |
| US12615153B2 (en) | Methods, systems, articles of manufacture and apparatus to protect distributed data | |
| US20240195635A1 (en) | Roots of trust in intellectual property (ip) blocks in a system on a chip (soc) | |
| EP4703939A1 (en) | Confidential computing security management for a multi-chiplet, multi-accelerator system-in-package | |
| US20230100051A1 (en) | Methods and apparatus to service workloads locally at a computing device | |
| CN120128894A (en) | System and method for managing devices within a vehicle system | |
| US20230275758A1 (en) | Reprogrammable processing device root key architecture | |
| EP4199415A1 (en) | Methods and apparatus to derive and verify virtual physical unclonable keys | |
| WO2025116917A1 (en) | Methods, apparatus, and articles of manufacture to secure telemetry data | |
| US20240348660A1 (en) | Hardware-based Zero Trust Network Access Agent for Improved Security | |
| US12244736B2 (en) | Methods and apparatus for secure configuration of a compute device | |
| US20240106900A1 (en) | Methods and apparatus to add a non-native node to a cluster | |
| US12592916B2 (en) | Methods and apparatus to authenticate computing devices |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23940919 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023940919 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2023940919 Country of ref document: EP Effective date: 20260107 |
|
| ENP | Entry into the national phase |
Ref document number: 2023940919 Country of ref document: EP Effective date: 20260107 |
|
| ENP | Entry into the national phase |
Ref document number: 2023940919 Country of ref document: EP Effective date: 20260107 |
|
| ENP | Entry into the national phase |
Ref document number: 2023940919 Country of ref document: EP Effective date: 20260107 |
|
| ENP | Entry into the national phase |
Ref document number: 2023940919 Country of ref document: EP Effective date: 20260107 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2023940919 Country of ref document: EP |