Patent Description:
Some shipping containers, such as those mentioned above, include systems for preserving perishable items. For example, some containers include a refrigeration circuit for providing air conditioning or refrigeration within the container. Depending on the transportation specifics, it may be necessary to adjust the operation of such a system at one or more times between when the container is first loaded and when it reaches its final destination. In many instances multiple containers are stacked on top of one another and multiple stacks are arranged very close to each other so that direct access to at least some of the containers is not practical or possible. Without direct access to a container, there is a need for an alternative way of adjusting or controlling operation of an in-container system, such as a refrigeration system.

One challenge associated with providing such control is maintaining security over access to the system and its controls to ensure proper conditions for the contents of the container. Another challenge is giving different authorized individuals appropriate access at various times and locations along the travel route of the container. There is a need for an efficient and secure way to observe and adjust the operation of such on-board or in-container systems.

<CIT> discloses a system and method for authentication seed distribution that is used in the field of computer based security systems.

<CIT> discloses multifactor authentication systems with improved security and flexibility.

<CIT> discloses a system and method for setting entry codes over a communications network for access to moveable enclosures (e.g. trucks, ships, etc.).

In a first aspect, the invention provides a controller associated with a container. The controller includes a processor and memory associated with the processor. The controller is configured to determine a derived key based on global positioning system information corresponding to a location of the controller. The controller is configured to determine an expected communication pass key based on the derived key. The controller is configured to determine whether a user device is authorized based on a received communication pass key from the user device that corresponds to the expected communication pass key. The controller is configured to allow the user device access to at least one functionality of the controller when the user device is authorized.

The global positioning system information may include a current time and a current location of the controller, and the derived key is based on the current time and the current location.

The controller may be configured to generate a communication session token that has an expiration time. The communication session token may be used by the user device for communicating with the controller. The derived key may be valid for a predetermined period and the expiration time may be before an end of the predetermined period.

The at least one functionality may include setting a target temperature for at least a portion of an interior of the container.

The controller may be configured to control a display to provide a visual indication of the derived key.

At least one of the controller or the container may have a serial number. The controller may be configured to determine whether the user device is authorized based on receiving the serial number of the at least one of the controller or the container from the user device.

The controller may be configured to determine whether the user device is authorized based on receiving a user certificate from the user device.

In a second aspect, the invention provides a method of managing communications between a controller associated with a container device. The method includes determining a derived key based on global positioning system information corresponding to a location of the controller, determining an expected communication pass key based on the derived key, determining whether the user device is authorized based on a received communication pass key from the user device corresponding to the expected communication pass key, and allowing the user device access to at least one functionality of the controller when the user device is authorized.

The global positioning system information may include a current time and a current location of the controller and the derived key may be based on the current time and the current location.

The method may include generating a communication session token that is used by the user device for communicating with the controller, the communication session token having an expiration time. The derived key may be valid for a predetermined period and the expiration time may be before an end of the predetermined period.

Optionally, the at least one functionality includes setting a target temperature for at least a portion of an interior of the container.

At least one of the controller or the container may have a serial number and the method may comprise determining whether the user device is authorized based on receiving the serial number of the at least one of the controller or the container from the user device.

The method may comprise determining whether the user device is authorized based on receiving a user certificate from the user device.

In a third aspect, the invention provides a system that includes, a plurality of containers, a plurality of controllers in accordance with the first aspect, each of the controllers being associated with a respective one of the containers and a plurality of refrigerant circuits, each of the refrigerant circuits being associated with a respective one of the containers, each of the refrigerant circuits being controllable by the controller on the respective container. A user device is configured for wireless communication with the plurality of controllers, respectively.

The plurality of controllers of the third aspect are each be in accordance with the controller of the first aspect, and may comprise an optional feature thereof as discussed above.

<FIG> illustrates a container <NUM> that is part of a system <NUM> for communicating with and selectively controlling a device associated with a container <NUM>. The illustrated example container <NUM> is an intermodal container that can be loaded and transferred among different carriers during a transportation cycle. Other types of containers may be used in the system <NUM>.

The example container <NUM> has an associated refrigerant circuit <NUM> that provides refrigeration or temperature control for at least a portion of the interior of the container <NUM>. The refrigerant circuit <NUM> operates in a generally known manner.

A controller <NUM> associated with the container <NUM> is configured to control operation of the refrigerant circuit <NUM>, such as by setting a target temperature for the space within the container <NUM> where temperature control is desired. The controller <NUM> controls a display <NUM> supported on the container <NUM>. In this example, the display <NUM> is visible from outside of the container <NUM>.

