DISTRIBUTION OF CODE TO AN AUTHORIZED TARGET INFRASTRUCTURE

Examples herein disclose a computer-readable medium, system, and method for distribution of code to an authorized target infrastructure within a manufacturing environment. Prior to deployment of the target infrastructure, receive a digital signature corresponding to the target infrastructure. In response to a determination that the target infrastructure is authorized to receive code via the digital signature, distribute code to the target infrastructure.

BACKGROUND

In a manufacturing environment, components may be assembled or modified to create a manufactured infrastructure, such as a server, networking, and/or storage infrastructure. The manufactured infrastructure may be deployed directly to a consumer or deployed to another manufacturing environment for use in a different product.

DETAILED DESCRIPTION

Prior to deploying the manufactured infrastructure, code may he distributed to the manufactured infrastructure. One approach sends the code directly to the manufactured infrastructure, while another approach sends the code to a factory server for distribution to the manufactured infrastructure. Both of these approaches may blindly distribute code to a manufactured infrastructure that may be unauthorized or comprised. Distributing code to these compromised infrastructures may cause security issues. For example, an unauthorized entity may be able to reverse engineer the distributed code with the purpose of maliciously comprising systems and infrastructures. Additionally, distributing code to a compromised infrastructure may cause operational and security issues when shipped to the consumer. The term “code” may be used herein to refer to a set of machine-readable instructions and may include, by way of example, test scripts, software, firmware, programs, diagnostics, instructions, and/or applications.

Accordingly, the present disclosure provides a mechanism to verify whether a manufactured infrastructure is authorized to receive a distribution of code through use of a digital signature. By verifying whether the manufactured infrastructure is authorized to receive the distribution of code, the present disclosure may identify whether the manufactured infrastructure has been compromised and proceed to implement proactive measures to safeguard the distribution of code to the compromised infrastructure. Additionally, identifying whether the manufactured infrastructure has been compromised prior to deployment adds a quality check to ensure the manufactured infrastructure remains uncompromised.

The present disclosure also manages the distribution of code to those manufactured infrastructures that are authorized. Managing the distribution of code prevents proprietary code from reaching unauthorized entities. The term “authorization” may be used herein to refer to those infrastructures which are considered uncompromised while the term “unauthorization” refers to those manufactured infrastructures are unknown and may be considered compromised.

The following detailed description refers to the accompanied figures. Wherever possible, the same reference numbers are used in the figures and the following description to refer to the same or similar parts. It is to be expressly understood, however, that the figures are for the purpose of illustration and description only. While several examples are described throughout, modification, adaptions, and other implementations are possible. Accordingly, the following detailed description is not meant to limit the disclosed examples, rather it is meant to provide proper scope of the disclosed examples and may be defined by the appended claims.

FIG. 1illustrate an example system102including master device104to authorize target infrastructure120located in manufacturing environment116. Master device104includes processor106and database108which work in conjunction to determine if target infrastructure120is authorized and in response, distribute code as at modules112-114. System102represents master device104in communication with target infrastructure(s)120in manufacturing environment116. Although system102illustrates master device104and manufacturing environment116as remotely connected, this was done for illustration purposes as master device104may be part of manufacturing environment116.

Master device104is an electronic component which includes processor106and database108. Prior to deployment of target infrastructure(s)120, processor106receives digital signature(s)122corresponding to target infrastructure(s)120. In one implementation, received digital signature(s)112correspond to the various components connected to create the respective target infrastructure while in another implementation, received digital signatures(s)112correspond to the respective complete target infrastructure(s)120. In further implementations, master device104operates as a master server in remote communication with target infrastructure(s)120. Operating in remote communications allows master device104to be located in a wholly separate location from manufacturing environment116. Implementations of master device104include, by way of example, a server, a computing device, a networking device, a data center, a virtual server, a virtual networking component, or other type of device which manages distribution of code to authorized target infrastructure(s).

