USPatent applicationPatented

Information processing apparatus, information processing method, and computer program product

Granted 24 Nov 2020 · 1 office action

Life of the application

9 dated events
⤢ drag to zoom20182020202220242026202820302032203420362038ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

According to an embodiment, an information processing apparatus includes one or more processors. One or more processors acquire first distinctive information of a first piece of software to be executed. When a whitelist that specifies distinctive information of pieces of software that are permitted to be executed records the distinctive information indicating the first distinctive information, one or more processors distinctively identify, as second distinctive information, the distinctive information of a second piece of software that represents another piece of software relating to the first piece of software in the whitelist.

Description

16 parts
›CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2017-173977, filed on Sep. 11, 2017; the entire contents of which are incorporated herein by reference.

›FIELD

Embodiments described herein relate to an information processing apparatus, an information processing method, and a computer program product.

›BACKGROUND

Techniques are known to prevent malicious programs from being executed. One known technique, for example, limits software programs that are permitted to be executed only to those programs recorded in a whitelist. A method is also known, in order to securely update the whitelist, to automatically add to the whitelist only those software programs security of which has been guaranteed by a master file list.

Consider a case in which software programs that are not updated become unnecessary as a result of a system update and such software programs may be left recorded in the whitelist. Through the lapse of time, the software programs that are not updated may be compromised and, if such a software program is executed, system security may be impaired. From a security viewpoint, it is preferable that the compromised software and unnecessary software be immediately deleted from the whitelist. Unfortunately, however, system availability may be impaired by the updating of such a whitelist.

›BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of an exemplary information processing system;

FIG. 2 is a schematic diagram of a functional configuration of an updating apparatus;

FIG. 3A is a schematic diagrams of data configuration of update software information;

FIG. 33 is a schematic diagrams of old software information;

FIG. 3C is a schematic diagrams of identification information of software to be updated;

FIG. 4 is a block diagram of a functional configuration of an information processing apparatus;

FIGS. 5A and 5B are schematic diagrams of configurations of data stored in a storage;

FIG. 6 is a flowchart illustrating a procedure of an information processing process;

FIG. 7 is a flowchart illustrating a procedure of an update information generation process;

FIG. 8 is a flowchart illustrating a procedure of an updating process;

FIG. 9 is a flowchart illustrating a procedure of a recording and updating process;

FIG. 10 is a flowchart illustrating a procedure of a distinguishing process;

FIG. 11 is a flowchart illustrating a procedure of a distinguishing process;

FIG. 12 is a flowchart illustrating a procedure of a distinguishing process; and

FIG. 13 is a hardware configuration diagram.

›DETAILED DESCRIPTION · 1 of 12

According to an embodiment, an information processing apparatus includes one or more processors. One or more processors acquire first distinctive information of a first piece of software to be executed. When a whitelist that specifies distinctive information of pieces of software that are permitted to be executed records the distinctive information indicating the first distinctive information, one or more processors distinctively identify, as second distinctive information, the distinctive information of a second piece of software that represents another piece of software relating to the first piece of software in the whitelist.

Embodiments will be described below in detail with reference to the accompanying drawings.

FIG. 1 is a schematic diagram of an exemplary information processing system 1 according to an embodiment.

The information processing system 1 includes an updating apparatus 10 and an information processing apparatus 20 . The updating apparatus 10 and the information processing apparatus 20 are connected so as to be capable of transmitting and receiving data and signals via a communication line such as a wired line or a wireless line.

It is noted that the updating apparatus 10 and the information processing apparatus 20 may transmit and receive information via a storage medium. The updating apparatus 10 may, for example, store information in a storage medium. The information processing apparatus 20 may then acquire from the updating apparatus 10 the information by reading the information from the storage medium.

The updating apparatus 10 transmits update software, for example, to the information processing apparatus 20 . The update software represents software that has been updated. For example, the update software is software of the latest version at the time of the transmission of the update software.

FIG. 2 is a schematic diagram of a functional configuration of the updating apparatus 10 . The updating apparatus 10 includes a processor 12 and a storage 14 . The processor 12 and the storage 14 are connected so as to be capable of transmitting and receiving data and signals.

The storage 14 stores various types of data. In the embodiment, the storage 14 stores update software information 14 A and old software information 14 B.

FIGS. 3A to 3C are schematic diagrams of exemplary data configurations of the update software information 14 A illustrated in FIG. 3A , of the old software information 14 B illustrated in FIG. 3B , and of identification information of software to be updated illustrated in FIG. 3C .

FIG. 3A is a schematic diagram of the exemplary data configuration of the update software information 14 A. The update software information 14 A represents information indicating update software. The update software information 14 A includes identification information and software. The term “software”, as used herein, refers to computer programs including an executable file, a static link library file, a dynamic link library file, a shared library file, and a script file.

The software included in the update software information 14 A is update software.

In the following description of the embodiment, update software, software to be updated, a first piece of software, and a second piece of software will be collectively referred to simply as software. The software to be updated, the first piece of software, and the second piece of software will be detailed later.

The identification information identifies software. In the embodiment, the identification information includes version information and a software name. Specifically, in the embodiment, the identification information identifies the software version and software name uniquely. It is noted that the identification information may include the software name, the version information, and a date on which the software is released. Specifically, the identification information may identify uniquely the software version, are name, and the date of release.

The version information indicates version, or a stage of a revision of software. The version information includes a numeric value that is greater to indicate a later (specifically, newer) revision. The update software information 14 A includes the version information of the corresponding update software.

The software name represents a name of the software. In the embodiment, an identical software name is assigned to identical software. To state the foregoing differently, two different pieces of software, each having a unique version, have the same software name assigned thereto.

It is noted at the update software information 14 A may include, for example, the date of release of software and dependency information. The date of release of software indicates the date on which the software is released. The dependency information indicates dependency of the software and is provided by a software generator.

The old software information 14 B represents information relating to software, output to the information processing apparatus 20 in the past. For example, information relating to all pieces of software, output from the updating apparatus 10 to the information processing apparatus 20 , is recorded in the old software information 14 B.

FIG. 3B is a schematic diagram of the exemplary data configuration of the old software information 14 B. The old software information 14 B represents a record of identification information (software name, version information) associated with software.

It is noted that the old software information 14 B may further include the date of release of software and dependency information.

Reference is made back to FIG. 2 . The following describes the processor 12 .

