SYSTEM AND METHOD FOR SECURE PEER DEPLOYMENT OF SOFTWARE TO NETWORKED DEVICES
20220004379 · 2022-01-06
Inventors
Cpc classification
H04L9/3239
ELECTRICITY
G06F8/654
PHYSICS
G06F21/64
PHYSICS
G06F9/44589
PHYSICS
G06F21/57
PHYSICS
International classification
G06F21/57
PHYSICS
Abstract
A system and method for secure, peer-based validation, distribution and installation of software includes two or more networked multifunction peripheral devices, each of which stores a common blockchain ledger. A blockchain transaction block is created and distributed among the devices. The block includes software comprising a single package that includes software for device installation or configuration, along with a smart contract. When the devices validate the block by consensus, it is added to the blockchain and each device executes the smart contract and installs or configures itself in accordance with the software when the smart contract determines that the software is appropriate for the device.
Claims
1. A multifunction peripheral comprising: a printer; a scanner; a user interface; a processor configured to control operation of the printer and the scanner; a memory storing a blockchain; and a network interface configured for data communication with a plurality of networked devices, wherein the network interface is further configured to receive a block into the memory, the block including a smart contract and software comprising multifunction device firmware, multifunction device executable software and multifunction device configuration; wherein the processor is further configured to validate a received block; wherein the processor is further configured to receive validation data confirming validation of the received block from the networked devices via the network interface; wherein the processor is further configured to append the validated block to the blockchain; wherein the processor is further configured to execute the smart contract to determine compatibility of the device firmware, the device executable software and device configuration in the validated block with the multifunction peripheral in accordance one or more of a device manufacturer, current device configuration, current device ownership or current device location; wherein the processor is further configured to update the multifunction peripheral with the firmware when the processor determines it to be compatible with the multifunction peripheral in accordance with execution of the smart contract; wherein the processor is further configured to update the multifunction peripheral with the device executable software when the processor determines it to be compatible with the multifunction peripheral in accordance with execution of the smart contract; and wherein the processor is further configured to modify configuration of the multifunction peripheral when the processor determines the device configuration to be compatible with the multifunction peripheral in accordance with execution of the smart contract.
2. The multifunction peripheral of claim 1 wherein the processor is further configured to determine compatibility of the software in accordance with a version of the firmware.
3. The multifunction peripheral of claim 1 wherein the software is further comprised of a preset configuration of the user interface, and wherein the processor is further configured to reconfigure the user interface in accordance with the software.
4. The multifunction peripheral of claim 1 wherein the processor is further configured to isolate the received block until receipt of the validation data.
5. The multifunction peripheral of claim 1 wherein the software is specific to a business associated with the location of the multifunction peripheral.
6. The multifunction peripheral of claim 5 wherein the software is further comprised a preset configuration of the user interface associated with the business, and wherein the processor is further configured to reconfigure the user interface in accordance with the software.
7. A method comprising: storing a blockchain in a memory; communicating data with a plurality of networked devices via a network interface; receiving a block into the memory via the network interface, the block including a smart contract and software comprising multifunction device firmware, multifunction device executable software and multifunction device configuration; validating the received block; receiving validation data confirming validation of the received block from the networked devices via the network interface; appending the validated block to the blockchain; executing a smart contract encoded into the received block to determine compatibility of the device firmware, device executable software and device configuration in the validated block with a multifunction peripheral in accordance with an executed smart contract in accordance with one or more of a device manufacturer, current device configuration, current device ownership or current device location; updating the multifunction peripheral with the firmware when the processor determines it to be compatible with the multifunction peripheral in accordance with execution of the smart contract; updating the multifunction peripheral with the device executable software when the processor determines it to be compatible with the multifunction peripheral in accordance with execution of the smart contract; and modifying a configuration of the multifunction peripheral when the processor determines the device configuration to be compatible with the multifunction peripheral in accordance with execution of the smart contract.
8. The method of claim 7 further comprising determining compatibility of the software in accordance with a version of the firmware.
9. The method of claim 7 wherein the software is further comprised of a preset configuration of the user interface, and further comprising reconfiguring the user interfaces in accordance with the software.
10. The method of claim 7 further comprising isolating the received block until receipt of the validation data.
11. The method of claim 10 wherein the software is specific to a business associated with the location of the multifunction peripheral.
12. The method of claim 11 wherein the software is further comprised a preset configuration of the user interface associated with the business, and further comprising reconfiguring the user interfaces in accordance with the software.
13. A method of updating and configuring a fleet of multifunction peripherals with a single package deployment comprising; configuring a block to include a smart contract and software, the software including device firmware, device executable software and device configuration; broadcasting a configured block to a plurality of multifunction peripherals, the block including a smart contract and software comprised of firmware; receiving the configured block at each of the multifunction peripherals; validating the configured block at each of the multifunction peripherals; exchanging validation between the multifunction peripherals; validating the configured block at each of the multifunction peripherals after receipt of validation from other multifunction peripherals; adding a validated block to a blockchain stored in a memory of each of multifunction peripheral; executing, at each multifunction peripheral, the smart contract from the validated block to determine compatibility of the device firmware, the device executable software and device configuration at each of the multifunction peripherals in accordance with execution of the smart contract and location, device manufacturer; and selectively updating firmware, executable software and configuration at each of the multifunction peripherals in accordance with determined compatibility.
14. The method of claim 13 further comprising determining the compatibility of the software at each of the multifunction peripherals in accordance with a version of its firmware.
15. The method of claim 14 further comprising configuring, with the software, a user interface of each multifunction peripheral determined to be compatible with the software.
16. The method of claim 15 further comprising determining the compatibility of the software at each multifunction peripheral location in accordance with a business associated with its location.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Various embodiments will become better understood with regard to the following description, appended claims and accompanying drawings wherein:
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
DETAILED DESCRIPTION
[0012] The systems and methods disclosed herein are described in detail by way of examples and with reference to the figures. It will be appreciated that modifications to disclosed and described examples, arrangements, configurations, components, elements, apparatuses, devices methods, systems, etc. can suitably be made and may be desired for a specific application. In this disclosure, any identification of specific techniques, arrangements, etc. are either related to a specific example presented or are merely a general description of such a technique, arrangement, etc. Identifications of specific details or examples are not intended to be, and should not be, construed as mandatory or limiting unless specifically designated as such.
[0013] As noted above, it is costly and time consuming to configure or maintain MFPs individually. Modern MFPs are run by integrated computer systems, referred to as controllers. MFPs are typically connected to a network to allow for shared use, such as networked printing and email communication. Remote configuration or updating of MFPs may be done via a network connection. However, each device is still individually contacted and updated or configured.
[0014] MFPs include user interfaces, such as touchscreens for user operation and control. A typical user interface is set by a manufacturer and not subject to user modification. More recent advances allow end users to generate customized device interfaces that may be specific to their needs, such as by providing access to frequently needed functions for easy location and selection. Different business types may have different basic device needs. MFPs in a hospital may require ready access to electronic health records, insurance forms, prescription forms, patient questionnaires, and the like. MFPs in hospitals may also require enhanced security features, such as encryption or disabling or limiting information reproduction or transfer to maintain patient confidentiality. MFPs in law office may require ready access to legal forms, and be configured to generate bound material, such as printouts of deposition transcripts. A company may also wish to configure a user interface to incorporate a company logo, such as in a user interface background.
[0015] When a specific business, or business location, wishes to have a uniform, customized interface on its many MFPs, it can be extremely time consuming and costly to supply software to update, customize or configure them individually. Software comprising a portable configuration file allows for creation of a customized interface by uploading it into all devices. However, certain devices may be from a different manufacturer, different model or different firmware version rendering them incompatible with a distributed software/configuration file. In such instances, installation of software or a configuration file on incompatible devices can damage the devices or render some or all features unusable. Also, attempted installation of corrupt software places all devices at risk. Also, interfaces that are customized for a particular business should be installed only on its MFPs.
[0016] Example embodiments herein provide a secure, peer-based software distribution with automated verification, compatibility testing and installation. Software, such as device software or configuration information, is stored and distributed as a block in a blockchain that is distributed among networked MFPs.
[0017] In accordance with the subject application,
[0018] Turning now to
[0019] Processor 202 is also in data communication with a storage interface 208 for reading or writing data with storage 216, suitably comprised of a hard disk, optical disk, solid-state disk, cloud-based storage, or any other suitable data storage as will be appreciated by one of ordinary skill in the art.
[0020] Processor 202 is also in data communication with a network interface 210 which provides an interface to a network interface controller (NIC) 214, which in turn provides a data path to any suitable wired or physical network connection 220, or to a wireless data connection via a wireless network interface, such as WiFi 218. Example wireless connections include cellular, Wi-Fi, wireless universal serial bus (wireless USB), satellite, and the like. Example wired interfaces include Ethernet, USB, IEEE 1394 (FireWire), Lightning, telephone line, or the like. Processor 202 is also in data communication with a hardware monitor 221, suitably amassing state data from subassemblies, sensors, digital thermometers, or the like, and suitably including digital state date including device codes, such as device error codes. Processor 202 can also be in data communication a document processor interface 222, with BLUETOOTH interface 226 and NFC interface 228 via data path 212.
[0021] Processor 202 can also be in data communication with any suitable user input/output (I/O) interface (not shown) which provides data communication with user peripherals, such as displays, keyboards, mice, track balls, touch screens, or the like.
[0022] Document processor interface 222 is suitable for data communication with MFP functional units 250. In the illustrate example, these units include a copy engine, suitably comprised of copy hardware 240, a scan engine, suitably comprised of scan hardware 242, a print engine, suitably comprised of print hardware 244 and a fax engine, suitably comprised of fax hardware 246. These subsystems together comprise MFP functional hardware 250. It will be understood that functional units are suitably comprised of intelligent units, including any suitable hardware or software platform.
[0023]
[0024]
[0025] MFPs 420 and 424 are in Company Building A 428, so both are targeted to deploy single package 404. However, MFP 420 has an incompatible firmware version precluding deployment. Company building B 432 includes MFPs 436, 440 and 444. In Building B, deployment of single package 404 is via internal distribution via server 448. Single package 404 is not deployed to MFP 436 as it too has an incompatible firmware version. Once a single package 404 has been deployed in a blockchain block, it is added to the blockchain only at such point that integrity of the associated block has been verified by any suitable distributed verification protocol. Once deployment is completed, installation can be automatically commenced and completed, or completed upon an execution command issued by administrator 452 via workstation 456.
[0026]
[0027]
[0028] Next, a determination is made as to whether the software is compatible with the device at block 640. If not, the process ends at block 628. If so, a determination is made at block 644 as to whether the software is compatible with a location of a device or ownership or control of the device. If not, the process ends at block 628. If so, the software is set for processing at block 648. If the software is determined to be an interface configuration at block 652, the interface is configured at block 656 and the process ends at block 628. If it is not an interface configuration, a test is made as to whether it is a device software update at block 660. If so, a software update is made at block 664 of device software or firmware, and the process ends at block 628. If not, other software may suitably be processed at block 668, such as changing device settings, updating data, or the like, and the process ends at block 628.
[0029] While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the spirit and scope of the inventions.