Promiňte, ale pořád to ne úplně chápu. Nějak nevidím, proč při nezabezpečeném kanále je bezpečnější plaintextové heslo. Přece mi nic nebrání v tom, abych měl v db hashované heslo a C/R jel s ním. Například mohu mít response danou jako hash(challenge:hash(heslo+salt)) a v db hash(heslo+salt).
Pak útočník s opsanou databází snadno prolomí toto zabezpečení v obou případech (zná údaj v db i challenge), ale pokud je v db hash, nepomůže mu to pro útok na jiné servery, protože nedá heslo na tom jiném serveru (předpokládám normálního uživatele, který sice ví, že nesmí opakovat hesla, ale stejně je opakuje).