Processor106, in communication with database108, obtains known digital signature110and manufacturing environment116and receives digital signature(s)122. Based on receiving these digital signature(s)110and122, processor106determines if target infrastructure(s)120are authorized to receive code from master device104at module112. In response to the determination that the target infrastructure(s)120are authorized, processor106proceeds to distribute code to the authorized target infrastructure(s) as at module114. In response to the determination that the target infrastructure(s) are unauthorized, processor106does not distribute code. This implementation may be discussed in later figures. Implementations of processor include, by way of example, a central processing unit (CPU), integrated circuit, controller, semiconductor, processing resource, or other type of hardware component capable of the functionality of the processor106.

Database108is a storage area as part of master device104which includes a list of known digital signatures. The list of known digital signatures are a list of tiles (e.g., hash files, hash values) that correspond to known or authorized infrastructures which are considered uncompromised and safe to receive code from master device104. Implementations of database108include, by way of example, a storage array, a memory, a cache, a Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a memory cache, network storage, virtual storage, etc.

Known digital signature110represents an infrastructure with connected components that is known or previously authorized. The authorized infrastructure includes the components which has been granted permission to receive code. If any of the component(s) connected to the target infrastructure(s)120or the target infrastructure(s) have not been given permission to receive code, this indicates that target infrastructure is unauthorized and may include an unknown component. In one implementation, known digital signature110represents an encrypted character or string of encrypted characters that master device104may decrypt to verify the authorization of the target infrastructure(s)120. In another implementation, known digital signature10includes a message-digest has function, such as MD2, MD4, and MD5, and Secure Hash Algorithm (SHA) to hash known digital signature110into a shorter value or longer value. As such, implementations the digital signature and known digital signature include a bitstring, hash value, hash code, hash sum, value, character, string of characters, or other type of representation to authorize target infrastructure(s)120for receiving code. The format of known digital signature and digital signature(s)122are similar to one another, such that processor106uses these as inputs to identify whether target infrastructure(s)120are authorized to receive code from master device104.

At modules112-114, processor106identifies if target infrastructure(s)120are authorized and in response, processor106distributes code to the authorized target infrastructure(s)120. Although digital signature(s)122include two signatures, this was done for illustration purposes as processor106may receive a single digital signature corresponding to one of target infrastructure(s)120. At module112, processor106compares known digital signature110to digital signature(s)122. In the case of a discrepancy (e.g., difference) between known digital signature110and digital signature(s)122, this indicates target infrastructure(s)120are unauthorized to receive code. In the case of a correspondence (e.g., similarity) between known digital signature110and digital signature(s)122, this indicates target infrastructure(s)120are known and authorized to receive code from master device104. At module114, in response that target infrastructure(s)122are authorized, processor106proceed to distribute code to the authorized target infrastructures. Implementations of modules112-114include, by way of example, instructions (e.g., stored on a machine-readable medium) that, when executed (e.g., by processor106), implement the functionality of modules112-114. Alternatively, or in addition, the modules112-114may include electronic circuitry (i.e., hardware) that implements the functionality of modules112-114.

Manufacturing environment116may include factories118that may assemble or modify components attached to respective target infrastructure(s)120prior to deployment to a consumer or other manufacturing environment. Factories118represent locations of target infrastructure(s)120prior to deployment. AlthoughFIG. 1illustrates factories118as separate from manufacturing environment116, this was done for illustration purposes as the term “manufacturing environment” is used as a broad term to describe at least a single location where target infrastructure(s)120are located prior to deployment to a customer or another factory. Additionally,FIG. 1illustrates two separate factories118(Factory A, Factory B), this was done for illustration purposes as there may be a single factory (Factory A or Factory B).

Target infrastructure(s)120represents a physical structure which may be fabricated, modified, and/or updated within factories118in manufacturing environment116. Target infrastructure(s)120are located within manufacturing environment prior to deployment. These target infrastructure(s)120may include at least one or combination of a server infrastructure, a storage infrastructure, and/or a network infrastructure. Each of these infrastructures represent a different type of infrastructure. As such, if one of these infrastructures are determined to be unauthorized to receive code from master device104, a detection process is performed to identify the unauthorized or unknown component connected to the infrastructure. The process is dependent on the type of infrastructure as explained in later figures.

