SNPL: One Scheme of Securing Nodes in IoT Perception Layer

The trustworthiness of data is vital data analysis in the age of big data. In cyber-physical systems, most data is collected by sensors. With the increase of sensors as Internet of Things (IoT) nodes in the network, the security risk of data tampering, unauthorized access, false identify, and others are overgrowing because of vulnerable nodes, which leads to the great economic and social loss. This paper proposes a security scheme, Securing Nodes in IoT Perception Layer (SNPL), for protecting nodes in the perception layer. The SNPL is constructed by novel lightweight algorithms to ensure security and satisfy performance requirements, as well as safety technologies to provide security isolation for sensitive operations. A series of experiments with different types and numbers of nodes are presented. Experimental results and performance analysis show that SNPL is efficient and effective at protecting IoT from faulty or malicious nodes. Some potential practical application scenarios are also discussed to motivate the implementation of the proposed scheme in the real world.


Introduction
The Internet of Things (IoT) is well-known for the integration of several technologies with communication systems [1]. The prosperity of IoT is not the reason to neglect its security issues. In fact, the security of IoT is far worse than people know in this respect. There are numerous examples in the real-world about IoT security. For instance, the embedded Radio Frequency Identification (RFID) tags in devices and equipment can transmit or reply to messages [2]. Without appropriate authentication mechanisms, data that are collected by sensor networks may be accessed or distorted by attackers [3]. The sensor system works in unattended status, such that adversaries can modify the information stored in the nodes or decides when the data are delivered to the destination [4]. In the case of node capture attacks, adversaries can capture or control smart devices, by physically replacing or tampering with the nodes and disguising a malicious node like a normal node, to interface with the system [5,6]. In these attacks, malicious nodes can transfer legal identity information, which was received from normal nodes to the target hosts, so that the rogue devices gain trust in IoT networks [7]. Moreover,

1.
Propose a security scheme for the perception layer of IoT to identify and avoid potential hazards caused by unsafe nodes, 2.
Combine the TEE technology with the SNPL scheme to provide a safe isolation space for sensitive operations, such as key generation and node identification, 3.
The scheme satisfies the requirement of Confidentiality, Integrity, and Availability (CIA), as well as the lightweight property, which offers higher availability and portability for application in IoT devices, and 4.
Use unique information of each device node as a kind of identifier such that forgery attacks and substitution attacks can be effectively reduced. Furthermore, appropriate encryption technologies can be integrated to enhance the security of the algorithm.
Sensors 2020, 20, 1090 3 of 21 Note that this paper mainly focuses on the effectiveness and accuracy of the proposed framework based on our algorithm, of which the results are expressed as the success rate. Besides, the performance tests in experiments pay close attention to the various types and quantities of nodes in a small-scale local IoT. The later experiments are designed and simulated with the Raspberry Pi instead of real-time applications on a hardware device, for the processing time aiming at highly time-sensitive applications is not our research focus. Meanwhile, the performance of transmitting periodically nodes, sensors transmitting at fixed periodic time slots, or other conditions are not within the scope of our research either.
The remainder of this paper is organized, as follows. Section 2 introduces technical preliminaries such as TEE, Attribute-Based Signature (ABS) scheme, and a brief introduction of number theory, which are the technical base of the proposed scheme. Section 3 describes the SNPL scheme in detail. Section 4 presents experiments and evaluation metrics to assess the performance of SNPL. Section 5 discusses the possible applications, which is followed by concluding remarks in Section 6. The main contributions of this paper are outlined, as the following: 1. Propose a security scheme for the perception layer of IoT to identify and avoid potential hazards caused by unsafe nodes, 2. Combine the TEE technology with the SNPL scheme to provide a safe isolation space for sensitive operations, such as key generation and node identification, 3. The scheme satisfies the requirement of Confidentiality, Integrity, and Availability (CIA), as well as the lightweight property, which offers higher availability and portability for application in IoT devices, and 4. Use unique information of each device node as a kind of identifier such that forgery attacks and substitution attacks can be effectively reduced. Furthermore, appropriate encryption technologies can be integrated to enhance the security of the algorithm.
Note that this paper mainly focuses on the effectiveness and accuracy of the proposed framework based on our algorithm, of which the results are expressed as the success rate. Besides, the performance tests in experiments pay close attention to the various types and quantities of nodes in a small-scale local IoT. The later experiments are designed and simulated with the Raspberry Pi instead of real-time applications on a hardware device, for the processing time aiming at highly timesensitive applications is not our research focus. Meanwhile, the performance of transmitting periodically nodes, sensors transmitting at fixed periodic time slots, or other conditions are not within the scope of our research either.
The remainder of this paper is organized, as follows. Section 2 introduces technical preliminaries such as TEE, Attribute-Based Signature (ABS) scheme, and a brief introduction of number theory, which are the technical base of the proposed scheme. Section 3 describes the SNPL scheme in detail.

Preliminaries
This section briefly introduces key technologies used in the proposed scheme. These technologies include TEE, ABS scheme, and two mathematical concepts, which are grouped with bilinear pairings and monotone span programs.