The processor 12 controls the updating apparatus 10 . The processor 12 includes an acquisition module 12 A, an update information generation module 12 B, and an output module 12 C. Each of the foregoing elements (the acquisition module 12 A, the update information generation module 12 B, and the output module 12 C) is achieved by, for example, one or a plurality of processors.

›DETAILED DESCRIPTION · 2 of 12

The foregoing elements may each be achieved, for example, by causing a central processing unit (CPU) or other type of processor to execute a program, specifically, by software. The foregoing elements may each be achieved, for example, by a dedicated integrated circuit (IC) or other type of processor, specifically, by hardware. Alternatively, the foregoing elements may each be achieved through a combined use of software and hardware. When a plurality of processors are to be incorporated, each of the processors may achieve one, or two or more of the elements.

The acquisition module 12 A acquires the update software information 14 A. The acquisition module 12 A reads the update software information 14 A from the storage 14 to thereby acquire the update software information 14 A. The storage 14 , for example, receives from an external device, for example, the update software information 14 A that indicates the latest software and stores the update software information 14 A in advance. When a system update request or other request is received from the external device, for example, the acquisition module 12 A has only to acquire the update software information 14 A from the storage 14 .

Alternatively, the acquisition module 12 A may acquire the update software information 14 A from the external device.

The update information generation module 12 B receives the update software information 14 A from the acquisition module 12 A. The update information generation module 12 B records the received update software information 14 A in the old software information 14 B. The update information generation module 12 B uses the update software information 14 A and the old software information 14 B to generate update information.

The update information includes update software and identification information of other pieces of software relating to the update software.

For example, the update information generation module 12 B uses the software included in the update software information 14 A as the update software to the update information. The update information generation module 12 B searches the old software information 14 B for the identification information of the other pieces of software relating to the update software. It should here be noted that, in the following description, the update software refers to the software included in the update software information 14 A.

Specifically, the update information generation module 12 B searches the old software information 14 B for pieces of software having the same software name as the update software. In this case, the update information generation module 12 B searches the old software information 14 B for other pieces of software having the same software name as the update software, but of different versions. Then, the update information generation module 12 B reads from the old software information 14 B the identification information (software name, version information) associated with the other pieces of software found in the old software information 14 B. The update information generation module 12 B thereby obtains the identification information of the other pieces of software relating to the update software.

The update information generation module 12 B may further search, as the identification information of the other pieces of software relating to the update software, for identification information of other pieces of software that may be started through operative association with the update software when the update software is started.

FIG. 3C is a diagram of an exemplary list of identification information of the other pieces of software relating to the update software. For example, for the identification information of the other pieces of software relating to the update software having the software name “A” and the version information “Ver. 3”, the update information generation module 12 B refers to “A, Ver. 2”, “A, Ver. 1”, “B, Ver. 1”, and “C, Ver. 1” as the identification information specified by the software name and the version information.

Reference is made back to FIG. 2 . The update information generation module 12 B generates the update information that includes the update software and the identification information of the other pieces of software relating to the update software. It is noted that the update information generation module 12 B may generate update information that further includes a hash value of the update software.

The output module 12 C outputs the update information generated by the update information generation module 12 B to the information processing apparatus 20 .

The following describes the information processing apparatus 20 . FIG. 4 is a block diagram of an exemplary functional configuration of the information processing apparatus 20 .

The information processing apparatus 20 includes a processor 22 , a storage 24 , and a user interface (UI) 26 . The storage 24 and the UI 26 are each connected with the processor 22 so as to be capable of transmitting and receiving data and signals.

The UI 26 outputs various types of information to an outside and receives various instructions from a user. The UI 26 includes an input module 26 A and an output module 26 B. The input module 26 A receives various instructions from the user. The input module 26 A may, for example, be a keyboard, a mouse, a touch panel, or a microphone. The output module 26 B outputs various types of information to the outside. The output module 26 B may, for example, be a well-known display, speaker, or light.

The storage 24 stores various types of data. In the embodiment, the storage 24 stores a whitelist 24 A and control information 24 B.

The whitelist 24 A is a list that specifies distinctive information of pieces of software that are permitted to be executed.

FIGS. 5A and 5B are schematic diagrams of exemplary configurations of data stored in the storage 24 . FIG. 5A is a schematic diagram of the exemplary data configuration of the whitelist 24 A. The whitelist 24 A lists distinctive information associated with respective paths and hash values.

›DETAILED DESCRIPTION · 3 of 12

In the whitelist 24 A, the “path” represents a specific location in which the software is installed in the information processing apparatus 20 . The “hash value” indicates a hash value of the software.

The distinctive information distinctively identifies a specific piece of software installed in the information processing apparatus 20 . Specifically, in the embodiment, the distinctive information distinctively identifies the identification information of the software, a specific location (path) in which the software identified by the identification information is installed, and a hash value. It is here noted again that the identification information uniquely identifies the software version and software name.

Thus, in the embodiment, the whitelist 24 A specifies the distinctive information that is given uniquely to each of the software installed locations (paths) and the hash values of the software that is identified by the identification information. To state the foregoing differently, the distinctive information distinctively identifies a specific piece of software that has a specific version, a specific software name, and a specific hash value and that is installed at the location specified by the path.

Values indicated by the distinctive information are required to be established in accordance with a predetermined rule. Assume, for example, the information processing apparatus 20 uses Linux (registered trademark). In this case, i-node may be used as the distinctive information. The “i-node” is file control information used by Linux. The distinctive information may be the path that indicates the software installed location. The distinctive information may even be any number given uniquely on the basis of a predetermined rule established by the information processing apparatus 20 . Alternatively, the very path that indicates the software installed location or the very hash value of the software may be used for the distinctive information. Still alternatively, a very set of the path indicating the software installed location and the hash value may be used for the distinctive information.

The hash value may be a hash value of the software, or a hash value calculated from both the software and the path.

The following describes the control information 24 B. The control information 24 B associates the distinctive information with related distinctive information.

FIG. 5B is a schematic diagram of the exemplary data configuration of the control information 24 B. The control information 24 B is a list in which the distinctive information is associated with the identification information, the date of installation, and related distinctive information. The control information 24 B may additionally include the date of release of the software.

The distinctive information and the identification information are as described earlier. The date of installation indicates the date on which the software that is distinctively identified by the distinctive information is installed in the information processing apparatus 20 .