Target infrastructure(s)120include corresponding digital signature(s)122for processor106to identify the authorization. As such, digital signature(s)122represent a mathematical function to demonstrate the authenticity of authorization of target infrastructure(s)120. Digital signature(s)112may be collected by processor106prior to deployment of target infrastructure(s)120. In one specific implementation, digital signature(s)122are hashed files representing the components or complete target infrastructure(s)120. As explained earlier, the format of digital signature(s)122are similar to known digital signature110. This may include, by way of example, the same number of characters, the same hashing function, etc.

FIGS. 2-4each illustrate a block diagram of an example system including a different type of target infrastructure. For example,FIG. 2illustrates a server infrastructure,FIG. 3illustrates a network infrastructure, andFIG. 4illustrates a storage infrastructure. Depending on the type of target infrastructure, each figure may take a different approach to detect an unknown device.

FIG. 2is a block diagram of an example system including master device104to detect unknown server226as part of server infrastructure220in manufacturing environment116. Digital signature222corresponds to firmware implemented at each server224and unknown server226. Based on a comparison between this digital signature222and known digital signature110at module228, processor106may detect unknown server226at module230. As such, firmware implemented at servers224is used to track and identify unknown server226. In response to the detection of unknown server226, processor106determines that server infrastructure220is unauthorized to receive code at module232.FIG. 2represents the situation of where a type of target infrastructure includes server infrastructure220and process to detect unknown server226to identify server infrastructure220as unauthorized.

Database108lists example hash values of firmware implemented at known servers224(Server1, Server2, Server3). In this example, the list of example known digital signatures (e.g., hash values) are used in comparison to a list of digital signatures222corresponding for firmware implemented at servers224as part of server infrastructure220.

Digital signature222that corresponds to firmware implemented at server infrastructure220. Specifically, digital signature222may include a single hash value corresponding to the overall server infrastructure220or multiple hash values corresponding to firmware implemented at each known server224(Server1, Server2, Server3). In one implementation, digital signature222includes a hash file of the hash value representing the overall server infrastructure with servers224and unknown server226combined. In other implementations, digital signature222includes a hash file with hash values each corresponding to the different servers224and unknown server226. In this latter implementation, a scanning process using a server's console is performed to identify the firmware corresponding to each server224and226. The hash values representing each server firmware is placed in a server table to transmittal to processor106. In this case, the server table contains known servers224(Server1, Server2, Server3) except for unknown server226which may not have a hash value against that device226. This process allows processor106to detect unknown server226and notify operations staff for further action without releasing or distributing code.

Servers224and unknown server226represent a different server which are configured as part of server infrastructure220. Servers224represent known servers to master device104, while unknown server226represents that server which may not have been previously authorized. Alternatively, unknown server226may represent that server which may have been relocated form one server infrastructure to server infrastructure220. This may alert processor106to this unapproved transition from one infrastructure to another which allows master device104to identify server infrastructure220as unauthorized.

FIG. 3is a block diagram of an example system including master device104to detect an unknown networking component (e.g., switch326) attached to network infrastructure320via known digital signature(s)110and digital signature(s)322. Digital signature322corresponds to network devices324and326which are attached to network infrastructure320. In response to comparing both known digital signature(s)110and digital signature(s)322, processor106determines that network infrastructure320is unauthorized to receive code. Processor106works in conjunction with database108to obtain known digital signature(s)110corresponding to previously known networking components324(Router, Switch1, Switch2). Obtaining the known digital signature(s)110, processor106proceeds to compare to received digital signature322at module to detect unknown switch326at modules328-330. Detecting unknown switch326, allows master device104to identify changes to network infrastructure320and/or modification of network topology. Changes to network infrastructure320may include removal, additional, and/or replacement a networking component, while modification of network topology may include moving a location of the networking component within the network infrastructure320. In this example, a set of network devices attached to one network infrastructure moved to a different network infrastructure from which processor106may be able to detect this modification. In this sense, master device104may identify unknown devices and also detect changes on network configurations. This may be achieved via link layer discover protocol (LLDP) during a discovery phase to identify attached networking devices324and326.