The controller <NUM> is configured to communicate with a user device <NUM> that allows for an authorized individual to access at least one functionality of the controller <NUM>. For example, the user device <NUM> may be used by an authorized individual to set a target temperature within the container <NUM> so that the controller <NUM> controls operation of the refrigerant circuit <NUM> to achieve that temperature within the container <NUM>. The user device <NUM> may also obtain information from the controller <NUM> regarding conditions within the container <NUM>. Depending on the type of container <NUM> and any controllable devices supported on the container <NUM>, the functionality of the controller <NUM> that is accessible or controllable through the user device <NUM> will vary. Those skilled in the art who have the benefit of this description will realize how to configure a controller <NUM> and user device <NUM> to provide appropriate control features to meet their particular needs.

The example controller <NUM> is configured to communicate with the user device <NUM> over a wireless link. Example implementations include close range wireless communications such as Wi-Fi, Bluetooth or Zigbee communications. In some examples, the controller <NUM> and user device <NUM> will communicate directly with each other. In other embodiments, such as the example shown in <FIG>, each of the controller <NUM> and user device <NUM> is configured to communicate through a wireless local area network <NUM>. Each of the user device <NUM> and controller <NUM> may communicate with an access point of the local area network <NUM> using known communication protocols.

One feature of the controller <NUM> is that it utilizes global positioning system (GPS) information for purposes of controlling communications with the user device <NUM> to maintain security over the functionality of the controller <NUM>, operation of the refrigerant circuit <NUM> and the condition of the contents within the container <NUM>. In the example of <FIG>, the controller <NUM> has the capability of communicating with a GPS system <NUM> to obtain information regarding the location of the controller <NUM>, which corresponds to a location of the container <NUM>. The controller <NUM> in this example also uses information regarding a current time from the GPS system <NUM>. For situations in which the controller <NUM> is unable to obtain a GPS signal directly, the wireless local area network includes a GPS receiver <NUM> that is situated in a location where access to GPS signaling is expected. The controller <NUM> may obtain GPS location and time information through the local area network in this embodiment.

Although not specifically illustrated, the system <NUM> includes a plurality of containers <NUM> each having its own associated controller <NUM>. The user device <NUM> may communicate with each of those controllers to individually control the respective refrigerant circuits <NUM> or other devices on board the respective containers <NUM>.

As shown in <FIG>, the controller <NUM> includes a processor <NUM> and memory <NUM> associated with the processor <NUM>. In the illustrated example, the processor <NUM> comprises at least one hardware device. The memory <NUM> may be part of the same hardware device or a separate component. The memory <NUM> includes software code or instructions that cause the processor <NUM> to perform the functions of the controller <NUM> mentioned in this description.

A high entropy security token (HEST) or derived key (DK) generator module <NUM> includes software, firmware or both that, when executed by the processor <NUM>, generates a derived key that is useful for secure communication with the user device <NUM>. The controller <NUM> also includes a security module <NUM> to maintain security over access to the functionality of the controller <NUM> and security over communications with the user device <NUM>, for example. A transceiver <NUM> allows the controller <NUM> to communicate over a wireless link, for example, with a local area network or the user device <NUM>. In this example, the controller <NUM> has a GPS module <NUM> that allows the controller <NUM> to receive GPS information, such as a current time and current location. In this example, the GPS module <NUM> includes a GPS receiver capable of directly receiving GPS signals from the GPS system <NUM>. In the event that the GPS receiver is incapable of directly receiving GPS signals, the controller <NUM> obtains GPS information through a local area network, including another GPS receiver <NUM>, such as that described above.

<FIG> is a flowchart diagram <NUM> summarizing an example approach to maintaining security over communications with the controller <NUM> and maintaining security over the operation or functionality of the controller <NUM>. In <FIG>, the functions or operations shown on the left side are performed by the controller <NUM> while those shown on the right side are performed by the user device <NUM>. In this example, an authorized individual uses the user device <NUM> to initiate an access attempt because the individual desires to obtain information from the controller <NUM> regarding the interior of the container <NUM> or otherwise desires to control some functionality of the controller <NUM>. At <NUM>, the controller <NUM> obtains GPS time and location information. In some embodiments, the controller <NUM> will obtain GPS time and location information on an ongoing basis. In other embodiments, the user's access attempt instigates a wakeup signal to the controller <NUM> at which time the controller <NUM> responds by obtaining the GPS time and location information at <NUM>.

At <NUM>, the controller <NUM> generates a derived key based on the GPS information. A known derivation algorithm is used in some embodiments. For example, the derived key generator module <NUM> includes an Argon2 algorithm. The generated derived key has a limited time during which it is valid. Generating the derived key based on GPS information provides enhanced security over the controller <NUM> and the conditions for any contents within the container <NUM>. Such a derived key is more secure than a password that remains constant over a prolonged period of time.

At <NUM>, the controller <NUM> provides the derived key to the user device <NUM>. This may occur through a direct communication with the user device <NUM> over a wireless link or through a wireless local area network that the controller <NUM> and user device <NUM> both can access. In the example of <FIG>, the controller <NUM> controls the display <NUM> to show the derived key. An authorized individual may see the derived key and enter it into the user device <NUM>.