The related distinctive information indicates other pieces of software that are related to the software that is distinctively identified by the corresponding distinctive information. The other pieces of software that are related to the software that is distinctively identified by the corresponding distinctive information refer to other pieces of software that become unnecessary as a result of adoption of the software that is distinctively identified by the corresponding distinctive information.

The adoption of software refers to setting of the software as the software to be used in a particular process.

Examples of the other pieces of software that become unnecessary as a result of the adoption of the software that is distinctively identified by the corresponding distinctive information include, but are not limited to, another piece of software of a version (older version) earlier than the version of the software that is distinctively identified by the corresponding distinctive information, and another piece of software that is operable through operative association only with the other piece of software of the earlier version. The other pieces of software that become unnecessary as a result of the adoption of the software that is distinctively identified by the corresponding distinctive information may even be software that can be specified to be unnecessary by dependency information provided by a software generator and software that can be distinctively identified as being unnecessary by the dependency information provided by the software generator.

In the embodiment, the related distinctive information specifies the distinctive information of the other pieces of software as the information indicating the other pieces of software that are related to the software that is distinctively identified by the corresponding distinctive information.

Thus, as illustrated in FIG. 5B , the related distinctive information corresponding to the distinctive information “O1” specifies the distinctive information of “O2” and “O3” of the software of versions (Ver. 1 and Ver. 2) earlier than the software having the software name “A” and of the version “Ver. 3”, distinctively identified by the distinctive information “O1”.

It is noted that the embodiment assumes that the distinctive information and the distinctive information specified by the related distinctive information are established in accordance with a rule identical to a rule applicable to the distinctive information recorded in the whitelist 24 A. These pieces of distinctive information are not, however, limited only to the information established in accordance with the identical rule. Specifically, the distinctive information specified in the whitelist 24 A, and the distinctive information and the distinctive information specified by the related distinctive information, specified in the control information 24 B, are required only to allow correspondence to be induced as to whether the pieces of distinctive information indicate the same software.

›DETAILED DESCRIPTION · 4 of 12

For example, the distinctive information specified in the whitelist 24 A and the distinctive information specified in the control information 24 B are generated by different generation rules. In this case, the information processing apparatus 20 has only to hold a separate table that indicates correspondence between the distinctive information specified in the whitelist 24 A and the distinctive information specified in the control information 24 B.

The whitelist 24 A and the control information 24 B are updated by the processor 22 (this will be detailed later).

The processor 22 controls the information processing apparatus 20 . The processor 22 includes a second acquisition module 22 A, an installation module 22 B, a recording module 22 C, an execution module 22 D, a first acquisition module 22 E, a verification module 22 F, a distinguishing module 22 G, a deletion module 22 H, an output control module 22 I, and an updating module 22 J.

Each of the foregoing elements (the second acquisition module 22 A, the installation module 22 B, the recording module 22 C, the execution module 22 D, the first acquisition module 22 E, the verification module 22 F, the distinguishing module 22 G, the deletion module 22 H, the output control module 22 I, and the updating module 22 J) is achieved by, for example, one or a plurality of processors.

The foregoing elements may each be achieved, for example, by causing a central processing unit (CPU) or other type of processor to execute a program, specifically, by software. The foregoing elements may each be achieved, for example, by a dedicated integrated circuit (IC) or other type of processor, specifically, by hardware. Alternatively, the foregoing elements may each be achieved through a combined use of software and hardware. When a plurality of processors are to be incorporated, each of the processors may achieve one, or two or more of the elements.

The second acquisition module 22 A acquires update information. Specifically, the second acquisition module 22 A acquires the update information from the updating apparatus 10 . The second acquisition module 22 A outputs the update information to the installation module 22 E, the recording module 22 C, and the updating module 22 J.

The installation module 22 B installs in the information processing apparatus 20 update software included in the update information received from the second acquisition module 22 A. The installation module 22 B outputs to the recording module 22 C a path indicating the location in which the update software has been installed.

The recording module 22 C records distinctive information of the update software in the whitelist 24 A. Specifically, the recording module 22 C gives distinctive information to identification information included in the update information received from the second acquisition module 22 A. The recording module 22 C also calculates a hash value of the update software. The recording module 22 C records, in the whitelist 24 A, the given distinctive information, the path received from the installation module 22 B, and the calculated hash value in association with each other.

Thus, the recording module 22 C updates the whitelist 24 A each time the second acquisition module 22 A acquires update information and the installation module 22 B installs update software included in the update information. Specifically, the recording module 22 C records, in the whitelist 24 A, the distinctive information, the path, and the hash value of the update software in association with each other.

When the whitelist 24 A is updated, the updating module 22 J updates the control information 24 B. The updating module 22 J updates the control information 24 B in accordance with the update information received from the second acquisition module 22 A.

Specifically, the updating module 22 J records, in the control information 24 B, the distinctive information of the update software recorded in the whitelist 24 A by the recording module 22 C, identification information, and the date of installation on which the update software is installed by the installation module 22 B in association with each other.

The updating module 22 J then updates the related distinctive information in the control information 24 B. More specifically the updating module 22 J updates the related distinctive information such that the related distinctive information recorded in the control information 24 B indicates the distinctive information of the other pieces of software that become unnecessary as a result of the adoption of the software that is distinctively identified by the corresponding distinctive information.

Specifically, the updating module 22 J records, in the control information 24 B, the related distinctive information that indicates the motive information of the other pieces of software that become unnecessary as a result of the adoption of the update software and the distinctive information of the update software in association with each other.

More specifically, the updating module 22 J searches the control information 24 B for the distinctive information of the other pieces of software that become unnecessary as a result of the adoption of the update software that is included in the update information acquired by the second acquisition module 22 A.

Consider, for example, that the related distinctive information indicates the distinctive information of the other pieces of software of versions earlier than the version of the software that is distinctively identified by the corresponding distinctive information. In this case, the updating module 22 J searches the control information 24 B for the distinctive information of, for example, the software having the same software name as the software name of the update software and of a version earlier than the version of the update software. The updating module 22 J then records in the control information 24 B the distinctive information found through the search operation as the related distinctive information corresponding to the distinctive information of the update software.

›DETAILED DESCRIPTION · 5 of 12

It is noted that the updating module 22 J may search for the distinctive information of the other pieces of software using the identification information of the other pieces of software relating to the update software, included in the update information acquired via the second acquisition module 22 A from the updating apparatus 10 . For example, the updating module 22 J searches the control information 24 B for the distinctive information corresponding to the identification information of the other pieces of software, included in the update information. The updating module 22 J then distinctively identifies, cut of the distinctive information found through the search operation, the distinctive information of the software having the same software name as the software name of the update software and of a version earlier than the version of the update software. The updating module 22 J then records in the control information 24 B the thus identified distinctive information as the related distinctive information corresponding to the distinctive information of the update software.

