U hashovaně uloženého hesla musíte heslo přenést přes linku, čímž ho vystavujete riziku odposlechnutí. U plaintext hesla se použije výzva-odpověď, takže útočník nezíská nic užitečného.
Ok. Plaintext heslo má zase tohle riziko navíc: admin se hrabe v ldapu, přijde k němu kamarád na kafe a na monitoru uvidí nezašifrované heslo. Kdyby viděl hash (a heslo bylo silné), je mu to k ničemu.
Takže máme tuhle situaci:
řešení "hash" je vystaveno rizikům 1,2,3
řešení "plaintext" vystaveno rizikům 1,2,4
Takže budeme muset definici "A je bezpečnější než B" nadefinovat přesněji: suma (pravděpodobnost rizika * škoda) je pro A menší než pro B
Riziko 3 je "kdokoli si může přečíst komunikaci po drátě, ví hned heslo a může ho regulerně použít" a 4 je "kdokoli si přečte databázi, ví hned heslo a může ho regulerně použít".
Riziko 3 snížím tak, že drát zabezpečím. Riziko 4 podle mě eliminovat nejde (návrhy si rád poslechnu).
Takže riziko 3 se nám smrsklo na "kdokoli dokáže nabourat zabezpečený kanál", zatímco riziko 4 zůstává "kdokoli si může přečíst databázi".
Podle mě je 4 pravděpodobnější a tedy hash bezpečnější.