Wide Mouth Frog protocol

The Wide-Mouth Frog protocol is a computer network authentication protocol designed for use on insecure networks (the Internet for example). It allows individuals communicating over a network to prove their identity to each other while also preventing eavesdropping or replay attacks, and provides for detection of modification and the prevention of unauthorized reading. This can be proven using Degano.

The protocol was first described under the name "The Wide-mouthed-frog Protocol" in the paper "A Logic of Authentication" (1990), which introduced Burrows–Abadi–Needham logic, and in which it was an "unpublished protocol ... proposed by" coauthor Michael Burrows. The paper gives no rationale for the protocol's whimsical name.

The protocol can be specified as follows in security protocol notation:
 * A, B, and S are identities of Alice, Bob, and the trusted server respectively
 * $$T_A$$ and $$T_s$$ are timestamps generated by A and S respectively
 * $$K_{AS}$$ is a symmetric key known only to A and S
 * $$K_{AB}$$ is a generated symmetric key, which will be the session key of the session between A and B
 * $$K_{BS}$$ is a symmetric key known only to B and S


 * $$A \rightarrow S: A,\{T_A, B, K_{AB}\}_{K_{AS}}$$


 * $$S \rightarrow B: \{T_S, A, K_{AB}\}_{K_{BS}}$$

Note that to prevent active attacks, some form of authenticated encryption (or message authentication) must be used.

The protocol has several problems:
 * A global clock is required.
 * The server S has access to all keys.
 * The value of the session key $$K_{AB}$$ is completely determined by A, who must be competent enough to generate good keys.
 * It can replay messages within the period when the timestamp is valid.
 * A is not assured that B exists.
 * The protocol is stateful. This is usually undesired because it requires more functionality and capability from the server. For example, S must be able to deal with situations in which B is unavailable.