Cryptographic Keys Generating and Renewing System for IoT Network Nodes—A Concept
Abstract
:1. Introduction
- Description of the concept of the KGR system intended for the safe distribution and renewal of cryptographic keys for sensor nodes, which are representatives of sensor node clusters formulating the security domain of sensor nodes [7,8]. These keys are designed to protect secure data exchange between domains. Within each secure domain, independent of the KGR system, trust structures are built and implemented mechanisms of data exchange protection and data storage protection.
- A method of building trust between KGR system nodes and protecting the resources of each node of the KGR system.
- A detailed description of the procedures and protocols for data exchange intended for: initiating the KGR system, preparing nodes for work, and registering the nodes in the KGR system as well as generating, renewing, and distributing keys.
- Description of how to use the Trusted Platform Module (TPM) v2.0 hardware modules to support procedures for creating trust, protection of sensor node resources and securing data exchange in the KGR system.
- Description of how to use the Message Queuing Telemetry Transport (MQTT) service to securely distribute data (including cryptographic keys) between KGR system nodes.
- Evaluation of the solution resistance to the most common attacks on the sensor node network.
2. Related Work
3. The Concept of the Cryptographic Keys Generating and Renewing (KGR) System
3.1. The Idea of KGR System Operation
- KS node (Key Server)—the node that is equivalent to the Key Distribution Node in Figure 1 and will be the source of the cryptographic keys;
- N1, N2, … Nk nodes—the representative for domains for whom symmetrical keys will be created;
- AC node—Authorization Centre—a server for two services:
- ⚬
- The service for managing the resources of the KS node, and for adding new identifiers for the authorized N nodes in the resources of the KS node;
- ⚬
- The service to prepare Nk nodes for work.
3.2. The Method of Data Exchange in the KGR System
- Node Nm sends to KS node a request to generate a pair of symmetric keys for Nm and Nn nodes;
- Node KS generate NNSK and NNSKsign keys and temporarily stores them;
- KS node sends the keys to Nm and Nn nodes;
- Node Nn via KS node sends confirmation of key receipt to Nm node;
- After sending the confirmation, KS node removes the NNSK and NNSKsign keys from its resources.
3.3. Proposed KGR System for Mobile IoT Network
- The KGR system is a source of symmetric cryptographic keys generated using a high entropy random number generator (e.g., a quantum random number generator).
- The KGR system is available on the Internet.
- The KGR system only handles requests from authorized clients.
- Data on authorized clients are provided to the KS node by the administrator of the KGR system.
- On behalf of each client of the KGR system, there is one node that is the client’s representative.
- The client representative can be implemented in hardware, but there can also be a software component installed on a computer network node that has access to the KGR system.
- Representatives of two clients applying for a new pair of shared cryptographic keys are the only nodes with which the KGR system exchanges data related to obtaining a common pair of symmetric keys only for these clients.
- The MQTT protocol will be used to distribute cryptographic keys.
- Sensitive data stored in the resources of each node are cryptographically protected.
- Data transmission between nodes is protected by cryptography.
- Each node uses the local trust structure.
- Each node must be registered in the system before it can start normal working—registered nodes before they begin their activities must be authenticated.
- The security mechanisms offered by the Trusted Platform Module (TPM) will be used to secure data resources and secure data exchange between elements of the KGR system and its clients. TPM is an implementation of a standard developed by the Trusted Computing Group [24,25]. This module is designed to hardware support the cryptographic procedures and protocols that can be used for securing data [2,26].
3.4. Key Exchange Domain (KED) Structure
- An autonomous device equipped with a hardware TPM, which implements all the features defined in the specification TCG [24];
- An autonomous device equipped with a hardware TPM, which does not support the hardware features encryption/decryption, these modules do not support the encrypt/decrypt function (an example would be two hardware implementations, i.e., LetsTrust TPM 2.0 and Infineon Iridium SLx 9670 available on the market, according to their documentation, they do not support encryption/decryption functions);
- An autonomous device equipped with a software simulator TPM, which implements all the features defined in the specification TCG [24];
- A program module that does not use the TPM module but provides the generation and renewal of cryptographic keys for the system of which it is representative.
3.5. The Concept of the Nodes Protection
3.5.1. Characteristics of the KS Node
- Local trust structure of the KS node;
- The node’s own data;
- Data for storing node descriptions (KED domain node data) that can use the services offered by the KS node;
- Temporarily stored data that contain cryptographic material created for nodes that are in the process of generating or renewing a symmetric key for those nodes.
- Asymmetric keys SRK, ANK, and KEDK which create local trust structure;
- N_ID—sensor node identifier in the domain;
- Keys:
- ⚬
- NK (Node Key)—symmetric key for encrypting the data stored in local SD memory (the key is used only internally by this node);
- ⚬
- NKsign—key for determining HMAC for data encrypted with the NK key (the key is known only to this node);
- BA (Broker Address)—MQTT broker IP address;
- TOPIC1—topic subscribed by KS in the MQTT service used to initiate the generation and renewal of session keys by N nodes, common to all registered N nodes (10-byte random string generated by the KS node).
- File node_desc—stores data of KED domain nodes that can use the services offered by the KS node. One record in the file includes a description of one node. If only the N_ID and NTAG fields of a given record are filled, then the node status is “authorized to register”. When all the description fields of the node are filled, the node is “registered”. Each node description (except the N_ID field) is encrypted with the NK key. After encryption, the HMAC value is generated for the entire record using the NKsign key. Description of the record fields is as the following:
- N_ID (Node ID)—identifier of the node authorized to register in the domain (random number 4 bytes long—field generated during the procedure of adding a new authorized node to the domain description);
- NTAG (Node Tag)—tag for the node; SHA256 hash from the concatenation of the N_ID field, the public part of the KEDK key, and a double-byte field containing the node description entry number in the node_desc file (field generated during the procedure of adding a new authorized node to the domain description);
- NKSK (Node to Key server Security Key)—a symmetrical key for securing data exchange between a registered node and a KS node (field created during the node registration procedure);
- NKSKsign—key for determining HMAC for data encrypted with the NKSK key (the key is only known for the node and KS node);
- TOPIC2—topic subscribed by the N node in the MQTT service used to exchange data related to generating/renewing session key for N node (10-byte random string generated by the N node);
- HMAC—HMAC value for the entire record, which is generated using the NKsign key.
- File gen_keys—temporarily stores the generated keys, i.e., from the moment they are generated until the confirmation of receipt of these keys by the nodes for which these keys were generated. Each record of the file (except the N_ID1 and N_ID2 fields) is encrypted with the NK key. After encryption, the HMAC value is generated for the entire record using the NKsign key. Description of the record fields is as follows:
- N_ID1—identifier of the node that sent the request to generate/renew the key for the pair of nodes N_ID1 and N_ID2;
- N_ID2—identifier of the second node in the pair for which the key was generated/renewed;
- TOPIC3—topic subscribed by N_ID1 in the MQTT service to receive data from the N_ID2 node;
- TOPIC4—topic subscribed by N_ID2 in the MQTT service to receive data from the N_ID1 node.
3.5.2. Characteristics of N-Type Nodes
- Local trust structure of N node;
- Node’s own data;
- Data on current session keys to secure data exchange with other N-type nodes.
- Asymmetric keys SRK and ANK which create a local trust structure.
- NTAG (Node Tag)—tag for the node; obtained from the AC node during the procedure of preparing the node for work in the KED domain.
- N_ID—sensor node identifier; obtained from the AC node during the procedure of preparing the node for work in the KED domain.
- BA (Broker Address)—MQTT broker IP address.
- keys:
- ⚬
- NK (Node Key)—symmetric key for encrypting the data stored in local SD memory (the key is used only internally by this node);
- ⚬
- NKsign—key for determining HMAC for data encrypted with the NK key (the key is known only to this node);
- ⚬
- NKSK (Node to Key server Security Key)—a symmetrical key for securing data exchange between a registered node and a KS node (known only for the given node and KS node); created during the procedure of registering the node in the KED domain;
- ⚬
- NKSKsign—key for determining HMAC for data encrypted with the NKSK key (known only for the given node and KS node); created during the procedure of registering the node in the KED domain.
- TOPIC1—topic subscribed by KS in the MQTT service used to initiate the generation and renewal of session keys by N nodes, common to all registered N nodes.
- TOPIC2—topic subscribed by node N in the MQTT service for exchanging data with the node KS related to generating/renewing session key.
- File ses_keys—stores data about valid symmetrical session keys to secure data exchange between a given node and a node with identifier N_ID. One record in the file includes a description of one session key. If the CTime field is zeroed, it means that the session key has not been generated yet or expired. Each session key description (except the N_ID and CTime fields) is encrypted with the NK key. After encryption, the HMAC value is generated for the entire record using the NKsign key. Description of the record fields is as follows:
- N_ID (Node ID)—identifier of the target node for which the valid session key is NNSK;
- NNSK (Node to Node Security Key)—a symmetrical key for securing data exchange between a given node and a node with the identifier N_ID (known only for the given node and node with the identifier N_ID);
- NNSKsign—key for determining HMAC for data encrypted with the NNSK key (known only for the given node and node with the identifier N_ID);
- TOPIC3—topic subscribed by the local node to receive data from the N_ID node;
- TOPIC4—topic subscribed by node N_ID to receive data from the local node;
- CTime (Creation Time of the key)—time stamp of the moment of obtaining the session key.
- Node N is a class 1 (RAM << 10 KB and Flash << 100 KB) or class 2 device (RAM ~ 10 KB and Flash ~ 100 KB) constrained device;
- Node N is powered by a class E1 energy source (i.e., “Period energy-limited”, for example battery that is periodically recharged or replaced) or E2 (“Lifetime energy-limited”, for example nonreplaceable primary battery).
3.5.3. Characteristics of the AC Node
- (a)
- Securely forwarding to the KS node a list of N nodes that will be entitled to use the service of the KGR system and obtaining from the KS node the data necessary to initiate cooperation of each of these nodes with the KS node. This data will include the identifier (N_ID) for N node and the tag (NTAG) for this node;
- (b)
- Securely forwarding the credentials prepared by the KS node to authorized N node. These data include the N_ID for N node and the NTAG for this node;
- (c)
- Secure transfer to the authorized N node of a list containing the identifiers of other N-type nodes with which the given node will be able to cooperate.
4. Procedures in the Key Exchange Domain
- The procedure for starting the Broker node;
- The procedure for initiating the KS node;
- The procedure for preparing the credentials for the N node;
- The procedure for initiating N node;
- The procedure for registration N node in the KED domain;
- Procedure for forwarding the list of authorized nodes to cooperation.
- The procedure for generating session keys consists of three stages:
- (a)
- Requesting the session key;
- (b)
- Providing the session key to the destination node;
- (c)
- Confirmation of the delivery of the session key to the destination node.
- Procedure for secure data exchange between nodes.
- The procedure for renewing the session key consists of three stages:
- (a)
- Session key renewal request—includes the process of notifying the other party that the procedure has been initiated;
- (b)
- Providing a renewed session key to the destination node;
- (c)
- Confirmation of the delivery of the renewed session key to the destination node.
4.1. The Procedure for Starting the Broker Node
4.2. The Procedure for Initiating KS Node
4.3. The Procedure for Preparing the Credentials for N Nodes
4.4. The Procedure for Initiating the N Node
4.5. The Procedure for Registration N Node in KED Domain
- (1)
- Generate node registration request—a node registration request sent to the KS node is also a request to send the keys NKSK and NKSKsign, and string TOPIC1 back to the N node. Conduct the following:
- Prepare the nksk_key_req packet containing the following data: N_ID, NTAG, and TOPIC2 of the registered N node (Figure 15). The packet is encrypted using the string from NTAG field, and NTAG is also used to determine the HMAC hash;
- Publish a nksk_key_req packet using the topic TOPIC0.
- (2)
- Generate keys: NKSK and NKSKsign and update the N node description in the node_desc file. Conduct the following:
- On the KS node, decrypt the data from the nksk_key_req packet using the NTAG from the description of the N_ID node and verify the correctness of the NTAG field from the packet. If it is not correct, stop the procedure.
- On the KS node, generate the keys NKSK with the initialization vector and NKSKsign, prepare the N node description, and then encrypt this description using the NK and the IV vector of the KS node, determine the HMAC using NKsign, and update the N node description in local file node_desc. The fields of the description should have the following values:N_ID = the content remains unchanged (the field is not encrypted);NTAG = the content remains unchanged;NKSK and IV = value generated by the KS node;NKSKsign = value generated by the KS node;TOPIC2 = TOPIC2 gathered from the nksk_key_req packet.
- Publish a confirmation of registration to node N (nksk_key_ans packet in Figure 16) using topic TOPIC2 of registered node. The confirmation contains NKSK, IV, NKSKsign, TOPIC1. The fields are encrypted using the NTAG of the registered node, and for the encrypted blob, the HMAC is determined also using NTAG of the registered node.
- (3)
- Acquire NKSK, NKSKsign, and TOPIC1. Conduct the following:
- On the N node, decrypt received the nksk_key_ans packet using NTAG, save the received data in NVRAM of TPM. The data should have the following values:NKSK and IV = NKSK gathered from the nksk_key_ans packet;NKSKsign = NKSKsign gathered from the nksk_key_ans packet;TOPIC1 = TOPIC1 gathered from the nksk_key_req packet.
4.6. Procedure for Forwarding the List of Authorized Nodes to Cooperation
4.7. The Procedure for Generating Session Keys
- (a)
- Requesting the session key;
- (b)
- Providing the session key to the destination node;
- (c)
- Confirmation of the delivery of the session key to the destination node.
- (1)
- Generate session key request. Conduct the following:
- Prepare the nnsk_key_req packet (Figure 23) containing the following data: N_ID1, N_ID2, and topic TOPIC3 which will be subscribed by the N_ID1 node during secure data exchange with the N_ID2 node. The N_ID2 and TOPIC3 fields of the packet are encrypted using the NKSK of N_ID1 node, the HMAC is determined for all fields of the packet using the NKSKsign of the N_ID1 node;
- Publish a nnsk_key req packet using the topic TOPIC1.
- (2)
- Generate keys: NNSK and NNSKsign and create a new entry in the gen_keys file. Conduct the following:
- On the KS node, decrypt the data from the nnsk_key_req packet using the NKSK from the description of the N_ID1 node and verify the HMAC.
- On the KS node, generate the keys NNSK with the initialization vector and NNSKsign, create the description of these keys, and then encrypt this description using the NK and the IV vector of the KS node; determine the HMAC using NKsign and append the keys description in local file gen_keys. The fields of the description should have the following values:N_ID1 = N_ID1 gathered from the nksk_key_req packet;N_ID2 = N_ID2 gathered from the nksk_key_req packet;NNSK and IV = value generated by the KS node;NNSKsign = value generated by the KS node;TOPIC3 = TOPIC3 gathered from the nksk_key_req packet;TOPIC4 = empty;HMAC = HMAC determined for all fields of the entry using NKsign key;CTime—time stamp of the operation;The fields NNSK, NNSKsign, TOPIC3, and TOPIC4 are encrypted using the NK key of the KS node.
- Publish a response to the session key request frame to the N_ID1 node (nnsk_key_ans packet showed in Figure 24) using topic TOPIC2 of N1 node. The fields: N_ID1, N_ID2, NNSK, and NNSKsign are encrypted using the NKSK of N_ID1 node; the HMAC is determined for all fields of the packet using the NKSKsign of N_ID1 node.
- Publish a notification about the new session key to N_ID2 node (nnsk_not_req packet showed in Figure 25) using topic TOPIC2 of the N2 node. The fields: N_ID, NNSK, NNSKsign, and TOPIC3 are encrypted using the NKSK of N_ID2 node; the HMAC is determined for all fields of the packet using the NKSKsign of N_ID2 node.
- (3)
- On N1 node—acquire keys: NNSK and NNSKsign and update the ses_key file. Conduct the following:
- On the N1 node, decrypt the data from the nnsk_key_ans packet using the NKSK of the N1 node and verify the HMAC.
- On the N1 node, update the entry for node N_ID2 in the ses_keys file based on the data from the received frame. The fields of the entry should have the following values:N_ID—should be the same as field N_ID2 from the received frame;NNSK and IV = NNSK gathered from the nnsk_key_ans packet;NNSKsign = NNSKsign gathered from the nnsk_key_ans packet;TOPIC3—should remain unchanged;TOPIC4 = empty;HMAC = HMAC determined for all fields of the entry using the NKsign key;The fields NNSK, NNSKsign, TOPIC3, and TOPIC4 are encrypted using NK key of the N1 node.
- (4)
- On N2 node—acquire keys: NNSK and NNSKsign and update ses_key file. Conduct the following:
- On the N2 node, decrypt the data from the nnsk_not_req packet using the NKSK of the N2 node and verify the HMAC.
- On the N2 node, create the entry for node N_ID1 in ses_keys file based on the data from the received frame. The fields of the entry should have the following values:N_ID–N_ID gathered from the nnsk_not_req packet;NNSK and IV = NNSK gathered from the nnsk_not_req packet;NNSKsign = NNSKsign gathered from the nnsk_not_req packet;TOPIC—10-bytes string generated by the the N2 node;TOPIC4 = TOPIC3 gathered from the nnsk_not_req packet;HMAC = HMAC determined for all fields of the entry using the NKsign key;The fields NNSK, NNSKsign, TOPIC3, and TOPIC4 are encrypted using the NK key of the N2 node.
- Publish response to notification about the new session key to KS node (nnsk_not_ans packet showed in Figure 26) using topic TOPIC1 of the KS node. The fields: N_ID2 and TOPIC4 are encrypted using the NKSK of the N_ID2 node; the HMAC is determined for all fields of the packet using the NKSKsign of N_ID2 node.
- (5)
- Update gen_keys file. Conduct the following:
- On the KS node, decrypt the data from the nnsk_not_ans packet using the NKSK from the description of the N_ID2 node and verify the HMAC.
- On the KS node, update the description of the session key requested by the N_ID1 node in the gen_keys file. The fields of the description should have the following values:N_ID1—should be the same as field N_ID1 from the received frame;N_ID2—should be the same as field N_ID2 from the received frame;NNSK and IV—should remain unchanged;NNSKsign—should remain unchanged;TOPIC3—should remain unchanged;TOPIC4 = TOPIC4 gathered from nnsk_not_ans packet;HMAC = HMAC determined for all fields of the entry using NKsign key of the KS node;The fields N_ID2, NNSK, NNSKsign, TOPIC3, and TOPIC4 are encrypted using the NK key of the KS node.
- Publish a session key confirmation request to the N1 node (nnsk_conf_req packet showed in Figure 27) using topic TOPIC2 of the N1 node. The fields: N_ID1, N_ID2, and TOPIC4 are encrypted using the NKSK of N_ID1 node; the HMAC is determined for all fields of the packet using the NKSKsign of N_ID1 node.
- (6)
- Update ses_key file. Conduct the following:
- On the N1 node, decrypt the data from the nnsk_conf_req packet using the NKSK of the N1 node and verify the HMAC.
- On the N1 node, update the entry for node N_ID2 in the ses_keys file based on the data from the received frame. The fields of the entry should have the following values:N_ID—should be the same as field N_ID2 from the received frame;NNSK and IV—should remain unchanged;NNSKsign should remain unchanged;TOPIC3—should remain unchanged;TOPIC4 = TOPIC4 gathered from the nnsk_conf_req packet;HMAC = HMAC determined for all fields of the entry using the NKsign key;The fields NNSK, NNSKsign, TOPIC3, and TOPIC4 are encrypted using NK key of the N1 node.
- Publish a response to session key confirmation request to SK node (nnsk_conf_ans packet showed in Figure 28) using topic TOPIC1 of the KS node. The field N_ID2 is encrypted using the NKSK of N_ID1 node, the HMAC is determined for all fields of the packet using the NKSKsign of the N_ID1 node.
- (7)
- Delete NNSK data from gen_keys file. Conduct the following:
- On the KS node, decrypt the data from the nnsk_conf_ans packet using the NKSK from the description of the N_ID1 node and verify the HMAC;
- Delete the session key entry for the N_ID1 and N_ID2 node pair from the gen_keys file.
4.8. Procedure for Secure Data Exchange between Nodes
- (1)
- Generate data packet. Conduct the following:
- Prepare the node_data_req packet (Figure 32) containing the following data: N_ID1 (ID of sending node), N_ID2 (ID od destination node), and DATA. The N_ID2 and DATA fields of the packet are encrypted using the NKSK session key common for N_ID1 and N_ID2 nodes; the HMAC is determined for all fields of the packet using also common NNSKsign;
- Publish a node_data_req packet using the topic TOPIC3 subscribed by the N_ID2 node for exchange data session with N_ID1 node.
- (2)
- Acquire data. Conduct the following:
- On the N2 node, decrypt the data from the node_data_req packet using the NNSK session key for a pair of nodes N1 and N2 and verify the HMAC.
- Extract the data from the DATA field.
- Publish a response to the data packet frame to the N_ID1 node (node_data_ans packet showed in Figure 33) using topic TOPIC3 subscribed by the N_ID1 node for exchange data session with the N_ID2 node. The field N_ID2 is encrypted using the NNSK session key for a pair of nodes N1 and N2, the HMAC is determined for all fields of the packet using common NKSKsign.
4.9. The Procedure for Renewing the Session Keys
- (a)
- Session key renewal request—includes the process of notifying the other party that the procedure has been initiated;
- (b)
- Providing a renewed session key to the destination node;
- (c)
- Confirmation of the delivery of the renewed session key to the destination node.
5. Security Evaluation
5.1. Node Replication Attack
5.2. Sensor Impersonation
5.3. Attack on Information in Transit
5.4. Denial of Service
5.5. Routing Attacks
5.6. Botnet Activities
6. Implementation
7. Future Work
Funding
Acknowledgments
Conflicts of Interest
References
- Diffie, W.; Hellman, M.E. New Directions in Cryptography. IEEE Trans. Inf. Theory 1976, 22, 644–654. [Google Scholar] [CrossRef] [Green Version]
- Will, A.; Challener, D.; Goldman, K. History of the TPM. In A Practical Guide to TPM 2.0; Apress Media: Berkeley, CA, USA, 2015. [Google Scholar]
- Barker, E.; Barker, W.; Burr, W.; Polk, W.; Smid, M. Recommendation for Key Management—Part 1: General (Revised). Natl. Inst. Stand. Technol. 2007. [Google Scholar] [CrossRef]
- Kodali, R.K.; Chougule, S.; Agarwal, A. Key management technique for heterogeneous wireless sensor networks. In IEEE 2013 Tencon—Spring; IEEE: Piscataway, NJ, USA, 2013; pp. 183–187. [Google Scholar]
- Frustaci, M.; Pace, P.; Aloi, G.; Fortino, G. Evaluating Critical Security Issues of the IoT World: Present and Future Challenges. IEEE Internet Things J. 2018, 5, 2483–2495. [Google Scholar] [CrossRef]
- Keoh, S.L.; Kumar, S.S.; Tschofenig, H. Securing the Internet of Things: A standardization perspective. IEEE Internet Things J. 2014, 1, 265–275. [Google Scholar] [CrossRef]
- Furtak, J.; Zieliński, Z.; Chudzikiewicz, J. Procedures for sensor nodes operation in the secured domain. Concurr. Comput. Pract. Exp. 2019, 32, e5183. [Google Scholar] [CrossRef]
- Furtak, J.; Zieliński, Z.; Chudzikiewicz, J. A Framework for Constructing a Secure Domain of Sensor Nodes. Sensors 2019, 19, 2797. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Johnsen, F.T.; Zieliński, Z.; Wrona, K.; Suri, N.; Fuchs, C.; Pradhan, M.; Furtak, J.; Vasilache, B.; Pellegrini, V.; Dyk, M.; et al. Application of IoT in Military Operations in a Smart City. In 2018 International Conference on Military Communications and Information Systems (ICMCIS); IEEE: Piscataway, NJ, USA, 2018; pp. 163–169. [Google Scholar] [CrossRef]
- Suri, N.; Zieliński, Z.; Tortonesi, M.; Fuchs, C.; Pradhan, M.; Wrona, K.; Furtak, J.; Vasilache, B.; Street, M.; Pellegrini, V.; et al. Exploiting smart city IoT for disaster recovery operations. In IEEE 4th World Forum on Internet of Things (WF-IoT); IEEE: Piscataway, NJ, USA, 2018; pp. 458–463. [Google Scholar] [CrossRef]
- Dammak, M.; Senouci, S.M.; Messous, M.A.; Elhdhili, M.H.; Gransart, C. Decentralized Lightweight Group Key Management for Dynamic Access Control in IoT Environments. IEEE Trans. Netw. Serv. Manag. 2020, 1–15. [Google Scholar] [CrossRef]
- Tan, H.; Chung, I. A Secure and Efficient Group Key Management Protocol with Cooperative Sensor Association in WBANs. Sensors 2018, 18, 3930. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Zhu, B.; Susilo, W.; Qin, J.; Guo, F.; Zhao, Z.; Ma, J. A Secure and Efficient Data Sharing and Searching Scheme in Wireless Sensor Networks. Sensors 2019, 19, 2583. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Park, M.; Park, Y.; Jeong, H.; Seo, S. Key Management for Multiple Multicast Groups in Wireless Networks. IEEE Trans. Mob. Comput. 2012, 12, 1712–1723. [Google Scholar] [CrossRef]
- Zhong, H.; Luo, W.; Cui, J. Multiple multicast group key management for the Internet of People. Concurr. Comput. Pract. Exp. 2016, 29, e3817. [Google Scholar] [CrossRef]
- Ding, W.; Hu, R.; Yan, Z.; Qian, X.; Deng, R.H.; Yang, L.T.; Dong, M. An Extended Framework of Privacy-Preserving Computation with Flexible Access Control. IEEE Trans. Netw. Serv. Manag. 2020, 17, 918–930. [Google Scholar] [CrossRef]
- Mehdizadeh, A.; Hashim, F.; Othman, M. Lightweight decentralized multicast–unicast key management method in wireless IPv6 networks. J. Netw. Comput. Appl. 2014, 42, 59–69. [Google Scholar] [CrossRef]
- Kung, Y.; Hsiao, H. GroupIt: Lightweight Group Key Management for Dynamic IoT Environments. IEEE Internet Things J. 2018, 5, 5155–5165. [Google Scholar] [CrossRef]
- Abdmeziem, M.R.; Tandjaoui, D.; Romdhani, I. A Decentralized Batch-Based Group Key Management Protocol for Mobile Internet of Things (DBGK). In Proceedings of the IEEE International Conference on Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing, Liverpool, UK, 26–28 October 2015; pp. 1109–1117. [Google Scholar] [CrossRef]
- Abdmeziem, M.R.; Charoy, F. Fault-Tolerant and Scalable Key Management Protocol for IoT-Based Collaborative Groups. In Security and Privacy in Communication Networks. SecureComm 2017. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering; Lin, X., Ghorbani, A., Ren, K., Zhu, S., Zhang, A., Eds.; Springer: Cham, Switzerland, 2017; Volume 239, pp. 320–338. [Google Scholar] [CrossRef] [Green Version]
- Cheikhrouhou, O. Secure Group Communication in Wireless Sensor Networks: A survey. J. Netw. Comput. Appl. 2016, 61, 115–132. [Google Scholar] [CrossRef]
- Yao, W.; Han, S.; Li, X. LKH++ Based Group Key Management Scheme for Wireless Sensor Network. Wirel. Pers. Commun. 2015, 83, 3057–3073. [Google Scholar] [CrossRef]
- Tian, Y.; Wang, Z.; Xiong, J.; Ma, J. A Blockchain-Based Secure Key Management Scheme with Trustworthiness in DWSNs. IEEE Trans. Ind. Inform. 2020, 16, 6193–6202. [Google Scholar] [CrossRef]
- Trusted Computing Group. TPM Main Part 1 Design Principles. Specification Version 1.2, Revision 116; Trusted Computing Group: Beaverton, OR, USA, 2011. [Google Scholar]
- Trusted Computing Group. Trusted Platfom Module Library (Part 1–4), Family 2.0, Level 00, Rev. 01.38; Trusted Computing Group: Beaverton, OR, USA, 2016. [Google Scholar]
- Kinney, S. Trusted Platform Module Basics: Using TPM in Embedded Systems; Embedded Technology Series; Elsevier Inc.: Philadelphia, PA, USA, 2006. [Google Scholar]
- Bormann, C.; Ersue, M.; Keranen, A. Terminology for Constrained-Node Networks. Internet Eng. Task Force 2014, 2070-1721. [Google Scholar]
- Healy, M.; Newe, T.; Lewis, E. Security for Wireless Sensor Networks: A Review. In 2009 IEEE Sensors Applications Symposium; IEEE: New Orleans, LA, USA, 2009; pp. 80–85. [Google Scholar] [CrossRef]
- Kolias, C.; Kambourakis, G.; Stavrou, A.; Voas, J. DDoS in the IoT: Mirai and Other Botnets. Computer 2017, 50, 40–44. [Google Scholar] [CrossRef]
- Socha, E. Protocol for Renewing Cryptographic Keys Using the MQTT Server. Engineer’s Thesis, Military University of Technology, Warsaw, Poland, 2020. (In Polish). [Google Scholar]
Topic | Node | Purpose |
---|---|---|
TOPIC0 1 | KS | for each N node for the first request during the registration procedure |
TOPIC1 | KS | for subsequent requests from the given N node during the registration procedure |
TOPIC2 | N | for requests from KS node |
TOPIC3mn | Nm | for requests from Nn node |
TOPIC4mn | Nm | for publishing to Nn node |
© 2020 by the author. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Furtak, J. Cryptographic Keys Generating and Renewing System for IoT Network Nodes—A Concept. Sensors 2020, 20, 5012. https://doi.org/10.3390/s20175012
Furtak J. Cryptographic Keys Generating and Renewing System for IoT Network Nodes—A Concept. Sensors. 2020; 20(17):5012. https://doi.org/10.3390/s20175012
Chicago/Turabian StyleFurtak, Janusz. 2020. "Cryptographic Keys Generating and Renewing System for IoT Network Nodes—A Concept" Sensors 20, no. 17: 5012. https://doi.org/10.3390/s20175012
APA StyleFurtak, J. (2020). Cryptographic Keys Generating and Renewing System for IoT Network Nodes—A Concept. Sensors, 20(17), 5012. https://doi.org/10.3390/s20175012