I think the following is not possible, but I have no proof and would like to find out wether it is possible or not.

Let's say in a network, every participant cannot connect to each other participant directly. Every message is sent via a person M. Every participant can connect through M to every other participant.

Is there any way to know if the other participants are real and not fake participants created by M?

I am assuming, that you cannot swap information "offline", e.g. there is no key signing party and no way to exchange certficates offline. Also, you do not know the other participants.

The problem is: If the other participants are simulated by M, M has the data I wanted to share with another participant. Even if encrypted, it could be a key of M.

As you can see, M is already the man in the middle in the architecure.

Is there a proof, you cannot be sure, that the participants are real? Or am I missing some solution to my problem? The architecture has to stay the same for my question.

Thank you in advance!

  • There might be some options in your definition of "real". And while you might not have info swaps offline, you could use 3rd parties to verify identities: an N party. That way M would have to control both N and M to make the deception complete.
    – schroeder
    Mar 10, 2020 at 12:13
  • In my specific problem, you could unfortunately only communicate with N via M. This breaks it again, I guess. But your idea helps me, in case the architecture be modified.
    – Marvin
    Mar 10, 2020 at 13:05
  • 1
    Ah, yes. If all communication must go through M, then M can perfectly deceive. You might then need to consider oversight of M to detect when/if M engages in this behaviour. It's a detection control after the fact, but it can be an effective control in some contexts.
    – schroeder
    Mar 10, 2020 at 13:22
  • Is there a proof somewhere which states, that M can deceive perfectly? Yes, observation of some sort could be a solution, thanks.
    – Marvin
    Mar 10, 2020 at 14:16
  • I don't think that a proof is required. If it is a closed system and M controls all interactions, including identification actions and verifications, M can define and alter reality for any participant.
    – schroeder
    Mar 10, 2020 at 14:50

1 Answer 1


You're describing the setting of a "prisoner's dilemma" type game, which is based on a situation where trust between prisoners cannot be established.

The normal ways of establishing trust would be as you listed; to meet personally and exchange keys, or to employ a trusted third party, such as a Certificate Authority or WoT, to facilitate trusted key exchange. In every case, though, participants need to have trust externally introduced without going through the M proxy, or with the third party's certificate pre-installed (all of which still depend on M not being the party who provided the machines in the first place, and M not having surreptitious access to the machines.)

  • This is a good hint, I didn't think of this dilemma. Is there a proof, that trust cannot be established in this setting? It seems kind of trivial, so there is not really much to prove, I guess.
    – Marvin
    Mar 10, 2020 at 14:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .