## 3 Neighbor Verification through Low-Power Beacons
### Neighbor Check through Low-Power Beaconing  
In the WAVE framework, every vehicle periodically transmits a beacon called BSM, at up to 10 Hz. Such safety beaconing is similarly performed in C-V2X as well, with two more higher rates (20 Hz and 50 Hz) [31]. In this paper, we additionally require that every vehicle \(V\) transmit special beacons called whispers, denoted by \(W_{V}\), that carry the following information:  
* \(I_{V}\): whisper identifier (WID) of \(V\)
* \(L_{V}=\{I_{x}|x\in N_{V}^{t}\}\): list of WIDs heard by \(V\), where \(N_{V}^{t}\) is one-hop neighbors that passed the neighborhood check using whispers
* \(dig(C_{V})\): digest of \(V\)'s certificate [1]  
The whisper identifier (WID) \(I_{V}\) is randomly chosen by each vehicle, and changed every update interval \(t_{u}\), much more frequently than the pseudonym change [24]. (the WID should also change upon the pseudonym replacement as stipulated by SAE J2945 [24], as well as every \(t_{u}\).) Otherwise, once the attacker learns of \(I_{V}\), it would be able to prove itself as a close neighbor of \(V\) by using \(I_{V}\). Then the attacker could attack \(V\) with false information as long as its forged BSM can reach \(V\). By changing \(I_{V}\) frequently, however, the vehicle \(V\) can make it hard for the attackers that once learned of \(I_{V}\) to attack \(V\) later in time. Every vehicle \(V\) puts in \(L_{V}\) all whisper neighbor identifiers \(I_{x}\) that heard and passed its \"whisper check\", and rebroadcasts them in its own whisper \(W_{V}\). The whisper check refers to the following test: if a receiver \(U\) of \(W_{V}\) finds its whisper identifier \(I_{U}\in L_{V}\), \(U\) trusts the content in subsequent beacons \(BSM_{V}\) to come from a close neighbor \(V\). If a neighbor vehicle fails the whisper check, on the other hand, its whisper identifier (WID) is neither stored nor rebroadcast. The one-hop whisper neighborhood \(N_{V}\) of \(V\) is defined by the maximum distance from which a whisper reaches \(V\). \(N_{V}^{t}\subseteq N_{V}\) is the subset of the one-hop neighborhood that passed the whisper check. Each vehicle \(V\) stores the binding \((I_{x},\ dig(C_{x}))\) for each neighbor \(x\in N_{V}^{t}\). This is to prevent impersonation attacks. Suppose \(V\) has received a whisper from \(U\) and confirmed \(I_{V}\in L_{U}\). At this moment, the binding \((I_{U},\ dig(C_{U}))\) is made at \(V\). Once the binding is made, \(K\) cannot impersonate \(U\) because it does not have the private key of \(U\) to sign the BSM that is validated only by \(C_{U}\). On the other hand, suppose that \(K\) hears the whisper and the BSM from \(U\) before the binding \((I_{U},\ dig(C_{U}))\) is made at \(V\). In this case, \(K\) can attempt to pretend to be \(U\) and make a biding \((I_{U},\ dig(C_{K}))\) at \(V\). However, \(U\) is not (yet) a trusted neighbor of \(V\), so the whisper \(W_{U}\) does not have \(I_{V}\). Therefore, \(K\) could not prove that it is a one-hop whisper neighbor of \(V\). When \(BSM_{K}\) reaches \(V\), \(V\) will reject this forged BSM. Algorithm 1 shows the description of the proposed whisper checking logic. Line 3 is the whisper check. If the received whisper fails this test, the sender is determined to be unverifiable as a neighbor (line 16). If the whisper check succeeds, the whisper ID is used as a key to find the bound certificate (line 4). If none, we create one to prevent the impersonation attack (line 5). If there is a binding, however, the WID-certificate binding is checked against the values in the received whisper (line 9). If they match, it is a confirmation of both the neighbor relation and the WID-certificate mapping. The trust is strengthened as the credit for the received whisper is incremented (line 10). This information will be later used in an enhanced version of the base algorithm discussed here. If the binding and the whisper say otherwise, the whisper is ignored (line 12). Note that the binding should be newly created when either the pseudonym change or WID change takes place.