This question already has an answer here:
I am a student taking a cryptography course so forgive me if this comes off as a silly question. This is an assignment question:
Alice ------R--------> Bob
Alice <-----[R]B------ Bob
Alice ------[R+1]A---> Bob
Why doesn't this protocol provide mutual authentication?
Here's a plausible scenario Alice sends R trudy intercepts it and sends it to bob impersonating alice. Bob sends back R signed by him to trudy. Trudy now impersonates Bob and sends R with Bob's signature to Alice impersonating Bob. alice sends [R+1] signed by alice which trudy can now use to impersonate as Alice to Bob.
If that is a valid attack. Wouldn't this work with every protocol? After all we're merely just relaying message back and forth among two parties. Is there any way I can modify this to get mutual authentication?