The update information generation module 12 B of the updating apparatus 10 may generate update information that includes the related distinctive information. Specifically, the update information generation module 12 B of the updating apparatus 10 may generate the related distinctive information corresponding to the update software. In this case, the updating module 22 J of the information processing apparatus 20 has only to record in the control information 24 B the related distinctive information included in the update information acquired via the second acquisition module 22 A from the updating apparatus 10 in association with the distinctive information of the update software.

Reference is made back to FIG. 4 . The execution module 22 D generates processes divided in units appropriate for execution of an application and controls resources (e.g., CPU memory space, and access to external devices) required for operations of the processes. The execution module 22 D executes various types of software to thereby generate the processes. The execution module 22 D is, for example, a kernel of an operating system (OS).

In the embodiment, the execution module 22 D outputs to the first acquisition module 22 E, during execution of software, first distinctive information of a first piece of software to be executed. When a verification result received from the output control module 22 I indicates execution permission, the execution module 22 D executes the first piece of software. The verification result represents the result of verification of the first piece of software obtained using the whitelist 24 A.

The first piece of software is exemplary software. In the embodiment, the software to be executed by the execution module 22 D is referred to as the first piece of software. The first distinctive information is exemplary distinctive information. The first distinctive information distinctively identifies the first piece of software out of the distinctive information.

The first acquisition module 22 E acquires the first distinctive information of the first piece of software to be executed. The first acquisition module 22 E acquires the first distinctive information from the execution module 22 D. The first acquisition module 22 E outputs the acquired first distinctive information to the verification module 22 F and the distinguishing module 22 G.

The verification module 22 F determines whether the distinctive information indicating the first distinctive information received from the first acquisition module 22 E is recorded in the whitelist 24 A. If the distinctive information is recorded in the whitelist 24 A, the verification module F generates a verification result indicating execution permission.

More specifically, if the first distinctive information is recorded in the whitelist 24 A, the verification module 22 F calculates a hash value of the first piece of software stored in the location that is distinctively identified by the path included in the first distinctive information. When the hash value corresponding to the distinctive information that indicates the first distinctive information in the whitelist 24 A matches the calculated hash value, the verification module 22 F generates the verification result indicating the execution permission. When there is a mismatch in the hash values, the verification module 22 F generates a verification result indicating execution prohibition. If it is determined that the distinctive information indicating the first distinctive information received from the first acquisition module 22 E is not recorded in the whitelist 24 A, the verification module 22 F also generates the verification result indicating execution prohibition.

The output control module 22 I outputs to the execution module 22 D and the UI 26 the verification result received from the verification module 22 F. If the verification result received from the verification module 22 F indicates execution permission, the execution module 22 D executes the first piece of software. If the verification result received from the verification module 22 F indicates execution prohibition, the execution module 22 D does not execute the first piece of software.

If the distinctive information indicating the first distinctive information is recorded in the whitelist 24 A, the distinguishing module 22 G distinctively identifies as second distinctive information the distinctive information of the second piece of software that represents another software relating to the first piece of software in the whitelist 24 A.

The distinctive information indicating the first distinctive information denotes the distinctive information having a value identical to the value of the first distinctive information. The second piece of software is exemplary software. The second piece of software represents other pieces of software relating to the first piece of software among other pieces of software. The other pieces of software relating to the first piece of software are related to the first piece of software, but are any pieces of software other than the first piece of software.

›DETAILED DESCRIPTION · 6 of 12

The second distinctive information is exemplary distinctive information. The second distinctive information represents the distinctive information of the second piece of software that is related to the first piece of software to be executed.

Specifically, in the embodiment, if the first distinctive information is recorded in the whitelist 24 A, the distinguishing module 22 G distinctively identifies the second distinctive information of the second piece of software in the whitelist 24 A.

For example, the distinguishing module 22 G distinctively identifies the second distinctive information of the second piece of software in the whitelist 24 A as the second distinctive information subjected to monitoring. In the embodiment, the information “subjected to monitoring” means that the information is subjected to processing of some sort. Specifically, the information may be subjected, for example, to deletion from the whitelist, to saving from the whitelist, and to warning during execution. The embodiment will be described exemplarily as being subjected to deletion from the whitelist.

In the embodiment, the distinguishing module 22 G distinctively identifies the second distinctive information using the control information 24 B. The distinguishing module 22 G reads from the control information 24 B the related distinctive information corresponding to the distinctive information indicating the first distinctive information. Then, the distinguishing module 22 G distinctively identifies from the whitelist 24 A the distinctive information indicated in the read related distinctive information. The distinguishing module 22 G thereby distinctively identifies the second distinctive information in the whitelist 24 A.

The distinguishing module 22 G outputs the distinctively identified second distinctive information to the deletion module 22 H.

The deletion module 22 H deletes from the whitelist 24 A information relating to the second distinctive information. The information relating to the second distinctive information in the whitelist 24 A denotes the distinctive information indicating second distinctive information and information associated with the distinctive information (in the embodiment, the path and the hash value) in the whitelist 24 A.

Specifically, in the embodiment, the deletion module 22 H deletes, from the whitelist 24 A, the distinctive information indicating the second distinctive information and the path and the hash value associated with the distinctive information in the whitelist 24 A.

Thus, in the embodiment, if the first distinctive information is recorded in the whitelist 24 A, information relating to the second piece of software that becomes unnecessary as a result of the adoption of the first piece of software is deleted from the whitelist 24 A.

It is here noted that, if the first distinctive information is recorded in the whitelist 24 A and the verification result of the first piece of software obtained using the whitelist 24 A indicates execution permission, the deletion module 22 H may delete information relating to the second distinctive information from the whitelist 24 A.

Alternatively, the deletion module 22 H may delete the information relating to the second distinctive information from the whitelist 24 A, if the first distinctive information is recorded in the whitelist 24 A, the verification result of the first piece of software obtained using the whitelist 24 A indicates execution permission, and if the execution module 22 D has executed the first piece of software.

