読者です 読者をやめる 読者になる 読者になる

とある大学の学生のパスワード

とある架空の大学の学生の大学で使うパスワードについての架空の話をなんとなーく考えてみました。
大学生なので、友人繋がりでいくつかの大学の話を聞いたりしたので、そこらへんも踏まえて架空の大学を想定してみます。

大学の想定

  • ポータルサイトがあります。
    • 履修登録ができたり、学校からの連絡のほかに、成績や時間割がpdfファイルでダウンロードができます
    • よくある大学ですね
  • ダウンロードしたpdfファイルには、パスワードが掛かっています
  • パスワードはすべて共通のものが使えます
    • よくある大学ですね

ある日

その日は成績公開の日でした。大学は長期休暇だったので、友人と遊んでいる人も多いでしょう。
遊んでいる時に一緒に成績を確認することになりました。ある友人がPCを持っていたので、そのPCを借りて皆で成績を確認しました。最近の大学生は情報リテラシー教育も受けていますので、もちろんパスワードを入力している所はお互いに見ないようにしていますよね。

その後

ある友人は、PCにその他の友人のpdfファイルが残っている事に気づきました。パスワードがかかっているので、開けません。
そのまま削除してしまえばよかったのですが、ある友人は、出来心で、なんとかして開くことはできないかと考え始めました。。。

パスワード付きpdfファイルを開く

パスワードで保護されているpdfファイルを開く方法を調べていた所、どうやらPDFCrackというツールを使えば総当りでパスワードを調べられるということが分かりました。
ある友人は情報系の学生だったので、VPSを借りていました。そのサーバ上で実行することにしました。

$ wget [pdfcrackのダウンロードURL]
$ tar xvf pdfcrack-0.13.tar.gz
$ cd pdfcrack-0.13
$ make

総当りで調べるにしても、どんなパスワードがかけられているのか想定は必要ですので、おおまかに考えることにしました。

  • パスワードは英数字(小文字のみ)で構成されている
  • パスワードは4桁〜12桁

こんな感じでしょうか。この条件で、パスワードの解析をしてみます。

$ ./pdfcrack --charset=1234567890abcdefghijklmnopqrstuvwxyz --minpw=2 --maxpw=12 ../seiseki.pdf
Average Speed: 713876.2 w/s. Current Word: 'capc8' 
Average Speed: 726140.3 w/s. Current Word: 'm6zzf' 
Average Speed: 736007.7 w/s. Current Word: 'tahro' 

一定時間おきに速度が表示されています。1秒間に約72万回試行をしているようです。

そして…

動かし続けて27日くらいが経過した時でしょうか。

found user-password: 'pass2abc'

パスワードが見つかりました。パスワードは8桁だったようです。
こうしてとある友人はパスワードを手に入れてしまいました。このパスワードはこのpdfファイルを開くだけでなく、大学のポータルサイトやその他パスワードで管理されているもの全てに共通しています。同じ大学の学生であればIDの推測も容易であると考えられるので、色んな事ができてしまします。
悪いことを考えなければよいのですが…
(※もう一度書いておきますが架空の話です)

言いたいこと

適当な作り話をしましたが、大学って昔ながらのシステムを使い続けているところが多いよねと思ったのがこの記事を書いたきっかけです。

pdfファイルにかけるパスワードを学生のアカウントのものにすると、どうなるか簡単に言うと、ブルートフォースアタック(総当たり攻撃)がしやすくなるということですね。
ポータルページ等に対してブルートフォースアタックを掛けるとなると、きっと1秒間に数回しか試行できませんし、大量のアクセスログを残すとアタックを仕掛けている事が簡単にバレてしまいます。
しかし、pdfファイルは別です。pdfファイルはローカルにあるので、いくらアタックしたってバレませんし、ポータルページ等にアクセスするより遥かに高速に試行ができます。
先ほど紹介したpdfcrackでをさくらVPS(1G)上で動かしてみた結果、1秒間に約72万回試行ができました。
pdfファイルに8桁のパスワードを設定し、先ほどの条件でpdfcrackを動かしてみたところ、約27日で解析ができました。pdfcrackは1コアしか使わないので、ちょっとした工夫をして複数コア使えるようにすれば、解析時間を半分以下にする事は容易ですね。

また、パスワード付きのpdfファイルを作るには、元になるパスワードが必要で、それが学生のアカウントのものであるということは、大学は学生のパスワードを平文で保存している可能性も疑われます。もしそうだとすると、単純にパスワードを長くすればいいとか、複雑にすればいいとかいう話ではないですよね。
企業が顧客のパスワードを平文で保存していて、流出したとなるとそれはもう大変な事になります。

誰が悪いのかと言われれば、「ある友人」である事に変わりはないですが、パスワードの扱いにはくれぐれも気をつけた方がいいな、と架空の話を考えながら思ったのでした。