パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

貧弱なパスワードは貧弱なウイルス対策ソフトよりも深刻な問題である」記事へのコメント

  • by Anonymous Coward on 2009年08月12日 18時48分 (#1621607)
    今日、pixiv にアカウントを作ったのですが、記号を含むパスワードを設定したところ、「パスワードには英数字しか使えません」と言われて驚きました。記号を 1 文字でも混ぜておくだけで、パスワードの強度は飛躍的に上がるのに。

    パスワードに記号を認めないのはどういった理由なのでしょうか。少なくとも、技術的に困難なことではありません。ウェブサービスを作成されている皆さんにちょっと考えてほしいと思った一件でした。

    # これを以って pixiv を悪く言うつもりはないので AC
    • by Anonymous Coward on 2009年08月12日 19時37分 (#1621647)

      XSSやSQLインジェクションのもとになるからとにかく入力に英数字以外のものを許してはならないというサニタイズ脳が、かえってシステムを危険にしてる実例ですね。

      親コメント
      • XSSやSQLインジェクションが起こると、自分たちの責任。
        仮にパスワードが英数字のみしかできなくても、パスワードを破られるのはユーザの責任。

        どっちを選ぶかは明白でしょう。

        --
        1を聞いて0を知れ!
        親コメント
      • by Anonymous Coward

        とりあえずパスワードはSQLインジェクションの実証コードにしておけば

        - それなりに長い
        - 記号もちゃんと入ってる
        - 割と覚えやすい
        - 利用しているサービスの脆弱性が検出できることもある

        うん、よさそうだ。(ただしどこかに載ってるサンプルの流用はだめだぞ!)

        # ただし危ないリクエストをはじく仕様の、Webサーバー用FWに差し止められる可能性があります。

    • by Anonymous Coward on 2009年08月12日 19時42分 (#1621651)

      > パスワードに記号を認めないのはどういった理由なのでしょうか。少なくとも、技術的に困難なことではありません。

      わかってて書いているでしょうが、困難ではないですけど、
      確実にコストアップにつながりますよね。

      とりあえず、「&」「?」「"」「'」あたりはHTMLやSQLなどのために対処が必要でしょうね。
      使用言語やライブラリなどによってコードのほうは記号未対応の場合と一緒でいいときもあるでしょうが、
      テスト項目のほうにはきちんと盛り込まないといけませんね。
      (パスワード強度を上げようとしてSQLインジェクションなどに陥っては意味がないですよね)

      あと、「.」と「,」や「'」と「`」などの見間違えやすい記号を両方通すと
      書面等で通達するときにトラブルになりやすいかな?
      電話等の口頭の場合には「アポストロフィーって何?」とかなりそうですね。
      このあたりは英字の大文字と小文字を区別して受け入れる場合と同様にめんどくさそうです。

      まあ、Pixivの件はどうか存じませんが
      大体、必要なセキュリティとコストの兼ね合いで仕様が定まるでしょう、マトモな開発に依頼すれば。

      # 連投制限があるのでここで書いちゃいますが
      # パスワード数の上限設定はVARCHAR2(8)とかしちゃうせいでしょうね(大目に設定すればいいのに)

      親コメント
      • by Anonymous Coward on 2009年08月12日 21時19分 (#1621703)

        ・ユーザーが入力したパスワード文字列を保存するなんていう危険な実装をしようという時点で、そんな開発はまともじゃないし狂ってます。受け取ったら即座にハッシュにして、そのあとはプログラム内ではそのハッシュを扱えばいいだけです。パスワード文字列をそのまま保持するなんてとんでもない!

        ・ユーザーが入力したパスワード文字列を画面に表示する必要性はありませんので、これで特に問題は起きません。ユーザーの入力ミスを防ぎたいなら、二つの欄に二度入力させるなどの方法で対応すべきです。

        ・パスワードを忘れたユーザーに、ユーザー自身が以前入力したパスワードを通知する必要はありませんし、また、かなりのユーザーが同じパスワードを複数のサービスで使ってるため、万一第三者に不正取得された場合にも被害が自サービスだけではすまない大ごとになりかねません。
        ランダムな文字列を自動生成してそれを通知すべきです。自動生成する文字列に限っては、ややこしい記号を使わずアルファベットと数字だけを使うようにしておけばいいことです。

        親コメント
      • >確実にコストアップにつながりますよね。
        まったくです。

        まあ、ぶっちゃけいうと、今となっては桁数増やす方がずっと楽。
        20文字でも30文字でも,コンピューターの記憶容量からすると誤差みたいな物だし。

        ボトルネックは人間の記憶容量だな。
        最近は歳のせいか、物覚えが悪くて。

        親コメント
      • by Anonymous Coward on 2009年08月12日 21時13分 (#1621698)
        パスワードって、そのままDBに格納するんですかね?
        それだと、いずれにしろ、セキュリティ的に問題があるような気がする。

        一方向ハッシュ取って、BLOBか、あるいは、Base64かけたうえで、テキストとして保存するべきだと思うんですが。
        親コメント
        • 理想的にはそうですが、APOPのようなチャレンジ・レスポンス方式の場合、生パスワードが必要になりませんか?
          この辺り詳しい人がいたらお願いしたいです。

          親コメント
          • チャレンジ/レスポンス方式だからといって、生パスワードが必要とは限りません。プロトコルの設計次第です。
            例えば、HTTPのDigest認証 [wikipedia.org]では、パスワードハッシュを、更にチャレンジレスポンスでハッシュ化してるので、生パスワードを保存する必要はありません。

            もっとも、この場合「パスワードハッシュ」がAPOPとかでの生パスワード相当であり、それが漏れたら同サービスでのなりすましは出来てしまうわけですが、
            影響が他に及ぶ心配がないというか「複数のサービスで同じパスワードを使い回している場合に、他のサービスに対しても攻撃が出来る」のを防ぐことにはなります。

            親コメント
          • by Anonymous Coward

            > 生パスワードが必要になりませんか?

            なります。だから「生パスワードを保管しているからセキュリティ的に問題あり。だから生パスワードが必要なサービスはやめましょう。」なんて一概にいえるはずはないんですよ。

            どういう仕組みでも設計するときにはトレードオフの考慮は必要ですよ、当たり前すぎますが。

      • >確実にコストアップにつながりますよね。

        それくらいを見込んでコストを計算しないとね。
        サービスを劣化させてコストを縮小したい..というのはわかるけど、劣化させて安くしましたがほめられるというのも問題だろ?

        >パスワード強度を上げようとしてSQLインジェクションなどに陥っては意味がないですよね

        そういう質の低いコードしか書けない安い人を雇って安くすると?

        >同様にめんどくさそうです

        面倒なら、そもそもそんなシステム組むのやめたら?

        親コメント
        • by Anonymous Coward on 2009年08月13日 9時25分 (#1621854)

          >>パスワード強度を上げようとしてSQLインジェクションなどに陥っては意味がないですよね
          >そういう質の低いコードしか書けない安い人を雇って安くすると?

          この人、正気なのかな。

          苦労して完璧にエスケープできるコードを書いて、十分にテストして安全性を保証するコストは、
          技術力の如何に関わらず結構なものです。しかもこのコストは無闇やたらと記号を入れるという
          決断さえしなければ、最初から要らないものだもの。しかも記号を入れても、とくにパスワードの
          強度が上がるわけでもないというのに。

          なんだか、「シートベルトもエアバッグもなしで、しかもそれを使用している時と同等以上の安全性
          を技術力で実現しろ」といわれてる気分。不可能じゃないけど、金と技術の無駄づかいでしかない。

          。。。。「タバコ自販機の顔認証」の方が例としては良かったかな?

          親コメント
          • >なんだか、「シートベルトもエアバッグもなしで、しかもそれを使用している時と同等以上の安全性
            >を技術力で実現しろ」といわれてる気分。

            ちゃんとしたモノが作れないので、シートベルトもエアバッグも付けられないし、
            付けるとコストがかかっちゃうので、付けないということを言いたいわけですね。

            必要なものが何かを理解してからプログラミングなり設計をされるとよいでしょう。

            親コメント
      • by Anonymous Coward

        > わかってて書いているでしょうが、困難ではないですけど、
        > 確実にコストアップにつながりますよね。

        その程度でコストアップとかいうのはサニタイズ脳じゃないですかね。

        > 書面等で通達するときにトラブルになりやすいかな?

        パスワードを書面で通達するんですか?
        初期パスワードなら紛らわしい文字は使わなければいいだけ。

        • by Anonymous Coward on 2009年08月13日 20時02分 (#1622243)

          かつてユーザ数2000人ほど(コンピュータリテラシは低い)の組織に
          システムを導入したときの話ですが、初期パスワードは自動生成文字列を割り当てました。

          が、紛らわしい文字を使うとログインできないと苦情が来て対応に追われることが予想されたため、
          0, o, O, 1, l, I, i, j, c, C, p, P, s, S, u, U, v, V w, W, x, X, z, Z は使わないようにして
          生成しました。

          こんなんでも一見複雑そうに見えるパスワードにはなりますし、
          初期パスワードとしてユーザ名 + 番号みたいなものを与えて
          パスワードってそういうものなんだ、みたいな間違った学習を
          ユーザにさせてしまうのはよろしくないですし。

          親コメント
      • by Anonymous Coward

        だれか、このレスに「参考になる」をモデレートしてくれないかなぁ。

        駄目なSIerがどういう間違いを犯すか、それをどう指摘・修正すれば良いかについて、大いに参考になるよ。

    • オフトピかもしれませんが。

      1年ほど前の話なので、今はどうだか知りませんが、
      Amazonのログインパスワードについて、使える文字や文字数制限の注意事項が見あたらなかったので、
      英数字・記号を混ぜたパスワードを設定していました。問題なくログインできていました。

      あるとき、欲しいものがあったので『1-click注文』しようとしたら、
      ログインしているにも関わらずなぜかパスワードを求められ、しかも正しくないパスワードだと言われました。

      しばらく格闘した後、Amazonのログインパスワードを、記号を取り除いた新しいパスワードにしたら、
      『1-click注文』も使えるようになりました。

      Amazonの中の人に、しっかりしてほしいと思った出来事でした。

      親コメント
    • by Anonymous Coward on 2009年08月12日 19時03分 (#1621621)

      何だかpixivが特別なような言い草ですが、web上のサービスでパスワードに記号が使えない物は、感覚的には半分ぐらいはあります。
      pixivはかなりのロングパスワードを受け付けるので、まだ良心的な方でしょう。

      #記号が使えなくても覚えられないぐらいの長いパスワードをKeePassなどで一括管理する方がいいと思うな
      #もちろんマスターパスワードは記号入りかつ長い物を覚えておきます。一つなら可能だし。

      親コメント
    • by Anonymous Coward

      >「パスワードには英数字しか使えません」と言われて驚きました。記号を 1 文字でも混ぜておくだけで、パスワードの強度は飛躍的に上がるのに。

      『飛躍的に』ってのは言い過ぎでしょ。

      アルファベット26文字。大文字小文字で52。数字を加えて62。

      仮に(たったの)10文字としても、62の10乗と63の10乗を比べて、
      『劇的に上がる』というのは言い過ぎだろう。

      • by Anonymous Coward
        ヒント:辞書攻撃

        利用可能な全文字の総当りなんてしねーよ
    • by Anonymous Coward

      >「パスワードには英数字しか使えません」
      まだまし。

      三井住友のvpassは数字のみだった。
      ふざけすぎだろ...

      • 別のコメントにもあるように、Vpassは半角英数字6-8桁ですよ。

        もっとひどい例もあるよ。
        さすがにどこのクレジットカードかは書かないけど、「会員番号(NOTカード番号)」と「カードの暗証番号(4桁数字)」のみで認証ってのが。しかも会員番号はしっかりカードに記載されてる。
        さすがにあきれました。

        --
        うじゃうじゃ
        親コメント
      • by Anonymous Coward

        三井住友VISAカードのvpassパスワードは英数字6-8文字ですね。
        公式サイトではそれでお金が引き出せたりする訳じゃありませんが、買い物の認証に使われることもあるので、客観的に見ると確かに危険です。
        でもパスワード云々言うなら、元々暗証番号自体が極めて脆弱ですよね。
        ものすごい論点のバランスの悪さを感じます。

        ちなみに三井住友銀行のone'sダイレクトは取引の重要性によって三段階の認証がありますが、第一認証は数字4桁です。
        第二・三認証は各個人の持っている番号カードの2桁の数字のいくつかを使います。

        これらは金銭的にものすごく価値のあるもの、かつ一見脆弱な認証を

    • by Anonymous Coward

      最近、アカウント名には記号(このときはハイフン)を使えるのにパスワードには
      使えないというシステムに遭遇しました。何か遠大な意図でもあったのだろうか。

にわかな奴ほど語りたがる -- あるハッカー

処理中...