US20160285887A1 - Environmental-based location monitoring - Google Patents
Environmental-based location monitoring Download PDFInfo
- Publication number
- US20160285887A1 US20160285887A1 US14/976,393 US201514976393A US2016285887A1 US 20160285887 A1 US20160285887 A1 US 20160285887A1 US 201514976393 A US201514976393 A US 201514976393A US 2016285887 A1 US2016285887 A1 US 2016285887A1
- Authority
- US
- United States
- Prior art keywords
- computer
- environmental
- location
- image data
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/5866—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/254—Analysis of motion involving subtraction of images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/107—Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/183—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2111—Location-sensitive, e.g. geographical location, GPS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30232—Surveillance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/60—Context-dependent security
- H04W12/65—Environment-dependent, e.g. using captured environmental data
Definitions
- aspects of the present disclosure relate to information security, more particular aspects relate to environmental-based location monitoring in computer systems. While the present disclosure is not necessarily limited to such applications, various aspects of the disclosure may be appreciated through a discussion of various examples using this context.
- the method can include collecting, in response to a condition for a computer, a first set of image data that corresponds to a first set of environmental characteristics existing within a bounded area encompassing a hardware element of the computer.
- the method can include determining, by analyzing the first set of image data, a first location corresponding to a geographic position of the hardware element relative to the first set of environmental characteristics, and determining, by analyzing a second set of image data, the second set of image data corresponding to a second set of environmental characteristics, a second location corresponding to an approved geographic position of the hardware element relative to the second set of environmental characteristics.
- the method can include comparing the first location to the second location, and determining, by comparing the first location to the second location, an environmental difference using a location difference between the first location and the second location. In embodiments, the method can include determining that the environmental difference does not satisfy a threshold, and executing a reaction sequence in the computer, in response to determining that the environmental difference does not satisfy the threshold.
- the system can include a processor and a computer readable storage medium having program instructions embodied therewith.
- the program instructions can be executable by the processor to cause the system to collect, in response to a condition for the system, a first set of image data that corresponds to a first set of environmental characteristics existing within a bounded area encompassing a hardware element of the system.
- the program instructions can cause the system to determine, by analyzing the first set of image data, a first location corresponding to a geographic position of the hardware element relative to the first set of environmental characteristics, and determine, by analyzing a second set of image data, the second set of image data corresponding to a second set of environmental characteristics, a second location corresponding to an approved geographic position of the hardware element relative to the second set of environmental characteristics.
- the program instructions can cause the system to compare the first location to the second location, and determine, by comparing the first location to the second location, an environmental difference using a location difference between the first location and the second location.
- the program instructions can cause the system to determine that the environmental difference does not satisfy a threshold, and execute a reaction sequence in the computer, in response to determining that the environmental difference does not satisfy the threshold.
- aspects of the present disclosure are directed towards a computer program product for environmental-based location monitoring, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method.
- the method can include collecting, in response to a condition for a computer, a first set of image data that corresponds to a first set of environmental characteristics existing within a bounded area encompassing a hardware element of the computer.
- the method can include determining, by analyzing the first set of image data, a first location corresponding to a geographic position of the hardware element relative to the first set of environmental characteristics, and determining, by analyzing a second set of image data, the second set of image data corresponding to a second set of environmental characteristics, a second location corresponding to an approved geographic position of the hardware element relative to the second set of environmental characteristics.
- the method can include comparing the first location to the second location, and determining, by comparing the first location to the second location, an environmental difference using a location difference between the first location and the second location.
- the method can include determining that the environmental difference does not satisfy a threshold, and executing a reaction sequence in the computer, in response to determining that the environmental difference does not satisfy the threshold.
- FIG. 1 illustrates a flow chart of a method for environmental based location monitoring, according to various embodiments.
- FIG. 2 illustrates a flow chart for a method of collecting and analyzing image data, according to various embodiments.
- FIG. 3 illustrates a flow chart for a method for executing a reaction sequence, according to various embodiments.
- FIG. 4A and FIG. 4B illustrate diagrams of image data collection, according to various embodiments.
- FIG. 5 illustrates a diagram of a computer, according to various embodiments.
- FIG. 6 illustrates a block diagram of a system for environmental based location monitoring, according to various embodiments.
- aspects of the present disclosure relate to information security, more particular aspects relate to environmental-based location monitoring in computer systems. While the present disclosure is not necessarily limited to such applications, various aspects of the disclosure may be appreciated through a discussion of various examples using this context.
- sensitive data can be stored in hardware that is housed in a secure location or facility.
- hardware could be moved out of the secure location, such as while being transported, or receiving maintenance, which could leave sensitive data vulnerable to unauthorized access.
- Embodiments of the present disclosure collect image data and environmental data, compare collected image data and environmental data to what may be expected, and respond in various ways if the image data and environmental data do not match.
- a method of environmental based location monitoring can include collecting in response to a condition for a computer, a first set of image data and a first set of environmental data that corresponds to a first set of environmental characteristics existing within a bounded area encompassing one or more hardware elements of the computer, such as a storage system.
- the hardware elements, of the computer may be transported or assembled separately from the computer.
- the hardware elements may be a hard disk drive, computer storage, or a processor.
- the hardware elements may be connectively coupled to the computer.
- the hardware element may be a processor and the processor may be assembled in a blade server.
- the sensors may be coupled to the hardware elements.
- the sensor may be attached to the processor.
- the bounded area may be external to the hardware elements.
- the sensor may collect image data and environmental data external to the hardware elements.
- the condition may be various circumstances that influence the actions of a computer.
- the condition could be a command to power-on a portion of the computer, to access data from the computer, to execute an application, or other type of computer-based command.
- the condition can be an expiration of a time-based interval.
- the expiration of the time-based interval may trigger the condition to occur every x number of minutes, where x can be any positive numerical value, e.g. every ten minutes, every hour, or every five hours.
- the image data may be an electronic representation of one or more environmental characteristics.
- the image data may be represented in pixels as display.
- the image data could be various types of data extracted from a digital image (e.g. average pixel intensity data, digital numeric color data).
- the digital image can be a numerical representation of a two dimensional image.
- the environmental data could be an electronic representation of one or more environmental characteristics.
- the environmental data may be various forms of data extracted from a sensor measuring one or more physical stimulus.
- the physical stimulus may be heat, light, sound, pressure, magnetism, or a particular motion.
- the light may be visible, ultraviolet, infrared, etc.
- the environmental data may include numerical values for temperature, pressure, or humidity.
- the environmental characteristics could be defined as a set of distinctive physical conditions or qualities of a particular place.
- the environmental characteristics for the image data may include one or more constituents of matter (e.g. structural objects, furniture, people, etc.).
- the distinctive physical conditions of the environmental characteristics may include the temperature, altitude, or humidity of the particular place.
- the senor may be an instrument that measures a physical stimuli and converts them into signals or data.
- the sensor may be a digital camera, a thermometer, an ultrasonic instrument, or a voltmeter.
- the digital camera may measure visible light
- the thermometer may measure temperature
- the ultrasonic instrument may measure pressure.
- the digital camera may collect image data
- the thermometer, ultrasonic instrument, and voltmeter may collect environmental data.
- the bounded area may be defined by the range of a sensor collecting data.
- the range may be external to the computer chassis.
- the range of detecting visible light from objects may be less than the range of detecting infrared light from objects.
- infrared light radiating from people behind solid objects For example the range may be set to a maximum range defined by the capabilities of the sensors.
- the range may be set by a user, e.g. the user may set the range to 10 feet.
- the first set of environmental data may be environmental data that corresponds to environmental characteristics existing within the bounded area.
- the first set of environmental data may be collected in the bounded area after the condition occurs.
- the environmental data may be an electronic representation of the physical stimuli detected by the sensors.
- the environmental data may be an electronic representation of the physical stimuli detected by the sensors.
- numerical values For example, for numerical values for temperature, pressure, and humidity.
- the first set of image data may be image data that corresponds to environmental characteristics existing within the bounded area.
- the digital camera may detect the reflected light in a room and convert electrical signals into data.
- reflected light from walls, chairs, or pictures.
- a picture may be a two dimensional barcode.
- the first set of image data may include information, such as, where objects are located in the detectable range of the sensors relative to another object.
- the environmental characteristics may be organized in multiple sets based on the type of environmental characteristics. For example, a first set of environmental characteristics, could include temperature data. A second set of environmental characteristics could include color data. A third set of environmental characteristics could include humidity data.
- the method can include comparing similar environmental characteristics. For example, temperature data of the first set of environmental data could be compared to temperature data from an approved operating environment.
- the approved operating environment may be where the computer is intended to operate in, e.g. a secured facility. In other embodiments, the approved operating environment may be an area established or decided in advance to shipping the computer.
- the approved operating environment may comprise predetermined environmental characteristics that the system looks for.
- the predetermined environment characteristic may include a temperature of seventy degrees.
- a second set of image data and a second set of environmental data includes data that corresponds to information about the predetermined environmental characteristics.
- the second set of image data may be an electronic representation of the predetermined environmental characteristics from the approved operating environment.
- the second set of image data can include an approved set of image data for an operating environment for the computer. For example, if the computer is meant to be housed in an environment that includes a two dimensional barcode, the second set of image data may include information about the location of the two dimensional barcode and/or characteristics of the two dimensional barcode.
- the second set of image data may be an electronic representation of the predetermined environmental characteristics from the approved operating environment.
- the second set of environmental data may be an electronic representation of the predetermined environmental characteristics from the approved operating environment.
- the second set of environmental data can include an approved set of environmental data for an operating environment for the computer. For example, if the computer is meant to be housed in an environment that can include climate controlled environment of seventy degrees, the second set of environmental data may include numerical data representing the temperature set at seventy degrees.
- the approved operating environment can include an approved geographic position.
- the approved geographic position can be represented by a position, such as represented in Cartesian coordinates as described herein, of a hardware element relative to various environmental characteristics in the bounded area.
- the second set of image data and the second set of environmental data may be stored in non-volatile memory in the computer.
- the non-volatile memory may be operatively coupled to the computer.
- the non-volatile memory that is storing the second set of image data and the second set of environmental data may not be accessible after the condition occurs. For example, once the computer is turned on, the second set of image data or the second set of environmental data may not be accessible.
- the non-volatile memory may not be accessible after time zero, so unauthorized users attempting to extract the second set of image data or the second set of environmental data may fail in retrieving information from the computer or hardware elements.
- analyzing the image data may occur after collecting the image data.
- analyzing may include examining the constitution or structure of the image data in the form of utilizing techniques commonly employed in ‘machine vision’.
- machine vision is the technology and methods of providing imaging-based automatic inspection and analysis for such applications as automatic inspection, process control, and robot guidance in industry, such as, e.g. ‘computational projective geometry’ and ‘camera calibration’ discussed herein and as discussed in as described in “BYERS et al., “Where the Camera Was”, Mathematics Magazine, Vol. 77, No. 4, pp: 251-259, October 2004. http://www.math.smith.edu/ ⁇ jhenle/Files/camera.pdf.”
- the techniques may include calculating a first volume of the bounded area.
- the first volume may be external to the computer up to the range of the sensor collecting visible light.
- the range may stop at a wall that bounds the computer.
- the first volume may be of a room that bounds the computer.
- the techniques may also include determining the geographic location of the computer relative to the environmental characteristics in the bounded area. For example, taking a digital image of the environmental characteristics contained in the range of the sensors, then inferring the geographic location by extracting information from the image data.
- the techniques may include determining the relative position of a first object in the approved operating environment.
- the relative position of the first object may be taken with respect to a second object.
- the first object may be a picture and the second object may be a chair.
- the distance between the picture and the chair may be calculated from the relative position.
- the method can include comparing the first set of image data to the second set of image data.
- the method can include determining an environmental difference between the first set of image data and the second set of image data.
- an environmental difference may be a representation of the quantitative contrast between the environmental characteristics contained in the bounded area and the predetermined environmental characteristics for the approved operating environment.
- the environmental difference may be represented using various units. For example the environmental difference may have units of Fahrenheit for temperature or meters for volume.
- the method can include determining that the environmental difference does not satisfy a threshold.
- the threshold may be a numerical representation indicating the limit of an acceptable difference between the environmental characteristics and the approved environmental characteristics. In embodiments, achieving the threshold may be accomplished when the magnitude of the environmental difference is less than the magnitude of the threshold.
- the threshold for the geographic location can have units that are relevant to the environmental difference units that are based off the geographic location, e.g. units of meters.
- a threshold for the geographic location of the computer For instance, in embodiments, consider a threshold for the geographic location of the computer to be one foot. Continuing the instance, in embodiments, if the geographic location of the computer in the bounded area differs by a magnitude of more than one foot from the geographic location of the computer in the approved operating environment, the threshold may not be satisfied. In certain embodiments, not achieving the threshold may cause a reaction to occur.
- environmental characteristics that can be susceptible to errors in the environment may be given a larger threshold, accordingly. For instance, body heat or friction near the computer may disturb with collecting image data or environmental data.
- each environmental difference may have their own respective threshold, according to the susceptibility of the environmental characteristic to nearby physical conditions. For instance, because the temperature and humidity may be more likely to be affected by body heat or friction than the volume, a system could tolerate a higher environmental difference with regard to temperature and humidity than with regard to volume. For example, the threshold for temperature or humidity may be higher than the threshold for volume.
- the method can include determining a score that is based on the environmental difference.
- the score can be a representation of the difference between the bounded area and the approved operating environment.
- scoring may include placing a numerical value on the difference between the environmental difference and the respective threshold.
- the score may distinguish an environmental difference that satisfies the threshold from an environmental difference that does not satisfy the threshold.
- scoring may include weighing the environmental difference.
- weighing may be a numerical representation of the relative difficulty of reproducing an environmental characteristic in the form of a positive numerical value. For example, image data may be weighted three times as much as temperature data, since reproducing a two dimensional barcode may be difficult, but reproducing a temperature of seventy degrees may happen by coincidence.
- a room that the computer is operating in could have the following characteristics: a temperature of seventy degrees, a set of coordinates representing the geographic location of the computer within the room, and a two dimensional barcode in range of the sensor.
- a temperature of seventy degrees a set of coordinates representing the geographic location of the computer within the room
- a two dimensional barcode in range of the sensor.
- the method can include executing a reaction sequence in the computer if the environmental difference does not satisfy the threshold.
- the reaction sequence can be a set of events occurring in the computer in response to one or more thresholds not being satisfied. For example, if the temperature in the approved operating environment is 50 degrees Fahrenheit and the temperature in the bounded area is seventy degrees Fahrenheit, and the threshold is set at 10 degrees Fahrenheit.
- the reaction sequence initiate one or more alarms in response to one or more thresholds not being satisfied.
- the one or more thresholds may overwrite data stored in the computer, physically damage the computer, shut-down the computer, or initiate one or more alarms. Initiating the reaction sequence may be with the intention to restrict the user from accessing the computer or ‘sensitive’ information stored in the computer.
- the method can include, in decision block 110 , determining whether a condition occurs.
- the computer could be a programmable machine that is capable of executing a set of operations.
- the condition can be a command for the computer to perform a set of operations. If a condition occurs, in decision block 110 , the method may proceed to operation 120 . If a condition does not occur, the method 100 may repeat until a condition occurs.
- the method can include, in operation 120 , collecting the first set of image data in the bounded area.
- the operation 120 can include analyzing the first set of image data after collecting the first set of image data, as discussed herein. For example, determining the first volume, average image intensity, or the geographic location of the computer.
- the operation 130 can also include collecting the first set of environmental data in the bounded area. For example, temperature, humidity, and pressure. In embodiments, after collecting and analyzing the image data and the environmental data, the operation 120 can proceed to an operation 130 .
- the method can include, in operation 130 , comparing the first set of image data to the second set of image data. For example, comparing the first volume to the second volume. For example, comparing the first geographic location to the second geographic location.
- operation 130 may include determining an environmental difference for the image data as discussed herein.
- the environmental difference with respect to the volume may be the first volume subtracted from the second volume, where the volume may be represented in units of cubic meters.
- the operation 130 also can include comparing the first set of environmental data to the second set of environmental data. For example the temperature from the bounded area and the temperature in the approved operating environment. For example, the humidity in the bounded area and the temperature in the approved operating environment.
- operation 130 may include determining an environmental difference. For example, determining the environmental difference for the temperature, humidity, or the pressure.
- the operation 130 can include determining if the environmental differences satisfy the threshold.
- the thresholds vary, depending on the environmental characteristic, as discussed herein. For example, the environmental difference for temperature may have a higher threshold than the environmental difference for volume.
- the operation 130 may proceed to an operation 140 .
- the method can include, in operation 140 scoring the environmental differences. For example, the environmental difference for the first volume and second volume may be scored. For example, scoring may occur for environmental differences that do not satisfy the threshold. In embodiments, once scoring of the environmental differences is complete, the operation 140 may proceed to an operation 150 .
- the method can include, in operation 150 , executing the reaction sequence.
- executing the reaction sequence may be in response to the one or more thresholds not being satisfied.
- executing the reaction sequence may be in response to the environmental difference for temperature not achieving the threshold.
- executing the reaction sequence may be in response to the environmental difference for temperature and the environmental difference for volume not achieving their respective thresholds.
- the method can include, in operation 210 , collecting a first set of image data from a bounded area.
- the first set of image data may include visible light, ultraviolet light, or infrared light.
- the digital camera may collect the first set of image data.
- the operation 200 can include aborting the method 200 , in the case that the camera is not functioning correctly.
- operation 210 may also include collecting the first set of environmental data in the bounded area.
- the method 200 can include, in operation 210 , extracting the environmental characteristics from the first set of image data and the first set of environmental characteristics. For example, organizing the collected data into numerical values describing the environmental characteristics. For example, this may include the temperature, first volume, or geographic location.
- operation 210 also can include implementing additional techniques to further analyze the digital image, in the case if the image data is unreadable. For example, in the case where either the stored data is unreadable, or the ability to successfully collect or interpret the image data is unsuccessful. For example, if the computer is not capable of processing or interpreting the image data. For example, the image data may be unreadable if the computer is not capable of producing results from the collected data.
- additional techniques can include extracting a first average image intensity of the digital image corresponding to the first set of environmental characteristics rather than extracting a specific pixel content.
- the additional techniques include comparing the first average image intensity to a second average image intensity corresponding to the second set of environmental characteristics.
- the additional technique may include extracting a first smaller portion corresponding to the first set of image data. In embodiments, comparing the first smaller portion to a second portion corresponding to the second set of image data may determine the picture quality. In embodiments, operation 210 may proceed to an operation 215 after collecting and analyzing the data.
- the method 200 can include, in decision block 215 , recollecting the image data, if the results of the additional techniques are inconclusive. In embodiments, inconclusive meaning that the techniques may not have led to a firm conclusion. In embodiments, if the image data is readable, the method 200 may proceed to an operation 220 ; otherwise, the method 200 could return to operation 210 .
- the method 200 can include, in operation 220 , analyzing the first set of image data.
- analyzing the first set of image data includes using various techniques commonly used in ‘machine vision’, such as, e.g. ‘computational projective geometry’ and ‘camera calibration’ as described herein.
- computational projective geometry can include detecting the positions of one or more objects to environmental characteristics existing within the bounded area.
- the relative positions may be where one or more first objects are located on a wall with respect to one or more second objects, e.g. the distance between two pictures hanging on a wall.
- ‘computational projective geometry’ can include detecting the shape of one or more objects within the first set of image data.
- the shape of the one or more objects may be a three dimensional or a two dimensional polygon, e.g. a square or a cube, rectangle, hexagon, octagon, etc . . .
- ‘computational projective geometry’ includes determining the volume of a room that the computer is located in. In embodiments, the volume may be represented in cubic meters.
- ‘camera calibration’ can include determining the geographic location of the computer relative to the environmental characteristics.
- the information obtained from the ‘computational projective geometry’ can be used to deduce the geographic location of the computer within the bounded area.
- the geographic location may be described in Cartesian coordinates, e.g. (x, y, z) to an arbitrary reference point in the room as the origin as discussed herein.
- the operation 220 can proceed to an operation 230 .
- the method 200 can include, in operation 230 , comparing a first location to a second location.
- the first location may be a representation of the geographic location of the computer relative to the first set of environmental characteristics.
- the second location may be a representation of the geographic location of the computer relative to the second set of environmental characteristics.
- the second location may correspond to predetermined environmental characteristics in the approved operating environment. For example, the location of the computer in the approved operating environment.
- the geographic location may be represented as a set of coordinates.
- operation 230 can include comparing a first volume to a second volume.
- the first volume may be a numerical representation of the volume of the room via the first set of environmental characteristics.
- the second volume may be a numerical representation of the volume of the room via the second set of environmental characteristics.
- the second volume may correspond to predetermined environmental characteristics in the approved operating environment. For example, the volume of the approved operating environment.
- operation 230 can include comparing the first set of environmental data to the second set of environmental data from the approved operating environment. For example, temperature, humidity, and pressure from the bounded area may be compared from temperature, humidity, and pressure from the approved operating environment. In embodiments, after comparing the first set of image data to the second set of image data, and the first set of environmental data to the second set of environmental data, operation 230 may also include determining the difference from the first set of environmental characteristics and the third set of environmental characteristics.
- the method 200 can include, in operation 230 , determining the environmental difference.
- the environmental difference may be a numerical representation of the difference between the first location and the second location in the form of a magnitude.
- the operation 230 includes determining the environmental difference between the first volume and the second volume.
- operation 230 can include determining the difference from the first set of environmental data and the second set of environmental data. For example, determining the difference between the temperature in the bounded area and the temperature in the approved operating environment. For example, determining the difference from the environmental characteristics and the predetermined environmental characteristics. The difference may be termed the environmental difference.
- the operation 230 can include determining a score (S), wherein the score is a numerical representation of the difference between the environmental differences and the respective thresholds.
- the score may be the aggregate of all environmental differences.
- the score may be represented using various units.
- the score may be weighted according to the environmental characteristic.
- the value of the score may be a comprehensive evaluation of the difference between the bounded area and the approved operating environment.
- the method 200 can include, in operation 240 determining the score of the acceptable environmental differences between the first set of environmental characteristics and the third set of environmental characteristics within their respective thresholds. For example, the environmental difference based off of the first location and the second location may satisfy the threshold, if the magnitude of the environmental difference is less than or equal to the magnitude of the location difference. For example, the environmental difference based off of the first volume and the second volume may satisfy the threshold, if the magnitude of the environmental difference is less than or equal to the magnitude of the volume difference. In embodiments, after determining the environmental differences and scores, the operation 230 may proceed to an operation 240 .
- the method 200 can include, in operation 240 , executing the reaction sequence.
- the reaction sequence could be a sequence of events occurring in response to one or more thresholds not being satisfied.
- the reaction sequence may be illustrated in greater detail in FIG. 3 .
- the reaction sequence illustrated in FIG. 3 may be an embodiment of operation 150 or operation 240 .
- the method 300 may include, checking at each decision block if the score is within a threshold range of the current decision block.
- each decision block may have its own threshold range.
- predetermined numerical values in increasing order labeled T 0 , T 1 , T 2 , T 3 , and T 4 e.g. T 0 ⁇ T 1 ⁇ T 2 ⁇ T 3 ⁇ T 4 may constitute boundaries that the score can fall within.
- the score may begin at the decision block with a threshold range of T 0 ⁇ S ⁇ T 1 . If the environmental score is not within the threshold range T 0 ⁇ S ⁇ T1, the score may proceed to the decision block with the threshold range including T 1 ⁇ S ⁇ T 2 , and continue until the score reaches a decision block with a threshold range that the score is within.
- executing a response in the reaction sequence depends on the value of the score. For example, a score with a value in between T 0 ⁇ S ⁇ T 1 may lead to a different response than a score with a value in between T 1 ⁇ S ⁇ T 2 . For example, a value in between T 1 ⁇ S ⁇ T 2 may grant the user partial access to the computer, and a value in between T 1 ⁇ S ⁇ T 2 may overwrite data stored in the computer.
- employing the reaction sequence may occur in order to restrict unauthorized end users from attempting to access information stored in the computer.
- the operation 310 can include granting the end user partial access to the computer. In embodiments, operation 310 occurs if the score has a value of T 0 ⁇ S ⁇ T 1 . In embodiments, granting the end user access may not necessarily mean granting access to all information stored in the computer. Although access may be granted to the computer, the condition may reoccur in response to the expiration of a time-based interval. In embodiments, the time-based interval may cause the method 100 to reoccur. In certain embodiments, the score may proceed to an operation 320 , if the score has a value of T 1 ⁇ S.
- the method 300 can include, in operation 320 overwriting a set of data stored in the computer.
- overwriting the set of data may be the process of writing a binary set of data stored in the memory, the memory that is operatively connected to the computer.
- overwriting may include writing over old data stored in the memory.
- the set of data may be deleted by overwriting the set of data in binary with all zeroes followed by all ones so that the set of data is unreadable.
- overwriting the set of data may include rewriting the set of data.
- overwriting the information could include formatting the set of data with random information or an explanation as to why executing the reaction sequence may have been necessary.
- the score may proceed to an operation 330 , if the score has a value of T 2 ⁇ S.
- the method 300 can include, in operation 330 , shutting down the computer.
- shutting-down the computer may be done by restricting power to the computer.
- shutting-down the computer may transpire for a varying amount of time.
- shutting-down the computer may be temporary, permanently, or until determining a solution as to why executing the reaction sequence may have been necessary.
- the score may proceed to an operation 340 , if the score has a value of T 3 ⁇ S.
- the method 300 may include, in operation 340 , initiating one or more alarms.
- the one or more alarms may include an electromagnetic alarm, an auditory alarm, or a smoke alarm.
- the electromagnetic alarm may send out electromagnetic waves in the infrared spectrum or the ultraviolet spectrum and the auditory alarm can be a high-pitched frequency.
- the score can proceed to an operation 350 , if the score has a value of T 4 ⁇ S.
- the method 300 can include, in operation 350 , initiating a self-destruct mechanism.
- initiating the self-destruct mechanism may be in the form of causing physical damage to hardware that restricts access to a portion of data. For example, causing damage may affect the electrical circuitry of the computer beyond repair.
- FIG. 4A an aerial view 400 of a computer bounded by four walls and a floor can be seen, according to various embodiments.
- FIG. 4A may be an illustrative representation of the bounded area or approved operating environment where collecting the image data may occur.
- the aerial view 400 includes four walls and the floor bounding a computer hardware rack 410 , a camera 416 , and a first object 434 and a second object 436 located on a wall 430 .
- the aerial view 400 can include the camera 416 collecting the first set of image data within the camera view point 420 .
- the camera view point 420 is facing away from the computer hardware rack and facing outward toward a wall 430 .
- the wall 430 as seen by the camera view point 420 can also be seen, according to embodiments.
- a camera 416 can be physically connected to the computer, and the computer may be positioned in a computer hardware rack 410 .
- the computer hardware rack is discussed in greater detail in the discussion of FIG. 5 .
- the camera may be a digital camera that collects and encodes visible light.
- the digital camera may produce an electronic representation of the bounded area in the form of a digital image.
- the digital image may contain information, such as, e.g. the results of machine vision.
- the camera may detect visible light within the camera view point that enters the camera lens.
- the camera view point may describe a physical area where light may be collected by the camera. For example, light reflecting off a wall may be within the camera view point if the light is directed to the camera lens.
- the environmental characteristics depicted in the camera view point 420 of the wall 430 may include a doorway with an ajar door 432 and a first object 434 and a second object 436 .
- the first object 434 and the second object 436 may include an image containing a complex design , e.g. an abstract picture, a two dimensional barcode, or a simple white picture.
- a frame may be bordering the image.
- the bordering may be, e.g., in the shape of an octagon, a polynomial, or ellipse.
- the door 432 may be ajar or closed. In embodiments, analyzing the image data discussed in reference to FIG. 2 may infer as to whether the door 432 is opened or closed.
- the ‘machine vision’ techniques discussed herein may include, drawing a first line from the top right corner of the first object 434 to the top left corner of the second object 436 , and tracing a second line from the top left corner of the first object 434 to the top right corner of the door 432 .
- ‘machine vision’ techniques also include, determining if the first line and the second line are parallel. In certain embodiments, if the first line and the second line are not parallel, the environmental difference may not satisfy the threshold.
- the computer hardware rack 510 may be a blade server housing multiple hardware elements of the computer.
- the computer hardware rack 510 may include an N amount of blade slots, where N may be any positive numeric value.
- the blade slots or modules may contain similar content grouping together multiple hardware elements of a computer, e.g. processors, within a rack style system packaging solution.
- the computer camera 416 may be connected to the computer located in one of the blades in the hardware rack 510 .
- the hardware element of the computer may be located in a computer blade, e.g.
- the camera view point 420 may be looking out into the environment where the computer hardware rack may reside.
- the location of the computer may be inferred from the image data, e.g., the difference in the location of the computer between a blade one 512 and a blade two 514 can be detected, and the difference may not satisfy the threshold.
- FIG. 6 depicts a high-level block diagram of an exemplary system for implementing an embodiment of the invention.
- the mechanisms and apparatus of embodiments of the present invention apply equally to any appropriate computing system.
- the major components of the computer system 600 comprise one or more processors 606 , a main memory 604 , a terminal interface 610 , a storage interface 612 , an I/O (Input/Output) device interface 614 , a user I/O device 624 , and a storage device 626 , all of which are communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 618 , an I/O bus 620 , and an I/O bus interface unit 622 .
- the computer system 600 may contain one or more general-purpose programmable central processing units (CPUs) 606 A, 606 B, 606 C, and 606 D, herein generically referred to as the processor 606 .
- the computer system 600 contains multiple processors typical of a relatively large system; however, in another embodiment the computer system 600 may alternatively be a single CPU system.
- Each processor 606 executes instructions stored in the main memory 604 and may comprise one or more levels of on-board cache 630 .
- the main memory 604 may comprise a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing or encoding data and programs 634 .
- the main memory 604 represents the entire virtual memory of the computer system 600 , and may also include the virtual memory of other computer systems coupled to the computer system 600 or connected via a network.
- the main memory 604 is conceptually a single monolithic entity, but in other embodiments the main memory 604 is a more complex arrangement, such as a hierarchy of caches 630 and other memory devices.
- memory may exist in multiple levels of caches, and these caches may be further divided by function, so that one cache holds instructions while another holds non-instruction data, which is used by the processor or processors.
- Memory may be further distributed and associated with different CPUs or sets of CPUs, as is known in any of various so-called non-uniform memory access (NUMA) computer architectures.
- NUMA non-uniform memory access
- the main memory 604 may store all or a portion of the following: RAM 632 , cache 630 , storage system 636 , one or more programs/utilities 634 , and at least one set of program modules 638 .
- RAM 632 , cache 630 , storage system 636 , one or more programs/utilities 634 , and at least one set of program modules 638 are illustrated as being contained within the memory 604 in the computer system 600 , in other embodiments some or all of them may be on different computer systems and may be accessed remotely, e.g., via a network.
- the computer system 600 may use virtual addressing mechanisms that allow the programs of the computer system 600 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities.
- RAM 632 , cache 630 , storage system 636 , one or more programs/utilities 638 , and at least one set of program modules 634 are illustrated as being contained within the main memory 604 , these components are not necessarily all completely contained in the same storage device at the same time. Further, although the RAM 632 , cache 630 , storage system 636 , one or more programs/utilities 638 , and at least one set of program modules 634 are illustrated as being separate entities, in other embodiments some of them, portions of some of them, or all of them may be packaged together.
- the memory 604 comprise instructions or statements that execute on the processor 606 or instructions or statements that are interpreted by instructions or statements that execute on the processor 606 , to carry out the functions as further described with reference to the figures as discussed herein.
- the main memory 804 are implemented in hardware via semiconductor devices, chips, logical gates, circuits, circuit cards, and/or other physical hardware devices in lieu of, or in addition to, a processor-based system.
- the main memory 604 comprise data in addition to instructions or statements.
- the memory bus 618 provides a data communication path for transferring data among the processor 606 , the main memory 604 , and the I/O bus interface 622 .
- the I/O bus interface 622 is further coupled to the I/O bus 620 for transferring data to and from the various I/O units.
- the I/O bus interface unit 622 communicates with multiple I/O interface units 610 , 612 , 614 , 624 , and 626 which are also known as I/O processors (IOPs) or I/O adapters (IOAs), through the I/O bus 620 .
- IOPs I/O processors
- IOAs I/O adapters
- the I/O interface units support communication with a variety of storage and I/O devices.
- the terminal interface unit 610 supports the attachment of one or more user I/O devices 624 , which may comprise user output devices (such as a video display device, speaker, and/or television set) and user input devices (such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing device).
- user input devices such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing device.
- a user may manipulate the user input devices using a user interface, in order to provide input data and commands to the user I/O device 624 and the computer system 600 , and may receive output data via the user output devices.
- a user interface may be presented via the user I/O device 624 , such as displayed on a display device, played via a speaker, or printed via a printer.
- the storage interface 612 supports the attachment of one or more disk drives or direct access storage devices 626 (which are typically rotating magnetic disk drive storage devices, although they could alternatively be other storage devices, including arrays of disk drives configured to appear as a single large storage device to a host computer).
- the storage device 626 may be implemented via any type of secondary storage device.
- the contents of the main memory 604 , or any portion thereof, may be stored to and retrieved from the storage device 626 , as needed.
- the I/O device interface 614 provides an interface to any of various other input/output devices or devices of other types, such as printers or fax machines.
- the network interface provides one or more communications paths from the computer system 600 to other digital devices and computer systems; such paths may comprise, e.g., one or more networks.
- the memory bus 618 is shown in FIG. 6 as a relatively simple, single bus structure providing a direct communication path among the processors 606 , the main memory 604 , and the I/O bus interface 622 , in fact the memory bus 618 may comprise multiple different buses or communication paths, which may be arranged in any of various forms, such as point-to-point links in hierarchical, star or web configurations, multiple hierarchical buses, parallel and redundant paths, or any other appropriate type of configuration.
- the I/O bus interface 622 and the I/O bus 620 are shown as single respective units, the computer system 600 may, in fact, contain multiple I/O bus interface units 622 and/or multiple I/O buses 620 . While multiple I/O interface units are shown, which separate the I/O bus 620 from various communications paths running to the various I/O devices, in other embodiments some or all of the I/O devices are connected directly to one or more system I/O buses.
- the computer system 600 is a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface, but receives requests from other computer systems (clients).
- the computer system 600 is implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smart phone, or any other appropriate type of electronic device.
- FIG. 6 is intended to depict the representative major components of the computer system 600 . But, individual components may have greater complexity than represented in FIG. 6 , components other than or in addition to those shown in FIG. 6 may be present, and the number, type, and configuration of such components may vary. Several particular examples of such additional complexity or additional variations are disclosed herein; these are by way of example only and are not necessarily the only such variations.
- the various program components illustrated in FIG. 6 and implementing various embodiments of the invention may be implemented in a number of manners, including using various computer applications, routines, components, programs, objects, modules, data structures, etc., and are referred to herein as “software,” “computer programs,” or simply “programs.”
- the present invention may be a system, a method, and/or a computer program product.
- the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
- the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
- the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- SRAM static random access memory
- CD-ROM compact disc read-only memory
- DVD digital versatile disk
- memory stick a floppy disk
- a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
- a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
- the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
- a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures.
- two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Geometry (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Remote Sensing (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Image Analysis (AREA)
Abstract
Description
- Aspects of the present disclosure relate to information security, more particular aspects relate to environmental-based location monitoring in computer systems. While the present disclosure is not necessarily limited to such applications, various aspects of the disclosure may be appreciated through a discussion of various examples using this context.
- In applications where sensitive algorithms, data, or other program elements are stored, developed, and housed within non-volatile memory elements, there can be a concern that these sensitive elements could be accessed and thus have their security compromised. In order to improve data security, mechanisms could be used to detect intrusion attempts, prohibit unauthorized power-on of hardware, or to otherwise make it difficult to access data without authorization.
- Aspects of the present disclosure are directed towards a method of environmental based location monitoring. In embodiments, the method can include collecting, in response to a condition for a computer, a first set of image data that corresponds to a first set of environmental characteristics existing within a bounded area encompassing a hardware element of the computer. In embodiments, the method can include determining, by analyzing the first set of image data, a first location corresponding to a geographic position of the hardware element relative to the first set of environmental characteristics, and determining, by analyzing a second set of image data, the second set of image data corresponding to a second set of environmental characteristics, a second location corresponding to an approved geographic position of the hardware element relative to the second set of environmental characteristics. In embodiments, the method can include comparing the first location to the second location, and determining, by comparing the first location to the second location, an environmental difference using a location difference between the first location and the second location. In embodiments, the method can include determining that the environmental difference does not satisfy a threshold, and executing a reaction sequence in the computer, in response to determining that the environmental difference does not satisfy the threshold.
- Aspects of the present disclosure are directed towards a system for environmental-based location monitoring. In embodiments, the system can include a processor and a computer readable storage medium having program instructions embodied therewith. In embodiments the program instructions can be executable by the processor to cause the system to collect, in response to a condition for the system, a first set of image data that corresponds to a first set of environmental characteristics existing within a bounded area encompassing a hardware element of the system. In embodiments, the program instructions can cause the system to determine, by analyzing the first set of image data, a first location corresponding to a geographic position of the hardware element relative to the first set of environmental characteristics, and determine, by analyzing a second set of image data, the second set of image data corresponding to a second set of environmental characteristics, a second location corresponding to an approved geographic position of the hardware element relative to the second set of environmental characteristics. In embodiments, the program instructions can cause the system to compare the first location to the second location, and determine, by comparing the first location to the second location, an environmental difference using a location difference between the first location and the second location. In embodiments, the program instructions can cause the system to determine that the environmental difference does not satisfy a threshold, and execute a reaction sequence in the computer, in response to determining that the environmental difference does not satisfy the threshold.
- Aspects of the present disclosure are directed towards a computer program product for environmental-based location monitoring, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method. In embodiments, the method can include collecting, in response to a condition for a computer, a first set of image data that corresponds to a first set of environmental characteristics existing within a bounded area encompassing a hardware element of the computer. In embodiments the method can include determining, by analyzing the first set of image data, a first location corresponding to a geographic position of the hardware element relative to the first set of environmental characteristics, and determining, by analyzing a second set of image data, the second set of image data corresponding to a second set of environmental characteristics, a second location corresponding to an approved geographic position of the hardware element relative to the second set of environmental characteristics. In embodiments, the method can include comparing the first location to the second location, and determining, by comparing the first location to the second location, an environmental difference using a location difference between the first location and the second location. In embodiments, the method can include determining that the environmental difference does not satisfy a threshold, and executing a reaction sequence in the computer, in response to determining that the environmental difference does not satisfy the threshold.
- The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.
- The drawings included in the present application are incorporated into, and form part of, the specification. They illustrate embodiments of the present disclosure and, along with the description, serve to explain the principles of the disclosure. The drawings are only illustrative of certain embodiments and do not limit the disclosure.
-
FIG. 1 illustrates a flow chart of a method for environmental based location monitoring, according to various embodiments. -
FIG. 2 illustrates a flow chart for a method of collecting and analyzing image data, according to various embodiments. -
FIG. 3 illustrates a flow chart for a method for executing a reaction sequence, according to various embodiments. -
FIG. 4A andFIG. 4B illustrate diagrams of image data collection, according to various embodiments. -
FIG. 5 illustrates a diagram of a computer, according to various embodiments. -
FIG. 6 illustrates a block diagram of a system for environmental based location monitoring, according to various embodiments. - While the invention is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the invention to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
- Aspects of the present disclosure relate to information security, more particular aspects relate to environmental-based location monitoring in computer systems. While the present disclosure is not necessarily limited to such applications, various aspects of the disclosure may be appreciated through a discussion of various examples using this context.
- In applications where sensitive algorithms, data, or other program elements are stored, developed, and housed within non-volatile memory elements, there can be a concern that these sensitive elements could be accessed and thus have their security compromised. In order to improve data security, mechanisms can be used to detect intrusion attempts, prohibit unauthorized power-on of hardware, or to otherwise make it difficult to access data without authorization can be used.
- To assist in data security, sensitive data can be stored in hardware that is housed in a secure location or facility. However, in some instances hardware could be moved out of the secure location, such as while being transported, or receiving maintenance, which could leave sensitive data vulnerable to unauthorized access.
- Aspects of the present disclosure are directed towards environmental based computer location monitoring. Embodiments of the present disclosure collect image data and environmental data, compare collected image data and environmental data to what may be expected, and respond in various ways if the image data and environmental data do not match.
- A method of environmental based location monitoring can include collecting in response to a condition for a computer, a first set of image data and a first set of environmental data that corresponds to a first set of environmental characteristics existing within a bounded area encompassing one or more hardware elements of the computer, such as a storage system.
- In some embodiments, the hardware elements, of the computer may be transported or assembled separately from the computer. For example, the hardware elements may be a hard disk drive, computer storage, or a processor. In embodiments, the hardware elements may be connectively coupled to the computer. For example, the hardware element may be a processor and the processor may be assembled in a blade server. In some embodiments, in order to secure such isolated hardware elements, the sensors may be coupled to the hardware elements. For example, the sensor may be attached to the processor. In embodiments, the bounded area may be external to the hardware elements. For example, the sensor may collect image data and environmental data external to the hardware elements.
- In embodiments, the condition may be various circumstances that influence the actions of a computer. For example, the condition could be a command to power-on a portion of the computer, to access data from the computer, to execute an application, or other type of computer-based command. In certain embodiments, the condition can be an expiration of a time-based interval. For example, the expiration of the time-based interval may trigger the condition to occur every x number of minutes, where x can be any positive numerical value, e.g. every ten minutes, every hour, or every five hours.
- The image data may be an electronic representation of one or more environmental characteristics. For example, the image data may be represented in pixels as display. For example, in embodiments, the image data could be various types of data extracted from a digital image (e.g. average pixel intensity data, digital numeric color data). In some embodiments, the digital image can be a numerical representation of a two dimensional image.
- In embodiments, the environmental data could be an electronic representation of one or more environmental characteristics. For example, in the form of numeric values. For example the environmental data may be various forms of data extracted from a sensor measuring one or more physical stimulus. In embodiments, the physical stimulus may be heat, light, sound, pressure, magnetism, or a particular motion. For example, the light may be visible, ultraviolet, infrared, etc. For example, the environmental data may include numerical values for temperature, pressure, or humidity.
- In some embodiments, the environmental characteristics could be defined as a set of distinctive physical conditions or qualities of a particular place. In embodiments, the environmental characteristics for the image data may include one or more constituents of matter (e.g. structural objects, furniture, people, etc.). In embodiments, the distinctive physical conditions of the environmental characteristics may include the temperature, altitude, or humidity of the particular place.
- In embodiments, the sensor may be an instrument that measures a physical stimuli and converts them into signals or data. For example, the sensor may be a digital camera, a thermometer, an ultrasonic instrument, or a voltmeter. For example, the digital camera may measure visible light, the thermometer may measure temperature, or the ultrasonic instrument may measure pressure. In embodiments, the digital camera may collect image data, and the thermometer, ultrasonic instrument, and voltmeter may collect environmental data.
- For example, the bounded area may be defined by the range of a sensor collecting data. The range may be external to the computer chassis. For example, in embodiments, the range of detecting visible light from objects may be less than the range of detecting infrared light from objects. For example, infrared light radiating from people behind solid objects. For example the range may be set to a maximum range defined by the capabilities of the sensors. In additional examples, the range may be set by a user, e.g. the user may set the range to 10 feet.
- In embodiments, the first set of environmental data may be environmental data that corresponds to environmental characteristics existing within the bounded area. For example, the first set of environmental data may be collected in the bounded area after the condition occurs. The environmental data may be an electronic representation of the physical stimuli detected by the sensors. For example, in the form of numerical values. For example, for numerical values for temperature, pressure, and humidity.
- In embodiments, the first set of image data may be image data that corresponds to environmental characteristics existing within the bounded area. For example, when the computer is turned on, the digital camera may detect the reflected light in a room and convert electrical signals into data. For example, reflected light from walls, chairs, or pictures. For example, a picture may be a two dimensional barcode. In embodiments, the first set of image data may include information, such as, where objects are located in the detectable range of the sensors relative to another object.
- Furthermore, in embodiments, the environmental characteristics may be organized in multiple sets based on the type of environmental characteristics. For example, a first set of environmental characteristics, could include temperature data. A second set of environmental characteristics could include color data. A third set of environmental characteristics could include humidity data. In embodiments, the method can include comparing similar environmental characteristics. For example, temperature data of the first set of environmental data could be compared to temperature data from an approved operating environment. In embodiment, the approved operating environment may be where the computer is intended to operate in, e.g. a secured facility. In other embodiments, the approved operating environment may be an area established or decided in advance to shipping the computer.
- In embodiments, the approved operating environment may comprise predetermined environmental characteristics that the system looks for. For example, if the computer is meant to be housed in a climate controlled environment of seventy degrees Fahrenheit, the predetermined environment characteristic may include a temperature of seventy degrees.
- In embodiments, a second set of image data and a second set of environmental data includes data that corresponds to information about the predetermined environmental characteristics. In embodiments, the second set of image data may be an electronic representation of the predetermined environmental characteristics from the approved operating environment. In embodiments, the second set of image data can include an approved set of image data for an operating environment for the computer. For example, if the computer is meant to be housed in an environment that includes a two dimensional barcode, the second set of image data may include information about the location of the two dimensional barcode and/or characteristics of the two dimensional barcode.
- In embodiments, the second set of image data may be an electronic representation of the predetermined environmental characteristics from the approved operating environment. In embodiments, the second set of environmental data may be an electronic representation of the predetermined environmental characteristics from the approved operating environment. In embodiments, the second set of environmental data can include an approved set of environmental data for an operating environment for the computer. For example, if the computer is meant to be housed in an environment that can include climate controlled environment of seventy degrees, the second set of environmental data may include numerical data representing the temperature set at seventy degrees.
- In some embodiments, the approved operating environment can include an approved geographic position. In embodiments the approved geographic position can be represented by a position, such as represented in Cartesian coordinates as described herein, of a hardware element relative to various environmental characteristics in the bounded area.
- In certain embodiments, the second set of image data and the second set of environmental data may be stored in non-volatile memory in the computer. The non-volatile memory may be operatively coupled to the computer. The non-volatile memory that is storing the second set of image data and the second set of environmental data may not be accessible after the condition occurs. For example, once the computer is turned on, the second set of image data or the second set of environmental data may not be accessible. The non-volatile memory may not be accessible after time zero, so unauthorized users attempting to extract the second set of image data or the second set of environmental data may fail in retrieving information from the computer or hardware elements.
- In some embodiments, analyzing the image data may occur after collecting the image data. In embodiments, analyzing may include examining the constitution or structure of the image data in the form of utilizing techniques commonly employed in ‘machine vision’. In some embodiments, machine vision is the technology and methods of providing imaging-based automatic inspection and analysis for such applications as automatic inspection, process control, and robot guidance in industry, such as, e.g. ‘computational projective geometry’ and ‘camera calibration’ discussed herein and as discussed in as described in “BYERS et al., “Where the Camera Was”, Mathematics Magazine, Vol. 77, No. 4, pp: 251-259, October 2004. http://www.math.smith.edu/˜jhenle/Files/camera.pdf.”
- In embodiments, the techniques may include calculating a first volume of the bounded area. In embodiments, the first volume may be external to the computer up to the range of the sensor collecting visible light. For example, the range may stop at a wall that bounds the computer. For example, the first volume may be of a room that bounds the computer.
- In embodiments, the techniques may also include determining the geographic location of the computer relative to the environmental characteristics in the bounded area. For example, taking a digital image of the environmental characteristics contained in the range of the sensors, then inferring the geographic location by extracting information from the image data.
- In certain embodiments, the techniques may include determining the relative position of a first object in the approved operating environment. For example, the relative position of the first object may be taken with respect to a second object. For example, the first object may be a picture and the second object may be a chair. For example, the distance between the picture and the chair may be calculated from the relative position.
- The method can include comparing the first set of image data to the second set of image data. The method can include determining an environmental difference between the first set of image data and the second set of image data. In embodiments, an environmental difference may be a representation of the quantitative contrast between the environmental characteristics contained in the bounded area and the predetermined environmental characteristics for the approved operating environment. In embodiments, the environmental difference may be represented using various units. For example the environmental difference may have units of Fahrenheit for temperature or meters for volume. The method can include determining that the environmental difference does not satisfy a threshold.
- In embodiments, the threshold may be a numerical representation indicating the limit of an acceptable difference between the environmental characteristics and the approved environmental characteristics. In embodiments, achieving the threshold may be accomplished when the magnitude of the environmental difference is less than the magnitude of the threshold. In embodiments, the threshold for the geographic location can have units that are relevant to the environmental difference units that are based off the geographic location, e.g. units of meters.
- For instance, in embodiments, consider a threshold for the geographic location of the computer to be one foot. Continuing the instance, in embodiments, if the geographic location of the computer in the bounded area differs by a magnitude of more than one foot from the geographic location of the computer in the approved operating environment, the threshold may not be satisfied. In certain embodiments, not achieving the threshold may cause a reaction to occur.
- In certain embodiments, environmental characteristics that can be susceptible to errors in the environment may be given a larger threshold, accordingly. For instance, body heat or friction near the computer may disturb with collecting image data or environmental data. In embodiments, each environmental difference may have their own respective threshold, according to the susceptibility of the environmental characteristic to nearby physical conditions. For instance, because the temperature and humidity may be more likely to be affected by body heat or friction than the volume, a system could tolerate a higher environmental difference with regard to temperature and humidity than with regard to volume. For example, the threshold for temperature or humidity may be higher than the threshold for volume.
- The method can include determining a score that is based on the environmental difference. In embodiments, the score can be a representation of the difference between the bounded area and the approved operating environment. In some embodiments, scoring may include placing a numerical value on the difference between the environmental difference and the respective threshold. In embodiments, the score may distinguish an environmental difference that satisfies the threshold from an environmental difference that does not satisfy the threshold.
- In certain embodiments, scoring may include weighing the environmental difference. In embodiments, weighing may be a numerical representation of the relative difficulty of reproducing an environmental characteristic in the form of a positive numerical value. For example, image data may be weighted three times as much as temperature data, since reproducing a two dimensional barcode may be difficult, but reproducing a temperature of seventy degrees may happen by coincidence.
- For example, a room that the computer is operating in could have the following characteristics: a temperature of seventy degrees, a set of coordinates representing the geographic location of the computer within the room, and a two dimensional barcode in range of the sensor. Continuing the example, there may be a plethora of locations that are seventy degrees, but environmental characteristics comprising a matching set of coordinates or a matching two dimensional barcode may be much more difficult to duplicate. For this reason, the weight may be adjusted according to the environmental characteristic.
- The method can include executing a reaction sequence in the computer if the environmental difference does not satisfy the threshold. In some embodiments, the reaction sequence can be a set of events occurring in the computer in response to one or more thresholds not being satisfied. For example, if the temperature in the approved operating environment is 50 degrees Fahrenheit and the temperature in the bounded area is seventy degrees Fahrenheit, and the threshold is set at 10 degrees Fahrenheit.
- In embodiments, the reaction sequence initiate one or more alarms in response to one or more thresholds not being satisfied. In embodiments, the one or more thresholds may overwrite data stored in the computer, physically damage the computer, shut-down the computer, or initiate one or more alarms. Initiating the reaction sequence may be with the intention to restrict the user from accessing the computer or ‘sensitive’ information stored in the computer.
- Turning now to
FIG. 1 , a flow chart for amethod 100 of environmental based location monitoring can be seen, according to various embodiments. In embodiments, the method can include, indecision block 110, determining whether a condition occurs. In embodiments, the computer could be a programmable machine that is capable of executing a set of operations. In some embodiments, the condition can be a command for the computer to perform a set of operations. If a condition occurs, indecision block 110, the method may proceed tooperation 120. If a condition does not occur, themethod 100 may repeat until a condition occurs. - In certain embodiments, the method can include, in
operation 120, collecting the first set of image data in the bounded area. In embodiments, theoperation 120 can include analyzing the first set of image data after collecting the first set of image data, as discussed herein. For example, determining the first volume, average image intensity, or the geographic location of the computer. - In embodiments, the
operation 130 can also include collecting the first set of environmental data in the bounded area. For example, temperature, humidity, and pressure. In embodiments, after collecting and analyzing the image data and the environmental data, theoperation 120 can proceed to anoperation 130. - In embodiments, the method can include, in
operation 130, comparing the first set of image data to the second set of image data. For example, comparing the first volume to the second volume. For example, comparing the first geographic location to the second geographic location. In embodiments, after comparing the image data,operation 130 may include determining an environmental difference for the image data as discussed herein. For example, the environmental difference with respect to the volume may be the first volume subtracted from the second volume, where the volume may be represented in units of cubic meters. - In embodiments, the
operation 130 also can include comparing the first set of environmental data to the second set of environmental data. For example the temperature from the bounded area and the temperature in the approved operating environment. For example, the humidity in the bounded area and the temperature in the approved operating environment. In embodiments, after comparing the environmental data,operation 130 may include determining an environmental difference. For example, determining the environmental difference for the temperature, humidity, or the pressure. - In embodiments, the
operation 130 can include determining if the environmental differences satisfy the threshold. In embodiments, the thresholds vary, depending on the environmental characteristic, as discussed herein. For example, the environmental difference for temperature may have a higher threshold than the environmental difference for volume. In embodiments, after comparing, determining the environmental difference, and if the threshold are satisfied, theoperation 130 may proceed to anoperation 140. - In embodiments, the method can include, in
operation 140 scoring the environmental differences. For example, the environmental difference for the first volume and second volume may be scored. For example, scoring may occur for environmental differences that do not satisfy the threshold. In embodiments, once scoring of the environmental differences is complete, theoperation 140 may proceed to anoperation 150. - In embodiments, the method can include, in
operation 150, executing the reaction sequence. In embodiments, executing the reaction sequence, as discussed herein, may be in response to the one or more thresholds not being satisfied. For example, executing the reaction sequence may be in response to the environmental difference for temperature not achieving the threshold. For example, executing the reaction sequence may be in response to the environmental difference for temperature and the environmental difference for volume not achieving their respective thresholds. - Turning now to
FIG. 2 , a flow chart for amethod 200 of processing image data can be seen, according to various embodiments. In certain embodiments, the method can include, inoperation 210, collecting a first set of image data from a bounded area. For example, the first set of image data may include visible light, ultraviolet light, or infrared light. For example, the digital camera may collect the first set of image data. In embodiments, theoperation 200 can include aborting themethod 200, in the case that the camera is not functioning correctly. In embodiments,operation 210 may also include collecting the first set of environmental data in the bounded area. - In embodiments, the
method 200 can include, inoperation 210, extracting the environmental characteristics from the first set of image data and the first set of environmental characteristics. For example, organizing the collected data into numerical values describing the environmental characteristics. For example, this may include the temperature, first volume, or geographic location. - In embodiments,
operation 210 also can include implementing additional techniques to further analyze the digital image, in the case if the image data is unreadable. For example, in the case where either the stored data is unreadable, or the ability to successfully collect or interpret the image data is unsuccessful. For example, if the computer is not capable of processing or interpreting the image data. For example, the image data may be unreadable if the computer is not capable of producing results from the collected data. - In embodiments, additional techniques can include extracting a first average image intensity of the digital image corresponding to the first set of environmental characteristics rather than extracting a specific pixel content. In embodiments, the additional techniques include comparing the first average image intensity to a second average image intensity corresponding to the second set of environmental characteristics.
- In embodiments, the additional technique may include extracting a first smaller portion corresponding to the first set of image data. In embodiments, comparing the first smaller portion to a second portion corresponding to the second set of image data may determine the picture quality. In embodiments,
operation 210 may proceed to anoperation 215 after collecting and analyzing the data. - In certain embodiments, the
method 200 can include, indecision block 215, recollecting the image data, if the results of the additional techniques are inconclusive. In embodiments, inconclusive meaning that the techniques may not have led to a firm conclusion. In embodiments, if the image data is readable, themethod 200 may proceed to anoperation 220; otherwise, themethod 200 could return tooperation 210. - In certain embodiments, the
method 200 can include, inoperation 220, analyzing the first set of image data. In embodiments, analyzing the first set of image data includes using various techniques commonly used in ‘machine vision’, such as, e.g. ‘computational projective geometry’ and ‘camera calibration’ as described herein. - In embodiments ‘computational projective geometry’ can include detecting the positions of one or more objects to environmental characteristics existing within the bounded area. For example, the relative positions may be where one or more first objects are located on a wall with respect to one or more second objects, e.g. the distance between two pictures hanging on a wall.
- In some embodiments, ‘computational projective geometry’ can include detecting the shape of one or more objects within the first set of image data. For example, the shape of the one or more objects may be a three dimensional or a two dimensional polygon, e.g. a square or a cube, rectangle, hexagon, octagon, etc . . . In some embodiments, ‘computational projective geometry’ includes determining the volume of a room that the computer is located in. In embodiments, the volume may be represented in cubic meters.
- In certain embodiments, ‘camera calibration’ can include determining the geographic location of the computer relative to the environmental characteristics. In certain embodiments, by way of ‘camera calibration’, the information obtained from the ‘computational projective geometry’ can be used to deduce the geographic location of the computer within the bounded area. The geographic location may be described in Cartesian coordinates, e.g. (x, y, z) to an arbitrary reference point in the room as the origin as discussed herein. In embodiments, after analyzing the first set of image data, the
operation 220 can proceed to anoperation 230. - In embodiments, the
method 200 can include, inoperation 230, comparing a first location to a second location. In some embodiments, the first location may be a representation of the geographic location of the computer relative to the first set of environmental characteristics. In certain embodiments, the second location may be a representation of the geographic location of the computer relative to the second set of environmental characteristics. The second location may correspond to predetermined environmental characteristics in the approved operating environment. For example, the location of the computer in the approved operating environment. In embodiments, the geographic location may be represented as a set of coordinates. - In other embodiments,
operation 230 can include comparing a first volume to a second volume. In some embodiments, the first volume may be a numerical representation of the volume of the room via the first set of environmental characteristics. In certain embodiments, the second volume may be a numerical representation of the volume of the room via the second set of environmental characteristics. In embodiments, the second volume may correspond to predetermined environmental characteristics in the approved operating environment. For example, the volume of the approved operating environment. - In embodiments,
operation 230 can include comparing the first set of environmental data to the second set of environmental data from the approved operating environment. For example, temperature, humidity, and pressure from the bounded area may be compared from temperature, humidity, and pressure from the approved operating environment. In embodiments, after comparing the first set of image data to the second set of image data, and the first set of environmental data to the second set of environmental data,operation 230 may also include determining the difference from the first set of environmental characteristics and the third set of environmental characteristics. - In some embodiments, the
method 200 can include, inoperation 230, determining the environmental difference. In embodiments, the environmental difference may be a numerical representation of the difference between the first location and the second location in the form of a magnitude. In other embodiments, theoperation 230 includes determining the environmental difference between the first volume and the second volume. - In embodiments,
operation 230 can include determining the difference from the first set of environmental data and the second set of environmental data. For example, determining the difference between the temperature in the bounded area and the temperature in the approved operating environment. For example, determining the difference from the environmental characteristics and the predetermined environmental characteristics. The difference may be termed the environmental difference. - In embodiments, the
operation 230 can include determining a score (S), wherein the score is a numerical representation of the difference between the environmental differences and the respective thresholds. For example, in some embodiments, the score may be the aggregate of all environmental differences. For example, the score may be represented using various units. For example, the score may be weighted according to the environmental characteristic. For example, the value of the score may be a comprehensive evaluation of the difference between the bounded area and the approved operating environment. - In certain embodiments, the
method 200 can include, inoperation 240 determining the score of the acceptable environmental differences between the first set of environmental characteristics and the third set of environmental characteristics within their respective thresholds. For example, the environmental difference based off of the first location and the second location may satisfy the threshold, if the magnitude of the environmental difference is less than or equal to the magnitude of the location difference. For example, the environmental difference based off of the first volume and the second volume may satisfy the threshold, if the magnitude of the environmental difference is less than or equal to the magnitude of the volume difference. In embodiments, after determining the environmental differences and scores, theoperation 230 may proceed to anoperation 240. - In embodiments, the
method 200 can include, inoperation 240, executing the reaction sequence. In embodiments, the reaction sequence could be a sequence of events occurring in response to one or more thresholds not being satisfied. In embodiments, the reaction sequence may be illustrated in greater detail inFIG. 3 . - Turning now to
FIG. 3 , a flow chart of amethod 300 for the reaction sequence can be seen, according to various embodiments. The reaction sequence illustrated inFIG. 3 may be an embodiment ofoperation 150 oroperation 240. In embodiments, themethod 300 may include, checking at each decision block if the score is within a threshold range of the current decision block. For example, in embodiments, each decision block may have its own threshold range. In embodiments, predetermined numerical values in increasing order labeled T0, T1, T2, T3, and T4, e.g. T0<T1<T2<T3<T4 may constitute boundaries that the score can fall within. For example, in embodiments, the score may begin at the decision block with a threshold range of T0≦S<T1. If the environmental score is not within the threshold range T0≦S<T1, the score may proceed to the decision block with the threshold range including T1≦S<T2, and continue until the score reaches a decision block with a threshold range that the score is within. - In embodiments, executing a response in the reaction sequence depends on the value of the score. For example, a score with a value in between T0≦S<T1 may lead to a different response than a score with a value in between T1≦S<T2. For example, a value in between T1≦S<T2 may grant the user partial access to the computer, and a value in between T1≦S<T2 may overwrite data stored in the computer. In embodiments, employing the reaction sequence may occur in order to restrict unauthorized end users from attempting to access information stored in the computer.
- In certain embodiments, the
operation 310 can include granting the end user partial access to the computer. In embodiments,operation 310 occurs if the score has a value of T0≦S<T1. In embodiments, granting the end user access may not necessarily mean granting access to all information stored in the computer. Although access may be granted to the computer, the condition may reoccur in response to the expiration of a time-based interval. In embodiments, the time-based interval may cause themethod 100 to reoccur. In certain embodiments, the score may proceed to anoperation 320, if the score has a value of T1≦S. - In some embodiments, the
method 300 can include, inoperation 320 overwriting a set of data stored in the computer. In embodiments, overwriting the set of data may be the process of writing a binary set of data stored in the memory, the memory that is operatively connected to the computer. In embodiments, overwriting may include writing over old data stored in the memory. For example, in embodiments, the set of data may be deleted by overwriting the set of data in binary with all zeroes followed by all ones so that the set of data is unreadable. - In embodiments, overwriting the set of data may include rewriting the set of data. For example, in certain embodiments, overwriting the information could include formatting the set of data with random information or an explanation as to why executing the reaction sequence may have been necessary. In embodiments, the score may proceed to an
operation 330, if the score has a value of T2≦S. - In embodiments, the
method 300 can include, inoperation 330, shutting down the computer. In some embodiments, shutting-down the computer may be done by restricting power to the computer. In some embodiments, shutting-down the computer may transpire for a varying amount of time. For example, in embodiments, shutting-down the computer may be temporary, permanently, or until determining a solution as to why executing the reaction sequence may have been necessary. In some embodiments, the score may proceed to anoperation 340, if the score has a value of T3≦S. - In certain embodiments, the
method 300 may include, inoperation 340, initiating one or more alarms. In embodiments, the one or more alarms may include an electromagnetic alarm, an auditory alarm, or a smoke alarm. For example, in embodiments, the electromagnetic alarm may send out electromagnetic waves in the infrared spectrum or the ultraviolet spectrum and the auditory alarm can be a high-pitched frequency. In certain embodiments, the score can proceed to anoperation 350, if the score has a value of T4≦S. - In embodiments, the
method 300 can include, inoperation 350, initiating a self-destruct mechanism. In some embodiments, initiating the self-destruct mechanism may be in the form of causing physical damage to hardware that restricts access to a portion of data. For example, causing damage may affect the electrical circuitry of the computer beyond repair. - Turning now to
FIG. 4A , anaerial view 400 of a computer bounded by four walls and a floor can be seen, according to various embodiments. In embodiments,FIG. 4A may be an illustrative representation of the bounded area or approved operating environment where collecting the image data may occur. In embodiments, theaerial view 400, includes four walls and the floor bounding acomputer hardware rack 410, acamera 416, and afirst object 434 and asecond object 436 located on awall 430. - In embodiments, the
aerial view 400, can include thecamera 416 collecting the first set of image data within thecamera view point 420. In embodiments, thecamera view point 420 is facing away from the computer hardware rack and facing outward toward awall 430. Thewall 430 as seen by thecamera view point 420 can also be seen, according to embodiments. In certain embodiments, acamera 416 can be physically connected to the computer, and the computer may be positioned in acomputer hardware rack 410. In embodiments, the computer hardware rack is discussed in greater detail in the discussion ofFIG. 5 . - In embodiments, the camera may be a digital camera that collects and encodes visible light. For example, the digital camera may produce an electronic representation of the bounded area in the form of a digital image. In embodiments, the digital image may contain information, such as, e.g. the results of machine vision. In embodiments, the camera may detect visible light within the camera view point that enters the camera lens. The camera view point may describe a physical area where light may be collected by the camera. For example, light reflecting off a wall may be within the camera view point if the light is directed to the camera lens.
- Turning now to
FIG. 4B , an example view of thecamera view point 420 can be seen, according to various embodiments. The environmental characteristics depicted in thecamera view point 420 of thewall 430 may include a doorway with anajar door 432 and afirst object 434 and asecond object 436. In embodiments, thefirst object 434 and thesecond object 436 may include an image containing a complex design , e.g. an abstract picture, a two dimensional barcode, or a simple white picture. In embodiments, a frame may be bordering the image. In embodiments, the bordering may be, e.g., in the shape of an octagon, a polynomial, or ellipse. In embodiments, thedoor 432 may be ajar or closed. In embodiments, analyzing the image data discussed in reference toFIG. 2 may infer as to whether thedoor 432 is opened or closed. - In certain embodiments, the ‘machine vision’ techniques discussed herein may include, drawing a first line from the top right corner of the
first object 434 to the top left corner of thesecond object 436, and tracing a second line from the top left corner of thefirst object 434 to the top right corner of thedoor 432. In embodiments, ‘machine vision’ techniques also include, determining if the first line and the second line are parallel. In certain embodiments, if the first line and the second line are not parallel, the environmental difference may not satisfy the threshold. - Turning now to
FIG. 5 , anenlarged view 500 depicting acomputer hardware rack 510 can be seen, according to embodiments. In certain embodiments, thecomputer hardware rack 510 may be a blade server housing multiple hardware elements of the computer. In embodiments, thecomputer hardware rack 510 may include an N amount of blade slots, where N may be any positive numeric value. In embodiments, the blade slots or modules may contain similar content grouping together multiple hardware elements of a computer, e.g. processors, within a rack style system packaging solution. In embodiments, thecomputer camera 416 may be connected to the computer located in one of the blades in thehardware rack 510. In embodiments, the hardware element of the computer may be located in a computer blade, e.g. blade one 512, blade two 514, orblade N 516. In embodiments, thecamera view point 420 may be looking out into the environment where the computer hardware rack may reside. In some embodiments, the location of the computer may be inferred from the image data, e.g., the difference in the location of the computer between a blade one 512 and a blade two 514 can be detected, and the difference may not satisfy the threshold. -
FIG. 6 depicts a high-level block diagram of an exemplary system for implementing an embodiment of the invention. The mechanisms and apparatus of embodiments of the present invention apply equally to any appropriate computing system. The major components of thecomputer system 600 comprise one or more processors 606, amain memory 604, aterminal interface 610, astorage interface 612, an I/O (Input/Output)device interface 614, a user I/O device 624, and astorage device 626, all of which are communicatively coupled, directly or indirectly, for inter-component communication via amemory bus 618, an I/O bus 620, and an I/Obus interface unit 622. - The
computer system 600 may contain one or more general-purpose programmable central processing units (CPUs) 606A, 606B, 606C, and 606D, herein generically referred to as the processor 606. In an embodiment, thecomputer system 600 contains multiple processors typical of a relatively large system; however, in another embodiment thecomputer system 600 may alternatively be a single CPU system. Each processor 606 executes instructions stored in themain memory 604 and may comprise one or more levels of on-board cache 630. - In an embodiment, the
main memory 604 may comprise a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing or encoding data andprograms 634. In another embodiment, themain memory 604 represents the entire virtual memory of thecomputer system 600, and may also include the virtual memory of other computer systems coupled to thecomputer system 600 or connected via a network. Themain memory 604 is conceptually a single monolithic entity, but in other embodiments themain memory 604 is a more complex arrangement, such as a hierarchy ofcaches 630 and other memory devices. For example, memory may exist in multiple levels of caches, and these caches may be further divided by function, so that one cache holds instructions while another holds non-instruction data, which is used by the processor or processors. Memory may be further distributed and associated with different CPUs or sets of CPUs, as is known in any of various so-called non-uniform memory access (NUMA) computer architectures. - The
main memory 604 may store all or a portion of the following:RAM 632,cache 630,storage system 636, one or more programs/utilities 634, and at least one set ofprogram modules 638. Although theRAM 632,cache 630,storage system 636, one or more programs/utilities 634, and at least one set ofprogram modules 638 are illustrated as being contained within thememory 604 in thecomputer system 600, in other embodiments some or all of them may be on different computer systems and may be accessed remotely, e.g., via a network. Thecomputer system 600 may use virtual addressing mechanisms that allow the programs of thecomputer system 600 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities. Thus, while theRAM 632,cache 630,storage system 636, one or more programs/utilities 638, and at least one set ofprogram modules 634 are illustrated as being contained within themain memory 604, these components are not necessarily all completely contained in the same storage device at the same time. Further, although theRAM 632,cache 630,storage system 636, one or more programs/utilities 638, and at least one set ofprogram modules 634 are illustrated as being separate entities, in other embodiments some of them, portions of some of them, or all of them may be packaged together. - In an embodiment, the
memory 604 comprise instructions or statements that execute on the processor 606 or instructions or statements that are interpreted by instructions or statements that execute on the processor 606, to carry out the functions as further described with reference to the figures as discussed herein. In another embodiment, the main memory 804 are implemented in hardware via semiconductor devices, chips, logical gates, circuits, circuit cards, and/or other physical hardware devices in lieu of, or in addition to, a processor-based system. In an embodiment, themain memory 604 comprise data in addition to instructions or statements. - The
memory bus 618 provides a data communication path for transferring data among the processor 606, themain memory 604, and the I/O bus interface 622. The I/O bus interface 622 is further coupled to the I/O bus 620 for transferring data to and from the various I/O units. The I/Obus interface unit 622 communicates with multiple I/O interface units O bus 620. - The I/O interface units support communication with a variety of storage and I/O devices. For example, the
terminal interface unit 610 supports the attachment of one or more user I/O devices 624, which may comprise user output devices (such as a video display device, speaker, and/or television set) and user input devices (such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing device). A user may manipulate the user input devices using a user interface, in order to provide input data and commands to the user I/O device 624 and thecomputer system 600, and may receive output data via the user output devices. For example, a user interface may be presented via the user I/O device 624, such as displayed on a display device, played via a speaker, or printed via a printer. - The
storage interface 612 supports the attachment of one or more disk drives or direct access storage devices 626 (which are typically rotating magnetic disk drive storage devices, although they could alternatively be other storage devices, including arrays of disk drives configured to appear as a single large storage device to a host computer). In another embodiment, thestorage device 626 may be implemented via any type of secondary storage device. The contents of themain memory 604, or any portion thereof, may be stored to and retrieved from thestorage device 626, as needed. The I/O device interface 614 provides an interface to any of various other input/output devices or devices of other types, such as printers or fax machines. The network interface provides one or more communications paths from thecomputer system 600 to other digital devices and computer systems; such paths may comprise, e.g., one or more networks. - Although the
memory bus 618 is shown inFIG. 6 as a relatively simple, single bus structure providing a direct communication path among the processors 606, themain memory 604, and the I/O bus interface 622, in fact thememory bus 618 may comprise multiple different buses or communication paths, which may be arranged in any of various forms, such as point-to-point links in hierarchical, star or web configurations, multiple hierarchical buses, parallel and redundant paths, or any other appropriate type of configuration. Furthermore, while the I/O bus interface 622 and the I/O bus 620 are shown as single respective units, thecomputer system 600 may, in fact, contain multiple I/Obus interface units 622 and/or multiple I/O buses 620. While multiple I/O interface units are shown, which separate the I/O bus 620 from various communications paths running to the various I/O devices, in other embodiments some or all of the I/O devices are connected directly to one or more system I/O buses. - In various embodiments, the
computer system 600 is a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface, but receives requests from other computer systems (clients). In other embodiments, thecomputer system 600 is implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smart phone, or any other appropriate type of electronic device. -
FIG. 6 is intended to depict the representative major components of thecomputer system 600. But, individual components may have greater complexity than represented inFIG. 6 , components other than or in addition to those shown inFIG. 6 may be present, and the number, type, and configuration of such components may vary. Several particular examples of such additional complexity or additional variations are disclosed herein; these are by way of example only and are not necessarily the only such variations. The various program components illustrated inFIG. 6 and implementing various embodiments of the invention may be implemented in a number of manners, including using various computer applications, routines, components, programs, objects, modules, data structures, etc., and are referred to herein as “software,” “computer programs,” or simply “programs.” - The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
- The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
- Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It can be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
- The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
- The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Claims (1)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/976,393 US9438606B1 (en) | 2015-03-23 | 2015-12-21 | Environmental-based location monitoring |
US15/217,253 US9665797B2 (en) | 2015-03-23 | 2016-07-22 | Environmental-based location monitoring |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/664,975 US9536176B2 (en) | 2015-03-23 | 2015-03-23 | Environmental-based location monitoring |
US14/976,393 US9438606B1 (en) | 2015-03-23 | 2015-12-21 | Environmental-based location monitoring |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/664,975 Continuation US9536176B2 (en) | 2015-03-23 | 2015-03-23 | Environmental-based location monitoring |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/217,253 Continuation US9665797B2 (en) | 2015-03-23 | 2016-07-22 | Environmental-based location monitoring |
Publications (2)
Publication Number | Publication Date |
---|---|
US9438606B1 US9438606B1 (en) | 2016-09-06 |
US20160285887A1 true US20160285887A1 (en) | 2016-09-29 |
Family
ID=56878349
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/664,975 Expired - Fee Related US9536176B2 (en) | 2015-03-23 | 2015-03-23 | Environmental-based location monitoring |
US14/976,393 Expired - Fee Related US9438606B1 (en) | 2015-03-23 | 2015-12-21 | Environmental-based location monitoring |
US15/217,253 Expired - Fee Related US9665797B2 (en) | 2015-03-23 | 2016-07-22 | Environmental-based location monitoring |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/664,975 Expired - Fee Related US9536176B2 (en) | 2015-03-23 | 2015-03-23 | Environmental-based location monitoring |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/217,253 Expired - Fee Related US9665797B2 (en) | 2015-03-23 | 2016-07-22 | Environmental-based location monitoring |
Country Status (1)
Country | Link |
---|---|
US (3) | US9536176B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9536176B2 (en) | 2015-03-23 | 2017-01-03 | International Business Machines Corporation | Environmental-based location monitoring |
US10339670B2 (en) * | 2017-08-29 | 2019-07-02 | Trimble Inc. | 3D tool tracking and positioning using cameras |
US10269017B1 (en) | 2017-11-21 | 2019-04-23 | Capital One Services, Llc | Transaction confirmation and authentication based on device sensor data |
US11086989B2 (en) * | 2018-01-02 | 2021-08-10 | Western Digital Technologies, Inc. | Smart device security compromised warning apparatus and method |
US11067718B1 (en) * | 2018-06-14 | 2021-07-20 | Amazon Technologies, Inc. | Aggregating sensor data for environment conditions |
CN110942021B (en) * | 2019-11-25 | 2024-01-16 | 腾讯科技(深圳)有限公司 | Environment monitoring method, device, equipment and storage medium |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243153B2 (en) | 2001-06-26 | 2007-07-10 | Eastman Kodak Company | System and method for managing images over a communication network |
US20030065922A1 (en) * | 2001-09-28 | 2003-04-03 | Fredlund John R. | System and method of authenticating a digitally captured image |
US7080408B1 (en) * | 2001-11-30 | 2006-07-18 | Mcafee, Inc. | Delayed-delivery quarantining of network communications having suspicious contents |
US7228428B2 (en) * | 2001-12-14 | 2007-06-05 | Xerox Corporation | Method and apparatus for embedding encrypted images of signatures and other data on checks |
WO2004057834A2 (en) | 2002-12-18 | 2004-07-08 | Senforce Technologies, Inc. | Methods and apparatus for administration of policy based protection of data accessible by a mobile device |
US7543051B2 (en) * | 2003-05-30 | 2009-06-02 | Borland Software Corporation | Method of non-intrusive analysis of secure and non-secure web application traffic in real-time |
US7545903B2 (en) | 2003-07-16 | 2009-06-09 | Koninklijke Philips Electronics N.V. | Reconstruction of an image of a moving object from volumetric data |
US7281131B1 (en) | 2004-01-20 | 2007-10-09 | Cisco Technology, Inc. | Assuring physical security of a subscriber line device |
US20060031830A1 (en) | 2004-08-03 | 2006-02-09 | International Business Machines Corp. | System with location-sensitive software installation method |
US8086519B2 (en) | 2004-10-14 | 2011-12-27 | Cfph, Llc | System and method for facilitating a wireless financial transaction |
US7797740B2 (en) | 2006-01-06 | 2010-09-14 | Nokia Corporation | System and method for managing captured content |
DE202006005643U1 (en) * | 2006-03-31 | 2006-07-06 | Faro Technologies Inc., Lake Mary | Device for three-dimensional detection of a spatial area |
US7877809B1 (en) | 2006-04-20 | 2011-01-25 | Symantec Corporation | Secure automatable clean boot system |
JP5517079B2 (en) | 2008-05-09 | 2014-06-11 | マーベル ワールド トレード リミテッド | Method, program for providing location-aware Wi-Fi access for a mobile device, and mobile device providing Wi-Fi access for location recognition |
US8533853B2 (en) | 2009-06-12 | 2013-09-10 | Telecommunication Systems, Inc. | Location sensitive solid state drive |
US9886590B2 (en) | 2009-07-23 | 2018-02-06 | Oracle International Corporation | Techniques for enforcing application environment based security policies using role based access control |
US20120204266A1 (en) | 2009-10-12 | 2012-08-09 | Samsung Sds Co., Ltd. | Method for providing an anti-malware service |
US20110170693A1 (en) | 2010-01-13 | 2011-07-14 | Andrew Llc | Stateless method and system for providing location information of target device |
US8255943B2 (en) | 2010-01-14 | 2012-08-28 | Syncbak, Inc. | Broadcast area authentication |
JP5901160B2 (en) * | 2010-07-07 | 2016-04-06 | キヤノン株式会社 | Image delivery apparatus and control method thereof, image transmission apparatus and control method thereof, and program |
CN103348353B (en) | 2010-10-06 | 2016-07-06 | 西里克斯系统公司 | Resource access is carried out intermediary's adjustment by the physical location based on mobile equipment |
US8464324B2 (en) * | 2010-12-06 | 2013-06-11 | Mobilesphere Holdings LLC | System and method for identity verification on a computer |
US8646100B2 (en) | 2011-06-03 | 2014-02-04 | Apple Inc. | Method for executing an application in a restricted operating environment |
US8756651B2 (en) | 2011-09-27 | 2014-06-17 | Amazon Technologies, Inc. | Policy compliance-based secure data access |
US9105200B2 (en) | 2011-10-04 | 2015-08-11 | Quantant Technology, Inc. | Semi-automated or fully automated, network and/or web-based, 3D and/or 4D imaging of anatomy for training, rehearsing and/or conducting medical procedures, using multiple standard X-ray and/or other imaging projections, without a need for special hardware and/or systems and/or pre-processing/analysis of a captured image data |
US10734116B2 (en) | 2011-10-04 | 2020-08-04 | Quantant Technology, Inc. | Remote cloud based medical image sharing and rendering semi-automated or fully automated network and/or web-based, 3D and/or 4D imaging of anatomy for training, rehearsing and/or conducting medical procedures, using multiple standard X-ray and/or other imaging projections, without a need for special hardware and/or systems and/or pre-processing/analysis of a captured image data |
US20130097373A1 (en) | 2011-10-14 | 2013-04-18 | Yat Wai Edwin Kwong | Systems and methods of managing hard disk devices |
US9349195B2 (en) * | 2012-03-19 | 2016-05-24 | Google Inc. | Apparatus and method for spatially referencing images |
US9392454B2 (en) | 2012-04-26 | 2016-07-12 | Mobilesphere Holdings LLC | System and method for computer authentication using image analysis of a shared secret |
US8965623B2 (en) | 2012-05-11 | 2015-02-24 | International Business Machines Corporation | Automated cleaning in a sensor network |
TWI458362B (en) * | 2012-06-22 | 2014-10-21 | Wistron Corp | Auto-adjusting audio display method and apparatus thereof |
US9235885B2 (en) | 2013-01-31 | 2016-01-12 | Applied Materials Israel Ltd | System, a method and a computer program product for patch-based defect detection |
US20140274031A1 (en) | 2013-03-13 | 2014-09-18 | Qualcomm Incorporated | Sharing data among proximate mobile devices with short-range wireless signals |
US20160242024A1 (en) * | 2013-03-15 | 2016-08-18 | Moki Mobility, Inc. | Purposed device management platform |
US9965302B2 (en) | 2013-03-28 | 2018-05-08 | Sphere 3D Inc. | Systems and methods for providing an emulator |
US9113306B2 (en) | 2013-08-02 | 2015-08-18 | Google Inc. | Predictive assistance information |
KR20150018696A (en) * | 2013-08-08 | 2015-02-24 | 주식회사 케이티 | Method, relay apparatus and user terminal for renting surveillance camera |
US20150161360A1 (en) | 2013-12-06 | 2015-06-11 | Microsoft Corporation | Mobile Device Generated Sharing of Cloud Media Collections |
US9824514B2 (en) | 2014-02-11 | 2017-11-21 | Tyco Fire & Security Gmbh | Applying geographical limitations to control actions of a security system |
US9298992B2 (en) * | 2014-02-20 | 2016-03-29 | Toyota Motor Engineering & Manufacturing North America, Inc. | Geographic feature-based localization with feature weighting |
EP2919431B1 (en) | 2014-03-12 | 2017-11-08 | Accenture Global Services Limited | Secure distribution of electronic content taking into account receiver's location |
US9886710B2 (en) | 2014-03-25 | 2018-02-06 | Ebay Inc. | Data mesh visualization |
US9961543B2 (en) | 2014-03-27 | 2018-05-01 | Beijing Nanbao Technology Co. Ltd. | Method and apparatus for wireless network authentication and authorization |
US9456433B2 (en) | 2014-04-25 | 2016-09-27 | Aruba Networks, Inc. | Method and system for client device localization |
US10395032B2 (en) * | 2014-10-03 | 2019-08-27 | Nokomis, Inc. | Detection of malicious software, firmware, IP cores and circuitry via unintended emissions |
US9754093B2 (en) | 2014-08-28 | 2017-09-05 | Ncr Corporation | Methods and a system for automated authentication confidence |
US9536176B2 (en) | 2015-03-23 | 2017-01-03 | International Business Machines Corporation | Environmental-based location monitoring |
-
2015
- 2015-03-23 US US14/664,975 patent/US9536176B2/en not_active Expired - Fee Related
- 2015-12-21 US US14/976,393 patent/US9438606B1/en not_active Expired - Fee Related
-
2016
- 2016-07-22 US US15/217,253 patent/US9665797B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9438606B1 (en) | 2016-09-06 |
US20160321815A1 (en) | 2016-11-03 |
US9536176B2 (en) | 2017-01-03 |
US9665797B2 (en) | 2017-05-30 |
US20160283823A1 (en) | 2016-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9438606B1 (en) | Environmental-based location monitoring | |
US10410158B1 (en) | Systems and methods for evaluating cybersecurity risk | |
US11409992B2 (en) | Data slicing for machine learning performance testing and improvement | |
US20150286783A1 (en) | Peer group discovery for anomaly detection | |
US9589245B2 (en) | Insider threat prediction | |
EP3002686A1 (en) | Language identification | |
US9805192B1 (en) | Systems and methods for file classification | |
US20200257608A1 (en) | Anomaly detection in multiple correlated sensors | |
CN109154962A (en) | System and method for determining security risk profile | |
CN106650434B (en) | A kind of virtual machine anomaly detection method and system based on I/O sequence | |
TWI735475B (en) | Method, apparatus and computer readable storage medium for detecting program evasion of virtual machines or emulators | |
Geier | The differences between SSD and HDD technology regarding forensic investigations | |
US11366570B2 (en) | Recall probability based data storage and retrieval | |
CN103677806A (en) | Method and system for managing a system | |
US10264011B2 (en) | Persistent cross-site scripting vulnerability detection | |
US9207945B2 (en) | Multi-persona computing based on real time user recognition | |
US11822599B2 (en) | Visualization resonance for collaborative discourse | |
CN115793990B (en) | Memory health state determining method and device, electronic equipment and storage medium | |
JP2019053381A (en) | Image processing device, information processing device, method, and program | |
KR101643269B1 (en) | Digital assets analysis method of instrumentation and control system in nuclear power plant and apparatus thereof | |
US20190318223A1 (en) | Methods and Systems for Data Analysis by Text Embeddings | |
US20160004860A1 (en) | Hypervisor enforcement of cryptographic policy | |
US20170192485A1 (en) | Providing a power optimized design for a device | |
US9569644B2 (en) | Verifying motion data for accessing hardware elements | |
US20200250275A1 (en) | Geographic location specific models for information extraction and knowledge discovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BARTLEY, GERALD K.;BECKER, DARRYL J.;DOYLE, MATTHEW S.;AND OTHERS;SIGNING DATES FROM 20150305 TO 20150306;REEL/FRAME:037340/0841 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20200906 |