Prior to deployment of network infrastructure320, processor306performs a scanning process via LLDP to identify networking devices324and326attached to network infrastructure324at module334. Alternatively, these network devices324and326may be detected with an active network port. Based on the identification of networking devices324and326, digital signature322is composed as list of previously known networking devices324(Switch1, Switch2, Router) and active ports, except unknown switch236which does not have a hash file. Processor106compares this digital signature322to known digital signatures110from database108to identify a discrepancy between the hash values at module328. In response to identified discrepancy, processor106detects unknown switch326which was excluded as the hash file from digital signature322. Based on the detection of unknown switch320, processor106proceeds to determine that network infrastructure is unauthorized at module332.

FIG. 4is a block diagram of an example system including master device104to detect unknown storage module426as part of storage infrastructure420via known digital signatures)110and digital signature(s)422. Digital signature(s)422correspond to known storage components424(Controller and Storage Module1). Upon receiving digital signature(s)422and obtaining known digital signature(s)110, processor106compares these digital signatures110and422to identify if a discrepancy exists at module428. Upon determining the existence of the discrepancy between digital signatures110and422, processor106detects unknown storage module426at module430. In response to detecting unknown storage module426, processor106proceeds to determine that storage infrastructure420is unauthorized to receive code.

Prior to deployment of storage infrastructure420, storage controller424performs a scanning process to identify attached storage modules424and426. In this case, digital signature422contains previously known storage components (Controller and Storage Module1)424except for unknown storage module426. Unknown storage module426does not contain a hash tile. Receiving digital signature422, processor106identifies unknown storage module426as unauthorized since the digital signature422did not include hash value corresponding to this module426.

FIG. 5is an example flowchart as illustrated in accordance with various examples of the present disclosure. The flowchart represents a process that may be utilized in conjunction with various systems and devices as discussed with reference to the preceding figures. While illustrated in a particular order, the flowchart is not intended to be so limited. Rather, it is expressly contemplated that various processes may occur in different orders and/or simultaneously with other processes than those illustrated.

FIG. 5illustrates the example method to authorize or unauthorize a target infrastructure within a manufacturing environment. In response to the authorization of the target infrastructure, a computing device distributes code. In response to the unauthorization of the target infrastructure, the computing devices detect an unknown device connected to the target infrastructure without distribution of code. The method is executable by the computing device, to identify the authorization of unauthorization. Prior to deployment of the target infrastructure, the computing device receives a digital signature which corresponds to the target infrastructure and may proceed to obtain a known digital signature which corresponds to a known authorized infrastructure. Using these digital signatures, the computing device may identify a correlation (e.g., equivalence) between the signatures. Upon identifying the correlation, the computing device determines that the target infrastructure is authorized to receive code and proceeds to distribute code to the target infrastructure. Alternately, the computing device may identify a discrepancy (e.g., difference) between these digital signatures and proceeds to determine that the target infrastructure is unauthorized, in response to determination that the target infrastructure is unauthorized, the computing device proceeds to detect an unknown source connected to the target infrastructure that may be the source of the unathorization. In addition, the computing device may transmit a notification of the unauthorization. In discussingFIG. 5, references may be made to the components inFIGS. 1-4to provide contextual examples. For example, master device104including processor106and/or database108works in conjunction to execute operations502-516to distribute code in response to an authorization of the target infrastructure or detect an unknown device in response to an unauthorization of the target infrastructure. AlthoughFIG. 5is described as implemented by the computing device, it may be executable on other suitable hardware components. For example,FIG. 5may be implemented in the form of executable instructions on a machine-readable storage medium604and704as inFIGS. 6-7.

At operation502, the computing device receives the digital signature corresponding to the target infrastructure. The computing device may transmit a request or query to the target infrastructure to receive the digital signature. The received digital signature represents an encrypted character or string of encrypted characters that the computing device may decrypt to verify the authorization of the target infrastructure. In this sense, the received digital signature corresponds to the components and devices which provide the composition of the target infrastructure. The computing device may proceed to obtain the known digital signature from a storage to identify an existence of the discrepancy.

At operation504, the computing device obtains the known digital signature from the database. The known digital signature represents those components and/or devices which provide the framework of a known and authorized infrastructure. The known digital signatures may be predefined as those infrastructure components that are known to be uncompromised. In one implementation, the known digital signature may be received prior to receiving the digital signature corresponding to the target infrastructure.

