Pokud správně chápu článek, tak toto se udělat nedá. Server nevnucuje nový privátní klíč aplikaci. Server vnucuje nový veřejný klíč protistraně. Ve chvíli, kdy uživatel aplikace nezkontroluje, že takový klíč je opravdu věrohodný, může server podstrčit veřejný klíč, k němuž ale privátní klíč vlastní server sám.
Modelový příklad komunikace Boba a Alice, se třemi páry klíčů PKb1 + VKb1, PKb2 + VKb2, a PKa1 + VKa1 (P/V za privátní/veřejný, b/a za Boba/Alici (strana, která by podle něj měla šifrovat), 1/2 za různé klíče)
Alice Bobovi:
- Alice vlastní Bobův ověřený veřejný klíč VKb1.
- Alice šifruje zprávu pomocí VKb1 a posílá Serveru (pro Boba).
- Server si vygeneruje nový pár PKb2 a VKb2.
- Server předstírá, že Bob změnil své klíče a chce od Alice nově zašifrovat zprávu pomocí VKb2.
- Alice neobdrží žádné upozornění o změně páru. Její zařízení odesílá nově zašifrovanou zprávu pomocí VKb2.
- Server si nyní čte Alicinu zprávu, kterou dešifruje pomocí PKb2.
- Server posílá Bobovi původní zprávu (tu zašifrovanou pomocí VKb1).
- Bob dostává zprávu a dešifruje ji pomocí svého PKb1 a tedy nic netuší.
- Alice též nic netuší, protože její aplikace jí neřekla nic o záměně klíčů.
Takto server nemůže komunikaci modifikovat, ale může ji číst.