Additionally, the deletion module 22 H deletes information relating to the second distinctive information in the control information 24 B. The information relating to the second distinctive information in the control information 24 A refers to the distinctive information indicating the second distinctive information and other pieces of information (in the embodiment, the identification information, the date of installation, and the related distinctive information) associated with distinctive information and recorded in the control information 24 B.

The following describes a procedure of an information processing process performed by the updating apparatus 10 in the embodiment. FIG. 6 is a flowchart illustrating a procedure of an exemplary information processing process performed by the updating apparatus 10 in the embodiment.

The acquisition module 12 A acquires the update software information 14 A (Step S 100 ). The update information generation module 12 B performs an update information generation process (Step S 102 ). The output module 12 C then outputs to the information processing apparatus 20 the update information generated at Step S 102 (Step S 104 ). This routine is terminated.

The following describes a procedure of an exemplary update information generation process at Step S 102 in FIG. 6 . FIG. 7 is a flowchart illustrating the procedure of the exemplary update information generation process.

The update information generation module 12 B reads the software name of the update software included in the acquired update software information 14 A (Step S 200 ). The update information generation module 12 B determines whether the software name read at Step 6200 exists in the old software information 14 B (Step S 202 ). If an affirmative determination is made at Step S 202 (Yes at Step S 202 ), Step S 204 is then performed.

At Step S 204 , the update information generation module 12 B distinctively identifies in the old software information 14 B the identification information of the software having the software name identical to the software name of the update software (Step S 204 ). Then, the flow proceeds to Step S 206 . If a negative determination is made at Step S 202 (No at Step S 202 ), the identification information is left blank and the flow proceeds to Step S 206 .

At Step S 206 , the update information generation module 12 B generates the update information that includes the update software included in the update software information 14 A acquired at Step S 100 (see FIG. 6 ) and the identification information distinctively identified at Step S 204 (Step S 206 ). This routine is then terminated.

›DETAILED DESCRIPTION · 7 of 12

The following describes information processing processes performed by the information processing apparatus 20 . The information processing apparatus 20 performs, for information processing, an updating process through which the whitelist 24 A and the control information 24 B are updated and a distinguishing process through which the second distinctive information is distinctively identified.

The following describes a procedure of an exemplary updating process performed by the information processing apparatus 20 . FIG. 8 is a flowchart illustrating the procedure of the exemplary updating process performed by the information processing apparatus 20 .

It is first determined whether the second acquisition module 22 A has acquired update information from the updating apparatus 10 (Step S 300 ). If a negative determination is made at Step 2300 (No at Step S 300 ), this routine is terminated. If an affirmative determination is made at Step S 300 (Yes at Step S 300 ), Step S 302 is then performed.

At Step S 302 , the installation module 22 B installs the update software included in the update information acquired at Step S 300 (Step S 302 ).

It is noted that the installation module 22 B may inspect the update information before determining whether updating is necessary. The installation module 22 B may install the update software, if it is determined that the updating needs to be made. The installation module 22 B may terminate this routine, if it is determined that the updating should not be made.

To determine whether the updating needs to be made, a well-known method can be used. Assume, for example, that the update information further includes a digital signature. In this case, the installation module 22 B has only to determine whether the digital signature included in the update information is authentic before determining whether the updating is necessary.

The recording module 22 C calculates the hash value of the update software included in the update information acquired at Step S 300 (Step S 304 ). The recording module 22 C has only to use a predetermined hash function to calculate the hash value.

The recording module 22 C records, in the whitelist 24 A, distinctive information, the path that indicates the location in which the update software is installed at Step S 302 , and the hash value calculated at Step S 304 in association with each other (Step S 306 ).

The updating module 22 J performs a recording and updating process with respect to the control information 24 B (Step S 308 ). This routine is then terminated.

The following describes a procedure of an exemplary recording and updating process performed by the updating module 22 J at Step S 308 in FIG. 8 . FIG. 9 is a flowchart illustrating the procedure of the exemplary recording and updating process performed by the updating module 22 J.

The updating module 22 J determines whether the distinctive information of the update software has been recorded in the control information 24 B (Step S 400 ). Specifically, the updating module 22 J determines whether the distinctive information recorded in the whitelist 24 A at Step S 306 (see FIG. 9 ) has been recorded in the control information 24 B.

If a negative determination is made at Step S 400 (No at Step S 400 ), Step S 402 is then performed. At Step S 402 , the updating module 22 J records, in the control information 24 B, the distinctive information, the identification information, and the date of installation of the update software recorded in the whitelist 24 A at Step S 306 in association with each other (Step S 402 ). Then, the flow proceeds to Step S 406 .

If an affirmative determination is made at Step S 400 (Yes at Step S 400 ), Step S 404 is then performed. At Step S 404 , the updating module 22 J updates the date of installation by replacing the date of installation associated with the distinctive information, recorded at Step S 306 (see FIG. 8 ), with the date of installation at Step S 302 (see FIG. 8 ) (Step S 404 ). Then, the flow proceeds to Step S 406 .

At Step S 406 , the updating module 22 J searches the control information 24 B for the distinctive information of other pieces of software that become unnecessary as a result of the adoption of the update software included in the update information acquired at Step S 300 (see FIG. 8 ) (Step S 406 ). If any applicable software exists (Yes at Step S 408 ), Step S 410 is then performed.

At Step S 410 , the updating module 22 J generates related distinctive information and records the related distinctive information in the control information 243 (Step S 410 ). For example, the updating module 22 J searches the control information 24 B for the distinctive information of the software having the same software name as the software name of the update software and of a version earlier than the version of the update software. The updating module 22 J then records in the control information 24 B the distinctive information found through the search operation as the related distinctive information corresponding to the distinctive information of the update software.

Then, this routine is terminated. If no applicable software exists (No at Step S 408 ), this routine is terminated.

The following describes a procedure of an exemplary distinguishing process for distinctively identifying the second distinctive information. FIG. 10 is a flowchart illustrating the procedure of the exemplary distinguishing process performed by the information processing apparatus 20 .

The execution module 223 determines whether the first piece of software to be executed has occurred (Step S 500 ). If the first piece of software to be executed has not occurred (No at Step S 500 ), this routine is terminated. If the first piece of software to be executed has occurred (Yes at Step S 500 ), the execution module 223 outputs to the first acquisition module 22 E the first distinctive information of the first piece of software.

The first acquisition module 22 E accordingly acquires the first distinctive information (Step S 502 ). In the embodiment, the first acquisition module 22 E acquires the first distinctive information that is specified by the identification information (software name, version information) of the first piece of software to be executed and the path that indicates the location in which the first piece of software is stored.