At operation506, the computing device proceeds to compare the received digital signature corresponding to the target infrastructure to the known digital signature corresponding to the known authorized infrastructure. In one implementation, operations502-504may be performed in combination to verify that the target infrastructure is authorized to receive code via the received digital signature and the known digital signature. Upon comparing the digital signatures, the computing proceeds to identify if the target infrastructure is authorized or unauthorized to receive code. In response to the discrepancy between the digital signatures, the computing device determines that the target infrastructure is unauthorized and proceeds to operations512-516. In response to the correlation (e.g., similarity) between the digital signatures, the computing device determines that the target infrastructure is authorized and proceeds to operations508-510.

At operations508-510, in response to a correspondence (e.g., similarity) between the digital signature and a known digital signature, the computing device determines that the target infrastructure is authorized to receive code. Based on the authorization, the computing device proceeds to operation510to distribute code.

At operation512, based on the computing device determining there is the discrepancy (e.g., difference) between the received digital signature and the known digital signature as at operation506, the computing device determines that the target infrastructure is unauthorized to receive code. In an implementation, the discrepancy in both the received digital signature and the known digital signature, also allows the computing device to identify an unknown component or unknown device that is attached to the target infrastructure as at operation514. As such, in this implementation, operations506and512-514may occur in combination or simultaneously together.

At operation514, a computing device located within the manufacturing environment performs a scanning process via LLDP for discovering the components or devices attached to the target infrastructure. Based on the LLDP, the computing devices identities the unknown component or unknown device attached to the target infrastructure. In implementations the approach to detect the unknown device is dependent on the type of target infrastructure as seen in connection with earlier figures.

At operation516, in response that the target infrastructure is unauthorized to receive code, the computing device transmits a notification of the unauthorization without distributing code to the unauthorized target infrastructure. In a further implementation, the notification may include the identity of the unknown device for an operations staff to perform the appropriate diagnostics and corrective actions, accordingly.

Referring now toFIGS. 6-7, example block diagrams of computing devices600and700to execute instructions606-608and706-722are illustrated in accordance with various examples of the present disclosure. The instructions represent machine-readable operations that may be utilized in conjunction with various systems and devices as discussed with reference to the preceding figures. While illustrated in a particular order, these instructions606-608and706-722are not intended to be so limited. Rather, it is expressly contemplated that instructions may be executed in different orders and/or simultaneously with other instructions than those illustrated.

FIG. 6is a block diagram of computing device600with a processor602to execute instructions606-608within a machine-readable storage medium604. Although the computing device600includes processing resource602and machine-readable storage medium604, it may also include other components that would be suitable to one skilled in the art. For example, the computing device600may include a controller, memory storage, or other suitable type of component. The computing device600is an electronic device with the processing resource602capable of executing instructions606-608and as such embodiments of the computing device600include a networking device, server, mobile device, desktop computer, or other type of electronic device capable of executing instructions606-608. The instructions606-608may be implemented as methods, functions, operations, and other processes implemented as machine-readable instructions stored on the storage medium604, which may be non-transitory, such as hardware storage devices (e.g., random access memory (RAM), read only memory (ROM), erasable programmable ROM, electrically erasable ROM, hard drives, and flash memory).

The processing resource602may fetch, decode, and execute instructions606-608to distribute code to an authorized target infrastructure. Specifically, the processing resource602executes instructions606-608to: receive a digital signature corresponding to a target infrastructure within a manufacturing environment; determine that the target infrastructure is authorized to receive code based on the received digital signature; and in response to the determination that the target infrastructure is authorized to receive code, distribute code to the target infrastructure.

The machine-readable storage medium604includes instructions606-608for the processing resource602to fetch, decode, and execute. In another embodiment, the machine-readable storage medium604may be an electronic, magnetic, optical, memory, storage, flash-drive, or other physical device that contains or stores executable instructions. Thus, the machine-readable storage medium604may include, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a memory cache, network storage, a Compact Disc Read Only Memory (CDROM) and the like. As such, the machine-readable storage medium604may include an application and/or firmware which can be utilized independently and/or in conjunction with the processing resource602to fetch, decode, and/or execute instructions of the machine-readable storage medium604. The application and/or firmware may be stored on the machine-readable storage medium604and/or stored on another location of the computing device600.