Trusted Execution Environment (TEE)
TEE is a tamper-resistant processing environment, which is independent of the normal environment [18]. It runs on an isolated kernel and has the ability to fight against physical attacks as well as software attacks in the main memory. The substance of TEE is dynamic and updated securely [19]. Usually, TEE is used to execute sensitive operations such as encryption or key generation, and it often has more restricted functions and rooms than REE.
Briefly, TEE is constructed to run security services, while REE is a platform for devices to request services. REE represents a normal processing environment with rich functions. For example, Windows, Linux, Android, and IOS can be referred. The basic interaction process between TEE and REE is supported by client Application Programming Interface (API) and shared memory as shown in Figure 2. This interaction process provides a safe and feasible way to transfer information between the two isolated execution environments.
well as software attacks in the main memory. The substance of TEE is dynamic and updated securely [19]. Usually, TEE is used to execute sensitive operations such as encryption or key generation, and it often has more restricted functions and rooms than REE.
Briefly, TEE is constructed to run security services, while REE is a platform for devices to request services. REE represents a normal processing environment with rich functions. For example, Windows, Linux, Android, and IOS can be referred. The basic interaction process between TEE and REE is supported by client Application Programming Interface (API) and shared memory as shown in Figure 2. This interaction process provides a safe and feasible way to transfer information between the two isolated execution environments.

Attribute-Based Signature (ABS) Scheme
The ABS scheme is a multifunctional control scheme. It allows for users to sign a message by taking advantage of fine-grained controls over identifying information. For this, the identity of a signer is uniquely represented by a collection of attributes and a signature of the signer is generated based on these attributes [20]. Afterward, the signature result can be used, for instance, for verifying a user's identification. In short, the rights of users depend on their attributes. Besides, more application samples can be referred in [20].
A typical ABS scheme has four main steps, which are presented [21]: 1. Setup: The authority or trusted third-party acquires a key pair: Public key (PK) and Master key (MK). Then, the PK will be opened and the MK will be kept privately. Both PK and MK are generated by a series of parameters (denoted as para). This step is shown as (PK, MK) ⃪ Setup (para).

Attribute-Based Signature (ABS) Scheme
The ABS scheme is a multifunctional control scheme. It allows for users to sign a message by taking advantage of fine-grained controls over identifying information. For this, the identity of a signer is uniquely represented by a collection of attributes and a signature of the signer is generated based on these attributes [20]. Afterward, the signature result can be used, for instance, for verifying a user's identification. In short, the rights of users depend on their attributes. Besides, more application samples can be referred in [20].
A typical ABS scheme has four main steps, which are presented [21]: 1. Setup: The authority or trusted third-party acquires a key pair: Public key (PK) and Master key (MK). Then, the PK will be opened and the MK will be kept privately. Both PK and MK are generated by a series of parameters (denoted as para). This step is shown as (PK, MK) ← Setup (para).

2.
KeyGen: In order to assign users a set of attributes (denoted as Attr), the third party or authority generates a Signing key (SK). The SK is given to users for further use. This step is expressed as SK ← KeyGen(PK, MK, Attr).

3.
Sign: In this step, the user obtains a Signature σ on the basis of a Claim-Predicate Υ, along with the PK, SK and the attribute set. The user can then use σ to sign a message m. The process is represented as σ ← Sign(PK, SK, m, Υ).

4.
Verify: To verify the Signature of the message with the Predicate Y, this step employs a Boolean function value ← Verify(PK, m, Υ, σ). According to the output, target parties can judge the identity of data generators.

Groups with Bilinear Pairings
Let G 1 , G 2 and G T be the cyclic multiplicative groups, whose orders are all a prime p. Let g 1 and g 2 be the generators of G 1 and G 2 separately, and a map m : G 1 × G 2 → G T . If m(g 1 , g 2 ) is a generator of G T then m : G 1 × G 2 → G T is a bilinear pairing and it has the following properties [22]: There exists g 1 ∈ G 1 , g 2 ∈ G 2 that satisfy m(g 1 , g 2 ) 1; 3.
There is always an effective method to calculate m(g 1 , g 2 ) for all g 1 ∈ G 1 , g 2 ∈ G 2 .

Monotone Span Programs
Suppose there is a matrix M with l rows and t columns, and a nonzero row vector

The SNPL Scheme
In this section, the SNPL scheme is elaborated for the improvement of reliability and robustness. First, the node fingermark concept is described to ensure the uniqueness of the node. By doing so, the SNPL scheme can separate the true node from others. Second, the design of the scheme is discussed. Finally, the security proof of the proposed design is provided.

