パスワードを平文で、または復号可能な形で保存するのは危険であることは以前から指摘されていますが、ユーザの利便性重視なのかパスワードの問い合わせ機能のついたサイトは多い。本来であればサイトの管理者でさえ調査できない非可逆暗号をかけるのが最低ライン。それでもサイト開発者から見ればシードが分かるので虱潰しで調べられるし、サイトで暗号化していてもそれまでは平文なので例えSSLにしていてもサイトにロギング仕組むことはできる。(やったら通信の秘密に抵触?)
パスワードの失念は100%ユーザの問題でこれに対応するには面倒な本人確認手続きがあっても仕方ないと思う。間違ってもサイト管理者なら知っているという状況は流出リスクである。忘れたパスワードを取得できるだけでも問題なのに、さらにEメールで送るのは愚の骨頂。例え登録したアドレスにしか送りませんと宣言したシステムでもEメールはハガキと同等で途中経路でも本文丸見えである。せめてセッション発行してパスワード再設定リンクでサイトに飛ばして、そこで改めて本人確認情報入力して再設定可能にするのが最低ラインかな。そうしないとハッカーの方が行動が早ければそこで乗っ取られるし。
しかもEメールだけはシステム上暗号化できない。PGPで本文を暗号化する方法はあるが一般には全く知られてないしそもそも自分用公開鍵を持っている人なんて・・・あまりいないですよね。できてもお互いがPGP使用者でないとやり取りが面倒。
パスワードZIPもたいしたことないし、何故かそのZIPパスワードをメールで送ってたりっと。
またいろいろなサービスに同じパスワードを使うのはリスクが大きくなるのは当然。これはユーザの管理能力と記憶が高くなければそれぞれ違うパスワードでさらに記憶するのは難しいでしょう。
私の場合はパスワードとして使うランダムな英数字記号を数種類作って覚えておき、それらの組み合わせで6桁(6桁上限のサイトとかどうかと思うが)から32桁までの数十サイト以上のパスワードを作り出し記憶しています。あまりたいしたことではないのですが、英単語に比べると解析しにくいと思います。これも複数のサービスのパスワードが漏れたときにバレるかもしれません。
それと少し内容がズレますが、サービス運営会社を疑うのであれば、全てのサービスについて違うメールアドレス、アカウント名で登録すべき。それもしないで特定の会社を疑うには証拠不十分です。まぁどうでもいいサービスは捨てアカ、捨てメールで統一というやり方もありますけどね。そうでなくてもリスクが発生する場合の影響度を考えてランク分けぐらいしても良いと思います。例えば無料サービスとオンラインバンクのアカウントは両者全く同一性がない情報になるように工夫すること。最近ならドメインもサーバーも安いしそれを利用してみるのも良いと思います。
参考:
パスワードをハッシュ化(暗号化)保存することを法律で義務化するくらいのことが必要だと思う
http://neta.ywcafe.net/000910.htmlさらに言えばクライアントで暗号化かけて送信するように作るのもいいかな。(これも簡単に偽装されるんだけど・・・)そういう私も何ちゃってダミーサイトでBasic認証組み込んでいたりするからちゃんとしないといけないな・・・。
一応Basic認証のパスワードは通信上平文でもサーバーでは暗号化して保存してます。(DES暗号だったかな?)Digest認証だとどうなんだろう?