In my scenario i have a very simple P2P network usually working "offline" (i mean that the P2P rely on a detached from internet network). Each peer on the network is a IoT device bheave automatically, and the first thing it does is present itself to the P2P network trying to join it. There is no central infrastructure on the network on which i can rely on, so my question is, how can i verfy if a peer that try to join the network is a leggitimate ones and not an attacker?
I have thought to use a private key to identify "me" the network owner (and not shared with the peer) to sign the public key of each peer (different for each peer) that i will relase in the environment (not in a single release). So when a peer need to present itself to the network other peers (with the public key that identify "me") can see if the peer public key is well signed or not. But a problem remain, how prevent an attacker with phisical access to a peer to copy its keys (the public with my sign and the private ones) and then impersonate that peer for evil pourpose ? (how said before each peer on the network is a IoT device easilly accessibile by an attacher and not supervised at all)