The security module <NUM> determines an expected communication pass key based on the derived key at <NUM>. At <NUM>, the user device <NUM> obtains the derived key from the controller <NUM>. The user device <NUM> generates a communication pass key based on the derived key at <NUM>. For example, the user device <NUM> is provided with a software application that has appropriate derivation programming for generating a communication pass key based on the derived key. At <NUM>, the user device <NUM> sends the communication pass key to the controller <NUM>.

At <NUM>, the transceiver <NUM> of the controller <NUM> receives the communication pass key from the user device <NUM>. At <NUM>, the security module <NUM> verifies that the received communication pass key corresponds to the expected communication pass key that was determined at <NUM>. Once the verification of the communication pass key is complete, the security module <NUM> determines that the controller <NUM> can be accessed by the individual utilizing the user device <NUM>. In other words, the controller <NUM> determines whether an individual user using the user device <NUM> is authorized to gain access to the controller <NUM> for purposes of obtaining information from the controller <NUM> or accessing at least one functionality of the controller <NUM> for purposes of maintaining control over the environment within the container <NUM>.

In the example of <FIG>, the controller <NUM> generates an expiring session token at <NUM>. At <NUM>, the transceiver <NUM> communicates the expiring session token to the user device <NUM>. At <NUM>, the user device <NUM> utilizes the expiring session token to communicate with the controller <NUM>. In some embodiments, the session token has an expiration time that occurs before the derived key will expire. This allows an authorized user to communicate with the controller <NUM> on one container <NUM> and then use the same derived key for communicating with another controller <NUM> on another container <NUM> in the same location. Keeping the derived key active or authorized for a period of time longer than a typical expected communication session for any individual controller <NUM> allows an authorized individual to conveniently gain access to multiple controllers <NUM> associated with respective containers <NUM> in a particular location without having to obtain another derived key. In some embodiments, the derived key is valid for several hours.

In the illustrated example embodiment, the controller <NUM> controls the display <NUM> to provide a visual indication of the derived key that is visible from outside of the container <NUM>. This allows an authorized individual, for example, to observe the derived key and enter it into an appropriate application on the user device <NUM>. For situations in which multiple containers <NUM> are stacked on top of each other and close together, an authorized user only needs to observe a single display <NUM> at a particular location to obtain a derived key that is useful for communicating with all controllers <NUM> in that location. When the containers <NUM> are within a secured location, such as on board a cargo ship or within a storage facility, the visible derived key on the display <NUM> will only be available to individuals who gain access to such a secured location.

Utilizing GPS information for generating the derived key allows for utilizing time and location information for the token generation. This combination of information provides a more secure and more reliable token generation compared to an arrangement that would rely upon an internal clock, for example, of the controller <NUM>. Wherever a GPS signal is available, the type of secure communication described above becomes possible.

Additionally, with the derived key being based at least in part on location information, it is not possible for an individual in one location to obtain a derived key and then share that with another individual in a remote location or outside of a secured location, for example. The derived key based on location information is specific to a container <NUM> or set of containers <NUM> in a particular location, which enhances security over access to controllers that may be spread over wide geographic regions.

The disclosed example embodiment facilitates maintaining security and control over operation of a system or device, such as a refrigerant circuit <NUM> to ensure desired conditions inside of a container under a variety of circumstances. Even in situations where multiple containers are stacked on top of each other and very close together, an authorized individual may obtain a derived key from one controller <NUM> or display <NUM> at that location and use that derived key for communicating with multiple controllers on different containers at that location.

In some embodiments, the user device <NUM> includes a user certificate obtained when an authorized individual downloads or otherwise installs an appropriate application onto the device <NUM> that allows the user device <NUM> to be useful for communicating with one or more controllers <NUM>. There are a variety of known ways of obtaining or generating a user certificate indicating an authorized user device. In such embodiments, the controller <NUM> determines whether an appropriate user certificate has been received from a particular user device <NUM> that is attempting to gain access to or otherwise communicate with the controller <NUM>.

In some embodiments, each container <NUM> has a serial number and each controller <NUM> has a serial number. An authorized individual will be provided with information regarding such serial numbers. During an attempted communication session with the controller <NUM>, the user device <NUM> provides an indication of the controller serial number, the container serial number or both as part of the authentication process. Including this feature ensures that an individual not only has to obtain a valid derived key but has to have been pre-authorized for access to specific controllers or containers.

Claim 1:
A controller (<NUM>) associated with a container (<NUM>), the controller comprising a processor (<NUM>) and memory (<NUM>) associated with the processor, the controller being configured to:
determine (<NUM>) a derived key based on global positioning system information corresponding to a location of the controller;
determine (<NUM>) an expected communication pass key based on the derived key;
determine (<NUM>) whether a user device (<NUM>) is authorized based on a received communication pass key from the user device corresponding to the expected communication pass key; and
allow the user device access to at least one functionality of the controller when the user device is authorized.