Secure tokens for controlling access to resources in a resource distribution network - Patents.com
By generating and applying secure tokens to meters in resource distribution networks, the system addresses the challenges of secure and efficient payment mechanisms in AMI systems, enhancing accuracy, security, and flexibility.
Patent Information
- Application Number
- JP2022522936
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-10-18
- Filing Date
- 2020-10-14
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2040-10-14
AI Technical Summary
Current advanced metering infrastructure (AMI) systems face challenges in secure and efficient payment mechanisms, leading to potential errors and disconnections of customer devices due to network issues or payment timing problems.
The system generates and applies different types of secure tokens, such as payment-based tokens, time-based tokens, and global tokens, to meters in a resource distribution network, enabling secure and flexible control of resource access.
This approach enhances the accuracy and security of token applications, reduces errors in payment distribution, and provides flexibility to accommodate various situations, including emergency scenarios, without requiring meters to switch modes.
Smart Images

Figure 0007653008000002 
Figure 0007653008000003 
Figure 0007653008000004
Abstract
Description
[Technical field]
[0001] The present disclosure relates generally to controlling access to resources in a resource distribution network. More particularly, the present disclosure relates to generating and applying different types of device-level secure tokens to meters in a resource distribution network to control access to the resources. [Background technology]
[0002] In current Advanced Metering Infrastructures (AMI), there are limited options for applying payments to meters in a resource distribution network due to the complexity and potential security issues associated with the payment mechanisms. Existing payment mechanisms rely on third-party online payment services or the like that are separate from the metering network. Thus, the security of the payment mechanism depends on the security mechanisms implemented by the third party over which the utility or metering network has little control. Furthermore, because the payment mechanism is separate from the metering network, it is prone to error in that a payment may be applied to a different meter than the one intended.
[0003] Additionally, current AMIs generally do not provide a payment backup feature to account for situations where there are network infrastructure issues or the customer is unable to make a payment in time, in which the customer's device is disconnected from the resource supply, regardless of any special conditions the customer may be facing. Summary of the Invention
[0004] Aspects and examples are disclosed relating to apparatus and processes for generating and applying payment-based, time-based, or global tokens to individual meters in a metering system. For example, the system includes a head-end system and a meter installed at a geographic location and communicating with the head-end system via at least a mesh network. The head-end system is configured to receive a request to generate a time-based token for the meter. The request specifies a time period for the time-based token. The head-end system is further configured to generate the time-based token based on an identifier of the meter and the time period and transmit the time-based token to the meter. The meter is configured to receive the time-based token and verify the time-based token. Verifying the time-based token includes determining that a time-based token is generated for the meter based on information associated with the identifier of the meter. In response to determining that the time-based token is valid, the meter is further configured to connect a building premises associated with the meter to a resource distribution network for at least the time period specified in the time-based token.
[0005] In another example, a method includes receiving a time-based token by a meter. The meter is configured to control connection of a building premises associated with the meter to a resource distribution network. The time-based token is generated based on an identifier of the meter and a time period for which the building premises is connected to the resource distribution network. The method further includes validating the time-based token, including determining that the time-based token is generated for the meter based on information associated with the identifier of the meter. The method further includes connecting the building premises associated with the meter to the resource distribution network for at least the time period associated with the time-based token in response to determining that the time-based token is valid.
[0006] In a further embodiment, the method includes transmitting, by the head-end system, provisioning data to the meter over at least the mesh network. The provisioning data is configured to operate the meter in a mode to accept a time-based token. The meter is installed at a geographic location and configured to control connection of a building premises at the geographic location to a resource distribution network. The method further includes receiving, by the head-end system, a request to generate a time-based token for the meter having a time period. The method also includes generating, by the head-end system, the time-based token based on an identifier of the meter and the time period, and transmitting, by the head-end system, the time-based token over at least the mesh network to the meter. The time-based token is usable by the meter to connect or disconnect the building premises from the resource distribution network based on a time period associated with the time-based token.
[0007] These exemplary aspects and features are mentioned not to limit or define the presently described subject matter, but to provide examples to aid in understanding the concepts described herein. Other aspects, advantages, and features of the presently described subject matter will become apparent after consideration of the entire application. [Brief description of the drawings]
[0008] These and other features, aspects, and advantages of the present disclosure will become better understood from the following detailed description when taken in conjunction with the accompanying drawings.
[0009] [Figure 1] FIG. 1 is a block diagram illustrating an example operating environment for generating and applying secure tokens at meters in a resource distribution network, according to certain embodiments of the present disclosure. [Diagram 2] FIG. 2 illustrates an exemplary operating environment for generating and applying payment-based tokens at meters in a resource distribution network, according to certain embodiments of the present disclosure. [Diagram 3] FIG. 3 illustrates an example of a payment-based token generated by a head-end system and applied at meters in a resource distribution network, according to certain embodiments of the present disclosure. [Figure 4] FIG. 4 illustrates an example process for provisioning meters so that secure tokens can be accepted and applied at meters in a resource distribution network, according to certain embodiments of the present disclosure. [Diagram 5] FIG. 5 illustrates an example process for generating and applying payment-based tokens at meters in a resource distribution network, according to certain embodiments of the present disclosure. [Figure 6] FIG. 6 illustrates an exemplary operating environment for generating and applying time-based tokens at meters in a resource distribution network, in accordance with certain embodiments of the present disclosure. [Figure 7] FIG. 7 illustrates an example of a payment-based token generated by a head-end system and applied at meters in a resource distribution network, according to certain embodiments of the present disclosure. [Figure 8] FIG. 8 illustrates an example process for generating and applying payment-based tokens at meters in a resource distribution network, according to certain embodiments of the present disclosure. [Figure 9] FIG. 9 is an example of a process for verifying a secure token at a meter, according to some embodiments of the present disclosure. [Figure 10] FIG. 10 illustrates an exemplary operating environment for generating and applying global tokens at meters in a resource distribution network, in accordance with certain embodiments of the present disclosure. [Figure 11] FIG. 11 illustrates an example of a global token table in accordance with certain embodiments of the present disclosure. [Figure 12] FIG. 12 illustrates an example of a global token applicable at meters in a resource distribution network, according to some embodiments of the present disclosure. [Figure 13]FIG. 13 illustrates an example process for generating and applying a global token at a meter, according to certain embodiments of the present disclosure. [Figure 14] FIG. 14 illustrates an example process for receiving and processing a secure token at a meter, according to some embodiments of the present disclosure. [Figure 15] FIG. 15 is a block diagram illustrating one example of a meter suitable for implementing aspects of the techniques and technologies presented herein. [Figure 16] FIG. 16 is a block diagram illustrating an example of a head-end system suitable for implementing aspects of the techniques and technologies presented herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Systems and methods are provided for generating and applying secure tokens at meters in a resource distribution network. The meters are configured to measure resource consumption at their respective locations and are in communication with a head-end system via a mesh network. The head-end system is configured to generate various types of secure tokens. The secure tokens may include payment-based tokens, time-based tokens, or global tokens. A payment-based token is generated in response to a payment made to a particular meter and has a credit value corresponding to the payment. A payment-based token may be applied at a meter to update a balance associated with the meter that determines whether a connection to the resource supply should be maintained or disconnected. A time-based token is generated in response to a request made to a particular meter and has a time period associated therewith. A time-based token may be applied to a meter to extend a connection to the resource supply by a time period specified in the time-based token. A global token is generated for a group of meters, rather than a particular meter, and has a time period associated therewith. A global token may also be applied at each meter in a group of meters to extend a connection to the resource supply by a time period specified in the global token.
[0011] In some embodiments, the head-end system is configured to generate a payment-based token in response to receiving a request to generate a payment-based token according to a payment made to a particular meter. The payment-based token has a credit value corresponding to the payment. The credit value is a value taken from a range spanned by a negative credit value limit and a positive credit value limit. The head-end system generates the payment-based token based on an identifier of the particular meter, such as a meter serial number, such that the generated payment-based token is unique to the meter. The payment-based token also includes a credit value. The head-end system is further configured to transmit the payment-based token to the particular meter over the mesh network. After receiving the payment-based token, the meter validates the payment-based token by checking the integrity of the payment-based token, by verifying that the token is unique to the meter, and by performing other operations. If the payment-based token is valid, the meter is configured to determine a balance associated with the meter based on a credit value specified in the payment-based token, and to connect or disconnect a resource supply at the location of the meter based on the balance associated with the meter.
[0012] In another embodiment, the head-end system is further configured to generate a time-based token in response to receiving a request to generate a time-based token for a particular meter. The time-based token has a time period associated with it, which may be requested by a user or selected by the head-end system based on some rule. The head-end system generates the time-based token based on an identifier for the particular meter, such as a meter serial number, so that the generated time-based token is unique to the meter and cannot be applied to other meters. The head-end system can transmit the time-based token to the particular meter via the network 150 and the mesh network. After receiving the time-based token, the meter validates the time-based token in a manner similar to that of validating a payment-based token, such as checking the integrity of the time-based token and verifying that the token is unique to the meter. If the time-based token is valid, the meter is configured to determine a time period associated with the meter and connect the resource supply at the meter's location for at least the time period specified in the time-based token.
[0013] In a further embodiment, the head-end system is also configured to generate a global token that is applicable to multiple meters associated with a geographic region and managed by the head-end system. For example, the head-end system can generate the global token in response to a request by a utility company under special or emergency circumstances, such as extreme weather conditions that cause the mesh network and head-end system to be unavailable. In one example, the global token has a time period associated with it. The global token can be distributed to users through a broadcast channel other than the mesh network, such as a radio network, a television network, or other emergency communication mechanism, such as text messaging. Meter users can manually enter the global token into their respective meters. After receiving the global token, the meter can determine the time period specified by the global token and connect the resource supply at the meter's location for the determined time period.
[0014] The techniques described in this disclosure increase the accuracy and security of tokens applied in resource distribution networks. The payment-based tokens generated here are device-specific and applied only to the meters to which they are assigned. This reduces the chances of applying payments to the wrong meter and also renders tokens intercepted by an attacker meaningless. Furthermore, by configuring the head-end system and meters to generate and process multiple types of secure tokens, the flexibility of the resource distribution network to respond to different situations, including emergency situations, is greatly improved. As a result, meters in the distribution network do not need to switch modes for different situations, thereby reducing resource consumption, such as power, memory or computing resources, in the meters.
[0015] FIG. 1 illustrates an exemplary operating environment 100 for generating and applying secure tokens in meters in a resource distribution network. The environment 100 includes a mesh network 140 associated with the resource distribution network for distributing measurement data obtained by meters in the resource distribution network. The mesh network 140 includes a plurality of meters 112A-112H (sometimes referred to herein individually as meters 112 and sometimes collectively as meters 112) deployed at various geographic locations. The meters 112 may be any type of meter in a utility network, such as electric meters, gas meters, water meters, steam meters, etc. The meters 112 may be implemented to measure various operational characteristics of the resource distribution network, such as characteristics of resource consumption. For example, in a power distribution network, the meters 112 may monitor and measure characteristics related to power usage in the network. Exemplary characteristics related to power usage in the resource distribution network include average or total power consumption, power surges, power outages, and load changes.
[0016] The meters 112 transmit the collected data to root nodes 114A and 114B (sometimes referred to herein individually as root nodes 114 and sometimes collectively as root nodes 114) via mesh network 140. The root nodes 114 of network 140 may be configured to communicate with the meters 112 to perform operations such as managing the meters 112, collecting data from the meters 112, and forwarding the data to the head-end system 104. The root nodes 114 may also be configured to function as nodes for measuring and processing data themselves. The root nodes 114 may be personal area network (PAN) coordinators, gateways, or any other devices capable of communicating with the head-end system 104.
[0017] The root node 114 ultimately transmits the generated and collected meter data to the head-end system 104 over another network 150, such as the Internet, an intranet, or any other data communication network. The head-end system 104 may act as a central processing system that receives the stream of data or messages from the root node 114. The head-end system 104 may process or analyze the collected data. Based on the processed data, the head-end system 104 further communicates with a utility system 102 associated with the power company for various purposes, such as billing, performance analysis, or troubleshooting. Although FIG. 1 illustrates the head-end system 104 and the utility system 102 as separate systems, in some embodiments, they may be implemented in one system.
[0018] In some examples, the meter 112 may also be configured to control the connection of a building premises 132 at its geographic location or otherwise associated with the meter 112 to a resource supply 130 provided by a resource distribution network. For example, in an electrical power distribution network, the meter 112 may be configured to control the status of a switch 134 to connect or disconnect the resource network's electrical power supply from the building premises 132. In some implementations, the meter 112 controls the connection of the building premises 132 to the resource supply 130 (i.e., the resource distribution network) based on the mode of the meter 112.
[0019] When the meter 112 is in credit mode, the meter 112 continuously maintains a connection to the resource supply 130 of the building premises 132 and measures the resource consumption in the building premises 132. The meter 112 periodically transmits the measured resource consumption together with other data to the head-end system 104, which further forwards the data to the utility system 102 and generates a bill for the user 120. When the meter 112 is in prepay mode, the meter 112 controls the connection of the building premises 132 to the resource supply 130 based on a credit balance associated with the meter 112 or a connection time duration specified for the meter 112. The meter 112 maintains a connection between the building premises 132 and the resource supply 130 as long as the credit balance associated with the meter 112 is positive or exceeds a threshold balance value, or as long as the connection time duration specified for the meter 112 is non-zero or exceeds a threshold duration value. If the balance associated with the meter 112 becomes negative, falls below a threshold balance value, or the connection time period becomes zero, the meter 112 will control the switch 134 to disconnect the building premises 132 from the resource supply 130. The balance or connection time period associated with the meter 112 may be adjusted by applying a secure token to the meter 112. Additional details regarding the operation of the meter 112 in prepaid mode are provided below with respect to Figures 2-12.
[0020] In further embodiments, the meter 112 may also be coupled to a handheld device 106 configured to display various information and characteristics related to the resource associated with the meter 112. In the example of an electric power distribution network, the handheld device 106 may be configured to display the power consumption in the building premises 132, the status of the power connection (e.g., connected or disconnected), the mode of the meter (e.g., prepaid mode or postpaid / credit mode), the balance associated with the meter if the meter is in prepaid mode, etc. The handheld device 106 is further configured to accept user input from a user 120 and transmit the user input to the meter 112. As described below with respect to Figures 2-12, the user input may include a secure token.
[0021] The handheld device 106 may be connected to the meter 112 in any wired or wireless manner. For example, the handheld device 106 may be connected to the meter 112 via a home area network (HAN). Non-limiting examples of suitable networking protocols for implementing a HAN include ZigBee, Bluetooth, Wi-Fi, etc. Non-limiting examples of HAN include a HomePlug network implemented via power line communication, a Multimedia over Coax Alliance ("MoCA") network providing network connectivity between appliances and networking devices implemented via coaxial cable, a HomePNA Alliance network, etc.
[0022] 1 depicts a particular network topology (e.g., a DODAG tree), it should be understood that other network topologies are possible (e.g., ring topology, mesh topology, star topology, etc.). Additionally, while the following description focuses on aspects of one meter 112, the techniques described herein can be applied by any meter in a mesh network, including meter 112 and root node 114, so long as the meter is capable of controlling access to a power source.
[0023] 2 illustrates an example operating environment 200 for generating and applying payment-based tokens at meters in a resource distribution network, in accordance with certain embodiments of the present disclosure. The environment 200 includes a utility system 102, a head-end system 104, and a meter 112 as described above with respect to FIGURE 1. The environment 200 further includes a payment processing system 206, a pre-pay vending machine 208, or a service system 210.
[0024] A prepay vending machine 208 is an automated machine that allows a user 120 to make a payment 212 towards a meter 112. Multiple prepay vending machines 208 may be deployed in a geographic region where a resource distribution network is deployed so that users 120 can make payments towards meters at their respective locations. A service system 210 includes a computing system, hosted by, for example, a utility company or a third party, that allows users 120 to make payments 212. For example, the service system 210 may be configured to provide a website or telephone service through which users 120 can make payments 212.
[0025] The payment processing system 206 is configured to receive the payment 212, verify the payment 212, and notify the head end system 104 or the utility system 102 regarding the payment 212. The payment processing system 206 may be associated with a financial institution, such as a bank or credit union, to process or verify the payment 212. Alternatively, or in addition, the payment processing system 206 may be associated with the head end system 104 or the utility system 102 and further communicate with the financial institution to process the payment 212. The payment 212 may be made using cash, check, credit card, debit card, etc.
[0026] In order for the meters 112 in the resource distribution network to accept and process secure tokens, including payment-based tokens, time-based tokens, and global tokens, the head-end system 104 is configured to first provision the meters 112 to switch their mode to a pre-paid mode. In some embodiments, the provisioning is performed by the head-end system 104 sending provisioning data 202 to the meters 112 to be switched to a pre-paid mode. The provisioning data 202 sent to the meters 112 may include a private key used by the meter 112 to validate a secure token received at the meter 112. The provisioning data 202 may further include other parameters used by the meter 112 to determine whether the secure token is valid. For example, the provisioning data 202 may include token acceptance parameters to determine an acceptable window for the secure token. The acceptable window defines a range of acceptable secure token serial numbers. If the serial number of the received secure token is within this range, the secure token may be accepted by the meter 112, but otherwise, the meter 112 will reject the secure token. Additional details regarding validating the secure token are provided below with respect to FIG. 9. As described below with respect to FIGS. 10-12, the provisioning data 202 may also include data used by the meter 112 to process global tokens, such as a global token table that lists the allowable global tokens.
[0027] After receiving the provisioning data 202, the meter 112 switches its mode to pre-paid mode and locally stores the provisioning data 202. In some implementations, the meter 112 is also configured to send a provisioning response to the head-end system 104 to inform the head-end system 104 that the meter 112 has successfully switched to pre-paid mode and is functioning properly under that mode. In another embodiment, the meter 112 is set to pre-paid mode at installation. Thereafter, the meter 112 receives the provisioning data 202 from the head-end system 104 during initial communication with the head-end system 104.
[0028] It should be noted that switching the mode of a meter 112 to a prepaid mode may be requested by the utility company, at the request of a user of the meter 112, or based on its own decision. The utility company may include a request to switch the mode of a meter 112 in a token instruction 214 and send the request to the head-end system 104 via the utility system 102. Based on the request, the head-end system 104 determines a list of meters 112 to be switched and defines each of these meters as described above. In some embodiments, for security reasons, the private key included in the provisioning data 202 is different from the private keys for other meters 112 and is also different from the key used for communication between the meter 112 and the head-end system 104. Other parameters included in the provisioning data 202, such as token acceptance parameters, may be the same or different for different meters 112.
[0029] Once the meter 112 is provisioned and switched to pre-pay mode, the meter 112 can accept and process secure tokens. In the example shown in FIG. 2, the meter 112 can accept and process payment-based tokens. Other types of secure tokens, such as time-based and global tokens, are described below with respect to FIGS. 6-12. In the example shown in FIG. 2, the user 120 can make a payment 212 to the meter 112 using a pre-pay vending machine 208 or a service system 210 as described above with respect to FIG. 1, or through other mechanisms. Upon receiving the payment 212, the payment processing system 206 verifies that the payment 212 is a valid payment. For example, the payment processing system 206 may verify that the bank or credit card account used for the payment is an existing account and that the user 120 is an authorized user to charge the payment to the account. The payment processing system 206 notifies the user 120 if the verification process fails.
[0030] If the payment processing system 206 determines that the payment 212 is valid, the payment processing system 206 generates and sends a request 216 for a payment-based token to the head-end system 104. The request 216 for a payment-based token may include information such as an identifier of the meter for which the payment-based token is to be generated, the amount of the payment 212 (also referred to herein as the "credit value" of the payment 212), whether the payment is positive or negative, and other information. A positive payment occurs when the payment processing system 206 determines that a positive credit value is to be added to an account associated with the meter 112, e.g., when a user 120 adds $X to an account associated with the meter 112. A negative payment occurs when the payment processing system 206 determines that a credit value should be deducted from an account associated with the meter 112. Negative payments may be utilized, for example, to correct a previously made positive payment in error, to undo a temporary adjustment to a credit value, to provide a refund to a user, etc.
[0031] Based on the payment-based token request 216, the head-end system 104 generates a payment-based token 204. The payment-based token 204 is generated based on information such as the type of token, the credit value associated with the token, the token's serial number, the meter from which the token was generated, etc. These types of information may be explicitly included in one or more fields of the payment-based token 204 or may be transformed before being included in the payment-based token 204. Figure 3 illustrates an example of a payment-based token 204 generated by the head-end system 104 in accordance with certain embodiments of the present disclosure.
[0032] In the example shown in FIG. 3, the payment-based token 204 includes 66 bits corresponding to 20 decimal digits. The first two bits of the payment-based token 204 are used to represent a token type 302. In some embodiments, if the value of the token type 302 is 0, the token is a payment-based token. Other values of the token type 302 can be used to indicate other types of secure tokens. The next two bits of the payment-based token 204 shown in FIG. 3 indicate the token subtype 304, and the next 20 bits indicate a credit value 306 that ranges from 0 to 10,000 US dollars or other currency.
[0033] In some embodiments, if the subtype 304 has a value of 0, the token 204 represents a positive adjustment in credit value, and if the subtype 304 has a value of 1, the token 204 represents a negative adjustment in credit value. In other words, if the subtype 304 indicates a positive adjustment, the amount represented by the credit value 306 is to be added to an account associated with the meter 112. If the subtype 304 indicates a negative adjustment, the amount represented by the credit value 306 is to be subtracted from an account associated with the meter 112.
[0034] The payment-based token 204 shown in FIG. 3 further includes a field for a transaction ID 308 that includes 10 bits. In some embodiments, the transaction ID 308 represents the least significant 10 bits of a complete token reference number (TRN). The TRN is a binary number that uniquely represents a consecutive token number for the meter 112. After an initial starting value, each token generated for the meter 112 will have a monotonically increasing sequential TRN. In some embodiments, the TRN is a 32-bit number between 0 and 4294967295, and the transaction ID 308 represents the least significant 10 bits of this 32-bit number.
[0035] The payment-based token 204 shown in FIG. 3 also includes an integrity field 310 that is uniquely calculated by using a cryptographic tool, such as a hash-based message authentication code (HMAC). The integrity field 310 can be generated by applying a cryptographic tool to encrypt data such as the fields 302-308 of the payment-based token 204, the serial number of the meter 112, the network ID of the meter 112, and information that is unique to the token within the resource distribution network, such as the TRN of the token. In some embodiments, the head-end system 104 generates the HMAC using a hash function, such as the Secure Hash Algorithm SHA-256, based on a private key included in the provisioning data 202. In this manner, after receiving the payment-based token 204, the meter 112 may generate an HMAC using the same private key and compare the generated HMAC to the one included in the integrity field 310 of the received payment-based token 204 to validate the token 204. It should be understood that cryptographic tools other than HMAC and SHA-256 can also be used to generate the integrity field 310.
[0036] 2 , after the head-end system 104 generates the payment-based token 204, the head-end system 104 may send the payment-based token 204 back to a payment processing system 206 or another system, which may forward the payment-based token 204 to a pre-paid vending machine 208 or a service system 210 so that the user 120 can obtain a copy of the payment-based token 204. Alternatively, the payment-based token 204 may be sent directly to the pre-paid vending machine 208 or the service system 210 for providing a copy of the payment-based token 204 to the user 120. In some embodiments, the payment-based token 204 may be included in a confirmation of payment 212 sent to the user 120, such as a receipt of payment 212.
[0037] In some implementations, when submitting a payment 212 at the prepay vending machine 208 or service system 210, the user 120 is also asked whether he or she would like the generated payment-based token 204 to be automatically applied to the meter 112. The decision made by the user 120 in this regard can be included in the request 216 for a payment-based token so that the head-end system 104 can act accordingly. If the user 120 agrees to the automatic application of the payment-based token 204 to the meter 112, the head-end system 104 transmits the payment-based token 204 to the meter 112 via the mesh network 140. If the user 120 does not agree to the automatic application of the payment-based token 204, the head-end system 104 does not send the payment-based token 204 to the meter 112. In some embodiments, the user 120 can choose to allow the head-end system 104 to automatically apply the payment-based token 204 to the meter 112, but with some delay. In these examples, the head-end system 104 waits a specified amount of time period and then transmits a payment-based token 204 to the meter 112 via the mesh network 140 .
[0038] Instead of relying on the head-end system 104 to apply the payment-based token 204, the user 120 may enter the payment-based token 204 using the handheld device 106 associated with the meter 112. In other words, the user 120 may decline the automatic application of the payment-based token 204 by the head-end system 104 and enter the payment-based token 204 received after making a payment 212 via the handheld device 106. In these examples, the handheld device 106 is configured to present a user interface through which the user 120 can enter the payment-based token 204 and transmit the payment-based token 204 to the meter 112.
[0039] Upon receiving the payment-based token 204 from the handheld device 106 or from the head-end system 104, the meter 112 begins validating the payment-based token 204. The meter 112 may parse the payment-based token 204 to determine each of the fields included in the payment-based token 204. The meter 112 may further use a private key included in the provisioning data 202 to generate an authentication code, such as an HMAC, based on the same information used by the head-end system 104 to generate the integrity field 310. This information may include, for example, the meter serial number, the meter network ID, the TRN, and other fields of the payment-based token 204, namely, the token type 302, the subtype 304, the credit value 306, and the transaction ID 308. If the generated authentication code matches the integrity field 310 of the payment-based token 204, the meter 112 may determine that the payment-based token 204 was generated by the head-end system 104 and that the contents of the payment-based token 204 have not been altered.
[0040] By including an identifier for the meter 112, such as the serial number and network ID of the meter 112, in the input for generating the HMAC of the integrity field 310, the generated payment-based token 204 is tied to the intended meter 112. As a result, if the payment-based token 204 is received by a different meter, the meter can determine that the payment-based token 204 is not intended for it by determining that its calculated HMAC does not match the integrity field 310, and can then discard the payment-based token 204. In this manner, it can be ensured that the payment-based token 204 is applied at the correct meter 112.
[0041] In a further embodiment, the meter 112 is also configured to determine whether the transaction ID of the received payment-based token 204 is within an acceptable window. As briefly described above, the acceptable window may be determined based on token acceptance parameters included in the provisioning data 202. Further details on determining the acceptable window and determining whether the payment-based token 204 is within the acceptable window are provided below with respect to FIG.
[0042] In some embodiments, the meter 112 may also be configured to determine whether the received payment-based token 204 is a duplicate token that was previously received and processed. In these examples, the meter 112 is configured to store token identifiers (IDs) 220, such as tokens or TRNs, that the meter 112 has previously received and processed. If the current payment-based token 204 matches any of the past token IDs 220, the meter 112 may determine that the received payment-based token 204 is a duplicate and is not a valid token.
[0043] If the meter 112 determines that the received payment-based token 204 is a valid token, the meter 112 applies a credit value 306 to the balance of an account associated with the meter 112 according to a subtype 304 specified in the payment-based token 204. For example, if the subtype 304 specifies that the token is for a negative adjustment, the meter 112 decreases the account balance by the credit value 306, and if the subtype 304 specifies that the token is for a positive adjustment, the meter 112 increases the account balance by the credit value 306. Based on the adjusted account balance, the meter 112 can connect or disconnect the building premises 132 from the resource supply 130. In other words, if, after the adjustment, the balance associated with the meter 112 changes from negative to positive (or from below the threshold balance to above the threshold balance), the meter 112 will connect the resource supply 130 to the building premises 132, for example, by closing the switch 134. If the balance associated with the meter 112 changes from positive to negative (or from above the threshold balance to below the threshold balance), the meter 112 will disconnect the resource supply 130 from the building premises 132, for example, by opening the switch 134. If, after the adjustment, the balance associated with the meter 112 is positive or above the threshold balance (or negative or below the threshold balance), the meter 112 will maintain the connection (or disconnection) between the building premises 132 and the resource supply 130 (i.e., the resource distribution network).
[0044] Whenever the building premises 132 is connected to the resource supply 130, the meter 112 measures the resource consumption in the building premises 132 and updates the balance associated with the meter 112 based on the resource consumption. For example, the meter 112 can convert the resource consumption amount into a monetary value based on the rate at the time the resource is consumed. The meter 112 then reduces the balance associated with the meter by the converted monetary amount. The meter 112 will disconnect the building premises 132 from the resource supply 130 when the balance becomes negative or below the threshold balance and will reconnect when a new token is received that results in a positive balance or equal to or greater than the threshold balance.
[0045] Depending on where the meter 112 receives the payment-based token 204, the meter 112 will generate and send a token application response 218 or an event message 222 to the head-end system 104. If the payment-based token 204 is received from the head-end system 104, the meter 112 generates a token application response 218 to report the status of the payment-based token 204 received at the meter 112. In some implementations, the token application response 218 includes the status of the payment-based token 204. The status of the payment-based token 204 can include, for example, "token successfully applied at meter," "rejected because token is outside of acceptable window," "rejected because token is duplicate," "rejected because integrity check failed," etc.
[0046] The token application response 218 may further include other information such as the credit value applied to the meter 112, the balance associated with the meter 112 after the payment-based token 204 has been applied, the status of the meter switch 134 (e.g., open / disconnected or closed / connected). The token application response 218 may also include the payment-based token 204 or a serial number of the payment-based token 204, such as a TRN or transaction ID. The token application response 218 may be sent along with other data sent from the meter 112 to the head-end system 104, such as collected meter data, or may be sent separately.
[0047] If the payment-based token 204 is received via the handheld device 106, the meter 112 generates and sends an event message 222 including the payment-based token 204 to the head-end system 104 to report the payment-based token 204. The event message 222 may also include other data, such as the status of the payment-based token 204, the status of the meter switch 134, or any other data included in the token application response 218. Like the token application response 218, the event message 222 may be sent to the head-end system 104 along with other data, such as collected meter data, or may be sent separately.
[0048] Upon receiving the event message 222, the head-end system 104 analyzes the payment-based token 204 to determine whether the payment-based token 204 included in the event message 222 was generated by the head-end system 104, such as by searching with past tokens generated by the head-end system 104. The head-end system 104 is then configured to transmit the analysis result to the meter 112. If the analysis result indicates that the payment-based token 204 was not generated by the head-end system 104, the meter 112 can readjust a balance associated with the meter 112 to remove a credit value for the payment-based token 204. The meter 112 can also display a warning message on the handheld device 106 to indicate the analysis result and the action taken by the meter 112 based on the analysis result.
[0049] 4 illustrates an example of a process for switching a meter 112 to a prepaid mode and for provisioning a meter 112 to apply a secure token in a resource distribution network, according to an embodiment of the present disclosure. In particular, FIG. 4 includes a process 400A illustrating an aspect of a head-end system 104 and a process 400B illustrating an aspect of a meter 112. Processes 400A and 400B are described together below.
[0050] At block 402, the process 400A includes the head-end system 104 generating provisioning data 202. As described above with respect to FIG. 2, the provisioning data 202 may include a private key used by the meter 112 to verify a secure token received at the meter 112. The provisioning data 202 may further include other parameters used by the meter 112 to determine the validity of a received secure token. For example, the provisioning data 202 may include token acceptance parameters to determine an acceptable window for the secure token. The provisioning data 202 may further include a global token table that lists acceptable global tokens. In some examples, the provisioning data 202 may also include an explicit instruction to the meter 112 to switch to a prepay mode. At block 404, the head-end system 104 transmits the provisioning data 202 to the meter 112 via the mesh network 140.
[0051] At block 412, the process 400B includes the meter 112 receiving the provisioning data 202. At block 414, the meter 112 switches to the prepay mode, for example, by setting its mode to the prepay mode and loading firmware corresponding to the prepay mode for execution. At block 416, the meter 112 stores the provisioning data 202 in a memory or other storage device accessible by the meter 112. At block 418, the meter 112 sends a provisioning response to the head-end system 104 to acknowledge receipt of the provisioning data 202 and the mode switch of the meter 112. At block 406, the head-end system 104 receives the provisioning response and the provisioning process ends.
[0052] In the above example, provisioning is described as being performed when the meter 112 switches from credit mode to prepaid mode, but it should be understood that provisioning may also be performed after the meter 112 switches to prepaid mode. For example, the provisioning process may be performed whenever the head-end system 104 decides to update the secret key for validating the secure token, the token acceptance parameters, or the global token table. In those cases, block 414 may be skipped.
[0053] FIG 5 illustrates an example process for generating and applying a payment-based token 204 at a meter 112 in a resource distribution network, in accordance with certain embodiments of the present disclosure. In particular, FIG 5 includes processes 500A, 500B, and 500C. Process 500A illustrates an aspect of a head-end system 104. Process 500B illustrates an aspect of a meter 112. Process 500C illustrates an aspect of a handheld device 106. Processes 500A, 500B, and 500C are described together below.
[0054] The process 500A begins at block 502 where the head-end system 104 receives a request 216 for a payment-based token for the meter 112. As described above with respect to FIG. 2, the request 216 for a payment-based token may be generated by the payment processing system 206 in response to a payment 212 made by the user 120 for the meter 112. The request 216 for a payment-based token may also be generated by the payment processing system 206 to adjust a balance associated with the meter 112, for example, to correct an error, issue a refund, reverse a temporary adjustment, etc. As such, the requested payment-based token 204 may be a positive adjustment or a negative adjustment.
[0055] At block 504, the process 500A includes generating a payment-based token 204 for the meter 112. To make the payment-based token 204 unique to the meter 112, the payment-based token 204 is generated based on an identifier for the meter 112, such as a serial number for the meter 112, a network ID for the meter 112, or a combination thereof. Additionally, the generated payment-based token 204 also includes or is based on a serial number that is unique to the payment-based token 204 within the mesh network 140. The payment-based token 204 also indicates a credit value associated with the token and a type of adjustment, such as a negative adjustment or a positive adjustment. In one example, the payment-based token 204 is generated according to the format shown in FIG. 3 and includes a token type, a subtype, a credit value, a token transaction ID, and an integrity field. In some implementations, the integrity field is generated using a secret key to generate an HMAC based on one or more fields 302-308 of the payment-based token 204, an identifier for the meter 112, such as a serial number and network ID, and the TRN of the payment-based token 204.
[0056] At block 506, the process 500A includes responding to the request 216 for the payment-based token with the generated payment-based token 204. For example, the head-end system 104 sends the payment-based token 204 to the entity that requested the payment-based token 204, such as a payment processing system 206, so that the payment-based token 204 can be forwarded to the user 120. In another example, the head-end system 104 transmits the payment-based token 204 directly to a system where the user 120 made a payment, such as a pre-pay vending machine 208 or a service system 210.
[0057] If the user 120 authorized the head-end system 104 to automatically apply the generated payment-based token 204 to the meter 112, block 506 further includes applying the payment-based token 204 by sending the payment-based token 204 to the meter 112. The application of the payment-based token 204 to the meter 112 may be performed immediately or with a delay, depending on a selection made by the user 120 in providing authorization to the head-end system 104 to apply the payment-based token 204.
[0058] If the user 120 does not authorize the head-end system 104 to apply the payment-based token 204 to the meter 112, the user 120 can manually enter the payment-based token 204 using the handheld device 106. At block 530, the process 500C includes receiving the payment-based token 204 at the handheld device 106 via user input. At block 532, the process 500C includes transmitting the received payment-based token 204 to the meter 112, for example, over the HAN.
[0059] At block 512, the process 500B includes the meter 112 receiving a payment-based token 204 from the head-end system 104 or from the handheld device 106. At block 514, the process 500B includes validating the payment-based token 204 to determine whether the received payment-based token 204 is a valid token. The validation process may include, for example, determining the integrity of the payment-based token 204, determining that the payment-based token 204 was generated for the meter 112, determining that the token is within an acceptable window, determining that the token is not a duplicate token, etc. Additional details regarding validating the payment-based token 204 are provided below with respect to FIG.
[0060] At block 516, the process 500B includes determining whether the payment-based token 204 is a valid token. If not, the process 500B includes rejecting the payment-based token 204 at block 520. If the payment-based token 204 is a valid token, the process 500B includes updating a balance associated with the meter 112 based on the payment-based token 204 at block 518, and connecting or disconnecting (or keeping connected or disconnected) a resource supply based on the balance. If the payment-based token 204 indicates a negative adjustment, the meter 112 decreases the balance of the meter 112 by a credit value specified in the payment-based token 204. If the payment-based token 204 indicates a positive adjustment, the meter 112 increases the balance of the meter 112 by the credit value specified in the payment-based token 204. If the updated balance is positive (or above the threshold balance), the meter 112 connects or maintains the connection between the building premises 132 and the resource supply 130. If the updated balance is negative (or below the threshold balance), the meter 112 disconnects or maintains the connection between the building premises 132 and the resource supply 130.
[0061] At block 522, the process 500B includes sending a token application response 218, as described above with respect to FIGURE 2, if the payment-based token 204 was received from the head-end system 104. In some implementations, the token application response 218 includes information such as the status of the payment-based token 204 (e.g., accepted or rejected), the credit value applied to the meter 112, the balance associated with the meter 112 after the payment-based token 204 was applied, the status of the meter switch 134 (e.g., open / disconnected or closed / connected), or any combination thereof. The token application response 218 may also include the payment-based token 204 or a serial number of the payment-based token 204, such as a TRN or a transaction ID.
[0062] When a payment-based token 204 is received from the handheld device 106, the meter 112 generates and sends an event message 222 to the head-end system 104 to inform the head-end system 104 about the received payment-based token 204 and to request the head-end system 104 to validate the payment-based token 204. The event message 222 may include similar content to the token application response 218, such as the status of the payment-based token 204 (e.g., accepted or rejected), the credit value applied to the meter 112, the balance associated with the meter 112 after application of the payment-based token 204, the status of the meter switch 134 (e.g., open / disconnected or closed / connected), etc. The event message 222 also includes an indication of the entire payment-based token 204 and a request for the head-end system 104 to validate the authenticity of the payment-based token 204. As discussed above with respect to FIG. 2, the token apply response 218 or event message 222 may be sent along with the meter data collected at the meter 112 or may be sent separately to the head-end system 104 .
[0063] The head-end system 104 receives the token application response 218 or the event message 222 in block 508 and processes the received message accordingly. For example, if the head-end system 104 receives the event message 222, the head-end system 104 validates the payment-based token 204 included in the event message 222 to determine whether the payment-based token 204 was indeed generated by the head-end system 104. The head-end system 104 notifies the meter 112 of the validation result, for example, by sending a notification to the meter 112. The meter 112 can take action according to the validation result, such as canceling the payment-based token 204 applied at the meter 112 if the payment-based token 204 was not generated by the head-end system 104.
[0064] If the payment-based token 204 was received from the handheld device 106, the process 500B further includes the meter 112 sending a confirmation message to the handheld device 106 at block 524. The confirmation message may include, for example, a status of the payment-based token 204 (e.g., accepted or rejected), a credit value applied to the meter 112, a balance associated with the meter 112 after the payment-based token 204 has been applied, a status of the meter switch 134 (e.g., open / disconnected or closed / connected), etc. The handheld device 106 receives the confirmation message at block 534 and presents it to the user 120 at a user interface.
[0065] In the pre-paid mode, the meter 112 is generally configured to disconnect the building premises 132 from the resource supply 130 when the balance associated with the meter 112 is below zero or below a threshold balance value. A user 120 of the building premises 132 must make a timely payment and have a payment-based token applied at the meter 112 in order to not be disconnected from the resource supply 130. In some scenarios, due to the time and location of the user 120, it is impossible or inconvenient for the user 120 to make a payment. In those scenarios, the user 120 can request a time-based token to extend the connection with the resource supply 130 for a period of time and make a payment at a later time.
[0066] 6 illustrates an example operating environment 600 for generating and applying time-based tokens at meters in a resource distribution network, according to certain embodiments of the disclosure. The environment 600 includes a utility system 102, a head-end system 104, a meter 112, and a service system 210, as described above with respect to FIGS. 1 and 2. As previously discussed, the service system 210 includes a computing system hosted, for example, by a utility company or a third party, to enable a user 120 to make a payment 212. Additionally or alternatively, the service system 210 may be configured to enable a user 120 to request a time-based token. For example, the service system 210 may provide a website or phone service through which a user 120 can request a time-based token.
[0067] Upon receiving the request from the user 120, the service system 210 may generate and send a request 616 for a time-based token to the head-end system 104. The request 616 for a time-based token may include data such as an identifier for the meter 112 for which the time-based token is to be generated, a time period associated with the time-based token, a start date for the period, etc. In other embodiments, the payment processing system 206 may communicate with the utility system 102. The utility system 102 may then communicate with the head-end system 104 to request that a time-based token be generated, such as by sending the request 616 for a time-based token to the head-end system 104.
[0068] Based on the request 616 for a time-based token, the head-end system 104 generates a time-based token 604. The time-based token 604 is generated based on information such as the type of token, the time period associated with the token, the date the time period begins, the serial number of the device, the meter on which the token was generated, etc. These types of information may be explicitly included in one or more fields of the time-based token 604 or may be transformed before being included in the time-based token 604. Figure 7 illustrates an example of a time-based token 604 generated by the head-end system 104 in accordance with certain embodiments of the present disclosure.
[0069] In the example shown in FIG. 7, the time-based token 604 includes 66 bits, which corresponds to 20 decimal digits. As such, the size of the time-based token 604 is the same as the size of the payment-based token 204 shown in FIG. 3. Similar to the payment-based token 204, the first two bits of the time-based token 604 are also used to represent a token type 702. In some embodiments, if the value of the token type 702 is 1, the token is a time-based token. Other values of the token type 702 can be used to indicate other types of secure tokens. The next 15 bits of the time-based token 604 shown in FIG. 7 indicate the start date of the time period associated with the time-based token 604. For example, 5 and 4 bits of the 15 bits can be used to represent the day 704 and month 706 of the start date, respectively. 6 bits of the 15 bits can be used to represent the least significant two digits of the year 708 of the start date.
[0070] The time-based token 604 shown in FIG. 7 further includes a token period 710, represented by 7 bits, that defines a time period associated with the token 604, which may be any value between 1 and 127 days. The time period associated with the time-based token 604 may be specified in the request for the time-based token 616. In other embodiments, the time period may be determined or adjusted by the head-end system based on a rule. For example, a rule may specify that the time period cannot be more than 7 days for a user requesting a time-based token 604 for the first time, and cannot be more than 5 days for a user requesting a time-based token 604 for the second time. The maximum time period a user may request for a time-based token 604 decreases as the number of times the user requests a time-based token 604 increases. Other types of rules may also be utilized.
[0071] Similar to the payment-based token 204, the time-based token 604 shown in FIG. 7 further includes a 10-bit field for a transaction ID 712. In some embodiments, the transaction ID 712 represents the least significant 10 bits of the complete TRN, which is a binary number that uniquely represents a consecutive token number for the meter 112. After an initial starting value, each token generated for the meter 112, whether it is a payment-based token or a time-based token, will have a monotonically increasing sequential TRN. In some embodiments, the TRN is a 32-bit number ranging from 0 to 4294967295, and the transaction ID 712 represents the least significant 10 bits of this 32-bit number.
[0072] The time-based token 604 shown in FIG. 7 also includes an integrity field 714 that is uniquely calculated using a cryptographic tool, such as a hash-based message authentication code (HMAC). The integrity field 714 of the time-based token 604 may be generated by applying a cryptographic tool to encrypt data, such as one or more of the fields 702-710 of the time-based token 604, the serial number of the meter 112, the network ID of the meter 112, and information unique to the token within the resource distribution network, such as the TRN of the token. In some embodiments, the head-end system 104 generates the HMAC using a hash function, such as the Secure Hash Algorithm SHA-256, based on a private key included in the provisioning data 202. In this manner, after receiving the time-based token 604, the meter 112 may generate an HMAC using the same private key and compare the generated HMAC to the one included in the integrity field 714 of the received time-based token 604 to validate the token. Validation may include, for example, determining the integrity and authenticity of the payment-based token 204. It should be understood that cryptographic tools other than HMAC or other than SHA-256 can be used to generate the integrity field 714.
[0073] Returning to FIG. 6 , after the head-end system 104 generates the time-based token 604, the head-end system 104 sends the time-based token 604 back to the system that requested the time-based token 604, such as the service system 210, which in turn requested the time-based token 604. In this manner, the user 120 can obtain a copy of the generated time-based token 604. By obtaining a copy of the time-based token 604, the user 120 can apply the time-based token 604 at the meter 112 using the handheld device 106 without relying on the head-end system 104. As discussed above with respect to FIG. 2 , the handheld device 106 can be configured to present a user interface that allows the user 120 to enter the time-based token 604 and transmit the time-based token 604 to the meter 112.
[0074] Alternatively, the user 120 may request that the head-end system 104 automatically apply the time-based token 604 to the meter 112. Such a request may be included in the request for the time-based token 616 so that the head-end system 104 can act accordingly. If the user 120 requests automatic application of the time-based token 604, the head-end system 104 transmits the time-based token 604 to the meter 112 via the mesh network 140. If the user 120 does not request automatic application of the time-based token 604, the head-end system 104 does not send the time-based token 604 to the meter 112. In some embodiments, the user 120 may choose to allow the head-end system 104 to automatically apply the time-based token 604 to the meter 112 with a certain amount of delay. In those examples, the head-end system 104 waits a specified amount of delay before transmitting the time-based token 604 to the meter 112 via the mesh network 140.
[0075] After receiving the time-based token 604 from the handheld device 106 or from the head-end system 104, the meter 112 can verify the time-based token 604. The meter 112 can parse the time-based token 604 to determine each field included in the time-based token 604. The meter 112 can further use a private key included in the provisioning data 202 to generate an authentication code, such as an HMAC, based on the same information used by the head-end system 104 to generate the integrity field 714. This information can include, for example, the meter serial number, the meter network ID, the TRN, and other fields of the time-based token 604, such as the token type 702, start date (fields 704-708), token duration 710, and transaction ID 712. If the generated authentication code matches the integrity field 714 of the time-based token 604, the meter 112 can determine that the time-based token 604 was generated by the head-end system 104 and that the contents of the time-based token 604 have not been altered.
[0076] In generating the integrity field 714 of the time-based token 604, the time-based token 604 is made unique to the intended meter 112, similar to the payment-based token 204, which includes an identifier for the meter 112, such as the serial number and network ID of the meter 112. The meter can determine if the received time-based token 604 is the proper token and apply only the intended time-based token 604 by determining if the calculated authentication code matches the integrity field 714. In some embodiments, validating the received time-based token 604 also includes determining if the time-based token 604 is within an acceptable window and is a duplicate token that was previously received and processed. Further details of determining the acceptable window and determining if the time-based token 604 is within the acceptable window are provided below with respect to FIG. 9.
[0077] If the meter 112 determines that the received time-based token 604 is not a valid token, the meter 112 rejects or negates the time-based token 604. Otherwise, the meter 112 connects the building premises 132 of the geographic location of the meter 112 to the resource supply 130 for the time period specified in the time-based token 604, starting from the start date. After the specified time period has elapsed, the meter 112 keeps the resource supply 130 connected or disconnects it based on the balance associated with the meter 112. That is, if the balance is negative or below a threshold balance value, the meter 112 disconnects the building premises 132 from the resource supply 130; otherwise, the meter 112 keeps the building premises 132 connected to the resource supply 130.
[0078] Similar to the payment-based token 204, the meter 112 will generate and send a token application response 218 or an event message 222 to the head-end system 104 depending on where the meter 112 received the time-based token 604. If the time-based token 604 was received from the head-end system 104, the meter 112 will generate a token application response 218 to report the status of the time-based token 604 received at the meter 112. In some implementations, the token application response 218 includes the status of the time-based token 604, such as "token successfully applied at meter", "token rejected because it is outside the acceptable window", "token rejected because it is a duplicate", "token rejected because it failed the integrity check", etc.
[0079] The token application response 218 may further include other information, such as the time period applied at the meter 112, or the status of the meter switch 134 (e.g., open / disconnected or closed / connected). The token application response 218 may also include the time-based token 604, or a serial number of the time-based token 604, such as a TRN or a transaction ID. The token application response 218 may be sent along with other data sent from the meter 112 to the head-end system 104, such as collected meter data, or may be sent separately.
[0080] If the time-based token 604 is received via the handheld device 106, the meter 112 generates and sends an event message 222 including the time-based token 604 to the head-end system 104 to report the time-based token 604. The event message 222 may also include the status of the time-based token 604, the status of the meter switch 134, or other data included in the token application response 218, etc. The event message 222 may also be sent to the head-end system 104 along with other data, such as collected meter data, or may be sent separately.
[0081] Upon receiving the event message 222, the head-end system 104 analyzes the time-based token 604 included in the event message 222 to determine whether the time-based token 604 was generated by the head-end system 104, such as by searching for previous tokens generated by the head-end system 104. The head-end system 104 is then configured to transmit the analysis result to the meter 112. If the analysis result indicates that the time-based token 604 was not generated by the head-end system 104, the meter 112 may disconnect the resource supply 130 and update a balance associated with the meter to reflect resource consumption that occurred during the connection. The meter 112 may also cause a warning message to be displayed on the handheld device 106 to indicate the analysis result and the action taken by the meter 112 based on the analysis result.
[0082] FIG 8 illustrates an example process for generating and applying a time-based token 604 at a meter 112 in a resource distribution network, in accordance with certain embodiments of the present disclosure. In particular, FIG 8 includes processes 800A, 800B, and 800C. Process 800A illustrates an aspect of a head-end system 104. Process 800B illustrates an aspect of a meter 112. Process 800C illustrates an aspect of a handheld device 106. Processes 800A, 800B, and 800C are described together below.
[0083] The process 800A begins at block 802 where the head-end system 104 receives a request for a time-based token 616 for the meter 112. As described above with respect to FIG. 6, the request for the time-based token 616 may be generated by the service system 210 in response to a request by the user 120. At block 804, the process 800A includes generating a time-based token 604 for the meter 112. To make the time-based token 604 unique to the meter 112, the head-end system 104 generates the time-based token 604 based on an identifier for the meter 112, such as the serial number of the meter 112, the network ID of the meter 112, or a combination thereof. Additionally, the generated time-based token 604 also includes or is based on a serial number that is unique to the time-based token 604 within the mesh network 140, such as the TRN. The time-based token 604 also indicates a time period for the meter 112 to connect the resource supply 130 to the building premises 132, as well as a start date for the time period.
[0084] 7, which includes a token type 702, a start date 704-708, a token duration 710, a transaction ID 712, and an integrity field 714. In some implementations, the integrity field 714 is generated by using a secret key to generate an HMAC based on one or more of the fields 702-712 of the time-based token 604, an identifier of the meter 112, such as a serial number and network ID, and the TRN of the payment-based token 204.
[0085] At block 806, the process 800A includes responding to the request for the time-based token 616 with the generated time-based token 604. For example, the head-end system 104 transmits the time-based token 604 to the entity that requested the time-based token 604, such as the service system 210. If the user 120 authorized the head-end system 104 to automatically apply the generated time-based token 604 to the meter 112, block 806 further includes applying the time-based token 604 by transmitting the time-based token 604 to the meter 112. The application of the payment-based token 204 to the meter 112 may be performed immediately or with a delay, depending on a selection made by the user 120 in providing authorization to the head-end system 104 to apply the time-based token 604.
[0086] If the user 120 does not authorize the head-end system 104 to apply the time-based token 604 to the meter 112, the user 120 may manually enter the time-based token 604 at the handheld device 106. At block 830, the process 800C includes receiving the time-based token 604 at the handheld device 106 via user input. At block 832, the process 800C includes transmitting the received time-based token 604 to the meter 112, for example, over the HAN.
[0087] At block 812, the process 800B includes the meter 112 receiving a time-based token 604 from the head-end system 104 or from the handheld device 106. At block 814, the process 800B includes verifying the received time-based token 604 to determine whether it is a valid token. The verification process may include, for example, determining the integrity of the time-based token 604, determining that the time-based token 604 was generated for the meter 112, determining that the token is within an acceptable window, determining that the token is not a duplicate token, etc. Additional details regarding verifying the time-based token 604 are provided below with respect to FIG. 9.
[0088] At block 816, the process 800B includes determining whether the time-based token 604 is a valid token based on the verification result obtained at block 814. If not, the process 800B includes rejecting the time-based token 604 at block 820. If the time-based token 604 is a valid token, the process 800B includes connecting the resource supply 130 at block 818 for the time period indicated in the token period field 710, starting from the start date specified in the time-based token 604.
[0089] At block 822, the process 800B includes sending a token application response 218, as described above with respect to FIGURE 6, if the time-based token 604 is received from the head-end system 104. In some implementations, the token application response 218 includes information such as the status of the time-based token 604 (e.g., accepted or rejected), the time period specified in the time-based token 604, the status of the meter switch 134 (e.g., open / disconnected or closed / connected), or other information. The token application response 218 may also include the serial number of the time-based token 604 or the time-based token 604, such as a TRN or a transaction ID.
[0090] When the time-based token 604 is received from the handheld device 106, the meter 112 generates and sends an event message 222 to the head-end system 104 to inform the head-end system 104 of the received time-based token 604 and to request the head-end system 104 to validate the time-based token 604. The event message 222 may include similar content to the token application response 218, such as the status of the payment-based token 204, the time period specified in the time-based token 604, the status of the meter switch 134 (e.g., open / disconnected or closed / connected), etc. The event message 222 also includes the entire time-based token 604 and a request for the head-end system 104 to verify the authenticity of the time-based token 604. As discussed above with respect to FIG. 6, the token application response 218 or the event message 222 may be sent along with the meter data collected by the meter 112 or may be sent separately to the head-end system 104.
[0091] The head-end system 104 receives the token application response 218 or the event message 222 in block 808 and processes the received message accordingly. For example, if the head-end system 104 receives the event message 222, the head-end system 104 validates the payment-based token 204 included in the event message 222 to determine whether the time-based token 604 was indeed generated by the head-end system 104. The head-end system 104 notifies the meter 112 of the validation result, for example, by sending a notification to the meter 112. The meter 112 can take action according to the validation result, such as disconnecting the resource supply 130 from the building premises 132, if the time-based token 604 was not generated by the head-end system 104.
[0092] If the time-based token 604 is received from the handheld device 106, the process 800B further includes the meter 112 sending a confirmation message to the handheld device 106 at block 824. The confirmation message may include, for example, the status of the time-based token 604 (e.g., accepted or rejected), the time period and start date specified in the time-based token 604, the status of the meter switch 134 (e.g., open / disconnected or closed / connected), etc. The handheld device 106 receives the confirmation message at block 834 and presents it to the user 120 at a user interface.
[0093] FIG. 9 illustrates an example process 900 for verifying a secure token at a meter 112, according to certain embodiments of the present disclosure. The secure token may be a payment-based token 204 or a time-based token 604. Process 900 may be used to implement block 514 of process 500B or block 814 of process 800B. A meter 112 (e.g., a meter of an environment 100, 200, or 600) performs the operations depicted in FIG. 9 by executing appropriate program code. For illustrative purposes, process 900 is described with reference to certain embodiments depicted in the figure. However, other embodiments are possible.
[0094] At block 902, the process 900 involves obtaining a secure token, such as the payment-based token 204 described above with respect to Figures 2-5 or the time-based token 604 described above with respect to Figures 6-8. The process 900 further includes obtaining a private key from the provisioning data 202. As described above with respect to Figures 2 and 4, the head-end system 104 includes the private key in the provisioning data 202 transmitted to the meter 112 during the provisioning process. The private key is used by the head-end system 104 to generate an integrity field of the secure token.
[0095] At block 904, the process 900 includes decrypting the secure token to determine the individual fields contained in the secure token. For example, if the secure token is formatted as shown in FIG. 3 or FIG. 7, the meter 112 can determine the type of secure code by examining the first two bits of the secure token, which indicate the token type. If the token type is 0, the meter 112 can determine that the secure token is a payment-based token 204, and if the token type is 1, the meter 112 can determine that the secure token is a time-based token 604. Based on the type of the secure token, the meter 112 can decrypt the remaining fields of the token, such as the subtype 304, the credit value 306, the transaction ID 308, the integrity field 310 of the payment-based token 204, or the start date 704-708, the token duration 710, the transaction ID 712, and the integrity field 714 of the time-based token 604.
[0096] At block 906, the process 900 includes generating an authentication code for the secure token using a private key and verifying the integrity of the token based on the authentication code. In some implementations, the meter 112 can generate the authentication code in the same manner and using the same private key as the head-end system 104 generates the integrity field 310 or 714. For example, the head-end system 104 generates the integrity field of the secure token by generating an HMAC based on the other fields of the secure token, the serial number of the meter 112, the network ID of the meter 112, and the TRN of the secure token, and using the SHA-256 algorithm. In such an example, the meter 112 can apply the same encryption algorithm with the same private key to the decrypted version of the same fields and other corresponding information available to the meter 112, such as the serial number of the meter 112, the network ID of the meter 112, etc. If the generated authentication code matches the data included in the integrity field of the received secure token, the meter 112 can determine that the secure token is for the meter 112 and has not been tampered with. If not, the secure token integrity verification has failed.
[0097] At block 908, the process 900 includes determining whether the integrity of the secure token has been verified based on the comparison result obtained at block 906. If not, the meter 112 may determine that the secure token is invalid. If the meter 112 successfully verifies the integrity of the secure token, the meter 112 may continue to check other aspects of the secure token to determine its validity.
[0098] At block 910, the process 900 includes determining a current acceptable window for the TRN or transaction ID (TID) of the secure token. If the TRN or transaction ID of the secure token falls within the acceptable window, the meter 112 may accept the secure token, otherwise the meter 112 will reject the secure token. The meter 112 may determine the acceptable window based on token acceptance parameters in the provisioning data 202. In some embodiments, the token acceptance parameters may include a TID, F , T.I.D. POS , and T.I.D. NEG where TID F represents the floor value of the acceptable TID. That is, the lowest TID that is acceptable for the meter 112 is TID F TID POS is the current acceptable TID, TID current It represents the maximum allowable positive offset of the TID compared to the TID NEG TID current represents the maximum allowable negative offset of the TID compared to the TID POS and TID NEG is the acceptable window for the TID of the received secure token, i.e. [TID current -TID NEG ,T.I.D. current +TID POS ], where TID current -TID NEG defines the lower limit of the acceptable window, and TID current +TID POS defines the upper limit of the acceptable window. However, the acceptable TID is TID F Note that since it cannot be lower, the acceptable window can be reformulated as follows:
number
[0099] Current acceptable TID, TID current is updated by the meter 112 based on the received secure token. current is set to be the highest TID of any secure token previously received at the meter 112, including both payment-based tokens 204 and time-based tokens 604. If the currently received secure token has a TID that falls within this acceptability window, the meter 112 may determine that the secure token is acceptable, otherwise, the secure token may be determined to be unacceptable.
[0100] For example, TID current 10, TID POS 5, TID NEG 3, TID F is 4, then the acceptable window is [7,15]. Secure tokens with TIDs smaller than 7 or larger than 15 are not acceptable to the meter 112 at this moment. This mechanism ensures that the order of applied secure tokens does not deviate too far from the order of the TRNs generated for the secure tokens. In the above example, the acceptable window of [7,15] ensures that the TID of an acceptable secure token is close to 10, the TID accepted by the meter 112.
[0101] Note that in this example, the TID is used to determine the acceptable window of the secure token, where the TID is a truncated version of the full TRN of the secure token, such as the least significant bits of the TRN being 10. If the currently received TID exceeds its maximum number, e.g., 1023, the TID wraps around to 0 and starts to increment by one. The meter 112 may be configured to recognize this scenario and adjust the acceptable window accordingly. For example, the meter 112 may determine that the lower limit of the acceptable window is 1021 and the upper limit of the acceptable window is 3. In this example, any token with a TID that falls within [1021, 1022, 1023, 0, 1, 2, 3] is acceptable.
[0102] At block 912, the process 900 includes determining whether the TID of the received secure token falls within an acceptable window. The meter 112 further determines whether the secure token is a duplicate token previously received and applied. The meter 112 may access past token IDs 220 stored in the meter 112 to detect duplicates. If the meter 112 determines that the TID of the secure token is outside the acceptable window or that the secure token has been previously applied, at block 916, the meter 112 determines that the secure token is invalid. Otherwise, at block 914, the meter 112 determines that the secure token is a valid token.
[0103] In normal circumstances, the head-end system 104 is available to generate payment-based or time-based tokens, communicate with the meter 112 to apply the secure tokens at the meter 112, and the like. However, in other circumstances, the mesh network 140 may become unavailable or unstable, the head-end system 104 may become unavailable due to extreme weather or natural disasters, and the like. In such circumstances, it may be impossible for the user 120 to make a payment to request a payment-based token or to request a time-based token. To allow users to continue to use resources in these extreme circumstances, the head-end system 104 is further configured to issue a global token.
[0104] As briefly mentioned above, a global token is a type of secure token that is not specific to any meter 112. In other words, the same global token can be applied in multiple meters 112 in the mesh network 140. Each global token has a time period associated with it that instructs the meter 112 to keep the resource supply 130 connected for a period of time. By using a global token, a user 120 can have access to a resource supply even if the head-end system 104 becomes unavailable to generate a token based on a user request.
[0105] Figure 10 illustrates an exemplary operating environment 1000 for generating and applying a global token at meters 112 in a resource distribution network, according to certain embodiments of the present disclosure. The environment 1000 includes a utility system 102, a head-end system 104, and meters 112 and their associated handheld devices 106, as described above with respect to Figures 1-9. Figure 10 illustrates one of the meters 112 in the resource distribution network.
[0106] In some examples, a utility company may determine that an extraordinary situation has occurred, such as a weather forecast indicating an oncoming extreme weather event, which may cause the head-end system 104 to be unavailable for a period of time. The utility company may decide to issue global tokens to meters 112 in the network by sending a global token request 1002 to the head-end system 104 via the utility system 102. The global token request 1002 may specify a period of time to be associated with the global token.
[0107] Upon receiving the global token request 1002, the head-end system 104 can generate or otherwise obtain a global token 1004 associated with the specified time period. In some implementations, the head-end system 104 generates the global token 1004 in response to the global token request 1002. In other implementations, the global token 1004 is obtained from a global token table 1010 stored in a location accessed by the head-end system 104. In one example, the global token table 1010 includes a list of global tokens that may be accepted by the meter 112. Each of the global tokens in the global token table 1010 is mapped to a time period. Thus, the head-end system 104 can obtain a corresponding global token 1004 based on the time period specified in the global token request 1002.
[0108] FIG. 11 illustrates an example of a global token table 1010, according to certain embodiments of the present disclosure. In this example, the global token table 1010 includes a list of global tokens 1108A-1108K. For each global token in the list, there is a time period 1104 associated with it. For example, global token 1 in the example illustrated in FIG. 11 has a time period of 1 day, global token 2 has a time period of 2 days, and global token N has a time period of M days, where M can be any positive integer, such as 127.
[0109] In the example shown in FIG. 11, the global token table 1010 also has an apply flag 1106 for each global token in the table that indicates whether the corresponding global token has been applied or used. For example, if global token 2 was used the last time a hurricane occurred, the apply flag for global token 2 may be set to YES indicating that this global token is being used. In this way, each time the head-end system 104 issues a global token, the head-end system 104 will select a global token from the global token table 1010 that corresponds to the requested time period and has not been used before. One advantage of allowing global tokens to be used only once is that it prevents fraudulent or misuse of tokens. For example, if global tokens are allowed to be used repeatedly, a user who was authorized to access a resource supply but is no longer authorized could use a past global token to obtain resources while the head-end is available for a special situation. Using global tokens only once prevents such problems.
[0110] It should be understood that the example global token table 1010 shown in Figure 11 is for illustrative purposes only and should not be construed as limiting. The global token table 1010 may be constructed in any other format. For example, the global token table 1010 may include only global tokens and corresponding time periods without application flags. In such a scenario, other mechanisms may be used to indicate whether a global token has been used.
[0111] FIG. 12 illustrates an example of a global token 1004 that may be applied at a meter 112 in a resource distribution network, according to an embodiment of the present disclosure. In this example, the global token 1004 includes 66 bits, which correspond to 20 decimal digits. The size of the global token 1004 is the same as the size of the time-based token 604 illustrated in FIG. 7 and the size of the payment-based token 204 illustrated in FIG. 3. Similar to the payment-based token 204 and the time-based token 604, the first two bits of the global token 1004 are used to represent the token type 1202. In some embodiments, if the value of the token type 1202 is 3, the token is a global token. Other values of the token type can be used to indicate other types of secure tokens. The next 64 bits of the global token 1004 illustrated in FIG. 12 include a random number that uniquely identifies the global token 1004.
[0112] Returning to FIG. 10, in some embodiments, the global token table 1010 is generated at the head-end system 104 by generating the global tokens 1004 and their corresponding time periods. In other embodiments, the global token table 1010 is generated by the utility system 102 or another system associated with the power company and transmitted to the head-end system 104. In either case, the head-end system 104 also transmits the global token table 1010 to the meters 112 via the mesh network 140. In some implementations, the global token table 1010 may be transmitted to each meter 112 in the corresponding provisioning data 202 that is transmitted to the meters 112. In other implementations, the global token table 1010 is transmitted to the meters 112 separately from the provisioning data 202.
[0113] Based on the global token table 1010, the head-end system 104 can obtain the global token 1004 as specified in the global token request 1002. The head-end system 104 further causes the global token 1004 to be broadcast over a broadcast network 1008. The broadcast network 1008 is different from the mesh network 140 because the mesh network 140 may already be unavailable or unstable. The broadcast network 1008 may be a radio network, a television network, the Internet, a cellular network, etc., or any other type of network that may be utilized to broadcast the global token 1004 so that the users 120 may be notified about the global token 1004.
[0114] After obtaining the global token 1004 through the broadcast network 1008, the user 120 may enter the global token 1004 into the meter 112, such as through the handheld device 106. The meter 112 validates the received global token 1004 by determining whether the received global token 1004 is included in the global token table 1010 and has not been used before. If so, the meter 112 may determine that the global token 1004 is a valid token. If not, the global token 1004 is an invalid token and is rejected by the meter 112.
[0115] In some embodiments, the meter 112 determines that the global token has been previously used by checking the apply flag 1106 associated with the global token 1004 in the global token table 1010. If the apply flag 1106 indicates that the global token 1004 has not been previously used, the meter 112 applies the global token 1004 at the meter 112 by connecting the resource supply 130 for the time period associated with the global token 1004. The meter 112 also updates the apply flag 1106 of the global token 1004 in the global token table 1010 to indicate that the global token 1004 is currently being used.
[0116] After the special situation ends and the mesh network 140 and head-end system 104 recover, the meter 112 can send an event message 1012 to the head-end system 104 reporting the global token 1004 processed by the meter 112. The event message 1012 can include the global token 1004 received by the meter 112 and other data such as the status of the global token 1004 (applied or rejected), the time period specified in the global token 1004, the time the global token 1004 was applied, the status of the meter switch 134, etc. The event message 1012 can be sent to the head-end system 104 separately or can be sent together with other data sent by the meter 112, such as meter data collected by the meter 112.
[0117] After receiving the event message 1012, the head-end system 104 analyzes the global token 1004 included in the event message 1012 and determines whether the global token 1004 was generated or issued by the head-end system 104, such as by searching the global token table 1010. The head-end system 104 is then configured to transmit the analysis result to the meter 112. If the analysis result indicates that the global token 1004 was not properly issued by the head-end system 104, the meter 112 may disconnect the resource supply 130 and update a balance associated with the meter 112 to reflect the resource consumption that occurred during the time period the connection was established. The meter 112 may also cause a warning message to be displayed on the handheld device 106 to indicate the analysis result and the action taken by the meter 112 based on the analysis result.
[0118] As mentioned above, in some embodiments, each global token 1004 is permitted to be used only once. Thus, after a global token 1004 is issued, the head-end system 104 labels such global token 1004 as used and therefore will not use it again. After all or a portion of the global tokens in the current global token table 1010 are used, the head-end system 104 or the utility system 102 or another system associated with the power company can generate a new global token table 1010 containing a different set of global tokens. In further embodiments, the global token table 1010 is configured to be accepted for a predefined period of time, and the global tokens included in the global token table 1010 can only be used during that period of time. Thus, when the current period expires, a new global token table 1010 can also be generated for another period of time.
[0119] The head-end system 104 stores the new global token table 1010 and transmits the new global token table 1010 to the meters 112 in the mesh network 140 to replace the existing global token table 1010. The next global token 1004 will then be selected from the new global token table 1010 based on the time period specified in the global token request 1002.
[0120] FIG. 13 illustrates an example process for issuing and applying a global token at a meter, according to certain embodiments of the present disclosure. The example illustrated in FIG. 13 assumes that a global token table 1010 is generated and stored at a head-end system 104 and transmitted to a meter 112 in a mesh network 140. In particular, FIG. 13 includes processes 1300A, 1300B, and 1300C. Process 1300A illustrates an aspect of a head-end system 104. Process 1300B illustrates an aspect of a meter 112. Process 1300C illustrates an aspect of a handheld device 106. Processes 1300A, 1300B, and 1300C are described together below.
[0121] Process 1300A begins at block 1302, where the head-end system 104 determines a global token 1004 based on the global token request 1002. In one example, the head-end system 104 determines the global token 1004 by selecting a global token from a global token table 1010 that has a time period as specified in the global token request 1002 and has not been used previously. At block 1304, process 1300A includes causing the global token 1004 to be broadcast over one or more broadcast networks 1008.
[0122] The process 1300C begins at block 1312 where the handheld device 106 receives the global token 1004 through user input, for example using a keyboard or an image scanning device. At block 1314, the process 1300C includes transmitting the global token 1004 to the meter 112.
[0123] The process 1300B begins at block 1322, where the meter 112 receives the global token 1004 from the handheld device 106. At block 1324, the process 1300B includes validating the global token 1004 and further includes determining a time period associated with the global token 1004. In some embodiments, the meter 112 validates the global token 1004 by determining whether the global token 1004 is listed in the global token table 1010. The meter 112 further determines whether the global token 1004 has been used previously, for example, by checking the apply flag 1106 for the global token 1004 in the global token table 1010. If the meter 112 determines that the global token 1004 is listed in the global token table 1010 and has not been used previously, the meter 112 determines that the global token 1004 is a valid token, otherwise the meter 112 rejects the global token 1004 as an invalid token.
[0124] At block 1326, the process 1300B includes connecting the building premises 132 to the resource supply 130 for the time period associated with the global token 1004 after determining that the global token 1004 is a valid token. The meter 112 further updates an applied flag associated with the global token 1004 to indicate that the global token 1004 has been applied at the meter 112. At block 1328, the process 1300C includes sending a confirmation message to the handheld device 106 to indicate the status of the global token 1004, e.g., applied or rejected. The handheld device 106 receives the confirmation message at block 1316 and presents it to the user 120 via a user interface.
[0125] At block 1330, the process 1300B includes generating and sending an event message 1012 to the head-end system 104. This occurs after the mesh network 140 and head-end system 104 have recovered and become available. The event message 1012 can include the global token 1004 received by the meter 112, the status of the global token 1004 (applied or rejected), the time period specified in the global token 1004, the time the global token 1004 was applied, the status of the meter switch 134, etc.
[0126] In block 1306, the head end system 104 receives the event message 1012 and processes the event message 1012 to determine whether the global token 1004 included in the message was indeed issued by the head end system 104. The head end system 104 may also determine whether the global token 1004 was applied during a period during which the global token table 1010 was acceptable. As described in detail above with respect to FIG. 10, if the head end system 104 determines that the global token 1004 was not properly issued by the head end system 104, additional actions will be taken at the meter 112.
[0127] Although the three types of secure tokens are discussed separately in the above description, it should be understood that they can coexist in the system. In other words, the head-end system 104 may be configured to generate or issue a payment-based token 204, a time-based token 604, or a global token 1004 in response to a received request. Each meter 112 in the mesh network 140 may also be configured to recognize and process these three types of secure tokens. FIG. 14 illustrates an example process 1400 for receiving and processing a secure token at a meter, according to certain embodiments of the present disclosure. One or more nodes or meters (e.g., meters 112 or root node 114) of the mesh network 140 implement the operations depicted in FIG. 14 by executing appropriate program code. For illustrative purposes, the process 1400 is described with reference to certain embodiments depicted in the figure. However, other embodiments are possible.
[0128] At block 1402, the process 1400 includes receiving a secure token. The secure token may be a payment-based token 204, a time-based token 604, or a global token 1004. The secure token may be received from a head-end system 104 via a mesh network 140 or from a handheld device 106 via a HAN or other connection.
[0129] At block 1404, the process 1400 includes decrypting the secure token to determine the type of the secure token. For example, if the token formats for the three types of secure tokens follow those shown in Figures 3, 7, and 12, the meter 112 can determine the type of the secure token by examining the first two bits of the received token. In the example shown in Figures 3, 7, and 12, if the value of the first two bits of the token is 0, the token is a payment-based token 204, if the value is 1, the token is a time-based token 604, and if the value is 3, the token is a global token 1004.
[0130] Depending on the type of secure token, the process 1400 includes different operations: If the secure token is a payment-based token 204, the process 1400 includes, at block 1406, processing the secure token according to process 500B described above with respect to Figure 5. If the secure token is a time-based token 604, the process 1400 includes, at block 1408, processing the secure token according to process 800B described above with respect to Figure 8. If the secure token is a global token 1004, the process 1400 includes, at block 1410, processing the secure token according to process 1300B described above with respect to Figure 13.
[0131] Although the present disclosure focuses on a resource distribution network configured to distribute resources such as water, gas, electricity, steam, etc., to a building premises, it is understood that the techniques presented herein may be applied to other types of resources. For example, the techniques presented herein may be utilized to control access to cellular resources. A user of the cellular resources either requests a payment-based token by making a payment to his account or requests a time-based token with a service system such as a service system. These two types of tokens are generated to be unique to his mobile phone, for example, using the mobile phone's International Mobile Equipment Identity (IMEI) number. In this way, the payment-based token or the time-based token may be applied only on the user's mobile phone. Similarly, if the system that generates the secure tokens becomes unavailable, a global token may be generated and broadcast to users of the cellular resources. In such a case, the user may continue to use the cellular resources by inputting the global token into the mobile phone. Access to other resources, such as network resources, online computing resources, online storage resources, etc., may be controlled in a similar manner.
[0132] Example Meter
[0133] 15 illustrates an example meter 1500 that may be employed to implement the secure token processing mechanism described herein, such as the meter 112 or the root node 114. The meter 1500 includes a communications module 1516 and a metering module 1518 connected via a local or serial connection 1530. The two modules may be housed in the same unit on separate boards, and thus the local connection 1530 may be an on-board socket. Alternatively, the modules are housed separately, and thus the local connection 1530 may be a communications cable, such as a USB cable, or other conductor. Because the two components may be physically separate, the communications module 1516 and the metering module 1518 may be removed or replaced independently of one another.
[0134] The functionality of the communication module 1516 includes receiving and transmitting messages including secure tokens over the mesh network 140. The functionality of the metering module 1518 includes functionality necessary to manage resources, in particular to grant access to resources and to meter resources used. The communication module 1516 may include a communication device 1512 such as an antenna and a radio. Alternatively, the communication device 1512 may be any device that allows wireless or wired communication. The communication module 1516 may also include a processor 1513 and a memory 1514. The communication device 1512 is used to receive and transmit messages over the network 140. The processor 1513 controls the functions performed by the communication module 1516. The memory 1514 may be utilized to store data used by the processor 1513 to perform its functions. The memory 1514 may also store data included in the provisioning data 202, such as secret keys and admission parameters.
[0135] The metering module 1518 may include a processor 1521, a memory 1522, and a measurement circuit 1523. The processor 1521 of the metering module 1518 controls the functions performed by the metering module 1518. The memory 1522 stores data necessary for the processor 1521 to perform its functions, such as a global token table 1010 used to validate global tokens. In some embodiments, other data of the provisioning data 202 is also stored in the memory 1502 of the metering module 1518 rather than in the memory 1514 of the communication module 1516. In either case, the communication module 1516 and the metering module 1518 communicate with each other via a local connection 1530 to provide data required by the other module. The measurement circuit 1523 may handle the measurement of resources and may also handle the recording of the measured measurements. Both the communication module 1516 and the metering module 1518 may include computer-executable instructions stored in a memory or another type of computer-readable medium, and one or more processors within the modules may execute the instructions to provide the functionality described herein.
[0136] Example of a Head-End System for Implementing an Embodiment
[0137] Any suitable computing system or computing systems may be used to perform the operations described herein. For example, FIG. 16 illustrates an example of a computing system 1600. An implementation of the computing system 1600 may be used for the head-end system 104.
[0138] The depicted embodiment of a computing system 1600 includes a processor 1602 communicatively coupled to one or more memory devices 1604. The processor 1602 executes computer-executable program code stored in the memory devices 1604, accesses information stored in the memory devices 1604, or both. Examples of processors 1602 include a microprocessor, an application specific integrated circuit ("ASIC"), a field programmable gate array ("FPGA"), or any other suitable processing device. The processor 1602 may include any number of processing devices, including a single processing device.
[0139] The memory device 1604 includes any suitable non-transitory computer readable medium for storing program code 1605 (e.g., code used to generate payment-based or time-based tokens), program data 1607 (e.g., a global token table), or both. The computer readable medium may include any electronic, optical, magnetic, or other storage device capable of providing computer readable instructions or other program code to a processor. Non-limiting examples of computer readable media include magnetic disks, memory chips, ROM, RAM, ASICs, optical storage, magnetic tape or other magnetic storage, or any other medium from which a processing device can read instructions. The instructions may include processor-specific instructions generated by a compiler or interpreter from code written in any suitable computer programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.
[0140] The computing system 1600 configures the processor 1602 to execute program code 1605 to perform one or more of the operations described herein. Examples of the program code 1605 include, in various embodiments, program code used to generate payment-based tokens, program code used to generate time-based tokens, program code used to verify payment-based tokens, time-based tokens, or global tokens, or other suitable applications that perform one or more of the operations described herein. The program code may reside in the memory device 1604 or any suitable computer-readable medium and may be executed by the processor 1602 or any other suitable processor.
[0141] In some embodiments, the one or more memory devices 1604 store program data 1607 including one or more data sets described herein. Examples of these data sets include historical secure tokens, global token tables, etc. In some embodiments, one or more of the data sets, models, and functions are stored in the same memory device (e.g., one of the memory devices 1604). In additional or alternative embodiments, one or more of the programs, data sets, models, and functions described herein are stored in a different memory device 1604 accessible via a data network. Also included in the computing system 1600 are one or more buses 1606. The buses 1606 communicatively couple each of one or more components of the computing system 1600.
[0142] In some embodiments, the computing system 1600 also includes a network interface device 1610. The network interface device 1610 includes any device or group of devices suitable for establishing a wired or wireless data connection to one or more data networks. Non-limiting examples of the network interface device 1610 include an Ethernet network adapter, a modem, and / or the like. The computing system 1600 can use the network interface device 1610 to communicate with one or more other computing devices (e.g., the root node 114) over a data network.
[0143] The computing system 1600 may also include a number of external or internal devices, input devices 1620, presentation devices 1618, or other input or output devices. For example, the computing system 1600 is shown with one or more input / output ("I / O") interfaces 1608. The I / O interfaces 1608 may receive input from an input device or provide output to an output device. The input devices 1620 may include any device or devices suitable for receiving visual, auditory, or other suitable input that controls or affects the operation of the processor 1602. Non-limiting examples of the input devices 1620 include a touch screen, a mouse, a keyboard, a microphone, a separate mobile computing device, etc. The presentation devices 1618 may include any device or devices suitable for providing visual, auditory, or other suitable sensory output. Non-limiting examples of the presentation devices 1618 include a touch screen, a monitor, a speaker, a separate mobile computing device, etc.
[0144] 16 depicts the input device 1620 and the presentation device 1618 as being local to the computing device executing the head-end system 104, other implementations are possible. For example, in some embodiments, one or more of the input device 1620 and the presentation device 1618 may comprise remote client computing devices that communicate with the computing system 1600 via the network interface device 1610 using one or more data networks as described herein.
[0145] General Considerations
[0146] Numerous specific details are described herein to provide a thorough understanding of the claimed subject matter. However, those skilled in the art will understand that the claimed subject matter may be practiced without these specific details. In other embodiments, methods, apparatus, or systems that would be known to those skilled in the art have not been described in detail so as not to obscure the claimed subject matter.
[0147] The features discussed herein are not limited to any particular hardware architecture or configuration. A computing device may include any suitable arrangement of components that provide results conditional on one or more inputs. Suitable computing devices include general-purpose microprocessor-based computer systems that access stored software (i.e., computer-readable instructions stored on the computer system's memory) that programs or configures the computing system from a general-purpose computing device to a specialized computing device that implements one or more aspects of the present subject matter. Any suitable programming, scripting, or other type of language or combination of languages may be used to implement the teachings contained herein in the software used in programming or configuring a computing device.
[0148] Aspects of the methods disclosed herein may be performed in operation of such a computing device. The order of the blocks presented in the above examples may be changed. For example, the blocks may be reordered, combined, and / or divided into sub-blocks. Certain blocks or processes may be executed in parallel.
[0149] The use of "adapted to" or "configured to" herein is intended as open and inclusive language that does not preclude devices adapted or configured to perform additional tasks or steps. Additionally, the use of "based on" is intended to be open and inclusive in the sense that when a process, step, calculation, or other operation is "based on" one or more recited conditions or values, it may in fact be based on additional conditions or values beyond those recited. The headings, lists, and numbering contained herein are for ease of description only and are not intended to be limiting.
[0150] Although the present subject matter has been described in detail with respect to certain embodiments thereof, it will be understood that those skilled in the art, upon arriving at the foregoing understanding, can readily make modifications, variations, and equivalents to such embodiments. It will therefore be understood that the present disclosure is presented for purposes of illustration and not limitation, and is not intended to exclude the inclusion of modifications, variations, and / or additions to the present subject matter as would be readily apparent to those skilled in the art.
Claims
1. 1. A system comprising: receiving a request to generate a time-based token for a meter, the request specifying a time period for the time-based token; generating a time-based token based on a meter identifier and a time period; and transmitting a time-based token to a meter connected to the mesh network; a head-end system configured to: meters installed at geographic locations and communicating with a head-end system via at least a mesh network; Including, The meter is receiving a time-based token; validating the time-based token, the validating step including determining that the time-based token is generated for the meter using information associated with the meter's identifier; and responsive to determining that the time-based token is valid, connecting the building premises associated with the meter to a resource distribution network for at least the time period specified in the time-based token; 4. The method of claim 3, system.
2. The headend system further comprises: and configured to perform at least the step of transmitting provisioning data to the meter via the mesh network prior to generating the time-based token; The provisioning data includes a secret key and token acceptance parameters. The system of claim 1 .
3. The time-based token further includes an integrity field generated by encrypting at least an identifier of the meter; The step of determining that a time-based token is generated for a meter comprises: encrypting an identifier of the meter using a private key to generate an authentication code; comparing the authentication code with the integrity field of the time-based token; determining, in response to determining that the authentication code matches the integrity field of the time-based token, that the time-based token is generated for the meter; and determining, in response to determining that the authentication code does not match the integrity field of the time-based token, that the time-based token is not generated for the meter; The system of claim 2 , comprising:
4. The head-end system is further configured to generate a serial number for the time-based token, the time-based token including a transaction identifier; the transaction identifier constitutes at least a portion of the serial number; the integrity field of the time-based token is further generated by encrypting at least the serial number of the time-based token and an identifier of the meter; and the authentication code is further generated by encrypting at least the serial number of the time-based token and an identifier of the meter. The system of claim 3.
5. The meter further comprises: determining an acceptable window for the time-based token based on the token acceptance parameters; determining whether a serial number associated with the time-based token is within the acceptable window, wherein in response to determining that the serial number associated with the time-based token is within the acceptable window, connecting a building premises associated with the meter to the resource distribution network is performed; and in response to determining that a serial number associated with the time-based token is outside the acceptable window, rejecting the time-based token; 4. The method of claim 3, The system of claim 2.
6. the token acceptance parameters include a negative offset and a positive offset; The step of determining an allowable window for the time-based token comprises: determining a lower limit of the acceptable window as a serial number associated with a previously acceptable secure token received at the meter minus the negative offset; determining an upper limit of the acceptable window as a serial number associated with a previously acceptable secure token received at the meter plus a positive offset; It is carried out by The previously acceptable secure tokens are either payment-based tokens or time-based tokens. The system of claim 5.
7. The meter further comprises: determining a balance associated with the meter in response to determining that the time period associated with the time-based token has elapsed; in response to determining that a balance associated with the meter is less than a threshold, disconnecting a building premises associated with the meter from the resource distribution network; 4. The method of claim 3, The system of claim 1 .
8. the time-based token is received from the head-end system; The meter further comprises: generating and transmitting a response to the head-end system, the response including one or more of a time-based token, a status of the time-based token, or a status of the meter, the status of the time-based token including an accepted status or a rejected status, and the status of the meter including a disconnected status or a connected status. The system of claim 1 configured to:
9. the time-based token is received from a device coupled to the meter; The meter further comprises: generating and transmitting an event message to the head-end system, the event message including the time-based token; The system of claim 1 configured to:
10. The headend system further comprises: in response to receiving the event message, verifying that the time-based token specified in the event message was generated by the head-end system; in response to determining that the time-based token specified in the event message was not generated by the head-end system, sending a notification to the meter indicating that the time-based token was not generated by the head-end system; The device is configured to: The meter further comprises: in response to receiving a notification indicating that the time-based token was not generated by the head-end system, connecting or disconnecting the building premises from the resource distribution network based on a balance associated with the meter. The system of claim 9 , configured to:
11. 1. A method comprising: receiving, by a meter configured to control connection of a building premises associated with the meter to a resource distribution network, the time-based token being generated based on an identifier of the meter and a time period during which the building premises is connected to a resource distribution network; validating, by the meter, the time-based token, the validating step including determining that the time-based token was generated for the meter using information associated with an identifier of the meter; in response to determining that the time-based token is valid, connecting a building premises associated with the meter to a resource distribution network for at least a time period associated with the time-based token; A method comprising:
12. Furthermore, determining an acceptable window for the time-based token based on token acceptance parameters stored in the meter, the token acceptance parameters being received from a remote computing device prior to receiving the time-based token, the remote computing device being a head-end system or a handheld device; determining whether a serial number associated with the time-based token is within an acceptable window, wherein in response to determining that the serial number associated with the time-based token is within an acceptable window, connecting a building premises associated with the meter to the resource distribution network is performed; in response to determining that a serial number associated with the time-based token is outside the acceptable window, rejecting the time-based token; The method of claim 11 , comprising:
13. The time-based token further includes an integrity field generated by encrypting at least an identifier of the meter; The step of validating the time-based token further comprises: encrypting at least an identifier of the meter using a private key to generate an authentication code; comparing the authentication code with the integrity field of the time-based token; determining, in response to determining that the authentication code matches the integrity field of the time-based token, that the time-based token is generated for the meter; and determining, in response to determining that the authentication code does not match the integrity field of the time-based token, that the time-based token is not generated for the meter; The method of claim 11 , comprising:
14. Furthermore, determining a balance associated with the meter in response to determining that the time period associated with the time-based token has elapsed; in response to determining that a balance associated with the meter is less than a threshold, disconnecting a building premises associated with the meter from the resource distribution network; The method of claim 11 , comprising:
15. The time-based token is received from a head-end system in communication with the meter over at least a mesh network; The method further comprises: generating and transmitting a response to the head-end system, the response including one or more of a time-based token, a time-based token status, or a meter status, the time-based token status including an accepted status or a rejected status, and the meter status including a disconnected status or a connected status. The method of claim 11 , comprising:
16. the time-based token is received from a device coupled to the meter; The method further comprises: generating and sending an event message to a head-end system for validation of the time-based token, the event message including the time-based token; The method of claim 11 , comprising:
17. 1. A method comprising: transmitting, by a head-end system, provisioning data over at least a mesh network to a meter, the provisioning data configured to operate the meter in a mode for accepting a time-based token, the meter being installed at a geographic location and configured to control connection to a resource distribution network for a building premises associated with the meter; receiving, by the head-end system, a request to generate a time-based token for the meter, the time-based token including a time period; generating, by the head-end system, the time-based token based on an identifier of the meter and the time period; transmitting, by the head-end system, the time-based token to the meter over at least the mesh network, the time-based token being used by the meter to connect or disconnect a building premises from the resource distribution network based on a time period associated with the time-based token; A method comprising:
18. the time-based token further includes an integrity field generated by encrypting at least an identifier of the meter, the integrity field being used by the meter to validate the time-based token.
20. The method of claim 17.
19. Furthermore, generating a serial number for the time-based token, at least a portion of the serial number being included in the time-based token; Including, the integrity field of the time-based token is further generated by encrypting at least a serial number of the time-based token and an identifier of the meter.
20. The method of claim 18.
20. Furthermore, in response to receiving an event message from the meter that includes a specific time-based token, verifying that the specific time-based token specified in the event message was generated by the head-end system; in response to determining that the particular time-based token was not generated by the head-end system, sending a notification to the meter indicating that the time-based token was not generated by the head-end system, the notification connecting or disconnecting the building premises from the resource distribution network based on a balance associated with the meter; 20. The method of claim 17, comprising:
Citation Information
Patent Citations
Prepaid meter, system and method for meter reading
JP2001356025A
Communication methods and systems using extended sequence numbers
JP2010538533A
Power supply management system and power supply management method
JP2016151991A
Management of network devices that use authorization tokens
JP2016500491A
Provisioning Platform for Machine-to-Machine Devices
JP2018506770A