Imagine such protocol. Client and server initially share secret K[0].
- When client wants to contact server she sends server K[0] and her ID.
- Server accepts request, and generated new random K[1] and sends it to client which should use this in next communication.
- Again, if client wants to authenticate with server now, she sends K[1]. Server accepts it if correct, and sends here K[2] to use next time and so on.
My first question is: Is there some name to this protocol in the literature? (Where security of this protocol has been studied?).
I want to use it for detecting if someone copied software of my client.
For me this scheme works most of the time: because if someone copies the client software it means the copy of the original software, will send say K[n] th password to server who will generate next password for client K[n+1]. But this way original client will go out of synchronization with the server because she will use old K[n] to authenticate and we will detect this - and achieve our goal.
The only attack I can see on this protocol if man in the middle just forwards clients messages to server and servers response to client. Someone can present security analysis of this scheme?