# What's the probable usage of Interlock Protocol

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?

-

## migrated from stackoverflow.comApr 17 '13 at 12:05

This question came from our site for professional and enthusiast programmers.