Node Fingermark
To exploit the unique identification information of an IoT node, the concept of fingermark is used to certify objects by unique features extracted from equipment information. Aside from the Universally Unique Identifier (UUID) of a device, more complex information or node attributes can be included. In the SNPL scheme, the Unique Identifier of a hardware device, which is the unique hardware configuration information of an IoT node, is the original information. If the node is replaced by a new one, the information will change correspondingly. The hash algorithm is used for a hashing of the information. The result of encryption is considered as a fingermark value of a device node. The result of hash value can be used to ensure the trustworthiness of data sources and, therefore, the identity of the node is guaranteed. Figure 3 shows a usage scenario of the SNPL scheme in the IoT environment. Suppose there is an IoT network made up of many IoT nodes. Device nodes are located throughout the physical world and they gather information by various kinds of sensors embedded inside. The collected information will then be transmitted to the key nodes (for example, the gateways in Figure 3) in IoT. Finally, the key nodes transfer the processed data to other consumers. The main uncertainty for the security of the process is that the originality of data, such as the data gathered in key nodes, cannot be guaranteed. This is a hidden danger at the beginning of the process and may lead to failure of the whole process. To solve this problem, a security scheme is injected into the perception layer of IoT, between endpoint nodes (i.e., the IoT devices in Figure 3) and key nodes. The security scheme can effectively reduce hazards from the beginning by distinguishing nodes with the opposite status.

Scheme Design
Sensors 2020, 20, 1090 6 of 21 key nodes transfer the processed data to other consumers. The main uncertainty for the security of the process is that the originality of data, such as the data gathered in key nodes, cannot be guaranteed. This is a hidden danger at the beginning of the process and may lead to failure of the whole process. To solve this problem, a security scheme is injected into the perception layer of IoT, between endpoint nodes (i.e., the IoT devices in Figure 3) and key nodes. The security scheme can effectively reduce hazards from the beginning by distinguishing nodes with the opposite status.  Figure 4 exhibits the dominant modules in the proposed security scheme, which is divided into two parts of execution by employing the REE and TEE technologies. Both parts are running on the same device as well as the object to build the SPNL scheme. In this scheme, REE runs common insensitive operations and connects unknown nodes. TEE runs the following five modules as trusted applications: i. FMK-Gen (responsible for fingermark generation of devices); ii. MPK-Gen (generating the master key and public key); iii. IK-Gen (create the individual key through the MK and fingermarks); iv. Sign (use IK to generate a signature for signing the incoming data from nodes and setting up an access policy); and, v. Verify (use PK, signatures, and the access policy to verify the identification of the data transmitter). After all sensitive processes have been executed in TEE, the results will be sent back to REE for later use.  Figure 4 exhibits the dominant modules in the proposed security scheme, which is divided into two parts of execution by employing the REE and TEE technologies. Both parts are running on the same device as well as the object to build the SPNL scheme. In this scheme, REE runs common insensitive operations and connects unknown nodes. TEE runs the following five modules as trusted applications: i. FMK-Gen (responsible for fingermark generation of devices); ii. MPK-Gen (generating the master key and public key); iii. IK-Gen (create the individual key through the MK and fingermarks); iv. Sign (use IK to generate a signature for signing the incoming data from nodes and setting up an access policy); and, v. Verify (use PK, signatures, and the access policy to verify the identification of the data transmitter). After all sensitive processes have been executed in TEE, the results will be sent back to REE for later use.

FMK-Gen
In this step, the device node's unique authentication information is used to generate a safe value to be used later.
At first, the system defines a structure for each IoT device, which consists of two parts, and expressed as = { , } Meanwhile, suppose that all IoT nodes with sensors are placed in REE. By the interaction process, IoT nodes transmit gathered data with their configuration information from REE to the FMK-Gen module in TEE.
After that, the FMK-Gen module extracts the identity information, such as UUID and International Mobile Equipment Identity (IMEI), from equipment nodes, and then uses the hash algorithm to generate a secure unique value . This process can be expressed as: = ℎ ℎ( ). Here the Message-Digest Algorithm 5 (MD5) from OpenSSL library is used to calculate MD5 values as .

FMK-Gen
In this step, the device node's unique authentication information is used to generate a safe value to be used later.
At first, the system defines a structure for each IoT device, which consists of two parts, FMKpart and Data part expressed as Struct = FMK part, Data part Meanwhile, suppose that all IoT nodes with sensors are placed in REE. By the interaction process, IoT nodes transmit gathered data with their configuration information from REE to the FMK-Gen module in TEE.
After that, the FMK-Gen module extracts the identity information, such as UUID and International Mobile Equipment Identity (IMEI), from equipment nodes, and then uses the hash algorithm to generate a secure unique value FMK value . This process can be expressed as: Here the Message-Digest Algorithm 5 (MD5) from OpenSSL library is used to calculate MD5 values as FMK value .
At the end of this step, the system puts FMK value into FMKpart of Struct. Meanwhile, the original data is sent into Data part by IoT terminal nodes. This can be expressed as: FMK part ← FMK value and Data part ← original Data . Now, each equipment node corresponds to a structure built based on its unique identity and gathered data. The process can be realized by Algorithm 1 shown below, where i represents the current node and sum represents the maximum number of nodes:

