Burrows-Abadi-Needham logic
Burrows-Abadi-Needham logic (also known as the BAN logic) uses postulates and definitions like all axiomatic systems to analyze authentication protocols. Use of the BAN logic often accompanies a security protocol notation formalation of a protocol. The definitions and their implications are below (P and Q are network agents, X is a message, and K is an encryption key):
- P believes X: P acts as if X is true, and may assert X in other messages.
- P has jurisdiction over X: P's beliefs about X should be trusted.
- P said X: At one time, P transmitted (and believed) message X, although P might no longer believe X.
- P sees X: P recieves message X, and can read and repeat X.
- {X}K: X is encrypted with key K.
- fresh(X): X was sent recently.
- key(K, P<->Q): P
and Q may communicate with shared key K
- If P believes key(K, P<->Q), and P sees {X}K, then P believes (Q said X)
- If P
believes (Q said X) and P believes fresh(X),
then P believes (Q believes X).
- If
P believes (Q has jurisdiction over X) and P
believes (Q believes X), then P believes X
- There are several other technical postulates having to do with composition
of messages. For example, if P believes that Q said <X,
Y>, the concatenation of X and Y, then P also
believes that Q said X, and P also believes that Q
said Y.
The Wide-Mouthed Frog Protocol
A very simple protocol allows two agents, A and B, to establish secure communications, using a trusted authentication server, S, and synchronized clocks all around. Agents A and B are equipped with keys Kas and Kbs, respectively, for communicating securely with S. So we have assumptions:
- \A believes key(Kas, A<->S)
- S believes key(Kas, A<->S)
- B believes key(Kbs, B<->S)
- S believes key(Kbs, B<->S)
- A believes key(Kab,
A<->B)
- B believes
(A has jurisdiction over key(K, A<->B))
- B believes (S has jurisdiction
over (A believes key(K, A<->B)))
The goal is to have
- B believes key(Kab,
A<->B)
- 1 A->S:
{t, key(Kab, A<->B)}Kas
Since S believes that key(Kas, A<->S), and S sees {t, key(Kab, A<->B)}Kas, then S concludes that A actually said {t, key(Kab, A<->B)}. (In particular, S believes that the message was not manufactured out of whole cloth by some attacker.)
Since the clocks are synchronized, we can assume
- S believes fresh(t)
S then forwards the key to B:
- 2 S->B:
{t, A, A believes key(Kab,
A<->B)}Kbs
Now let's suppose that we abandon the assumption that the clocks are synchronized. In that case, S gets message 1 from A with {t, key(Kab, A<->B)}, but it can no longer conclude that t is fresh. It knows that A sent this message at some time in the past (because it is encrypted with Kas) but not that this is a recent message, so S doesn't believe that A necessarily wants to continue to use the key Kab. This points directly at an attack on the protocol: An attacker who can capture messages can guess one of the old session keys Kab. (This might take a long time.) The attacker then replays the old {t, key(Kab, A<->B)} message, sending it to S. If the clocks aren't synchronized (perhaps as part of the same attack), S might believe this old message and request that B use the old, compromised key over again.
The original Logic of Authentication paper (linked below) contains this example and many others, including analyses of the Kerberos handshake protocol, and two versions of the Andrew RPC handshake (one of which is defective).
Offsite Links
- A Logic of Authentication, the original paper by Burrows, Abadi, and Needham.
- Source: The Burrows-Abadi-Needham logic