›DETAILED DESCRIPTION · 8 of 12

The verification module 22 F verifies, using the whitelist 24 A, whether execution is permitted for the first piece of software that is distinctively identified by the first distinctive information acquired by the first acquisition module 22 E (Step S 504 ). For example, the verification module 22 F calculates the hash value of the first piece of software a is stored in the location distinctively identified by the path included in the first distinctive information. When the hash value corresponding to the distinctive information that indicates the first distinctive information in the whitelist 24 A matches the calculated hash value, the verification module 22 F generates a verification result indicating execution permission. When there is a mismatch in the hash values, the verification module 22 F generates a verification result indicating execution prohibition.

If the verification result at Step S 504 indicates execution prohibition (No at Step S 506 ), this routine is terminated. If the verification result at Step S 504 indicates execution permission (Yes at Step S 506 ), the flow proceeds to Step S 508 .

At Step S 508 , the output control module 25 I outputs the information indicating execution permission via the output module 26 B (Step S 508 ). It is noted that Step S 508 may be omitted.

The execution module 22 D executes the first piece of software (Step S 510 ). Specifically, if the verification result indicates execution permission, the execution module 22 D executes the first piece of software.

The distinguishing module 22 G determines whether the distinctive information indicating the first distinctive information is recorded in the whitelist 24 A (Step S 512 ). If the distinctive information indicating the first distinctive information is not recorded at Step S 512 ), this routine is terminated. If the distinctive information indicating the first distinctive information is recorded (Yes at Step S 512 ), then the flow proceeds to Step S 514 .

At Step S 514 , the distinguishing module 22 G distinctively identifies a the second distinctive information the distinctive information of the second piece of software that represents another software relating to the first piece of software in the whitelist 24 A (Step S 514 ).

The deletion module 22 H deletes from the whitelist 24 A the information relating to the second distinctive information distinctly identified at Step S 514 (Step S 516 ).

The deletion module 22 H deletes from the control information 24 B the information relating to the second distinctive information distinctly identified at Step S 514 (Step S 518 ). Then, this routine is terminated.

As described above, the information processing apparatus 20 in the embodiment includes the first acquisition module 22 E and the distinguishing module 22 G. The first acquisition module 22 E acquires the first distinctive information of the first piece of software to be executed. If the distinctive information indicating the first distinctive information is recorded in the whitelist 24 A that specifies the distinctive information of the software that is permitted to be executed, the distinguishing module 22 G distinctively identifies as the second distinctive information the distinctive information of the second piece of software that represents another piece of software relating to the first piece of software in the whitelist 24 A.

As such, if the first distinctive information of the first piece of software to be executed is recorded in the whitelist 24 A, the information processing apparatus 20 in the embodiment distinctively identifies the second distinctive information of the second piece of software relating to the first piece of software in the whitelist 24 A.

Thus, only when the first distinctive information of the first piece of software to be executed is recorded in the whitelist 24 A, the information processing apparatus 20 in the embodiment can distinctively identify the second distinctive information of the second piece of software relating to the first piece of software as the software subjected to various types of processing including monitoring and deletions.

Thus, when the first distinctive information of the first piece of software to be executed is yet to be recorded in the whitelist 24 A, the information processing apparatus 20 in the embodiment can prevent the second piece of software relating to the first piece of software from being subjected to the various types of processing including monitoring and deletion. Specifically, the information processing apparatus 20 in the embodiment can prevent both the first piece of software and the second piece of software from becoming inexecutable.

The information processing apparatus 20 in the embodiment thus can maintain availability of the information processing apparatus 20 in which the whitelist 24 A is incorporated.

The information processing apparatus 20 in the embodiment causes the deletion module 22 H to delete from the whitelist 24 A the second distinctive information distinctively identified by the distinguishing module 22 G.

Thus, the information processing apparatus 20 in the embodiment can achieve security of the information processing apparatus 20 , while achieving the abovementioned effect.

It is noted that the update information received from the updating apparatus 10 by the second acquisition module 22 A may further include monitoring information. The monitoring information indicates distinctive information of the software subjected to monitoring. Still, the monitoring information map indicate identification information of the software subjected to monitoring.

In this case, the update information generation module 12 B of the updating apparatus 10 has only to generate the update information that further includes the monitoring information. For example, the update information generation module 12 B distinctively identifies compromised software among the pieces of software recorded in the old software information 14 B. The update information generation module 12 B may, for example, distinctively identify as the compromised software those pieces of software with which a predetermined period of time or longer has elapsed since the transmission to the information processing apparatus 20 and those pieces of software that have not been executed by the information processing apparatus 20 for a predetermined period of time or longer.

›DETAILED DESCRIPTION · 9 of 12

The update information generation module 12 B may, for example, acquire from the information processing apparatus 20 the distinctive information of the software that has not been executed by the information processing apparatus 20 for a predetermined period of time or linger and the distinctive information of the software with which a predetermined period of time or longer has elapsed since the installation. Thus, using the information received from the information processing apparatus 20 , the update information generation module 12 B has only to distinctively identify the compromised software.

The update information generation module 12 E then has only to transmit to the information processing apparatus 20 update information that includes the monitoring information indicating the distinctive information of the compromised software.

In this case, the distinguishing module 22 G of the information processing apparatus 20 has only to distinctively identify the second distinctive information by following the manner similar to the manner described earlier, and further distinctively identifies as the second distinctive information the distinctive information indicated in the monitoring information.

The embodiment has been described so as to control the whitelist 24 A and the control information 24 B as separately provided tables. The whitelist 24 A and the control information 24 B may nonetheless be controlled as being consolidated into a single table.

First Modification

The above embodiment has been described for the mode of control by which the output control module 21 I outputs the verification result produced by the verification module via the output module 26 B. The output control module 22 I may nonetheless output via the output module 26 B additional information.

When, for example, the first distinctive information acquired by the first acquisition module 22 E matches the second distinctive information distinctively identified in the past by the distinguishing module 22 G, the output control module 22 I may output to the output module 26 B warning information.

In this case, as in thio above-described embodiment, if the distinctive information indicating the first distinctive information is recorded in the whitelist 24 A, the distinguishing module 22 G distinctively identifies the second distinctive information of the second piece of software relating to the first piece of software in the whitelist 24 A. The distinguishing module 22 G further assigns a flag indicating that the second distinctive information has been distinctively identified such that the flag is associated with the distinctively identified second distinctive information.

