# An Efficient Location Verification Scheme for Static Wireless Sensor Networks
## 4 The Proposed Scheme: Mutually-Shared Region-Based Location Verification
### Description of MSRLV Scheme  
The MSRLV is triggered when a sensor needs to assure the location of the other sensor. For example, a sensor has to verify the location of the next relay sensor when it uses geographical routing. This is because the geographical routing depends on the location of the sensors to deliver packets successfully. In the other possible scenario, the MSRLV can be triggered when a sensor is noticed for which the received location report from the other sensor is different from its expected location. The expected location of the sensor can be estimated based on the accumulated data from that sensor. In either case, a sensor who triggers the verification acts as a verifier, and the other sensor who claims its location becomes a claimant. When MSRLV is triggered, the verifier tries to check the legitimacy of a claimant's location through the D-filtering. The D-filtering is the process of checking the inconsistency of the measured and estimated distances between two sensors. If there is no problem with those distances, the verifier sends a verification request to the claimant. Without this filtering, honest sensors will suffer from verification failure. This will be explained in more detail in the later Section 4.4. The claimant that receives the verification request then calculates the MSR token with the D-filtering on its neighbors. As explained in the previous section, the token should have three properties to guarantee that any other sensors are not able to formulate the same token without being at the correct location. After being calculated, the token is sent to the verifier. Finally, the verifier does the same procedure by itself to calculate the token and then matches them. If they match, the claimed location is verified successfully. Otherwise, it fails. Reactions to the verification failure can be different according to the scenario. For instance, the verification failure may invoke another location verification against a newly-selected relay sensor in the geographical routing case. In the case of temperature measurement application, the data from the unverified sensor may be just removed from the collected dataset, and the sensor can be on the blacklist. The steps of the proposed scheme are shown in Figure 4 and described as follows. Figure 3: Distance-inconsistency filtering (D-filtering) (**a**) with an honest sensor and (**b**) with a malicious sensor. * Step 1. A sensor triggers a location verification process according to the situation mentioned above and becomes a verifier \(v\). \(v\) performs the D-filtering on the claimant \(c\). If \(c\) does not pass the filtering, \(v\) assumes that \(c\) is trying to fake its location and terminates the verification process here. \[v:D\text{-filtering on }c.\] \[v:ifd_{m}^{c}=d_{e}^{c},\text{ then pass }D\text{-filtering}.\] \[\text{otherwise, abort the verification}.\] where \(d_{m}^{c}\) is the measured distance to \(c\) and \(d_{e}^{c}\) is the estimated distance to \(c\). * Step 2. \(v\) sends a LOC_PROOF_REQUEST packet to \(c\). A LOC_PROOF_REQUEST packet asks \(c\) to send back the MSR token. \[v\to c:LOC\_PROOF\_REQUEST\]
* Step 3. Upon receiving a LOC_PROOF_REQUEST, \(c\) performs the D-filtering to filter out the malicious sensors that reside in \(MSR_{cv}\). \[c:D\text{-filtering on neighbors in }MSR_{cv}.\]
* Step 4. \(c\) calculates the MSR token, \(msrToken_{c}\), based on the data that it has collected from neighbors in \(MSR_{cv}\), within the last \(t\) seconds. \(msrToken_{c}\) can be calculated as follows: \[c:msrToken_{c}=\sum_{i=1}^{N_{vc}^{c}}f(data_{ci}^{t})\] (1) where \(data_{ci}^{t}\) is the neighbor \(i\)'s newest data collected by \(c\) within the last \(t\) seconds, \(N_{ne}^{c}\) is the number of neighbors of \(c\) and \(f()\) is the filtering function that is used to select the common neighbors in \(MSR_{cv}\) from the neighbor table. Figure 4: The mutually-shared region-based location verification (MSRLV) process. * Step 5. \(c\) sends the calculated \(msrToken_{c}\) to \(v\).