I've recently read some articles about the Interlock Protocol, Article by Ron Rivest and Adi Shamir.
I'm wondering if it is possible to protect Key-exchange under Public-Key cryptography from the MITM attack by using this protocol?
There's a method here.Suppose Alice & Bob has exchange their public key, but replaced by Mallory's public key. So Alice have Pkm, Bob have Pkm, Mallory have Pka, Pkb.
Alice.................Mallory.......................Bob
A->Pkm(1:1) M->Pkb(1:1)........1
M->Pka(1:1)....B->Pkm(1:1)................................................2
A->Pkm(1:2) M->Pkb(1:2)........3
M->Pka(1:2)....B->Pkm(1:2)................................................4
A->Pkm(2:1) A->Pkb(1:1)........5
B->Pka(1:1)....B->Pkm(2:1)................................................6
A->Pkm(2:2) A->Pkb(1:2)........7
B->Pka(1:2)....B->Pkm(2:2).................................................8
Then Mallory could cheat both Alice and Bob, and they will not recognize. Interlock-protocol seems insecure.
Of course Alice and Bob can ask a question when they're comunicating. Alice sent A->Pkm(1:1), and need a response 'B->Pka(2:1)' after she sent A->(2:1), but she just received the B->(1:1) as step 6, Alice know there's a Man In The Middle.
This method need Alice and Bob know each other very well, and both have a question they can answer but Mallory can't. So if they have such pre-shared questions & answers, why don't they use these question's hash value as a pre-shared key? Alice Just notice Bob the key is the 1st/2nd/3rd... one from the 'Pre-Question-Table', and they don't need public-key cryptographic's help.
Is it true? So what's the area when we can use the Interlock-protocol?