パスワードを忘れた? アカウント作成
16536547 story
スラッシュバック

「w6!j38?pa7J」と「CanYouCelebrate?」ではどっちが強力なパスワードか? 152

ストーリー by nagazou
回答の解説が悪いのでは 部門より

しんやさんのツイートによると、とあるセキュリティ研修で

問:下記のどちらが強力なパスワードですか? という問題が出たようだ(しんやさんツイートTogetter)。

1.「w6!j38?pa7J」
2.「CanYouCelebrate?」

この問題の正解は「2」。説明によると、

1.は確かに複雑ですが覚えにくいです。2.は覚えやすく他人からの推測も困難です。2.を使う方が賢明です。

とのことだったようだ。このセキュリティ研修の問題はあちこちの企業で使われているらしく、Twitter上では「全く同じ問題出てみんな間違えてた」とする声が相次いでいた模様。

一方で2で正解なのが当然だとする指摘も出ている。その理由としてエクスリさんは

2は字数長い、全角半角記号まで使っている、生体情報的な単語がない、辞書攻撃リストにはあまりない文と固さの条件整っている上で忘れにくいわかりやすさだからなぁ

と解説している。また1のような複雑過ぎるパスワードは、メモされて画面やキーボードの裏とかに貼られたりする傾向があり、ソーシャルハックに弱いとする指摘もあった。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by hinatan (24342) on 2023年03月20日 18時09分 (#4429933) 日記

    信じられないアホを見る目してくれていい。

    辞書アタックの事しか考えてないんでは?

    1. CanYouCelebrate? が覚えやすいって、これで使い回すんならアウト。
      自分はこんな文でもバラバラに出来るほど記憶力はよろしくない。

    2. サイトによって CanYouCelebrate? を許さない。数字を入れと言われたり、
     逆に ? はダメというところもある。なので、ここで分裂がはじまる> 覚えられない

    どっかに記録しないといけないんですよ。
    自作パスワードマネージャが最強かね。(中身、ただのopensslのバッチ)
    ツール類はトロイの木馬だったら嫌だし、

    やってないけど。

    • Re:#1 のほうがいい (スコア:3, おもしろおかしい)

      by Anonymous Coward on 2023年03月20日 19時23分 (#4429982)

      1を付箋に書いて貼っちゃうようなやつは
      Celebrateのスペルに自信なくて2でも付箋貼る

      親コメント
    • by 90 (35300) on 2023年03月20日 21時11分 (#4430023) 日記

      別枝にも書きましたけど、これは4単語以上で完全ランダムじゃないとダメなんです。3単語で文章だとまったく辞書攻撃が可能で、英数大小記号11文字(~70^11)の方が遥かに破られにくいです。けれども一定の裏付けがあるし、詳しい条件は普通の講師には分からないので"引っかかる(正解している)"人が多いわけですね。

      親コメント
    • by Anonymous Coward on 2023年03月20日 22時13分 (#4430058)

      w6!j38?pa7J
      うろん!じゃさば?ぱなじぇ
      覚えた

      親コメント
    • by Anonymous Coward

      覚えやすいって理由が笑えるね。逆に言えば打ち込んでるところを見られたら覚えられちゃうし。文字列長除けば2の方が完全に弱い

    • 1だろうが2だろうが知る要素のみな時点で脆弱だと思う。

      「覚えやすさ」が判断に含まれるという事は、手で入力する前提だろうけど、
      どちらだろうと、ショルダーハックによってパスワードを盗み見られる可能性がある。
      それを試みるハッカーなら記憶力に自信があるだろうから、1だろうが2だろうが関係はない。

      また、入力画面が改竄されていたら、端末にキーロガーが実行されていたらそこから漏れる。

      よって、どちらのパスワードの使用も賢明ではない。

    • by Anonymous Coward

      辞書攻撃と総当たり攻撃
      どちらを重要視するかで変わる

  • by Anonymous Coward on 2023年03月20日 18時34分 (#4429950)

    2番目は毎入力時に鼻歌うたっちゃう奴が少なからずいるはずなので、脆弱

    • by Anonymous Coward

      ふと思ったんだが、メロディーをパスワードにすれば結構長いの覚えられるかもしれんね。sofa#solaso-…。歌詞でも良いのか。
      メロディーやローマ字入力は同じ文字を多用するので体温の残りをサーモグラフィーで見てもバレ難いかな。
      #を使う使わないとか伸ばしを入れる入れないとか、音階の書き方(doremi…、CDE…、或いはキーボードを鍵盤に見立ててaをドにしたらgtghg-…配列変わっちゃったら…w)とか…フォーマットも色々。

  • by Anonymous Coward on 2023年03月20日 19時11分 (#4429972)

    パスワードクラックをやっていたのはずいぶん前のことなんですが、当時よく使われてたcrackstation.txtという辞書ファイルがあるんです。そこにgrepかけてみますとこんな感じです。

    ls -al crackstation.txt
    -rw-r--r-- 1 torii users 15696118781 Apr 27 2015 crackstation.txt

    grep -f -a -i canyoucelebrate carckstation.txt

    CANYOUCELEBRATE
    CANYOUCELEBRATE?
    CanYouCelebrate
    CanYouCelebrate?
    Canyoucelebrate
    canyoucelebrate
    canyoucelebrate?
    CANYOUCELEBRATE?(BACKTRACKWITHTK)
    canyoucelebrate?(backtrackwithtk)
    CANYOUCELEBRATE?(Heavenlymix)
    canyoucelebrate?(heavenlymix)
    CANYOUCELEBRATE?(instrumental)
    canyoucelebrate?(instrumental)
    CANYOUCELEBRATE?(SEVENTHAVENUESOUTHmix)
    canyoucelebrate?(seventhavenuesouthmix)
    CANYOUCELEBRATE?(STRAIGHTRUN)
    canyoucelebrate?(straightrun)
    CANYOUCELEBRATE?(Weddingmix)
    canyoucelebrate?(weddingmix)

    色々バージョンがあるみたいですね。

    既知の単語を組み合わせるなら、関連性の薄い単語にしておいた方がいいんじゃないですかね。聞いたことはないですが、単語間の出現確率を推定してランダムウォークで生成させることもできなくはないと思うんで。can と you って連続出現の確率高そうでしょ?

  • by Anonymous Coward on 2023年03月20日 18時32分 (#4429949)

    一般的な個人用途なら、ランダム20文字以上のパスワードを使って、パスワードマネージャで管理するのが一番でしょう

  • by simon (1336) on 2023年03月20日 18時09分 (#4429934)

    1.大文字小文字を混在させることよりもパスワードは長くすることで強度が上がる

    2.数字を入れさせることよりもパスワードは長くすることで強度が上がる

    3.記号を入れさせることよりもパスワードは長くすることで強度が上がる

    以上の理由から「パスワードには必ず大文字小文字混在で。数字は必ず使ってください」みたいなポリシーよりも「パスワードは何百文字でもひたすら長くしてくださって構いません。短いパスワードを設定した結果起きた不法ログイン事案は短いパスワードを設定したユーザーご本人の責任ですので責任を負いかねます」としてくれればいい

    • by Anonymous Coward

      愚痴でも入れたらいいのかな。
      NagaiPasuwa-dowoIrerunohaMendokusai

      • by Anonymous Coward

        実際、カナを単純にアルファベットにしたものは辞書攻撃にも強いからオススメだね
        攻撃側がこの人のパスワードがこの法則(子音+母音の法則性)で入力されているのを知っている場合に限ってはクラック速度も上がるけど、そんなことはないだろうし
        とはいえ使いまわしの懸念があるから、パスワードマネージャでサイト毎個別に設定しておいた方がいいのは確か

        • by Anonymous Coward

          日本人のアタッカーなら普通にローマ字単語辞書ぐらい使うんじゃないかな

    • by Anonymous Coward

      その理屈だと「1」を100回つづけてもよし?

      • by Anonymous Coward

        多分あり
        まあ倍くらいにした方がいい気がするけど

    • by Anonymous Coward

      ネット上のサービスの場合、使用可能な文字数と文字種を明記してない場合が結構多い印象がある
      パスワードマネージャーでランダムな文字列を生成して登録してるんだが、後になってパスワードが通らなくて、末尾の文字を何文字か削ったら通ったことがある
      せめて、パスワードを登録するときに文字数オーバーで警告を出してくれれば良いんだけどね
      それすらない辺り、下手するとバッファオーバーフロー絡みの脆弱性も疑われてかなり怖い仕様だけど

  • https://xkcd.com/936/ [xkcd.com] と https://www.explainxkcd.com/wiki/index.php/936:_Password_Strength [explainxkcd.com] 参照。

    例えば英数記号8文字、つまりchar[8]なパスワードであれば64bit = 1.84*1019通り、まあ実際は28bit = 2.7x108程度の情報量があります(\aとか\bとか\nとか使えないし、単語もじってる場合が多いし、等々)。これに対して"頻出英単語2048"のような本を買ってきて全部文字起こしして、その中から例えば"Correct Horse Battery Staple"のように、ちゃんとした乱数でランダムに4単語を選べば、情報量は少なくとも20484 = 1.8x1013となり、先の2.7x108を超えます。

    "Correct Horse Battery Staple"はスペースを除いて25文字なので、単純なブルートフォースでは平均258/2回で割れます。単語帳アタックに対してはより脆弱ですが、頻出英単語2048から乱数で4単語選んでいるわけですから、1013回単位でガチャを引いて1/2048を4連で当てないと割れません。なのでちゃんとした乱数で4単語以上を選んでいる限りは英数記号より覚えやすい割に強力なのです。これと似た考え方は仮想通貨ウォレットの復元用のひみつの呪文でも取り入れられていて、例えば"among laundry cruise want ..."とか16単語くらいの羅列を表示してメモらせる方法が広く使われています。

    ……ではこの1)と2)は本当に2)が強力なのかというとですね、まず単語をランダムで選んでないし、単語数が足りていなくて……いわゆる"Correct Horse Battery Staple"法はランダム生成4単語だから20484の強度が期待できるわけですが、3単語だと11bit(1.5文字……)にしかなりません。そこから更に英文として成立しているという縛りが入るので……えーっと……

    Correct Horse Battery Staple法にはジェネレーター [correcthor...staple.net]も複数あるので、使ってみたい人は適当なやつを選んで機械生成するのがおすすめです。くれぐれも、文章として成立する英文を頭で考えて打ち込んだり、単語数を4未満に減らしたりしてはいけません。完全にランダムに選ばれた4単語以上だからこそ、組み合わせがちゃんと爆発して、覚えやすい割に総当たりでも辞書でもAIでもどう絞り込まれても強度が確保できる、という理屈なので。長い分には好きにすればよろしい。

    • 例えば英数記号8文字、つまりchar[8]なパスワードであれば64bit = 1.84*1019通り、まあ実際は28bit = 2.7x108程度の情報量があります(\aとか\bとか\nとか使えないし、単語もじってる場合が多いし、等々)。

      これに対して"頻出英単語2048"のような本を買ってきて全部文字起こしして、その中から例えば"Correct Horse Battery Staple"のように、ちゃんとした乱数でランダムに4単語を選べば

      どうして文字を選ぶときはランダムではないと仮定するのかがわかりません。条件を揃えない理由はなんでしょうか。

      ランダムな場合、英数記号8文字で 8bit という時点でちょっと。英数字62文字、記号が32文字程度。約6.55bit×8文字=52.4bit ぐらい。「まあ実際は28bit」とは全然違います。

      28bit というと、1文字 3.5bit つまり 12文字種未満です。数字と記号2種(+-とか)よりも小さいわけで、アルファベット小文字のみよりもはるかに小さいです。英数記号としているのに、これはないでしょう。

      3単語だと11bit(1.5文字……)にしかなりません。

      2048通りの単語は1語で 211、つまり 11bit あるのでは? 3単語なら 33bit、「まあ実際は28bit」を上回っています。

      そもそも、攻撃者が試行しなければならない回数を基準に考えるべきでしょう。

      まず総当たり法だったら短い方か攻撃者が考えるありそうな長さから攻撃するのでパスワードが長い方が絶対的に有利です。

      辞書攻撃だったとしても、2048通りしか載っていない辞書で攻撃されるというのは普通はありえないでしょう。英語漬け.com [eigo-duke.com]の単語表なんかでも John Smith すら載っていませんからね。8192単語の辞書で攻撃するなら 13bit、大文字か小文字かの2通り試すだけで +1bit、単語の後ろにスペースをつけるかつけないかで +1bit です。先頭のみ大文字とか区切りがスペース以外にピリオドだの疑問符だのハイフンだのを考慮すると、もっともっとです。1語あたりでこれですから、3単語だと、まあまあ強力です。

      個人的には、辞書に載っていない語を1つ組み合わせることを勧めています。Can You Celebrate? が好きなら cyc? とかと更に2語ほど。単語間を適当な文字でつなぐとなおよし。

      親コメント
  • by Anonymous Coward on 2023年03月20日 21時18分 (#4430031)

    うちの会社で、「Lancer_Evolusion_9」というパスワードを設定した人がいて問題視されたが、
    Evolusion のスペルが間違っており、辞書攻撃に強いという意見が多数あった。

  • by Anonymous Coward on 2023年03月20日 18時08分 (#4429932)

    またインデックス生成が止まっているようですね。

  • by Anonymous Coward on 2023年03月20日 18時10分 (#4429935)

    パスワードリストを更新しました。
    これでもう意味なくね?

  • by Anonymous Coward on 2023年03月20日 18時12分 (#4429936)

    2は数字が使われていないからパスワードとして設定できねーよ。

    #oを0に置き換えるか

  • by Anonymous Coward on 2023年03月20日 18時23分 (#4429940)

    この例で言えば英単語を全てぶち込んである辞書でクラックできそうだけどなあ
    単語の先頭が大文字なことやクエスチョンマークは辞書攻撃ツールがデフォルトでやってくれそうだ

    • by 90 (35300) on 2023年03月20日 19時54分 (#4429997) 日記

      英単語を全てぶち込んであっても、単語数が多くなると候補単語^単語数に組み合わせが増えるのでクラックできなくなります。でも3単語かつ文章として意味のある英文だと瞬殺なんですけどね。まあ巷の研修というのが如何にいい加減かという……

      例えば"1234 2345 0000 5432 4321"だと名目上はパターンが10^20通りあるでしょう。ちゃんとランダムに選べば英数記号8桁(256^8, 10^19通り)より複雑だし、その数字を英単語に置換しても問題ないわけです。ちゃんとランダムに4つ以上並べれば。既知じゃなければ。

      親コメント
  • by Anonymous Coward on 2023年03月20日 18時49分 (#4429958)

    パスワードってのは長ければそれだけでいい
    0を20個並べただけでもまず破られない

  • by Anonymous Coward on 2023年03月20日 18時56分 (#4429962)

    「覚えられないパスワードはソーシャルハックが容易などこかにメモられる」というのは全くその通りなんだけど、2はこれをベースに自分が覚えやすいルールに基づいて置き換え/追加を行った上で利用しない限り変わらず脆弱。
    #つうか10年ぐらい前にこの方式(「自分が覚えている/気に入っている特定の文章」を元にパスワードを作る)について複数の媒体で別々のライターが書いていた文を読んだ記憶があるけど、それらの記事では文章を繋げただけでそのまま使うなんて乱暴な事はやってなかったけどなあ。

    この曲名を使ったパスフレーズの生成だと、たとえば

    1:シンガーの名字の子音部分「AMR」と合致する文字だけ大文字にする
    2:同じく名前を数字変換した「730」を頭なり最後なりに追加する

    みたいな一手間掛ければ、最悪ペンとメモ用紙一枚出して実際に書きながら考えれば大抵は思い出せるって具合。
    #「え」で「0」にはならない?だったら「え」->「えー」->「A」で「73A」を使っても別にええですわ、自分がそのルールを覚えていれば。

  • by Anonymous Coward on 2023年03月20日 19時08分 (#4429966)

    この研修内容を広めている会社名を知りたい。会社名を無料で宣伝できるこの機会は、研修会社も自信をもって教えてるのならば悪い話ではないはず

  • by Anonymous Coward on 2023年03月20日 19時09分 (#4429968)

    全部半角じゃね? メモ帳にコピペして全角文字探したけど無かったぞ
    まさか大文字小文字の事を言ってるのだろうか?

    そもそもパスワードに全角文字ってあんまし良くないような
    IMEの変換候補とか見られたらキーボード盗み見より簡単にバレそうだし

    • by Anonymous Coward

      わかったぞ。
      「CanYouCelebrate?」
      っていう鍵カッコ含むパスワードなんだ、きっと。

  • by Anonymous Coward on 2023年03月20日 19時10分 (#4429970)

    12どちらでもいいけど、こういうクラックしたらこちらが勝ちました。のほうがいいな

  • by Anonymous Coward on 2023年03月20日 19時26分 (#4429984)

    「あなたの小学校の名前は?」とかさ。

    こんなのがくっつくところはパスワードだけいくら頑張ってもムダというか脱力感しかない。

  • by Anonymous Coward on 2023年03月20日 19時46分 (#4429993)

    何処に全角があるんだ?

  • by Anonymous Coward on 2023年03月20日 19時50分 (#4429995)

    4000^10 = 2.56*10^14
    区切り文字のバリエーションを加えても大したことがなく、ランダムな英数字8桁と同程度。
    普通に辞書とブルートフォースを複合されたら短時間でクラックされるな。

  • by Anonymous Coward on 2023年03月20日 20時11分 (#4430004)

    このタイトルの曲は結婚式でよく歌われる
    →めっちゃむかつく新婚さん爆発しろ
    →キーボードを怒りのままに力一杯叩く
    →パスワードに使うキーだけボロボロになる
    →痛んでいるキーからパスワードが推測可能になる

typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...