Acest lucru nu mi se pare un protocol de autentificare foarte bun. Puteți vizualiza $(Mrand, \textsf{AES}_{TK}(\textsf{AES}_{TK}(Mrand \oplus p_1) \oplus p_2))$ ca o încercare a unui CBC-MAC randomizat de $p_1\|p_2$, cu $Mrand$ fiind vectorul de initializare.
Din păcate, CBC-MAC randomizat este complet spart ca MAC. Să presupunem că un adversar vede un MAC valid $(R,T) = \bigl(R, \textsf{AES}_K(\textsf{AES}_K(R \oplus p_1) \oplus p_2)\bigr)$ a unui mesaj $p_1 \| p_2$.
Apoi poate produce $(R \oplus \delta, T)$ care este un MAC valid al mesajului $(p_1 \oplus \delta) \| p_2$.
În afară de încercarea proastă la un MAC, acest protocol suferă de atacuri banale de reluare.
Fiecare parte alege o valoare aleatorie care afectează doar propriile mesaje.
Pentru a preveni reluarea, fiecare parte ar trebui să își lege mesajele de protocol la o valoare aleasă aleatorie de către alte parte.
Există chiar și un atac de reflexie. În acest protocol dacă comandantul trimite $Mrand, Mconfirm$ atunci clientul poate ecou înapoi $Srand=Mrand$ și $Sconfirm=Mconfirm$, care ar trebui să verifice corect, cu excepția cazului în care există mai multe în protocol decât menționați.
Rezultatul acestor atacuri este că un punct final crede că este împerecheat cu succes, în ciuda faptului că celălalt punct final nu cunoaște cheia în afara benzii $TK$. Totuși, atacatorul nu poate obține cheia de sesiune.