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

大学パスワード管理の現状」記事へのコメント

  • 簡単なパスワードを登録できた時点で、そのシステムは既に終わっています。今の Linuxや*BSDではPAMの機能 を使えば弱いパスワードは拒否されます。 対NSAレベルではありませんが:-)、辞書攻撃を含めて、素人さん相手には、ほぼ不可能なレベルになります。

    ちなみに辞書攻撃可能なパスワードだと市販PC程度のスペックの マシンでも 100ms程度 で破られます。みんなが考えているよりも簡単です。 そんなに難しくもなく、ちょっとヒントを言うと 去年のCRYPTO2001 ( CRYPTO2002 [iacr.org] ) でのランプセッションの余興に パスワード破りのデモがあったのですが、それを一般のシステムに 応用すればすぐできます。 京都大学のように24000個のパスワードがあっても 全部走査するのも1時間かかりません。

    組み込みシステムのような記憶領域の容量がない場合、PAMのように検査用辞書を持つことができません。その時は、僕の作った遷移状態(マルコフ連鎖)を使った文字列の複雑さを計算する 非常に小さい評価関数 [h2np.net] を試してみてください。かなり良い成績を出すはずです。

    --
    すずきひろのぶ
    • なんじゃこりゃー (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2002年05月05日 16時18分 (#89770)
      % gcc -Wall -O2 -DPEVALTEST peval.c -o peval
      % ./peval
      hironobu
       7  hironobu
      RKEaBh@$
       51  RKEaBh@$
      12345678
      126  12345678
      あと、ドキュメントにはスペルチェッカをかけるようにしてください。
      親コメント
    • 「そーゆーパスワードを選ぶ人」の作るパスワードをはじくための関数ではないのでしょうか?

      むりなものは無理です。 もう一度書きますが、Fool Proofなパスワードセキュリティのシステムではありません。 あくまでも遷移状態からみた文字列の複雑さを計算する非常に小さな評価関数です。 それだけで過大な期待をするのは間違いです。

      Linuxや*BSD、あるいはUNIX系のシステムでパスワードセキュリティのシステムを使うなら、 PAMを組み込むこと が今の所、最良の方法だと言えるでしょう。ただし、それでもすらも完璧だということはありません。

      組み込みシステムのようなメモリや記憶容量のないコンピュータの中に入れる目的なので実行コードも2kbyteを切ります。 そのため 知識データベースを用いていないので、当然、知識による判断はできません。 12345678の入力でも、この函数からの戻り値に対するスレッシュホールドを上げれば対処できますが、たとえば誕生日や電話番号、あるいは学籍番号のようなものは判断できません。

      容量が小さく、計算が速く、何でもできるような 万能なマジックがあると思うのは危険 です。

      --
      すずきひろのぶ
      親コメント
      • むりなものは無理です。 もう一度書きますが、Fool Proofなパスワードセキュリティのシステムではありません。 あくまでも遷移状態からみた文字列の複雑さを計算する非常に小さな評価関数です。 それだけで過大な期待をするのは間違いです。

        全くそのとおりです(そもそも Fool Proof なパスワードセキュリティシステムとはなにかという話はおいておくとして)。
        つまり、あなたの「非常に小さな評価関数 [h2np.net]」は「検査用辞書を用いた方式と比べて大きく機能が劣っており、(検査用辞書を利用できないような環境では)あったほうがないよりはましかもしれないけれど、それについてもなんら理論的根拠はなく、また実証されているわけでもない」ものです。

    • 実際には「没にした」ようなものであるにもかかわらず、読み手が誤解するような表現を用いて紹介したのは何故ですか。
      以下、箇条書きに私のスタンスを書きます。

      • 理論的背景をきちんと文章にして 論文等で発表していない点 に対して没ネタといっているだけで、 別に全体がダメだとは思っていません。 アイデアやコードは第三者に評価して頂ける程度のものには なっているものと思っています。

      • GPLでソースコードは公開しているのでアイデアがあればどんどん加えていくことができます。 ソースコードを公開し第三者が自由に使えること に意味があると思っています。 好きにコードをいじくってください。

      • きちんと文章が読める人には把握できる内容を書く努力はしていますが、 どんな文章を書こうとも読み手が誤解する可能性は常にあり、 また誤解、あるいは曲解する 人間がいるのも長年の経験からよく知っています。 しかし、それ以上に 知識を公開し共有することの方が有用 なことだと思っています。

      こんな感じの答えていいですか?

      --
      すずきひろのぶ
      親コメント
      • こんな感じの答えていいですか?

        あなたのスタンスについて理解が深まりました。大変素晴らしいスタンスだと思います。しかし、残念ながら、私の質問に対する回答にはなっていません。特に技術的な質問に一切答えていただけなかったので、返答を書こうにもオフトピックになってしまいます。ですので、がんばって簡潔に書きます。

        理論的背景をきちんと文章にして 論文等で発表していない点 に対して没ネタといっているだけで、別に全体がダメだとは思っていません。アイデアやコードは第三者に評価して頂ける程度のものにはなっているものと思っています。

        なるほど、わかりました。このコメント [srad.jp]の

    • Markov chainって、ふつうは正のクラスと負のクラスの両方のトレーニングデータセットでモデルを作っておいて、それをもとに実際のデータの確率を計算して、log-likelihoodを見て正負どちらかの「らしさ」を求めますよね。

      引用された関数だと、
      • どこかの小ネタに使おうと思って作った関数で、 パスワード辞書とランダムデータの2つを比べて中途半端な統計を取っていますが、きちんと理論的背景をつけれなかったので、 そのまま没 にしていました。

        Fool Proofな目的に作ったのではなく、純粋に遷移で 見ているので12345678とか%%%%%%%%というのも いい点数が出てしまいますが、まあ、 そーゆーパスワードを選ぶ人は何をやっても救えない というスタンスでやっています。ちなみにランダムな8桁の数字は結構、丈夫ですよ。

        --
        すずきひろのぶ
        親コメント
        • ちなみにランダムな8桁の数字は結構、丈夫ですよ。
          そうなんですか? 数字ばかりのパスワードは試す人がたくさんいそうで、すぐに破られる気がするのですが。何と比較して丈夫なのでしょうか。

          パスワードを決めるときには
          • なるべく長く
          • 英大文字・英小文字・数字・記号を入れる
          • 同じ文字を何度も使わない
          • 英語・日本語などの単語になっていない
          にするようにとよく言われます。これらは守るべきです。たとえこれらの情報が破る側にヒントとして与えられたとしても、これだけでは探索空間が大きすぎて、ちょっとやそっとでは破れません、たぶん。 :-)

          「破る人間の裏をかいて」数字ばかりとか記号ばかりとか長さ3文字とかにしている人はきっといるだろうと思うのですが、それはやっぱり危険です。破る側がちょっと「普通でないもの」を試したらすぐに破られてしまいますから。
          --
          鵜呑みにしてみる?
          親コメント
          • 数字ばかりのパスワードは試す人がたくさんいそうで、すぐに破られる気がするのですが。何と比較して丈夫なのでしょうか。
            何にも比較しないで定量的に:-) ランダムな8桁数字なので 高速な辞書攻撃が使えません。 従ってブルートフォースに頼らなければいけませんが、 ランダムな8桁数字を見つけるための平均試行回数を考えればわかると思います。あとは運次第です。

            • なるべく長く / 英大文字・英小文字・数字・記号を入れる / 同じ文字を何度も使わない / 英語・日本語などの単語になっていない

            というだけでは十分ではなく パスワードクラックの辞書には載っていないこと が必要です。 フランス語、ドイツ語、イタリア語、スペイン語などの卑しい言葉で、かつ文字O(オー)を数字0(ゼロ)などに変えるありがちな方法は 上記の要件は満たしますが、辞書攻撃ではたぶんダメでしょう。 ちなみにパスワードクラックの辞書は数十万、 あっても数百万の範囲ですので、8桁ランダム数字の方が それよりは少しは期待がもてます。

            また人間が選ぶランダムな文字列でという要件を入れても、 人間の脳は乱数生成器を持っていないので:-) 人間が文字を意図的に選択するという点で弱くなる可能性があります。

            それを避けるために、たとえばmkpasswdというプログラムを使ってパスワード候補の文字列生成したり(これはGNUのmkpasswdではなくNISTの人が作ったもの)、 それがなかったら、

            % cat /dev/urandom | mimencode |head -1

            として表示される文字列から任意の長さを選ぶとか人間の恣意的な データが含まれないようにした方がいいでしょう。 あとはその人の運次第。

            --
            すずきひろのぶ
            親コメント
            • パスワードクラックの辞書には載っていないこと
              ご指摘の通りです。「英語・日本語などの単語になっていない」の中にフランス語なども入っていたり、3をEとみなすとそう読める、なども含まれていたりすると解釈してください。って、無茶ですね……言葉が足りませんでした。
              パスワードクラックの辞書は数十万、あっても数百万の範囲
              知りませんでした。「ランダムな8桁の数字だったら、サイズ 10^8 の辞書攻撃で破れるなあ」程度に考えておりました。参考になります。

              // クラックする際に参考にするという意味ではなく。 :)
              --
              鵜呑みにしてみる?
              親コメント
              • 意図的(確信犯的?)なのかそうでないなのかはわかりませんが誤解を招くような展開になっている(と思う)ので一応指摘しておきます。

                ランダムな8桁の数字によるパスワードが、辞書に載ってる単語によるパスワードより辞書攻撃に強いのはあたりまえです。ランダムなんですから。

                数字のみでも辞書に載っていたら簡単にやられます。確かに現状では数字のみの単語はあまり辞書には載っていませんが、今後加えられる可能性がないわけではありませんし、また今回のケースのように大学の学生アカウントであれば、攻撃者は当然学生IDなどの辞書化を行うでしょう。
              • ちなみに 4, 6, 8 桁の数字をユーザに入れさせると想像以上に偏ります。8桁の最初は必ず19か20ね。 40時間なぞいらん。 そして数字のみを許すと、入力が楽だからと数字ばっかにする人は多い。 気をきかせて母親の誕生日にしても総当りされたら終わりだっちゅーに > 誰かさん
              • 従って「ランダムな8桁の数字は結構、丈夫」などという誤解を招くような表現は避けるべきです。

                たしかここだけ見ると誤解されかねないかも 知れませんね。推薦するの作り方はLinuxや*BSDだと

                % cat /dev/urandom | mimencode |head -1
                で表示された文字列から任意の長さ分使う。 という形なら誤解されないと思うのですが、これでいいでしょうか?

                --
                すずきひろのぶ
                親コメント
              • 誰に聞いているのかよくわかりませんが、 いいんじゃないでしょーか
                Linux Security HOWTOにもこんな風に [linux.org]書いてありますし。
              • ぼくもどの程度時間がかかるを概算して、 10^8 通りなら1ヶ月以上かかると思ったから「安全なのか。そうなのか」と思っていたのに、もう1度計算したらたしかに40時間程度になりました。どこを間違えたのだろう……。数字を8個並べただけでは危険ですね。
                「8桁の数字は一般的な辞書攻撃の対象とはなりにくい。しかし、時と場合によっては対象となり得るし、また総当り攻撃に弱い。したがって8桁の数字のみからなるパスワードは利用するべきではない。」などという表現が妥当です。
                まったく、おっしゃる通りです。
                --
                鵜呑みにしてみる?
                親コメント
        • 「そーゆーパスワードを選ぶ人」の作るパスワードをはじくための関数ではないのでしょうか?
          なんか全体的にいいわけがましくて失望しました。

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

処理中...