MPK-Gen
In this step, the following groups and functions are defined first: two cyclic groups Z * p and Z p in which prime order p is the size of the group, universe of attributes U = Z * p , a collision-resistant hash function H : {0, 1} * → Z * p , and two cyclic groups G 1 and G 2 of size p that are equipped with a bilinear pairing e : G 1 × G 2 → G T . Then, the required generators and parameters are emerged as follows: where g is a generator of G 1 , g 0 , . . . , g w max are generators of G 2 , x 0 , x, y, z are randomly chosen from Z * p , respectively. Then, we set the following values: Next, the master key MK = (x 0 , x, y, z) and the public key The process is summarized in Algorithm 2:

Algorithm 2 Master Key and Public Key Generation
Input: cyclic groups Z * p and Z p of size p, cyclic groups G 1 and G 2 of size p Output: MK and PK Return MK and PK;

IK-Gen
In this step, it is assumed that U ⊆ U; and ∀a ∈ U , where U is an attribute set that contains attributes satisfying the access policy, and a is one of the legal attributes. For a randomly selected generator s ← G 1 , the following values can be set: Note that FMK value is used to construct the value a, which is one of a ∈ U : According to the generated MK and the attribute set U , the user's individual key is: The above process can be summarized as Algorithm 3: Sensors 2020, 20, 1090 9 of 21

Agorithm 3 Individual Key Generation
Input: master key MK and Fingermark FMK value of an IoT node Output: individual key IK of an IoT node Firstly, an access policy is set up to decide which user can get into the system on the basis of its attributes. Then, the Sign module defines a predicate ρ(U ) = 1; and calculates a matrix M l×w based on the predicate, and a label vector a i , which indicates the relationship between an attribute and its corresponding row. This step means that policy ρ corresponds to the monotone span program M ∈ Z p l×w with the row labeling a : {l} → U. According to the program M given above, a vector v corresponding to U is computed through the following rules: v i has two values of 0 and 1, which v i = 1 means the corresponding attribute a i is used in the access policy while v i = 0 means a i is not used or does not exist. Finally, ε is calculated as ε = H(d ρ).
Note that only the set of accessible FMK value of authorized nodes is applied to the policy ρ. The FMK value of those inaccessible nodes are not included in ρ. The policy ρ is constructed through OR operation with authorized FMK value as follows: where a 1 = FMK value1 , a 2 = FMK value2 . . . a i = FMK valuei . The process can be summarized in Algorithm 4: Choose random generators t 0 from Z * p and t 1 , t 2 , . . . t l from Z * p , which are expressed as t 0 ← Z * p and t 1 , t 2 , . . . t l ← Z p , respectively. Then, set values F, B, L i and R j where ∀i ∈ {l} and ∀ j ∈ {w}: The signature for signing the data in Datapart is set as σ = (F, B, L 1 . . . L l , R 1 . . . R w ). The process can be summarized in Algorithm 5.

Algorithm 4 Set up An Access Policy
Input: FMK value of addressable IoT nodes Output: an access policy ρ Define ρ(U ) ← 1 ;

Algorithm 5 Signature Generation
Input: individual key IK of an IoT node Output: signature σ of a specific IoT node