For example, the whitelist 24 A may be configured as additionally associating the flag with the distinctive information. The flag may, for example, be a “1” when the second distinctive information has been distinctively identified and a “0” when the second distinctive information has not been distinctively identified.

The distinguishing module 22 G changes the flag corresponding to the distinctive information distinctively identified as the second distinctive information to a “1” in the whitelist 24 A. It is noted that, in the following, the flag is a “1” when the flag has been assigned.

When the flag is assigned to the first distinctive information of the first piece of software verified by the verification module 22 F, the output control module 22 I determines that the first distinctive information matches the second distinctive information that was distinctively identified in the past. When the first distinctive information acquired by the first acquisition module 22 E matches the second distinctive information distinctively identified in the past by the distinguishing module 22 G, the output control module 22 I outputs the warning information to the output module 26 B. The warning information is only required to indicate that the acquired first distinctive information was identified in the past as the second distinctive information.

The output module 26 B outputs the warning information. The output module 26 B may, for example, output sound indicating the warning information, a display screen indicating the warning information, or light indicating the warning information.

It is noted that, in the first modification, the deletion module 22 H is not required to perform a process to delete information relating to the second distinctive information. Alternatively, the deletion module 22 H may delete from the whitelist 24 A, for each predetermined period of time, information relating to the second distinctive information to which the flag indicating that the second distinctive information has been distinctively identified is assigned in the whitelist 24 A.

In the first modification, the information processing apparatus 20 performs the updating process as in the above-described embodiment (see FIGS. 8 and 9 ). Meanwhile, in the first modification, preferably, the information processing apparatus 20 performs a distinguishing process illustrated in FIG. 11 .

FIG. 11 is a flowchart illustrating a procedure of an exemplary distinguishing process performed by the information processing apparatus 20 in the first modification.

In the first modification, the information processing apparatus 20 performs Step S 600 to Step S 606 in the same manner as at Step S 500 to Step S 506 in the above-described embodiment (see FIG. 10 ). If a negative determination is made at Step S 606 (No at Step S 606 ), this routine is terminated.

If an affirmative determination is made at Step S 606 (Yes at Step S 606 ), Step S 608 is then performed.

At Step S 608 , the output control module 22 I determines whether the first distinctive information acquired by the first acquisition module 22 E matches the second distinctive information distinctively identified in the past (Step S 608 ). If the first distinctive information acquired by the first acquisition module 22 E matches the second distinctive information distinctively identified in the past (Yes at Step S 608 ), Step S 610 is then performed. At Step S 610 , the output control module 22 I outputs the warning information via the output module 26 B (Step S 610 ). Then, the flow proceeds to Step S 612 . If a negative determination is made at Step S 608 (No at Step S 606 ), Step S 612 is then performed.

›DETAILED DESCRIPTION · 10 of 12

The execution module 22 D executes the first piece of software (Step S 612 ). The distinguishing module 22 G then determines whether the distinctive information indicating the first distinctive information is recorded in the whitelist 24 A (Step S 614 ). If the distinctive information is not recorded (No at Step S 614 ), this routine is terminated. If the distinctive information is recorded (Yes at Step S 614 ), Step S 616 is then performed.

At Step S 616 , the distinguishing module 22 G distinctively identifies as the second distinctive information the distinctive information of the second piece of software that represents another software relating to the first piece of software in the whitelist 24 A (Step 2616 ).

The distinguishing module 22 G assigns to the second distinctive information distinctively identified at Step S 616 the flag indicating that the second distinctive information has been distinctively identified (Step S 618 ). Then, this routine is terminated.

As described above, as in the above-described embodiment, when the first distinctive information of the first piece of software to be executed is recorded in the whitelist 24 A, the information processing apparatus 20 in the first modification distinctively identifies the second distinctive information of the second piece of software relating to the first piece of software in the whitelist 24 A. In the information processing apparatus 20 in the first modification, when the first distinctive information matches the second distinctive information distinctively identified in the past, the output control module 22 I outputs the warning information to the output module 26 B.

The information processing apparatus 20 in the first modification thus can achieve an effect similar to the effect achieved by the information processing apparatus 20 in the above-described embodiment, while further preventing availability from being reduced.

Second Modification

The above embodiment has been described for the mode of control by which the output control module 22 I outputs the verification result produced by the verification module via the output module 26 B. The output control module 22 I may additionally control the execution module 22 D such that the execution module 22 D holds execution of the first piece of software.

For example, when the first distinctive information acquired by the first acquisition module 22 E matches the second distinctive information distinctively identified by the distinguishing module 22 G in the past, the output control module 22 I may control the execution module 22 D so as to hold execution of the first piece of software, and output the warning information to the output module 26 B.

The execution module 22 D has only to execute the first piece of software upon receipt of an execution instruction with respect to the warning information.

In this case, as in the above-described embodiment, when the distinctive information indicating the first distinctive information is recorded in the whitelist 24 A, the distinguishing module 22 G distinctively identifies the second distinctive information of the second piece of software relating to the first piece of software in the whitelist 24 A. Then, as in the first modification, the distinguishing module 22 G assigns a flag indicating that the second distinctive information has been distinctively identified such that the flag is associated with the distinctively identified second distinctive information.

When a flag is assigned to the first distinctive information of the first piece of software that has been verified by the verification module 22 F, the output control module 22 I determines that the first distinctive information matches the second distinctive information that was distinctively identified in the past. When the first distinctive information acquired by the first acquisition module 22 E matches the second distinctive information distinctively identified by the distinguishing module 22 G in the past, the output control module 22 I outputs the warning information to the output module 26 B.

In this case, the output control module 22 I controls the execution module 22 D such that the execution module 22 D holds execution of the first piece of software. For example, the output control module 22 I has only to hold the verification result received from the verification module 22 F until the execution instruction is received and, when the execution instruction is thereafter received, the output control module 22 I may output the verification result to the execution module 22 D.

The output control module 22 I has only to receive the execution instruction from the input module 26 A. For example, the output control module 22 I outputs the warning information to the output module 26 B. The user determines information output from the output module 26 E and operates to instruct the input module 26 A. Through this operating instruction, the user operates to input an execution instruction that indicates execution of the first piece of software or an execution-prohibited instruction that indicates execution prohibition. The input module 26 A outputs the received execution instruction or execution-prohibited instruction to the output control module 22 I.

