日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2014年11月14日金曜日

英数字(0-9, a-z, A-Z)10文字の組み合わせパターン数とそのセキュリティ強度

イントロダクション

共有ドキュメントのURLをツイート(ダイレクトメッセージでつぶやいた場合も、通常の公開ツイートと同様です)すると、次のような短縮URLが得られます。

元のURL:
https://docs.google.com/spreadsheets/d/********************************************/edit?usp=sharing

短縮URL:
https://t.co/**********

※ * は英数字1文字の伏字

Twitter:ダイレクトメッセージでURLを送信




英数字(0-9, a-z, A-Z)10文字の組み合わせパターン数

元のURLでは、44文字あった識別子が、10文字に縮んでいます。
(なお、元のURLでは、Googleドライブであることや、特定のファイルの種類であることも、識別子として機能していたので、その分セキュリティ強度は高い。)

元のURLと同じように、パターン数を計算してみます。
識別子として出てくる文字を英数字(0-9, a-z, A-Z)と仮定した場合、その文字の組み合わせで実現されるパターン数は、

1-9 のパターン数 = 10(通り)
a-z のパターン数 = 26(通り)
A-Z のパターン数 = 26(通り)

1文字分のパターン数 = 1-9 のパターン数 + a-z のパターン数 + A-Z のパターン数
 = 10 + 26 + 26
 = 62(通り)

10 文字分のパターン数 = 1文字分のパターン数 * 1文字分のパターン数 * ... * 1文字分のパターン数 (10回 1文字分のパターン数 をかける)
 = 1文字分のパターン数 ^ 10 (^はべき乗の意)
 = 62 ^ 10
 ≒ 8.4E+17 (Eは、8.4 * 10^17の意)(通り)

となります。


セキュリティ強度

8.4E17通りのパターンから、1つのパターンを当てる確率は、

1/8.4E17 ≒ 1.2E-18

です。


ジャンボ宝くじの1等を当てる確率は、1000万分の1と言われています。(*1)
これを数値(指数形式)で表すと、

1/1000000 = 1E-6

となります。

英数字(0-9, a-z, A-Z)10文字の組み合わせパターン数から一つのパターンを当てるのは、ジャンボ宝くじの1等を当てる確率1E-6と比べると、まだまだ十分に低い確率です。


これだけ見れば、共有ファイルに第3者が不正にアクセスする確率は、十分に確率は低いんじゃないかと思われるかもしれません。

しかしながら、ジャンボ宝くじは年5回しかチャレンジできませんが(*2)、URLへのアクセスはコンピュータで自動化すれば1秒間に何度もアクセスすることができます。


かつ、URLにアクセスするコンピュータを1台からではなく、何十台~何百台と増やしていけば、その分だけアクセスに成功する確率が上がります。

例えば、1台で1秒間に10回、1000台のコンピュータでURLへアクセスするとすると、1年間のアクセス回数は3.15E11(回)です。

計算は以下の別投稿にて行っています。

ボットネットを利用した場合のアクセス制限URLに対するチェック回数を試算 - Dr.ウーパのコンピュータ備忘録
http://upa-pc.blogspot.com/2014/11/bot-net-try-count.html



英数字(0-9, a-z, A-Z)の10 文字分のパターン数8.4E17通りと比べると、まだ桁が6桁足りませんが、コンピュータの台数を増やしたり、1秒間あたりの1台のアクセス数を増やしたり、より長期で試行することで、全パターンに対するチェック率を上げられます。

また、ここでは、特定のファイルを開くことが出来る確率を考えましたが、誰かのファイルが開ければよいと考えると、共有されているファイルの数だけ誰かのファイルを開くことが出来る確率が上がります。共有されているファイルの数が増えれば増えるほど、誰かのファイルが開かれる確率が上がります。


参考文献

*1:

夢が壊れる!?宝くじの種類別に1等当選確率を計算してみた結果 | キャッシングのまとめ
http://camatome.com/2013/06/takarakuji-1tou-tousenkakuritsu.php

*2:

ジャンボ宝くじ くじの特徴 | 宝くじ公式サイト
http://www.takarakuji-official.jp/brand/jumbo/








関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...