FIG. 7is a block diagram of computing device700with a processing resource702to execute instructions706-722within a machine-readable storage medium704. Specifically, the computing device700with the processing resource702identify whether a target infrastructure is authorized or unauthorized to receive code. In response to a determination that the target infrastructure is authorized to receive code, distribute code to the target infrastructure. In response to a determination that the infrastructure is unauthorized to receive code, perform a detection process to identify an unknown device attached to the target infrastructure. Although the computing device700includes processing resource702and machine-readable storage medium704, it may also include other components that would be suitable to one skilled in the art. For example, the computing device700may include a controller, memory storage, or other suitable type of component. The computing device700is an electronic device with the processing resource702capable of executing instructions706-722and as such embodiments of the computing device700include a networking device, server, switch, router, mobile device, desktop computer, laptop, or other type of electronic device capable of executing instructions706-722. The instructions706-722may be implemented as methods, functions, operations, and other processes implemented as machine-readable instructions stored on the storage medium704, which may be non-transitory, such as hardware storage devices (e.g., random access memory (RAM), read only memory (ROM), erasable programmable ROM, electrically erasable ROM, hard drives, and flash memory),

The processing resource702may fetch, decode, and execute instructions706-722to determine whether a target infrastructure within a manufacturing environment is authorized or unauthorized. Specifically, the processing resource702executes instructions706-722to: prior to deployment of a target infrastructure, receive a digital signature corresponding to the target infrastructure; obtain a known digital signature corresponding to an authorized infrastructure; compare both signatures; in response to a discrepancy between the signatures, identify the target infrastructure as unauthorized; perform a detection process to identify an unknown component attached to the target infrastructure, the detection process is dependent on a type of the target infrastructure (i.e., server infrastructure, storage infrastructure, network infrastructure); in the case that the target infrastructure includes the server infrastructure, the received digital signature corresponds to the firmware implemented at each server connected to the infrastructure to identify an unknown server connected to the infrastructure; in the case that the target infrastructure includes a storage infrastructure, the received digital signature corresponds to the attached storage controller(s) and attached storage module(s) while the known digital signature includes the known or authorized storage controller(s) and storage module(s) so that the unknown or unauthorized storage controller(s) and storage module(s) are identified; in the case that the target infrastructure includes a network infrastructure, a link layer discovery protocol (LLDP) is performed on the network infrastructure, so that the received digital signature includes all attached network devices and the known digital signature includes all known and authorized network devices such that a comparison between these signatures identifies the unknown network device; and in response to a correspondence (e.g., similarity) between the digital signatures, determine the target infrastructure is authorized to receive code and distribute code to the target infrastructure within the manufacturing environment.

The machine-readable storage medium704includes instructions706-722for the processing resource702to fetch, decode, and execute. In another embodiment, the machine-readable storage medium704may be an electronic, magnetic, optical, memory, storage, flash-drive, or other physical device that contains or stores executable instructions. Thus, the machine-readable storage medium704may include, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a memory cache, network storage, a Compact Disc Read Only Memory (CDROM) and the like. As such, the machine-readable storage medium704may include an application and/or firmware which can be utilized independently and/or in conjunction with the processing resource702to fetch, decode, and/or execute instructions of the machine-readable storage medium704. The application and/or firmware may be stored on the machine-readable storage medium704and/or stored on another location of the computing device700.

Although certain embodiments have been illustrated and described herein, it will be greatly appreciated by those of ordinary skill in the art that a wide variety of alternate and/or equivalent embodiments or implementations calculated to achieve the same purposes may be substituted for the embodiments shown and described without departing from the scope of this disclosure. Those with skill in the art will readily appreciate that embodiments may be implemented in a variety of ways. This application is intended to cover adaptions or variations of the embodiments discussed herein. Therefore, it is manifestly intended that embodiments be limited only by the claims and equivalents thereof.