SSブログ

パスワードの数学(のようなもの)2 [よもやま]

ここいら、何の意味があってグダグダとチラシの裏のメモを書いているかというと、巷間述べられているパスワードの議論にどうも納得がいかないから。
住民税と同じ。
住民税といえば、ITサイトの代表格であるInternetWatchも記事にしていた。
https://internet.watch.impress.co.jp/docs/special/1129773.html
ロジックの複雑性が論理屋のハートをつかむ(わらい)のだろうか。

◆属性を引きずるパスワード
前回の例で、
Pandakawaii98
これは文字13、数字交じりなので、単純に文字数の掛け算では36**3ととんでもない場合の数となる。
総当たり攻撃ではまず破られない、が、カスペルスキーさんは一応「よく使われる文字組み合わせがあります」と警告し、家庭用PCで2年で解析可能と言ってくれる。少なくとも総当たり方式ではまずムリ。辞書方式兼用、すなわち「パスワードによく使われますよ」辞書にあるというので、2年に縮まる。まあpandaもkawaiiもありそう。
ところがtwitterの自己紹介にパンダの写真があって、かわいい!とか書いてあって、年齢をうかがわせる記事があったりするといきなり「あてずっぽう」の世界に突入する。
っまり、さらなる弱化要因として、属性がパスワードの類推に役立ってくる。

◆言葉はランダムな文字ではなく
pandaもkawaiiも日本語の単語であり、日本語の辞書に載っている。
ここで10000の単語のある辞書を考える。ここから2つ選んでパスワードを作るとき、10000**2 = 1億通り。文字数が何文字でも、こういうアタックをされると「でたらめ英数字5文字」より若干強い程度。何文字の辞書を想定しているかは知らないが、オフラインで攻撃されたら5日だとカスペルスキーさんはおっしゃっている。
では3単語では?10000**3 だと「でたらめ英数字8文字」よりは弱い。これは意外と弱い印象。ただいずれにせよ、試行10回でアカウント一時ロックという仕様を絡め、個人の属性に関係なければ十分に強い。
ここがポイント。個人属性に絡んでいないこと。

◆オンラインの場合‥つまり試行回数の限度を超えるとアカウントロック
自己紹介とか、生年月日とか、生年月日とか、mailとか、そういうのに絡んでいなければ、試行3回でアカウントロック付のランダム英数5文字程度で本来的には十分ではなかろうか(暴論か?)。
よく、某銀行とか、某航空会社で、数字4桁のパスワードが非難を浴びるが、試行3回でアカウントロックだとすると、属性を引きずっていない数字ならまあまず破られることはなさそう。ただし条件があって、
  1. アカウントロック解除はそれなりの厳重性がある仕組みであること
  2. 数字を決め打ちにして多数のユーザーを攻撃する「数字を一つ思い浮かべろ」方式には直ちに運用側に警告が上がるような仕組みになっていること
  3. 運用側が暗号化済パスワードを漏らさないこと。これが一番危ない
  4. 通信回線が安全であること

運用側が信用できない今日、どうでもいいサービスならランダムな(英小文字+数字)8文字、お金に関係するサービスなら、同、10文字というのはいい妥協点かもしれない。
記号や大文字を入れるくらいなら文字数を増やす。
中にはどうしても大文字入れろとか記号入れろとかうるさいサイトもあるにはあるが。
これはあとで。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

パスワードの数学(のようなもの)メモ [よもやま]

◆パスワードの数学(というレベルのものではない)メモ
‥大げさな見出しだな。
非常に論点の見えにくいメモ。
このあたり非常にうるさい有識者がいるわけだが、こんなところに突っ込んでくるわけはなかろうと思い、適当に書き散らす。

◆いわゆるパスワードの原理的なもの
数字1桁のパスワード(!)があったとする。この場合あたりまえだが10通りある。でたらめに試して当たる確率は0.1、短時間に10回試せば確実にヒットする。短時間にというのは、ゆっくり試していると、やっている最中にパスワード自体が変化する可能性もあるので。
1回目に当たる確率は1/10、2回目に当たる確率は(9/10)x(1/9)=1/10、以下同じ。
ここで、3回試行して外したらアカウント凍結、という仕様にすると、3/10の確率で破られる計算。
1 / (要素のとりえる場合の数) x 試行回数 ということになる。
===
数字2桁の場合で、試行回数3回だと、同様に1 / 100 x 3、
数字英文字(大小)交じりで6桁だと、1文字で (10 + 26 x 2) = 62通りの場合の数となるので、62**6=568億通り。試行回数10回でもそう簡単に破られる気はしない。
仮に、大文字NGとすると、(10 + 26 ) = 36通り、36**6 = 22億通り
逆に記号を#$%&!@+*-?と10増やすとすると72**6=1393億。
試行回数3回程度だったら楽勝でOK。

◆パスワード強度チエツカーの嘘
世間で出回っている(?)チェック、「記号を入れてますか?」「大文字小文字を混ぜてますか」「同じ数を連続して使っていませんか」は、あーそれは危ないかも、と思わせといて、実はあまり関係ないことにうすうす気が付く。桁を1桁増やしたらいいだけ。
英数小文字で6桁=22億通り、7桁だと784億となって英数大小文字6桁を上回る。
タブーな組み合わせ(*後述)を選ばなければ、英数小文字8桁、試行10回アウトで2821億通りと、まーったく破られる気がしない。

◆ただし問題は‥
(1) いくらでも試行できるなら(たとえばファイルにかけられたパスワードをオフラインで解く)この程度ではだめ。カスペルスキーさんいわく英数小文字8桁程度だったら12日程度で破られるとのこと。あーでも10桁だと2年になるな。
そうはいっても12桁くらいにしとけば当分大丈夫じゃなかろうか。
https://password.kaspersky.com/jp/

(2) タブーな組み合わせを選ぶと辞書攻撃でアウト。qwertyuiみたいなの。あるいは、まさかとは思うが20190501みたいなの。
この「選んではいけない文字列」を論ずるのが実は結構難しくて、ある人にとって安全でもある人にとっては危険だったりする。
一般論として年月っぽいのはダメ、とか、キーボード配列っぽいのはダメとかポピュラーなのはわかりやすいが、以下はどうだろうか
(A) 98B03445
(B) pandakawaii98
普通の人はOKだが(A)は実は学籍番号、(B)のtwitterのprofileにはパンダの写真が貼ってあり、パンダかわいい!と書いてあって、生まれが1998年。
あるある。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。