ホーム

OFF-SOFT.net

OFF-SOFT.net

ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。

オープンソースなPDFパスワードクラッカ(PDFCrack)

公開日| 2009年10月08日 | コメントはまだありません。
概要 :
 今回は、オープンソースなPDFパスワードクラッカであるPDFCrackを試してみたいと思います。
このソフトは、結構、有名で、色々なサイトでも紹介されています。

ここでは、このPDFCrackが、どの程度のパスワードを解読できるのかについて、簡単に記述したいと思います。
ここで、PDFのパスワードを設定するのは、PrimoPDFで実施してみました。パスワードの設定と合わせて記述してみます。

ダウンロード

PrimoPDF(日本語版) : http://www.xlsoft.com/jp/products/primopdf/

PDFCrack : http://pdfcrack.sourceforge.net/

PDFCrack - A Password Recovery Tool for PDF-files(Windows version) : http://blog.rubypdf.com/pdfcrack/


まず、準備をしましょう。

  • PrimoPDF
    パスワードを設定したPDFを作成するために使います。上記のダウンロード先からダウンロードしましょう。
    ダウンロード後、インストールを画面の指示に従い、実行しましょう。

    インストールを終えたら、適当なホームページをPrimoPDFを使って印刷してみましょう。

    印刷実行後、以下のようなPDFファイル保存のためのPrimoPDFの画面が表示されます。

    "変更"ボタンをクリックして、パスワードを設定します。


    上記画面で2つのパスワード(書き込み用、閲覧用)を、それぞれ設定します。


    設定を終えると上記のように淡青に表示が切り替わります。

    最後にファイル名を指定して、"PDFの作成"ボタンをクリックしてファイルを作成します。
    パスワードの文字列を2桁、3桁、4桁で4つのファイルを作成しておきます。

  • PDFCrack
    パスワードを解析する本体です。上記のダウンロード先からダウンロードしましょう。
    インストールは、不要で、解凍するのみで実行できます。

    コマンドラインから、カレントディレクトリを、PDFCrackを解凍したディレクトリに合わせて以下のようにコマンド入力してみましょう。
    1
    2
    
    C:\temp>pdfcrack.exe -v
    pdfcrack version 0.11

    上記のようにバージョンが表示されればOKです。


パスワードを解読してみましょう。

基本的に、PDFCrackは、文字列の組合せの総当りでパスワードを見つけようとします。
その総当りのやり方のパターンをいくつか持っています。
  • 単純に1文字から順番に総当りをする。
  • 単語の辞書データをもとに、総当りをする。
  • 文字数を限定して総当りする。
  • 総当りに用いる文字を限定して総当りをする。

ここでは、辞書データなどパラメータを、一切、用いずに単純に解析させてみました。

まずは、2文字のパスワードを解読してみましょう。

先に、PrimoPDFで、2文字のパスワードを設定したPDFファイルを解読してみましょう。
パスワードの解読の仕方は、以下のようにコマンド入力するとできます。

1
2
3
4
5
6
7
8
9
10
11
12
C:\temp>pdfcrack.exe -f pass2.pdf
PDF version 1.4
Security Handler: Standard
V: 2
R: 3
P: -2564
Length: 128
Encrypted Metadata: True
FileID: 4feedfbb8435de68f722ccc6d60b9107
U: e79b6b455afc27a9fca93aeff25d9e3f28bf4e5e4e758a4164004e56fffa0108
O: e4c408de9c8c865ea68537f7cb2740eda64eb6070c64a9c572ac098600992997
found user-password: 'zz'

ここで指定している"pass2.pdf"は、パスワード2文字を設定したPDFファイルです。

このように一瞬で、ユーザパスワード(閲覧(読み込み)パスワード)が解析できます。
さらに、書き込みパスワードを解析したい場合は、以下のように入力すると解析できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
C:\temp>pdfcrack.exe -f pass2.pdf -p zz
PDF version 1.4
Security Handler: Standard
V: 2
R: 3
P: -2564
Length: 128
Encrypted Metadata: True
FileID: 4feedfbb8435de68f722ccc6d60b9107
U: e79b6b455afc27a9fca93aeff25d9e3f28bf4e5e4e758a4164004e56fffa0108
O: e4c408de9c8c865ea68537f7cb2740eda64eb6070c64a9c572ac098600992997
found owner-password: 'wa'
found user-password: 'zz'

これも一瞬で、オーナーパスワード(書き込みパスワード)が解析できます。

この例では、以下のようにパスワードが解析されました。
オーナーパスワード(書き込みパスワード): 'wa'
ユーザパスワード(閲覧(読み込み)パスワード): 'zz'


同じように3文字、4文字のパスワードも解析してみましょう。

4文字のパスワードから、少し時間がかかります。
筆者のPCでは、約5分程度で、解析できました。
このとき、以下のようなメッセージがコマンドラインに表示されると思います。
1
2
3
Average Speed: 18478.2 w/s. Current Word: 'ShHa'
      :
      :

これは、1秒あたりの総当りした語彙数を出力しています。
つまり、上記では、1秒あたり18478.2語を検証したということになります。

筆者のPCは、2年ほど前のものですから、現在の最新スペックのPCでは、そんなに時間がかからないのではないかと思います。

また、この出力の最後に表示されている文字列をみると、英数字のみしかありません。つまりは、記号などの英数字以外は、検証していないのです。
パスワードに'+-'などの記号を設定するだけで、このツールは、パスワードを解析できません。

それを踏まえると、以下のような計算式ができますね。

最大解析時間 = 62 ^ パスワード文字数 / 1秒あたりの総当りした語彙数
※ ^ : べき乗

1秒あたりの総当りした語彙数を、わかりやすいように、ここでは、18478.2でなく、15000を使って、パスワード5文字の解析時間を計算してみましょう。

最大解析時間 = 62 ^ 5 / 15000
ですから、
約61,076秒 となり、 約17時間という計算結果を得ます。

つまり、筆者のPCでは、一日、PCで解析すれば、必ず、解析できるということです。(あくまで、英数字のみですけど)

これから、昨今、推奨されている文字数12文字、と以前よく推奨されていた8文字についても計算してみましょう。

同じように計算すると、以下のようになります。

8文字 : 約5,212,500時間 となり、約595年となります。
12文字 : 約59,745,680,785,146時間 となり、約6,820,283,194年となります。

8文字は、PCの性能アップや複数台でマルチ解析してしまうとできなくもないような数字のようですが、12文字は、さすがに、現状では、天文学的な数値のようですね。


このようにパスワードは、長めで単語を用いずに記号などを含めると強固なパスワードができそうですね。(よく書かれていることですね。)

ここで、紹介しているPDFCrackは、オープンソースで、それほど、難しいことはやっていません。
世界には、他に、PDFのパスワードクラッカーがいっぱいあります。(pdf crack で検索してみてください。)
ネット社会で被害にあわないように、しっかり、パスワードを設定しましょう!!


PDFを編集するには、PDF-XCHANGE VIEWERは(特に日本語を編集する場合)一難あります。
もし、編集機能まで、必要なら、日本製の製品が良いかもしれませんね。以下は、Amazonから検索した人気の製品です。
以前に比べれば、随分とリーズナブルになりましたね。これ以外にも色々ありますので、探されるのも良いと思います。



コメント

コメントをどうぞ







  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