Verify
Based on PK, σ, and ρ generated in the above algorithms, the system can determine whether an input should be accepted or rejected. The result SUCCEED means the node gets the authority successfully, while the result FAILED means the node is access-denied. The first step is checking the value of F. F = 1 indicates FAILED. For F = 0, the following conditions need to be check for all j ∈ {w}: 1.
e(B, g 0 If all od the above conditions hold, the results is SUCCEED. The system then transmits the result from TEE to REE. The incoming data in Datapart of authorized nodes will be sent back to REE for further use. Meanwhile, the data from rejected nodes are deleted. This process can be summarized in Algorithm 6: If YES, return SUCCEED; Else return FAILED;

Security Proof
This section provides a security proof of our scheme, which covers illustrations of correctness, privacy, and unforgeability with formulations. The scheme satisfying the proof can be considered as a safe solution once proved correct, entirely private and unforgeable [20].
Correctness means that in the light of PK, MK, IK, access policy, and correspondingly generated true signatures, correct verification results and equations can be obtained in the process of verification. By the detailed explanation in Section 3.2 and the direct substitution method, it is obvious that the correctness is fulfilled.
Privacy means the attacker never receive attributes and IK of a legal node by the generated signature. Here we can see that even though there are different attribute sets leading to different IKs, any legal attribute sets resulting Veri f y(PK, d, ρ, σ) = 1 have the identical distribution while calculating signatures under the same ρ. When an attacker generates a hoped-for signature without legal attributes, there is a neglectable possibility to gain a signature satisfying the access policy, which makes ρ(U ) = 1 and Veri f y(PK, d, ρ, σ) = 1. Still, the terms in σ = (F, B, L 1 . . . L l , R 1 . . . R w ) are unique corresponding while successfully verified. So, the IK and signature generated at different times are distinct, which draws to the conclusion that privacy is guaranteed. The unforgeability means the success probability of an attacker in any polynomial times is ignorable when faced with the following circumstance:

1.
Generate public key and master key by (PK, MK) ← MPK-Gen, and send the results to the attacker; and, 2.
The attacker has access to the IK-Gen module and Sign module such that it can generate a forged signature σ * to pass the validation of the access policy.
In other words, when an attacker has incorrect access structure and inappropriate attributes, but eventually gains a correct verification result, we can say that the attacker succeeds to get access.
The remaining of this section verifies this property. Let M ∈ Z p l×w be the monotone span program of ρ, a be the row labeling that a : {l} → U, and ε = H(d ρ). Then, the following steps are implemented:

2.
Calculate r j = 1 3. Let the signature σ = (σ 1 , σ 2 , σ 3 , σ 4 ), where σ 1 = g t 0 s , σ 2 = g s(t 0 +z)/x 0 z , It is necessary to use the programmatic techniques of universal groups to certify the unforgeability as shown below. Before formal certification, parameters are set similar to previous algorithms in Section 3.2. An assumption is then made that the fake signature of an attacker is defined as: Similarly, let M * ∈ Z p l * ×w * , of which a * is the row labeling. At last, let ε * = H(d * ρ * ).
Note that u * 0 and b * = s(t 0 +z) x 0 z . To construct the counterfeit signature, the following equation is constructed: where v j = [1, 0, . . . , 0]. Here a hypothesis is that the above equation holds, followed with getting a contradictory result. That is to say, here reduction to absurdity is used as an effective method, aiming at reaching an outcome that the attacker can produce a legitimate signature using IK, so that the signature is not a counterfeit. Let Lin(P) be the collection of multilinear polynomials, which P is defined as: where o ∈ Z * p is chosen randomly and P is the attribute set with coefficients in Z * p . Meanwhile, let Hom(P) be the collection of homogeneous polynomials, which is the subset of a multilinear polynomial set, i.e., Hom(P) ⊂ Lin(P). As our proof is based on the mathematical theory of multilinear functions and homogeneous polynomial, it comes to the conclusion that the expressions that are provided by the counterfeit of an attacker cannot embody certain specific terms.
Since it is obviously that u * , b * , h * i |i ∈ [l] , r * j | j ∈ [w] ∈ Lin(P), as well as u * = b * x 0 t 0 z t 0 +z , we can conclude that: Since ∆ j |y(z + ε * )r * j and consequently ∆ j |r * j , we get: Here it is assumed that v j 0 0 and u * includes term ∆ 0 x 0 . Therefore, As a result, it concludes that: Assume that there is a term ∆ j in r * j . As u * has no constant term, leading that u * v j ∆ j is incapable of contributing ∆ j to the equation. It is the same as l * i=1 h * i M * i,j xy + yz + a * i ∆ j . But it is necessary to contribute ∆ j and ∆ j /y for the equation's right side, so: Sensors 2020, 20, 1090

of 21
Assume that r * j has the term r (q) j , it is necessary to bring y(z + ε * )r * j to the equation's right side, which generates a term with the coefficient of y(z + ε * )/y z + ε (q) . u * and h * i |i ∈ [l] cannot contribute y(z + ε * )/y z + ε (q) to the equation As ε * and ε (q) are always different, therefore, we can conclude: As mentioned early, it is assumed that v j 0 0 for j 0 . As y(z + ε * )r * j 0 and l * i h * i M * i,j 0 xy + yz + a * i ∆ j 0 cannot provide the term u (q) , u * is impossible to contain the monomial u (q) . Accordingly, u * ∈ Hom( o s |s ∈ [n] ) Ultimately, we can come to a conclusion that: To make the Equation (9) , for any terms of u * should also be provided by the left side of (9) to realize the equality of this expression. Here we divide h * i into two addends to actualize the situation that o k only exists in one part of h * i . There is: Here a vector v * i is defined, which makes v * M * = v 1 . . . v t = 1, 0, . . . , 0 hold. Besides, according to prior works, U s 0 should comprise the attribute a * i . Then, v * i can be constructed as follows: (20) in which [o s 0 ] is the coefficient of o s 0 in u * (o s 0 0). Based on the above mathematical and derivation, we have ρ * (U s 0 ) = 1, which confirms that the signature is not a counterfeit. That is to say, the property of unforgeability is proved.

Experimental Evaluation
In this section, details about experiments on simulating the SNPL framework are described. Besides, several performance measurements are defined such that the results can be analyzed and compared from several different aspects.

Experiment Design
It is necessary to explain why experiments are not carried out on a large scale here. For the whole application scenario, the scheme simulated in experiments is a representative or an epitome of different local IoT, which is connected or communicating with each other. That is to say, other application scenarios are extensions of similar situations. So, conducting experiments in more extensive or more situations makes no sense, for those are seen as repetitive actions. The scenario explanation is shown in Figure 6.
Two experiments are conducted to simulate real IoT application scenarios. The first experiment is to test the effectiveness and verification capability of the SNPL scheme with a single node of different types. This experiment provides information on the success rate and means the processing time of one single node. The second experiment aims to evaluate the performance under different numbers of nodes. The goal is to test whether the number of devices has an impact on performance.
In the experiments, the processing time of various nodes is recorded to calculate the mean value. Besides, the accuracy of different nodes is also recorded and compared to ensure the universality of the SNPL scheme. Two experiments are conducted to simulate real IoT application scenarios. The first experiment is to test the effectiveness and verification capability of the SNPL scheme with a single node of different types. This experiment provides information on the success rate and means the processing time of one single node. The second experiment aims to evaluate the performance under different numbers of nodes. The goal is to test whether the number of devices has an impact on performance.
In the experiments, the processing time of various nodes is recorded to calculate the mean value. Besides, the accuracy of different nodes is also recorded and compared to ensure the universality of the SNPL scheme.
As mentioned early, the first experiment aims to evaluate the effectiveness of the SNPL scheme with one single node, as shown in Figure 7a. In this experiment, 20 different types of sensors are connected to the Raspberry PI and each sensor is a separate node. Our purpose is to test whether the SNPL scheme can identify the data source. The finger marks are generated by using the configuration text files of devices, which are stored in a specific folder. A policy with one legal attribute is then defined to verify nodes' identification one by one. Among all of these nodes to be tested, the normal one represents the objective whose attribute is legal and set into the policy, while the malicious one represents the node whose attribute is illegal and not in the policy. Then, individual keys of devices are generated by using the fingermarks as an attribute in the algorithm. These individual keys are used to sign messages, after which the policy is used to provide verification of these nodes. In this process, the processing time of the SNPL scheme of 20 different nodes are recorded, their mean value is calculated, and the success rate is obtained.
The second experiment is to compare the running time and accuracy of the algorithm under different quantities of nodes, as shown in Figure 7b. This experiment simulates a real-world scenario and evaluates whether the number of parallel nodes has an influence on the SNPL scheme. The operation is substantially similar to that of the first experiment, in which the only difference is the number of processed nodes. Here virtual nodes are defined with respective fingermarks for all targets and an access policy with all legal attributes (i.e., the attributes which satisfy the policy). Then, each defined node signs up one message and generates a signature for verifying with the policy. After that, the verification results are obtained. In this process, the processing time with a different number of nodes is recorded and compared. The accuracy in terms of throughput rate and blocking rate is also compared. As mentioned early, the first experiment aims to evaluate the effectiveness of the SNPL scheme with one single node, as shown in Figure 7a. In this experiment, 20 different types of sensors are connected to the Raspberry PI and each sensor is a separate node. Our purpose is to test whether the SNPL scheme can identify the data source. The finger marks are generated by using the configuration text files of devices, which are stored in a specific folder. A policy with one legal attribute is then defined to verify nodes' identification one by one. Among all of these nodes to be tested, the normal one represents the objective whose attribute is legal and set into the policy, while the malicious one represents the node whose attribute is illegal and not in the policy. Then, individual keys of devices are generated by using the fingermarks as an attribute in the algorithm. These individual keys are used to sign messages, after which the policy is used to provide verification of these nodes. In this process, the processing time of the SNPL scheme of 20 different nodes are recorded, their mean value is calculated, and the success rate is obtained.
The second experiment is to compare the running time and accuracy of the algorithm under different quantities of nodes, as shown in Figure 7b. This experiment simulates a real-world scenario and evaluates whether the number of parallel nodes has an influence on the SNPL scheme. The operation is substantially similar to that of the first experiment, in which the only difference is the number of processed nodes. Here virtual nodes are defined with respective fingermarks for all targets and an access policy with all legal attributes (i.e., the attributes which satisfy the policy). Then, each defined node signs up one message and generates a signature for verifying with the policy. After that, the verification results are obtained. In this process, the processing time with a different number of nodes is recorded and compared. The accuracy in terms of throughput rate and blocking rate is also compared.
The experiment is carried out on the Ubuntu operating system. To implement the proposed SNPL scheme, Raspberry Pi 3 with different types of sensors is used to simulate different IoT nodes (i.e., a temperature sensor attached to the Raspberry Pi 3 simulates the first node, while the photoelectric sensor attached can be the second simulated node, and others). Open-TEE is used to construct the TEE in Ubuntu, while the normal execution environment of Ubuntu is considered as the REE. The Ubuntu system is deployed in VMware workstation 14, which is installed on a Dell Inspiron 15-5577 notebook. Our platform is developed in the C language using qtcreator-3.6.1. The hardware are shown in Figure 8 and the device specifications are listed below: The SNPL scheme can be taken as a "small nodes gateway" to control data transfer to the real gateway. The "small nodes gateway" can be replicated to simulate different scales of IoT. Therefore, the experiment can be seen as a classic case of different kinds of IoT environments and the conclusions can be extended to various real-world scenarios. The experiment is carried out on the Ubuntu operating system. To implement the proposed SNPL scheme, Raspberry Pi 3 with different types of sensors is used to simulate different IoT nodes (i.e., a temperature sensor attached to the Raspberry Pi 3 simulates the first node, while the photoelectric sensor attached can be the second simulated node, and others). Open-TEE is used to construct the TEE in Ubuntu, while the normal execution environment of Ubuntu is considered as the REE. The Ubuntu system is deployed in VMware workstation 14, which is installed on a Dell Inspiron 15-5577 notebook. Our platform is developed in the C language using qtcreator-3.6.1. The hardware are shown in Figure 8  The experiment is carried out on the Ubuntu operating system. To implement the proposed SNPL scheme, Raspberry Pi 3 with different types of sensors is used to simulate different IoT nodes (i.e., a temperature sensor attached to the Raspberry Pi 3 simulates the first node, while the photoelectric sensor attached can be the second simulated node, and others). Open-TEE is used to construct the TEE in Ubuntu, while the normal execution environment of Ubuntu is considered as the REE. The Ubuntu system is deployed in VMware workstation 14, which is installed on a Dell Inspiron 15-5577 notebook. Our platform is developed in the C language using qtcreator-3.6.1. The hardware are shown in Figure 8  The SNPL scheme can be taken as a "small nodes gateway" to control data transfer to the real gateway. The "small nodes gateway" can be replicated to simulate different scales of IoT. Therefore, the experiment can be seen as a classic case of different kinds of IoT environments and the conclusions can be extended to various real-world scenarios.

Experimental Results
In this section, experimental evaluation and comparison of the SNPL scheme are presented. First, the running time of the entire process of the experiments is discussed. Then, the accuracy under different types and numbers of nodes are compared. Figure 9a shows the processing time with 20 kinds of normal nodes. The result shows that the execution time varies with different nodes. In our experiments, the average execution time of 20 normal nodes is about 365.661 ms. Figure 9b shows the result of identifying 20 kinds of malicious nodes. Also, the SNPL scheme has different processing periods when dealing with different nodes. It must be said that the obvious discrepancy of node 1 is just due to its node type. And the difference of node 2 between normal and malicious properties is just an experimental error, which may be caused by the system operation time, the network latency, or other factors. The chart shows that the average time is approximately 365.676 ms. It can be concluded from the statistics that the processing time for the detection of normal and malicious nodes is comparable. In other words, the performance of the scheme on identifying nodes is not affected by the properties of nodes.

Processing Time
Sensors 2020, 20, x FOR PEER REVIEW 16 of 21

Experimental Results
In this section, experimental evaluation and comparison of the SNPL scheme are presented. First, the running time of the entire process of the experiments is discussed. Then, the accuracy under different types and numbers of nodes are compared. Figure 9a shows the processing time with 20 kinds of normal nodes. The result shows that the execution time varies with different nodes. In our experiments, the average execution time of 20 normal nodes is about 365.661 ms. Figure 9b shows the result of identifying 20 kinds of malicious nodes. Also, the SNPL scheme has different processing periods when dealing with different nodes. It must be said that the obvious discrepancy of node 1 is just due to its node type. And the difference of node 2 between normal and malicious properties is just an experimental error, which may be caused by the system operation time, the network latency, or other factors. The chart shows that the average time is approximately 365.676 ms. It can be concluded from the statistics that the processing time for the detection of normal and malicious nodes is comparable. In other words, the performance of the scheme on identifying nodes is not affected by the properties of nodes.  Table 1 shows the processing time with different numbers of nodes (1 node, 5 nodes, 10 nodes, 15 nodes, and 20 nodes) excerpted from the complete experimental results. In each case, the amounts of normal nodes and malicious nodes are shown to evaluate the verification accuracy.   Table 1 shows the processing time with different numbers of nodes (1 node, 5 nodes, 10 nodes, 15 nodes, and 20 nodes) excerpted from the complete experimental results. In each case, the amounts of normal nodes and malicious nodes are shown to evaluate the verification accuracy. Figure 10 shows a line chart, given by efficiency vs. different number nodes, for an intuitive description of the results. Here the efficiency is represented by the processing time against different numbers of nodes. Shorter processing time indicates a higher efficiency of the SNPL scheme. The chart shows that the processing time increases almost linearly with the increase on the number of nodes. That is, there is a linear increase relationship between the number of nodes and processing time. 1278.245 Figure 10 shows a line chart, given by efficiency vs. different number nodes, for an intuitive description of the results. Here the efficiency is represented by the processing time against different numbers of nodes. Shorter processing time indicates a higher efficiency of the SNPL scheme. The chart shows that the processing time increases almost linearly with the increase on the number of nodes. That is, there is a linear increase relationship between the number of nodes and processing time. It must be stated that the scenario of a small-scale local IoT (i.e., a house, an office, or anywhere) does not contain a large number of smart nodes. To explain the performance results, here consider an application scenario in which a man wears some wearable devices. Within this scenario, the total amount of smart nodes the man carries will not usually exceed 10. That is, the quantity of nodes in a real application is generally within the validation range of our experiment. Based on experimental outcomes of total running time and identifying precision shown in this experiment, it can be It must be stated that the scenario of a small-scale local IoT (i.e., a house, an office, or anywhere) does not contain a large number of smart nodes. To explain the performance results, here consider an application scenario in which a man wears some wearable devices. Within this scenario, the total amount of smart nodes the man carries will not usually exceed 10. That is, the quantity of nodes in a real application is generally within the validation range of our experiment. Based on experimental outcomes of total running time and identifying precision shown in this experiment, it can be concluded that our proposed scheme improves security without compromising performance.

Accuracy
The first experiment shows that the SNPL scheme can recognize the identity of an inspected node correctly. During the experiment, all normal nodes are proved to be safe nodes as expected while all malicious nodes are proved unsafe. The results are obtained based on the following calculation expressions: where AC sgl_s and AC sgl_m represent the accuracy of safe node detection and malicious node detection, respectively, T sa f e and T mali are the times of successful validations of safe and malicious nodes, respectively, N sum_s and N sum_m are the total number of safe and malicious nodes to be measured, respectively. The verification accuracy of single node identification is shown in Table 2. In the second experiment, the accuracy is indicated by the percentage of all nodes that are verified correctly over the total number of nodes. Ideally, all nodes are verified correctly, regardless of the number of unidentified nodes. That is to say, on the premise that the total number of nodes unchanged, the amounts of normal nodes and malicious nodes do not affect the accuracy of recognition. The accuracy of detection on multi-node denoted as AC mul , is given as: where N rec_s and N rec_m are the amounts of safe and malicious nodes distinguished successfully, respectively, while N sum is the total amounts of nodes under test.Experimental results indicate that that system accuracy is 100% no matter how the number of nodes changes. Some experimental results are tabulated in Table 3. In all cases, the accuracy of node authentication is 100% with a relatively short checking period. The results demonstrate the exceptional performance of SNPL scheme in identification.

Application
This section discusses three potential application scenarios for the proposed SNPL scheme.

Smart Healthcare
IoT technologies can benefit the healthcare domain, in which tracking, identification, and data collection are the most critical applications [24]. In this field, light-weight monitoring or wearable devices play essential roles in monitoring patients' conditions, recording and sending their real-time data to doctors or hospitals automatically. These monitoring and wearable devices have access to a patient's sensitive and private data such as blood pressure and heart rate, from different nodes. Assume that there exists a malicious node and this node can modify real data and send the revised information to hospitals or doctors, which may lead to misdiagnosis. In this situation, our security scheme can identify the malicious node and prevent the modification of critical data. In other words, SNPL can protect data trustworthily.

Smart Building
In IoT, many kinds of smart devices are used in a building, constituting a local sensor network. Sensors and actuators arranged in the building can make people's life more comfortable. For example, rooms heating can adapt to the weather condition and our preferences; rooms lighting can change based on the time of a day; the electrical equipment can be automatically on/off to save energy; monitoring and alarm systems can avoid domestic incidents [25]. In a word, intelligent nodes with sensors keep watching on the status of the whole building. For better management and safety, a gateway node can be used for each family or office. All data collected by the smart equipment will be transferred and stored in the gateway node. To verify the security of the data, our SNPL security scheme can be used in the transmission between endpoint nodes and the gateway node, which can take precautions against forged nodes and invaders. Moreover, it is also useful in the protection of household information and office data.

Smart Transportation
Smart transportation, which is also known as intelligent transportation, is a typical IoT-based application [26]. This system consists of a high number of smart vehicles connected via wireless networks [27], and smart vehicles can perceive road conditions and share traffic information with others. For such, every vehicle is equipped with Electronic Control Units (ECUs) for controlling subsystems and sharing gathered data within the vehicle. Besides, vehicles can connect to external networks for communications [28]. However, as adversaries may take over ECUs through launching attacks against endpoint nodes and subsystems, through there are some data protection schemes [29], data can be modified and transferred to other ECUs or vehicles and cause damages to the whole transportation system [30,31]. To protect against the security thread, our SNPL security scheme can be deployed between subsystems and the ECU for a reliability check on source nodes' identities and messages. As a result, malicious data from unsafe nodes do not get into the transportation network and the stability of the whole system can be guaranteed.

Conclusions
In this paper, a SNPL scheme is proposed to ensure the trustworthiness of IoT nodes that are based on nodes attributes. In such scheme, the MD5 algorithm is used to generate a private value for an IoT node that is used as an identification attribute of the IoT node. Next, the node's attribute and predefined access policy are applied for node authentication in TEE, which is a trusted development circumstance for realizing sensitive operations. To demonstrate the effectiveness of the proposed scheme, a series of experiments are conducted to evaluate the performance in terms of processing time, accuracy and success rate. Experimental results show that the proposed SNPL security scheme can identify normal nodes and malicious nodes that are based on their unique identify information with high efficiency and accuracy. Also, this indicates that the proposed SNPL scheme can protect the security of the source data at the beginning of the IoT interaction flow. Future directions of this research include the investigation of optimized algorithms design and their implementation in real applications.