When the execution-prohibited instruction is received, the output control module 22 I has only to output the verification result of the verification module 22 E to the execution module 22 D.

It is noted that, in the second modification, the deletion module 22 H is not necessarily required to perform the process to delete information relating to the second distinctive information.

In the second modification, the information processing apparatus 20 performs the updating process in the same manner as in the above-described embodiment. (see FIGS. 8 and 9 ). Meanwhile, in the second modification, preferably, the information processing apparatus 20 performs a distinguishing process illustrated in FIG. 12 .

FIG. 12 is a flowchart illustrating a procedure of an exemplary distinguishing process performed by the information processing apparatus 20 in the second modification.

›DETAILED DESCRIPTION · 11 of 12

In the second modification, the information processing apparatus 20 performs Step S 700 to Step S 706 in the same manner as at Step S 500 to Step S 506 in the above-described embodiment (see FIG. 10 ). If a negative determination is made at Step S 206 (No at Step S 706 ), this routine is terminated.

If an affirmative determination is made at Step S 706 (Yes at Step S 706 ), Step S 708 is then performed.

At Step S 708 , the output control module 22 I determines whether the first distinctive information acquired by the first acquisition module 22 E matches the second distinctive information that was distinctively identified in the past (Step S 708 ). If the first distinctive information acquired by the first acquisition module 22 E does not match the second distinctive information that was distinctively identified in the past (No at Step S 708 ), Step S 714 is then performed.

If the first distinctive information acquired by the first acquisition module 22 E matches the second distinctive information that was distinctively identified in the past (Yes at Step S 708 ), Step S 710 is then performed. At Step 10 , the output control module 22 I outputs the warning information via the output module 265 (Step S 710 ).

The output control module 22 I next determines whether the execution instruction is received from the input module 26 A (Step S 712 ). If the execution instruction is received (Yes at Step S 712 ), the flow proceeds to Step S 714 . If the execution-prohibited instruction is received (No at Step S 712 ), this routine is terminated.

At Step S 714 , the execution module 22 D executes the first piece of software (Step S 714 ). The distinguishing module 22 G determines whether the whitelist 24 A records the distinctive information indicating the first distinctive information (Step S 716 ). If the distinctive information is not recorded in the whitelist 24 A (No at Step S 716 ), this routine is terminated. If the distinctive information is recorded in the whitelist 24 A (Yes at Step S 716 ), Step S 718 is then performed.

At Step S 718 , the distinguishing module 22 G distinctively identifies as the second distinctive information the distinctive information of the second piece of software that represents another software relating to the first piece of software in the whitelist 24 A (Step S 718 ).

The distinguishing module 22 G assigns to the second distinctive information distinctively identified at Step S 718 the flag indicating that the second distinctive information has been distinctively identified (Step S 720 ). Then, this routine is terminated.

As described above, as in the above-described embodiment, when the first distinctive information of the first piece of software to be executed is recorded in the whitelist 24 A, the information processing apparatus 20 in the second modification distinctively identifies the second distinctive information of the second piece of software relating to the first piece of software in the whitelist 24 A. In the information processing apparatus 20 in the second modification, when the first distinctive information matches the second distinctive information distinctively identified in the past, the output control module 22 I controls the execution module 22 D such that the execution module 22 D holds execution of the first piece of software and outputs the warning information to the output module 26 B. The execution module 22 D executes the first piece of software upon receipt of the execution instruction with respect to the warning information.

The information processing apparatus 20 in the second modification thus can achieve the effect similar to the effect achieved by the information processing apparatus 20 in the above-described embodiment, while further preventing availability from being reduced. Additionally, the information processing apparatus 20 in the second modification can enhance a security level of the information processing apparatus 20 .

The following describes an exemplary hardware configuration of the updating apparatus 10 and the information processing apparatus 20 in the embodiment and the first and second modifications described above. FIG. 13 is an exemplary hardware configuration diagram of the updating apparatus 10 and the information processing apparatus 20 in the embodiment and the first and second modifications described above.

The updating apparatus 10 and the information processing apparatus 20 in the embodiment and the first and second modifications described above each have a hardware configuration incorporating an ordinary computer and each include a control unit such as a central processing unit (CPU) 51 , a storage unit such as a read only memory (ROM) 52 , a random access memory (RAM) 53 , and a hard disk drive (HOD), a communication I/F unit 54 that serves as an interface with respect to various types of devices, and a bus 61 that connects the foregoing different elements.

In the updating apparatus 10 and the information processing apparatus 20 according to the embodiment and the first and second modifications described above, the CPU 51 loads a program from the ROM 52 onto the RAM 53 and executes the program. This achieves each of the above-described functions on the computer.

The program for executing each of the different processes performed by the updating apparatus 10 and the information processing apparatus 20 according to the embodiment and the first and second modifications described above may be stored in the HDD. Alternatively, the program for executing each of the different processes performed by the updating apparatus 10 and the information processing apparatus 20 according to the embodiment and the first and second modifications described above may be incorporated in advance in the ROM 52 and provided.

The program for executing each of the different processes performed by the updating apparatus 10 and the information processing apparatus 20 according to the embodiment and the first and second modifications described above may be recorded and provided in a computer-readable recording medium such as a compact disc read only memory (CD-ROM), a compact disc recordable (CD-R), a memory card, a digital versatile disk (DVD), and a flexible disk (FD) as an installable or executable file. The program for executing each of the different processes performed by the updating apparatus 10 and the information processing apparatus 20 according to the embodiment and the first and second modifications described above may be stored in a computer connected to a network such as the Internet and provided by being downloaded via the network. Furthermore, the program for executing each of the different processes performed by the updating apparatus 10 and the information processing apparatus 20 according to the embodiment and the first and second modifications described above may be provided or distributed via a network such as the Internet.

›DETAILED DESCRIPTION · 12 of 12

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 scope and spirit of the inventions.

Claims as granted

13 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

3 codes
IPC · International Patent Classification
Section G — Physics
  • G06F9/445
  • G06F21/57
  • G06F21/51

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJan 2018Jul 2018Jan 2019Jul 2019Jan 2020Jul 2020Jan 2021USPTOApplicantNon-final rejectionResponse after non-final
USPTOApplicanthover for detail · click to open
Pendency
2.8 y
1,008 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Examiner
Saleh Najjar
art unit 2492 · TC 2400
Citations: 44 back · 3 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20182020202220242026202820302032203420362038Owner 1
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock